VMC
Version 2.2
Toggle main menu visibility
Loading...
Searching...
No Matches
source
include
TVirtualMCStack.h
Go to the documentation of this file.
1
// -----------------------------------------------------------------------
2
// Copyright (C) 2019 CERN and copyright holders of VMC Project.
3
// This software is distributed under the terms of the GNU General Public
4
// License v3 (GPL Version 3), copied verbatim in the file "LICENSE".
5
//
6
// See https://github.com/vmc-project/vmc for full licensing information.
7
// -----------------------------------------------------------------------
8
9
// Authors: Ivana Hrivnacova 13/04/2002
10
11
/*************************************************************************
12
* Copyright (C) 2006, Rene Brun and Fons Rademakers. *
13
* Copyright (C) 2002, ALICE Experiment at CERN. *
14
* All rights reserved. *
15
* *
16
* For the licensing terms see $ROOTSYS/LICENSE. *
17
* For the list of contributors see $ROOTSYS/README/CREDITS. *
18
*************************************************************************/
19
20
#ifndef ROOT_TVirtualMCStack
21
#define ROOT_TVirtualMCStack
22
23
// Class TVirtualMCStack
24
// ---------------------
25
// Interface to a user defined particles stack.
26
//
27
28
#include "TObject.h"
29
#include "
TMCProcess.h
"
30
31
class
TParticle;
32
33
class
TVirtualMCStack
:
public
TObject {
34
35
public
:
36
// Constructor
37
TVirtualMCStack
();
38
39
// Destructor
40
virtual
~TVirtualMCStack
();
41
42
//
43
// Methods for stacking
44
//
45
59
virtual
void
PushTrack
(Int_t toBeDone, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e,
60
Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly,
61
Double_t polz,
TMCProcess
mech, Int_t &ntr, Double_t weight, Int_t is) = 0;
62
66
virtual
TParticle *
PopNextTrack
(Int_t &itrack) = 0;
67
71
virtual
TParticle *
PopPrimaryForTracking
(Int_t i) = 0;
72
73
//
74
// Set methods
75
//
76
78
virtual
void
SetCurrentTrack
(Int_t trackNumber) = 0;
79
80
//
81
// Get methods
82
//
83
85
virtual
Int_t
GetNtrack
()
const
= 0;
86
88
virtual
Int_t
GetNprimary
()
const
= 0;
89
91
virtual
TParticle *
GetCurrentTrack
()
const
= 0;
92
94
virtual
Int_t
GetCurrentTrackNumber
()
const
= 0;
95
97
virtual
Int_t
GetCurrentParentTrackNumber
()
const
= 0;
98
99
ClassDef(
TVirtualMCStack
, 1)
// Interface to a particles stack
100
};
101
102
#endif
// ROOT_TVirtualMCStack
TMCProcess.h
TMCProcess
TMCProcess
VMC physics process codes.
Definition
TMCProcess.h:30
TVirtualMCStack::~TVirtualMCStack
virtual ~TVirtualMCStack()
Destructor.
Definition
TVirtualMCStack.cxx:38
TVirtualMCStack::PopNextTrack
virtual TParticle * PopNextTrack(Int_t &itrack)=0
The stack has to provide two pop mechanisms: The first pop mechanism required.
TVirtualMCStack::TVirtualMCStack
TVirtualMCStack()
Default constructor.
Definition
TVirtualMCStack.cxx:33
TVirtualMCStack::GetNprimary
virtual Int_t GetNprimary() const =0
Total number of primary tracks.
TVirtualMCStack::GetCurrentTrackNumber
virtual Int_t GetCurrentTrackNumber() const =0
Current track number.
TVirtualMCStack::GetCurrentTrack
virtual TParticle * GetCurrentTrack() const =0
Current track particle.
TVirtualMCStack::GetNtrack
virtual Int_t GetNtrack() const =0
Total number of tracks.
TVirtualMCStack::SetCurrentTrack
virtual void SetCurrentTrack(Int_t trackNumber)=0
Set the current track number.
TVirtualMCStack::PushTrack
virtual void PushTrack(Int_t toBeDone, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly, Double_t polz, TMCProcess mech, Int_t &ntr, Double_t weight, Int_t is)=0
Create a new particle and push into stack;.
TVirtualMCStack::PopPrimaryForTracking
virtual TParticle * PopPrimaryForTracking(Int_t i)=0
The second pop mechanism required.
TVirtualMCStack::GetCurrentParentTrackNumber
virtual Int_t GetCurrentParentTrackNumber() const =0
Number of the parent of the current track.
Generated on
for VMC by
1.17.0