ROOT logo
AliRoot » ACORDE » AliGenACORDE

class AliGenACORDE: public AliGenerator


  Contain parametrizations to generate atmospheric muons, and also
  to generate single muons and muon bundles at surface level.


/*

The responsible person for this module is Enrique Gamez.

*/


Function Members (Methods)

public:
AliGenACORDE()
AliGenACORDE(Int_t npart)
virtual~AliGenACORDE()
voidTObject::AbstractMethod(const char* method) const
virtual voidAliGenerator::AddHeader(AliGenEventHeader*)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual AliCollisionGeometry*AliGenerator::CollisionGeometry() const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual voidAliGenerator::FinishRun()
virtual voidGenerate()
virtual voidAliGenerator::GenerateN(Int_t ntimes)
TClonesArray*GetArray() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual Float_tAliGenerator::GetEnergyCMS() const
virtual const char*TObject::GetIconName() const
virtual TGenerator*AliGenerator::GetMC() const
const TString*GetMode() const
Float_tGetMomentum() const
TF1*GetMomentumDistibution() const
Float_tGetMomentumResolution() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual voidAliGenerator::GetOrigin(TLorentzVector& o) const
virtual voidAliGenerator::GetOrigin(Float_t& ox, Float_t& oy, Float_t& oz) const
virtual voidAliGenerator::GetProjectile(TString& tar, Int_t& a, Int_t& z) const
virtual TRandom*AliRndm::GetRandom() const
AliStack*AliGenerator::GetStack()
virtual voidAliGenerator::GetTarget(TString& tar, Int_t& a, Int_t& z) const
virtual const char*TNamed::GetTitle() const
TF1*GetUnfoldedDistribution() const
virtual UInt_tTObject::GetUniqueID() const
Float_tGetZenithAngle(Float_t mom) const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidInit()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tAliGenerator::NeedsCollisionGeometry() const
virtual Bool_tTObject::Notify()
virtual Int_tAliGenerator::NumberParticles() const
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual Bool_tAliGenerator::ProvidesCollisionGeometry() const
virtual Int_tTObject::Read(const char* name)
virtual voidAliRndm::ReadRandom(const char* filename)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual Float_tAliRndm::Rndm() const
virtual voidAliRndm::Rndm(Float_t* array, Int_t size) const
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
virtual voidAliGenerator::SetAnalog(Int_t flag = 1)
voidSetAzimuthalAngleRange(Float_t min, Float_t max = 0)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidAliGenerator::SetChildWeight(Float_t wgt)
virtual voidAliGenerator::SetCollisionGeometry(AliCollisionGeometry* geom)
virtual voidAliGenerator::SetContainer(AliGenerator* container)
virtual voidAliGenerator::SetCutVertexZ(Float_t cut = 999999.)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidAliGenerator::SetEnergyCMS(Float_t energy = 0)
virtual voidAliGenerator::SetEventPlane(Float_t evPlane)
voidSetGridRange(Int_t nx, Float_t xwidth, Int_t nz, Float_t zwidth)
virtual voidAliGenerator::SetMC(TGenerator* theMC)
voidSetMode(ECRMode mode)
voidSetMomentumDistrubutionFunction(TF1* func)
virtual voidAliGenerator::SetMomentumRange(Float_t pmin = 0, Float_t pmax = 1.e10)
voidSetMomentumResolution(Float_t res = 1.)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidSetNumberOfParticles(Int_t nParticles)
virtual voidAliGenerator::SetNumberParticles(Int_t npart = 100)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidAliGenerator::SetOrigin(const TLorentzVector& o)
virtual voidAliGenerator::SetOrigin(Float_t ox, Float_t oy, Float_t oz)
virtual voidAliGenerator::SetParentWeight(Float_t wgt)
virtual voidSetPart(Int_t part)
virtual voidAliGenerator::SetPhiRange(Float_t phimin = 0., Float_t phimax = 360.)
voidAliGenerator::SetPileUpTimeWindow(Float_t pileUpTimeW)
virtual voidAliGenerator::SetProjectile(TString proj = "", Int_t a = 0, Int_t z = 0)
virtual voidAliGenerator::SetPtRange(Float_t ptmin = 0, Float_t ptmax = 1.e10)
virtual voidAliRndm::SetRandom(TRandom* ran = 0)
virtual voidAliGenerator::SetSigma(Float_t sx, Float_t sy, Float_t sz)
virtual voidAliGenerator::SetSigmaZ(Float_t sz)
voidAliGenerator::SetStack(AliStack* stack)
virtual voidAliGenerator::SetTarget(TString tar = "", Int_t a = 0, Int_t z = 0)
virtual voidAliGenerator::SetThetaRange(Float_t thetamin = 0, Float_t thetamax = 180)
virtual voidAliGenerator::SetTime(Float_t time)
virtual voidAliGenerator::SetTimeOrigin(Float_t timeorig)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidAliGenerator::SetTrackingFlag(Int_t flag = 1)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidAliGenerator::SetVertex(Float_t vx, Float_t vy, Float_t vz, Float_t t = 0)
voidAliGenerator::SetVertexGenerator(AliVertexGenerator* vertexGenerator)
virtual voidAliGenerator::SetVertexSmear(VertexSmear_t smear)
virtual voidAliGenerator::SetVertexSource(VertexSource_t source = kInternal)
virtual voidAliGenerator::SetVRange(Float_t vxmin, Float_t vxmax, Float_t vymin, Float_t vymax, Float_t vzmin, Float_t vzmax)
virtual voidAliGenerator::SetYRange(Float_t ymin = -100, Float_t ymax = 100)
voidSetZenithalAngleRange(Float_t min, Float_t max = 0)
voidSetZenithalDistributionFunction(TF1* func)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
voidAliGenerator::Vertex()
voidAliGenerator::VertexExternal()
virtual voidAliGenerator::VertexInternal()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual voidAliRndm::WriteRandom(const char* filename) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidGenerateOneMuonBundle()
voidGenerateOneSingleMuon(Bool_t withFlatMomentum = kFALSE)
voidInitApWeightFactors()
voidInitMomentumGeneration()
voidInitZenithalAngleGeneration()
virtual voidAliGenerator::KeepTrack(Int_t itrack)
voidTObject::MakeZombie()
virtual voidAliGenerator::PushTrack(Int_t done, Int_t parent, Int_t pdg, Float_t* pmom, Float_t* vpos, Float_t* polar, Float_t tof, TMCProcess mech, Int_t& ntr, Float_t weight = 1, Int_t is = 0)
virtual voidAliGenerator::PushTrack(Int_t done, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly, Double_t polz, TMCProcess mech, Int_t& ntr, Float_t weight = 1, Int_t is = 0)
virtual voidAliGenerator::SetHighWaterMark(Int_t nt)
private:
AliGenACORDE(const AliGenACORDE& gen)
AliGenACORDE&operator=(const AliGenACORDE& gen)

Data Members

protected:
Int_tAliGenerator::fAProjectileProjectile A
Int_tAliGenerator::fATargetTarget A
Int_tAliGenerator::fAnalogFlag for anolog or pt-weighted generation
Float_tAliGenerator::fChildWeightChildWeight
AliCollisionGeometry*AliGenerator::fCollisionGeometry!Collision geometry
AliGenerator*AliGenerator::fContainer! Local pointer to container
Float_tAliGenerator::fCutVertexZVertex cut in units of sigma_z
Float_tAliGenerator::fEnergyCMSCentre of mass energy
Float_tAliGenerator::fEvPlanethe event plane
TGenerator*AliGenerator::fMCEvGen!Pointer to the generator
TStringTNamed::fNameobject identifier
Int_tAliGenerator::fNpartMaximum number of particles per event
TArrayFAliGenerator::fOriginOrigin of event
TArrayFAliGenerator::fOsigmaSigma of the Origin of event
Float_tAliGenerator::fPMaxMinimum momentum of generation in GeV/c
Float_tAliGenerator::fPMinMinimum momentum of generation in GeV/c
Float_tAliGenerator::fParentWeightParent Weight
Float_tAliGenerator::fPhiMaxMaximum phi of generation in radians
Float_tAliGenerator::fPhiMinMinimum phi of generation in radians
Float_tAliGenerator::fPileUpTimeWindowTime window for pile-up events
TStringAliGenerator::fProjectileProjectile
Float_tAliGenerator::fPtMaxMaximum transverse momentum
Float_tAliGenerator::fPtMinMinimum transverse momentum
TRandom*AliRndm::fRandom! Pointer to the random number generator
AliStack*AliGenerator::fStack! Local pointer to stack
TStringAliGenerator::fTargetTarget
Float_tAliGenerator::fThetaMaxMaximum theta of generation in radians
Float_tAliGenerator::fThetaMinMinimum theta of generation in radians
Float_tAliGenerator::fTimeEvent time smeared around time0 origin using sigma vertex
Float_tAliGenerator::fTimeOriginTime0 origin in a run or event sample
TStringTNamed::fTitleobject title
Int_tAliGenerator::fTrackItif 1, Track final state particles
TArrayFAliGenerator::fVMaxMinimum Decaylength
TArrayFAliGenerator::fVMinMinimum Decaylength
TArrayFAliGenerator::fVertex! Vertex of current event
AliVertexGenerator*AliGenerator::fVertexGenerator! Generator for the vertex
VertexSmear_tAliGenerator::fVertexSmearVertex Smearing mode
VertexSource_tAliGenerator::fVertexSourceVertex source (internal/external)
Float_tAliGenerator::fYMaxMaximum rapidity
Float_tAliGenerator::fYMinMinimum rapidity
Int_tAliGenerator::fZProjectileProjectile Z
Int_tAliGenerator::fZTargetTarget Z
private:
TArrayF*fAp! a(p) correction factors for the ang. dist.
Float_tfAzimuthMax! Maximum azimuthal angle.
Float_tfAzimuthMin! Minimum azimuthal angle.
ECRModefCRMode! Cosmic muons generation method flag
TString*fCRModeName! Cosmic muons generation mode name
Int_tfIpart! Particle type.
TF1*fMomentumDist! Function to generate the momentum dist.
Bool_tfMuonGrid! Flag for method (Muon-bundles) checkout
Int_tfNParticles! Fixed number of particles per event
Int_tfNx! Number of divisions in x
Int_tfNz! Number of divisions in z
TClonesArray*fPDist! Array of fZenithDist, to be used by a(p).
Float_tfPRange! Cosmic muon momentum range width in GeVs.
Float_tfPResolution! Momentum resolution in GeVs.
TF1*fUnfoldedMomentumDist!
Float_tfXwidth! X width of the grid
TF1*fZenithDist! Function to generate the zenith angle dist.
Float_tfZenithMax! Maximum zenithal angle.
Float_tfZenithMin! Minimum zenithal angle.
Float_tfZwidth! Z widht of the grid

Class Charts

Inheritance Chart:
TNamed
AliRndm
AliGenerator
AliGenACORDE

Function documentation

AliGenACORDE()
 Default ctor.

AliGenACORDE(Int_t npart)
 Standard ctor.

~AliGenACORDE()
 Default dtor.

void Generate()
 Generate on one trigger
 Call the respective method inside the loop for the number
 of tracks per trigger.
void Init()
 Initialize some internal methods.

void GenerateOneSingleMuon(Bool_t withFlatMomentum = kFALSE)
 Generate One Single Muon
 This method will generate only one muon.
 The momentum will be randomly flat distributed if
 the paremeter "withFlatMomentum" is set to kTRUE,
 otherwise the momentum will generate acordingly the parametrization
 given by
 and adpted from Bruno Alessandro's implementation with the
 CERNLIB to AliRoot.
 The "withFlatMomentum" parameter also will be used to generate
 the muons with a flat Zenithal angle distribution.
 Do the smearing here, so that means per track.
void GenerateOneMuonBundle()
 Generate One Muon Bundle method
 This method will generate a bunch of muons following the
 procedure of the AliGenScan class.
 These muons will be generated with flat momentum.
void SetGridRange(Int_t nx, Float_t xwidth, Int_t nz, Float_t zwidth)
 Define the grid
 This data shuold be used for Muon bundles generation.

void InitApWeightFactors()
 This factors will be  to correct the zenithal angle distribution
 acording the momentum
void InitMomentumGeneration()
 Initialize a funtion to generate the momentum randomly
 acording this function.

void InitZenithalAngleGeneration()
 Initalize a distribution function for the zenith angle.
 This angle will be obtained randomly acording this function.
 The generated angles  will been in degrees.
Float_t GetZenithAngle(Float_t mom) const
Float_t GetMomentum() const


AliGenACORDE()
void SetPart(Int_t part)
{fIpart = part;}
void SetMode(ECRMode mode)
{fCRMode = mode;}
const TString* GetMode() const
{return fCRModeName;}
void SetZenithalAngleRange(Float_t min, Float_t max = 0)
void SetAzimuthalAngleRange(Float_t min, Float_t max = 0)
Float_t GetMomentumResolution() const
{return fPResolution;}
void SetMomentumDistrubutionFunction(TF1* func)
void SetZenithalDistributionFunction(TF1* func)
{fZenithDist = func;}
void SetMomentumResolution(Float_t res = 1.)
void SetNumberOfParticles(Int_t nParticles)
{fNParticles = nParticles;}
TF1* GetMomentumDistibution() const
 The following methods are for testing pourpuses
{return fMomentumDist;}
TF1* GetUnfoldedDistribution() const
TClonesArray* GetArray() const
{return fPDist;}
AliGenACORDE& operator=(const AliGenACORDE& gen)