X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliLegoGenerator.cxx;h=e6ba5e14b94ad6abf2581e88c77c429d416ac09d;hb=d4ed52153650b8718603186529e6ffb73b762994;hp=bfda2539c5dbfb5156bb4e37519c360b44d5d1d2;hpb=65fb704d5a3c40dcad260b5c6ceb87aaa8697172;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliLegoGenerator.cxx b/STEER/AliLegoGenerator.cxx index bfda2539c5d..e6ba5e14b94 100644 --- a/STEER/AliLegoGenerator.cxx +++ b/STEER/AliLegoGenerator.cxx @@ -13,92 +13,79 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/* -$Log$ -Revision 1.3 2000/10/26 14:15:54 morsch -- Base class now -- Change from theta, phi to general coordinates Coor1, Coor2 -- PropagateCylinder: bug in calculation of distance to limiting radius corrected. +/* $Id$ */ -Revision 1.2 2000/07/13 16:19:09 fca -Mainly coding conventions + some small bug fixes - -Revision 1.1 2000/07/12 08:56:25 fca -Coding convention correction and warning removal - -Revision 1.16 2000/05/26 08:35:03 fca -Move the check on z after z has been retrieved - -Revision 1.15 2000/05/16 13:10:40 fca -New method IsNewTrack and fix for a problem in Father-Daughter relations - -Revision 1.14 2000/04/27 10:38:21 fca -Correct termination of Lego Run and introduce Lego getter in AliRun - -Revision 1.13 2000/04/26 10:17:31 fca -Changes in Lego for G4 compatibility - -Revision 1.12 2000/04/07 11:12:33 fca -G4 compatibility changes - -Revision 1.11 2000/03/22 13:42:26 fca -SetGenerator does not replace an existing generator, ResetGenerator does - -Revision 1.10 2000/02/23 16:25:22 fca -AliVMC and AliGeant3 classes introduced -ReadEuclid moved from AliRun to AliModule - -Revision 1.9 1999/12/03 10:54:01 fca -Fix lego summary - -Revision 1.8 1999/10/01 09:54:33 fca -Correct logics for Lego StepManager - -Revision 1.7 1999/09/29 09:24:29 fca -Introduction of the Copyright and cvs Log -*/ +//------------------------------------------------------------------------ +// Generic Lego generator code +// Uses geantino rays to check the material distributions and detector's +// geometry +// Author: A.Morsch +//------------------------------------------------------------------------ #include "AliLegoGenerator.h" #include "AliRun.h" +#include "AliMC.h" +#include "AliLog.h" ClassImp(AliLegoGenerator) -//___________________________________________ - -AliLegoGenerator::AliLegoGenerator() +//_______________________________________________________________________ +AliLegoGenerator::AliLegoGenerator(): + fRadMin(0), + fRadMax(0), + fZMax(0), + fNCoor1(0), + fNCoor2(0), + fCoor1Min(0), + fCoor1Max(0), + fCoor2Min(0), + fCoor2Max(0), + fCoor1Bin(-1), + fCoor2Bin(-1), + fCurCoor1(0), + fCurCoor2(0) { // // Default Constructor // SetName("Lego"); - - fCoor1Bin = fCoor2Bin = -1; - fCurCoor1 = fCurCoor2 = 0; } +//_______________________________________________________________________ AliLegoGenerator::AliLegoGenerator(Int_t nc1, Float_t c1min, - Float_t c1max, Int_t nc2, - Float_t c2min, Float_t c2max, - Float_t rmin, Float_t rmax, Float_t zmax) : - AliGenerator(0), fRadMin(rmin), fRadMax(rmax), fZMax(zmax), fNCoor1(nc1), - fNCoor2(nc2), fCoor1Bin(nc1), fCoor2Bin(-1), fCurCoor1(0), fCurCoor2(0) - + Float_t c1max, Int_t nc2, + Float_t c2min, Float_t c2max, + Float_t rmin, Float_t rmax, Float_t zmax): + AliGenerator(0), + fRadMin(rmin), + fRadMax(rmax), + fZMax(zmax), + fNCoor1(nc1), + fNCoor2(nc2), + fCoor1Min(0), + fCoor1Max(0), + fCoor2Min(0), + fCoor2Max(0), + fCoor1Bin(nc1), + fCoor2Bin(-1), + fCurCoor1(0), + fCurCoor2(0) { // // Standard generator for Lego rays // + SetName("Lego"); SetCoor1Range(nc1, c1min, c1max); SetCoor2Range(nc2, c2min, c2max); - SetName("Lego"); } -//___________________________________________ +//_______________________________________________________________________ void AliLegoGenerator::Generate() { -// Create a geantino with kinematics corresponding to the current bins -// Here: Coor1 = theta -// Coor2 = phi. - + // Create a geantino with kinematics corresponding to the current bins + // Here: Coor1 = theta + // Coor2 = phi. + // // Rootinos are 0 const Int_t kMpart = 0; @@ -108,11 +95,11 @@ void AliLegoGenerator::Generate() // Prepare for next step if(fCoor1Bin>=fNCoor1-1) if(fCoor2Bin>=fNCoor2-1) { - Warning("Generate","End of Lego Generation"); + AliWarning("End of Lego Generation"); return; } else { fCoor2Bin++; - printf("Generating rays in phi bin:%d\n",fCoor2Bin); + AliDebug(1, Form("Generating rays in phi bin:%d",fCoor2Bin)); fCoor1Bin=0; } else fCoor1Bin++; @@ -140,15 +127,17 @@ void AliLegoGenerator::Generate() Float_t polar[3]={0.,0.,0.}; Int_t ntr; - gAlice->SetTrack(1, 0, kMpart, pmom, orig, polar, 0, kPPrimary, ntr); + gAlice->GetMCApp()->PushTrack(1, -1, kMpart, pmom, orig, polar, 0, kPPrimary, ntr); } -//___________________________________________ -Float_t AliLegoGenerator::PropagateCylinder(Float_t *x, Float_t *v, Float_t r, Float_t z) +//_______________________________________________________________________ +Float_t AliLegoGenerator::PropagateCylinder(Float_t *x, Float_t *v, Float_t r, + Float_t z) { -// Propagate to cylinder from inside - + // + // Propagate to cylinder from inside + // Double_t hnorm, sz, t, t1, t2, t3, sr; Double_t d[3]; const Float_t kSmall = 1e-8;