/*
$Log$
+Revision 1.12 2000/04/17 09:37:33 kowal2
+removed obsolete AliTPCDigitsDisplay.C
+
+Revision 1.11.8.2 2000/04/10 08:36:12 kowal2
+
+Updated readout chambers
+Some modifications to StepManager by M. Kowalski
+
+Revision 1.11.8.1 2000/04/10 07:56:53 kowal2
+Not used anymore - removed
+
+Revision 1.11 1999/11/04 17:28:07 fca
+Correct barrel part of HV Degrader
+
+Revision 1.10 1999/10/14 16:52:08 fca
+Only use PDG codes and not GEANT ones
+
+Revision 1.9 1999/10/08 06:27:23 fca
+Corrected bug in the HV degrader geometry, thanks to G.Tabary
+
+Revision 1.8 1999/10/04 13:39:55 fca
+Correct array index problem
+
Revision 1.7 1999/09/29 09:24:34 fca
Introduction of the Copyright and cvs Log
#include <stdlib.h>
#include <TMath.h>
-
#include "AliTPCv3.h"
#include "AliRun.h"
#include "AliConst.h"
-#include "AliTPCD.h"
-#include "AliTPCParam.h"
+#include "AliTPCDigitsArray.h"
+#include"AliTPCParam.h"
+#include "AliPDG.h"
ClassImp(AliTPCv3)
AliTPC(name, title)
{
//
- // Standard constructor for Time Projection Chamber version 2
+ // Standard constructor for Time Projection Chamber version 3
//
SetBufferSize(128000);
void AliTPCv3::CreateGeometry()
{
//
- // Creation of the TPC coarse geometry (version 0)
- // Origin Marek Kowalski Crakow
+ // Creation of the TPC coarse geometry (version 3)
+ // Origin Marek Kowalski Cracow
//
//Begin_Html
/*
*/
//End_Html
- AliTPCParam * fTPCParam = &(fDigParam->GetParam());
-
Int_t *idtmed = fIdtmed->GetArray();
Float_t dm[21];
Int_t nOuterSector = fTPCParam->GetNOuterSector()/2;
- Float_t InSecLowEdge = fTPCParam->GetInSecLowEdge();
- Float_t InSecUpEdge = fTPCParam->GetInSecUpEdge();
+ Float_t InSecLowEdge = fTPCParam->GetInnerRadiusLow();
+ Float_t InSecUpEdge = fTPCParam->GetInnerRadiusUp();
- Float_t OuSecLowEdge = fTPCParam->GetOuSecLowEdge();
- Float_t OuSecUpEdge = fTPCParam->GetOuSecUpEdge();
+ Float_t OuSecLowEdge = fTPCParam->GetOuterRadiusLow();
+ Float_t OuSecUpEdge = fTPCParam->GetOuterRadiusUp();
Float_t SecThick = 2.225; // Al
- Float_t edge = fTPCParam->GetEdge();
+ Float_t LowEdge = fTPCParam->GetInnerFrameSpace();
// S (Inner) sectors
- dm[0] = InSecLowEdge*TMath::Tan(0.5*InnerOpenAngle)-edge;
- dm[1] = InSecUpEdge*TMath::Tan(0.5*InnerOpenAngle)-edge;
+ dm[0] = InSecLowEdge*TMath::Tan(0.5*InnerOpenAngle)-LowEdge;
+ dm[1] = InSecUpEdge*TMath::Tan(0.5*InnerOpenAngle)-LowEdge;
dm[2] = SecThick;
dm[3] = 0.5*(InSecUpEdge-InSecLowEdge);
// L (Outer) sectors
- dm[0] = OuSecLowEdge*TMath::Tan(0.5*OuterOpenAngle)-edge;
- dm[1] = OuSecUpEdge*TMath::Tan(0.5*OuterOpenAngle)-edge;
+ Float_t UpEdge = fTPCParam->GetOuterFrameSpace();
+
+ dm[0] = OuSecLowEdge*TMath::Tan(0.5*OuterOpenAngle)-UpEdge;
+ dm[1] = OuSecUpEdge*TMath::Tan(0.5*OuterOpenAngle)-UpEdge;
dm[2] = SecThick;
dm[3] = 0.5*(OuSecUpEdge-OuSecLowEdge);
gMC->Gspos("TPOV",1,"TPCO",0.,0.,0.,0,"ONLY");
- // G10 plugs
-
- dm[0] = 258.;
- dm[1] = 260.;
- dm[2] = 1.;
-
- gMC->Gsvolu("TPG1","TUBE",idtmed[8],dm,3);
- gMC->Gspos("TPG1",1,"TPCO",0.,0.,251.,0,"ONLY");
- gMC->Gspos("TPG1",2,"TPCO",0.,0.,-251.,0,"ONLY");
gMC->Gspos("TPCO",1,"TPC ",0.,0.,0.,0,"ONLY");
dm[7] = 50.;
dm[8] = 76.;
- dm[9] = -64.5;
+ dm[9] = 64.5;
dm[10] = 50.;
dm[11] = 76.;
dm[0] = 50.;
dm[1] = 50.5;
- dm[2] = 32.25;
+ dm[2] = 64.5;
gMC->Gsvolu("TIVB","TUBE",idtmed[9],dm,3);
Float_t ptot=mom.Rho();
Float_t beta_gamma = ptot/gMC->TrackMass();
- if(gMC->IdFromPDG(gMC->TrackPid()) <= 3 && ptot > 0.002)
+ Int_t pid=gMC->TrackPid();
+ if((pid==kElectron || pid==kPositron) && ptot > 0.002)
{
pp = prim*1.58; // electrons above 20 MeV/c are on the plateau!
}