diff --git a/trackReps/include/MplTrackRep.h b/trackReps/include/MplTrackRep.h index ec29bf0a69eafb575a98c4f7f4f0cb39183872b3..9cc4992aeaeaaf31d4eed9378a7a8f461a1df460 100644 --- a/trackReps/include/MplTrackRep.h +++ b/trackReps/include/MplTrackRep.h @@ -48,9 +48,10 @@ namespace genfit { const double m_magCharge; const double m_mass; + public: - ClassDef(MplTrackRep, 1) + ClassDefOverride(MplTrackRep, 1) }; } //end genfit namespace diff --git a/trackReps/include/RKTrackRep.h b/trackReps/include/RKTrackRep.h index dd6461fcc367e74b3535f84d243ddd6da63b8cb8..c88647db34a247bbc26c5f140535fb508b31ce00 100644 --- a/trackReps/include/RKTrackRep.h +++ b/trackReps/include/RKTrackRep.h @@ -284,9 +284,13 @@ class RKTrackRep : public AbsTrackRep { double momMag(const M1x7& state7) const; + protected: mutable StateOnPlane lastStartState_; //! state where the last extrapolation has started mutable StateOnPlane lastEndState_; //! state where the last extrapolation has ended + + private: + mutable std::vector<RKStep> RKSteps_; //! RungeKutta steps made in the last extrapolation mutable int RKStepsFXStart_; //! mutable int RKStepsFXStop_; //! diff --git a/trackReps/src/MplTrackRep.cc b/trackReps/src/MplTrackRep.cc index c938b850b529df2d85915c7f7ff9779170ee0a06..49abd72e404408d73ba1c92f8c4799f3afd7152f 100644 --- a/trackReps/src/MplTrackRep.cc +++ b/trackReps/src/MplTrackRep.cc @@ -26,6 +26,8 @@ #include <math.h> +#include <TBuffer.h> + using namespace genfit; MplTrackRep::MplTrackRep(int pdgCode, float magCharge, char propDir) : @@ -254,3 +256,21 @@ double MplTrackRep::RKPropagate(M1x7& state7, // in Numerical Recipes. FIXME: move to caller. return pow(DLT/EST, 1./5.); } + +void MplTrackRep::Streamer(TBuffer &R__b) +{ + // I guess I have to reimplement this since it can not be taken from RKTrackRep? + typedef ::genfit::MplTrackRep thisClass; + UInt_t R__s, R__c; + if (R__b.IsReading()) { + ::genfit::AbsTrackRep::Streamer(R__b); + Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { } + R__b.CheckByteCount(R__s, R__c, thisClass::IsA()); + lastStartState_.setRep(this); + lastEndState_.setRep(this); + } else { + ::genfit::AbsTrackRep::Streamer(R__b); + R__c = R__b.WriteVersion(thisClass::IsA(), kTRUE); + R__b.SetByteCount(R__c, kTRUE); + } +} diff --git a/trackReps/src/trackRepsLinkDef.h b/trackReps/src/trackRepsLinkDef.h index e6ff71a7db3050f01395128964a07f8e77f55e61..efc354408c7fe667950fa46cc81bb897e50a6da2 100644 --- a/trackReps/src/trackRepsLinkDef.h +++ b/trackReps/src/trackRepsLinkDef.h @@ -8,4 +8,4 @@ #pragma link C++ namespace genfit; #pragma link C++ class genfit::RKTrackRep-; -#pragma link C++ class genfit::MplTrackRep+; +#pragma link C++ class genfit::MplTrackRep-;