Skip to content

Commit a40029d

Browse files
authored
Merge pull request #44785 from felicepantaleo/ticlv5_14_1_X_2024-04-18-2300
first release of TICLv5
2 parents 00b743f + bdf142f commit a40029d

File tree

110 files changed

+5523
-1430
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+5523
-1430
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
// Author: Felice Pantaleo (CERN), 2023, [email protected]
2+
#ifndef MultiVectorManager_h
3+
#define MultiVectorManager_h
4+
5+
#include <vector>
6+
#include <cassert>
7+
#include <algorithm>
8+
#include <iterator>
9+
10+
template <typename T>
11+
class MultiVectorManager {
12+
public:
13+
void addVector(const std::vector<T>& vec) {
14+
vectors.emplace_back(vec.begin(), vec.end());
15+
offsets.push_back(totalSize);
16+
totalSize += vec.size();
17+
}
18+
19+
T& operator[](size_t globalIndex) {
20+
return const_cast<T&>(static_cast<const MultiVectorManager*>(this)->operator[](globalIndex));
21+
}
22+
23+
const T& operator[](size_t globalIndex) const {
24+
assert(globalIndex < totalSize && "Global index out of range");
25+
26+
auto it = std::upper_bound(offsets.begin(), offsets.end(), globalIndex);
27+
size_t vectorIndex = std::distance(offsets.begin(), it) - 1;
28+
size_t localIndex = globalIndex - offsets[vectorIndex];
29+
30+
return vectors[vectorIndex][localIndex];
31+
}
32+
33+
size_t getGlobalIndex(size_t vectorIndex, size_t localIndex) const {
34+
assert(vectorIndex < vectors.size() && "Vector index out of range");
35+
36+
const auto& vec = vectors[vectorIndex];
37+
assert(localIndex < vec.size() && "Local index out of range");
38+
39+
return offsets[vectorIndex] + localIndex;
40+
}
41+
42+
size_t size() const { return totalSize; }
43+
44+
std::pair<size_t, size_t> getVectorAndLocalIndex(size_t globalIndex) const {
45+
assert(globalIndex < totalSize && "Global index out of range");
46+
47+
auto it = std::upper_bound(offsets.begin(), offsets.end(), globalIndex);
48+
size_t vectorIndex = std::distance(offsets.begin(), it) - 1;
49+
size_t localIndex = globalIndex - offsets[vectorIndex];
50+
51+
return {vectorIndex, localIndex};
52+
}
53+
54+
class Iterator {
55+
public:
56+
Iterator(const MultiVectorManager& manager, size_t index) : manager(manager), currentIndex(index) {}
57+
58+
bool operator!=(const Iterator& other) const { return currentIndex != other.currentIndex; }
59+
60+
T& operator*() const { return const_cast<T&>(manager[currentIndex]); }
61+
62+
void operator++() { ++currentIndex; }
63+
64+
private:
65+
const MultiVectorManager& manager;
66+
size_t currentIndex;
67+
};
68+
69+
Iterator begin() const { return Iterator(*this, 0); }
70+
71+
Iterator end() const { return Iterator(*this, totalSize); }
72+
73+
private:
74+
std::vector<std::vector<T>> vectors;
75+
std::vector<size_t> offsets;
76+
size_t totalSize = 0;
77+
};
78+
79+
#endif

Configuration/EventContent/python/EventContent_cff.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,8 @@ def SwapKeepAndDrop(l):
568568
outputCommands = FEVTEventContent.outputCommands + RecoLocalFastTimeFEVT.outputCommands)
569569
phase2_timing_layer.toModify(FEVTEventContent,
570570
outputCommands = FEVTEventContent.outputCommands + RecoMTDFEVT.outputCommands)
571+
from Configuration.ProcessModifiers.ticl_v5_cff import ticl_v5
572+
ticl_v5.toModify(FEVTEventContent, outputCommands=FEVTEventContent.outputCommands+TICLv5_FEVT.outputCommands)
571573

572574
FEVTHLTALLEventContent = cms.PSet(
573575
outputCommands = cms.untracked.vstring('drop *'),
@@ -651,6 +653,8 @@ def SwapKeepAndDrop(l):
651653
'keep *_hltSiStripClusters2ApproxClusters_*_*',
652654
'keep DetIds_hltSiStripRawToDigi_*_*'
653655
])
656+
657+
ticl_v5.toModify(FEVTDEBUGEventContent, outputCommands=FEVTDEBUGEventContent.outputCommands+TICLv5_FEVT.outputCommands)
654658
#
655659
#
656660
# FEVTDEBUGHLT Data Tier definition

Configuration/ProcessModifiers/python/ticl_v3_cff.py

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
# This modifier is for running TICL v5.
4+
5+
ticl_v5 = cms.Modifier()

Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -693,15 +693,15 @@ def condition(self, fragment, stepList, key, hasHarvest):
693693
upgradeWFs['ticl_FastJet'].step3 = {'--procModifiers': 'fastJetTICL'}
694694
upgradeWFs['ticl_FastJet'].step4 = {'--procModifiers': 'fastJetTICL'}
695695

696-
class UpgradeWorkflow_ticl_v3(UpgradeWorkflow):
696+
class UpgradeWorkflow_ticl_v5(UpgradeWorkflow):
697697
def setup_(self, step, stepName, stepDict, k, properties):
698698
if 'RecoGlobal' in step:
699699
stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
700700
if 'HARVESTGlobal' in step:
701701
stepDict[stepName][k] = merge([self.step4, stepDict[step][k]])
702702
def condition(self, fragment, stepList, key, hasHarvest):
703703
return (fragment=="TTbar_14TeV" or 'CloseByP' in fragment or 'Eta1p7_2p7' in fragment) and '2026' in key
704-
upgradeWFs['ticl_v3'] = UpgradeWorkflow_ticl_v3(
704+
upgradeWFs['ticl_v5'] = UpgradeWorkflow_ticl_v5(
705705
steps = [
706706
'RecoGlobal',
707707
'HARVESTGlobal'
@@ -710,12 +710,11 @@ def condition(self, fragment, stepList, key, hasHarvest):
710710
'RecoGlobal',
711711
'HARVESTGlobal'
712712
],
713-
suffix = '_ticl_v3',
713+
suffix = '_ticl_v5',
714714
offset = 0.203,
715715
)
716-
upgradeWFs['ticl_v3'].step3 = {'--procModifiers': 'ticl_v3'}
717-
upgradeWFs['ticl_v3'].step4 = {'--procModifiers': 'ticl_v3'}
718-
716+
upgradeWFs['ticl_v5'].step3 = {'--procModifiers': 'ticl_v5'}
717+
upgradeWFs['ticl_v5'].step4 = {'--procModifiers': 'ticl_v5'}
719718

720719
# Track DNN workflows
721720
class UpgradeWorkflow_trackdnn(UpgradeWorkflow):

DataFormats/CaloRecHit/interface/CaloCluster.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ namespace reco {
3939
particleFlow = 5,
4040
hgcal_em = 6,
4141
hgcal_had = 7,
42+
hgcal_scintillator = 8,
4243
hfnose = 9,
4344
undefined = 1000
4445
};

DataFormats/GeometryVector/src/classes.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#include "DataFormats/Common/interface/ValueMap.h"
2+
#include "DataFormats/Common/interface/Wrapper.h"
13
#include "DataFormats/GeometryVector/interface/Phi.h"
24
namespace {
35
Geom::Phi<double, Geom::MinusPiToPi> dummy;

DataFormats/GeometryVector/src/classes_def.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@
8888
<version ClassVersion="11" checksum="122348193"/>
8989
<version ClassVersion="10" checksum="3782271882"/>
9090
</class>
91+
<class name="edm::ValueMap<Point3DBase<float,GlobalTag> >"/>
92+
<class name="edm::Wrapper<edm::ValueMap<Point3DBase<float,GlobalTag> > >"/>
9193
<class name="Vector2DBase<float,GlobalTag>" ClassVersion="11">
9294
<version ClassVersion="11" checksum="2993275990"/>
9395
<version ClassVersion="10" checksum="662089398"/>

DataFormats/HGCalReco/BuildFile.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<use name="DataFormats/Math"/>
22
<use name="DataFormats/Provenance"/>
3+
<use name="DataFormats/Portable"/>
4+
<use name="DataFormats/SoATemplate"/>
35
<use name="DataFormats/Candidate"/>
46
<use name="DataFormats/Common"/>
57
<use name="DataFormats/TrackReco"/>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#ifndef DataFormats_HGCalReco_MtdHostCollection_h
2+
#define DataFormats_HGCalReco_MtdHostCollection_h
3+
4+
#include "DataFormats/Portable/interface/PortableHostCollection.h"
5+
#include "DataFormats/HGCalReco/interface/MtdSoA.h"
6+
7+
// MtdSoA in host memory
8+
using MtdHostCollection = PortableHostCollection<MtdSoA>;
9+
using MtdHostCollectionView = PortableHostCollection<MtdSoA>::View;
10+
using MtdHostCollectionConstView = PortableHostCollection<MtdSoA>::ConstView;
11+
12+
#endif

0 commit comments

Comments
 (0)