8#include "tbb/blocked_range.h"
9#include "tbb/parallel_for.h"
10#include "tbb/task_scheduler_init.h"
19 int* StsHitsStartIndex;
20 int* StsHitsStopIndex;
21 vector<unsigned char>& vSFlag;
22 vector<unsigned char>& vSFlagB;
23 std::vector<L1HitPoint>& vStsHits;
31 L1XYMeasurementInfo& TargetXYInfo;
34 unsigned* portionStopIndex;
36 L1FieldRegion* fld_g1;
53 void operator()(
const blocked_range<size_t>& r)
const;
58 L1Station* vStations_,
60 int* StsHitsStartIndex_,
61 int* StsHitsStopIndex_,
62 vector<unsigned char>& vSFlag_,
63 vector<unsigned char>& vSFlagB_,
64 std::vector<L1HitPoint>& vStsHits_,
72 L1XYMeasurementInfo& TargetXYInfo_,
75 unsigned* portionStopIndex_,
77 L1FieldRegion* fld_g1_,
81 THitI* Duplets_start_,
94 , vStations(vStations_)
95 , NStations(NStations_)
96 , StsHitsStartIndex(StsHitsStartIndex_)
97 , StsHitsStopIndex(StsHitsStopIndex_)
100 , vStsHits(vStsHits_)
103 , MaxInvMom(MaxInvMom_)
108 , TargetXYInfo(TargetXYInfo_)
112 , portionStopIndex(portionStopIndex_)
115 , hitsl_g1(hitsl_g1_)
119 Duplets_start(Duplets_start_)
120 , Duplets_hits(Duplets_hits_)
138void ParalleledDup::operator()(
const blocked_range<size_t>& r)
const
141 for (
int istal = r.begin(); istal < (
int)r.end(); ++istal) {
144 isec, istal, vStsHits, targX, targY, targZ, targB, TargetXYInfo,
146 n_g1, portionStopIndex, T_g1, fld_g1, hitsl_g1,
149 Duplets_start, Duplets_hits,
166 L1Station* vStations;
168 int* StsHitsStartIndex;
169 int* StsHitsStopIndex;
170 std::vector<L1HitPoint>& svStsHits;
172 double TRACK_CHI2_CUT;
177 L1FieldRegion* fld_g1;
181 unsigned* portionStopIndex;
190 THitI* Duplets_start;
192 std::vector<L1Triplet>* vTriplets_part;
193 unsigned* TripStartIndexH;
194 unsigned* TripStopIndexH;
197 void operator()(
const blocked_range<size_t>& r)
const;
202 L1Station* vStations_,
204 int* StsHitsStartIndex_,
205 int* StsHitsStopIndex_,
206 std::vector<L1HitPoint>& vStsHits_,
208 double TRACK_CHI2_CUT_,
213 L1FieldRegion* fld_g1_,
217 unsigned* portionStopIndex_,
226 THitI* Duplets_start_,
227 THitI* Duplets_hits_,
228 std::vector<L1Triplet>* vTriplets_part_,
229 unsigned* TripStartIndexH_,
230 unsigned* TripStopIndexH_)
233 , vStations(vStations_)
234 , NStations(NStations_)
235 , StsHitsStartIndex(StsHitsStartIndex_)
236 , StsHitsStopIndex(StsHitsStopIndex_)
237 , svStsHits(vStsHits_)
239 , TRACK_CHI2_CUT(TRACK_CHI2_CUT_)
240 , MaxInvMom(MaxInvMom_)
246 , hitsl_g1(hitsl_g1_)
250 , portionStopIndex(portionStopIndex_)
261 Duplets_start(Duplets_start_)
262 , Duplets_hits(Duplets_hits_)
263 , vTriplets_part(vTriplets_part_)
264 , TripStartIndexH(TripStartIndexH_)
265 , TripStopIndexH(TripStopIndexH_) {};
267 ~ParalleledTrip() {};
270void ParalleledTrip::operator()(
const blocked_range<size_t>& r)
const
273 for (
int istal = r.begin(); istal < (
int)r.end(); ++istal) {
276 isec, istal, svStsHits, n_g1, T_g1, fld_g1, hitsl_g1,
278 n_g2, portionStopIndex, i1_g2,
286 Duplets_start, Duplets_hits, vTriplets_part, TripStartIndexH, TripStopIndexH);
TRObject operator()(const T1 &t1) const