You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Developments to allow treatment/inclusion of additional orbits
before each timeframe start:
- A new option `--earlyOrbits x` will prepend x orbits with collisions
before the firstOrbit asked
- It will also do the same in each individual timeframe collision context extracted
from the global context
- Collisions falling within the 'earlyOrbit' range are always kept and not
filtered out based on a maximal count filter
Some cleanup.
Some restructuring/simplification of DigitizationContext:
- less internal state
- timeframe boundary indices are generalized from (start, end) --> (start, end, previous)
where previous is the index from which on this timeframe can still be influenced with
an earlyOrbit criterion
/// function reading the hits from a chain (previously initialized with initSimChains
122
122
/// The hits pointer will be initialized (what to we do about ownership??)
@@ -130,12 +130,12 @@ class DigitizationContext
130
130
/// returns the GRP object associated to this context
131
131
o2::parameters::GRPObject const& getGRP() const;
132
132
133
-
// apply collision number cuts and potential relabeling of eventID
134
-
voidapplyMaxCollisionFilter(long startOrbit, long orbitsPerTF, int maxColl);
133
+
// apply collision number cuts and potential relabeling of eventID, (keeps collisions which fall into the orbitsEarly range for the next timeframe)
134
+
// needs a timeframe index structure (determined by calcTimeframeIndices), which is adjusted during the process to reflect the filtering
135
+
voidapplyMaxCollisionFilter(std::vector<std::tuple<int, int, int>>& timeframeindices, long startOrbit, long orbitsPerTF, int maxColl, double orbitsEarly = 0.);
135
136
136
-
/// finalize timeframe structure (fixes the indices in mTimeFrameStartIndex)
137
-
// returns the number of timeframes
138
-
intfinalizeTimeframeStructure(long startOrbit, long orbitsPerTF);
137
+
/// get timeframe structure --> index markers where timeframe starts/ends/is_influenced_by
std::vector<std::pair<int, int>> mTimeFrameStartIndex; // for each timeframe, the pair of start-index and end-index into mEventParts, mEventRecords
188
-
std::vector<std::pair<int, int>> mTimeFrameStartIndexQED; // for each timeframe, the pair of start-index and end-index into mEventParts, mEventRecords (QED version)
189
-
190
186
o2::BunchFilling mBCFilling; // pattern of active BCs
191
187
192
188
std::vector<std::string> mSimPrefixes; // identifiers to the hit sim products; the key corresponds to the source ID of event record
voidDigitizationContext::applyMaxCollisionFilter(long startOrbit, long orbitsPerTF, int maxColl)
443
+
voidDigitizationContext::applyMaxCollisionFilter(std::vector<std::tuple<int, int, int>>& timeframeindices, long startOrbit, long orbitsPerTF, int maxColl, double orbitsEarly)
386
444
{
387
445
// the idea is to go through each timeframe and throw away collisions beyond a certain count
0 commit comments