Introducing the interaction time into the aliroot generators. In case of gaussian...
[u/mrichter/AliRoot.git] / EVGEN / AliGenFixed.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /* $Id$ */
17
18 // Simple particle gun. 
19 // Momentum, phi and theta of the partice as well as the particle type can be set.
20 // If fExplicit is true the user set momentum vector is used,
21 // otherwise it is calculated.
22 // andreas.morsch@cern.ch
23
24 #include "TPDGCode.h"
25
26 #include "AliGenFixed.h"
27 #include "AliRun.h"
28   
29 ClassImp(AliGenFixed)
30
31 //_____________________________________________________________________________
32 AliGenFixed::AliGenFixed()
33     :AliGenerator(), 
34      fIpart(0),
35      fExplicit(kFALSE)
36 {
37   //
38   // Default constructor
39   //
40     for (Int_t i = 0; i < 3; i++) fP[i] = 0.;
41     
42 }
43
44 //_____________________________________________________________________________
45 AliGenFixed::AliGenFixed(Int_t npart)
46     :AliGenerator(npart),
47      fIpart(kProton),
48      fExplicit(kFALSE)
49 {
50   //
51   // Standard constructor
52   //
53   fName="Fixed";
54   fTitle="Fixed Particle Generator";
55   for (Int_t i = 0; i < 3; i++) fP[i] = 0.;
56 }
57
58 //_____________________________________________________________________________
59 void AliGenFixed::Generate()
60 {
61   //
62   // Generate one trigger
63   //
64   Float_t polar[3]= {0,0,0};
65   if(!fExplicit) {
66     fP[0] = fPMin * TMath::Cos(fPhiMin) * TMath::Sin(fThetaMin);
67     fP[1] = fPMin * TMath::Sin(fPhiMin) * TMath::Sin(fThetaMin);
68     fP[2] = fPMin * TMath::Cos(fThetaMin);
69   }
70   Int_t i, j, nt;
71   //
72   Float_t o[3] = {0., 0., 0.}; 
73   Float_t time = 0.;
74   if(fVertexSmear == kPerEvent) {
75       Vertex();
76       for (j = 0;j < 3; j++) o[j] = fVertex[j];
77       time = fTime;
78   }
79   
80   for(i = 0; i < fNpart; i++) 
81     PushTrack(fTrackIt, -1, fIpart, fP, o , polar, time, kPPrimary, nt);
82 }
83