From 6872c613153eed97f7c282c832a716373906c84f Mon Sep 17 00:00:00 2001 From: morsch Date: Fri, 27 Oct 2000 08:13:02 +0000 Subject: [PATCH] Lego generator for phi-z binning. --- STEER/AliLegoGeneratorPhiZ.cxx | 79 ++++++++++++++++++++++++++++++++++ STEER/AliLegoGeneratorPhiZ.h | 33 ++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 STEER/AliLegoGeneratorPhiZ.cxx create mode 100644 STEER/AliLegoGeneratorPhiZ.h diff --git a/STEER/AliLegoGeneratorPhiZ.cxx b/STEER/AliLegoGeneratorPhiZ.cxx new file mode 100644 index 00000000000..88556e1480c --- /dev/null +++ b/STEER/AliLegoGeneratorPhiZ.cxx @@ -0,0 +1,79 @@ +/************************************************************************** + * 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. * + **************************************************************************/ + +/* +$Log$ +*/ + +#include "AliLegoGeneratorPhiZ.h" +#include "AliRun.h" + +ClassImp(AliLegoGeneratorPhiZ) + + +//___________________________________________ +void AliLegoGeneratorPhiZ::Generate() +{ +// Create a geantino with kinematics corresponding to the current bins +// Here: Coor1 = Z +// Coor2 = phi. + + // + // Rootinos are 0 + const Int_t kMpart = 0; + Float_t orig[3], pmom[3]; + Float_t t, cosp, sinp; + if (fCoor1Bin==-1) fCoor1Bin=fNCoor1; + // Prepare for next step + if(fCoor1Bin>=fNCoor1-1) + if(fCoor2Bin>=fNCoor2-1) { + Warning("Generate","End of Lego Generation"); + return; + } else { + fCoor2Bin++; + printf("Generating rays in phi bin:%d\n",fCoor2Bin); + fCoor1Bin=0; + } else fCoor1Bin++; + + fCurCoor1 = (fCoor1Min+(fCoor1Bin+0.5)*(fCoor1Max-fCoor1Min)/fNCoor1); + fCurCoor2 = (fCoor2Min+(fCoor2Bin+0.5)*(fCoor2Max-fCoor2Min)/fNCoor2); + + Float_t phi = fCurCoor1*TMath::Pi()/180.; + + cosp = TMath::Cos(phi); + sinp = TMath::Sin(phi); + + pmom[0] = cosp; + pmom[1] = sinp; + pmom[2] = 0.; + + // --- Where to start + orig[0] = orig[1] = orig[2] = 0; + orig[2] = fCurCoor2; + + Float_t dalicz = 3000; + if (fRadMin > 0) { + t = PropagateCylinder(orig,pmom,fRadMin,dalicz); + orig[0] = pmom[0]*t; + orig[1] = pmom[1]*t; + orig[2] = pmom[2]*t; + if (TMath::Abs(orig[2]) > fZMax) return; + } + + Float_t polar[3]={0.,0.,0.}; + Int_t ntr; + gAlice->SetTrack(1, 0, kMpart, pmom, orig, polar, 0, "LEGO ray", ntr); + +} diff --git a/STEER/AliLegoGeneratorPhiZ.h b/STEER/AliLegoGeneratorPhiZ.h new file mode 100644 index 00000000000..89448382dc9 --- /dev/null +++ b/STEER/AliLegoGeneratorPhiZ.h @@ -0,0 +1,33 @@ +#ifndef ALILEGOGENERATORPHIZ_H +#define ALILEGOGENERATORPHIZ_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +/* $Id$ */ + +/////////////////////////////////////////////////////////////////////////////// +// // +// // +// Utility class to compute and draw Radiation Length Map // +// // +// // +/////////////////////////////////////////////////////////////////////////////// + +#include "AliLegoGenerator.h" + +class AliLegoGeneratorPhiZ : public AliLegoGenerator +{ + + public: + virtual void Generate(); + ClassDef(AliLegoGeneratorPhiZ,1) //Lego GeneratorPhiZ +}; +#endif + + + + + + + + -- 2.31.1