ROOT logo
#ifndef __HVIRTUALCANDSIM_H__
#define __HVIRTUALCANDSIM_H__

#include "TObject.h"
#include "hvirtualcand.h"

class HVirtualCandSim
{
protected:

    // sim info
    Int_t   fGeantPID;                // GEANT PID value
    Int_t   fGeantTrack;              // GEANT track number
    UInt_t  fGeantCorrTrackIds;       // Geant number of correlated track ids (which detector has seen this track?)
    Float_t fGeantxMom;               // GEANT x mom [Mev/c]
    Float_t fGeantyMom;               // GEANT y mom [Mev/c]
    Float_t fGeantzMom;               // GEANT z mom [Mev/c]
    Float_t fGeantxVertex;            // GEANT x vertex [mm]
    Float_t fGeantyVertex;            // GEANT y vertex [mm]
    Float_t fGeantzVertex;            // GEANT z vertex [mm]
    Int_t   fGeantParentTrackNum;     // GEANT parent track number
    Int_t   fGeantParentPID;          // GEANT parent track PID
    Int_t   fGeantGrandParentTrackNum;// GEANT grand parent track number
    Int_t   fGeantGrandParentPID;     // GEANT grand parent track PID
    Int_t   fGeantCreationMechanism;  // GEANT creatiom mechanism
    Int_t   fGeantMediumNumber;       // GEANT medium number
    Float_t fGeantgeninfo;            // GEANT info on particle generation
    Float_t fGeantgeninfo1;           // GEANT info on particle generation
    Float_t fGeantgeninfo2;           // GEANT info on particle generation
    Float_t fGeantgenweight;          // GEANT info on particle generation
public:
    HVirtualCandSim() :
    fGeantPID(0),fGeantTrack(-1), fGeantCorrTrackIds(0),
    fGeantxMom(-1), fGeantyMom(-1), fGeantzMom(-1), fGeantxVertex(-1), fGeantyVertex(-1), fGeantzVertex(-1),
    fGeantParentTrackNum(0),fGeantParentPID(-1),fGeantGrandParentTrackNum(0),fGeantGrandParentPID(-1), 
    fGeantCreationMechanism(0), fGeantMediumNumber(0),
    fGeantgeninfo(-1),fGeantgeninfo1(-1),fGeantgeninfo2(-1),fGeantgenweight(0)
    {
    }
    virtual ~HVirtualCandSim();

    void     setGeantPID(Int_t a)                 { fGeantPID = a;                   }
    void     setGeantTrack(Int_t a)               { fGeantTrack = a;                 }
    void     setGeantCorrTrackIds(UInt_t a)       { fGeantCorrTrackIds = a;          }
    void     setGeantxMom(Float_t a)              { fGeantxMom = a;                  }
    void     setGeantyMom(Float_t a)              { fGeantyMom = a;                  }
    void     setGeantzMom(Float_t a)              { fGeantzMom = a;                  }
    void     setGeantxVertex(Float_t a)           { fGeantxVertex = a;               }
    void     setGeantyVertex(Float_t a)           { fGeantyVertex = a;               }
    void     setGeantzVertex(Float_t a)           { fGeantzVertex = a;               }
    void     setGeantParentTrackNum(Int_t a)      { fGeantParentTrackNum = a;        }
    void     setGeantParentPID(Int_t a)           { fGeantParentPID = a;             }
    void     setGeantGrandParentTrackNum(Int_t a) { fGeantGrandParentTrackNum = a;   }
    void     setGeantGrandParentPID(Int_t a)      { fGeantGrandParentPID = a;        }
    void     setGeantCreationMechanism(Int_t a)   { fGeantCreationMechanism = a;     }
    void     setGeantMediumNumber(Int_t a)        { fGeantMediumNumber = a;          }
    void     setGeantGeninfo(Float_t a)           { fGeantgeninfo = a;               }
    void     setGeantGeninfo1(Float_t a)          { fGeantgeninfo1 = a;              }
    void     setGeantGeninfo2(Float_t a)          { fGeantgeninfo2 = a;              }
    void     setGeantGenweight(Float_t a)         { fGeantgenweight = a;             }


    Int_t    getGeantPID()                 const  { return fGeantPID;                }
    Int_t    getGeantTrack()               const  { return fGeantTrack;              }
    UInt_t   getGeantCorrTrackIds()        const  { return fGeantCorrTrackIds;       }
    Float_t  getGeantxMom()                const  { return fGeantxMom;               }
    Float_t  getGeantyMom()                const  { return fGeantyMom;               }
    Float_t  getGeantzMom()                const  { return fGeantzMom;               }
    Float_t  getGeantTotalMom()            const  { return (fGeantxMom ==-1 && fGeantyMom ==-1 && fGeantzMom ==-1 ) ? -1 : sqrt(fGeantxMom*fGeantxMom+fGeantyMom*fGeantyMom+fGeantzMom*fGeantzMom);}
    Float_t  getGeantxVertex()             const  { return fGeantxVertex;            }
    Float_t  getGeantyVertex()             const  { return fGeantyVertex;            }
    Float_t  getGeantzVertex()             const  { return fGeantzVertex;            }
    Int_t    getGeantParentTrackNum()      const  { return fGeantParentTrackNum;     }
    Int_t    getGeantParentPID()           const  { return fGeantParentPID;          }
    Int_t    getGeantGrandParentTrackNum() const  { return fGeantGrandParentTrackNum;}
    Int_t    getGeantGrandParentPID()      const  { return fGeantGrandParentPID;     }
    Int_t    getGeantCreationMechanism()   const  { return fGeantCreationMechanism;  }
    Int_t    getGeantMediumNumber()        const  { return fGeantMediumNumber;       }
    Float_t  getGeantGeninfo()             const  { return fGeantgeninfo;            }
    Float_t  getGeantGeninfo1()            const  { return fGeantgeninfo1;           }
    Float_t  getGeantGeninfo2()            const  { return fGeantgeninfo2;           }
    Float_t  getGeantGenweight()           const  { return fGeantgenweight;          }

    virtual void   print(UInt_t selection=31);
    ClassDef(HVirtualCandSim,1)  // A simple Sim track of a particle
};

#endif // __HVIRTUALCANDSIM_H__
 hvirtualcandsim.h:1
 hvirtualcandsim.h:2
 hvirtualcandsim.h:3
 hvirtualcandsim.h:4
 hvirtualcandsim.h:5
 hvirtualcandsim.h:6
 hvirtualcandsim.h:7
 hvirtualcandsim.h:8
 hvirtualcandsim.h:9
 hvirtualcandsim.h:10
 hvirtualcandsim.h:11
 hvirtualcandsim.h:12
 hvirtualcandsim.h:13
 hvirtualcandsim.h:14
 hvirtualcandsim.h:15
 hvirtualcandsim.h:16
 hvirtualcandsim.h:17
 hvirtualcandsim.h:18
 hvirtualcandsim.h:19
 hvirtualcandsim.h:20
 hvirtualcandsim.h:21
 hvirtualcandsim.h:22
 hvirtualcandsim.h:23
 hvirtualcandsim.h:24
 hvirtualcandsim.h:25
 hvirtualcandsim.h:26
 hvirtualcandsim.h:27
 hvirtualcandsim.h:28
 hvirtualcandsim.h:29
 hvirtualcandsim.h:30
 hvirtualcandsim.h:31
 hvirtualcandsim.h:32
 hvirtualcandsim.h:33
 hvirtualcandsim.h:34
 hvirtualcandsim.h:35
 hvirtualcandsim.h:36
 hvirtualcandsim.h:37
 hvirtualcandsim.h:38
 hvirtualcandsim.h:39
 hvirtualcandsim.h:40
 hvirtualcandsim.h:41
 hvirtualcandsim.h:42
 hvirtualcandsim.h:43
 hvirtualcandsim.h:44
 hvirtualcandsim.h:45
 hvirtualcandsim.h:46
 hvirtualcandsim.h:47
 hvirtualcandsim.h:48
 hvirtualcandsim.h:49
 hvirtualcandsim.h:50
 hvirtualcandsim.h:51
 hvirtualcandsim.h:52
 hvirtualcandsim.h:53
 hvirtualcandsim.h:54
 hvirtualcandsim.h:55
 hvirtualcandsim.h:56
 hvirtualcandsim.h:57
 hvirtualcandsim.h:58
 hvirtualcandsim.h:59
 hvirtualcandsim.h:60
 hvirtualcandsim.h:61
 hvirtualcandsim.h:62
 hvirtualcandsim.h:63
 hvirtualcandsim.h:64
 hvirtualcandsim.h:65
 hvirtualcandsim.h:66
 hvirtualcandsim.h:67
 hvirtualcandsim.h:68
 hvirtualcandsim.h:69
 hvirtualcandsim.h:70
 hvirtualcandsim.h:71
 hvirtualcandsim.h:72
 hvirtualcandsim.h:73
 hvirtualcandsim.h:74
 hvirtualcandsim.h:75
 hvirtualcandsim.h:76
 hvirtualcandsim.h:77
 hvirtualcandsim.h:78
 hvirtualcandsim.h:79
 hvirtualcandsim.h:80
 hvirtualcandsim.h:81
 hvirtualcandsim.h:82
 hvirtualcandsim.h:83
 hvirtualcandsim.h:84
 hvirtualcandsim.h:85
 hvirtualcandsim.h:86
 hvirtualcandsim.h:87
 hvirtualcandsim.h:88