-/**************************************************************************
+ /**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* *
* Author: The ALICE Off-line Project. *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.22 2001/03/29 22:01:53 barbera
-New flag added to change the material for some service supports as asked by the PMD people. Some changes to the services due to the new drawings from the engineers
-
-Revision 1.21 2001/03/29 05:28:56 barbera
-Rails material changed from aluminum to carbon fiber according with the decision of the last Technical Board
-
-Revision 1.20 2001/03/28 06:40:21 barbera
-Central and services mother volumes made consistenf for detailed and coarse geometry. Switch for rails added to the coarse geometries
-
-Revision 1.19 2001/03/13 18:13:30 barbera
-Some mother volumes sligthly modified to eliminate an overlap with the absorber
-
-Revision 1.18 2001/02/19 09:44:16 barbera
-Copy no.2 of volume ICO2 re-inserted
-
-Revision 1.17 2001/02/09 00:05:31 nilsen
-Added fMajor/MinorVersion variables and made other changes to better make
-use of the new code changes in AliITSgeom related classes.
-
-Revision 1.16 2001/01/30 09:23:13 hristov
-Streamers removed (R.Brun)
-
-Revision 1.15 2001/01/17 07:41:29 barbera
-Some media parameters modified
-
-Revision 1.14 2001/01/15 13:13:53 barbera
-Some comments added
-
-Revision 1.13 2000/12/10 16:00:45 barbera
-Added last definition of special media like end-ladder boxes and cones
-
-Revision 1.12 2000/11/02 15:44:23 barbera
-Services on the opposite side w.r.t the absorber modified to make room for rails
-
-Revision 1.10 2000/10/27 17:19:50 barbera
-Position of rails w.r.t. the interaction point corrected.
-
-Revision 1.9 2000/10/27 13:31:29 barbera
-Rails between ITS and TPC added.
-
-Revision 1.8 2000/10/27 13:03:08 barbera
-Small changes in the SPD volumes and materials
-
-Revision 1.6 2000/10/16 14:45:37 barbera
-Mother volume ITSD modified to avoid some overlaps
-
-Revision 1.5 2000/10/16 13:49:15 barbera
-Services volumes slightly modified and material added following Pierluigi Barberis' information
-
-Revision 1.4 2000/10/07 15:33:07 barbera
-Small corrections to the ITSV mother volume
-
-Revision 1.3 2000/10/07 13:06:50 barbera
-Some new materials and media defined
-
-Revision 1.2 2000/10/07 10:58:15 barbera
-Mother volume ITSV corrected
-
-Revision 1.1 2000/10/06 23:09:24 barbera
-New coarse geometry (asymmetric services
-
-Revision 1.20 2000/10/02 21:28:08 fca
-Removal of useless dependecies via forward declarations
-
-Revision 1.19 2000/07/10 16:07:19 fca
-Release version of ITS code
-
-Revision 1.14.2.2 2000/05/19 10:09:21 nilsen
-fix for bug with HP and Sun unix + fix for event display in ITS-working branch
-
-Revision 1.14.2.1 2000/03/04 23:45:19 nilsen
-Fixed up the comments/documentation.
-
-Revision 1.14 1999/11/25 06:52:56 fca
-Correct value of drca
-
-Revision 1.13.2.1 1999/11/25 06:52:21 fca
-Correct value of drca
-
-Revision 1.13 1999/10/27 11:16:26 fca
-Correction of problem in geometry
-
-Revision 1.12 1999/10/22 08:25:25 fca
-remove double definition of destructors
-
-Revision 1.11 1999/10/22 08:16:49 fca
-Correct destructors, thanks to I.Hrivnacova
-
-Revision 1.10 1999/10/06 19:56:50 fca
-Add destructor
-
-Revision 1.9 1999/10/05 08:05:09 fca
-Minor corrections for uninitialised variables.
-
-Revision 1.8 1999/09/29 09:24:20 fca
-Introduction of the Copyright and cvs Log
-
-*/
+/* $Id$ */
///////////////////////////////////////////////////////////////////////////////
// //
// strongly encouraged to uses AliITSv5.
// //
///////////////////////////////////////////////////////////////////////////////
-#include <iostream.h>
+#include <Riostream.h>
#include <TMath.h>
+#include <TNode.h>
+#include <TObjArray.h>
#include <TRandom.h>
+#include <TTUBE.h>
#include <TVector.h>
+#include <TVirtualMC.h>
#include <TGeometry.h>
-#include <TNode.h>
-#include <TTUBE.h>
-#include <TFile.h> // only required for Tracking function?
-#include <TCanvas.h>
-#include <TObjArray.h>
-#include <TClonesArray.h>
-#include "AliMC.h"
#include "AliMagF.h"
#include "AliConst.h"
-
#include "AliITShit.h"
#include "AliITSvPPRcoarseasymm.h"
+#include "AliMagF.h"
#include "AliRun.h"
-
ClassImp(AliITSvPPRcoarseasymm)
//_____________________________________________________________________________
fMinorVersion = 0;
}
//____________________________________________________________________________
-AliITSvPPRcoarseasymm::AliITSvPPRcoarseasymm(const AliITSvPPRcoarseasymm &source){
+AliITSvPPRcoarseasymm::AliITSvPPRcoarseasymm(const AliITSvPPRcoarseasymm &s) :
+ AliITS(s){
////////////////////////////////////////////////////////////////////////
// Copy Constructor for ITS version 6.
////////////////////////////////////////////////////////////////////////
- if(&source == this) return;
+ if(&s == this) return;
Warning("Copy Constructor","Not allowed to copy AliITSvPPRcoarseasymm");
return;
}
// Geometry builder for the ITS version 6.
////////////////////////////////////////////////////////////////////////
TNode *node, *top;
- const int kColorITS=kYellow;
+ const Int_t kColorITS=kYellow;
//
top = gAlice->GetGeometry()->GetNode("alice");
- new TTUBE("S_layer1","Layer1 of ITS","void",3.95,3.95+0.05475,12.25);
+ 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.+0.05475,16.3);
+ 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.05288,21.1);
+ 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,24+0.05288,29.6);
+ 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",40,40+0.05382,45.1);
+ 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",45,45+0.05382,50.4);
+ 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);
////////////////////////////////////////////////////////////////////////
//INNER RADII OF THE SILICON LAYERS
- Float_t rl[6] = { 3.8095,7.,15.,24.,38.1,43.5765 };
+ Float_t rl[6] = { 3.8095,7.,15.,24.,38.5,43.5765 };
//THICKNESSES OF LAYERS (in % radiation length)
Float_t drl[6] = { 1.03,1.03,0.94,0.95,0.91,0.87 };
//HALF LENGTHS OF LAYERS
rails = GetRails();
if(rails != 0 && rails != 1) {
- cout << "WARNING: the switch for rails is not set neither to 0 (rails out) nor to 1 (rails in)."
+ cout << "ITS - WARNING: the switch for rails is not set neither to 0 (rails out) nor to 1 (rails in)."
" The default value of 1 (rails in) will be used." << endl;
}
if (rails == 0 ) {
- cout << "Rails are out." << endl;
+ cout << "ITS: Rails are out." << endl;
} else {
- cout << "Rails are in." << endl;
+ cout << "ITS: Rails are in." << endl;
}
suppmat = GetSupportMaterial();
if (suppmat != 0 && suppmat != 1 && suppmat != 2) {
- cout << "WARNING: the flag for the material of services supports is not set neither to 0 (copper) nor to 1 (aluminum) nor to 2 (carbon)."
+ cout << "ITS - WARNING: the flag for the material of services supports is not set neither to 0 (copper) nor to 1 (aluminum) nor to 2 (carbon)."
" The default value of 0 (copper) will be used." << endl;
}
if (suppmat == 0) {
- cout << "The material of the services supports is copper." << endl;
+ cout << "ITS: The material of the services supports is copper." << endl;
} else if (suppmat == 1){
- cout << "The material of the services supports is aluminum." << endl;
+ cout << "ITS: The material of the services supports is aluminum." << endl;
} else {
- cout << "The material of the services supports is carbon." << endl;
+ cout << "ITS: The material of the services supports is carbon." << endl;
}
// FIELD CAGE HALF LENGTH
- rlim = 56.;
+ rlim = 50.;
zmax = 74.;
ztpc = 284.;
dgh[8] = 85.;
dgh[9] = -ztpc;
dgh[10] = 46;
- dgh[11] = rlim+0.1;
+ dgh[11] = rlim+6;
dgh[12] = -97.5;
dgh[13] = 46;
- dgh[14] = rlim+0.1;
+ dgh[14] = rlim+6;
dgh[15] = -zmax;
dgh[16] = 46;
- dgh[17] = rlim+0.1;
+ dgh[17] = rlim+6;
dgh[18] = -48;
dgh[19] = 6;
- dgh[20] = rlim+0.1;
+ dgh[20] = rlim+6;
dgh[21] = -28.6;
dgh[22] = 6;
- dgh[23] = rlim+0.1;
+ dgh[23] = rlim+6;
dgh[24] = -27.6;
dgh[25] = 3.295;
- dgh[26] = rlim+0.1;
+ dgh[26] = rlim+6;
dgh[27] = 27.6;
dgh[28] = 3.295;
- dgh[29] = rlim+0.1;
+ dgh[29] = rlim+6;
dgh[30] = 28.6;
dgh[31] = 6;
- dgh[32] = rlim+0.1;
+ dgh[32] = rlim+6;
dgh[33] = 48;
dgh[34] = 6;
- dgh[35] = rlim+0.1;
+ dgh[35] = rlim+6;
dgh[36] = zmax;
dgh[37] = 46;
- dgh[38] = rlim+0.1;
+ dgh[38] = rlim+6;
dgh[39] = 97.5;
dgh[40] = 46;
- dgh[41] = rlim+0.1;
+ dgh[41] = rlim+6;
dgh[42] = ztpc;
dgh[43] = 62;
dgh[44] = 62+4.;
dgh[1] = 3.;
dgh[2] = 5.; // 5. comes from the fact that the volume has to be 567.6/2 cm^3
gMC->Gsvolu("ISR1", "TUBE", idtmed[286], dgh, 3);
- gMC->Gspos("ISR1", 1, "ALIC", 54.9, 11., 79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 2, "ALIC", 54.9, -11., 79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 3, "ALIC", -54.9, 11., 79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 4, "ALIC", -54.9, -11., 79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 5, "ALIC", 54.9, 11., -79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 6, "ALIC", 54.9, -11., -79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 7, "ALIC", -54.9, 11., -79.5, 0, "ONLY");
- gMC->Gspos("ISR1", 8, "ALIC", -54.9, -11., -79.5, 0, "ONLY");
+ gMC->Gspos("ISR1", 1, "ITSV", 53.4292, 10.7053, 79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 2, "ITSV", 53.4292, -10.7053, 79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 3, "ITSV", -53.4292, 10.7053, 79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 4, "ITSV", -53.4292, -10.7053, 79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 5, "ITSV", 53.4292, 10.7053, -79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 6, "ITSV", 53.4292, -10.7053, -79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 7, "ITSV", -53.4292, 10.7053, -79.75, 0, "ONLY");
+ gMC->Gspos("ISR1", 8, "ITSV", -53.4292, -10.7053, -79.75, 0, "ONLY");
// --- DEFINE SUPPORTS FOR RAILS ATTACHED TO THE ABSORBER
hits[5]=momentum[2];
hits[6]=gMC->Edep();
hits[7]=gMC->TrackTime();
-// new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->CurrentTrack(),vol,hits);
+// new(lhits[fNhits++]) AliITShit(fIshunt,gAlice->GetMCApp()->GetCurrentTrackNumber(),vol,hits);
//
// no hits for this coarse asymmetric version.
//