ROOT logo
#include "hvirtualcand.h"
#include "hphysicsconstants.h"

#include "TBuffer.h"

// ROOT's IO and RTTI stuff is added here
ClassImp(HVirtualCand)

    //_HADES_CLASS_DESCRIPTION
    ////////////////////////////////////////////////////////////////////////////////
    //
    //
    // HVirtualCand
    //
    // Virtual class for Candidates
    //
    //
    ////////////////////////////////////////////////////////////////////////////////


HVirtualCand::~HVirtualCand() {}

void HVirtualCand::print(UInt_t selection)
{
}

Float_t HVirtualCand::getMomentumPID(Int_t pid)
{
    // returns the momentum of the candidate taking
    // into account the charge of the provided PID  ( mom*charge)
    // In the track reconstruction by default all
    // momenta are recontructed using charge = 1

    if(fMomentum == -1) return fMomentum;

    Float_t mom      = fMomentum;
    Int_t chrg       = TMath::Abs(HPhysicsConstants::charge(pid));
    if(chrg > 0) mom = mom*chrg;

    return mom;
}

void HVirtualCand::Streamer(TBuffer &R__b)
{
   // Stream an object of class HVirtualCand.

   UInt_t R__s, R__c;
   if (R__b.IsReading()) {
      Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { }
      TLorentzVector::Streamer(R__b);
      R__b >> fCharge;
      R__b >> fTofRec;
      R__b >> fBeta;
      R__b >> fMomentum;
      R__b >> fMass2;
      R__b >> fPhi;
      R__b >> fTheta;
      R__b >> fR;
      R__b >> fZ;
      R__b >> fChi2;
      if(R__v > 1){
	  R__b >> fPhi2;
	  R__b >> fTheta2;
	  R__b >> fR2;
	  R__b >> fZ2;
      } else {
	  fPhi2   = -1.;
	  fTheta2 = -1.;
	  fR2     = -1.;
	  fZ2     = -1.;
      }
      R__b.CheckByteCount(R__s, R__c, HVirtualCand::IsA());
   } else {
      R__c = R__b.WriteVersion(HVirtualCand::IsA(), kTRUE);
      TLorentzVector::Streamer(R__b);
      R__b << fCharge;
      R__b << fTofRec;
      R__b << fBeta;
      R__b << fMomentum;
      R__b << fMass2;
      R__b << fPhi;
      R__b << fTheta;
      R__b << fR;
      R__b << fZ;
      R__b << fChi2;
      R__b << fPhi2;
      R__b << fTheta2;
      R__b << fR2;
      R__b << fZ2;
      R__b.SetByteCount(R__c, kTRUE);
   }
}
 hvirtualcand.cc:1
 hvirtualcand.cc:2
 hvirtualcand.cc:3
 hvirtualcand.cc:4
 hvirtualcand.cc:5
 hvirtualcand.cc:6
 hvirtualcand.cc:7
 hvirtualcand.cc:8
 hvirtualcand.cc:9
 hvirtualcand.cc:10
 hvirtualcand.cc:11
 hvirtualcand.cc:12
 hvirtualcand.cc:13
 hvirtualcand.cc:14
 hvirtualcand.cc:15
 hvirtualcand.cc:16
 hvirtualcand.cc:17
 hvirtualcand.cc:18
 hvirtualcand.cc:19
 hvirtualcand.cc:20
 hvirtualcand.cc:21
 hvirtualcand.cc:22
 hvirtualcand.cc:23
 hvirtualcand.cc:24
 hvirtualcand.cc:25
 hvirtualcand.cc:26
 hvirtualcand.cc:27
 hvirtualcand.cc:28
 hvirtualcand.cc:29
 hvirtualcand.cc:30
 hvirtualcand.cc:31
 hvirtualcand.cc:32
 hvirtualcand.cc:33
 hvirtualcand.cc:34
 hvirtualcand.cc:35
 hvirtualcand.cc:36
 hvirtualcand.cc:37
 hvirtualcand.cc:38
 hvirtualcand.cc:39
 hvirtualcand.cc:40
 hvirtualcand.cc:41
 hvirtualcand.cc:42
 hvirtualcand.cc:43
 hvirtualcand.cc:44
 hvirtualcand.cc:45
 hvirtualcand.cc:46
 hvirtualcand.cc:47
 hvirtualcand.cc:48
 hvirtualcand.cc:49
 hvirtualcand.cc:50
 hvirtualcand.cc:51
 hvirtualcand.cc:52
 hvirtualcand.cc:53
 hvirtualcand.cc:54
 hvirtualcand.cc:55
 hvirtualcand.cc:56
 hvirtualcand.cc:57
 hvirtualcand.cc:58
 hvirtualcand.cc:59
 hvirtualcand.cc:60
 hvirtualcand.cc:61
 hvirtualcand.cc:62
 hvirtualcand.cc:63
 hvirtualcand.cc:64
 hvirtualcand.cc:65
 hvirtualcand.cc:66
 hvirtualcand.cc:67
 hvirtualcand.cc:68
 hvirtualcand.cc:69
 hvirtualcand.cc:70
 hvirtualcand.cc:71
 hvirtualcand.cc:72
 hvirtualcand.cc:73
 hvirtualcand.cc:74
 hvirtualcand.cc:75
 hvirtualcand.cc:76
 hvirtualcand.cc:77
 hvirtualcand.cc:78
 hvirtualcand.cc:79
 hvirtualcand.cc:80
 hvirtualcand.cc:81
 hvirtualcand.cc:82
 hvirtualcand.cc:83
 hvirtualcand.cc:84
 hvirtualcand.cc:85
 hvirtualcand.cc:86
 hvirtualcand.cc:87
 hvirtualcand.cc:88
 hvirtualcand.cc:89
 hvirtualcand.cc:90
 hvirtualcand.cc:91
 hvirtualcand.cc:92