X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOFv4T0.cxx;h=1b528efa55bbf039525761517b9a65c0f2b28137;hb=5af6242d9936d33fe7c1171fdc1f712842967168;hp=f6c0117e02b95f3c96445af863e2e1af4c1d63db;hpb=d076c8d50a1623661d15ead7bdc66ea74a064a67;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOFv4T0.cxx b/TOF/AliTOFv4T0.cxx index f6c0117e02b..1b528efa55b 100644 --- a/TOF/AliTOFv4T0.cxx +++ b/TOF/AliTOFv4T0.cxx @@ -37,28 +37,38 @@ // // /////////////////////////////////////////////////////////////////////////////// -#include -#include +#include "TBRIK.h" +#include "TGeometry.h" +#include "TLorentzVector.h" +#include "TNode.h" #include "TVirtualMC.h" -#include -#include -#include -#include -#include -#include - -#include "AliLog.h" #include "AliConst.h" +#include "AliLog.h" +#include "AliMagF.h" +#include "AliMC.h" #include "AliRun.h" -#include "AliTOFv4T0.h" + #include "AliTOFGeometry.h" -#include "AliMC.h" - +#include "AliTOFGeometryV4.h" +#include "AliTOFv4T0.h" + +extern TDirectory *gDirectory; +extern TVirtualMC *gMC; + +extern AliRun *gAlice; + ClassImp(AliTOFv4T0) - + //_____________________________________________________________________________ -AliTOFv4T0::AliTOFv4T0() + AliTOFv4T0::AliTOFv4T0(): + fIdFTOA(-1), + fIdFTOB(-1), + fIdFTOC(-1), + fIdFLTA(-1), + fIdFLTB(-1), + fIdFLTC(-1), + fTOFHoles(kFALSE) { // // Default constructor @@ -66,8 +76,15 @@ AliTOFv4T0::AliTOFv4T0() } //_____________________________________________________________________________ -AliTOFv4T0::AliTOFv4T0(const char *name, const char *title) - : AliTOF(name,title,"tzero") +AliTOFv4T0::AliTOFv4T0(const char *name, const char *title): + AliTOF(name,title,"tzero"), + fIdFTOA(-1), + fIdFTOB(-1), + fIdFTOC(-1), + fIdFLTA(-1), + fIdFLTB(-1), + fIdFLTC(-1), + fTOFHoles(kFALSE) { // // Standard constructor @@ -77,13 +94,13 @@ AliTOFv4T0::AliTOFv4T0(const char *name, const char *title) // put TOF - AliModule* frame=gAlice->GetModule("FRAME"); + AliModule* frame = (AliModule*)gAlice->GetModule("FRAME"); if(!frame) { AliFatal("TOF needs FRAME to be present"); } else{ if (fTOFGeometry) delete fTOFGeometry; - fTOFGeometry = new AliTOFGeometry(); + fTOFGeometry = new AliTOFGeometryV4(); if(frame->IsVersion()==1) { AliInfo(Form("Frame version %d", frame->IsVersion())); @@ -95,6 +112,13 @@ AliTOFv4T0::AliTOFv4T0(const char *name, const char *title) fTOFHoles=true;} } fTOFGeometry->SetHoles(fTOFHoles); + + // Save the geometry + TDirectory* saveDir = gDirectory; + gAlice->GetRunLoader()->CdGAFile(); + fTOFGeometry->Write("TOFgeometry"); + saveDir->cd(); + } //____________________________________________________________________________ @@ -106,20 +130,22 @@ void AliTOFv4T0::BuildGeometry() TNode *node, *top; const int kColorTOF = 27; + TGeometry *globalGeometry = (TGeometry*)gAlice->GetGeometry(); + // Find top TNODE - top = gAlice->GetGeometry()->GetNode("alice"); + top = (TNode*)globalGeometry->GetNode("alice"); // Position the different copies - const Float_t krTof =(AliTOFGeometry::Rmax()+AliTOFGeometry::Rmin())/2; - const Float_t khTof = AliTOFGeometry::Rmax()-AliTOFGeometry::Rmin(); - const Int_t kNTof = AliTOFGeometry::NSectors(); + const Float_t krTof =(fTOFGeometry->Rmax()+fTOFGeometry->Rmin())/2.; + const Float_t khTof = fTOFGeometry->Rmax()-fTOFGeometry->Rmin(); + const Int_t kNTof = fTOFGeometry->NSectors(); const Float_t kPi = TMath::Pi(); const Float_t kangle = 2*kPi/kNTof; Float_t ang; // define offset for nodes - Float_t zOffsetC = AliTOFGeometry::MaxhZtof() - AliTOFGeometry::ZlenC()*0.5; - Float_t zOffsetB = AliTOFGeometry::MaxhZtof() - AliTOFGeometry::ZlenC() - AliTOFGeometry::ZlenB()*0.5; + Float_t zOffsetC = fTOFGeometry->MaxhZtof() - fTOFGeometry->ZlenC()*0.5; + Float_t zOffsetB = fTOFGeometry->MaxhZtof() - fTOFGeometry->ZlenC() - fTOFGeometry->ZlenB()*0.5; Float_t zOffsetA = 0.; // Define TOF basic volume @@ -127,11 +153,11 @@ void AliTOFv4T0::BuildGeometry() char nodeName3[7], nodeName4[7], rotMatNum[7]; new TBRIK("S_TOF_C","TOF box","void", - AliTOFGeometry::StripLength()*0.5,khTof*0.5,AliTOFGeometry::ZlenC()*0.5); + fTOFGeometry->StripLength()*0.5, khTof*0.5, fTOFGeometry->ZlenC()*0.5); new TBRIK("S_TOF_B","TOF box","void", - AliTOFGeometry::StripLength()*0.5,khTof*0.5,AliTOFGeometry::ZlenB()*0.5); + fTOFGeometry->StripLength()*0.5, khTof*0.5, fTOFGeometry->ZlenB()*0.5); new TBRIK("S_TOF_A","TOF box","void", - AliTOFGeometry::StripLength()*0.5,khTof*0.5,AliTOFGeometry::ZlenA()*0.5); + fTOFGeometry->StripLength()*0.5, khTof*0.5, fTOFGeometry->ZlenA()*0.5); for (Int_t nodeNum=1;nodeNum<19;nodeNum++){ @@ -156,33 +182,32 @@ void AliTOFv4T0::BuildGeometry() ang = (4.5-nodeNum) * kangle; top->cd(); - node = new TNode(nodeName0,nodeName0,"S_TOF_C",krTof*TMath::Cos(ang),krTof*TMath::Sin(ang),zOffsetC,rotMatNum); + node = new TNode(nodeName0,nodeName0,"S_TOF_C", krTof*TMath::Cos(ang), krTof*TMath::Sin(ang), zOffsetC,rotMatNum); node->SetLineColor(kColorTOF); fNodes->Add(node); top->cd(); - node = new TNode(nodeName1,nodeName1,"S_TOF_C",krTof*TMath::Cos(ang),krTof*TMath::Sin(ang),-zOffsetC,rotMatNum); + node = new TNode(nodeName1,nodeName1,"S_TOF_C", krTof*TMath::Cos(ang), krTof*TMath::Sin(ang),-zOffsetC,rotMatNum); node->SetLineColor(kColorTOF); fNodes->Add(node); top->cd(); - node = new TNode(nodeName2,nodeName2,"S_TOF_B",krTof*TMath::Cos(ang),krTof*TMath::Sin(ang),zOffsetB,rotMatNum); + node = new TNode(nodeName2,nodeName2,"S_TOF_B", krTof*TMath::Cos(ang), krTof*TMath::Sin(ang), zOffsetB,rotMatNum); node->SetLineColor(kColorTOF); fNodes->Add(node); top->cd(); - node = new TNode(nodeName3,nodeName3,"S_TOF_B",krTof*TMath::Cos(ang),krTof*TMath::Sin(ang),-zOffsetB,rotMatNum); + node = new TNode(nodeName3,nodeName3,"S_TOF_B", krTof*TMath::Cos(ang), krTof*TMath::Sin(ang),-zOffsetB,rotMatNum); node->SetLineColor(kColorTOF); fNodes->Add(node); top->cd(); - node = new TNode(nodeName4,nodeName4,"S_TOF_A",krTof*TMath::Cos(ang),krTof*TMath::Sin(ang),zOffsetA,rotMatNum); + node = new TNode(nodeName4,nodeName4,"S_TOF_A", krTof*TMath::Cos(ang), krTof*TMath::Sin(ang), zOffsetA,rotMatNum); node->SetLineColor(kColorTOF); fNodes->Add(node); } // end loop on nodeNum -} - +} //_____________________________________________________________________________ void AliTOFv4T0::CreateGeometry() @@ -209,16 +234,15 @@ void AliTOFv4T0::TOFpc(Float_t xtof, Float_t ytof, Float_t zlenC, // // Definition of the Time Of Fligh Resistive Plate Chambers // xFLT, yFLT, zFLT - sizes of TOF modules (large) - + Float_t ycoor; Float_t par[3]; Int_t *idtmed = fIdtmed->GetArray()-499; Int_t idrotm[100]; Int_t nrot = 0; - Float_t radius = AliTOFGeometry::Rmin()+2.;//cm + Float_t radius = fTOFGeometry->Rmin()+2.;//cm - par[0] = xtof * 0.5; par[1] = ytof * 0.5; par[2] = zlenC * 0.5; @@ -260,13 +284,13 @@ void AliTOFv4T0::TOFpc(Float_t xtof, Float_t ytof, Float_t zlenC, Float_t db = 0.5; // cm Float_t xFLT, xFST, yFLT, zFLTA, zFLTB, zFLTC; - xFLT = AliTOFGeometry::StripLength(); + xFLT = fTOFGeometry->StripLength(); yFLT = ytof; zFLTA = zlenA; zFLTB = zlenB; zFLTC = zlenC; - xFST = xFLT - AliTOFGeometry::DeadBndX()*2; // cm + xFST = xFLT - dynamic_cast(fTOFGeometry)->DeadBndX()*2.; // cm // Sizes of MRPC pads @@ -314,12 +338,12 @@ void AliTOFv4T0::TOFpc(Float_t xtof, Float_t ytof, Float_t zlenC, ///////////////// Detector itself ////////////////////// - const Float_t kdeadBound = AliTOFGeometry::DeadBndZ(); //cm non-sensitive between the pad edge + const Float_t kdeadBound = dynamic_cast(fTOFGeometry)->DeadBndZ(); //cm non-sensitive between the pad edge //and the boundary of the strip - const Int_t knx = AliTOFGeometry::NpadX(); // number of pads along x - const Int_t knz = AliTOFGeometry::NpadZ(); // number of pads along z + const Int_t knx = fTOFGeometry->NpadX(); // number of pads along x + const Int_t knz = fTOFGeometry->NpadZ(); // number of pads along z - Float_t zSenStrip = AliTOFGeometry::ZPad() * AliTOFGeometry::NpadZ(); // cm + Float_t zSenStrip = fTOFGeometry->ZPad() * fTOFGeometry->NpadZ(); // cm Float_t stripWidth = zSenStrip + 2*kdeadBound; par[0] = xFLT*0.5; @@ -460,7 +484,7 @@ void AliTOFv4T0::TOFpc(Float_t xtof, Float_t ytof, Float_t zlenC, ang /= kRaddeg; Float_t zpos = tan(ang)*radius; Float_t ypos= fTOFGeometry->GetHeights(2,istrip); - gMC->Gspos("FSTR",AliTOFGeometry::NStripA()-istrip,"FLTA",0.,ypos, zpos,idrotm[0], "ONLY"); + gMC->Gspos("FSTR",fTOFGeometry->NStripA()-istrip,"FLTA",0.,ypos, zpos,idrotm[0], "ONLY"); AliDebug(1, Form("y = %f, z = %f, , z coord = %f, Rot ang = %f, St. %2i",ypos,zpos,tan(ang)*radius ,ang*kRaddeg,istrip)); } @@ -495,7 +519,7 @@ void AliTOFv4T0::TOFpc(Float_t xtof, Float_t ytof, Float_t zlenC, ////////// Layers after strips ///////////////// // Al Layer thickness (2.3mm) factor 0.7 - Float_t overSpace = AliTOFGeometry::OverSpc();//cm + Float_t overSpace = dynamic_cast(fTOFGeometry)->OverSpc();//cm par[0] = xFLT*0.5; par[1] = 0.115*0.7; // factor 0.7 @@ -699,7 +723,7 @@ void AliTOFv4T0::DrawModule() const gMC->Gdopt("hide","off"); } //_____________________________________________________________________________ -void AliTOFv4T0::DrawDetectorModules() +void AliTOFv4T0::DrawDetectorModules() const { // // Draw a shaded view of the TOF detector version 4 @@ -771,7 +795,7 @@ void AliTOFv4T0::DrawDetectorModules() } //_____________________________________________________________________________ -void AliTOFv4T0::DrawDetectorStrips() +void AliTOFv4T0::DrawDetectorStrips() const { // // Draw a shaded view of the TOF strips for version 4 @@ -891,7 +915,156 @@ void AliTOFv4T0::CreateMaterials() // // Define materials for the Time Of Flight // - AliTOF::CreateMaterials(); + //AliTOF::CreateMaterials(); + + // + // Defines TOF materials for all versions + // Revision: F. Pierella 18-VI-2002 + // + + AliMagF *magneticField = (AliMagF*)gAlice->Field(); + + Int_t isxfld = magneticField->Integ(); + Float_t sxmgmx = magneticField->Max(); + + //--- Quartz (SiO2) to simulate float glass + // density tuned to have correct float glass + // radiation length + Float_t aq[2] = { 28.0855,15.9994 }; + Float_t zq[2] = { 14.,8. }; + Float_t wq[2] = { 1.,2. }; + Float_t dq = 2.55; // std value: 2.2 + Int_t nq = -2; + + // --- Freon C2F4H2 (TOF-TDR pagg.) + // Geant Manual CONS110-1, pag. 43 (Geant, Detector Description and Simulation Tool) + Float_t afre[3] = {12.011,18.998,1.007}; + Float_t zfre[3] = { 6., 9., 1.}; + Float_t wfre[3] = { 2., 4., 2.}; + Float_t densfre = 0.00375; +// http://www.fi.infn.it/sezione/prevprot/gas/freon.html + Int_t nfre = -3; +/* + //-- Isobutane quencher C4H10 (5% in the sensitive mixture) + Float_t aiso[2] = {12.011,1.007}; + Float_t ziso[2] = { 6., 1.}; + Float_t wiso[2] = { 4., 10.}; + Float_t densiso = .......; // (g/cm3) density + Int_t nfre = -2; // < 0 i.e. proportion by number of atoms of each kind + //-- SF6 (5% in the sensitive mixture) + Float_t asf[3] = {32.066,18.998}; + Float_t zsf[3] = { 16., 9.}; + Float_t wsf[3] = { 1., 6.}; + Float_t denssf = .....; // (g/cm3) density + Int_t nfre = -2; // < 0 i.e. proportion by number of atoms of each kind +*/ + // --- CO2 + Float_t ac[2] = {12.,16.}; + Float_t zc[2] = { 6., 8.}; + Float_t wc[2] = { 1., 2.}; + Float_t dc = .001977; + Int_t nc = -2; + // For mylar (C5H4O2) + Float_t amy[3] = { 12., 1., 16. }; + Float_t zmy[3] = { 6., 1., 8. }; + Float_t wmy[3] = { 5., 4., 2. }; + Float_t dmy = 1.39; + Int_t nmy = -3; + // For polyethilene (CH2) - honeycomb - + Float_t ape[2] = { 12., 1. }; + Float_t zpe[2] = { 6., 1. }; + Float_t wpe[2] = { 1., 2. }; + Float_t dpe = 0.935*0.479; //To have 1%X0 for 1cm as for honeycomb + Int_t npe = -2; + // --- G10 + Float_t ag10[4] = { 12.,1.,16.,28. }; + Float_t zg10[4] = { 6.,1., 8.,14. }; + Float_t wmatg10[4] = { .259,.288,.248,.205 }; + Float_t densg10 = 1.7; + Int_t nlmatg10 = -4; + + // plexiglass CH2=C(CH3)CO2CH3 + Float_t aplex[3] = { 12.,1.,16.}; + Float_t zplex[3] = { 6.,1., 8.}; + Float_t wmatplex[3] = {5.,8.,2.}; + Float_t densplex =1.16; + Int_t nplex = -3; + + // ---- ALUMINA (AL203) + Float_t aal[2] = { 27.,16.}; + Float_t zal[2] = { 13., 8.}; + Float_t wmatal[2] = { 2.,3. }; + Float_t densal = 2.3; + Int_t nlmatal = -2; + // -- Water + Float_t awa[2] = { 1., 16. }; + Float_t zwa[2] = { 1., 8. }; + Float_t wwa[2] = { 2., 1. }; + Float_t dwa = 1.0; + Int_t nwa = -2; + +// stainless steel + Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 }; + Float_t zsteel[4] = { 26.,24.,28.,14. }; + Float_t wsteel[4] = { .715,.18,.1,.005 }; + + //AliMaterial(0, "Vacuum$", 1e-16, 1e-16, 1e-16, 1e16, 1e16); + + // AIR + Float_t aAir[4]={12.0107,14.0067,15.9994,39.948}; + Float_t zAir[4]={6.,7.,8.,18.}; + Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827}; + Float_t dAir = 1.20479E-3; + + AliMixture( 1, "Air$", aAir, zAir, dAir, 4, wAir); + + AliMaterial( 2, "Cu $", 63.54, 29.0, 8.96, 1.43, 14.8); + AliMaterial( 3, "C $", 12.01, 6.0, 2.265,18.8, 74.4); + AliMixture ( 4, "Polyethilene$", ape, zpe, dpe, npe, wpe); + AliMixture ( 5, "G10$", ag10, zg10, densg10, nlmatg10, wmatg10); + AliMixture ( 6, "PLE$", aplex, zplex, densplex, nplex, wmatplex); + AliMixture ( 7, "CO2$", ac, zc, dc, nc, wc); + AliMixture ( 8, "ALUMINA$", aal, zal, densal, nlmatal, wmatal); + AliMaterial( 9, "Al $", 26.98, 13., 2.7, 8.9, 37.2); + AliMaterial(10, "C-TRD$", 12.01, 6., 2.265*18.8/69.282*15./100, 18.8, 74.4); // for 15% + AliMixture (11, "Mylar$", amy, zmy, dmy, nmy, wmy); + AliMixture (12, "Freon$", afre, zfre, densfre, nfre, wfre); + AliMixture (13, "Glass$", aq, zq, dq, nq, wq); + AliMixture (14, "Water$", awa, zwa, dwa, nwa, wwa); + AliMixture (15, "STAINLESS STEEL$", asteel, zsteel, 7.88, 4, wsteel); + + Float_t epsil, stmin, deemax, stemax; + + // Previous data + // EPSIL = 0.1 ! Tracking precision, + // STEMAX = 0.1 ! Maximum displacement for multiple scattering + // DEEMAX = 0.1 ! Maximum fractional energy loss, DLS + // STMIN = 0.1 + // + // New data + epsil = .001; // Tracking precision, + stemax = -1.; // Maximum displacement for multiple scattering + deemax = -.3; // Maximum fractional energy loss, DLS + stmin = -.8; + + AliMedium( 1, "Air$" , 1, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium( 2, "Cu $" , 2, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium( 3, "C $" , 3, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium( 4, "Pol$" , 4, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium( 5, "G10$" , 5, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium( 6, "PLE$" , 6, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium( 7, "CO2$" , 7, 0, isxfld, sxmgmx, 10., -.01, -.1, .01, -.01); + AliMedium( 8,"ALUMINA$", 8, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium( 9,"Al Frame$",9, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium(10, "DME-S$", 6, 1, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium(11, "C-TRD$", 10, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium(12, "Myl$" , 11, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium(13, "Fre$" , 12, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium(14, "Fre-S$", 12, 1, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium(15, "Glass$", 13, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium(16, "Water$", 14, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + AliMedium(17, "STEEL$", 15, 0, isxfld, sxmgmx, 10., stemax, deemax, epsil, stmin); + } //_____________________________________________________________________________ @@ -930,19 +1103,26 @@ void AliTOFv4T0::StepManager() TLorentzVector mom, pos; Float_t xm[3],pm[3],xpad[3],ppad[3]; - Float_t hits[14],phi,phid,z; + Float_t hits[14]; Int_t vol[5]; Int_t sector, plate, padx, padz, strip; Int_t copy, padzid, padxid, stripid, i; Int_t *idtmed = fIdtmed->GetArray()-499; Float_t incidenceAngle; - if(gMC->GetMedium()==idtmed[513] && - gMC->IsTrackEntering() && gMC->TrackCharge() - && gMC->CurrentVolID(copy)==fIdSens) + if( + gMC->IsTrackEntering() + && gMC->TrackCharge() + //&& gMC->GetMedium()==idtmed[513] + && gMC->CurrentMedium()==idtmed[513] + && gMC->CurrentVolID(copy)==fIdSens + ) { - AddTrackReference(gAlice->GetMCApp()->GetCurrentTrackNumber()); + AliMC *mcApplication = (AliMC*)gAlice->GetMCApp(); + + AddTrackReference(mcApplication->GetCurrentTrackNumber()); + //AddTrackReference(gAlice->GetMCApp()->GetCurrentTrackNumber()); // getting information about hit volumes @@ -985,17 +1165,27 @@ void AliTOFv4T0::StepManager() incidenceAngle = TMath::ACos(ppad[1])*kRaddeg; - z = pos[2]; + const char * pathA="FTOA"; + const char * pathB="FTOB"; + const char * pathC="FTOC"; + const char * path71="B071"; + const char * path75="B075"; + const char * path74="B074"; + const char* volpath; - plate = -1; + Int_t index=0; + volpath=gMC->CurrentVolOffName(6); + index=gMC->CurrentVolOffID(6,copy); + index=copy; + + + plate=-1; + if(strcmp(pathC,volpath)==0 && index==1)plate=0; + if(strcmp(pathB,volpath)==0 && index==1)plate=1; + if(strcmp(pathA,volpath)==0 && index==0)plate=2; + if(strcmp(pathB,volpath)==0 && index==2)plate=3; + if(strcmp(pathC,volpath)==0 && index==2)plate=4; - if (TMath::Abs(z) <= AliTOFGeometry::ZlenA()*0.5) plate = 2; - if (z < (AliTOFGeometry::ZlenA()*0.5+AliTOFGeometry::ZlenB()) && - z > AliTOFGeometry::ZlenA()*0.5) plate = 1; - if (z >-(AliTOFGeometry::ZlenA()*0.5+AliTOFGeometry::ZlenB()) && - z < -AliTOFGeometry::ZlenA()*0.5) plate = 3; - if (z > (AliTOFGeometry::ZlenA()*0.5+AliTOFGeometry::ZlenB())) plate = 0; - if (z <-(AliTOFGeometry::ZlenA()*0.5+AliTOFGeometry::ZlenB())) plate = 4; if (plate==0) strip=fTOFGeometry->NStripC()-strip; @@ -1017,11 +1207,15 @@ void AliTOFv4T0::StepManager() - phi = pos.Phi(); - if (phi>=0.) phid = phi*kRaddeg; - else phid = phi*kRaddeg + 360.; + volpath=gMC->CurrentVolOffName(8); + index=gMC->CurrentVolOffID(8,copy); + index=copy; - sector = Int_t (phid/20.); + sector=-1; + if(strcmp(path71,volpath)==0 && index <6) sector=12+index; + if(strcmp(path71,volpath)==0 && index >=6) sector=index-3; + if(strcmp(path75,volpath)==0) sector=index-1; + if(strcmp(path74,volpath)==0) sector=10+index; for(i=0;i<3;++i) { hits[i] = pos[i]; @@ -1043,6 +1237,7 @@ void AliTOFv4T0::StepManager() vol[3]= padx; vol[4]= padz; - AddT0Hit(gAlice->GetMCApp()->GetCurrentTrackNumber(),vol, hits); + AddT0Hit(mcApplication->GetCurrentTrackNumber(),vol, hits); + //AddT0Hit(gAlice->GetMCApp()->GetCurrentTrackNumber(),vol, hits); } }