/* $Id$ */
-////////////////////////////////////////////////////////////////////////
-//
-// generates n particles with in the same phi angle, varies theta
+
+// Generates n particles with in the same phi angle, varies theta
// in equidistant intervals
// This class is intended to use for studies of TPC response
// via merging with background event.
-//
// Note that for a given theta pt and p are not independent
// Range for only one variable (pt or p) should be given.
// Based on the AliGenBox class written by andreas.morsch@cern.ch
//
// Comments and suggestions: Jiri.Chudoba@cern.ch
-//
-////////////////////////////////////////////////////////////////////////
+
#include <TPDGCode.h>
//_____________________________________________________________________________
AliGenThetaSlice::AliGenThetaSlice()
- :AliGenerator()
+ :AliGenerator(),
+ fIpart(0)
{
//
// Default constructor
//
- fIpart=0;
}
//_____________________________________________________________________________
AliGenThetaSlice::AliGenThetaSlice(Int_t npart)
- :AliGenerator(npart)
+ :AliGenerator(npart),
+ fIpart(kProton)
{
//
// Standard constructor
//
fName = "ThetaSlice";
fTitle = "Particle generator - const. phi, slices in theta";
- // Generate Proton by default
- fIpart=kProton;
}
//_____________________________________________________________________________
Float_t polar[3]= {0,0,0};
Float_t origin[3];
+ Float_t time;
Float_t p[3];
Int_t i, j, nt;
Double_t pmom, theta, phi, pt;
if (fNpart == 0) return;
for (j=0;j<3;j++) origin[j]=fOrigin[j];
+ time = fTimeOrigin;
if(fVertexSmear==kPerEvent) {
Rndm(random,6);
for (j=0;j<3;j++) {
origin[j]+=fOsigma[j]*TMath::Cos(2*random[2*j]*TMath::Pi())*
TMath::Sqrt(-2*TMath::Log(random[2*j+1]));
}
+ Rndm(random,2);
+ time += fOsigma[2]/TMath::Ccgs()*
+ TMath::Cos(2*random[0]*TMath::Pi())*
+ TMath::Sqrt(-2*TMath::Log(random[1]));
}
Float_t thetaInterval = 0.;
if (fNpart > 1) {
origin[j]=fOrigin[j]+fOsigma[j]*TMath::Cos(2*random[2*j]*TMath::Pi())*
TMath::Sqrt(-2*TMath::Log(random[2*j+1]));
}
+ Rndm(random,2);
+ time = fTimeOrigin + fOsigma[2]/TMath::Ccgs()*
+ TMath::Cos(2*random[0]*TMath::Pi())*
+ TMath::Sqrt(-2*TMath::Log(random[1]));
}
- PushTrack(fTrackIt,-1,fIpart,p,origin,polar,0,kPPrimary,nt);
+ PushTrack(fTrackIt,-1,fIpart,p,origin,polar,time,kPPrimary,nt);
}
}