This file is indexed.

/usr/include/root/TVirtualMCStack.h is in libroot-montecarlo-vmc-dev 5.34.14-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// @(#)root/vmc:$Id$
// Authors: Ivana Hrivnacova 13/04/2002

/*************************************************************************
 * Copyright (C) 2006, Rene Brun and Fons Rademakers.                    *
 * Copyright (C) 2002, ALICE Experiment at CERN.                         *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TVirtualMCStack
#define ROOT_TVirtualMCStack

// Class TVirtualMCStack
// ---------------------
// Interface to a user defined particles stack.
//

#include "TObject.h"
#include "TMCProcess.h"

class TParticle;

class TVirtualMCStack : public TObject {

public:
   // Constructor
   TVirtualMCStack();

   // Destructor
   virtual ~TVirtualMCStack();

   //
   // Methods for stacking
   //

   // Create a new particle and push into stack;
   // toBeDone   - 1 if particles should go to tracking, 0 otherwise
   // parent     - number of the parent track, -1 if track is primary
   // pdg        - PDG encoding
   // px, py, pz - particle momentum [GeV/c]
   // e          - total energy [GeV]
   // vx, vy, vz - position [cm]
   // tof        - time of flight [s]
   // polx, poly, polz - polarization
   // mech       - creator process VMC code
   // ntr        - track number (is filled by the stack
   // weight     - particle weight
   // is         - generation status code
   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;

   // The stack has to provide two pop mechanisms:
   // The first pop mechanism required.
   // Pop all particles with toBeDone = 1, both primaries and seconadies
   virtual TParticle* PopNextTrack(Int_t& itrack) = 0;

   // The second pop mechanism required.
   // Pop only primary particles with toBeDone = 1, stacking of secondaries
   // is done by MC
   virtual TParticle* PopPrimaryForTracking(Int_t i) = 0;

   //
   // Set methods
   //

   // Set the current track number
   virtual void       SetCurrentTrack(Int_t trackNumber) = 0;

   //
   // Get methods
   //

   // Total number of tracks
   virtual Int_t      GetNtrack()    const = 0;

   // Total number of primary tracks
   virtual Int_t      GetNprimary()  const = 0;

   // Current track particle
   virtual TParticle* GetCurrentTrack() const= 0;

   // Current track number
   virtual Int_t      GetCurrentTrackNumber() const = 0;

   // Number of the parent of the current track
   virtual Int_t      GetCurrentParentTrackNumber() const = 0;

   ClassDef(TVirtualMCStack,1) //Interface to a particles stack
};

#endif //ROOT_TVirtualMCStack