]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
SetGun allows specify completely the particle kinematics and position in one go....
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 24 Feb 2001 11:41:59 +0000 (11:41 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 24 Feb 2001 11:41:59 +0000 (11:41 +0000)
EVGEN/AliGenFixed.cxx
EVGEN/AliGenFixed.h

index 744cef294617a58c60b7bc2019f01cc13301ac69..1f30d09b88d6efbe622c7116a4d45908df2eb0e5 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.4  2000/12/21 16:24:06  morsch
+Coding convention clean-up
+
 Revision 1.3  2000/11/30 07:12:50  alibrary
 Introducing new Rndm and QA classes
 
@@ -61,6 +64,7 @@ AliGenFixed::AliGenFixed()
   // Default constructor
   //
   fIpart = 0;
+  fExplicit = kFALSE;
 }
 
 //_____________________________________________________________________________
@@ -83,14 +87,16 @@ void AliGenFixed::Generate()
   // Generate one trigger
   //
   Float_t polar[3]= {0,0,0};
-  Float_t p[3] = {fPMin*TMath::Cos(fPhiMin)*TMath::Sin(fThetaMin),
-                 fPMin*TMath::Sin(fPhiMin)*TMath::Sin(fThetaMin),
-                 fPMin*TMath::Cos(fThetaMin)};
+  if(!fExplicit) {
+    fP[0] = fPMin*TMath::Cos(fPhiMin)*TMath::Sin(fThetaMin);
+    fP[1] = fPMin*TMath::Sin(fPhiMin)*TMath::Sin(fThetaMin);
+    fP[2] = fPMin*TMath::Cos(fThetaMin);
+  }
   Int_t i, nt;
   //
-  for(i=0;i<fNpart;i++) {
-    gAlice->SetTrack(fTrackIt,-1,fIpart,p,fOrigin.GetArray(),polar,0,kPPrimary,nt);
-  }
+  for(i=0;i<fNpart;i++) 
+    gAlice->SetTrack(fTrackIt,-1,fIpart,fP,fOrigin.GetArray(),polar,0,kPPrimary,nt);
+  
 }
   
 //_____________________________________________________________________________
index b4cf7c60560d5b4abc57d1477d53df83f8a6621d..620c60975524809c7d15c886a8609442f3d9f8d9 100644 (file)
@@ -25,10 +25,15 @@ class AliGenFixed : public AliGenerator
   virtual void SetPhi(Float_t phi) {fPhiMin=phi*TMath::Pi()/180; fPhiMax=phi*TMath::Pi()/180;}
   virtual void SetTheta(Float_t theta) {fThetaMin=theta*TMath::Pi()/180; fThetaMax=theta*TMath::Pi()/180;}
   virtual void SetPart(Int_t part) {fIpart=part;}
+  virtual void SetGun(Double_t px, Double_t py, Double_t pz, Double_t x, 
+  Double_t y, Double_t z) {fP[0]=px;fP[1]=py;fP[2]=pz;fOrigin[0]=x;fOrigin[1]=y;
+  fOrigin[2]=z;fExplicit=kTRUE;}
  
 protected:
 
   Int_t fIpart; // Particle type
+  Int_t fExplicit;
+  Float_t fP[3];
 
   ClassDef(AliGenFixed,1) // Single particle generator
 };