1 #ifndef L1Trigger_TrackerTFP_DataFormats_h 2 #define L1Trigger_TrackerTFP_DataFormats_h 20 #include <initializer_list> 28 enum class Process {
begin,
fe =
begin,
dtc,
pp,
gp,
ht,
mht,
zht,
kfin,
kf,
dr,
end,
x };
133 template <Variable v, Process p>
476 template <
typename... Ts>
479 template <
typename... Ts>
482 template <
typename... Ts>
485 template <
typename... Ts>
514 template <Variable v = Variable::begin, Process p = Process::begin>
517 template <Variable v = Variable::begin, Process p = Process::begin>
520 template <Variable v, Process p, Process it = Process::begin>
523 template <
int it = 0,
typename... Ts>
526 template <
int it = 0,
typename... Ts>
529 template <
int it = 0,
typename... Ts>
532 template <
int it = 0,
typename... Ts>
557 template <
typename... Ts>
562 template <
typename... Others>
570 explicit operator bool()
const {
return frame_.first.isNonnull(); }
604 class StubPP :
public Stub<double, double, double, int, TTBV, int, int, int, int> {
614 double r()
const {
return std::get<0>(
data_); }
618 double z()
const {
return std::get<2>(
data_); }
638 class StubGP :
public Stub<double, double, double, int, int, int> {
654 double r()
const {
return std::get<0>(
data_); }
658 double z()
const {
return std::get<2>(
data_); }
676 class StubHT :
public Stub<double, double, double, int, int, int, int> {
686 double r()
const {
return std::get<0>(
data_); };
690 double z()
const {
return std::get<2>(
data_); };
708 class StubMHT :
public Stub<double, double, double, int, int, int, int, int> {
716 double r()
const {
return std::get<0>(
data_); }
720 double z()
const {
return std::get<2>(
data_); }
738 class StubZHT :
public Stub<double, double, double, int, int, int, int, int, int, int> {
750 double r()
const {
return std::get<0>(
data_); }
754 double z()
const {
return std::get<2>(
data_); }
802 double r()
const {
return std::get<0>(
data_); }
806 double z()
const {
return std::get<2>(
data_); }
810 double dZ()
const {
return std::get<4>(
data_); }
818 class StubKF :
public Stub<double, double, double, double, double> {
828 double r()
const {
return std::get<0>(
data_); }
832 double z()
const {
return std::get<2>(
data_); }
836 double dZ()
const {
return std::get<4>(
data_); }
844 template <
typename... Ts>
850 template <
typename... Others>
853 template <
typename... Others>
859 explicit operator bool()
const {
return frame_.first.isNonnull(); }
922 double zT()
const {
return std::get<5>(
data_); }
938 std::vector<std::vector<StubKFin*>>
stubs()
const {
return stubs_; }
944 std::vector<std::vector<StubKFin*>>
stubs_;
950 class TrackKF :
public Track<int, int, int, double, double, double, double> {
970 double zT()
const {
return std::get<6>(
data_); }
std::vector< std::vector< std::vector< std::shared_ptr< TrackKFOut > > > > TrackKFOutSAPtrCollectionss
constexpr std::initializer_list< Process > Processes
StubKFin * layerStub(int layer) const
bool inInv2RBin(int inv2RBin) const
TTBV PartialTrack2() const
std::bitset< TTBV::S_ > Frame
T getParameter(std::string const &) const
StubGP(const tt::FrameStub &frame, const DataFormats *dataFormats, int sectorPhi, int sectorEta)
TTTrack< Ref_Phase2TrackerDigi_ > ttTrack(const std::vector< StubKF > &stubs) const
TrackKFOut(TTBV PartialTrack1, TTBV PartialTrack2, TTBV PartialTrack3, int sortKey, const tt::FrameTrack &track, int trackID, int linkID, bool valid)
tt::FrameTrack frame() const
Bit vector used by Track Trigger emulators. Mainly used to convert integers into arbitrary (within ma...
std::pair< TTStubRef, Frame > FrameStub
const TTBV & maybePattern() const
Class to process and provide run-time constants used by Track Trigger emulators.
bool inSector(int sector) const
DataFormat format(Variable v, Process p) const
std::vector< std::vector< std::shared_ptr< TrackKFOut > > > TrackKFOutSAPtrCollections
constexpr Process operator++(Process p)
double chosenRofPhi() const
StubZHT(const tt::FrameStub &frame, const DataFormats *dataFormats)
TTBV PartialTrack1() const
std::vector< std::vector< StubKFin * > > stubs_
TTBV PartialTrack3() const
DataFormat format(Variable v) const
TTStubRef ttStubRef() const
Track(const tt::FrameTrack &frame, const DataFormats *dataFormats, Process p)
StubHT(const tt::FrameStub &frame, const DataFormats *dataFormats, int inv2R)
std::pair< TTTrackRef, Frame > FrameTrack
StubKFin(const tt::FrameStub &frame, const DataFormats *dataFormats, int layer)
const DataFormats * dataFormats_
#define EVENTSETUP_DATA_DEFAULT_RECORD(_data_, _record_)
TrackDR(const tt::FrameTrack &frame, const DataFormats *dataFormats)
std::vector< int > ids(bool b=true, bool singed=false) const
tt::FrameTrack track() const
const DataFormats * dataFormats_
std::tuple< Ts... > data() const
const DataFormats * dataFormats() const
const tt::Setup * setup() const
bool maybePattern(int index) const
int width(Variable v) const
std::shared_ptr< TrackKFOut > TrackKFOutSAPtr
StubPP(const tt::FrameStub &frame, const DataFormats *dataFormats)
TrackKFin(const tt::FrameTrack &frame, const DataFormats *dataFormats, const std::vector< StubKFin *> &stubs)
std::vector< int > sectors() const
int width(Variable v) const
double hybridChosenRofPhi() const
TTTrackRef ttTrackRef() const
std::vector< TrackKFOutSAPtr > TrackKFOutSAPtrCollection
const DataFormats * dataFormats() const
std::vector< int > inv2RBins() const
std::vector< StubKFin * > layerStubs(int layer) const
Class to store the L1 Track Trigger tracks.
std::tuple< Ts... > data_
StubMHT(const tt::FrameStub &frame, const DataFormats *dataFormats)
std::vector< TTStubRef > ttStubRefs(const TTBV &hitPattern, const std::vector< int > &layerMap) const
TTTrack< Ref_Phase2TrackerDigi_ > ttTrack() const
bool hitPattern(int index) const
char data[epos_bytes_allocation]
TrackKF(const tt::FrameTrack &frame, const DataFormats *dataFormats)
StubKF(const tt::FrameStub &frame, const DataFormats *dataFormats, int layer)
std::tuple< Ts... > data_
constexpr int operator+(Process p)
DataFormat format(Variable v) const
tt::FrameStub frame() const
std::vector< std::vector< StubKFin * > > stubs() const
double sectorCot(int eta) const
Power< A, B >::type pow(const A &a, const B &b)
double base(Variable v) const
std::vector< TrackKFOut > TrackKFOutSACollection
double base(Variable v) const