X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TRD%2FAliTRD.cxx;h=81fab43b8b5a3b5283530b6430686ef893afe55b;hb=8ec526a4da9905e89d34cdeb2c57e12d1c797b41;hp=6402c7333e741fef0b09289900c2c78506e5ce9d;hpb=e0d47c25c6de2c1d18508db99a65e77995ef2968;p=u%2Fmrichter%2FAliRoot.git diff --git a/TRD/AliTRD.cxx b/TRD/AliTRD.cxx index 6402c7333e7..81fab43b8b5 100644 --- a/TRD/AliTRD.cxx +++ b/TRD/AliTRD.cxx @@ -40,105 +40,99 @@ #include "AliConst.h" #include "AliDigit.h" #include "AliLoader.h" +#include "AliLog.h" +#include "AliMC.h" #include "AliMagF.h" #include "AliRun.h" +#include "AliTrackReference.h" + #include "AliTRD.h" #include "AliTRDdigit.h" #include "AliTRDdigitizer.h" #include "AliTRDdigitsManager.h" -#include "AliTRDgeometryFull.h" -#include "AliTRDgeometryHole.h" +#include "AliTRDgeometry.h" #include "AliTRDhit.h" #include "AliTRDpoints.h" #include "AliTRDrawData.h" -#include "AliTrackReference.h" -#include "AliMC.h" +#include "AliTRDSimParam.h" +#include "AliTRDRecParam.h" +#include "AliTRDCommonParam.h" +#include "AliTRDcalibDB.h" ClassImp(AliTRD) //_____________________________________________________________________________ AliTRD::AliTRD() + :AliDetector() + ,fGeometry(0) + ,fGasDensity(0) + ,fFoilDensity(0) + ,fDrawTR(0) + ,fDisplayType(0) { // // Default constructor // - - fIshunt = 0; - fGasMix = 0; - fHits = 0; - fDigits = 0; - - fGeometry = 0; - - fGasDensity = 0; - fFoilDensity = 0; - - fDrawTR = 0; - fDisplayType = 0; } //_____________________________________________________________________________ AliTRD::AliTRD(const char *name, const char *title) - : AliDetector(name,title) + :AliDetector(name,title) + ,fGeometry(0) + ,fGasDensity(0) + ,fFoilDensity(0) + ,fDrawTR(0) + ,fDisplayType(0) { // // Standard constructor for the TRD // - // Check that FRAME is there otherwise we have no place where to - // put TRD - AliModule* frame = gAlice->GetModule("FRAME"); + // Check that FRAME is there otherwise we have no place where to put TRD + AliModule *frame = gAlice->GetModule("FRAME"); if (!frame) { - Error("Ctor","TRD needs FRAME to be present\n"); + AliError("TRD needs FRAME to be present\n"); exit(1); } // Define the TRD geometry if ((frame->IsVersion() == 0) || (frame->IsVersion() == 1)) { - fGeometry = new AliTRDgeometryFull(); + fGeometry = new AliTRDgeometry(); } else { - Error("Ctor","Could not find valid FRAME version\n"); + AliError("Could not find valid FRAME version\n"); exit(1); } // Save the geometry - TDirectory* saveDir = gDirectory; + TDirectory *saveDir = gDirectory; gAlice->GetRunLoader()->CdGAFile(); fGeometry->Write("TRDgeometry"); saveDir->cd(); // Allocate the hit array - fHits = new TClonesArray("AliTRDhit" ,405); + fHits = new TClonesArray("AliTRDhit",405); gAlice->GetMCApp()->AddHitList(fHits); - // Allocate the digits array - fDigits = 0; - - fIshunt = 0; - fGasMix = 1; - - fGasDensity = 0; - fFoilDensity = 0; - - fDrawTR = 0; - fDisplayType = 0; - SetMarkerColor(kWhite); } //_____________________________________________________________________________ -AliTRD::AliTRD(const AliTRD &trd):AliDetector(trd) +AliTRD::AliTRD(const AliTRD &trd) + :AliDetector(trd) + ,fGeometry(trd.fGeometry) + ,fGasDensity(trd.fGasDensity) + ,fFoilDensity(trd.fFoilDensity) + ,fDrawTR(trd.fDrawTR) + ,fDisplayType(trd.fDisplayType) { // // Copy constructor // - ((AliTRD &) trd).Copy(*this); - } //_____________________________________________________________________________ @@ -148,15 +142,14 @@ AliTRD::~AliTRD() // TRD destructor // - fIshunt = 0; - if (fGeometry) { delete fGeometry; - fGeometry = 0; + fGeometry = 0; } + if (fHits) { delete fHits; - fHits = 0; + fHits = 0; } } @@ -167,18 +160,23 @@ void AliTRD::Hits2Digits() // // Create digits // + AliTRDdigitizer digitizer("TRDdigitizer","TRD digitizer class"); - digitizer.SetDebug(GetDebug()); + AliLog::SetClassDebugLevel("TRDdigitizer",AliDebugLevel()); // Initialization digitizer.InitDetector(); - if (!fLoader->TreeH()) fLoader->LoadHits("read"); + if (!fLoader->TreeH()) { + fLoader->LoadHits("read"); + } fLoader->LoadDigits("recreate"); - AliRunLoader* runLoader = fLoader->GetRunLoader(); + + AliRunLoader *runLoader = fLoader->GetRunLoader(); for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) { - digitizer.Open(runLoader->GetFileName().Data(), iEvent); + runLoader->GetEvent(iEvent); + digitizer.Open(runLoader,iEvent); digitizer.MakeDigits(); digitizer.WriteDigits(); } @@ -198,17 +196,21 @@ void AliTRD::Hits2SDigits() AliTRDdigitizer digitizer("TRDdigitizer","TRD digitizer class"); // For the summable digits digitizer.SetSDigits(kTRUE); - digitizer.SetDebug(GetDebug()); + AliLog::SetClassDebugLevel("TRDdigitizer",AliDebugLevel()); // Initialization digitizer.InitDetector(); - if (!fLoader->TreeH()) fLoader->LoadHits("read"); + if (!fLoader->TreeH()) { + fLoader->LoadHits("read"); + } fLoader->LoadSDigits("recreate"); - AliRunLoader* runLoader = fLoader->GetRunLoader(); + + AliRunLoader *runLoader = fLoader->GetRunLoader(); for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) { - digitizer.Open(runLoader->GetFileName().Data(), iEvent); + runLoader->GetEvent(iEvent); + digitizer.Open(runLoader,iEvent); digitizer.MakeDigits(); digitizer.WriteDigits(); } @@ -219,7 +221,7 @@ void AliTRD::Hits2SDigits() } //_____________________________________________________________________________ -AliDigitizer* AliTRD::CreateDigitizer(AliRunDigitizer* manager) const +AliDigitizer *AliTRD::CreateDigitizer(AliRunDigitizer *manager) const { // // Creates a new digitizer object @@ -236,9 +238,9 @@ void AliTRD::SDigits2Digits() // Create final digits from summable digits // - // Create the TRD digitizer + // Create the TRD digitizer AliTRDdigitizer digitizer("TRDdigitizer","TRD digitizer class"); - digitizer.SetDebug(GetDebug()); + AliLog::SetClassDebugLevel("TRDdigitizer",AliDebugLevel()); // Set the parameter digitizer.SetEvent(gAlice->GetEvNumber()); @@ -249,17 +251,19 @@ void AliTRD::SDigits2Digits() // Read the s-digits via digits manager AliTRDdigitsManager sdigitsManager; - sdigitsManager.SetDebug(GetDebug()); + AliLog::SetClassDebugLevel("TRDdigitisManager",AliDebugLevel()); sdigitsManager.SetSDigits(kTRUE); sdigitsManager.CreateArrays(); - if (!fLoader->TreeS()) - if (fLoader->LoadSDigits("read")) - { - Error("SDigits2Digits","Error while reading SDigits for event %d",gAlice->GetEvNumber()); - return; - } - if (!fLoader->TreeS()) return; + if (!fLoader->TreeS()) { + if (fLoader->LoadSDigits("read")) { + return; + } + } + if (!fLoader->TreeS()) { + AliError(Form("Error while reading SDigits for event %d",gAlice->GetEvNumber())); + return; + } sdigitsManager.ReadDigits(fLoader->TreeS()); @@ -270,7 +274,9 @@ void AliTRD::SDigits2Digits() digitizer.SDigits2Digits(); // Store the digits - if (!fLoader->TreeD()) fLoader->MakeTree("D"); + if (!fLoader->TreeD()) { + fLoader->MakeTree("D"); + } if (digitizer.MakeBranch(fLoader->TreeD())){ digitizer.WriteDigits(); } @@ -281,20 +287,19 @@ void AliTRD::SDigits2Digits() void AliTRD::Digits2Raw() { // - // convert digits of the current event to raw data + // Convert digits of the current event to raw data // fLoader->LoadDigits(); - TTree* digits = fLoader->TreeD(); + TTree *digits = fLoader->TreeD(); if (!digits) { - Error("Digits2Raw", "no digits tree"); + AliError("No digits tree"); return; } AliTRDrawData rawWriter; -// rawWriter.SetDebug(2); if (!rawWriter.Digits2Raw(digits)) { - Error("AliTRD::Digits2Raw","The raw writer could not load the digits tree"); + AliError("The raw writer could not load the digits tree"); } fLoader->UnloadDigits(); @@ -311,12 +316,14 @@ void AliTRD::AddHit(Int_t track, Int_t det, Float_t *hits, Int_t q TClonesArray &lhits = *fHits; AliTRDhit *hit = new(lhits[fNhits++]) AliTRDhit(fIshunt,track,det,hits,q); + if (inDrift) { hit->SetDrift(); } else { hit->SetAmplification(); } + if (q < 0) { hit->SetTRphoton(); } @@ -333,8 +340,10 @@ void AliTRD::BuildGeometry() TNode *node, *top; TPGON *pgon; - Float_t rmin, rmax; - Float_t zmax1, zmax2; + Float_t rmin; + Float_t rmax; + Float_t zmax1; + Float_t zmax2; Int_t iPlan; @@ -394,10 +403,10 @@ void AliTRD::BuildGeometry() } thickness += AliTRDgeometry::DrThick(); - rmin = AliTRDgeometry::Rmin() + thickness; - rmax = rmin + AliTRDgeometry::AmThick(); - zmax2 = AliTRDgeometry::Zmax2() + slope * thickness; - zmax1 = zmax2 + slope * AliTRDgeometry::AmThick(); + rmin = AliTRDgeometry::Rmin() + thickness; + rmax = rmin + AliTRDgeometry::AmThick(); + zmax2 = AliTRDgeometry::Zmax2() + slope * thickness; + zmax1 = zmax2 + slope * AliTRDgeometry::AmThick(); for (iPlan = 0; iPlan < AliTRDgeometry::Nplan(); iPlan++) { @@ -431,15 +440,12 @@ void AliTRD::Copy(TObject &trd) const // Copy function // - ((AliTRD &) trd).fGasMix = fGasMix; ((AliTRD &) trd).fGeometry = fGeometry; ((AliTRD &) trd).fGasDensity = fGasDensity; ((AliTRD &) trd).fFoilDensity = fFoilDensity; ((AliTRD &) trd).fDrawTR = fDrawTR; ((AliTRD &) trd).fDisplayType = fDisplayType; - //AliDetector::Copy(trd); - } //_____________________________________________________________________________ @@ -450,10 +456,9 @@ void AliTRD::CreateGeometry() // // Check that FRAME is there otherwise we have no place where to put the TRD - AliModule* frame = gAlice->GetModule("FRAME"); + AliModule *frame = gAlice->GetModule("FRAME"); if (!frame) { - printf(" The TRD needs the FRAME to be defined first\n"); - return; + AliFatal("The TRD needs the FRAME to be defined first"); } fGeometry->CreateGeometry(fIdtmed->GetArray() - 1299); @@ -465,138 +470,104 @@ void AliTRD::CreateMaterials() { // // Create the materials for the TRD - // Origin Y.Foka // Int_t isxfld = gAlice->Field()->Integ(); Float_t sxmgmx = gAlice->Field()->Max(); // For polyethilene (CH2) - Float_t ape[2] = { 12., 1. }; - Float_t zpe[2] = { 6., 1. }; - Float_t wpe[2] = { 1., 2. }; - Float_t dpe = 0.95; + Float_t ape[2] = { 12.011 , 1.0079 }; + Float_t zpe[2] = { 6.0 , 1.0 }; + Float_t wpe[2] = { 1.0 , 2.0 }; + Float_t dpe = 0.95; // 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; + Float_t amy[3] = { 12.011 , 1.0079, 15.9994 }; + Float_t zmy[3] = { 6.0 , 1.0 , 8.0 }; + Float_t wmy[3] = { 5.0 , 4.0 , 2.0 }; + Float_t dmy = 1.39; // For CO2 - Float_t aco[2] = { 12., 16. }; - Float_t zco[2] = { 6., 8. }; - Float_t wco[2] = { 1., 2. }; - Float_t dco = 0.001977; + Float_t aco[2] = { 12.011 , 15.9994 }; + Float_t zco[2] = { 6.0 , 8.0 }; + Float_t wco[2] = { 1.0 , 2.0 }; + Float_t dco = 0.00186; // For water - Float_t awa[2] = { 1., 16. }; - Float_t zwa[2] = { 1., 8. }; - Float_t wwa[2] = { 2., 1. }; - Float_t dwa = 1.0; + Float_t awa[2] = { 1.0079, 15.9994 }; + Float_t zwa[2] = { 1.0 , 8.0 }; + Float_t wwa[2] = { 2.0 , 1.0 }; + Float_t dwa = 1.0; // For isobutane (C4H10) - Float_t ais[2] = { 12., 1. }; - Float_t zis[2] = { 6., 1. }; - Float_t wis[2] = { 4., 10. }; - Float_t dis = 0.00267; + Float_t ais[2] = { 12.011 , 1.0079 }; + Float_t zis[2] = { 6.0 , 1.0 }; + Float_t wis[2] = { 4.0 , 10.0 }; + Float_t dis = 0.00267; // For plexiglas (C5H8O2) - Float_t apg[3] = { 12.011 , 1.0 , 15.9994 }; - Float_t zpg[3] = { 6.0 , 1.0 , 8.0 }; - Float_t wpg[3] = { 5.0 , 8.0 , 2.0 }; - Float_t dpg = 1.18; + Float_t apg[3] = { 12.011 , 1.0079, 15.9994 }; + Float_t zpg[3] = { 6.0 , 1.0 , 8.0 }; + Float_t wpg[3] = { 5.0 , 8.0 , 2.0 }; + Float_t dpg = 1.18; // For epoxy (C18H19O3) - Float_t aEpoxy[3] = { 15.9994 , 1.00794 , 12.0107 }; - Float_t zEpoxy[3] = { 8.0 , 1.0 , 6.0 }; - Float_t wEpoxy[3] = { 3.0 , 19.0 , 18.0 }; + Float_t aEpoxy[3] = { 15.9994, 1.0079, 12.011 }; + Float_t zEpoxy[3] = { 8.0 , 1.0 , 6.0 }; + Float_t wEpoxy[3] = { 3.0 , 19.0 , 18.0 }; Float_t dEpoxy = 1.8 ; // For air - Float_t aAir[4] = { 12.0 , 14.0 , 16.0 , 36.0 }; - Float_t zAir[4] = { 6.0 , 7.0 , 8.0 , 18.0 }; - Float_t wAir[4] = { 0.000124 , 0.755267 , 0.231781 , 0.012827}; + Float_t aAir[4] = { 12.011 , 14.0 , 15.9994 , 36.0 }; + Float_t zAir[4] = { 6.0 , 7.0 , 8.0 , 18.0 }; + Float_t wAir[4] = { 0.000124, 0.755267, 0.231781, 0.012827 }; Float_t dAir = 1.20479E-3; // For G10 - Float_t aG10[4] = { 1.0 , 12.011 , 15.9994 , 28.086 }; - Float_t zG10[4] = { 1.0 , 6.0 , 8.0 , 14.0 }; - //PH Float_t wG10[4] = { 0.148648649 , 0.104054054 , 0.483499056 , 0.241666667 }; - Float_t wG10[4]={0.15201,0.10641,0.49444,0.24714}; + Float_t aG10[4] = { 1.0079 , 12.011 , 15.9994 , 28.086 }; + Float_t zG10[4] = { 1.0 , 6.0 , 8.0 , 14.0 }; + Float_t wG10[4] = { 0.15201 , 0.10641 , 0.49444 , 0.24714 }; Float_t dG10 = 1.7; // For Xe/CO2-gas-mixture - Float_t aXeCO2[3] = { 39.948, 12.0107, 15.9994 }; - Float_t zXeCO2[3] = { 18.0, 6.0, 8.0 }; - Float_t wXeCO2[3] = { 0.85, 0.0375, 0.1125 }; + Float_t aXeCO2[3] = { 131.29 , 12.0107 , 15.9994 }; + Float_t zXeCO2[3] = { 54.0 , 6.0 , 8.0 }; + Float_t wXeCO2[3] = { 8.5 , 1.5 , 3.0 }; // Xe-content of the Xe/CO2-mixture (85% / 15%) - Float_t fxc = .85; - // Xe-content of the Xe/Isobutane-mixture (97% / 3%) - Float_t fxi = .97; - Float_t dxe = .005858; + Float_t fxc = 0.85; + Float_t dxe = 0.00549; + Float_t dgm = fxc * dxe + (1.0 - fxc) * dco; // General tracking parameter - Float_t tmaxfd = -10.; - Float_t stemax = -1e10; - Float_t deemax = -0.1; - Float_t epsil = 1e-4; - Float_t stmin = -0.001; - - Float_t absl, radl, d, buf[1]; - Float_t agm[2], zgm[2], wgm[2]; - Float_t dgm1, dgm2; - Int_t nbuf; + Float_t tmaxfd = -10.0; + Float_t stemax = -1.0e10; + Float_t deemax = -0.1; + Float_t epsil = 1.0e-4; + Float_t stmin = -0.001; ////////////////////////////////////////////////////////////////////////// // Define Materials ////////////////////////////////////////////////////////////////////////// AliMaterial( 1, "Al" , 26.98, 13.0, 2.7 , 8.9 , 37.2); - //AliMaterial( 2, "Air" , 14.61, 7.3, 0.001205, 30420.0 , 67500.0); - AliMaterial( 4, "Xe" , 131.29, 54.0, dxe , 1447.59, 0.0); + AliMaterial( 4, "Xe" , 131.29, 54.0, dxe , 1546.16, 0.0); AliMaterial( 5, "Cu" , 63.54, 29.0, 8.96 , 1.43, 14.8); AliMaterial( 6, "C" , 12.01, 6.0, 2.265 , 18.8 , 74.4); - //AliMaterial(12, "G10" , 20.00, 10.0, 1.7 , 19.4 , 999.0); AliMaterial(15, "Sn" , 118.71, 50.0, 7.31 , 1.21, 14.8); AliMaterial(16, "Si" , 28.09, 14.0, 2.33 , 9.36, 37.2); - //AliMaterial(17, "Epoxy", 17.75, 8.9, 1.8 , 21.82, 999.0); // Mixtures - AliMixture(2, "Air" , aAir, zAir, dAir, 4, wAir); - AliMixture(3, "Polyethilene", ape, zpe, dpe, -2, wpe); - AliMixture(7, "Mylar", amy, zmy, dmy, -3, wmy); - AliMixture(8, "CO2", aco, zco, dco, -2, wco); - AliMixture(9, "Isobutane", ais, zis, dis, -2, wis); - AliMixture(12,"G10", aG10, zG10, dG10, 4, wG10); - AliMixture(13,"Water", awa, zwa, dwa, -2, wwa); - AliMixture(14,"Plexiglas", apg, zpg, dpg, -3, wpg); - AliMixture(17,"Epoxy", aEpoxy,zEpoxy,dEpoxy, -3, wEpoxy); - - // Gas mixtures - Char_t namate[21]=""; - // Xe/CO2-mixture - // Get properties of Xe - //gMC->Gfmate((*fIdmate)[4], namate, agm[0], zgm[0], d, radl, absl, buf, nbuf); - // Get properties of CO2 - //gMC->Gfmate((*fIdmate)[8], namate, agm[1], zgm[1], d, radl, absl, buf, nbuf); - // Create gas mixture - wgm[0] = fxc; - wgm[1] = 1. - fxc; - dgm1 = wgm[0] * dxe + wgm[1] * dco; - AliMixture(10, "Gas mixture 1", aXeCO2, zXeCO2, dgm1, 3, wXeCO2); - - // Xe/Isobutane-mixture - // Get properties of Xe - gMC->Gfmate((*fIdmate)[4], namate, agm[0], zgm[0], d, radl, absl, buf, nbuf); - // Get properties of Isobutane - gMC->Gfmate((*fIdmate)[9], namate, agm[1], zgm[1], d, radl, absl, buf, nbuf); - // Create gas mixture - wgm[0] = fxi; - wgm[1] = 1. - fxi; - dgm2 = wgm[0] * dxe + wgm[1] * dis; - AliMixture(11, "Gas mixture 2", agm, zgm, dgm2, 2, wgm); - + AliMixture(2, "Air" , aAir, zAir, dAir, 4, wAir ); + AliMixture(3, "Polyethilene", ape, zpe, dpe, -2, wpe ); + AliMixture(7, "Mylar", amy, zmy, dmy, -3, wmy ); + AliMixture(8, "CO2", aco, zco, dco, -2, wco ); + AliMixture(9, "Isobutane", ais, zis, dis, -2, wis ); + AliMixture(10,"Gas mixture", aXeCO2, zXeCO2, dgm, -3, wXeCO2); + AliMixture(12,"G10", aG10, zG10, dG10, 4, wG10 ); + AliMixture(13,"Water", awa, zwa, dwa, -2, wwa ); + AliMixture(14,"Plexiglas", apg, zpg, dpg, -3, wpg ); + AliMixture(17,"Epoxy", aEpoxy, zEpoxy, dEpoxy, -3, wEpoxy); + ////////////////////////////////////////////////////////////////////////// // Tracking Media Parameters ////////////////////////////////////////////////////////////////////////// @@ -617,7 +588,7 @@ void AliTRD::CreateMaterials() AliMedium(5, "Padplane", 5, 1, isxfld, sxmgmx , tmaxfd, stemax, deemax, epsil, stmin); // Fee + cables - AliMedium(6, "Readout", 1, 0, isxfld, sxmgmx + AliMedium(6, "Readout", 5, 0, isxfld, sxmgmx , tmaxfd, stemax, deemax, epsil, stmin); // C frame AliMedium(7, "C Frame", 6, 0, isxfld, sxmgmx @@ -625,16 +596,9 @@ void AliTRD::CreateMaterials() // Mylar foils AliMedium(8, "Mylar", 7, 0, isxfld, sxmgmx , tmaxfd, stemax, deemax, epsil, stmin); - if (fGasMix == 1) { - // Gas-mixture (Xe/CO2) - AliMedium(9, "Gas-mix", 10, 1, isxfld, sxmgmx - , tmaxfd, stemax, deemax, epsil, stmin); - } - else { - // Gas-mixture (Xe/Isobutane) - AliMedium(9, "Gas-mix", 11, 1, isxfld, sxmgmx - , tmaxfd, stemax, deemax, epsil, stmin); - } + // Gas-mixture (Xe/CO2) + AliMedium(9, "Gas-mix", 10, 1, isxfld, sxmgmx + , tmaxfd, stemax, deemax, epsil, stmin); // Nomex-honeycomb (use carbon for the time being) AliMedium(10, "Nomex", 6, 0, isxfld, sxmgmx , tmaxfd, stemax, deemax, epsil, stmin); @@ -684,17 +648,18 @@ void AliTRD::CreateMaterials() AliMedium(25, "Serv-Cu" , 5, 0, isxfld, sxmgmx , tmaxfd, stemax, deemax, epsil, stmin); + // Special tracking options for charged particles for XeCO2 + gMC->Gstpar((* fIdtmed)[9],"DRAY",1.0); + gMC->Gstpar((* fIdtmed)[9],"STRA",1.0); + // Save the density values for the TRD absorbtion fFoilDensity = dmy; - if (fGasMix == 1) - fGasDensity = dgm1; - else - fGasDensity = dgm2; + fGasDensity = dgm; } //_____________________________________________________________________________ -void AliTRD::DrawModule() +void AliTRD::DrawModule() const { // // Draw a shaded view of the Transition Radiation Detector version 0 @@ -728,17 +693,7 @@ void AliTRD::DrawModule() gMC->Gsatt("BTR2","SEEN", 0); gMC->Gsatt("BTR3","SEEN", 0); gMC->Gsatt("UTR1","SEEN", 0); - if (fGeometry->GetPHOShole()) - gMC->Gsatt("UTR2","SEEN", 0); - if (fGeometry->GetRICHhole()) - gMC->Gsatt("UTR3","SEEN", 0); } -// gMC->Gsatt("UCII","SEEN", 0); -// gMC->Gsatt("UCIM","SEEN", 0); -// gMC->Gsatt("UCIO","SEEN", 0); -// gMC->Gsatt("UL02","SEEN", 1); -// gMC->Gsatt("UL05","SEEN", 1); -// gMC->Gsatt("UL06","SEEN", 1); gMC->Gdopt("hide", "on"); gMC->Gdopt("shad", "on"); @@ -758,6 +713,7 @@ Int_t AliTRD::DistancetoPrimitive(Int_t , Int_t ) // // Distance between the mouse and the TRD detector on the screen // Dummy routine + // return 9999; @@ -770,34 +726,12 @@ void AliTRD::Init() // Initialize the TRD detector after the geometry has been created // - Int_t i; + AliDebug(1,"++++++++++++++++++++++++++++++++++++++++++++++"); - if (fDebug) { - printf("\n%s: ",ClassName()); - for (i = 0; i < 35; i++) printf("*"); - printf(" TRD_INIT "); - for (i = 0; i < 35; i++) printf("*"); - printf("\n"); - } - - if (fGeometry->IsVersion() == 1) { - printf("%s: Full geometry version initialized\n",ClassName()); - if (fGeometry->GetPHOShole()) - printf("%s: Leave space in front of PHOS free\n",ClassName()); - if (fGeometry->GetRICHhole()) - printf("%s: Leave space in front of RICH free\n",ClassName()); - } - else { - printf("%s: Not a valid geometry\n",ClassName()); + if (fGeometry->IsVersion() != 1) { + AliError("Not a valid geometry"); } - if (fGasMix == 1) { - printf("%s: Gas Mixture: 85%% Xe + 15%% CO2\n",ClassName()); - } - else { - printf("%s: Gas Mixture: 97%% Xe + 3%% Isobutane\n",ClassName()); - } - } //_____________________________________________________________________________ @@ -808,18 +742,19 @@ void AliTRD::LoadPoints(Int_t ) // Hit originating from TR photons are given a different color // - //if (!fDrawTR) { - // AliDetector::LoadPoints(track); - // return; - //} - - if (fHits == 0) return; + if (fHits == 0) { + return; + } - Int_t nhits = fHits->GetEntriesFast(); - if (nhits == 0) return; + Int_t nhits = fHits->GetEntriesFast(); + if (nhits == 0) { + return; + } Int_t tracks = gAlice->GetMCApp()->GetNtrack(); - if (fPoints == 0) fPoints = new TObjArray(tracks); + if (fPoints == 0) { + fPoints = new TObjArray(tracks); + } AliTRDhit *ahit; @@ -871,7 +806,8 @@ void AliTRD::LoadPoints(Int_t ) } // TR photon hits - else if ((ahit->GetCharge() < 0) && (fDrawTR)) { + else if ((ahit->GetCharge() < 0) && + (fDrawTR)) { trk = ahit->GetTrack(); if (ntrkT[trk] == limiT[trk]) { @@ -938,7 +874,7 @@ void AliTRD::LoadPoints(Int_t ) } //_____________________________________________________________________________ -void AliTRD::MakeBranch(Option_t* option) +void AliTRD::MakeBranch(Option_t *option) { // // Create Tree branches for the TRD digits. @@ -948,13 +884,15 @@ void AliTRD::MakeBranch(Option_t* option) Char_t branchname[15]; sprintf(branchname,"%s",GetName()); - const char *cD = strstr(option,"D"); + const Char_t *cD = strstr(option,"D"); AliDetector::MakeBranch(option); - if (fDigits && gAlice->TreeD() && cD) { + if (fDigits && + gAlice->TreeD() && + cD) { MakeBranchInTree(gAlice->TreeD(),branchname,&fDigits,buffersize,0); - } + } } @@ -966,7 +904,10 @@ void AliTRD::ResetDigits() // fNdigits = 0; - if (fDigits) fDigits->Clear(); + + if (fDigits) { + fDigits->Clear(); + } } @@ -977,53 +918,14 @@ void AliTRD::SetTreeAddress() // Set the branch addresses for the trees. // - if ( fLoader->TreeH() && (fHits == 0x0)) { + if (fLoader->TreeH() && + (fHits == 0x0)) { fHits = new TClonesArray("AliTRDhit",405); } AliDetector::SetTreeAddress(); } -//_____________________________________________________________________________ -void AliTRD::SetGasMix(Int_t imix) -{ - // - // Defines the gas mixture (imix=0: Xe/Isobutane imix=1: Xe/CO2) - // - - if ((imix < 0) || (imix > 1)) { - printf("Wrong input value: %d\n",imix); - printf("Use standard setting\n"); - fGasMix = 1; - return; - } - - fGasMix = imix; - -} - -//_____________________________________________________________________________ -void AliTRD::SetPHOShole() -{ - // - // Selects a geometry with a hole in front of the PHOS - // - - fGeometry->SetPHOShole(); - -} - -//_____________________________________________________________________________ -void AliTRD::SetRICHhole() -{ - // - // Selects a geometry with a hole in front of the RICH - // - - fGeometry->SetRICHhole(); - -} - //_____________________________________________________________________________ AliTRD &AliTRD::operator=(const AliTRD &trd) { @@ -1032,6 +934,7 @@ AliTRD &AliTRD::operator=(const AliTRD &trd) // if (this != &trd) ((AliTRD &) trd).Copy(*this); + return *this; }