FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PndUrqmdSmmGenerator Class Reference

#include <PndUrqmdSmmGenerator.h>

Inheritance diagram for PndUrqmdSmmGenerator:

Public Member Functions

 PndUrqmdSmmGenerator ()
 
 PndUrqmdSmmGenerator (const Char_t *fileName)
 
virtual ~PndUrqmdSmmGenerator ()
 
virtual Bool_t ReadEvent (FairPrimaryGenerator *primGen)
 

Private Member Functions

void CloseInput ()
 Particle array from PLUTO. More...
 
 ClassDef (PndUrqmdSmmGenerator, 1)
 

Private Attributes

Int_t iEvent
 
const Char_t * fFileName
 Event number. More...
 
TFile * fInputFile
 Input file name. More...
 
TTree * fInputTree
 Pointer to input file. More...
 
TClonesArray * fParticles
 Pointer to input tree. More...
 

Detailed Description

Definition at line 29 of file PndUrqmdSmmGenerator.h.

Constructor & Destructor Documentation

PndUrqmdSmmGenerator::PndUrqmdSmmGenerator ( )

Default constructor (should not be used)

Definition at line 21 of file PndUrqmdSmmGenerator.cxx.

21  {
22  iEvent = 0;
23  fInputFile = NULL;
24  fInputTree = NULL;
25 }
TTree * fInputTree
Pointer to input file.
TFile * fInputFile
Input file name.
PndUrqmdSmmGenerator::PndUrqmdSmmGenerator ( const Char_t *  fileName)

Standard constructor

Parameters
fileNameThe input (PLUTO) file name

Definition at line 31 of file PndUrqmdSmmGenerator.cxx.

References fParticles.

31  {
32  iEvent = 0;
33  fFileName = fileName;
34  fInputFile = new TFile(fFileName);
35  fInputTree = (TTree*) fInputFile->Get("data");
36  fParticles = new TClonesArray("TParticle",100);
37  fInputTree->SetBranchAddress("Particles", &fParticles);
38 }
TTree * fInputTree
Pointer to input file.
TFile * fInputFile
Input file name.
const Char_t * fFileName
Event number.
TClonesArray * fParticles
Pointer to input tree.
PndUrqmdSmmGenerator::~PndUrqmdSmmGenerator ( )
virtual

Destructor

Definition at line 43 of file PndUrqmdSmmGenerator.cxx.

43  {
44  CloseInput();
45 }
void CloseInput()
Particle array from PLUTO.

Member Function Documentation

PndUrqmdSmmGenerator::ClassDef ( PndUrqmdSmmGenerator  ,
 
)
private
void PndUrqmdSmmGenerator::CloseInput ( )
private

Particle array from PLUTO.

Private method CloseInput. Just for convenience. Closes the input file properly. Called from destructor and from ReadEvent.

Definition at line 104 of file PndUrqmdSmmGenerator.cxx.

104  {
105  if ( fInputFile ) {
106  cout << "-I PndUrqmdSmmGenerator: Closing input file " << fFileName
107  << endl;
108  fInputFile->Close();
109  delete fInputFile;
110  }
111  fInputFile = NULL;
112 }
TFile * fInputFile
Input file name.
const Char_t * fFileName
Event number.
Bool_t PndUrqmdSmmGenerator::ReadEvent ( FairPrimaryGenerator *  primGen)
virtual

Reads on event from the input file and pushes the tracks onto the stack. Abstract method in base class.

Parameters
primGenpointer to the FairPrimaryGenerator

Definition at line 50 of file PndUrqmdSmmGenerator.cxx.

References Double_t, fParticles, g, and pz.

50  {
51 
52  // Check for input file
53  if ( ! fInputFile ) {
54  cout << "-E PndUrqmdSmmGenerator: Input file nor open!" << endl;
55  return kFALSE;
56  }
57 
58  // Check for number of events in input file
59  if ( iEvent > fInputTree->GetEntries() ) {
60  cout << "-E PndUrqmdSmmGenerator: No more events in input file!" << endl;
61  CloseInput();
62  return kFALSE;
63  }
64  TFile *g=gFile;
65  fInputFile->cd();
66  fInputTree->GetEntry(iEvent++);
67  g->cd();
68 
69  // Get number of particle in TClonesrray
70  Int_t nParts = fParticles->GetEntriesFast();
71 
72  // Loop over particles in TClonesArray
73  for (Int_t iPart=0; iPart < nParts; iPart++) {
74  TParticle* part = (TParticle*) fParticles->At(iPart);
75  Int_t pdgType = part->GetPdgCode();
76 
77  // Check if particle type is known to database
78  if ( ! pdgType ) {
79  cout << "-W PndUrqmdSmmGenerator: Unknown type " << part->GetPdgCode()
80  << ", skipping particle." << endl;
81  continue;
82  }
83 
84  Double_t px = part->Px();
85  Double_t py = part->Py();
86  Double_t pz = part->Pz();
87 
88  Double_t vx = part->Vx();
89  Double_t vy = part->Vy();
90  Double_t vz = part->Vz();
91 
92  // Give track to PrimaryGenerator
93  primGen->AddTrack(pdgType, px, py, pz, vx, vy, vz);
94 
95  } // Loop over particle in event
96 
97  return kTRUE;
98 
99 }
TFile * g
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
void CloseInput()
Particle array from PLUTO.
Double_t
TTree * fInputTree
Pointer to input file.
TFile * fInputFile
Input file name.
double pz[39]
Definition: pipisigmas.h:14
TClonesArray * fParticles
Pointer to input tree.

Member Data Documentation

const Char_t* PndUrqmdSmmGenerator::fFileName
private

Event number.

Definition at line 59 of file PndUrqmdSmmGenerator.h.

TFile* PndUrqmdSmmGenerator::fInputFile
private

Input file name.

Definition at line 60 of file PndUrqmdSmmGenerator.h.

TTree* PndUrqmdSmmGenerator::fInputTree
private

Pointer to input file.

Definition at line 61 of file PndUrqmdSmmGenerator.h.

TClonesArray* PndUrqmdSmmGenerator::fParticles
private

Pointer to input tree.

Definition at line 62 of file PndUrqmdSmmGenerator.h.

Int_t PndUrqmdSmmGenerator::iEvent
private

Definition at line 58 of file PndUrqmdSmmGenerator.h.


The documentation for this class was generated from the following files: