if(fgParam != 0) return;
fgParam = new AliTPCParamSR;
- fgZLength = fgParam->GetZLength();
+ fgZLength = fgParam->GetZLength(0)+0.275;
fgNAllRows = fgParam->GetNRowLow() + fgParam->GetNRowUp();
fgNAllPads = 0;
fgRowBegs = new Int_t[fgNAllRows + 1];
fgPadPitchWidthUp=param->GetOuterPadPitchWidth();
fgZWidth=param->GetZWidth();
fgZSigma=param->GetZSigma();
- fgZLength=param->GetZLength();
+ fgZLength=param->GetZLength(0)+0.275;
fgZOffset=param->GetZOffset();
fgDiffT=param->GetDiffT();
fgDiffL=param->GetDiffL();
fgPadPitchWidthUp=param->GetOuterPadPitchWidth();
fgZWidth=param->GetZWidth();
fgZSigma=param->GetZSigma();
- fgZLength=param->GetZLength();
+ fgZLength=param->GetZLength(0)+0.275;
fgZOffset=param->GetZOffset();
fgDiffT=param->GetDiffT();
fgDiffL=param->GetDiffL();
Double_t drift;
if(z > 0)
- drift = AliHLTTPCTransform::GetZLength() - z;
+ drift = AliHLTTPCTransform::GetZLength()-0.275 - z;
else
- drift = AliHLTTPCTransform::GetZLength() + z;
+ drift = AliHLTTPCTransform::GetZLength()-0.302 + z;
Double_t t1 = fgZSigma*fgZSigma;
Double_t t2 = fgDiffL*fgDiffL*drift;
fgPadPitchWidthUp=param->GetOuterPadPitchWidth();
fgZWidth=param->GetZWidth();
fgZSigma=param->GetZSigma();
- fgZLength=param->GetZLength();
+ fgZLength=param->GetZLength(0)+0.275;
fgZOffset=param->GetZOffset();
fgDiffT=param->GetDiffT();
fgDiffL=param->GetDiffL();
fgPadPitchWidthUp=param->GetOuterPadPitchWidth();
fgZWidth=param->GetZWidth();
fgZSigma=param->GetZSigma();
- fgZLength=param->GetZLength();
+ fgZLength=param->GetZLength(0);
fgZOffset=param->GetZOffset();
fgDiffT=param->GetDiffT();
fgDiffL=param->GetDiffL();
Double_t drift;
if(z > 0)
- drift = AliHLTTransform::GetZLength() - z;
+ drift = AliHLTTransform::GetZLength()-0.275 - z;
else
- drift = AliHLTTransform::GetZLength() + z;
+ drift = AliHLTTransform::GetZLength()-0.302 + z;
Double_t t1 = fgZSigma*fgZSigma;
Double_t t2 = fgDiffL*fgDiffL*drift;
}
// Remove hits which arrive before the TPC opening gate signal
- if(((fTPCParam->GetZLength()-TMath::Abs(tpcHit->Z()))
+ if(((fTPCParam->GetZLength(isec)-TMath::Abs(tpcHit->Z()))
/fTPCParam->GetDriftV()+tpcHit->Time())<fTPCParam->GetGateDelay()) {
tpcHit = (AliTPChit*) NextHit();
continue;
//---------------------------------------------------
- Float_t time = 1.e6*(fTPCParam->GetZLength()-TMath::Abs(tpcHit->Z()))
+ Float_t time = 1.e6*(fTPCParam->GetZLength(isec)-TMath::Abs(tpcHit->Z()))
/fTPCParam->GetDriftV();
// in microseconds!
Float_t attProb = fTPCParam->GetAttCoef()*
Float_t ymax=xprim*TMath::Tan(0.5*alpha);
if (TMath::Abs(xyz[0])>ymax) xyz[0]=yprim;
xyz[1]=gRandom->Gaus(tpcHit->Z(),TMath::Sqrt(sigmaZ)); // z
- if (TMath::Abs(xyz[1])>param->GetZLength()) xyz[1]=tpcHit->Z();
+ if (TMath::Abs(xyz[1])>param->GetZLength(isec)) xyz[1]=tpcHit->Z();
xyz[2]=sigmaRphi; // fSigmaY2
xyz[3]=sigmaZ; // fSigmaZ2
xyz[4]=tpcHit->fQ; // q
sigmay2 = TMath::Min(sigmay2,1.);
//
//
- z = sign*(param->GetZLength() - z);
- if (TMath::Abs(z)< param->GetZLength()-1){
+ z = sign*(param->GetZLength(isec) - z);
+ if (TMath::Abs(z)< param->GetZLength(isec)-1){
AliTPCClustersRow * row = (clustersArray->GetRow(isec,lastrow));
if (row!=0) {
AliTPCclusterMI* cl = new((AliTPCclusterMI*)row->Append()) AliTPCclusterMI ;
mirrorZ.SetAngles(90,0,90,90,180,0);
fClusterMatrix[isec]->Multiply(&mirrorZ);
}
- TGeoTranslation trans(0,0,GetZLength());
+ TGeoTranslation trans(0,0,GetZLength(isec));
fClusterMatrix[isec]->MultiplyLeft(&trans);
fClusterMatrix[isec]->MultiplyLeft((GetGlobalMatrix(isec)));
fClusterMatrix[isec]->MultiplyLeft(&(rotMatrix.Inverse()));
Int_t GetNInnerSector() const {return fNInnerSector;}
Int_t GetNOuterSector() const {return fNOuterSector;}
Int_t GetNSector() const {return fNSector;}
- Float_t GetZLength() const {return fZLength;}
+ Float_t GetZLength(Int_t sector) const {return (sector<35) ? fZLength-0.275 : fZLength-0.302;}
Int_t GetGeometryType() const {return fGeometryType;}
//
UInt_t GetNInnerSector() const {return fNSectors[0];}
UInt_t GetNOuterSector() const {return fNSectors[1];}
UInt_t GetNSector() const {return fNSectorsAll;}
- Float_t GetZLength() const {return fZLength;}
+ Float_t GetZLength(Int_t sector) const {return (sector<35) ? fZLength-0.275 : fZLength-0.302;}
//
// get pad row parameters
//
c.SetY((c.GetY() - 0.5 - 0.5*npads)*fPar->GetPadPitchWidth(sec));
c.SetZ(fPar->GetZWidth()*(c.GetZ()-1));
c.SetZ(c.GetZ() - 3.*fPar->GetZSigma()); // PASA delay
- c.SetZ(sign*(fPar->GetZLength() - c.GetZ()));
+ c.SetZ(sign*(fPar->GetZLength(sec) - c.GetZ()));
if (rx<230./250.*TMath::Abs(c.GetZ())) continue;
//sigma z2 = in digits - angle estimated supposing vertex constraint
Float_t z = iz*fZWidth+fParam->GetNTBinsL1()*fParam->GetZWidth();
Float_t sd2 = (z*fParam->GetDiffL()*fParam->GetDiffL())/(fZWidth*fZWidth);
- Float_t angular = fPadLength*(fParam->GetZLength()-z)/(fRx*fZWidth);
+ Float_t angular = fPadLength*(fParam->GetZLength(fSector)-z)/(fRx*fZWidth);
angular*=angular;
angular/=12.;
Float_t sres = fParam->GetZSigma()/fZWidth;
}
c.SetZ(fZWidth*(meanj-3));
c.SetZ(c.GetZ() - 3.*fParam->GetZSigma() + fParam->GetNTBinsL1()*fParam->GetZWidth()); // PASA delay + L1 delay
- c.SetZ(fSign*(fParam->GetZLength() - c.GetZ()));
+ c.SetZ(fSign*(fParam->GetZLength(fSector) - c.GetZ()));
c.SetX(fRx);
c.SetDetector(fSector);
c.SetRow(fRow);
fNcluster=0;
fLoop=1;
Float_t *b=&fBins[-1]+2*fMaxTime;
- Int_t crtime = Int_t((fParam->GetZLength()-fRecoParam->GetCtgRange()*fRx)/fZWidth-fParam->GetNTBinsL1()-5);
+ Int_t crtime = Int_t((fParam->GetZLength(fSector)-fRecoParam->GetCtgRange()*fRx)/fZWidth-fParam->GetNTBinsL1()-5);
Float_t minMaxCutAbs = fRecoParam->GetMinMaxCutAbs();
Float_t minLeftRightCutAbs = fRecoParam->GetMinLeftRightCutAbs();
Float_t minUpDownCutAbs = fRecoParam->GetMinUpDownCutAbs();
return 1.;
}
Float_t snoise2;
- Float_t z = TMath::Abs(fParam->GetZLength()-TMath::Abs(seed->GetZ()));
+ Float_t z = TMath::Abs(fParam->GetZLength(0)-TMath::Abs(seed->GetZ()));
Int_t ctype = cl->GetType();
Float_t padlength= GetPadPitchLength(seed->GetRow());
Double_t angle2 = seed->GetSnp()*seed->GetSnp();
return 1.;
}
Float_t snoise2;
- Float_t z = TMath::Abs(fParam->GetZLength()-TMath::Abs(seed->GetZ()));
+ Float_t z = TMath::Abs(fParam->GetZLength(0)-TMath::Abs(seed->GetZ()));
Int_t ctype = cl->GetType();
Float_t padlength= GetPadPitchLength(seed->GetRow());
//
//return 0.1;
Float_t snoise2;
- Float_t z = TMath::Abs(fParam->GetZLength()-TMath::Abs(seed->GetZ()));
+ Float_t z = TMath::Abs(fParam->GetZLength(0)-TMath::Abs(seed->GetZ()));
//
Float_t rsigmaz = cl->GetSigmaZ2()/(seed->fCurrentSigmaZ2);
Int_t ctype = cl->GetType();
}
else
{
- if (TMath::Abs(z)<(AliTPCReconstructor::GetCtgRange()*x+10) && TMath::Abs(z)<fParam->GetZLength() && (TMath::Abs(t.GetSnp())<AliTPCReconstructor::GetMaxSnpTracker()))
+ if (TMath::Abs(z)<(AliTPCReconstructor::GetCtgRange()*x+10) && TMath::Abs(z)<fParam->GetZLength(0) && (TMath::Abs(t.GetSnp())<AliTPCReconstructor::GetMaxSnpTracker()))
t.SetNFoundable(t.GetNFoundable()+1);
else
return 0;
{
//
//
- Float_t sd2 = TMath::Abs((fParam->GetZLength()-TMath::Abs(seed->GetZ())))*fParam->GetDiffL()*fParam->GetDiffL();
+ Float_t sd2 = TMath::Abs((fParam->GetZLength(0)-TMath::Abs(seed->GetZ())))*fParam->GetDiffL()*fParam->GetDiffL();
// Float_t padlength = fParam->GetPadPitchLength(seed->fSector);
Float_t padlength = GetPadPitchLength(row);
//
{
//
//
- Float_t sd2 = TMath::Abs((fParam->GetZLength()-TMath::Abs(seed->GetZ())))*fParam->GetDiffL()*fParam->GetDiffL();
+ Float_t sd2 = TMath::Abs((fParam->GetZLength(0)-TMath::Abs(seed->GetZ())))*fParam->GetDiffL()*fParam->GetDiffL();
Float_t padlength = fParam->GetPadPitchLength(seed->GetSector());
Float_t sres = (seed->GetSector() < fParam->GetNSector()/2) ? 0.2 :0.3;
Float_t angular = seed->GetSnp();
{
//
//
- Float_t sd2 = TMath::Abs((fParam->GetZLength()-TMath::Abs(seed->GetZ())))*fParam->GetDiffL()*fParam->GetDiffL();
+ Float_t sd2 = TMath::Abs((fParam->GetZLength(0)-TMath::Abs(seed->GetZ())))*fParam->GetDiffL()*fParam->GetDiffL();
Float_t padlength = fParam->GetPadPitchLength(seed->GetSector());
Float_t sres = fParam->GetZSigma();
Float_t angular = seed->GetTgl();
//
cd1v->AddNode(cd2v,1); cd2v->AddNode(cd3v,1); cflv->AddNode(cd1v,1);
//
- v1->AddNode(siv,1,new TGeoTranslation(0.,0.,-70.1));
- v1->AddNode(siv,2,new TGeoTranslation(0.,0.,70.1));
+ v1->AddNode(siv,1,new TGeoTranslation(0.,0.,-69.9));
+ v1->AddNode(siv,2,new TGeoTranslation(0.,0.,69.9));
v1->AddNode(sev,1); v1->AddNode(sev,2,ref); v1->AddNode(cflv,1);
//
// central membrane - 2 rings and a mylar membrane - assembly
//
// now iroc and oroc are placed into a sector...
//
+ TGeoVolumeAssembly *secta = new TGeoVolumeAssembly("TPC_SECT"); // a-side
+ TGeoVolumeAssembly *sectc = new TGeoVolumeAssembly("TPC_SECT"); // c-side
+ //
TGeoVolumeAssembly *sect = new TGeoVolumeAssembly("TPC_SECT");
TGeoRotation rot1("rot1",90.,90.,0.);
TGeoRotation rot2("rot2");
Double_t x0,y0;
x0=110.2*TMath::Cos(openingAngle);
y0=110.2*TMath::Sin(openingAngle);
- TGeoCombiTrans *combi1 = new TGeoCombiTrans("combi1",x0,y0,1.09,rot);
+ TGeoCombiTrans *combi1a = new TGeoCombiTrans("combi1",x0,y0,1.09+0.222,rot); //a-side
+ TGeoCombiTrans *combi1c = new TGeoCombiTrans("combi1",x0,y0,1.09+0.195,rot); //c-side
x0=188.45*TMath::Cos(openingAngle);
y0=188.45*TMath::Sin(openingAngle);
- TGeoCombiTrans *combi2 = new TGeoCombiTrans("combi2",x0,y0,0.99,rot);
+ TGeoCombiTrans *combi2a = new TGeoCombiTrans("combi2",x0,y0,0.99+0.222,rot); //a-side
+ TGeoCombiTrans *combi2c = new TGeoCombiTrans("combi2",x0,y0,0.99+0.195,rot); //c-side
+ //
+ // A-side
+ //
+ secta->AddNode(ch,1);
+ secta->AddNode(iroc,1,combi1a);
+ secta->AddNode(oroc,1,combi2a);
+ //
+ // C-side
//
- sect->AddNode(ch,1);
- sect->AddNode(iroc,1,combi1);
- sect->AddNode(oroc,1,combi2);
+ sectc->AddNode(ch,1);
+ sectc->AddNode(iroc,1,combi1c);
+ sectc->AddNode(oroc,1,combi2c);
//
- // segment is ready...
- // now I try to make a wheel...
+ // now I try to make wheels...
//
- TGeoVolumeAssembly *wheel = new TGeoVolumeAssembly("TPC_ENDCAP");
+ TGeoVolumeAssembly *wheela = new TGeoVolumeAssembly("TPC_ENDCAP");
+ TGeoVolumeAssembly *wheelc = new TGeoVolumeAssembly("TPC_ENDCAP");
//
for(Int_t i =0;i<18;i++){
Double_t phi = (20.*i);
TGeoRotation *r = new TGeoRotation();
r->RotateZ(phi);
- wheel->AddNode(sect,i+1,r);
-
+ wheela->AddNode(secta,i+1,r);
+ wheelc->AddNode(sectc,i+1,r);
}
// wheels in the drift volume!
TGeoCombiTrans *combi3 = new TGeoCombiTrans("combi3",0.,0.,256.6,ref);
- v9->AddNode(wheel,1,combi3);
- v9->AddNode(wheel,2,new TGeoTranslation(0.,0.,-256.6));
+ v9->AddNode(wheela,1,combi3);
+ v9->AddNode(wheelc,2,new TGeoTranslation(0.,0.,-256.6));
//_____________________________________________________________
// service support wheel
//_____________________________________________________________
//
cd1v->AddNode(cd2v,1); cd2v->AddNode(cd3v,1); cflv->AddNode(cd1v,1);
//
- v1->AddNode(siv,1,new TGeoTranslation(0.,0.,-70.1));
- v1->AddNode(siv,2,new TGeoTranslation(0.,0.,70.1));
+ v1->AddNode(siv,1,new TGeoTranslation(0.,0.,-69.9));
+ v1->AddNode(siv,2,new TGeoTranslation(0.,0.,69.9));
v1->AddNode(sev,1); v1->AddNode(sev,2,ref); v1->AddNode(cflv,1);
//
// central membrane - 2 rings and a mylar membrane - assembly
//
// now iroc and oroc are placed into a sector...
//
- TGeoVolumeAssembly *sect = new TGeoVolumeAssembly("TPC_SECT");
+ TGeoVolumeAssembly *secta = new TGeoVolumeAssembly("TPC_SECT"); // a-side
+ TGeoVolumeAssembly *sectc = new TGeoVolumeAssembly("TPC_SECT"); // c-side
TGeoRotation rot1("rot1",90.,90.,0.);
TGeoRotation rot2("rot2");
rot2.RotateY(10.);
Double_t x0,y0;
x0=110.2*TMath::Cos(openingAngle);
y0=110.2*TMath::Sin(openingAngle);
- TGeoCombiTrans *combi1 = new TGeoCombiTrans("combi1",x0,y0,1.09,rot);
+ TGeoCombiTrans *combi1a = new TGeoCombiTrans("combi1",x0,y0,1.09+0.222,rot); //a-side
+ TGeoCombiTrans *combi1c = new TGeoCombiTrans("combi1",x0,y0,1.09+0.195,rot); //c-side
x0=188.45*TMath::Cos(openingAngle);
y0=188.45*TMath::Sin(openingAngle);
- TGeoCombiTrans *combi2 = new TGeoCombiTrans("combi2",x0,y0,0.99,rot);
+ TGeoCombiTrans *combi2a = new TGeoCombiTrans("combi2",x0,y0,0.99+0.222,rot); //a-side
+ TGeoCombiTrans *combi2c = new TGeoCombiTrans("combi2",x0,y0,0.99+0.195,rot); //c-side
//
- sect->AddNode(ch,1);
- sect->AddNode(iroc,1,combi1);
- sect->AddNode(oroc,1,combi2);
+ // A-side
//
- // segment is ready...
- // now I try to make a wheel...
+ secta->AddNode(ch,1);
+ secta->AddNode(iroc,1,combi1a);
+ secta->AddNode(oroc,1,combi2a);
//
- TGeoVolumeAssembly *wheel = new TGeoVolumeAssembly("TPC_ENDCAP");
+ // C-side
+ //
+ sectc->AddNode(ch,1);
+ sectc->AddNode(iroc,1,combi1c);
+ sectc->AddNode(oroc,1,combi2c);
+ //
+ // now I try to make wheels...
+ //
+ TGeoVolumeAssembly *wheela = new TGeoVolumeAssembly("TPC_ENDCAP");
+ TGeoVolumeAssembly *wheelc = new TGeoVolumeAssembly("TPC_ENDCAP");
//
for(Int_t i =0;i<18;i++){
Double_t phi = (20.*i);
TGeoRotation *r = new TGeoRotation();
r->RotateZ(phi);
- wheel->AddNode(sect,i+1,r);
+ wheela->AddNode(secta,i+1,r);
+ wheelc->AddNode(sectc,i+1,r);
}
// wheels in the drift volume!
TGeoCombiTrans *combi3 = new TGeoCombiTrans("combi3",0.,0.,256.6,ref);
- v9->AddNode(wheel,1,combi3);
- v9->AddNode(wheel,2,new TGeoTranslation(0.,0.,-256.6));
+ v9->AddNode(wheela,1,combi3);
+ v9->AddNode(wheelc,2,new TGeoTranslation(0.,0.,-256.6));
//_____________________________________________________________
// service support wheel
//
cd1v->AddNode(cd2v,1); cd2v->AddNode(cd3v,1); cflv->AddNode(cd1v,1);
//
- v1->AddNode(siv,1,new TGeoTranslation(0.,0.,-70.1));
- v1->AddNode(siv,2,new TGeoTranslation(0.,0.,70.1));
+ v1->AddNode(siv,1,new TGeoTranslation(0.,0.,-69.9));
+ v1->AddNode(siv,2,new TGeoTranslation(0.,0.,69.9));
v1->AddNode(sev,1); v1->AddNode(sev,2,ref); v1->AddNode(cflv,1);
//
// central membrane - 2 rings and a mylar membrane - assembly
//
// now iroc and oroc are placed into a sector...
//
- TGeoVolumeAssembly *sect = new TGeoVolumeAssembly("TPC_SECT");
+ TGeoVolumeAssembly *secta = new TGeoVolumeAssembly("TPC_SECT"); // a-side
+ TGeoVolumeAssembly *sectc = new TGeoVolumeAssembly("TPC_SECT"); // c-side
TGeoRotation rot1("rot1",90.,90.,0.);
TGeoRotation rot2("rot2");
rot2.RotateY(10.);
Double_t x0,y0;
x0=110.2*TMath::Cos(openingAngle);
y0=110.2*TMath::Sin(openingAngle);
- TGeoCombiTrans *combi1 = new TGeoCombiTrans("combi1",x0,y0,1.09,rot);
+ TGeoCombiTrans *combi1a = new TGeoCombiTrans("combi1",x0,y0,1.09+0.222,rot); //a-side
+ TGeoCombiTrans *combi1c = new TGeoCombiTrans("combi1",x0,y0,1.09+0.195,rot); //c-side
x0=188.45*TMath::Cos(openingAngle);
y0=188.45*TMath::Sin(openingAngle);
- TGeoCombiTrans *combi2 = new TGeoCombiTrans("combi2",x0,y0,0.99,rot);
+ TGeoCombiTrans *combi2a = new TGeoCombiTrans("combi2",x0,y0,0.99+0.222,rot); //a-side
+ TGeoCombiTrans *combi2c = new TGeoCombiTrans("combi2",x0,y0,0.99+0.195,rot); //c-side
//
- sect->AddNode(ch,1);
- sect->AddNode(iroc,1,combi1);
- sect->AddNode(oroc,1,combi2);
//
- // segment is ready...
- // now I try to make a wheel...
+ // A-side
//
- TGeoVolumeAssembly *wheel = new TGeoVolumeAssembly("TPC_ENDCAP");
+ secta->AddNode(ch,1);
+ secta->AddNode(iroc,1,combi1a);
+ secta->AddNode(oroc,1,combi2a);
+ //
+ // C-side
+ //
+ sectc->AddNode(ch,1);
+ sectc->AddNode(iroc,1,combi1c);
+ sectc->AddNode(oroc,1,combi2c);
+ //
+ // now I try to make wheels...
+ //
+ TGeoVolumeAssembly *wheela = new TGeoVolumeAssembly("TPC_ENDCAP");
+ TGeoVolumeAssembly *wheelc = new TGeoVolumeAssembly("TPC_ENDCAP");
//
for(Int_t i =0;i<18;i++){
Double_t phi = (20.*i);
TGeoRotation *r = new TGeoRotation();
r->RotateZ(phi);
- wheel->AddNode(sect,i+1,r);
+ wheela->AddNode(secta,i+1,r);
+ wheelc->AddNode(sectc,i+1,r);
}
// wheels in the drift volume!
+
TGeoCombiTrans *combi3 = new TGeoCombiTrans("combi3",0.,0.,256.6,ref);
- v9->AddNode(wheel,1,combi3);
- v9->AddNode(wheel,2,new TGeoTranslation(0.,0.,-256.6));
+ v9->AddNode(wheela,1,combi3);
+ v9->AddNode(wheelc,2,new TGeoTranslation(0.,0.,-256.6));
//_____________________________________________________________
// service support wheel
//_____________________________________________________________
//
cd1v->AddNode(cd2v,1); cd2v->AddNode(cd3v,1); cflv->AddNode(cd1v,1);
//
- v1->AddNode(siv,1,new TGeoTranslation(0.,0.,-70.1));
- v1->AddNode(siv,2,new TGeoTranslation(0.,0.,70.1));
+ v1->AddNode(siv,1,new TGeoTranslation(0.,0.,-69.9));
+ v1->AddNode(siv,2,new TGeoTranslation(0.,0.,69.9));
v1->AddNode(sev,1); v1->AddNode(sev,2,ref); v1->AddNode(cflv,1);
//
// central membrane - 2 rings and a mylar membrane - assembly
//
// now iroc and oroc are placed into a sector...
//
- TGeoVolumeAssembly *sect = new TGeoVolumeAssembly("TPC_SECT");
+ TGeoVolumeAssembly *secta = new TGeoVolumeAssembly("TPC_SECT"); // a-side
+ TGeoVolumeAssembly *sectc = new TGeoVolumeAssembly("TPC_SECT"); // c-side
TGeoRotation rot1("rot1",90.,90.,0.);
TGeoRotation rot2("rot2");
rot2.RotateY(10.);
Double_t x0,y0;
x0=110.2*TMath::Cos(openingAngle);
y0=110.2*TMath::Sin(openingAngle);
- TGeoCombiTrans *combi1 = new TGeoCombiTrans("combi1",x0,y0,1.09,rot);
+ TGeoCombiTrans *combi1a = new TGeoCombiTrans("combi1",x0,y0,1.09+0.222,rot); //a-side
+ TGeoCombiTrans *combi1c = new TGeoCombiTrans("combi1",x0,y0,1.09+0.195,rot); //c-side
x0=188.45*TMath::Cos(openingAngle);
y0=188.45*TMath::Sin(openingAngle);
- TGeoCombiTrans *combi2 = new TGeoCombiTrans("combi2",x0,y0,0.99,rot);
+ TGeoCombiTrans *combi2a = new TGeoCombiTrans("combi2",x0,y0,0.99+0.222,rot); //a-side
+ TGeoCombiTrans *combi2c = new TGeoCombiTrans("combi2",x0,y0,0.99+0.195,rot); //c-side
//
- sect->AddNode(ch,1);
- sect->AddNode(iroc,1,combi1);
- sect->AddNode(oroc,1,combi2);
+ // A-side
//
- // segment is ready...
- // now I try to make a wheel...
+ secta->AddNode(ch,1);
+ secta->AddNode(iroc,1,combi1a);
+ secta->AddNode(oroc,1,combi2a);
//
- TGeoVolumeAssembly *wheel = new TGeoVolumeAssembly("TPC_ENDCAP");
+ // C-side
+ //
+ sectc->AddNode(ch,1);
+ sectc->AddNode(iroc,1,combi1c);
+ sectc->AddNode(oroc,1,combi2c);
+ //
+ // now I try to make wheels...
+ //
+ TGeoVolumeAssembly *wheela = new TGeoVolumeAssembly("TPC_ENDCAP");
+ TGeoVolumeAssembly *wheelc = new TGeoVolumeAssembly("TPC_ENDCAP");
//
for(Int_t i =0;i<18;i++){
Double_t phi = (20.*i);
TGeoRotation *r = new TGeoRotation();
r->RotateZ(phi);
- wheel->AddNode(sect,i+1,r);
+ wheela->AddNode(secta,i+1,r);
+ wheelc->AddNode(sectc,i+1,r);
}
// wheels in the drift volume!
TGeoCombiTrans *combi3 = new TGeoCombiTrans("combi3",0.,0.,256.6,ref);
- v9->AddNode(wheel,1,combi3);
- v9->AddNode(wheel,2,new TGeoTranslation(0.,0.,-256.6));
+ v9->AddNode(wheela,1,combi3);
+ v9->AddNode(wheelc,2,new TGeoTranslation(0.,0.,-256.6));
//_____________________________________________________________
// service support wheel