Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding EMTF++ Emulator for Phase-2 #43766

Merged
merged 29 commits into from
Mar 14, 2024
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
2c24f44
Add GE0 builders for pseudo triggers from the ME0
watson-ij Jul 13, 2023
f6fd155
Update L1Trigger/L1TMuon to use the GE0 in TP and GT
watson-ij Jul 13, 2023
fb0df3c
Updates to have GE0 run with trigger debug script
watson-ij Jul 21, 2023
387e215
Merged 2023-07-ge0-for-l1t-1253p3 from repository watson-ij with cms-…
omiguelc Dec 6, 2023
ee8dfb1
Added EMTFpp emulator
omiguelc Dec 6, 2023
ccc3aab
Removed test psets from EMTFpp emulator
omiguelc Dec 7, 2023
f61cb51
Removed EMTFLogger, updated theta luts, and activation luts
omiguelc Dec 14, 2023
8d80122
Formatted code
omiguelc Dec 15, 2023
90f1f0f
Implemented various changes suggested. Mainly focused on EMTF side, M…
omiguelc Jan 16, 2024
f1fcba2
Removed unnecessary files. Files are no longer being used, and are no…
omiguelc Jan 16, 2024
81e0f46
Merged emtfpp_for_13_3_0_pre3 from repository omiguelc with cms-merge…
watson-ij Jan 16, 2024
2e2b966
Rename gem digis in emtf++ config to avoid missing gem digi error.
omiguelc Jan 16, 2024
5f912ec
Fix comments on PR
watson-ij Jan 18, 2024
0ec883b
Merged l1t-pr-fixes from repository watson-ij with cms-merge-topic
omiguelc Jan 18, 2024
fc0a4f3
Implemented fill description for L1TMuonEndCapPhase2TrackProducer
omiguelc Jan 18, 2024
7afc4f4
Formatted GEM and EMTFpp Code
omiguelc Jan 22, 2024
eeeeeee
Applied code-checks patch
omiguelc Jan 22, 2024
e73e7f7
Removed simMuonME0PseudoReDigisCoarse from ge0TriggerPseudoDigiTask
omiguelc Jan 26, 2024
e165bad
Removed me0RecHitsCoarse and me0TriggerPseudoDigis from ge0TriggerPse…
omiguelc Jan 27, 2024
7c8f8d2
Merged emtfpp_for_13_3_0_pre3 from repository omiguelc with cms-merge…
watson-ij Jan 29, 2024
4725a29
get 24034.0 running
watson-ij Jan 29, 2024
48b6441
Merge pull request #2 from watson-ij/l1t-pr-fixes
omiguelc Jan 29, 2024
848c761
Added EMTFpp Data Format Class Versions
omiguelc Feb 5, 2024
7ca90a0
Removed ParameterSet reference
omiguelc Feb 14, 2024
7e021e4
Removed LDFLAGS from BuildFile.xml
omiguelc Feb 14, 2024
8ad0864
Removed trycatch for GE0 from MuonTriggerPrimitive
omiguelc Feb 26, 2024
c955ecd
Switched to unsigned indexes for iteration, and applied naming conven…
omiguelc Mar 5, 2024
6853903
Switched to unsigned indexes for iteration, and applied naming conven…
omiguelc Mar 5, 2024
0245ea2
Switched to unsigned int for iteration in L1TGEM
omiguelc Mar 5, 2024
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
2 changes: 2 additions & 0 deletions DataFormats/GEMDigi/interface/ME0TriggerDigiCollection.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@
*/

#include "DataFormats/MuonDetId/interface/ME0DetId.h"
#include "DataFormats/MuonDetId/interface/GEMDetId.h"
#include "DataFormats/GEMDigi/interface/ME0TriggerDigi.h"
#include "DataFormats/MuonData/interface/MuonDigiCollection.h"

typedef MuonDigiCollection<ME0DetId, ME0TriggerDigi> ME0TriggerDigiCollection;
typedef MuonDigiCollection<GEMDetId, ME0TriggerDigi> GE0TriggerDigiCollection;

#endif
5 changes: 5 additions & 0 deletions DataFormats/GEMDigi/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -137,4 +137,9 @@
<class name="MuonDigiCollection<ME0DetId,ME0TriggerDigi>"/>
<class name="edm::Wrapper<MuonDigiCollection<ME0DetId,ME0TriggerDigi> >" splitLevel="0"/>

<class name="std::map<GEMDetId,std::vector<ME0TriggerDigi> >"/>
<class name="std::pair<GEMDetId,std::vector<ME0TriggerDigi> >"/>
<class name="MuonDigiCollection<GEMDetId,ME0TriggerDigi>"/>
<class name="edm::Wrapper<MuonDigiCollection<GEMDetId,ME0TriggerDigi> >" splitLevel="0"/>

</lcgdict>
5 changes: 3 additions & 2 deletions DataFormats/L1TMuonPhase2/BuildFile.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
<export>
<lib name="1"/>
</export>
<use name="rootrflx"/>
<use name="DataFormats/CLHEP"/>
<use name="DataFormats/Common"/>
<use name="DataFormats/L1Trigger"/>
<use name="DataFormats/L1TMuon"/>
<use name="DataFormats/L1TrackTrigger"/>
<use name="FWCore/MessageLogger"/>
<use name="hls"/>
<use name="rootrflx"/>
205 changes: 205 additions & 0 deletions DataFormats/L1TMuonPhase2/interface/EMTFHit.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
#ifndef DataFormats_L1TMuonPhase2_EMTFHit_h
#define DataFormats_L1TMuonPhase2_EMTFHit_h

#include <cstdint>
#include <vector>

#include "DataFormats/L1TMuon/interface/L1TMuonSubsystems.h"

namespace l1t::phase2 {

class EMTFHit {
public:
EMTFHit();
~EMTFHit() = default;

// Setters
void setId(uint16_t aId) { id_ = aId; }

void setRawDetId(uint32_t aRawDetId) { raw_det_id_ = aRawDetId; }
void setSubsystem(int16_t aSubsystem) { subsystem_ = aSubsystem; }
void setEndcap(int16_t aEndcap) { endcap_ = aEndcap; }
void setSector(int16_t aSector) { sector_ = aSector; }
void setSubsector(int16_t aSubsector) { subsector_ = aSubsector; }
void setStation(int16_t aStation) { station_ = aStation; }
void setRing(int16_t aRing) { ring_ = aRing; }
void setRoll(int16_t aRoll) { roll_ = aRoll; }
void setLayer(int16_t aLayer) { layer_ = aLayer; }
void setChamber(int16_t aChamber) { chamber_ = aChamber; }

void setCscId(int16_t aCscid) { csc_id_ = aCscid; }
void setCscFR(int16_t aCscfr) { csc_fr_ = aCscfr; }

void setStrip(int16_t aStrip) { strip_ = aStrip; }
void setStripLo(int16_t aStripLo) { strip_lo_ = aStripLo; }
void setStripHi(int16_t aStripHi) { strip_hi_ = aStripHi; }
void setStripQuart(int16_t aStripQuart) { strip_quart_ = aStripQuart; } // Run 3
void setStripEighth(int16_t aStripEighth) { strip_eighth_ = aStripEighth; } // Run 3
void setStripQuartBit(int16_t aStripQuartBit) { strip_quart_bit_ = aStripQuartBit; } // Run 3
void setStripEighthBit(int16_t aStripEighthBit) { strip_eighth_bit_ = aStripEighthBit; } // Run 3

void setWire1(int16_t aWire1) { wire1_ = aWire1; }
void setWire2(int16_t aWire2) { wire2_ = aWire2; }

void setBend(int16_t aBend) { bend_ = aBend; }
void setSlope(int16_t aSlope) { slope_ = aSlope; }

void setBx(int16_t aBx) { bx_ = aBx; }
void setSubbx(int16_t aSubbx) { subbx_ = aSubbx; }

void setQuality(int16_t aQuality) { quality_ = aQuality; }
void setPattern(int16_t aPattern) { pattern_ = aPattern; }

void setGlobPhi(float aGlobPhi) { glob_phi_ = aGlobPhi; }
void setGlobTheta(float aGlobTheta) { glob_theta_ = aGlobTheta; }
void setGlobPerp(float aGlobPerp) { glob_perp_ = aGlobPerp; }
void setGlobZ(float aGlobZ) { glob_z_ = aGlobZ; }
void setGlobTime(float aGlobTime) { glob_time_ = aGlobTime; }

void setEmtfChamber(int16_t aEmtfChamber) { emtf_chamber_ = aEmtfChamber; }
void setEmtfSegment(int16_t aEmtfSegment) { emtf_segment_ = aEmtfSegment; }
void setEmtfPhi(int16_t aEmtfPhi) { emtf_phi_ = aEmtfPhi; }
void setEmtfBend(int16_t aEmtfBend) { emtf_bend_ = aEmtfBend; }
void setEmtfTheta1(int16_t aEmtfTheta1) { emtf_theta1_ = aEmtfTheta1; }
void setEmtfTheta2(int16_t aEmtfTheta2) { emtf_theta2_ = aEmtfTheta2; }
void setEmtfQual1(int16_t aEmtfQual1) { emtf_qual1_ = aEmtfQual1; }
void setEmtfQual2(int16_t aEmtfQual2) { emtf_qual2_ = aEmtfQual2; }
void setEmtfTime(int16_t aEmtfTime) { emtf_time_ = aEmtfTime; }
void setEmtfSite(int16_t aEmtfSite) { emtf_site_ = aEmtfSite; }
void setEmtfHost(int16_t aEmtfHost) { emtf_host_ = aEmtfHost; }
void setEmtfZones(int16_t aEmtfZones) { emtf_zones_ = aEmtfZones; }
void setEmtfTimezones(int16_t aEmtfTimezones) { emtf_timezones_ = aEmtfTimezones; }

void setFlagNeighbor(bool aNeighbor) { flag_neighbor_ = aNeighbor; }
void setFlagSubstitute(bool aSubstitute) { flag_substitute_ = aSubstitute; }
void setFlagValid(bool aValid) { flag_valid_ = aValid; }

// Getters
uint16_t id() const { return id_; }

uint32_t rawDetId() const { return raw_det_id_; }
int16_t subsystem() const { return subsystem_; }
int16_t endcap() const { return endcap_; }
int16_t sector() const { return sector_; }
int16_t subsector() const { return subsector_; }
int16_t station() const { return station_; }
int16_t ring() const { return ring_; }
int16_t roll() const { return roll_; }
int16_t layer() const { return layer_; }
int16_t chamber() const { return chamber_; }

int16_t cscId() const { return csc_id_; }
int16_t cscFR() const { return csc_fr_; }

int16_t strip() const { return strip_; }
int16_t stripLo() const { return strip_lo_; }
int16_t stripHi() const { return strip_hi_; }
int16_t stripQuart() const { return strip_quart_; } // Run 3
int16_t stripEighth() const { return strip_eighth_; } // Run 3
int16_t stripQuartBit() const { return strip_quart_bit_; } // Run 3
int16_t stripEighthBit() const { return strip_eighth_bit_; } // Run 3

int16_t wire1() const { return wire1_; }
int16_t wire2() const { return wire2_; }

int16_t bend() const { return bend_; }
int16_t slope() const { return slope_; }

int16_t bx() const { return bx_; }
int16_t subbx() const { return subbx_; }

int16_t quality() const { return quality_; }
int16_t pattern() const { return pattern_; }

float globPhi() const { return glob_phi_; }
float globTheta() const { return glob_theta_; }
float globPerp() const { return glob_perp_; }
float globZ() const { return glob_z_; }
float globTime() const { return glob_time_; }

int16_t emtfChamber() const { return emtf_chamber_; }
int16_t emtfSegment() const { return emtf_segment_; }
int16_t emtfPhi() const { return emtf_phi_; }
int16_t emtfBend() const { return emtf_bend_; }
int16_t emtfTheta1() const { return emtf_theta1_; }
int16_t emtfTheta2() const { return emtf_theta2_; }
int16_t emtfQual1() const { return emtf_qual1_; }
int16_t emtfQual2() const { return emtf_qual2_; }
int16_t emtfTime() const { return emtf_time_; }
int16_t emtfSite() const { return emtf_site_; }
int16_t emtfHost() const { return emtf_host_; }
int16_t emtfZones() const { return emtf_zones_; }
int16_t emtfTimezones() const { return emtf_timezones_; }

bool flagNeighbor() const { return flag_neighbor_; }
bool flagSubstitute() const { return flag_substitute_; }
bool flagValid() const { return flag_valid_; }

private:
uint16_t id_;

uint32_t raw_det_id_;
int16_t subsystem_;
int16_t endcap_;
int16_t sector_;
int16_t subsector_;
int16_t station_;
int16_t ring_;
int16_t roll_;
int16_t layer_;
int16_t chamber_;

int16_t csc_id_;
int16_t csc_fr_; // front/rear

int16_t strip_;
int16_t strip_lo_;
int16_t strip_hi_;
int16_t strip_quart_;
int16_t strip_eighth_;
int16_t strip_quart_bit_;
int16_t strip_eighth_bit_;

int16_t wire1_;
int16_t wire2_;

int16_t bend_;
int16_t slope_;

int16_t bx_;
int16_t subbx_;

int16_t quality_;
int16_t pattern_;

float glob_phi_;
float glob_theta_;
float glob_perp_;
float glob_z_;
float glob_time_;

int16_t emtf_chamber_;
int16_t emtf_segment_;
int16_t emtf_phi_;
int16_t emtf_bend_;
int16_t emtf_slope_;
int16_t emtf_theta1_;
int16_t emtf_theta2_;
int16_t emtf_qual1_;
int16_t emtf_qual2_;
int16_t emtf_time_;
int16_t emtf_site_;
int16_t emtf_host_;
int16_t emtf_zones_;
int16_t emtf_timezones_;

bool flag_neighbor_;
bool flag_substitute_;
bool flag_valid_;
};

typedef std::vector<EMTFHit> EMTFHitCollection;

} // namespace l1t::phase2

#endif // DataFormats_L1TMuonPhase2_EMTFHit_h not defined
45 changes: 45 additions & 0 deletions DataFormats/L1TMuonPhase2/interface/EMTFInput.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#ifndef DataFormats_L1TMuonPhase2_EMTFInput_h
#define DataFormats_L1TMuonPhase2_EMTFInput_h

#include <cstdint>
#include <vector>

#include "DataFormats/L1TMuon/interface/L1TMuonSubsystems.h"

namespace l1t::phase2 {

class EMTFInput {
public:
typedef std::vector<uint16_t> hits_t;
typedef std::vector<uint16_t> segs_t;

EMTFInput() : endcap_(0), sector_(0), bx_(0), hits_{}, segs_{} {}
~EMTFInput() = default;

// Setters
void setEndcap(int16_t aEndcap) { endcap_ = aEndcap; }
void setSector(int16_t aSector) { sector_ = aSector; }
void setBx(int16_t aBx) { bx_ = aBx; }
void setHits(const hits_t& aHits) { hits_ = aHits; }
void setSegs(const segs_t& aSegs) { segs_ = aSegs; }

// Getters
int16_t endcap() const { return endcap_; }
int16_t sector() const { return sector_; }
int16_t bx() const { return bx_; }
const hits_t& hits() const { return hits_; }
const segs_t& segs() const { return segs_; }

private:
int16_t endcap_;
int16_t sector_;
int16_t bx_;
hits_t hits_;
segs_t segs_;
};

typedef std::vector<EMTFInput> EMTFInputCollection;

} // namespace l1t::phase2

#endif // DataFormats_L1TMuonPhase2_EMTFInput_h not defined
Loading