Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:45

0001 #ifndef SimVertex_H
0002 #define SimVertex_H
0003 
0004 #include "SimDataFormats/Vertex/interface/CoreSimVertex.h"
0005 class SimVertex : public CoreSimVertex {
0006 public:
0007   typedef CoreSimVertex Core;
0008   /// constructor
0009   SimVertex();
0010 
0011   /// constructor from transient
0012   SimVertex(const CoreSimVertex& t, int it);
0013 
0014   SimVertex(const math::XYZVectorD& v, float tof);
0015 
0016   /// full constructor (position, time, index of parent in final vector)
0017   SimVertex(const math::XYZVectorD& v, float tof, int it);
0018 
0019   /// constructor from transient
0020   SimVertex(const CoreSimVertex& t, int it, unsigned int vId);
0021 
0022   SimVertex(const math::XYZVectorD& v, float tof, unsigned int vId);
0023 
0024   /// full constructor (position, time, index of parent in final vector)
0025   SimVertex(const math::XYZVectorD& v, float tof, int it, unsigned int vId);
0026 
0027   /// G4 TrackId of the parent in the Event SimTrack container (-1 if no parent)
0028   /// BE CAREFUL this is not a vector index
0029   int parentIndex() const { return itrack; }
0030   bool noParent() const { return itrack == -1; }
0031 
0032   void setVertexId(unsigned int n) { vtxId = n; }
0033   unsigned int vertexId() const { return vtxId; }
0034 
0035   void setProcessType(unsigned int ty) { procType = ty; }
0036   unsigned int processType() const { return procType; }
0037 
0038 private:
0039   int itrack;
0040   unsigned int vtxId;
0041   unsigned int procType;
0042 };
0043 
0044 #include <iosfwd>
0045 std::ostream& operator<<(std::ostream& o, const SimVertex& v);
0046 
0047 #endif