Skip to content
Open
Show file tree
Hide file tree
Changes from 18 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions DataFormats/L1DTTrackFinder/BuildFile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
<use name="DataFormats/L1GlobalMuonTrigger"/>
<export>
<lib name="1"/>
<lib name="DataFormatsL1DTTrackFinder"/>
</export>
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,9 @@ class L1Phase2MuDTExtPhDigi : public L1Phase2MuDTPhDigi {
int tdc[8] = nullptr,
int lat[8] = nullptr);

L1Phase2MuDTExtPhDigi(const L1Phase2MuDTExtPhDigi &digi);
L1Phase2MuDTExtPhDigi(const L1Phase2MuDTExtPhDigi& digi);
L1Phase2MuDTExtPhDigi& operator=(const L1Phase2MuDTExtPhDigi&) = default;
L1Phase2MuDTExtPhDigi& operator=(L1Phase2MuDTExtPhDigi&&) = default;

~L1Phase2MuDTExtPhDigi() override {}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#ifndef DataFormats_L1DTTrackFinder_L1Phase2MuDTExtPhiThetaPair_h
#define DataFormats_L1DTTrackFinder_L1Phase2MuDTExtPhiThetaPair_h

/** \class L1Phase2MuDTExtPhiThetaPair
*
* Data container for a matched pair of Phase-2 DT Phi and Theta digis.
* Provides utilities to retrieve the closest-N time-position pairs per chamber ordered by Phi quality.
*
* \author J. Fernandez
* \date 2025-11-19
*/

#include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTExtPhDigi.h"
#include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTExtThDigi.h"
#include <vector>
#include <algorithm>

class L1Phase2MuDTExtPhiThetaPair {
public:
/// Default constructor
L1Phase2MuDTExtPhiThetaPair() = default;

/// Constructor with digis and quality
L1Phase2MuDTExtPhiThetaPair(const L1Phase2MuDTExtPhDigi& phi, const L1Phase2MuDTExtThDigi& theta, int quality);

// Explicitly allow copy/move
L1Phase2MuDTExtPhiThetaPair(const L1Phase2MuDTExtPhiThetaPair&) = default;
L1Phase2MuDTExtPhiThetaPair& operator=(const L1Phase2MuDTExtPhiThetaPair&) = default;
L1Phase2MuDTExtPhiThetaPair(L1Phase2MuDTExtPhiThetaPair&&) = default;
L1Phase2MuDTExtPhiThetaPair& operator=(L1Phase2MuDTExtPhiThetaPair&&) = default;

/// Accessors
const L1Phase2MuDTExtPhDigi& phiDigi() const { return phi_; }
const L1Phase2MuDTExtThDigi& thetaDigi() const { return theta_; }
int quality() const { return quality_; }

private:
L1Phase2MuDTExtPhDigi phi_;
L1Phase2MuDTExtThDigi theta_;
int quality_;
};

#endif
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
//-------------------------------------------------
//
// Class L1Phase2MuDTExtPhiThetaPairContainer
//
// Description: trigger primtive data for the
// muon barrel Phase2 trigger
//
//
// Author List: J. Fernandez - Oviedo ICTEA
//
//
//--------------------------------------------------
#ifndef L1Phase2MuDTExtPhiThetaPairContainer_H
#define L1Phase2MuDTExtPhiThetaPairContainer_H

//------------------------------------
// Collaborating Class Declarations --
//------------------------------------
#include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTExtPhiThetaPair.h"

//----------------------
// Base Class Headers --
//----------------------
#include <vector>

//---------------
// C++ Headers --
//---------------

//---------------------
//-- Class Interface --
//---------------------

class L1Phase2MuDTExtPhiThetaPairContainer {
public:
typedef std::vector<L1Phase2MuDTExtPhiThetaPair> Segment_Container;
typedef Segment_Container::const_iterator Segment_iterator;

// Constructor
L1Phase2MuDTExtPhiThetaPairContainer();

void setContainer(const Segment_Container& inputSegments);

Segment_Container const* getContainer() const;

private:
Segment_Container m_segments;
};

#endif
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@ class L1Phase2MuDTExtThDigi : public L1Phase2MuDTThDigi {
int tdc[4] = nullptr,
int lat[4] = nullptr);

L1Phase2MuDTExtThDigi(const L1Phase2MuDTExtThDigi &digi);
L1Phase2MuDTExtThDigi(const L1Phase2MuDTExtThDigi& digi);
L1Phase2MuDTExtThDigi& operator=(const L1Phase2MuDTExtThDigi&) = default;
L1Phase2MuDTExtThDigi& operator=(L1Phase2MuDTExtThDigi&&) = default;

~L1Phase2MuDTExtThDigi() override {}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTExtPhiThetaPair.h"

L1Phase2MuDTExtPhiThetaPair::L1Phase2MuDTExtPhiThetaPair(const L1Phase2MuDTExtPhDigi& phi,
const L1Phase2MuDTExtThDigi& theta,
int quality)
: phi_(phi), theta_(theta), quality_(quality) {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
//-------------------------------------------------
//
// Class L1Phase2MuDTExtPhiThetaPairContainer
//
// Description: trigger primtive data for the
// muon barrel Phase2 trigger
//
//
// Author List: J. Fernandez - Oviedo ICTEA
//
//
//--------------------------------------------------

//-----------------------
// This Class's Header --
//-----------------------
#include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTExtPhiThetaPairContainer.h"

//-------------------------------
// Collaborating Class Headers --
//-------------------------------

//---------------
// C++ Headers --
//---------------

//-------------------
// Initializations --
//-------------------

//----------------
// Constructors --
//----------------
L1Phase2MuDTExtPhiThetaPairContainer::L1Phase2MuDTExtPhiThetaPairContainer() {}

//--------------
// Operations --
//--------------
void L1Phase2MuDTExtPhiThetaPairContainer::setContainer(const Segment_Container& inputSegments) {
m_segments = inputSegments;
}

L1Phase2MuDTExtPhiThetaPairContainer::Segment_Container const* L1Phase2MuDTExtPhiThetaPairContainer::getContainer()
const {
return &m_segments;
}
2 changes: 2 additions & 0 deletions DataFormats/L1DTTrackFinder/src/classes.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,6 @@
#include <DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTExtThDigi.h>
#include <DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTExtThContainer.h>
#include <DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTShowerContainer.h>
#include <DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTExtPhiThetaPair.h>
#include <DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTExtPhiThetaPairContainer.h>
#include <DataFormats/Common/interface/Wrapper.h>
6 changes: 5 additions & 1 deletion DataFormats/L1DTTrackFinder/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
<class name="L1Phase2MuDTExtPhDigi"/>
<class name="L1Phase2MuDTThDigi"/>
<class name="L1Phase2MuDTExtThDigi"/>
<class name="L1Phase2MuDTExtPhiThetaPair"/>

<class name="std::vector<L1MuDTChambPhDigi>"/>
<class name="std::vector<L1MuDTChambThDigi>"/>
Expand All @@ -34,6 +35,7 @@
<class name="std::vector<L1Phase2MuDTExtPhDigi>"/>
<class name="std::vector<L1Phase2MuDTExtThDigi>"/>
<class name="std::vector<L1Phase2MuDTShower>"/>
<class name="std::vector<L1Phase2MuDTExtPhiThetaPair>"/>

<class name="L1MuDTChambPhContainer" ClassVersion="10">
<version ClassVersion="10" checksum="407874824"/>
Expand All @@ -56,7 +58,7 @@
<class name="L1Phase2MuDTThContainer"/>
<class name="L1Phase2MuDTExtPhContainer"/>
<class name="L1Phase2MuDTExtThContainer"/>

<class name="L1Phase2MuDTExtPhiThetaPairContainer"/>

<class name="edm::Wrapper<L1MuDTChambPhContainer>" splitLevel="0"/>
<class name="edm::Wrapper<L1MuDTChambThContainer>" splitLevel="0"/>
Expand All @@ -67,10 +69,12 @@
<class name="edm::Wrapper<L1Phase2MuDTExtPhContainer>" splitLevel="0"/>
<class name="edm::Wrapper<L1Phase2MuDTExtThContainer>" splitLevel="0"/>
<class name="edm::Wrapper<L1Phase2MuDTShowerContainer>" splitLevel="0"/>
<class name="edm::Wrapper<L1Phase2MuDTExtPhiThetaPairContainer>" splitLevel="0"/>

<class name="edm::Wrapper<std::vector<L1Phase2MuDTPhDigi> >" />
<class name="edm::Wrapper<std::vector<L1Phase2MuDTThDigi> >" />
<class name="edm::Wrapper<std::vector<L1Phase2MuDTExtPhDigi> >" />
<class name="edm::Wrapper<std::vector<L1Phase2MuDTExtThDigi> >" />
<class name="edm::Wrapper<std::vector<L1Phase2MuDTExtPhiThetaPair> >" />

</lcgdict>
3 changes: 3 additions & 0 deletions L1Trigger/Configuration/python/L1Trigger_EventContent_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,9 @@ def _appendPhase2Digis(obj):
'keep *_l1tPhase2L1CaloEGammaEmulator_*_*',
'keep *_l1tGTProducer_*_*',
'keep *_l1tGTAlgoBlockProducer_*_*',
'keep *_dtTriggerPhase2PrimitiveDigis_*_*',
'keep *_dtTriggerPhase2Showers_*_*',
'keep *_dtTriggerPhase2PrimitivePairDigis_*_*'
]
obj.outputCommands += l1Phase2Digis

Expand Down
2 changes: 2 additions & 0 deletions L1Trigger/Configuration/python/SimL1Emulator_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@
_phase2_siml1emulator.add(dtTriggerPhase2PrimitiveDigis)
from L1Trigger.DTTriggerPhase2.dtTriggerPhase2Showers_cfi import *
_phase2_siml1emulator.add(dtTriggerPhase2Shower)
from L1Trigger.DTTriggerPhase2.dtTriggerPhase2PrimitivePairDigis_cfi import *
_phase2_siml1emulator.add(dtTriggerPhase2PrimitivePairDigis)

# HGCAL TP
# ########################################################################
Expand Down
Loading