ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

//-------------------------------------------------------------------------
// The small angle absorber SAA (beam shield)
// Author: A.Morsch
// andreas.morsch@cern.ch
//-------------------------------------------------------------------------

#include <TVirtualMC.h>
#include <TArrayI.h>
#include <TGeoVolume.h>
#include <TGeoTube.h>
#include <TGeoManager.h>
#include <TGeoMatrix.h>
#include <TGeoCompositeShape.h>
#include <TGeoBBox.h>
#include <TGeoPgon.h>
#include <TGeoCone.h>

#include "AliSHILv3.h"
#include "AliConst.h"
#include "AliLog.h"

ClassImp(AliSHILv3)
 
//_____________________________________________________________________________
AliSHILv3::AliSHILv3()
{
  //
  // Default constructor for muon shield
  //
}
 
//_____________________________________________________________________________
AliSHILv3::AliSHILv3(const char *name, const char *title)
  : AliSHIL(name,title)
{
  //
  // Standard constructor for muon shield
  //
}
 
//_____________________________________________________________________________
void AliSHILv3::CreateGeometry()
{
//
// The geometry of the small angle absorber "Beam Shield"
//
    Float_t dz, dr, z, rmax;
//
// The top volume
//
    TGeoVolume* top = gGeoManager->GetVolume("ALIC");
//  Rotations
    TGeoRotation* rot000 = new TGeoRotation("rot000",  90.,   0., 90.,  90., 0., 0.);
    TGeoRotation* rot090 = new TGeoRotation("rot090",  90.,  90., 90., 180., 0., 0.);
    TGeoRotation* rot180 = new TGeoRotation("rot180",  90., 180., 90., 270., 0., 0.);
    TGeoRotation* rot270 = new TGeoRotation("rot270",  90., 270., 90.,   0., 0., 0.);
    Float_t alhc = 0.794;
    TGeoRotation* rotxzlhc   = new TGeoRotation("rotxzlhc", 0.,  -alhc, 0.);
    TGeoRotation* rotlhc     = new TGeoRotation("rotlhc",   0.,   alhc, 0.);

//
// Media
//
    TGeoMedium* kMedNiW     = gGeoManager->GetMedium("SHIL_Ni/W0");
    TGeoMedium* kMedNiWsh   = gGeoManager->GetMedium("SHIL_Ni/W3");
//
    TGeoMedium* kMedSteel   = gGeoManager->GetMedium("SHIL_ST_C0");
    TGeoMedium* kMedSteelSh = gGeoManager->GetMedium("SHIL_ST_C3");
//
    TGeoMedium* kMedAir     = gGeoManager->GetMedium("SHIL_AIR_C0");
    TGeoMedium* kMedAirMu   = gGeoManager->GetMedium("SHIL_AIR_MUON");
//
    TGeoMedium* kMedPb      = gGeoManager->GetMedium("SHIL_PB_C0");
    TGeoMedium* kMedPbSh    = gGeoManager->GetMedium("SHIL_PB_C2");
//
    TGeoMedium* kMedConcSh  = gGeoManager->GetMedium("SHIL_CC_C2");
//
    TGeoMedium* kMedCastiron   = gGeoManager->GetMedium("SHIL_CAST_IRON0");
    TGeoMedium* kMedCastironSh = gGeoManager->GetMedium("SHIL_CAST_IRON2");
//
    const Float_t kDegRad = TMath::Pi() / 180.;
    const Float_t kAngle02   = TMath::Tan( 2.00   * kDegRad);   
    const Float_t kAngle0071 = TMath::Tan( 0.71   * kDegRad);   


///////////////////////////////////
//    FA Tungsten Tail           //
//    Drawing ALIP2A__0049       //
//    Drawing ALIP2A__0111       //
///////////////////////////////////
//
//    The tail as built is shorter than in drawing ALIP2A__0049. 
//    The CDD data base has to be updated !
//
//    Inner radius at the entrance of the flange
      Float_t rInFaWTail1  = 13.98/2.;
//    Outer radius at the entrance of the flange
      Float_t rOuFaWTail1  = 52.00/2.;
//    Outer radius at the end of the section inside the FA
      Float_t rOuFaWTail2  = 35.27/2.;
//    Length of the Flange section inside the FA
      Float_t dzFaWTail1   =  6.00;
//    Length of the Flange section ouside the FA
      Float_t dzFaWTail2   = 12.70;
//    Inner radius at the end of the section inside the FA 
      Float_t rInFaWTail2  = rInFaWTail1 +  dzFaWTail1 * kAngle0071;
//    Inner radius at the end of the flange
      Float_t rInFaWTail3  = rInFaWTail2 +  dzFaWTail2 * kAngle0071;
//    Outer radius at the end of the flange
      Float_t rOuFaWTail3  = rOuFaWTail2 +  dzFaWTail2 * kAngle02;
//    Outer radius of the recess for station 1
      Float_t rOuFaWTailR  = 30.8/2.;
//    Length of the recess
      Float_t dzFaWTailR   = 36.00;
//    Inner radiues at the end of the recess      
      Float_t rInFaWTail4  =  rInFaWTail3 +  dzFaWTailR * kAngle0071;
//    Outer radius at the end of the recess      
      Float_t rOuFaWTail4  =  rOuFaWTail3 +  dzFaWTailR * kAngle02;
//    Inner radius of the straight section
      Float_t rInFaWTailS  = 22.30/2.;
//    Length of the bulge
      Float_t dzFaWTailB   = 13.0;
//    Outer radius at the end of the bulge
      Float_t rOuFaWTailB  =  rOuFaWTail4 +  dzFaWTailB * kAngle02;
//    Outer radius at the end of the tail 
      Float_t rOuFaWTailE  = 31.6/2.;
//    Total length of the tail
      Float_t dzFaWTail    = 70.7;

      TGeoPcon* shFaWTail = new TGeoPcon(0., 360., 10);
      z    = 0.;
//    Flange section inside FA
      shFaWTail->DefineSection(0,  z, rInFaWTail1, rOuFaWTail1);
      z += dzFaWTail1;
      shFaWTail->DefineSection(1,  z, rInFaWTail2, rOuFaWTail1);      
      shFaWTail->DefineSection(2,  z, rInFaWTail2, rOuFaWTail2);      
//    Flange section outside FA
      z +=  dzFaWTail2;
      shFaWTail->DefineSection(3,  z, rInFaWTail3, rOuFaWTail3);      
      shFaWTail->DefineSection(4,  z, rInFaWTail3, rOuFaWTailR);
//    Recess Station 1
      z +=  dzFaWTailR;
      shFaWTail->DefineSection(5,  z, rInFaWTail4, rOuFaWTailR); 
      shFaWTail->DefineSection(6,  z, rInFaWTailS, rOuFaWTail4);
//    Bulge
      z += dzFaWTailB;
      shFaWTail->DefineSection(7,  z, rInFaWTailS, rOuFaWTailB);
      shFaWTail->DefineSection(8,  z, rInFaWTailS, rOuFaWTailE);
//    End
      z =  dzFaWTail;
      shFaWTail->DefineSection(9,  z, rInFaWTailS, rOuFaWTailE);
      
      TGeoVolume* voFaWTail = new TGeoVolume("YFaWTail", shFaWTail, kMedNiW);
//
//    Define an inner region with higher transport cuts
      TGeoPcon* shFaWTailI = new TGeoPcon(0., 360., 4);
      z  = 0.;
      dr = 3.5;
      shFaWTailI->DefineSection(0, z, rInFaWTail1,  rInFaWTail1 + dr);
      z += (dzFaWTail1 + dzFaWTail2 +  dzFaWTailR);
      shFaWTailI->DefineSection(1, z, rInFaWTail4,  rInFaWTail4 + dr);
      shFaWTailI->DefineSection(2, z, rInFaWTailS,  rInFaWTailS + dr);
      z = dzFaWTail;
      shFaWTailI->DefineSection(3, z, rInFaWTailS,  rInFaWTailS + dr);
      TGeoVolume* voFaWTailI = new TGeoVolume("YFaWTailI", shFaWTailI, kMedNiWsh);
      voFaWTail->AddNode(voFaWTailI, 1, gGeoIdentity);
      
///////////////////////////////////
//                               //
// Recess Station 1              //
// Drawing ALIP2A__0260          //
///////////////////////////////////

///////////////////////////////////
//    FA W-Ring 2                //
//    Drawing ALIP2A__0220       //
///////////////////////////////////
      const Float_t kFaWring2Rinner  = 15.41;
      const Float_t kFaWring2Router  = 18.40;
      const Float_t kFaWring2HWidth  =  3.75;
      const Float_t kFaWring2Cutoffx =  3.35;
      const Float_t kFaWring2Cutoffy =  3.35;
      TGeoTubeSeg* shFaWring2a  = new TGeoTubeSeg(kFaWring2Rinner, kFaWring2Router, kFaWring2HWidth, 0., 90.);
      shFaWring2a->SetName("shFaWring2a");
      TGeoBBox* shFaWring2b  = new TGeoBBox(kFaWring2Router / 2., kFaWring2Router / 2., kFaWring2HWidth);
      shFaWring2b->SetName("shFaWring2b");
      TGeoTranslation* trFaWring2b 
	  = new TGeoTranslation("trFaWring2b", kFaWring2Router / 2. + kFaWring2Cutoffx, kFaWring2Router / 2. + kFaWring2Cutoffy, 0.);
      trFaWring2b->RegisterYourself();
      TGeoCompositeShape*  shFaWring2 = new TGeoCompositeShape("shFaWring2", "(shFaWring2a)*(shFaWring2b:trFaWring2b)");
      TGeoVolume* voFaWring2    = new TGeoVolume("YFA_WRING2", shFaWring2, kMedNiW);

///////////////////////////////////
//    FA W-Ring 3                //
//    Drawing ALIP2A__0219       //
///////////////////////////////////
      const Float_t kFaWring3Rinner  = 15.41;
      const Float_t kFaWring3Router  = 18.40;
      const Float_t kFaWring3HWidth  =  3.75;
      const Float_t kFaWring3Cutoffx =  3.35;
      const Float_t kFaWring3Cutoffy =  3.35;
      TGeoTubeSeg* shFaWring3a  = new TGeoTubeSeg(kFaWring3Rinner, kFaWring3Router, kFaWring3HWidth, 0., 90.);
      shFaWring3a->SetName("shFaWring3a");
      TGeoBBox* shFaWring3b  = new TGeoBBox(kFaWring3Router / 2., kFaWring3Router / 2., kFaWring3HWidth);
      shFaWring3b->SetName("shFaWring3b");
      TGeoTranslation* trFaWring3b 
	  = new TGeoTranslation("trFaWring3b", kFaWring3Router / 2. + kFaWring3Cutoffx, kFaWring3Router / 2. + kFaWring3Cutoffy, 0.);
      trFaWring3b->RegisterYourself();
      TGeoCompositeShape*  shFaWring3 = new TGeoCompositeShape("shFaWring3", "(shFaWring3a)*(shFaWring3b:trFaWring3b)");
      TGeoVolume* voFaWring3    = new TGeoVolume("YFA_WRING3", shFaWring3, kMedNiW);

///////////////////////////////////
//    FA W-Ring 5                //
//    Drawing ALIP2A__0221       //
///////////////////////////////////
      const Float_t kFaWring5Rinner = 15.41;
      const Float_t kFaWring5Router = 18.67;
      const Float_t kFaWring5HWidth =  1.08;
      TGeoVolume* voFaWring5    = new TGeoVolume("YFA_WRING5", new TGeoTube(kFaWring5Rinner, kFaWring5Router, kFaWring5HWidth), kMedNiW);

//
// Position the rings in the assembly 
//      
      TGeoVolumeAssembly* asFaExtraShield = new TGeoVolumeAssembly("YCRE");
// Distance between rings
      const Float_t kFaDWrings = 1.92;
//
      dz = 0.;
      
      dz +=  kFaWring2HWidth;
      asFaExtraShield->AddNode(voFaWring2,    1, new TGeoCombiTrans(0., 0., dz, rot180));
      asFaExtraShield->AddNode(voFaWring2,    2, new TGeoCombiTrans(0., 0., dz, rot000));
      dz +=   kFaWring2HWidth;
      dz +=   kFaDWrings;
      dz +=   kFaWring3HWidth;
      asFaExtraShield->AddNode(voFaWring3,    1, new TGeoCombiTrans(0., 0., dz, rot090));
      asFaExtraShield->AddNode(voFaWring3,    2, new TGeoCombiTrans(0., 0., dz, rot270));
      dz +=   kFaWring3HWidth;   
      dz +=   kFaWring5HWidth;   
      asFaExtraShield->AddNode(voFaWring5,    1, new TGeoTranslation(0., 0., dz));
      dz +=   kFaWring5HWidth;   
      dz +=   kFaWring3HWidth;   
      asFaExtraShield->AddNode(voFaWring3,    3, new TGeoCombiTrans(0., 0., dz, rot180));
      asFaExtraShield->AddNode(voFaWring3,    4, new TGeoCombiTrans(0., 0., dz, rot000));
      dz +=   kFaWring3HWidth;   
      dz +=   kFaDWrings;
      dz +=   kFaWring2HWidth;
      asFaExtraShield->AddNode(voFaWring2,    3, new TGeoCombiTrans(0., 0., dz, rot090));
      asFaExtraShield->AddNode(voFaWring2,    4, new TGeoCombiTrans(0., 0., dz, rot270));
      dz +=   kFaWring2HWidth;

      
///////////////////////////////////////
//                SAA1               //
///////////////////////////////////////


///////////////////////////////////////
//          FA/SAA1  W Joint         //
//          Drawing ALIP2A__0060     //
///////////////////////////////////////

// Length of flange FA side      
      Float_t dzFaSaa1F1  =  2.8;
// Inner radius of flange FA side
      Float_t rInFaSaa1F1 = 32.0/2.;
// Outer radius of flange FA side
      Float_t rOuFaSaa1F1 = 39.5/2.;
// Length of first straight section
      Float_t dzFaSaa1S1  = 18.5 - dzFaSaa1F1;
// Inner radius of first straight section
      Float_t rInFaSaa1S1 = 22.3/2.;
// Length of 45 deg transition region
      Float_t  dzFaSaa1T1 =  2.2;
// Inner radius of second straight section
      Float_t rInFaSaa1S2 = 17.9/2.;
// Length of second straight section
      Float_t dzFaSaa1S2  = 10.1;
// Length of flange SAA1 side      
//    Float_t dzFaSaa1F2  =  4.0;
// Inner radius of flange FA side
      Float_t rInFaSaa1F2 = 25.2/2.;
// Length of joint
      Float_t dzFaSaa1    = 34.8;
// Outer Radius at the end of the joint
      Float_t rOuFaSaa1E  = 41.93/2.;
      
      
      TGeoPcon* shFaSaa1 = new TGeoPcon(0., 360., 8);
      z = 0;
// Flange FA side      
      shFaSaa1->DefineSection( 0, z, rInFaSaa1F1, rOuFaSaa1F1 - 0.01);
      z += dzFaSaa1F1;
      shFaSaa1->DefineSection( 1, z, rInFaSaa1F1, 40.0);
      shFaSaa1->DefineSection( 2, z, rInFaSaa1S1, 40.0);
// First straight section
      z += dzFaSaa1S1;
      shFaSaa1->DefineSection( 3, z, rInFaSaa1S1, 40.0);
// 45 deg transition region
      z += dzFaSaa1T1;
      shFaSaa1->DefineSection( 4, z, rInFaSaa1S2, 40.0);
// Second straight section
      z += dzFaSaa1S2;
      shFaSaa1->DefineSection( 5, z, rInFaSaa1S2, 40.0);
      shFaSaa1->DefineSection( 6, z, rInFaSaa1F2, 40.0);
// Flange SAA1 side
      z = dzFaSaa1;
      shFaSaa1->DefineSection( 7, z, rInFaSaa1F2, rOuFaSaa1E - 0.01);

// Outer 2 deg line
      for (Int_t i  = 1; i < 7; i++) {
	  Double_t zp   = shFaSaa1->GetZ(i);
	  Double_t r1   = shFaSaa1->GetRmin(i);	 
	  Double_t r2 = 39.5/2. + zp * TMath::Tan(2. * kDegRad) - 0.01;
	  shFaSaa1->DefineSection(i, zp, r1, r2);
      }
      TGeoVolume* voFaSaa1 = new TGeoVolume("YFASAA1", shFaSaa1, kMedNiWsh);
//
// Outer region with lower transport cuts
      TGeoCone* shFaSaa1O   = new TGeoCone(dzFaSaa1/2., rOuFaSaa1F1 - 3.5, rOuFaSaa1F1 - 0.01, rOuFaSaa1E - 3.5, rOuFaSaa1E - 0.01);
      TGeoVolume* voFaSaa1O = new TGeoVolume("YFASAA1O", shFaSaa1O, kMedNiW);
      voFaSaa1->AddNode(voFaSaa1O, 1, new TGeoTranslation(0., 0., dzFaSaa1/2.));
      

///////////////////////////////////
//    SAA1 Steel Envelope        //
//    Drawing ALIP2A__0039       //
///////////////////////////////////
      
      Float_t rOut;      // Outer radius
// Thickness of the steel envelope
      Float_t dSt = 4.;
// 4 Section
// z-positions
      Float_t zSaa1StEnv[5] = {111.2, 113.7, 229.3, 195.0};
// Radii
// 1
      Float_t rOuSaa1StEnv1 = 40.4/2.;
      Float_t rInSaa1StEnv1 = rOuSaa1StEnv1 - dSt - 0.05;
// 2  
      Float_t rInSaa1StEnv2 = 41.7/2.;
      Float_t rOuSaa1StEnv2 = rInSaa1StEnv2 + dSt / TMath::Cos(2.0 * kDegRad) - 0.05;
// 3         
      Float_t rOuSaa1StEnv3 = 57.6/2.; 
      Float_t rInSaa1StEnv3 = rOuSaa1StEnv3 - dSt + 0.05;
// 4
      Float_t rInSaa1StEnv4 = 63.4/2.;
      Float_t rOuSaa1StEnv4 = rInSaa1StEnv4 + dSt / TMath::Cos(1.6 * kDegRad) - 0.05;
// end         
      Float_t rInSaa1StEnv5 = 74.28/2.;
      Float_t rOuSaa1StEnv5 = rInSaa1StEnv5 + dSt / TMath::Cos(1.6 * kDegRad) - 0.05;
// Relative starting position
      Float_t zSaa1StEnvS = 3.;
      
      TGeoPcon* shSaa1StEnv  = new TGeoPcon(0., 360., 11);
// 1st Section
      z = zSaa1StEnvS;
      shSaa1StEnv->DefineSection( 0, z, rInSaa1StEnv1, rOuSaa1StEnv1);
      z += (zSaa1StEnv[0] - dSt);
      shSaa1StEnv->DefineSection( 1, z, rInSaa1StEnv1, rOuSaa1StEnv1);
// 1 - 2
      shSaa1StEnv->DefineSection( 2, z, rInSaa1StEnv1, rOuSaa1StEnv2);
      z +=  dSt;
      shSaa1StEnv->DefineSection( 3, z, rInSaa1StEnv1, rOuSaa1StEnv2);      
// 2nd Section
      shSaa1StEnv->DefineSection( 4, z, rInSaa1StEnv2, rOuSaa1StEnv2);      
      z += zSaa1StEnv[1];
      shSaa1StEnv->DefineSection( 5, z, rInSaa1StEnv3, rOuSaa1StEnv3);      
// 3rd Section  
      z += (zSaa1StEnv[2] - dSt);
      shSaa1StEnv->DefineSection( 6, z, rInSaa1StEnv3, rOuSaa1StEnv3);      
// 3 - 4
      shSaa1StEnv->DefineSection( 7, z, rInSaa1StEnv3, rOuSaa1StEnv4);
      z += dSt;
      shSaa1StEnv->DefineSection( 8, z, rInSaa1StEnv3, rOuSaa1StEnv4);
// 4th Section
      shSaa1StEnv->DefineSection( 9, z, rInSaa1StEnv4, rOuSaa1StEnv4);
      z += zSaa1StEnv[3];
      shSaa1StEnv->DefineSection(10, z, rInSaa1StEnv5, rOuSaa1StEnv5);      
      TGeoVolume* voSaa1StEnv  =  new TGeoVolume("YSAA1_SteelEnvelope", shSaa1StEnv, kMedSteel);


      
 

///////////////////////////////////
//    SAA1 W-Pipe                //
//    Drawing ALIP2A__0059       //
///////////////////////////////////
//
//    Flange FA side
//    Length of first section      
      Float_t dzSaa1WPipeF1  = 0.9;
//    Outer radius 
      Float_t rOuSaa1WPipeF1 = 24.5/2.;
//    Inner Radius
      Float_t rInSaa1WPipeF1 = 22.0/2.;
//    Length of second section
      Float_t dzSaa1WPipeF11 =  2.1;
//    Inner Radius
      Float_t rInSaa1WPipeF11 = 18.5/2.;
//
//    Central tube 
//    Length 
      Float_t dzSaa1WPipeC = 111.2;
//    Inner Radius at the end
      Float_t rInSaa1WPipeC = 22.0/2.;
//    Outer Radius
      Float_t rOuSaa1WPipeC = 31.9/2.;
//
//    Flange SAA2 Side
//    Length
      Float_t dzSaa1WPipeF2  = 6.0;
//    Outer radius 
      Float_t rOuSaa1WPipeF2 = 41.56/2.;

//
      TGeoPcon* shSaa1WPipe  = new TGeoPcon(0., 360., 8);
      z = 0.;
// Flange FA side first section
      shSaa1WPipe->DefineSection( 0, z, rInSaa1WPipeF1 , rOuSaa1WPipeF1);
      z += dzSaa1WPipeF1;
      shSaa1WPipe->DefineSection( 1, z, rInSaa1WPipeF1 , rOuSaa1WPipeF1);
// Flange FA side second section
      shSaa1WPipe->DefineSection( 2, z, rInSaa1WPipeF11, rOuSaa1WPipeF1);
      z += dzSaa1WPipeF11;
      shSaa1WPipe->DefineSection( 3, z, rInSaa1WPipeF11, rOuSaa1WPipeF1);
// Central Section
      shSaa1WPipe->DefineSection( 4, z, rInSaa1WPipeF11, rOuSaa1WPipeC);
      z += dzSaa1WPipeC;
      shSaa1WPipe->DefineSection( 5, z, rInSaa1WPipeC,   rOuSaa1WPipeC);
// Flange SAA2 side
      shSaa1WPipe->DefineSection( 6, z, rInSaa1WPipeC,   rOuSaa1WPipeF2);
      z +=  dzSaa1WPipeF2;
      shSaa1WPipe->DefineSection( 7, z, rInSaa1WPipeC,   rOuSaa1WPipeF2);

      TGeoVolume* voSaa1WPipe  =  new TGeoVolume("YSAA1_WPipe", shSaa1WPipe, kMedNiW);
//
// Inner region with higher transport cuts
      TGeoTube*   shSaa1WPipeI = new TGeoTube(rInSaa1WPipeC, rOuSaa1WPipeC, dzSaa1WPipeC/2.);
      TGeoVolume* voSaa1WPipeI =  new TGeoVolume("YSAA1_WPipeI", shSaa1WPipeI, kMedNiWsh);
      voSaa1WPipe->AddNode(voSaa1WPipeI, 1, new TGeoTranslation(0., 0., dzSaa1WPipeF1 + dzSaa1WPipeF11 + dzSaa1WPipeC/2));
      

///////////////////////////////////
//    SAA1 Pb Components         //
//    Drawing ALIP2A__0078       //
///////////////////////////////////
//
//    Inner angle
      Float_t tanAlpha = TMath::Tan(1.69    / 2. * kDegRad);
      Float_t tanBeta  = TMath::Tan(3.20    / 2. * kDegRad);    
// 
//    1st Section 2deg opening cone
//    Length 
      Float_t dzSaa1PbComp1 = 100.23;
//    Inner radius at entrance
      Float_t rInSaa1PbComp1 = 22.0/2.; // It's 21 cm diameter in the drawing. Is this a typo ??!!
//    Outer radius at entrance
      Float_t rOuSaa1PbComp1 = 42.0/2.;
//
//    2nd Section: Straight Section
//    Length 
      Float_t dzSaa1PbComp2  = 236.77;
//    Inner radius
      Float_t rInSaa1PbComp2 = rInSaa1PbComp1 + dzSaa1PbComp1 * tanAlpha;
//    Outer radius
      Float_t rOuSaa1PbComp2 = 49.0/2.;
//
//    3rd Section: 1.6deg opening cone until bellow
//    Length 
      Float_t dzSaa1PbComp3 = 175.6;
//    Inner radius        
      Float_t  rInSaa1PbComp3 = rInSaa1PbComp2 + dzSaa1PbComp2 * tanAlpha;
//    Outer radius
      Float_t rOuSaa1PbComp3 = 62.8/2.;
//   
//   4th Section: Bellow region
      Float_t dzSaa1PbComp4  = 26.4;
//    Inner radius        
      Float_t  rInSaa1PbComp4 = 37.1/2.;
      Float_t  rInSaa1PbCompB = 43.0/2.;
//    Outer radius
      Float_t rOuSaa1PbComp4  = rOuSaa1PbComp3 +  dzSaa1PbComp3 * tanBeta;
//
//   5th Section: Flange SAA2 side
//   1st detail 
      Float_t dzSaa1PbCompF1  = 4.;
      Float_t rOuSaa1PbCompF1 = 74.1/2.;
//   2nd detail       
      Float_t dzSaa1PbCompF2  = 3.;
      Float_t rOuSaa1PbCompF2 = 66.0/2.;
      Float_t rOuSaa1PbCompF3 = 58.0/2.;
      

      TGeoPcon* shSaa1PbComp  = new TGeoPcon(0., 360., 11);
      z = 120.2;
// 2 deg opening cone
      shSaa1PbComp->DefineSection( 0, z, rInSaa1PbComp1, rOuSaa1PbComp1);
      z += dzSaa1PbComp1;
      shSaa1PbComp->DefineSection( 1, z, rInSaa1PbComp2, rOuSaa1PbComp2);
// Straight section
      z += dzSaa1PbComp2;
      shSaa1PbComp->DefineSection( 2, z, rInSaa1PbComp3, rOuSaa1PbComp2);
// 1.6 deg opening cone
      shSaa1PbComp->DefineSection( 3, z, rInSaa1PbComp3, rOuSaa1PbComp3);
      z += dzSaa1PbComp3;
      shSaa1PbComp->DefineSection( 4, z, rInSaa1PbComp4, rOuSaa1PbComp4);
// Bellow region until outer flange
      shSaa1PbComp->DefineSection( 5, z, rInSaa1PbCompB, rOuSaa1PbComp4);
      z += (dzSaa1PbComp4 - dzSaa1PbCompF1 -  dzSaa1PbCompF2);
      shSaa1PbComp->DefineSection( 6, z, rInSaa1PbCompB, rOuSaa1PbCompF1);
      shSaa1PbComp->DefineSection( 7, z, rInSaa1PbCompB, rOuSaa1PbCompF2);
// Flange first step
      z +=  dzSaa1PbCompF1;
      shSaa1PbComp->DefineSection( 8, z, rInSaa1PbCompB, rOuSaa1PbCompF2);
      shSaa1PbComp->DefineSection( 9, z, rInSaa1PbCompB, rOuSaa1PbCompF3);
// Flange second step
      z +=  dzSaa1PbCompF2;
      shSaa1PbComp->DefineSection( 10, z, rInSaa1PbCompB, rOuSaa1PbCompF3);

      TGeoVolume* voSaa1PbComp  =  new TGeoVolume("YSAA1_PbComp", shSaa1PbComp, kMedPb);
//
// Inner region with higher transport cuts
      TGeoPcon*   shSaa1PbCompI = MakeShapeFromTemplate(shSaa1PbComp, 0., -3.);
      TGeoVolume* voSaa1PbCompI =  new TGeoVolume("YSAA1_PbCompI", shSaa1PbCompI, kMedPbSh);
      voSaa1PbComp->AddNode(voSaa1PbCompI, 1, gGeoIdentity);
      
///////////////////////////////////
//    SAA1 W-Cone                //
//    Drawing ALIP2A__0058       //
///////////////////////////////////
      // Length of the Cone
      Float_t dzSaa1WCone = 52.9;
      // Inner and outer radii
      Float_t rInSaa1WCone1 = 20.4;
      Float_t rOuSaa1WCone1 = rInSaa1WCone1 + 0.97;
      Float_t rOuSaa1WCone2 = rInSaa1WCone1 + 2.80;
      // relative z-position 
      Float_t zSaa1WCone    = 9.3;
      
      
      TGeoPcon* shSaa1WCone  = new TGeoPcon(0., 360., 2);
      z = zSaa1WCone;
      shSaa1WCone->DefineSection( 0, z, rInSaa1WCone1, rOuSaa1WCone1);
      z += dzSaa1WCone;
      shSaa1WCone->DefineSection( 1, z, rInSaa1WCone1, rOuSaa1WCone2);
      TGeoVolume* voSaa1WCone  =  new TGeoVolume("YSAA1_WCone", shSaa1WCone, kMedNiW);

///////////////////////////////////
//    SAA1 Steel-Ring            //
//    Drawing ALIP2A__0040       //
///////////////////////////////////
//
//    Length of the ring
      Float_t dzSaa1StRing = 4.;
//    Inner and outer radius
      Float_t rInSaa1String = 33.0;
      Float_t rOuSaa1String = 41.1;      
//    Relative z-position
      Float_t zSaa1StRing   = 652.2;
      TGeoPcon* shSaa1StRing  = new TGeoPcon(0., 360., 2);
      z = zSaa1StRing;
      shSaa1StRing->DefineSection( 0, z, rInSaa1String, rOuSaa1String);
      z += dzSaa1StRing;
      shSaa1StRing->DefineSection( 1, z, rInSaa1String, rOuSaa1String);
      TGeoVolume* voSaa1StRing  =  new TGeoVolume("YSAA1_StRing", shSaa1StRing, kMedSteel);

///////////////////////////////////
//    SAA1 Inner Tube            //
//    Drawing ALIP2A__0082       //
///////////////////////////////////
//
// Length of saa2:               659.2 cm
// Length of inner tube:         631.9 cm
// Lenth of bellow cavern:        27.3 cm    
// Radius at entrance 18.5/2,  d = 0.3
// Radius at exit     37.1/2,  d = 0.3 
//
      Float_t dzSaa1InnerTube     = 631.9/2.;  // Half length of the tube  
      Float_t rInSaa1InnerTube    =  18.2/2.;  // Radius at entrance
      Float_t rOuSaa1InnerTube    =  36.8/2.;  // Radius at exit
      Float_t dSaa1InnerTube      =   0.2   ;  // Thickness      
      TGeoVolume* voSaa1InnerTube = new TGeoVolume("YSAA1_InnerTube", 
						   new TGeoCone(dzSaa1InnerTube, 
								rInSaa1InnerTube - dSaa1InnerTube, rInSaa1InnerTube,
								rOuSaa1InnerTube - dSaa1InnerTube, rOuSaa1InnerTube),
						   kMedSteelSh);

///////////////////////////////////
//    SAA1 Outer Shape           //
//    Drawing ALIP2A__0107       //
///////////////////////////////////
      // Total length 
      Float_t dzSaa1 = 659.2;
      //
      TGeoPcon* shSaa1M  = new TGeoPcon(0., 360., 20);
      Float_t kSec = 0.2; // security distance to avoid trivial extrusions
      Float_t rmin = rInSaa1InnerTube - dSaa1InnerTube - kSec;
      rmax = rOuSaa1InnerTube - dSaa1InnerTube - kSec;
      z = 0.;
      shSaa1M->DefineSection( 0, z, rmin, rOuSaa1WPipeF1);
      z += dzSaa1WPipeF1;
      shSaa1M->DefineSection( 1, z, rmin, rOuSaa1WPipeF1);
      shSaa1M->DefineSection( 2, z, 0.,   rOuSaa1WPipeF1);
      z += dzSaa1WPipeF11;
      shSaa1M->DefineSection( 3, z, 0.,   rOuSaa1WPipeF1);
      shSaa1M->DefineSection( 4, z, 0.,   rOuSaa1StEnv1);
      z = zSaa1WCone;
      shSaa1M->DefineSection( 5, z, 0.,   rOuSaa1StEnv1);
      shSaa1M->DefineSection( 6, z, 0.,   rOuSaa1WCone1);
      z += dzSaa1WCone;
      shSaa1M->DefineSection( 7, z, 0.,   rOuSaa1WCone2);
      shSaa1M->DefineSection( 8, z, 0.,   rOuSaa1StEnv1);
      z =  zSaa1StEnv[0] - dSt + zSaa1StEnvS;
      shSaa1M->DefineSection( 9, z, 0.,   rOuSaa1StEnv1);
      shSaa1M->DefineSection(10, z, 0.,   rOuSaa1StEnv2);
      z +=  (zSaa1StEnv[1] + dSt);
      shSaa1M->DefineSection(11, z, 0.,   rOuSaa1StEnv3);
      z +=  (zSaa1StEnv[2] - dSt);
      shSaa1M->DefineSection(12, z, 0.,   rOuSaa1StEnv3);
      shSaa1M->DefineSection(13, z, 0.,   rOuSaa1StEnv4);

      z += (zSaa1StEnv[3] - dSt +  dzSaa1PbCompF1 + dzSaa1PbCompF2 - dzSaa1PbComp4);
      Float_t rmaxSaa1 = shSaa1M->GetRmax(13) + (z - shSaa1M->GetZ(13)) * TMath::Tan(1.6 * kDegRad);

      shSaa1M->DefineSection(14, z, 0.,    rmaxSaa1);
      shSaa1M->DefineSection(15, z, rmax,  rmaxSaa1);
      z = zSaa1StRing;     
      shSaa1M->DefineSection(16, z, rmax + 0.4, rOuSaa1String);
      z += dzSaa1PbCompF1;
      shSaa1M->DefineSection(17, z, rmax + 0.4, rOuSaa1String);
      shSaa1M->DefineSection(18, z, rmax + 0.4, rOuSaa1PbCompF3);
      z += dzSaa1PbCompF2;
      shSaa1M->DefineSection(19, z, rmax + 0.4, rOuSaa1PbCompF3);

//
//    Inner 1.69deg line
      for (Int_t i  = 2; i < 15; i++) {
	  Double_t zp = shSaa1M->GetZ(i);
	  Double_t r2 = shSaa1M->GetRmax(i);	 
	  Double_t r1 = rmin + (zp - 0.9) * TMath::Tan(1.686 / 2. * kDegRad) - kSec;
	  shSaa1M->DefineSection(i, zp, r1, r2);
      }

      TGeoVolume* voSaa1M  =  new TGeoVolume("YSAA1M", shSaa1M, kMedAir);
      voSaa1M->SetVisibility(0);
      

///////////////////////////////////
//                               //
// Recess Station 2              //
// Drawing ALIP2A__0260          //
///////////////////////////////////
///////////////////////////////////
//    SAA1 W-Ring 1              //
//    Drawing ALIP2A__0217       //
///////////////////////////////////
      Float_t saa1Wring1Width  =  5.85;
      TGeoPcon* shSaa1Wring1    = new TGeoPcon(0., 360., 2);
      shSaa1Wring1->DefineSection(0, 0.00           , 20.31, 23.175);
      shSaa1Wring1->DefineSection(1, saa1Wring1Width, 20.31, 23.400);
      TGeoVolume* voSaa1Wring1  =  new TGeoVolume("YSAA1_WRING1", shSaa1Wring1, kMedNiW);

///////////////////////////////////
//    SAA1 W-Ring 2              //
//    Drawing ALIP2A__0055       //
///////////////////////////////////
      Float_t saa1Wring2Rinner  = 20.31;
      Float_t saa1Wring2Router  = 23.40;
      Float_t saa1Wring2HWidth  =  3.75;
      Float_t saa1Wring2Cutoffx =  4.9;
      Float_t saa1Wring2Cutoffy =  4.9;
      TGeoTubeSeg* shSaa1Wring2a  = new TGeoTubeSeg(saa1Wring2Rinner, saa1Wring2Router, saa1Wring2HWidth, 0., 90.);
      shSaa1Wring2a->SetName("shSaa1Wring2a");
      TGeoBBox* shSaa1Wring2b  = new TGeoBBox(saa1Wring2Router / 2., saa1Wring2Router / 2., saa1Wring2HWidth);
      shSaa1Wring2b->SetName("shSaa1Wring2b");
      TGeoTranslation* trSaa1Wring2b 
	  = new TGeoTranslation("trSaa1Wring2b", saa1Wring2Router / 2. + saa1Wring2Cutoffx, saa1Wring2Router / 2. + saa1Wring2Cutoffy, 0.);
      trSaa1Wring2b->RegisterYourself();
      TGeoCompositeShape*  shSaa1Wring2 = new TGeoCompositeShape("shSaa1Wring2", "(shSaa1Wring2a)*(shSaa1Wring2b:trSaa1Wring2b)");
      TGeoVolume* voSaa1Wring2 = new TGeoVolume("YSAA1_WRING2", shSaa1Wring2, kMedNiW);

///////////////////////////////////
//    SAA1 W-Ring 3              //
//    Drawing ALIP2A__0216       //
///////////////////////////////////

      Float_t saa1Wring3Rinner  = 20.31;
      Float_t saa1Wring3Router  = 23.40;
      Float_t saa1Wring3HWidth  =  3.75;
      Float_t saa1Wring3Cutoffx =  4.80;
      Float_t saa1Wring3Cutoffy =  4.80;
      TGeoTubeSeg* shSaa1Wring3a  = new TGeoTubeSeg(saa1Wring3Rinner, saa1Wring3Router, saa1Wring3HWidth, 0., 90.);
      shSaa1Wring3a->SetName("shSaa1Wring3a");
      TGeoBBox* shSaa1Wring3b  = new TGeoBBox(saa1Wring3Router / 2., saa1Wring3Router / 2., saa1Wring3HWidth);
      shSaa1Wring3b->SetName("shSaa1Wring3b");
      TGeoTranslation* trSaa1Wring3b 
	  = new TGeoTranslation("trSaa1Wring3b", saa1Wring3Router / 2. + saa1Wring3Cutoffx, saa1Wring3Router / 2. + saa1Wring3Cutoffy, 0.);
      trSaa1Wring3b->RegisterYourself();
      TGeoCompositeShape*  shSaa1Wring3 = new TGeoCompositeShape("shSaa1Wring3", "(shSaa1Wring3a)*(shSaa1Wring3b:trSaa1Wring3b)");
      TGeoVolume* voSaa1Wring3 = new TGeoVolume("YSAA1_WRING3", shSaa1Wring3, kMedNiW);

///////////////////////////////////
//    SAA1 W-Ring 4              //
//    Drawing ALIP2A__0215       //
///////////////////////////////////
      Float_t saa1Wring4Width  =  5.85;
      TGeoPcon* shSaa1Wring4  = new TGeoPcon(0., 360., 5);
      shSaa1Wring4->DefineSection(0, 0.00, 20.31, 23.40);
      shSaa1Wring4->DefineSection(1, 1.00, 20.31, 23.40);
      shSaa1Wring4->DefineSection(2, 1.00, 20.31, 24.50);      
      shSaa1Wring4->DefineSection(3, 4.85, 20.31, 24.80);
      shSaa1Wring4->DefineSection(4, 5.85, 24.10, 24.80);
      TGeoVolume* voSaa1Wring4  =  new TGeoVolume("YSAA1_WRING4", shSaa1Wring4, kMedNiW);

///////////////////////////////////
//    SAA1 W-Ring 5              //
//    Drawing ALIP2A__0218       //
///////////////////////////////////
      Float_t saa1Wring5Rinner = 20.31;
      Float_t saa1Wring5Router = 23.40;
      Float_t saa1Wring5HWidth =  0.85;
      TGeoVolume* voSaa1Wring5    = new TGeoVolume("YSAA1_WRING5", 
						   new TGeoTube(saa1Wring5Rinner, saa1Wring5Router, saa1Wring5HWidth), kMedNiW);
//
// Position the rings in the assembly 
//      
      TGeoVolumeAssembly* asSaa1ExtraShield = new TGeoVolumeAssembly("YSAA1ExtraShield");
// Distance between rings
      Float_t saa1DWrings = 2.3;
//
      dz = - (saa1Wring1Width + 6. * saa1Wring2HWidth + 2. * saa1Wring3HWidth + saa1Wring4Width + 2. * saa1Wring5HWidth + 2. * saa1DWrings) / 2.;
      asSaa1ExtraShield->AddNode(voSaa1Wring1,    1, new TGeoTranslation(0., 0., dz));
      dz +=   saa1Wring1Width;
      dz +=   saa1Wring2HWidth;   
      asSaa1ExtraShield->AddNode(voSaa1Wring2,    1, new TGeoCombiTrans(0., 0., dz, rot000));
      asSaa1ExtraShield->AddNode(voSaa1Wring2,    2, new TGeoCombiTrans(0., 0., dz, rot180));
      dz +=   saa1Wring2HWidth;   
      dz +=   saa1DWrings;
      dz +=   saa1Wring2HWidth;   
      asSaa1ExtraShield->AddNode(voSaa1Wring2,    3, new TGeoCombiTrans(0., 0., dz, rot090));
      asSaa1ExtraShield->AddNode(voSaa1Wring2,    4, new TGeoCombiTrans(0., 0., dz, rot270));
      dz +=   saa1Wring2HWidth;   
      dz +=   saa1Wring5HWidth;   
      asSaa1ExtraShield->AddNode(voSaa1Wring5,    1, new TGeoTranslation(0., 0., dz));
      dz +=   saa1Wring5HWidth;   
      dz +=   saa1Wring2HWidth;   
      asSaa1ExtraShield->AddNode(voSaa1Wring2,    5, new TGeoCombiTrans(0., 0., dz, rot000));
      asSaa1ExtraShield->AddNode(voSaa1Wring2,    6, new TGeoCombiTrans(0., 0., dz, rot180));
      dz +=   saa1Wring2HWidth;   
      dz +=   saa1DWrings;
      dz +=   saa1Wring3HWidth;   
      asSaa1ExtraShield->AddNode(voSaa1Wring3,    1, new TGeoCombiTrans(0., 0., dz, rot090));
      asSaa1ExtraShield->AddNode(voSaa1Wring3,    2, new TGeoCombiTrans(0., 0., dz, rot270));
      dz +=   saa1Wring3HWidth;   
      asSaa1ExtraShield->AddNode(voSaa1Wring4,    1, new TGeoTranslation(0., 0., dz));
      dz +=   saa1Wring4Width;   
      const Float_t saa1ExtraShieldL = 48;
//
// Assemble SAA1
      voSaa1M->AddNode(voSaa1StEnv,     1, gGeoIdentity);
      voSaa1M->AddNode(voSaa1WPipe,     1, gGeoIdentity);
      voSaa1M->AddNode(voSaa1PbComp,    1, gGeoIdentity);
      voSaa1M->AddNode(voSaa1WCone,     1, gGeoIdentity);
      voSaa1M->AddNode(voSaa1StRing,    1, gGeoIdentity);
      voSaa1M->AddNode(voSaa1InnerTube, 1, new TGeoTranslation(0., 0., dzSaa1InnerTube + 0.9));		      
      TGeoVolumeAssembly* voSaa1 = new TGeoVolumeAssembly("YSAA1");
      voSaa1->AddNode(voSaa1M, 1, gGeoIdentity);
      
///////////////////////////////////////
//          SAA1/SAA2  Pb Joint      //
//          Drawing ALIP2A__0081     //
///////////////////////////////////////
//
// Outer radius
      Float_t rOuSaa1Saa2      = 70.0/2.;
// Flange SAA1 side
      Float_t dzSaa1Saa2F1     =  3.;
      Float_t rInSaa1Saa2F1    = 58.5/2.;
// 1st Central Section
      Float_t dzSaa1Saa2C1     = 19.3;
      Float_t rInSaa1Saa2C1    = 42.8/2.;
// Transition Region
      Float_t dzSaa1Saa2T      =  3.3;
// 1st Central Section
      Float_t dzSaa1Saa2C2     =  6.2;
      Float_t rInSaa1Saa2C2    = 36.2/2.;
// Flange SAA2 side
      Float_t dzSaa1Saa2F2     =  3.1;
      Float_t rInSaa1Saa2F2    = 54.1/2.;
// Total length
      Float_t dzSaa1Saa2       = 34.9;
      
      
      TGeoPcon* shSaa1Saa2Pb = new TGeoPcon(0., 360., 8);
      z = 0.;
// Flange SAA1 side
      shSaa1Saa2Pb->DefineSection( 0,  z, rInSaa1Saa2F1, rOuSaa1Saa2);
      z += dzSaa1Saa2F1;
      shSaa1Saa2Pb->DefineSection( 1,  z, rInSaa1Saa2F1, rOuSaa1Saa2);
      shSaa1Saa2Pb->DefineSection( 2,  z, rInSaa1Saa2C1, rOuSaa1Saa2);
// Central region 1
      z +=  dzSaa1Saa2C1;
      shSaa1Saa2Pb->DefineSection( 3,  z, rInSaa1Saa2C1, rOuSaa1Saa2);
// 45 deg transition
      z += dzSaa1Saa2T;
      shSaa1Saa2Pb->DefineSection( 4, z, rInSaa1Saa2C2, rOuSaa1Saa2);
      z += dzSaa1Saa2C2;
      shSaa1Saa2Pb->DefineSection( 5, z, rInSaa1Saa2C2, rOuSaa1Saa2);
      shSaa1Saa2Pb->DefineSection( 6, z, rInSaa1Saa2F2, rOuSaa1Saa2);
      z += dzSaa1Saa2F2;
      shSaa1Saa2Pb->DefineSection( 7, z, rInSaa1Saa2F2, rOuSaa1Saa2);
      TGeoVolume* voSaa1Saa2Pb = new TGeoVolume("YSAA1SAA2Pb", shSaa1Saa2Pb, kMedPb);
//
//    Mother volume and outer steel envelope
      Float_t rOuSaa1Saa2Steel = 36.9;
      
      TGeoPcon* shSaa1Saa2 = MakeShapeFromTemplate(shSaa1Saa2Pb, 0., rOuSaa1Saa2Steel-rOuSaa1Saa2);
      TGeoVolume* voSaa1Saa2 = new TGeoVolume("YSAA1SAA2", shSaa1Saa2, kMedSteel);
      voSaa1Saa2->AddNode(voSaa1Saa2Pb, 1, gGeoIdentity);
//
//    Inner region with higher transport cuts
//
      TGeoPcon*   shSaa1Saa2I = MakeShapeFromTemplate(shSaa1Saa2Pb, 0., -3.);
      TGeoVolume* voSaa1Saa2I = new TGeoVolume("YSAA1_SAA2I", shSaa1Saa2I, kMedPbSh);
      voSaa1Saa2Pb->AddNode(voSaa1Saa2I, 1, gGeoIdentity);
      


///////////////////////////////////////
//                SAA2               //
///////////////////////////////////////

      
///////////////////////////////////
//    SAA2 Steel Envelope        //
//    Drawing ALIP2A__0041       //
///////////////////////////////////
      dSt = 4.;  // Thickness of steel envelope
      // Length of the first section
      Float_t dzSaa2StEnv1  = 163.15;
      Float_t rInSaa2StEnv1 = 65.8/2.;
      // Length of the second section
      Float_t dzSaa2StEnv2  = 340.35 - 4.;
      Float_t rInSaa2StEnv2 = 87.2/2.;
      // Rel. starting position 
      Float_t zSaa2StEnv = 3.;
      
      TGeoPcon* shSaa2StEnv  = new TGeoPcon(0., 360., 6);
      // First Section
      z = zSaa2StEnv;
      shSaa2StEnv->DefineSection( 0, z, rInSaa2StEnv1, rInSaa2StEnv1 + dSt);
      z += dzSaa2StEnv1;
      shSaa2StEnv->DefineSection( 1, z, rInSaa2StEnv1, rInSaa2StEnv1 + dSt);
      // Transition region
      shSaa2StEnv->DefineSection( 2, z, rInSaa2StEnv1, rInSaa2StEnv2 + dSt);           
      z += dSt;
      shSaa2StEnv->DefineSection( 3, z, rInSaa2StEnv1, rInSaa2StEnv2 + dSt);          
      // Second section
      shSaa2StEnv->DefineSection( 4, z, rInSaa2StEnv2, rInSaa2StEnv2 + dSt);           
      z += dzSaa2StEnv2;
      shSaa2StEnv->DefineSection( 5, z, rInSaa2StEnv2, rInSaa2StEnv2 + dSt);           

      TGeoVolume* voSaa2StEnv  =  new TGeoVolume("YSAA2_SteelEnvelope", shSaa2StEnv, kMedSteel);


///////////////////////////////////
//    SAA2 Pb Ring               //
//    Drawing ALIP2A__0080       //
//    Drawing ALIP2A__0111       //
///////////////////////////////////
//
// Rel. position in z
      Float_t zSaa2PbRing    = 35.25;  
// Length
      Float_t dzSaa2PbRing   = 65.90;  
// Inner radius
      Float_t rInSaa2PbRing  = 37.00;
// Outer radius at front
      Float_t rOuSaa2PbRingF = 42.74;
// Outer Rradius at rear
      Float_t rOuSaa2PbRingR = 44.58;      
      
      TGeoPcon* shSaa2PbRing  = new TGeoPcon(0., 360., 2);
      z = zSaa2PbRing;
      shSaa2PbRing->DefineSection(0, z, rInSaa2PbRing, rOuSaa2PbRingF);
      z += dzSaa2PbRing;
      shSaa2PbRing->DefineSection(1, z, rInSaa2PbRing, rOuSaa2PbRingR);

      TGeoVolume* voSaa2PbRing  =  new TGeoVolume("YSAA2_PbRing", shSaa2PbRing, kMedPb);


///////////////////////////////////
//    SAA2 Pb Components         //
//    Drawing ALIP2A__0079       //
///////////////////////////////////
      tanAlpha = TMath::Tan(1.89 / 2. * kDegRad);
      TGeoPcon* shSaa2PbComp  = new TGeoPcon(0., 360., 16);
      // Total length 
      Float_t dzSaa2PbComp    = 512.;
      // Length of 1st bellow recess
      Float_t dzSaa2PbCompB1  =  24.;
      // Length of 2nd bellow recess
      Float_t dzSaa2PbCompB2   = 27.;
      // Flange on the SAA1 side Detail A
      // 1st Step
      Float_t dzSaa2PbCompA1  =   1.5;
      Float_t rInSaa2PbCompA1 =  43.0/2.;
      Float_t rOuSaa2PbCompA1 =  53.0/2.;
      // 2nd Step
      Float_t dzSaa2PbCompA2  =   1.5;
      Float_t rInSaa2PbCompA2 =  36.8/2.;
      Float_t rOuSaa2PbCompA2 =  rOuSaa2PbCompA1;
      // Straight section
      Float_t dzSaa2PbCompA3  =  21.0;
      Float_t rInSaa2PbCompA3 =  rInSaa2PbCompA2;
      Float_t rOuSaa2PbCompA3 =  65.2/2.;
      //
      // 1st Section (outer straight, inner 1.89/2. deg opening cone)
      // Length
      Float_t dzSaa2PbComp1   = 146.15;
      // Inner radius at the end 
      Float_t rInSaa2PbComp1  = rInSaa2PbCompA3 + dzSaa2PbComp1 * tanAlpha;
      // Outer radius
      Float_t rOuSaa2PbComp1  = rOuSaa2PbCompA3;
      //
      // 2nd Section (outer straight, inner 1.89/2. deg opening cone)
      // Length 
      Float_t dzSaa2PbComp2   = (dzSaa2PbComp - dzSaa2PbComp1 - dzSaa2PbCompB1 - dzSaa2PbCompB2);
      // Inner radius at the end 
      Float_t rInSaa2PbComp2  = rInSaa2PbComp1 + dzSaa2PbComp2 * tanAlpha;
      // Outer radius
      Float_t rOuSaa2PbComp2  = 86.6/2.;
      //
      // Flange on the SAA3 side (Detail E)
      //
      // Straight Section
      // Length  dzSaa2PbCompB2 - 8.8 = 27 - 8.8 = 18.2
      Float_t dzSaa2PbCompE1  =  18.2;
      Float_t rInSaa2PbCompE1 =  52.0/2.;
      Float_t rOuSaa2PbCompE1 =  86.6/2.;
      // 45 deg transition
      Float_t dzSaa2PbCompE2  =   2.7;
      // 1st Step
      Float_t dzSaa2PbCompE3  =   0.6;
      Float_t rInSaa2PbCompE3 =  52.0/2.+ dzSaa2PbCompE2;
      Float_t rOuSaa2PbCompE3 =  83.0/2.;
      // 2nd Step
      Float_t dzSaa2PbCompE4  =   4.0;
      Float_t rOuSaa2PbCompE4 =  61.6/2.;
      // end
      Float_t dzSaa2PbCompE5  =   1.5;


      //
      // Flange on SAA1 side (Detail A)
      z = 0.;
      // 1st Step
      shSaa2PbComp->DefineSection(  0,  z, rInSaa2PbCompA1, rOuSaa2PbCompA1);
      z += dzSaa2PbCompA1;
      shSaa2PbComp->DefineSection(  1,  z, rInSaa2PbCompA1, rOuSaa2PbCompA1);
      shSaa2PbComp->DefineSection(  2,  z, rInSaa2PbCompA2, rOuSaa2PbCompA2);
      // 2nd Step
      z += dzSaa2PbCompA2;
      shSaa2PbComp->DefineSection(  3,  z, rInSaa2PbCompA2, rOuSaa2PbCompA2);
      shSaa2PbComp->DefineSection(  4,  z, rInSaa2PbCompA3, rOuSaa2PbCompA3);
      // straight section
      z += dzSaa2PbCompA3;
      shSaa2PbComp->DefineSection(  5,  z, rInSaa2PbCompA3, rOuSaa2PbCompA3);
      //
      // Section 1
      z += dzSaa2PbComp1;
      shSaa2PbComp->DefineSection(  6,  z, rInSaa2PbComp1, rOuSaa2PbComp1);
      shSaa2PbComp->DefineSection(  7,  z, rInSaa2PbComp1, rOuSaa2PbComp2);
      //
      // Section 2
      z += dzSaa2PbComp2;
      shSaa2PbComp->DefineSection(  8,  z, rInSaa2PbComp2, rOuSaa2PbComp2);
      //
      // Flange SAA3 side (Detail E)
      z += dzSaa2PbCompE1;
      shSaa2PbComp->DefineSection(  9,  z, rInSaa2PbCompE1, rOuSaa2PbCompE1);
      // 45 deg transition
      z += dzSaa2PbCompE2;
      shSaa2PbComp->DefineSection( 10,  z, rInSaa2PbCompE3, rOuSaa2PbCompE1);
      // 1st step
      z += dzSaa2PbCompE3;
      shSaa2PbComp->DefineSection( 11,  z, rInSaa2PbCompE3, rOuSaa2PbCompE1);
      shSaa2PbComp->DefineSection( 12,  z, rInSaa2PbCompE3, rOuSaa2PbCompE3);
      // 2nd step
      z += dzSaa2PbCompE4;
      shSaa2PbComp->DefineSection( 13,  z, rInSaa2PbCompE3, rOuSaa2PbCompE3);
      shSaa2PbComp->DefineSection( 14,  z, rInSaa2PbCompE3, rOuSaa2PbCompE4);
      // end
      z += dzSaa2PbCompE5;
      shSaa2PbComp->DefineSection( 15,  z, rInSaa2PbCompE3, rOuSaa2PbCompE4);

      TGeoVolume* voSaa2PbComp  =  new TGeoVolume("YSAA2_PbComp", shSaa2PbComp, kMedPbSh);


///////////////////////////////////
//    SAA2 Inner Tube            //
//    Drawing ALIP2A__0083       //
///////////////////////////////////
//
//
//
// Length of saa2:               512.0 cm
// Length of inner tube:         501.7 cm 
// Lenth of bellow recess:        10.3 cm   ( 1.5 + 8.8) 
// Radius at entrance 36.8/2,  d = 0.1
// Radius at exit     52.0/2,  d = 0.1 
//
      const Float_t kSaa2InnerTubeL     =  501.7;    // Length of the tube  
      const Float_t kSaa2InnerTubeRmin  =  36.6/2.;  // Radius at entrance
      const Float_t kSaa2InnerTubeRmax  =  51.8/2.;  // Radius at exit
      const Float_t kSaa2InnerTubeD     =   0.2   ;  // Thickness     
      TGeoPcon*   shSaa2InnerTube = new TGeoPcon(0., 360., 4);
      z = 0.;
      shSaa2InnerTube->DefineSection( 0, z, kSaa2InnerTubeRmin - kSaa2InnerTubeD, kSaa2InnerTubeRmin);
      z += dzSaa2PbCompA2 + dzSaa2PbCompA3;
      shSaa2InnerTube->DefineSection( 1, z, kSaa2InnerTubeRmin - kSaa2InnerTubeD, kSaa2InnerTubeRmin);
      z =  kSaa2InnerTubeL - dzSaa2PbCompE1;
      shSaa2InnerTube->DefineSection( 2, z, kSaa2InnerTubeRmax - kSaa2InnerTubeD, kSaa2InnerTubeRmax);
      z =  kSaa2InnerTubeL;
      shSaa2InnerTube->DefineSection( 3, z, kSaa2InnerTubeRmax - kSaa2InnerTubeD, kSaa2InnerTubeRmax);
      TGeoVolume* voSaa2InnerTube = new TGeoVolume("YSAA2_InnerTube", shSaa2InnerTube, kMedSteelSh);
      
///////////////////////////////////
//    SAA2 Steel Ring            //
//    Drawing ALIP2A__0042       //
///////////////////////////////////
      //  HalfWidth
      Float_t dzSaa2SteelRing = 2.;
      TGeoTube*   shSaa2SteelRing  = new TGeoTube(41.6, 47.6, dzSaa2SteelRing);
      TGeoVolume* voSaa2SteelRing  = new TGeoVolume("YSAA2_SteelRing", shSaa2SteelRing, kMedSteel);

///////////////////////////////////
//    SAA2 Outer Shape           //
//    Drawing ALIP2A__0108       //
///////////////////////////////////

      TGeoPcon* shSaa2  = new TGeoPcon(0., 360., 16);
      kSec = 0.02; // security distance to avoid trivial extrusions
      rmin = kSaa2InnerTubeRmin - kSaa2InnerTubeD - kSec;
      rmax = kSaa2InnerTubeRmax - kSaa2InnerTubeD - kSec;
      // Flange SAA1 side
      z = 0.;
      shSaa2->DefineSection( 0, z, rmin           , rOuSaa2PbCompA1);
      z += dzSaa2PbCompA1 + dzSaa2PbCompA2;
      shSaa2->DefineSection( 1, z, rmin           , rOuSaa2PbCompA1);
      shSaa2->DefineSection( 2, z, rmin           , rInSaa2StEnv1 + dSt);
      z += dzSaa2PbCompA3;
      shSaa2->DefineSection( 3, z, rmin           , rInSaa2StEnv1 + dSt);
      z = zSaa2PbRing;
      shSaa2->DefineSection( 4, z, 0.             , rInSaa2StEnv1 + dSt);
      shSaa2->DefineSection( 5, z, 0.             , rOuSaa2PbRingF);
      z += dzSaa2PbRing;
      shSaa2->DefineSection( 6, z, 0.             , rOuSaa2PbRingR);
      shSaa2->DefineSection( 7, z, 0.             , rInSaa2StEnv1 + dSt);
      z = dzSaa2PbCompA1 + dzSaa2PbCompA2 + dzSaa2StEnv1;
      shSaa2->DefineSection( 8, z, 0.             , rInSaa2StEnv1 + dSt);
      shSaa2->DefineSection( 9, z, 0.             , rInSaa2StEnv2 + dSt);
      z = dzSaa2PbComp - dzSaa2PbCompB2;
      shSaa2->DefineSection(10, z, rmax           , rInSaa2StEnv2 + dSt);
      z += dzSaa2PbCompE1;
      shSaa2->DefineSection(11, z, rmax           , rInSaa2StEnv2 + dSt);
      z += dzSaa2PbCompE2;
      shSaa2->DefineSection(12, z, rInSaa2PbCompE3, rInSaa2StEnv2 + dSt);
      z += (dzSaa2PbCompE3 + dzSaa2PbCompE4);
      shSaa2->DefineSection(13, z, rInSaa2PbCompE3, rInSaa2StEnv2 + dSt);
      shSaa2->DefineSection(14, z, rInSaa2PbCompE3, rOuSaa2PbCompE4);
      z += dzSaa2PbCompE5;
      shSaa2->DefineSection(15, z, rInSaa2PbCompE3, rOuSaa2PbCompE4);

      TGeoVolume* voSaa2  =  new TGeoVolume("YSAA2", shSaa2, kMedAir);
      voSaa2->SetVisibility(0);
// Inner 1.89/2 deg line
      Double_t zref   = dzSaa2PbCompA1 + dzSaa2PbCompA2 + dzSaa2PbCompA3;
      for (Int_t i  = 4; i < 10; i++) {
	  Double_t zp = shSaa2->GetZ(i);
	  Double_t r2 = shSaa2->GetRmax(i);	 
	  Double_t r1 = rmin + (zp -  zref) * TMath::Tan(1.89 / 2. * kDegRad) - kSec;
	  shSaa2->DefineSection(i, zp, r1, r2);
      }

//
//    Assemble SAA2
      voSaa2->AddNode(voSaa2StEnv,     1, gGeoIdentity);
      voSaa2->AddNode(voSaa2PbRing,    1, gGeoIdentity);
      voSaa2->AddNode(voSaa2PbComp,    1, gGeoIdentity);
      voSaa2->AddNode(voSaa2InnerTube, 1, new TGeoTranslation(0., 0., dzSaa2PbCompA1));
      z = (dzSaa2PbComp - dzSaa2PbCompE4 - dzSaa2PbCompE5) + dzSaa2SteelRing;
      voSaa2->AddNode(voSaa2SteelRing, 1, new TGeoTranslation(0., 0., z));


///////////////////////////////////////
//                SAA3               //
///////////////////////////////////////
//
//
//  This is a study performed by S. Maridor
//  The SAA3 has not yet been designed !!!!!!!!
//
///////////////////////////////////
//    SAA3 Outer Shape           //
//    Drawing ALIP2A__0288       //
///////////////////////////////////
      TGeoVolumeAssembly* voSaa3  = new TGeoVolumeAssembly("YSAA3");
///////////////////////////////////
//    SAA3 Concrete cone         //
//    Drawing ALIP2A__0284       //
///////////////////////////////////
//    Block
      TGeoBBox* shSaa3CCBlockO   = new TGeoBBox(80./2., 80./2., 100./2.);
      shSaa3CCBlockO->SetName("Saa3CCBlockO");

      TGeoPcon* shSaa3InnerRegion  = new TGeoPcon(0., 360., 4);
      shSaa3InnerRegion->DefineSection( 0, -60.0, 0., 27.1);
      shSaa3InnerRegion->DefineSection( 1, -23.0, 0., 27.1);
      shSaa3InnerRegion->DefineSection( 2,  29.1, 0., 12.3);
      shSaa3InnerRegion->DefineSection( 3,  60.0, 0., 12.3);
      shSaa3InnerRegion->SetName("Saa3InnerRegion");

      TGeoCompositeShape* shSaa3CCBlock = new TGeoCompositeShape("Saa3CCBlock", "Saa3CCBlockO-Saa3InnerRegion");
      TGeoVolume* voSaa3CCBlock         = new TGeoVolume("YSAA3CCBlock", shSaa3CCBlock, kMedConcSh);     

      
      voSaa3->AddNode(voSaa3CCBlock, 1, gGeoIdentity);
      
//    Plate 1: 240 cm x 80 cm x 100 cm (x 2)
      TGeoVolume* voSaa3SteelPlate1  =  new TGeoVolume("YSAA3SteelPlate1", 
						       new TGeoBBox(240./2., 80./2., 100./2.),
						       kMedSteelSh);
      TGeoVolume* voSaa3SteelPlate11 =  new TGeoVolume("YSAA3SteelPlate11", 
						       new TGeoBBox(240./2., 80./2., 10./2.),
						       kMedSteel);
      voSaa3SteelPlate1->AddNode(voSaa3SteelPlate11, 1, new TGeoTranslation(0., 0., -45.));
      voSaa3->AddNode(voSaa3SteelPlate1, 1, new TGeoTranslation(0., +80., 0.));
      voSaa3->AddNode(voSaa3SteelPlate1, 2, new TGeoTranslation(0., -80., 0.));


//    Plate 2:  80 cm x 80 cm x 100 cm (x 2)
      TGeoVolume* voSaa3SteelPlate2  =  new TGeoVolume("YSAA3SteelPlate2", 
						       new TGeoBBox( 80./2., 80./2., 100./2.),
						       kMedSteelSh);
      TGeoVolume* voSaa3SteelPlate21 =  new TGeoVolume("YSAA3SteelPlate21", 
						       new TGeoBBox( 80./2., 80./2., 10./2.),
						       kMedSteel);
      voSaa3SteelPlate2->AddNode(voSaa3SteelPlate21, 1, new TGeoTranslation(0., 0., -45.));

      voSaa3->AddNode(voSaa3SteelPlate2, 1, new TGeoTranslation(+80, 0., 0.));
      voSaa3->AddNode(voSaa3SteelPlate2, 2, new TGeoTranslation(-80, 0., 0.));


///////////////////////////////////
//    Muon Filter                //
//    Drawing ALIP2A__0105       //
///////////////////////////////////
      // Half Length 
      Float_t dzMuonFilter = 60.;
      
      TGeoBBox*   shMuonFilterO  = new TGeoBBox(550./2., 620./2., dzMuonFilter);
      shMuonFilterO->SetName("FilterO");
      TGeoCombiTrans* trFilter = new TGeoCombiTrans("trFilter", 0., -dzMuonFilter * TMath::Tan(alhc * kDegrad), 0., rotlhc);
      trFilter->RegisterYourself();
      TGeoTube*   shMuonFilterI  = new TGeoTube(0., 48.8, dzMuonFilter + 20.);
      shMuonFilterI->SetName("FilterI");
      TGeoCompositeShape* shMuonFilter = new TGeoCompositeShape("MuonFilter", "FilterO-FilterI:trFilter");
      //
      // !!!!! Needs to be inclined
      TGeoVolume* voMuonFilter = new TGeoVolume("YMuonFilter", shMuonFilter, kMedCastiron);

      // Inner part with higher transport cuts
      Float_t dzMuonFilterH = 50.;
      TGeoBBox*   shMuonFilterOH  = new TGeoBBox(550./2., 620./2., dzMuonFilterH);
      shMuonFilterOH->SetName("FilterOH");
      TGeoTube*   shMuonFilterIH  = new TGeoTube(0., 50., dzMuonFilterH + 5.);
      shMuonFilterIH->SetName("FilterIH");
      TGeoCompositeShape* shMuonFilterH = new TGeoCompositeShape("MuonFilterH", "FilterOH-FilterIH:trFilter");
      TGeoVolume* voMuonFilterH = new TGeoVolume("YMuonFilterH", shMuonFilterH, kMedCastironSh);
      voMuonFilter->AddNode(voMuonFilterH, 1, gGeoIdentity);
      
//  
      TGeoVolumeAssembly* voSaa  = new TGeoVolumeAssembly("YSAA");
//
//    
//    
//
//
//    Starting position of the FA Flange/Tail 
      Float_t ziFaWTail   = 499.0;
//    End of the FA Flange/Tail
      Float_t zoFaWTail   = ziFaWTail + dzFaWTail;
//    Starting position of the FA/SAA1 Joint (2.8 cm overlap with tail)
      Float_t ozFaSaa1    = 2.8;
      Float_t ziFaSaa1    = zoFaWTail - ozFaSaa1;
//    End of the FA/SAA1 Joint
      Float_t zoFaSaa1    = ziFaSaa1 +  dzFaSaa1;
//    Starting position of SAA1 (2.0 cm overlap with joint)     
      Float_t ozSaa1      = 2.;
      Float_t ziSaa1      = zoFaSaa1 - ozSaa1;
//    End of SAA1
      Float_t zoSaa1      = ziSaa1 + dzSaa1;
//    Starting position of SAA1/SAA2 Joint (1.95 cm overlap with SAA1)
      Float_t ziSaa1Saa2  = zoSaa1 - 1.95;
//    End of SAA1/SAA2 Joint
      Float_t zoSaa1Saa2  = ziSaa1Saa2 + dzSaa1Saa2;
//    Starting position of SAA2 (3.1 cm overlap with the joint)
      Float_t ziSaa2      = zoSaa1Saa2 - 3.1;
//    End of SAA2
      Float_t zoSaa2      = ziSaa2 + dzSaa2PbComp;
//    Position of SAA3
      Float_t zcSaa3      = zoSaa2 + 50.;
//    Position of the Muon Filter
      Float_t zcFilter    = 1465.9 + dzMuonFilter;

      voSaa->AddNode(voFaWTail,    1, new TGeoTranslation(0., 0., ziFaWTail));
      voSaa->AddNode(voFaSaa1,     1, new TGeoTranslation(0., 0., ziFaSaa1));
      voSaa->AddNode(voSaa1 ,      1, new TGeoTranslation(0., 0., ziSaa1));
      voSaa->AddNode(voSaa1Saa2,   1, new TGeoTranslation(0., 0., ziSaa1Saa2 - 0.1));
      voSaa->AddNode(voSaa2 ,      1, new TGeoTranslation(0., 0., ziSaa2));
      voSaa->AddNode(voSaa3,       1, new TGeoTranslation(0., 0., zcSaa3));
      

      TGeoRotation* rotxz  = new TGeoRotation("rotxz",   90.,   0., 90.,  90., 180., 0.);
      top->AddNode(voSaa, 1, new TGeoCombiTrans(0., 0., 0., rotxz));
//
//  Mother volume for muon stations 1+2 and shielding material placed between the quadrants
//
      // Position of the dipole
      Float_t ziDipole = 741.;
      
      TGeoPcon* shYOUT1 = new TGeoPcon(0., 360., 24);
      Float_t eps = 1.e-2;
      // FA Tail Section
      for (Int_t iz =  1; iz < 9; iz++) {
	  z = shFaWTail->GetZ(iz+1);
	  if (iz == 8) z -= ozFaSaa1;
	  shYOUT1->DefineSection(iz-1, z + ziFaWTail, shFaWTail->GetRmax(iz+1) + eps, 150.);
      }
      // FA-SAA1 Joint
      z = shYOUT1->GetZ(7);
      
      for (Int_t iz =  9; iz < 17; iz++) 
	  shYOUT1->DefineSection(iz-1, z + shFaSaa1->GetZ(iz-9), shFaSaa1->GetRmax(iz-9) + eps, 150.);

      z = shYOUT1->GetZ(15) - ozSaa1;
      // SAA1  - Dipole
      for (Int_t iz = 17; iz < 24; iz++) 
	  shYOUT1->DefineSection(iz-1, z + shSaa1M->GetZ(iz-13), shSaa1M->GetRmax(iz-13) + eps, 150.); 
      // Distance between dipole and start of SAA1 2deg opening cone
      dz   = ziDipole - (zSaa1StEnv[0] - dSt + zSaa1StEnvS + ziSaa1);
      rOut = rOuSaa1StEnv2 + dz * TMath::Tan(2. * kDegRad);
      
      shYOUT1->DefineSection(23, ziDipole, rOut + eps, 150.);

      InvertPcon(shYOUT1);
      TGeoVolume* voYOUT1 = new TGeoVolume("YOUT1", shYOUT1, kMedAirMu);
      voYOUT1->SetVisibility(0);

      voYOUT1->AddNode(asSaa1ExtraShield, 1, new TGeoCombiTrans(0., 0., - (100.7 + 62.2 + saa1ExtraShieldL / 2. + ziFaWTail), rotxz));
      voYOUT1->AddNode(asFaExtraShield,   1, new TGeoCombiTrans(0., 0., - (16.41 - 1.46 + kFaWring2HWidth + ziFaWTail), rotxz));
      top->AddNode(voYOUT1, 1, gGeoIdentity);
//
//  Mother volume for muon stations 4+5 and trigger stations.
//
      Float_t zoDipole = 1249.;
      
      TGeoPcon* shYOUT21 = new TGeoPcon(0., 360., 14);
      z =  zoDipole;
      shYOUT21->DefineSection(0, z,             rOuSaa1String,       375.);
//    Start of SAA1-SAA2
      z = ziSaa1Saa2;
      shYOUT21->DefineSection(1, z,             rOuSaa1String,       375.);
      shYOUT21->DefineSection(2, z,             rOuSaa1Saa2Steel,    375.);
//    End of SAA1-SAA2
      z = ziSaa2;
      shYOUT21->DefineSection(3, z,             rOuSaa1Saa2Steel,    375.);
//    SAA2
      shYOUT21->DefineSection( 4, z,            rInSaa2StEnv1 + dSt, 375.);
      z = ziSaa2 + zSaa2PbRing;
      shYOUT21->DefineSection( 5, z,            rInSaa2StEnv1 + dSt, 375.);
//    Pb Cone
      shYOUT21->DefineSection( 6, z,            rOuSaa2PbRingF,      375.);
      rmin = rOuSaa2PbRingF + (1380. - z) * TMath::Tan(1.6 * kDegRad);
      shYOUT21->DefineSection( 7, 1380., rmin, 375.);
      shYOUT21->DefineSection( 8, 1380., rmin, 375.);
      z = ziSaa2 + zSaa2PbRing + dzSaa2PbRing;
      shYOUT21->DefineSection( 9, z,            rOuSaa2PbRingR,      375.);
//    Straight Sections
      shYOUT21->DefineSection(10, z,            rInSaa2StEnv1 + dSt, 460.);
      z = ziSaa2 + dzSaa2StEnv1;
      shYOUT21->DefineSection(11, z,            rInSaa2StEnv1 + dSt, 460.);
      shYOUT21->DefineSection(12, z,            rInSaa2StEnv2 + dSt, 460.);
      z += dzSaa2StEnv2;
      shYOUT21->DefineSection(13, z,            rInSaa2StEnv2 + dSt, 460.);
            
      InvertPcon(shYOUT21);
      shYOUT21->SetName("shYOUT21");

      TGeoBBox* shYOUT22 = new TGeoBBox(460. , 200., 65. - 1.5);
      shYOUT22->SetName("shYOUT22");
      
      TGeoTranslation* tYOUT22 = new TGeoTranslation(0., -310. - 200., -zcFilter);
      tYOUT22->SetName("tYOUT22");
      tYOUT22->RegisterYourself();
      

      TGeoCompositeShape* shYOUT2 = new TGeoCompositeShape("shYOUT2", "shYOUT21-shYOUT22:tYOUT22");
      
      TGeoVolume* voYOUT2 = new TGeoVolume("YOUT2", shYOUT2, kMedAirMu);
      voYOUT2->SetVisibility(1);
      voYOUT2->AddNode(voMuonFilter, 1, new TGeoCombiTrans(0., dzMuonFilter * TMath::Tan(alhc * kDegrad), -zcFilter, rotxzlhc));
      top->AddNode(voYOUT2, 1, gGeoIdentity);
}

void AliSHILv3::Init()
{
  //
  // Initialise the muon shield after it has been built
  //
  Int_t i;
  //
  if(AliLog::GetGlobalDebugLevel()>0) {
    printf("\n%s: ",ClassName());
    for(i=0;i<35;i++) printf("*");
    printf(" SHILv3_INIT ");
    for(i=0;i<35;i++) printf("*");
    printf("\n%s: ",ClassName());
    //
    // Here the SHIL initialisation code (if any!)
    for(i=0;i<80;i++) printf("*");
    printf("\n");
  }
}

void AliSHILv3::InvertPcon(TGeoPcon* pcon)
{
//
//  z -> -z
// 
    Int_t nz = pcon->GetNz();
    Double_t* z    = new Double_t[nz];
    Double_t* rmin = new Double_t[nz];
    Double_t* rmax = new Double_t[nz];

    Double_t*  z0    = pcon->GetZ();
    Double_t*  rmin0 = pcon->GetRmin();
    Double_t*  rmax0 = pcon->GetRmax();
    
    for (Int_t i = 0; i < nz; i++) {
	z[i] = z0[i];
	rmin[i] = rmin0[i];
	rmax[i] = rmax0[i];	
    }
    
    for (Int_t i = 0; i < nz; i++) {
	Int_t j = nz - i - 1;
	pcon->DefineSection(i, - z[j], rmin[j], rmax[j]);
    }
    
    delete[] z;
    delete[] rmin;
    delete[] rmax;
}

TGeoPcon* AliSHILv3::MakeShapeFromTemplate(const TGeoPcon* pcon, Float_t drMin, Float_t drMax)
{
    // 
    // Returns new shape based on a template changing
    // the inner radii by drMin and the outer radii by drMax.
    //
    Int_t nz = pcon->GetNz();
    TGeoPcon* cpcon = new TGeoPcon(0., 360., nz);
    for (Int_t i = 0; i < nz; i++) 
	cpcon->DefineSection(i, pcon->GetZ(i), pcon->GetRmin(i) + drMin, pcon->GetRmax(i) + drMax);
    return cpcon;
}


 AliSHILv3.cxx:1
 AliSHILv3.cxx:2
 AliSHILv3.cxx:3
 AliSHILv3.cxx:4
 AliSHILv3.cxx:5
 AliSHILv3.cxx:6
 AliSHILv3.cxx:7
 AliSHILv3.cxx:8
 AliSHILv3.cxx:9
 AliSHILv3.cxx:10
 AliSHILv3.cxx:11
 AliSHILv3.cxx:12
 AliSHILv3.cxx:13
 AliSHILv3.cxx:14
 AliSHILv3.cxx:15
 AliSHILv3.cxx:16
 AliSHILv3.cxx:17
 AliSHILv3.cxx:18
 AliSHILv3.cxx:19
 AliSHILv3.cxx:20
 AliSHILv3.cxx:21
 AliSHILv3.cxx:22
 AliSHILv3.cxx:23
 AliSHILv3.cxx:24
 AliSHILv3.cxx:25
 AliSHILv3.cxx:26
 AliSHILv3.cxx:27
 AliSHILv3.cxx:28
 AliSHILv3.cxx:29
 AliSHILv3.cxx:30
 AliSHILv3.cxx:31
 AliSHILv3.cxx:32
 AliSHILv3.cxx:33
 AliSHILv3.cxx:34
 AliSHILv3.cxx:35
 AliSHILv3.cxx:36
 AliSHILv3.cxx:37
 AliSHILv3.cxx:38
 AliSHILv3.cxx:39
 AliSHILv3.cxx:40
 AliSHILv3.cxx:41
 AliSHILv3.cxx:42
 AliSHILv3.cxx:43
 AliSHILv3.cxx:44
 AliSHILv3.cxx:45
 AliSHILv3.cxx:46
 AliSHILv3.cxx:47
 AliSHILv3.cxx:48
 AliSHILv3.cxx:49
 AliSHILv3.cxx:50
 AliSHILv3.cxx:51
 AliSHILv3.cxx:52
 AliSHILv3.cxx:53
 AliSHILv3.cxx:54
 AliSHILv3.cxx:55
 AliSHILv3.cxx:56
 AliSHILv3.cxx:57
 AliSHILv3.cxx:58
 AliSHILv3.cxx:59
 AliSHILv3.cxx:60
 AliSHILv3.cxx:61
 AliSHILv3.cxx:62
 AliSHILv3.cxx:63
 AliSHILv3.cxx:64
 AliSHILv3.cxx:65
 AliSHILv3.cxx:66
 AliSHILv3.cxx:67
 AliSHILv3.cxx:68
 AliSHILv3.cxx:69
 AliSHILv3.cxx:70
 AliSHILv3.cxx:71
 AliSHILv3.cxx:72
 AliSHILv3.cxx:73
 AliSHILv3.cxx:74
 AliSHILv3.cxx:75
 AliSHILv3.cxx:76
 AliSHILv3.cxx:77
 AliSHILv3.cxx:78
 AliSHILv3.cxx:79
 AliSHILv3.cxx:80
 AliSHILv3.cxx:81
 AliSHILv3.cxx:82
 AliSHILv3.cxx:83
 AliSHILv3.cxx:84
 AliSHILv3.cxx:85
 AliSHILv3.cxx:86
 AliSHILv3.cxx:87
 AliSHILv3.cxx:88
 AliSHILv3.cxx:89
 AliSHILv3.cxx:90
 AliSHILv3.cxx:91
 AliSHILv3.cxx:92
 AliSHILv3.cxx:93
 AliSHILv3.cxx:94
 AliSHILv3.cxx:95
 AliSHILv3.cxx:96
 AliSHILv3.cxx:97
 AliSHILv3.cxx:98
 AliSHILv3.cxx:99
 AliSHILv3.cxx:100
 AliSHILv3.cxx:101
 AliSHILv3.cxx:102
 AliSHILv3.cxx:103
 AliSHILv3.cxx:104
 AliSHILv3.cxx:105
 AliSHILv3.cxx:106
 AliSHILv3.cxx:107
 AliSHILv3.cxx:108
 AliSHILv3.cxx:109
 AliSHILv3.cxx:110
 AliSHILv3.cxx:111
 AliSHILv3.cxx:112
 AliSHILv3.cxx:113
 AliSHILv3.cxx:114
 AliSHILv3.cxx:115
 AliSHILv3.cxx:116
 AliSHILv3.cxx:117
 AliSHILv3.cxx:118
 AliSHILv3.cxx:119
 AliSHILv3.cxx:120
 AliSHILv3.cxx:121
 AliSHILv3.cxx:122
 AliSHILv3.cxx:123
 AliSHILv3.cxx:124
 AliSHILv3.cxx:125
 AliSHILv3.cxx:126
 AliSHILv3.cxx:127
 AliSHILv3.cxx:128
 AliSHILv3.cxx:129
 AliSHILv3.cxx:130
 AliSHILv3.cxx:131
 AliSHILv3.cxx:132
 AliSHILv3.cxx:133
 AliSHILv3.cxx:134
 AliSHILv3.cxx:135
 AliSHILv3.cxx:136
 AliSHILv3.cxx:137
 AliSHILv3.cxx:138
 AliSHILv3.cxx:139
 AliSHILv3.cxx:140
 AliSHILv3.cxx:141
 AliSHILv3.cxx:142
 AliSHILv3.cxx:143
 AliSHILv3.cxx:144
 AliSHILv3.cxx:145
 AliSHILv3.cxx:146
 AliSHILv3.cxx:147
 AliSHILv3.cxx:148
 AliSHILv3.cxx:149
 AliSHILv3.cxx:150
 AliSHILv3.cxx:151
 AliSHILv3.cxx:152
 AliSHILv3.cxx:153
 AliSHILv3.cxx:154
 AliSHILv3.cxx:155
 AliSHILv3.cxx:156
 AliSHILv3.cxx:157
 AliSHILv3.cxx:158
 AliSHILv3.cxx:159
 AliSHILv3.cxx:160
 AliSHILv3.cxx:161
 AliSHILv3.cxx:162
 AliSHILv3.cxx:163
 AliSHILv3.cxx:164
 AliSHILv3.cxx:165
 AliSHILv3.cxx:166
 AliSHILv3.cxx:167
 AliSHILv3.cxx:168
 AliSHILv3.cxx:169
 AliSHILv3.cxx:170
 AliSHILv3.cxx:171
 AliSHILv3.cxx:172
 AliSHILv3.cxx:173
 AliSHILv3.cxx:174
 AliSHILv3.cxx:175
 AliSHILv3.cxx:176
 AliSHILv3.cxx:177
 AliSHILv3.cxx:178
 AliSHILv3.cxx:179
 AliSHILv3.cxx:180
 AliSHILv3.cxx:181
 AliSHILv3.cxx:182
 AliSHILv3.cxx:183
 AliSHILv3.cxx:184
 AliSHILv3.cxx:185
 AliSHILv3.cxx:186
 AliSHILv3.cxx:187
 AliSHILv3.cxx:188
 AliSHILv3.cxx:189
 AliSHILv3.cxx:190
 AliSHILv3.cxx:191
 AliSHILv3.cxx:192
 AliSHILv3.cxx:193
 AliSHILv3.cxx:194
 AliSHILv3.cxx:195
 AliSHILv3.cxx:196
 AliSHILv3.cxx:197
 AliSHILv3.cxx:198
 AliSHILv3.cxx:199
 AliSHILv3.cxx:200
 AliSHILv3.cxx:201
 AliSHILv3.cxx:202
 AliSHILv3.cxx:203
 AliSHILv3.cxx:204
 AliSHILv3.cxx:205
 AliSHILv3.cxx:206
 AliSHILv3.cxx:207
 AliSHILv3.cxx:208
 AliSHILv3.cxx:209
 AliSHILv3.cxx:210
 AliSHILv3.cxx:211
 AliSHILv3.cxx:212
 AliSHILv3.cxx:213
 AliSHILv3.cxx:214
 AliSHILv3.cxx:215
 AliSHILv3.cxx:216
 AliSHILv3.cxx:217
 AliSHILv3.cxx:218
 AliSHILv3.cxx:219
 AliSHILv3.cxx:220
 AliSHILv3.cxx:221
 AliSHILv3.cxx:222
 AliSHILv3.cxx:223
 AliSHILv3.cxx:224
 AliSHILv3.cxx:225
 AliSHILv3.cxx:226
 AliSHILv3.cxx:227
 AliSHILv3.cxx:228
 AliSHILv3.cxx:229
 AliSHILv3.cxx:230
 AliSHILv3.cxx:231
 AliSHILv3.cxx:232
 AliSHILv3.cxx:233
 AliSHILv3.cxx:234
 AliSHILv3.cxx:235
 AliSHILv3.cxx:236
 AliSHILv3.cxx:237
 AliSHILv3.cxx:238
 AliSHILv3.cxx:239
 AliSHILv3.cxx:240
 AliSHILv3.cxx:241
 AliSHILv3.cxx:242
 AliSHILv3.cxx:243
 AliSHILv3.cxx:244
 AliSHILv3.cxx:245
 AliSHILv3.cxx:246
 AliSHILv3.cxx:247
 AliSHILv3.cxx:248
 AliSHILv3.cxx:249
 AliSHILv3.cxx:250
 AliSHILv3.cxx:251
 AliSHILv3.cxx:252
 AliSHILv3.cxx:253
 AliSHILv3.cxx:254
 AliSHILv3.cxx:255
 AliSHILv3.cxx:256
 AliSHILv3.cxx:257
 AliSHILv3.cxx:258
 AliSHILv3.cxx:259
 AliSHILv3.cxx:260
 AliSHILv3.cxx:261
 AliSHILv3.cxx:262
 AliSHILv3.cxx:263
 AliSHILv3.cxx:264
 AliSHILv3.cxx:265
 AliSHILv3.cxx:266
 AliSHILv3.cxx:267
 AliSHILv3.cxx:268
 AliSHILv3.cxx:269
 AliSHILv3.cxx:270
 AliSHILv3.cxx:271
 AliSHILv3.cxx:272
 AliSHILv3.cxx:273
 AliSHILv3.cxx:274
 AliSHILv3.cxx:275
 AliSHILv3.cxx:276
 AliSHILv3.cxx:277
 AliSHILv3.cxx:278
 AliSHILv3.cxx:279
 AliSHILv3.cxx:280
 AliSHILv3.cxx:281
 AliSHILv3.cxx:282
 AliSHILv3.cxx:283
 AliSHILv3.cxx:284
 AliSHILv3.cxx:285
 AliSHILv3.cxx:286
 AliSHILv3.cxx:287
 AliSHILv3.cxx:288
 AliSHILv3.cxx:289
 AliSHILv3.cxx:290
 AliSHILv3.cxx:291
 AliSHILv3.cxx:292
 AliSHILv3.cxx:293
 AliSHILv3.cxx:294
 AliSHILv3.cxx:295
 AliSHILv3.cxx:296
 AliSHILv3.cxx:297
 AliSHILv3.cxx:298
 AliSHILv3.cxx:299
 AliSHILv3.cxx:300
 AliSHILv3.cxx:301
 AliSHILv3.cxx:302
 AliSHILv3.cxx:303
 AliSHILv3.cxx:304
 AliSHILv3.cxx:305
 AliSHILv3.cxx:306
 AliSHILv3.cxx:307
 AliSHILv3.cxx:308
 AliSHILv3.cxx:309
 AliSHILv3.cxx:310
 AliSHILv3.cxx:311
 AliSHILv3.cxx:312
 AliSHILv3.cxx:313
 AliSHILv3.cxx:314
 AliSHILv3.cxx:315
 AliSHILv3.cxx:316
 AliSHILv3.cxx:317
 AliSHILv3.cxx:318
 AliSHILv3.cxx:319
 AliSHILv3.cxx:320
 AliSHILv3.cxx:321
 AliSHILv3.cxx:322
 AliSHILv3.cxx:323
 AliSHILv3.cxx:324
 AliSHILv3.cxx:325
 AliSHILv3.cxx:326
 AliSHILv3.cxx:327
 AliSHILv3.cxx:328
 AliSHILv3.cxx:329
 AliSHILv3.cxx:330
 AliSHILv3.cxx:331
 AliSHILv3.cxx:332
 AliSHILv3.cxx:333
 AliSHILv3.cxx:334
 AliSHILv3.cxx:335
 AliSHILv3.cxx:336
 AliSHILv3.cxx:337
 AliSHILv3.cxx:338
 AliSHILv3.cxx:339
 AliSHILv3.cxx:340
 AliSHILv3.cxx:341
 AliSHILv3.cxx:342
 AliSHILv3.cxx:343
 AliSHILv3.cxx:344
 AliSHILv3.cxx:345
 AliSHILv3.cxx:346
 AliSHILv3.cxx:347
 AliSHILv3.cxx:348
 AliSHILv3.cxx:349
 AliSHILv3.cxx:350
 AliSHILv3.cxx:351
 AliSHILv3.cxx:352
 AliSHILv3.cxx:353
 AliSHILv3.cxx:354
 AliSHILv3.cxx:355
 AliSHILv3.cxx:356
 AliSHILv3.cxx:357
 AliSHILv3.cxx:358
 AliSHILv3.cxx:359
 AliSHILv3.cxx:360
 AliSHILv3.cxx:361
 AliSHILv3.cxx:362
 AliSHILv3.cxx:363
 AliSHILv3.cxx:364
 AliSHILv3.cxx:365
 AliSHILv3.cxx:366
 AliSHILv3.cxx:367
 AliSHILv3.cxx:368
 AliSHILv3.cxx:369
 AliSHILv3.cxx:370
 AliSHILv3.cxx:371
 AliSHILv3.cxx:372
 AliSHILv3.cxx:373
 AliSHILv3.cxx:374
 AliSHILv3.cxx:375
 AliSHILv3.cxx:376
 AliSHILv3.cxx:377
 AliSHILv3.cxx:378
 AliSHILv3.cxx:379
 AliSHILv3.cxx:380
 AliSHILv3.cxx:381
 AliSHILv3.cxx:382
 AliSHILv3.cxx:383
 AliSHILv3.cxx:384
 AliSHILv3.cxx:385
 AliSHILv3.cxx:386
 AliSHILv3.cxx:387
 AliSHILv3.cxx:388
 AliSHILv3.cxx:389
 AliSHILv3.cxx:390
 AliSHILv3.cxx:391
 AliSHILv3.cxx:392
 AliSHILv3.cxx:393
 AliSHILv3.cxx:394
 AliSHILv3.cxx:395
 AliSHILv3.cxx:396
 AliSHILv3.cxx:397
 AliSHILv3.cxx:398
 AliSHILv3.cxx:399
 AliSHILv3.cxx:400
 AliSHILv3.cxx:401
 AliSHILv3.cxx:402
 AliSHILv3.cxx:403
 AliSHILv3.cxx:404
 AliSHILv3.cxx:405
 AliSHILv3.cxx:406
 AliSHILv3.cxx:407
 AliSHILv3.cxx:408
 AliSHILv3.cxx:409
 AliSHILv3.cxx:410
 AliSHILv3.cxx:411
 AliSHILv3.cxx:412
 AliSHILv3.cxx:413
 AliSHILv3.cxx:414
 AliSHILv3.cxx:415
 AliSHILv3.cxx:416
 AliSHILv3.cxx:417
 AliSHILv3.cxx:418
 AliSHILv3.cxx:419
 AliSHILv3.cxx:420
 AliSHILv3.cxx:421
 AliSHILv3.cxx:422
 AliSHILv3.cxx:423
 AliSHILv3.cxx:424
 AliSHILv3.cxx:425
 AliSHILv3.cxx:426
 AliSHILv3.cxx:427
 AliSHILv3.cxx:428
 AliSHILv3.cxx:429
 AliSHILv3.cxx:430
 AliSHILv3.cxx:431
 AliSHILv3.cxx:432
 AliSHILv3.cxx:433
 AliSHILv3.cxx:434
 AliSHILv3.cxx:435
 AliSHILv3.cxx:436
 AliSHILv3.cxx:437
 AliSHILv3.cxx:438
 AliSHILv3.cxx:439
 AliSHILv3.cxx:440
 AliSHILv3.cxx:441
 AliSHILv3.cxx:442
 AliSHILv3.cxx:443
 AliSHILv3.cxx:444
 AliSHILv3.cxx:445
 AliSHILv3.cxx:446
 AliSHILv3.cxx:447
 AliSHILv3.cxx:448
 AliSHILv3.cxx:449
 AliSHILv3.cxx:450
 AliSHILv3.cxx:451
 AliSHILv3.cxx:452
 AliSHILv3.cxx:453
 AliSHILv3.cxx:454
 AliSHILv3.cxx:455
 AliSHILv3.cxx:456
 AliSHILv3.cxx:457
 AliSHILv3.cxx:458
 AliSHILv3.cxx:459
 AliSHILv3.cxx:460
 AliSHILv3.cxx:461
 AliSHILv3.cxx:462
 AliSHILv3.cxx:463
 AliSHILv3.cxx:464
 AliSHILv3.cxx:465
 AliSHILv3.cxx:466
 AliSHILv3.cxx:467
 AliSHILv3.cxx:468
 AliSHILv3.cxx:469
 AliSHILv3.cxx:470
 AliSHILv3.cxx:471
 AliSHILv3.cxx:472
 AliSHILv3.cxx:473
 AliSHILv3.cxx:474
 AliSHILv3.cxx:475
 AliSHILv3.cxx:476
 AliSHILv3.cxx:477
 AliSHILv3.cxx:478
 AliSHILv3.cxx:479
 AliSHILv3.cxx:480
 AliSHILv3.cxx:481
 AliSHILv3.cxx:482
 AliSHILv3.cxx:483
 AliSHILv3.cxx:484
 AliSHILv3.cxx:485
 AliSHILv3.cxx:486
 AliSHILv3.cxx:487
 AliSHILv3.cxx:488
 AliSHILv3.cxx:489
 AliSHILv3.cxx:490
 AliSHILv3.cxx:491
 AliSHILv3.cxx:492
 AliSHILv3.cxx:493
 AliSHILv3.cxx:494
 AliSHILv3.cxx:495
 AliSHILv3.cxx:496
 AliSHILv3.cxx:497
 AliSHILv3.cxx:498
 AliSHILv3.cxx:499
 AliSHILv3.cxx:500
 AliSHILv3.cxx:501
 AliSHILv3.cxx:502
 AliSHILv3.cxx:503
 AliSHILv3.cxx:504
 AliSHILv3.cxx:505
 AliSHILv3.cxx:506
 AliSHILv3.cxx:507
 AliSHILv3.cxx:508
 AliSHILv3.cxx:509
 AliSHILv3.cxx:510
 AliSHILv3.cxx:511
 AliSHILv3.cxx:512
 AliSHILv3.cxx:513
 AliSHILv3.cxx:514
 AliSHILv3.cxx:515
 AliSHILv3.cxx:516
 AliSHILv3.cxx:517
 AliSHILv3.cxx:518
 AliSHILv3.cxx:519
 AliSHILv3.cxx:520
 AliSHILv3.cxx:521
 AliSHILv3.cxx:522
 AliSHILv3.cxx:523
 AliSHILv3.cxx:524
 AliSHILv3.cxx:525
 AliSHILv3.cxx:526
 AliSHILv3.cxx:527
 AliSHILv3.cxx:528
 AliSHILv3.cxx:529
 AliSHILv3.cxx:530
 AliSHILv3.cxx:531
 AliSHILv3.cxx:532
 AliSHILv3.cxx:533
 AliSHILv3.cxx:534
 AliSHILv3.cxx:535
 AliSHILv3.cxx:536
 AliSHILv3.cxx:537
 AliSHILv3.cxx:538
 AliSHILv3.cxx:539
 AliSHILv3.cxx:540
 AliSHILv3.cxx:541
 AliSHILv3.cxx:542
 AliSHILv3.cxx:543
 AliSHILv3.cxx:544
 AliSHILv3.cxx:545
 AliSHILv3.cxx:546
 AliSHILv3.cxx:547
 AliSHILv3.cxx:548
 AliSHILv3.cxx:549
 AliSHILv3.cxx:550
 AliSHILv3.cxx:551
 AliSHILv3.cxx:552
 AliSHILv3.cxx:553
 AliSHILv3.cxx:554
 AliSHILv3.cxx:555
 AliSHILv3.cxx:556
 AliSHILv3.cxx:557
 AliSHILv3.cxx:558
 AliSHILv3.cxx:559
 AliSHILv3.cxx:560
 AliSHILv3.cxx:561
 AliSHILv3.cxx:562
 AliSHILv3.cxx:563
 AliSHILv3.cxx:564
 AliSHILv3.cxx:565
 AliSHILv3.cxx:566
 AliSHILv3.cxx:567
 AliSHILv3.cxx:568
 AliSHILv3.cxx:569
 AliSHILv3.cxx:570
 AliSHILv3.cxx:571
 AliSHILv3.cxx:572
 AliSHILv3.cxx:573
 AliSHILv3.cxx:574
 AliSHILv3.cxx:575
 AliSHILv3.cxx:576
 AliSHILv3.cxx:577
 AliSHILv3.cxx:578
 AliSHILv3.cxx:579
 AliSHILv3.cxx:580
 AliSHILv3.cxx:581
 AliSHILv3.cxx:582
 AliSHILv3.cxx:583
 AliSHILv3.cxx:584
 AliSHILv3.cxx:585
 AliSHILv3.cxx:586
 AliSHILv3.cxx:587
 AliSHILv3.cxx:588
 AliSHILv3.cxx:589
 AliSHILv3.cxx:590
 AliSHILv3.cxx:591
 AliSHILv3.cxx:592
 AliSHILv3.cxx:593
 AliSHILv3.cxx:594
 AliSHILv3.cxx:595
 AliSHILv3.cxx:596
 AliSHILv3.cxx:597
 AliSHILv3.cxx:598
 AliSHILv3.cxx:599
 AliSHILv3.cxx:600
 AliSHILv3.cxx:601
 AliSHILv3.cxx:602
 AliSHILv3.cxx:603
 AliSHILv3.cxx:604
 AliSHILv3.cxx:605
 AliSHILv3.cxx:606
 AliSHILv3.cxx:607
 AliSHILv3.cxx:608
 AliSHILv3.cxx:609
 AliSHILv3.cxx:610
 AliSHILv3.cxx:611
 AliSHILv3.cxx:612
 AliSHILv3.cxx:613
 AliSHILv3.cxx:614
 AliSHILv3.cxx:615
 AliSHILv3.cxx:616
 AliSHILv3.cxx:617
 AliSHILv3.cxx:618
 AliSHILv3.cxx:619
 AliSHILv3.cxx:620
 AliSHILv3.cxx:621
 AliSHILv3.cxx:622
 AliSHILv3.cxx:623
 AliSHILv3.cxx:624
 AliSHILv3.cxx:625
 AliSHILv3.cxx:626
 AliSHILv3.cxx:627
 AliSHILv3.cxx:628
 AliSHILv3.cxx:629
 AliSHILv3.cxx:630
 AliSHILv3.cxx:631
 AliSHILv3.cxx:632
 AliSHILv3.cxx:633
 AliSHILv3.cxx:634
 AliSHILv3.cxx:635
 AliSHILv3.cxx:636
 AliSHILv3.cxx:637
 AliSHILv3.cxx:638
 AliSHILv3.cxx:639
 AliSHILv3.cxx:640
 AliSHILv3.cxx:641
 AliSHILv3.cxx:642
 AliSHILv3.cxx:643
 AliSHILv3.cxx:644
 AliSHILv3.cxx:645
 AliSHILv3.cxx:646
 AliSHILv3.cxx:647
 AliSHILv3.cxx:648
 AliSHILv3.cxx:649
 AliSHILv3.cxx:650
 AliSHILv3.cxx:651
 AliSHILv3.cxx:652
 AliSHILv3.cxx:653
 AliSHILv3.cxx:654
 AliSHILv3.cxx:655
 AliSHILv3.cxx:656
 AliSHILv3.cxx:657
 AliSHILv3.cxx:658
 AliSHILv3.cxx:659
 AliSHILv3.cxx:660
 AliSHILv3.cxx:661
 AliSHILv3.cxx:662
 AliSHILv3.cxx:663
 AliSHILv3.cxx:664
 AliSHILv3.cxx:665
 AliSHILv3.cxx:666
 AliSHILv3.cxx:667
 AliSHILv3.cxx:668
 AliSHILv3.cxx:669
 AliSHILv3.cxx:670
 AliSHILv3.cxx:671
 AliSHILv3.cxx:672
 AliSHILv3.cxx:673
 AliSHILv3.cxx:674
 AliSHILv3.cxx:675
 AliSHILv3.cxx:676
 AliSHILv3.cxx:677
 AliSHILv3.cxx:678
 AliSHILv3.cxx:679
 AliSHILv3.cxx:680
 AliSHILv3.cxx:681
 AliSHILv3.cxx:682
 AliSHILv3.cxx:683
 AliSHILv3.cxx:684
 AliSHILv3.cxx:685
 AliSHILv3.cxx:686
 AliSHILv3.cxx:687
 AliSHILv3.cxx:688
 AliSHILv3.cxx:689
 AliSHILv3.cxx:690
 AliSHILv3.cxx:691
 AliSHILv3.cxx:692
 AliSHILv3.cxx:693
 AliSHILv3.cxx:694
 AliSHILv3.cxx:695
 AliSHILv3.cxx:696
 AliSHILv3.cxx:697
 AliSHILv3.cxx:698
 AliSHILv3.cxx:699
 AliSHILv3.cxx:700
 AliSHILv3.cxx:701
 AliSHILv3.cxx:702
 AliSHILv3.cxx:703
 AliSHILv3.cxx:704
 AliSHILv3.cxx:705
 AliSHILv3.cxx:706
 AliSHILv3.cxx:707
 AliSHILv3.cxx:708
 AliSHILv3.cxx:709
 AliSHILv3.cxx:710
 AliSHILv3.cxx:711
 AliSHILv3.cxx:712
 AliSHILv3.cxx:713
 AliSHILv3.cxx:714
 AliSHILv3.cxx:715
 AliSHILv3.cxx:716
 AliSHILv3.cxx:717
 AliSHILv3.cxx:718
 AliSHILv3.cxx:719
 AliSHILv3.cxx:720
 AliSHILv3.cxx:721
 AliSHILv3.cxx:722
 AliSHILv3.cxx:723
 AliSHILv3.cxx:724
 AliSHILv3.cxx:725
 AliSHILv3.cxx:726
 AliSHILv3.cxx:727
 AliSHILv3.cxx:728
 AliSHILv3.cxx:729
 AliSHILv3.cxx:730
 AliSHILv3.cxx:731
 AliSHILv3.cxx:732
 AliSHILv3.cxx:733
 AliSHILv3.cxx:734
 AliSHILv3.cxx:735
 AliSHILv3.cxx:736
 AliSHILv3.cxx:737
 AliSHILv3.cxx:738
 AliSHILv3.cxx:739
 AliSHILv3.cxx:740
 AliSHILv3.cxx:741
 AliSHILv3.cxx:742
 AliSHILv3.cxx:743
 AliSHILv3.cxx:744
 AliSHILv3.cxx:745
 AliSHILv3.cxx:746
 AliSHILv3.cxx:747
 AliSHILv3.cxx:748
 AliSHILv3.cxx:749
 AliSHILv3.cxx:750
 AliSHILv3.cxx:751
 AliSHILv3.cxx:752
 AliSHILv3.cxx:753
 AliSHILv3.cxx:754
 AliSHILv3.cxx:755
 AliSHILv3.cxx:756
 AliSHILv3.cxx:757
 AliSHILv3.cxx:758
 AliSHILv3.cxx:759
 AliSHILv3.cxx:760
 AliSHILv3.cxx:761
 AliSHILv3.cxx:762
 AliSHILv3.cxx:763
 AliSHILv3.cxx:764
 AliSHILv3.cxx:765
 AliSHILv3.cxx:766
 AliSHILv3.cxx:767
 AliSHILv3.cxx:768
 AliSHILv3.cxx:769
 AliSHILv3.cxx:770
 AliSHILv3.cxx:771
 AliSHILv3.cxx:772
 AliSHILv3.cxx:773
 AliSHILv3.cxx:774
 AliSHILv3.cxx:775
 AliSHILv3.cxx:776
 AliSHILv3.cxx:777
 AliSHILv3.cxx:778
 AliSHILv3.cxx:779
 AliSHILv3.cxx:780
 AliSHILv3.cxx:781
 AliSHILv3.cxx:782
 AliSHILv3.cxx:783
 AliSHILv3.cxx:784
 AliSHILv3.cxx:785
 AliSHILv3.cxx:786
 AliSHILv3.cxx:787
 AliSHILv3.cxx:788
 AliSHILv3.cxx:789
 AliSHILv3.cxx:790
 AliSHILv3.cxx:791
 AliSHILv3.cxx:792
 AliSHILv3.cxx:793
 AliSHILv3.cxx:794
 AliSHILv3.cxx:795
 AliSHILv3.cxx:796
 AliSHILv3.cxx:797
 AliSHILv3.cxx:798
 AliSHILv3.cxx:799
 AliSHILv3.cxx:800
 AliSHILv3.cxx:801
 AliSHILv3.cxx:802
 AliSHILv3.cxx:803
 AliSHILv3.cxx:804
 AliSHILv3.cxx:805
 AliSHILv3.cxx:806
 AliSHILv3.cxx:807
 AliSHILv3.cxx:808
 AliSHILv3.cxx:809
 AliSHILv3.cxx:810
 AliSHILv3.cxx:811
 AliSHILv3.cxx:812
 AliSHILv3.cxx:813
 AliSHILv3.cxx:814
 AliSHILv3.cxx:815
 AliSHILv3.cxx:816
 AliSHILv3.cxx:817
 AliSHILv3.cxx:818
 AliSHILv3.cxx:819
 AliSHILv3.cxx:820
 AliSHILv3.cxx:821
 AliSHILv3.cxx:822
 AliSHILv3.cxx:823
 AliSHILv3.cxx:824
 AliSHILv3.cxx:825
 AliSHILv3.cxx:826
 AliSHILv3.cxx:827
 AliSHILv3.cxx:828
 AliSHILv3.cxx:829
 AliSHILv3.cxx:830
 AliSHILv3.cxx:831
 AliSHILv3.cxx:832
 AliSHILv3.cxx:833
 AliSHILv3.cxx:834
 AliSHILv3.cxx:835
 AliSHILv3.cxx:836
 AliSHILv3.cxx:837
 AliSHILv3.cxx:838
 AliSHILv3.cxx:839
 AliSHILv3.cxx:840
 AliSHILv3.cxx:841
 AliSHILv3.cxx:842
 AliSHILv3.cxx:843
 AliSHILv3.cxx:844
 AliSHILv3.cxx:845
 AliSHILv3.cxx:846
 AliSHILv3.cxx:847
 AliSHILv3.cxx:848
 AliSHILv3.cxx:849
 AliSHILv3.cxx:850
 AliSHILv3.cxx:851
 AliSHILv3.cxx:852
 AliSHILv3.cxx:853
 AliSHILv3.cxx:854
 AliSHILv3.cxx:855
 AliSHILv3.cxx:856
 AliSHILv3.cxx:857
 AliSHILv3.cxx:858
 AliSHILv3.cxx:859
 AliSHILv3.cxx:860
 AliSHILv3.cxx:861
 AliSHILv3.cxx:862
 AliSHILv3.cxx:863
 AliSHILv3.cxx:864
 AliSHILv3.cxx:865
 AliSHILv3.cxx:866
 AliSHILv3.cxx:867
 AliSHILv3.cxx:868
 AliSHILv3.cxx:869
 AliSHILv3.cxx:870
 AliSHILv3.cxx:871
 AliSHILv3.cxx:872
 AliSHILv3.cxx:873
 AliSHILv3.cxx:874
 AliSHILv3.cxx:875
 AliSHILv3.cxx:876
 AliSHILv3.cxx:877
 AliSHILv3.cxx:878
 AliSHILv3.cxx:879
 AliSHILv3.cxx:880
 AliSHILv3.cxx:881
 AliSHILv3.cxx:882
 AliSHILv3.cxx:883
 AliSHILv3.cxx:884
 AliSHILv3.cxx:885
 AliSHILv3.cxx:886
 AliSHILv3.cxx:887
 AliSHILv3.cxx:888
 AliSHILv3.cxx:889
 AliSHILv3.cxx:890
 AliSHILv3.cxx:891
 AliSHILv3.cxx:892
 AliSHILv3.cxx:893
 AliSHILv3.cxx:894
 AliSHILv3.cxx:895
 AliSHILv3.cxx:896
 AliSHILv3.cxx:897
 AliSHILv3.cxx:898
 AliSHILv3.cxx:899
 AliSHILv3.cxx:900
 AliSHILv3.cxx:901
 AliSHILv3.cxx:902
 AliSHILv3.cxx:903
 AliSHILv3.cxx:904
 AliSHILv3.cxx:905
 AliSHILv3.cxx:906
 AliSHILv3.cxx:907
 AliSHILv3.cxx:908
 AliSHILv3.cxx:909
 AliSHILv3.cxx:910
 AliSHILv3.cxx:911
 AliSHILv3.cxx:912
 AliSHILv3.cxx:913
 AliSHILv3.cxx:914
 AliSHILv3.cxx:915
 AliSHILv3.cxx:916
 AliSHILv3.cxx:917
 AliSHILv3.cxx:918
 AliSHILv3.cxx:919
 AliSHILv3.cxx:920
 AliSHILv3.cxx:921
 AliSHILv3.cxx:922
 AliSHILv3.cxx:923
 AliSHILv3.cxx:924
 AliSHILv3.cxx:925
 AliSHILv3.cxx:926
 AliSHILv3.cxx:927
 AliSHILv3.cxx:928
 AliSHILv3.cxx:929
 AliSHILv3.cxx:930
 AliSHILv3.cxx:931
 AliSHILv3.cxx:932
 AliSHILv3.cxx:933
 AliSHILv3.cxx:934
 AliSHILv3.cxx:935
 AliSHILv3.cxx:936
 AliSHILv3.cxx:937
 AliSHILv3.cxx:938
 AliSHILv3.cxx:939
 AliSHILv3.cxx:940
 AliSHILv3.cxx:941
 AliSHILv3.cxx:942
 AliSHILv3.cxx:943
 AliSHILv3.cxx:944
 AliSHILv3.cxx:945
 AliSHILv3.cxx:946
 AliSHILv3.cxx:947
 AliSHILv3.cxx:948
 AliSHILv3.cxx:949
 AliSHILv3.cxx:950
 AliSHILv3.cxx:951
 AliSHILv3.cxx:952
 AliSHILv3.cxx:953
 AliSHILv3.cxx:954
 AliSHILv3.cxx:955
 AliSHILv3.cxx:956
 AliSHILv3.cxx:957
 AliSHILv3.cxx:958
 AliSHILv3.cxx:959
 AliSHILv3.cxx:960
 AliSHILv3.cxx:961
 AliSHILv3.cxx:962
 AliSHILv3.cxx:963
 AliSHILv3.cxx:964
 AliSHILv3.cxx:965
 AliSHILv3.cxx:966
 AliSHILv3.cxx:967
 AliSHILv3.cxx:968
 AliSHILv3.cxx:969
 AliSHILv3.cxx:970
 AliSHILv3.cxx:971
 AliSHILv3.cxx:972
 AliSHILv3.cxx:973
 AliSHILv3.cxx:974
 AliSHILv3.cxx:975
 AliSHILv3.cxx:976
 AliSHILv3.cxx:977
 AliSHILv3.cxx:978
 AliSHILv3.cxx:979
 AliSHILv3.cxx:980
 AliSHILv3.cxx:981
 AliSHILv3.cxx:982
 AliSHILv3.cxx:983
 AliSHILv3.cxx:984
 AliSHILv3.cxx:985
 AliSHILv3.cxx:986
 AliSHILv3.cxx:987
 AliSHILv3.cxx:988
 AliSHILv3.cxx:989
 AliSHILv3.cxx:990
 AliSHILv3.cxx:991
 AliSHILv3.cxx:992
 AliSHILv3.cxx:993
 AliSHILv3.cxx:994
 AliSHILv3.cxx:995
 AliSHILv3.cxx:996
 AliSHILv3.cxx:997
 AliSHILv3.cxx:998
 AliSHILv3.cxx:999
 AliSHILv3.cxx:1000
 AliSHILv3.cxx:1001
 AliSHILv3.cxx:1002
 AliSHILv3.cxx:1003
 AliSHILv3.cxx:1004
 AliSHILv3.cxx:1005
 AliSHILv3.cxx:1006
 AliSHILv3.cxx:1007
 AliSHILv3.cxx:1008
 AliSHILv3.cxx:1009
 AliSHILv3.cxx:1010
 AliSHILv3.cxx:1011
 AliSHILv3.cxx:1012
 AliSHILv3.cxx:1013
 AliSHILv3.cxx:1014
 AliSHILv3.cxx:1015
 AliSHILv3.cxx:1016
 AliSHILv3.cxx:1017
 AliSHILv3.cxx:1018
 AliSHILv3.cxx:1019
 AliSHILv3.cxx:1020
 AliSHILv3.cxx:1021
 AliSHILv3.cxx:1022
 AliSHILv3.cxx:1023
 AliSHILv3.cxx:1024
 AliSHILv3.cxx:1025
 AliSHILv3.cxx:1026
 AliSHILv3.cxx:1027
 AliSHILv3.cxx:1028
 AliSHILv3.cxx:1029
 AliSHILv3.cxx:1030
 AliSHILv3.cxx:1031
 AliSHILv3.cxx:1032
 AliSHILv3.cxx:1033
 AliSHILv3.cxx:1034
 AliSHILv3.cxx:1035
 AliSHILv3.cxx:1036
 AliSHILv3.cxx:1037
 AliSHILv3.cxx:1038
 AliSHILv3.cxx:1039
 AliSHILv3.cxx:1040
 AliSHILv3.cxx:1041
 AliSHILv3.cxx:1042
 AliSHILv3.cxx:1043
 AliSHILv3.cxx:1044
 AliSHILv3.cxx:1045
 AliSHILv3.cxx:1046
 AliSHILv3.cxx:1047
 AliSHILv3.cxx:1048
 AliSHILv3.cxx:1049
 AliSHILv3.cxx:1050
 AliSHILv3.cxx:1051
 AliSHILv3.cxx:1052
 AliSHILv3.cxx:1053
 AliSHILv3.cxx:1054
 AliSHILv3.cxx:1055
 AliSHILv3.cxx:1056
 AliSHILv3.cxx:1057
 AliSHILv3.cxx:1058
 AliSHILv3.cxx:1059
 AliSHILv3.cxx:1060
 AliSHILv3.cxx:1061
 AliSHILv3.cxx:1062
 AliSHILv3.cxx:1063
 AliSHILv3.cxx:1064
 AliSHILv3.cxx:1065
 AliSHILv3.cxx:1066
 AliSHILv3.cxx:1067
 AliSHILv3.cxx:1068
 AliSHILv3.cxx:1069
 AliSHILv3.cxx:1070
 AliSHILv3.cxx:1071
 AliSHILv3.cxx:1072
 AliSHILv3.cxx:1073
 AliSHILv3.cxx:1074
 AliSHILv3.cxx:1075
 AliSHILv3.cxx:1076
 AliSHILv3.cxx:1077
 AliSHILv3.cxx:1078
 AliSHILv3.cxx:1079
 AliSHILv3.cxx:1080
 AliSHILv3.cxx:1081
 AliSHILv3.cxx:1082
 AliSHILv3.cxx:1083
 AliSHILv3.cxx:1084
 AliSHILv3.cxx:1085
 AliSHILv3.cxx:1086
 AliSHILv3.cxx:1087
 AliSHILv3.cxx:1088
 AliSHILv3.cxx:1089
 AliSHILv3.cxx:1090
 AliSHILv3.cxx:1091
 AliSHILv3.cxx:1092
 AliSHILv3.cxx:1093
 AliSHILv3.cxx:1094
 AliSHILv3.cxx:1095
 AliSHILv3.cxx:1096
 AliSHILv3.cxx:1097
 AliSHILv3.cxx:1098
 AliSHILv3.cxx:1099
 AliSHILv3.cxx:1100
 AliSHILv3.cxx:1101
 AliSHILv3.cxx:1102
 AliSHILv3.cxx:1103
 AliSHILv3.cxx:1104
 AliSHILv3.cxx:1105
 AliSHILv3.cxx:1106
 AliSHILv3.cxx:1107
 AliSHILv3.cxx:1108
 AliSHILv3.cxx:1109
 AliSHILv3.cxx:1110
 AliSHILv3.cxx:1111
 AliSHILv3.cxx:1112
 AliSHILv3.cxx:1113
 AliSHILv3.cxx:1114
 AliSHILv3.cxx:1115
 AliSHILv3.cxx:1116
 AliSHILv3.cxx:1117
 AliSHILv3.cxx:1118
 AliSHILv3.cxx:1119
 AliSHILv3.cxx:1120
 AliSHILv3.cxx:1121
 AliSHILv3.cxx:1122
 AliSHILv3.cxx:1123
 AliSHILv3.cxx:1124
 AliSHILv3.cxx:1125
 AliSHILv3.cxx:1126
 AliSHILv3.cxx:1127
 AliSHILv3.cxx:1128
 AliSHILv3.cxx:1129
 AliSHILv3.cxx:1130
 AliSHILv3.cxx:1131
 AliSHILv3.cxx:1132
 AliSHILv3.cxx:1133
 AliSHILv3.cxx:1134
 AliSHILv3.cxx:1135
 AliSHILv3.cxx:1136
 AliSHILv3.cxx:1137
 AliSHILv3.cxx:1138
 AliSHILv3.cxx:1139
 AliSHILv3.cxx:1140
 AliSHILv3.cxx:1141
 AliSHILv3.cxx:1142
 AliSHILv3.cxx:1143
 AliSHILv3.cxx:1144
 AliSHILv3.cxx:1145
 AliSHILv3.cxx:1146
 AliSHILv3.cxx:1147
 AliSHILv3.cxx:1148
 AliSHILv3.cxx:1149
 AliSHILv3.cxx:1150
 AliSHILv3.cxx:1151
 AliSHILv3.cxx:1152
 AliSHILv3.cxx:1153
 AliSHILv3.cxx:1154
 AliSHILv3.cxx:1155
 AliSHILv3.cxx:1156
 AliSHILv3.cxx:1157
 AliSHILv3.cxx:1158
 AliSHILv3.cxx:1159
 AliSHILv3.cxx:1160
 AliSHILv3.cxx:1161
 AliSHILv3.cxx:1162
 AliSHILv3.cxx:1163
 AliSHILv3.cxx:1164
 AliSHILv3.cxx:1165
 AliSHILv3.cxx:1166
 AliSHILv3.cxx:1167
 AliSHILv3.cxx:1168
 AliSHILv3.cxx:1169
 AliSHILv3.cxx:1170
 AliSHILv3.cxx:1171
 AliSHILv3.cxx:1172
 AliSHILv3.cxx:1173
 AliSHILv3.cxx:1174
 AliSHILv3.cxx:1175
 AliSHILv3.cxx:1176
 AliSHILv3.cxx:1177
 AliSHILv3.cxx:1178
 AliSHILv3.cxx:1179
 AliSHILv3.cxx:1180
 AliSHILv3.cxx:1181
 AliSHILv3.cxx:1182
 AliSHILv3.cxx:1183
 AliSHILv3.cxx:1184
 AliSHILv3.cxx:1185
 AliSHILv3.cxx:1186
 AliSHILv3.cxx:1187
 AliSHILv3.cxx:1188
 AliSHILv3.cxx:1189
 AliSHILv3.cxx:1190
 AliSHILv3.cxx:1191
 AliSHILv3.cxx:1192
 AliSHILv3.cxx:1193
 AliSHILv3.cxx:1194
 AliSHILv3.cxx:1195
 AliSHILv3.cxx:1196
 AliSHILv3.cxx:1197
 AliSHILv3.cxx:1198
 AliSHILv3.cxx:1199
 AliSHILv3.cxx:1200
 AliSHILv3.cxx:1201
 AliSHILv3.cxx:1202
 AliSHILv3.cxx:1203
 AliSHILv3.cxx:1204
 AliSHILv3.cxx:1205
 AliSHILv3.cxx:1206
 AliSHILv3.cxx:1207
 AliSHILv3.cxx:1208
 AliSHILv3.cxx:1209
 AliSHILv3.cxx:1210
 AliSHILv3.cxx:1211
 AliSHILv3.cxx:1212
 AliSHILv3.cxx:1213
 AliSHILv3.cxx:1214
 AliSHILv3.cxx:1215
 AliSHILv3.cxx:1216
 AliSHILv3.cxx:1217
 AliSHILv3.cxx:1218
 AliSHILv3.cxx:1219
 AliSHILv3.cxx:1220
 AliSHILv3.cxx:1221
 AliSHILv3.cxx:1222
 AliSHILv3.cxx:1223
 AliSHILv3.cxx:1224
 AliSHILv3.cxx:1225
 AliSHILv3.cxx:1226
 AliSHILv3.cxx:1227
 AliSHILv3.cxx:1228
 AliSHILv3.cxx:1229
 AliSHILv3.cxx:1230
 AliSHILv3.cxx:1231
 AliSHILv3.cxx:1232
 AliSHILv3.cxx:1233
 AliSHILv3.cxx:1234
 AliSHILv3.cxx:1235
 AliSHILv3.cxx:1236
 AliSHILv3.cxx:1237
 AliSHILv3.cxx:1238
 AliSHILv3.cxx:1239
 AliSHILv3.cxx:1240
 AliSHILv3.cxx:1241
 AliSHILv3.cxx:1242
 AliSHILv3.cxx:1243
 AliSHILv3.cxx:1244
 AliSHILv3.cxx:1245
 AliSHILv3.cxx:1246
 AliSHILv3.cxx:1247
 AliSHILv3.cxx:1248
 AliSHILv3.cxx:1249
 AliSHILv3.cxx:1250
 AliSHILv3.cxx:1251
 AliSHILv3.cxx:1252
 AliSHILv3.cxx:1253
 AliSHILv3.cxx:1254
 AliSHILv3.cxx:1255
 AliSHILv3.cxx:1256
 AliSHILv3.cxx:1257
 AliSHILv3.cxx:1258
 AliSHILv3.cxx:1259
 AliSHILv3.cxx:1260
 AliSHILv3.cxx:1261
 AliSHILv3.cxx:1262
 AliSHILv3.cxx:1263
 AliSHILv3.cxx:1264
 AliSHILv3.cxx:1265
 AliSHILv3.cxx:1266
 AliSHILv3.cxx:1267
 AliSHILv3.cxx:1268
 AliSHILv3.cxx:1269
 AliSHILv3.cxx:1270
 AliSHILv3.cxx:1271
 AliSHILv3.cxx:1272
 AliSHILv3.cxx:1273
 AliSHILv3.cxx:1274
 AliSHILv3.cxx:1275
 AliSHILv3.cxx:1276
 AliSHILv3.cxx:1277
 AliSHILv3.cxx:1278
 AliSHILv3.cxx:1279
 AliSHILv3.cxx:1280
 AliSHILv3.cxx:1281
 AliSHILv3.cxx:1282
 AliSHILv3.cxx:1283
 AliSHILv3.cxx:1284
 AliSHILv3.cxx:1285
 AliSHILv3.cxx:1286
 AliSHILv3.cxx:1287
 AliSHILv3.cxx:1288
 AliSHILv3.cxx:1289
 AliSHILv3.cxx:1290
 AliSHILv3.cxx:1291
 AliSHILv3.cxx:1292
 AliSHILv3.cxx:1293
 AliSHILv3.cxx:1294
 AliSHILv3.cxx:1295
 AliSHILv3.cxx:1296
 AliSHILv3.cxx:1297
 AliSHILv3.cxx:1298
 AliSHILv3.cxx:1299
 AliSHILv3.cxx:1300
 AliSHILv3.cxx:1301
 AliSHILv3.cxx:1302
 AliSHILv3.cxx:1303
 AliSHILv3.cxx:1304
 AliSHILv3.cxx:1305
 AliSHILv3.cxx:1306
 AliSHILv3.cxx:1307
 AliSHILv3.cxx:1308
 AliSHILv3.cxx:1309
 AliSHILv3.cxx:1310
 AliSHILv3.cxx:1311
 AliSHILv3.cxx:1312
 AliSHILv3.cxx:1313
 AliSHILv3.cxx:1314
 AliSHILv3.cxx:1315
 AliSHILv3.cxx:1316
 AliSHILv3.cxx:1317
 AliSHILv3.cxx:1318
 AliSHILv3.cxx:1319
 AliSHILv3.cxx:1320
 AliSHILv3.cxx:1321
 AliSHILv3.cxx:1322
 AliSHILv3.cxx:1323
 AliSHILv3.cxx:1324
 AliSHILv3.cxx:1325
 AliSHILv3.cxx:1326
 AliSHILv3.cxx:1327
 AliSHILv3.cxx:1328
 AliSHILv3.cxx:1329
 AliSHILv3.cxx:1330
 AliSHILv3.cxx:1331
 AliSHILv3.cxx:1332
 AliSHILv3.cxx:1333
 AliSHILv3.cxx:1334
 AliSHILv3.cxx:1335
 AliSHILv3.cxx:1336
 AliSHILv3.cxx:1337
 AliSHILv3.cxx:1338
 AliSHILv3.cxx:1339
 AliSHILv3.cxx:1340
 AliSHILv3.cxx:1341
 AliSHILv3.cxx:1342
 AliSHILv3.cxx:1343
 AliSHILv3.cxx:1344
 AliSHILv3.cxx:1345
 AliSHILv3.cxx:1346
 AliSHILv3.cxx:1347
 AliSHILv3.cxx:1348
 AliSHILv3.cxx:1349
 AliSHILv3.cxx:1350
 AliSHILv3.cxx:1351
 AliSHILv3.cxx:1352
 AliSHILv3.cxx:1353
 AliSHILv3.cxx:1354
 AliSHILv3.cxx:1355
 AliSHILv3.cxx:1356
 AliSHILv3.cxx:1357
 AliSHILv3.cxx:1358
 AliSHILv3.cxx:1359
 AliSHILv3.cxx:1360
 AliSHILv3.cxx:1361
 AliSHILv3.cxx:1362
 AliSHILv3.cxx:1363
 AliSHILv3.cxx:1364
 AliSHILv3.cxx:1365
 AliSHILv3.cxx:1366
 AliSHILv3.cxx:1367
 AliSHILv3.cxx:1368
 AliSHILv3.cxx:1369
 AliSHILv3.cxx:1370
 AliSHILv3.cxx:1371
 AliSHILv3.cxx:1372
 AliSHILv3.cxx:1373
 AliSHILv3.cxx:1374
 AliSHILv3.cxx:1375
 AliSHILv3.cxx:1376
 AliSHILv3.cxx:1377
 AliSHILv3.cxx:1378
 AliSHILv3.cxx:1379
 AliSHILv3.cxx:1380
 AliSHILv3.cxx:1381
 AliSHILv3.cxx:1382
 AliSHILv3.cxx:1383
 AliSHILv3.cxx:1384
 AliSHILv3.cxx:1385
 AliSHILv3.cxx:1386
 AliSHILv3.cxx:1387
 AliSHILv3.cxx:1388
 AliSHILv3.cxx:1389
 AliSHILv3.cxx:1390
 AliSHILv3.cxx:1391
 AliSHILv3.cxx:1392
 AliSHILv3.cxx:1393
 AliSHILv3.cxx:1394
 AliSHILv3.cxx:1395
 AliSHILv3.cxx:1396
 AliSHILv3.cxx:1397
 AliSHILv3.cxx:1398
 AliSHILv3.cxx:1399