/usr/include/ThePEG/PDT/Matcher.tcc is in libthepeg-dev 1.8.0-3build1.
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 | // -*- C++ -*-
//
// Matcher.tcc is a part of ThePEG - Toolkit for HEP Event Generation
// Copyright (C) 1999-2011 Leif Lonnblad
//
// ThePEG is licenced under version 2 of the GPL, see COPYING for details.
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
//
//
// This is the implementation of the non-inlined templated member
// functions of the Matcher class.
//
namespace ThePEG {
template <class T>
Matcher<T>::~Matcher() {
if ( !initMatcher.check() ) throw int();
}
template <class T>
NoPIOClassDescription< Matcher<T> > Matcher<T>::initMatcher;
template <class T>
PMPtr Matcher<T>::Create(const string & newName, string antiName) {
typedef typename Ptr< Matcher<T> >::pointer MatcherPtr;
typedef typename Ptr< Matcher<typename T::CC> >::pointer AMatcherPtr;
PMPtr pm = new_ptr<MatcherPtr>();
registerRepository(pm, newName);
if ( typeid(T) == typeid(typename T::CC) ) return pm;
if ( antiName.empty() ) antiName = newName + "~";
PMPtr apm = new_ptr<AMatcherPtr>();
setCC(pm, apm);
registerRepository(apm, antiName);
return pm;
}
template <class T>
PMPtr Matcher<T>::pmclone() const {
return new_ptr(*this);
}
template <class T>
IBPtr Matcher<T>::clone() const {
return pmclone();
}
template <class T>
IBPtr Matcher<T>::fullclone() const {
PMPtr pm = pmclone();
registerRepository(pm);
if ( !CC() ) return pm;
PMPtr apm = CC()->pmclone();
setCC(pm, apm);
registerRepository(apm);
return pm;
}
}
|