ROOT logo
/**************************************************************************
 * 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.                  *
 **************************************************************************/

/* $Id$ */

// Simple particle gun. 
// Momentum, phi and theta of the partice as well as the particle type can be set.
// If fExplicit is true the user set momentum vector is used,
// otherwise it is calculated.
// andreas.morsch@cern.ch

#include "TPDGCode.h"

#include "AliGenFixed.h"
#include "AliRun.h"
  
ClassImp(AliGenFixed)

//_____________________________________________________________________________
AliGenFixed::AliGenFixed()
    :AliGenerator(), 
     fIpart(0),
     fExplicit(kFALSE)
{
  //
  // Default constructor
  //
    for (Int_t i = 0; i < 3; i++) fP[i] = 0.;
    
}

//_____________________________________________________________________________
AliGenFixed::AliGenFixed(Int_t npart)
    :AliGenerator(npart),
     fIpart(kProton),
     fExplicit(kFALSE)
{
  //
  // Standard constructor
  //
  fName="Fixed";
  fTitle="Fixed Particle Generator";
  for (Int_t i = 0; i < 3; i++) fP[i] = 0.;
}

//_____________________________________________________________________________
void AliGenFixed::Generate()
{
  //
  // Generate one trigger
  //
  Float_t polar[3]= {0,0,0};
  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, j, nt;
  //
  Float_t o[3] = {0., 0., 0.}; 
  Float_t time = 0.;
  if(fVertexSmear == kPerEvent) {
      Vertex();
      for (j = 0;j < 3; j++) o[j] = fVertex[j];
      time = fTime;
  }
  
  for(i = 0; i < fNpart; i++) 
    PushTrack(fTrackIt, -1, fIpart, fP, o , polar, time, kPPrimary, nt);
}
  
 AliGenFixed.cxx:1
 AliGenFixed.cxx:2
 AliGenFixed.cxx:3
 AliGenFixed.cxx:4
 AliGenFixed.cxx:5
 AliGenFixed.cxx:6
 AliGenFixed.cxx:7
 AliGenFixed.cxx:8
 AliGenFixed.cxx:9
 AliGenFixed.cxx:10
 AliGenFixed.cxx:11
 AliGenFixed.cxx:12
 AliGenFixed.cxx:13
 AliGenFixed.cxx:14
 AliGenFixed.cxx:15
 AliGenFixed.cxx:16
 AliGenFixed.cxx:17
 AliGenFixed.cxx:18
 AliGenFixed.cxx:19
 AliGenFixed.cxx:20
 AliGenFixed.cxx:21
 AliGenFixed.cxx:22
 AliGenFixed.cxx:23
 AliGenFixed.cxx:24
 AliGenFixed.cxx:25
 AliGenFixed.cxx:26
 AliGenFixed.cxx:27
 AliGenFixed.cxx:28
 AliGenFixed.cxx:29
 AliGenFixed.cxx:30
 AliGenFixed.cxx:31
 AliGenFixed.cxx:32
 AliGenFixed.cxx:33
 AliGenFixed.cxx:34
 AliGenFixed.cxx:35
 AliGenFixed.cxx:36
 AliGenFixed.cxx:37
 AliGenFixed.cxx:38
 AliGenFixed.cxx:39
 AliGenFixed.cxx:40
 AliGenFixed.cxx:41
 AliGenFixed.cxx:42
 AliGenFixed.cxx:43
 AliGenFixed.cxx:44
 AliGenFixed.cxx:45
 AliGenFixed.cxx:46
 AliGenFixed.cxx:47
 AliGenFixed.cxx:48
 AliGenFixed.cxx:49
 AliGenFixed.cxx:50
 AliGenFixed.cxx:51
 AliGenFixed.cxx:52
 AliGenFixed.cxx:53
 AliGenFixed.cxx:54
 AliGenFixed.cxx:55
 AliGenFixed.cxx:56
 AliGenFixed.cxx:57
 AliGenFixed.cxx:58
 AliGenFixed.cxx:59
 AliGenFixed.cxx:60
 AliGenFixed.cxx:61
 AliGenFixed.cxx:62
 AliGenFixed.cxx:63
 AliGenFixed.cxx:64
 AliGenFixed.cxx:65
 AliGenFixed.cxx:66
 AliGenFixed.cxx:67
 AliGenFixed.cxx:68
 AliGenFixed.cxx:69
 AliGenFixed.cxx:70
 AliGenFixed.cxx:71
 AliGenFixed.cxx:72
 AliGenFixed.cxx:73
 AliGenFixed.cxx:74
 AliGenFixed.cxx:75
 AliGenFixed.cxx:76
 AliGenFixed.cxx:77
 AliGenFixed.cxx:78
 AliGenFixed.cxx:79
 AliGenFixed.cxx:80
 AliGenFixed.cxx:81
 AliGenFixed.cxx:82
 AliGenFixed.cxx:83