-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Updates of the uGT emulator and L1Ntuple workflows for ZDC signals #42635
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
Closed
Closed
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -43,6 +43,8 @@ namespace l1t { | |
| gtCentrality6, | ||
| gtCentrality7, | ||
| gtExternal, | ||
| gtZDCP, | ||
| gtZDCM, | ||
| ObjNull | ||
| }; | ||
|
|
||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -52,6 +52,8 @@ namespace l1t { | |
| kAsymHt, | ||
| kAsymEtHF, | ||
| kAsymHtHF, | ||
| kZDCP, | ||
| kZDCM, | ||
| kUninitialized | ||
| }; | ||
|
|
||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,86 @@ | ||
| #ifndef L1Trigger_L1TGlobal_ZdcEnergySumCondition_h | ||
| #define L1Trigger_L1TGlobal_ZdcEnergySumCondition_h | ||
|
|
||
| /** | ||
| * \class ZdcEnergySumCondition | ||
| * | ||
| * | ||
| * Description: evaluation of a CondZdcEnergySum condition. | ||
| * | ||
| * Implementation: | ||
| * <TODO: enter implementation details> | ||
| * | ||
| * \author: Vasile Mihai Ghete - HEPHY Vienna | ||
| * | ||
| * | ||
| */ | ||
|
|
||
| // system include files | ||
| #include <iosfwd> | ||
| #include <string> | ||
|
|
||
| // user include files | ||
| // base classes | ||
| #include "L1Trigger/L1TGlobal/interface/ConditionEvaluation.h" | ||
|
|
||
| // forward declarations | ||
| class GlobalCondition; | ||
| class ZdcEnergySumTemplate; | ||
|
|
||
| namespace l1t { | ||
|
|
||
| class L1Candidate; | ||
|
|
||
| class GlobalBoard; | ||
|
|
||
| // class declaration | ||
| class ZdcEnergySumCondition : public ConditionEvaluation { | ||
| public: | ||
| /// constructors | ||
| /// default | ||
| ZdcEnergySumCondition(); | ||
|
|
||
| /// from base template condition (from event setup usually) | ||
| ZdcEnergySumCondition(const GlobalCondition*, const GlobalBoard*); | ||
|
|
||
| // copy constructor | ||
| ZdcEnergySumCondition(const ZdcEnergySumCondition&); | ||
|
|
||
| // destructor | ||
| ~ZdcEnergySumCondition() override; | ||
|
|
||
| // assign operator | ||
| ZdcEnergySumCondition& operator=(const ZdcEnergySumCondition&); | ||
|
|
||
| public: | ||
| /// the core function to check if the condition matches | ||
| const bool evaluateCondition(const int bxEval) const override; | ||
|
|
||
| /// print condition | ||
| void print(std::ostream& myCout) const override; | ||
|
|
||
| public: | ||
| /// get / set the pointer to a L1GtCondition | ||
| inline const ZdcEnergySumTemplate* gtZdcEnergySumTemplate() const { return m_gtZdcEnergySumTemplate; } | ||
|
|
||
| void setGtZdcEnergySumTemplate(const ZdcEnergySumTemplate*); | ||
|
|
||
| /// get / set the pointer to uGt GlobalBoard | ||
| inline const GlobalBoard* getuGtB() const { return m_uGtB; } | ||
|
|
||
| void setuGtB(const GlobalBoard*); | ||
|
|
||
| private: | ||
| /// copy function for copy constructor and operator= | ||
| void copy(const ZdcEnergySumCondition& cp); | ||
|
|
||
| private: | ||
| /// pointer to a ZdcEnergySumTemplate | ||
| const ZdcEnergySumTemplate* m_gtZdcEnergySumTemplate; | ||
|
|
||
| /// pointer to uGt GlobalBoard, to be able to get the trigger objects | ||
| const GlobalBoard* m_uGtB; | ||
| }; | ||
|
|
||
| } // namespace l1t | ||
| #endif |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,79 @@ | ||
| #ifndef L1Trigger_L1TGlobal_ZdcEnergySumTemplate_h | ||
| #define L1Trigger_L1TGlobal_ZdcEnergySumTemplate_h | ||
|
|
||
| /** | ||
| * \class ZdcEnergySumTemplate | ||
| * | ||
| * | ||
| * Description: L1 Global Trigger energy-sum template. | ||
| * | ||
| * Implementation: | ||
| * <TODO: enter implementation details> | ||
| * | ||
| * \author: Vasile Mihai Ghete - HEPHY Vienna | ||
| * | ||
| * $Date$ | ||
| * $Revision$ | ||
| * | ||
| */ | ||
|
|
||
| // system include files | ||
| #include <string> | ||
| #include <iosfwd> | ||
|
|
||
| // user include files | ||
|
|
||
| // base class | ||
| #include "L1Trigger/L1TGlobal/interface/GlobalCondition.h" | ||
|
|
||
| // forward declarations | ||
|
|
||
| // class declaration | ||
| class ZdcEnergySumTemplate : public GlobalCondition { | ||
| public: | ||
| // constructor | ||
| ZdcEnergySumTemplate(); | ||
|
|
||
| // constructor | ||
| ZdcEnergySumTemplate(const std::string&); | ||
|
|
||
| // constructor | ||
| ZdcEnergySumTemplate(const std::string&, const l1t::GtConditionType&); | ||
|
|
||
| // copy constructor | ||
| ZdcEnergySumTemplate(const ZdcEnergySumTemplate&); | ||
|
|
||
| // destructor | ||
| ~ZdcEnergySumTemplate() override; | ||
|
|
||
| // assign operator | ||
| ZdcEnergySumTemplate& operator=(const ZdcEnergySumTemplate&); | ||
|
|
||
| public: | ||
| struct ObjectParameter { | ||
| unsigned int etLowThreshold; | ||
| unsigned int etHighThreshold; | ||
| }; | ||
|
|
||
| public: | ||
| inline const std::vector<ObjectParameter>* objectParameter() const { return &m_objectParameter; } | ||
|
|
||
| /// set functions | ||
| void setConditionParameter(const std::vector<ObjectParameter>&); | ||
|
|
||
| /// print the condition | ||
| void print(std::ostream& myCout) const override; | ||
|
|
||
| /// output stream operator | ||
| friend std::ostream& operator<<(std::ostream&, const ZdcEnergySumTemplate&); | ||
|
|
||
| private: | ||
| /// copy function for copy constructor and operator= | ||
| void copy(const ZdcEnergySumTemplate& cp); | ||
|
|
||
| private: | ||
| /// variables containing the parameters | ||
| std::vector<ObjectParameter> m_objectParameter; | ||
| }; | ||
|
|
||
| #endif |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What should be the value of this new InputTag in the instance of the L1T emulator used inside the HLT menu [1] ?
As far as I understand, in principle it should be a product coming from the L1T unpacker, e.g. something like
"hltGtStage2Digis:ZdcEtSum", but I'm not seeing where this is produced. Is there a L1T unpacker for ZDC ? (sorry if the question is naive)[1]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @missirol, for the moment we are not having (and we are not going to have in a very short term) an unpacker for ZDC. The plan was to implement something at a later stage (as discussed with @aloeliger @dinyar and HI people). Most likely the inputTag coming from L1 and used in the HLT menu will be the same one that we are going to use in the uGT, that after some discussion it looks that it will be
simCaloStage2Digis. The idea is to save the EtSum value from the ZDC producer in the same output collection that contains all EtSum values from CaloLayer2. I ask @bundocka or any other L1 expert to correct me if I am wrong.Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
simCaloStage2Digislooks like simulation - what about real data?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe that sim refers to the fact that we are simulating the trigger decision, but the inputs are real data - I've put a snippet from an edmConfigDump below of a python file I run over 2018 PbPb data to test the code. Please correct me if I've misunderstood, however
`
process.simCaloStage2Digis = cms.EDProducer("L1TStage2Layer2Producer",
firmware = cms.int32(1),
towerToken = cms.InputTag("simCaloStage2Layer1Digis"),
useStaticConfig = cms.bool(False)
)
process.simCaloStage2Layer1Digis = cms.EDProducer("L1TCaloLayer1",
ecalToken = cms.InputTag("ecalDigis","EcalTriggerPrimitives"),
firmwareVersion = cms.int32(3),
hcalToken = cms.InputTag("hcalDigis"),
unpackEcalMask = cms.bool(False),
unpackHcalMask = cms.bool(False),
useCalib = cms.bool(True),
useECALLUT = cms.bool(True),
useHCALFBLUT = cms.bool(False),
useHCALLUT = cms.bool(True),
useHFLUT = cms.bool(True),
useLSB = cms.bool(True),
verbose = cms.untracked.bool(False)
)
`
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens if one run the L1T unpackers and uGT emulator on data that does not contain the ZDC ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Andrea,
my understanding of the L1 Trigger emulation is that unpackers for objects are running only if there is something to unpack (= ZDC FED present in the run). I let L1T experts comment more though.
On my end, I quickly tried to run the current emulator on a data file from 2022A (that doesn't contain ZDC) but I have an error at earlier emulation stages. Not sure if that's relevant.
Any suggestion about how we can test this effect (and prevent issues) more in detail?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cms-sw/l1-l2 can you suggest how to try running this version of the uGT emulator on older data that does not contain the ZDC ?