From: fca Date: Tue, 8 Jun 1999 15:47:02 +0000 (+0000) Subject: New calling sequences for parametrisation functions. By A.Morsch. X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=b7601ac470dd760a041a54d1d543db3add46b738;p=u%2Fmrichter%2FAliRoot.git New calling sequences for parametrisation functions. By A.Morsch. --- diff --git a/EVGEN/AliGenParam.cxx b/EVGEN/AliGenParam.cxx index 19b6a127929..7e38529ff02 100644 --- a/EVGEN/AliGenParam.cxx +++ b/EVGEN/AliGenParam.cxx @@ -26,12 +26,12 @@ AliGenParam::AliGenParam() { fPtPara = 0; fYPara = 0; - fIpart = 0; - fAnalog = 1; + fParam = jpsi_p; + fAnalog = analog; } //____________________________________________________________ -AliGenParam::AliGenParam(Int_t npart, Int_t Ipart) +AliGenParam::AliGenParam(Int_t npart, Param_t param) // Double_t (*PtPara)(Double_t*, Double_t*), // Double_t (*YPara) (Double_t* ,Double_t*)) :AliGenerator(npart) @@ -39,14 +39,14 @@ AliGenParam::AliGenParam(Int_t npart, Int_t Ipart) // // fName="HMESONpara"; // fTitle="Heavy Mesons Parametrisation"; - fPtParaFunc = AliGenMUONlib::GetPt(Ipart); - fYParaFunc = AliGenMUONlib::GetY(Ipart); - fIpParaFunc = AliGenMUONlib::GetIp(Ipart); + fPtParaFunc = AliGenMUONlib::GetPt(param); + fYParaFunc = AliGenMUONlib::GetY(param); + fIpParaFunc = AliGenMUONlib::GetIp(param); fPtPara = 0; fYPara = 0; - fIpart = Ipart; - fAnalog = 1; + fParam = param; + fAnalog = analog; fChildSelect.Set(5); for (Int_t i=0; i<5; i++) fChildSelect[i]=0; ForceDecay(); @@ -72,8 +72,11 @@ void AliGenParam::Init() */ //End_Html - fPtPara = new TF1("Pt-Parametrization",fPtParaFunc,0,15,0); - fYPara = new TF1("Y -Parametrization",fYParaFunc,-6,6,0); + fPtPara = new TF1("Pt-Parametrization",fPtParaFunc,fPtMin,fPtMax,0); + fYPara = new TF1("Y -Parametrization",fYParaFunc,fYMin,fYMax,0); + TF1* PtPara = new TF1("Pt-Parametrization",fPtParaFunc,0,15,0); + TF1* YPara = new TF1("Y -Parametrization",fYParaFunc,-6,6,0); + // // dN/dy| y=0 Double_t y1=0; @@ -82,9 +85,9 @@ void AliGenParam::Init() fdNdy0=fYParaFunc(&y1,&y2); // // Integral over generation region - Float_t IntYS = fYPara ->Integral(fYMin, fYMax); - Float_t IntPt0 = fPtPara->Integral(0,15); - Float_t IntPtS = fPtPara->Integral(fPtMin,fPtMax); + Float_t IntYS = YPara ->Integral(fYMin, fYMax); + Float_t IntPt0 = PtPara->Integral(0,15); + Float_t IntPtS = PtPara->Integral(fPtMin,fPtMax); Float_t PhiWgt=(fPhiMax-fPhiMin)/2./TMath::Pi(); if (fAnalog) { fYWgt = IntYS/fdNdy0; @@ -115,6 +118,12 @@ void AliGenParam::Init() case b_psip_dimuon: fChildSelect[0]=13; break; + case pitomu: + fChildSelect[0]=13; + break; + case katomu: + fChildSelect[0]=13; + break; } } @@ -205,6 +214,8 @@ void AliGenParam::Generate() Float_t energy=TMath::Sqrt(ptot*ptot+am*am); fPythia->DecayParticle(Ipart,energy,theta,phi); +// fPythia->LuList(1); + // // select muons TObjArray* particles = fPythia->GetPrimaries() ; @@ -222,7 +233,7 @@ void AliGenParam::Generate() origin[0]=origin0[0]+iparticle->GetVx()/10; origin[1]=origin0[1]+iparticle->GetVy()/10; origin[2]=origin0[2]+iparticle->GetVz()/10; - gAlice->SetTrack(1,iparent,fPythia->GetGeantCode(kf), + gAlice->SetTrack(fTrackIt,iparent,fPythia->GetGeantCode(kf), p,origin,polar, 0,"Decay",nt,wgtch); gAlice->KeepTrack(nt); diff --git a/EVGEN/AliGenParam.h b/EVGEN/AliGenParam.h index 5f2fe0a23ee..f45d55e5c26 100644 --- a/EVGEN/AliGenParam.h +++ b/EVGEN/AliGenParam.h @@ -11,10 +11,6 @@ #include "TMCParticle.h" //------------------------------------------------------------- -// Generators specific to MUON Arm - -// Generate heavy mesons - J/Psi, Upsilon, Phi - class AliGenParam : public AliGenerator { protected: @@ -23,13 +19,14 @@ protected: Int_t (*fIpParaFunc )(); TF1* fPtPara; TF1* fYPara; - Int_t fIpart; - Float_t fdNdy0; - Float_t fYWgt; - Float_t fPtWgt; - Float_t fBias; - Int_t fTrials; - Decay_t fForceDecay; + Param_t fParam; + Float_t fdNdy0; + Float_t fYWgt; + Float_t fPtWgt; + Weighting_t fAnalog; //Flaf for anolog or pt-weighted generation + Float_t fBias; + Int_t fTrials; + Decay_t fForceDecay; TArrayI fChildSelect; AliPythia *fPythia; private: @@ -39,17 +36,18 @@ protected: Bool_t KinematicSelection(TMCParticle *particle); public: AliGenParam(); - AliGenParam(Int_t npart, Int_t ipart); + AliGenParam(Int_t npart, Param_t param); // Double_t (*PtPara)(Double_t*, Double_t*), // Double_t (*YPara )(Double_t*, Double_t*)); virtual ~AliGenParam(); virtual void Generate(); virtual void Init(); // select particle type - virtual void SetPart(Int_t part=443) {fIpart=part;} + virtual void SetParam(Param_t param=jpsi_p) {fParam=param;} // force decay type virtual void ForceDecay(Decay_t decay=dimuon) {fForceDecay=decay;} - ClassDef(AliGenParam,1) + virtual void SetWeighting(Weighting_t flag=analog) {fAnalog=flag;} + ClassDef(AliGenParam,1) // Generator using parameterised pt- and y-distribution }; #endif