5#ifndef MUONTGC_CNVTOOLS_TGCRDOTOPREPDATATOOLMT_H
6#define MUONTGC_CNVTOOLS_TGCRDOTOPREPDATATOOLMT_H
14#include "GaudiKernel/ServiceHandle.h"
40 Gaudi::DataHandle::Reader>;
52 :
public extends<AthAlgTool, IMuonRdoToPrepDataTool> {
55 using base_class::base_class;
63 virtual StatusCode
finalize()
override;
75 const EventContext& ctx,
76 const std::vector<IdentifierHash>& idVect)
const override;
79 const EventContext& ctx)
const override;
96 std::vector<std::unique_ptr<TgcPrepDataCollection>>;
102 std::vector<std::unique_ptr<TgcCoinDataCollection>>;
109 template <
class ContType,
class CollType>
112 std::vector<std::unique_ptr<CollType>>&& coll)
const;
114 StatusCode
setupState(
const EventContext& ctx, State& state)
const;
224 const TgcRdo* rdoColl)
const;
238 const TgcRdo* rdoColl)
const;
252 const std::vector<const TgcRdo*>& decodedRdoCollVec,
253 const std::vector<const TgcRdo*>& rdoCollVec,
const TgcRdo* rdoColl);
257 const std::vector<IdentifierHash>& requestedIdHashVect,
267 int& tmp_subMatrix,
int& tmp_position)
const;
276 std::array<int, 2>& bitpos_o);
279 std::array<int, 4>& bitpos_i,
280 std::array<int, 4>& slbchannel_i,
281 std::array<int, 4>& slbId_in,
282 std::array<int, 4>& sbLoc_in,
int& sswId_i,
283 const std::array<int, 2>& bitpos_o,
284 std::array<int, 2>& slbchannel_o,
285 const int slbId_o)
const;
288 std::array<int, 2>& bitpos_o);
291 std::array<int, 4>& bitpos_i,
292 std::array<int, 4>& slbchannel_i,
int& sbLoc_i,
293 int& sswId_i,
const std::array<int, 2>& bitpos_o,
294 std::array<int, 2>& slbchannel_o)
const;
297 int& subMatrix_w, std::array<int, 3>& bitpos_w)
const;
300 int& subMatrix_s, std::array<int, 3>& bitpos_s);
311 double& width_wire,
double& r_wire,
312 double& z_wire)
const;
315 const bool isBackWard,
const bool isAside,
316 double& width_strip,
double& theta_strip)
const;
319 const std::array<const MuonGM::TgcReadoutElement*, 2>& descriptor_o,
320 const std::array<Identifier, 2>& channelIdOut,
321 const std::array<int, 2>& gasGap_o,
const std::array<int, 2>& channel_o,
322 double& width_o,
double& hit_position_o,
Amg::Vector2D& tmp_hitPos_o,
326 const std::array<const MuonGM::TgcReadoutElement*, 2>& descriptor_o,
327 const std::array<Identifier, 2>& channelIdOut,
328 const std::array<int, 2>& gasGap_o,
const std::array<int, 2>& channel_o,
329 double& width_o,
double& hit_position_o,
Amg::Vector2D& tmp_hitPos_o,
330 Identifier& channelIdOut_tmp,
const bool isBackward,
331 const bool isAside)
const;
335 const std::array<const MuonGM::TgcReadoutElement*, 4>& descriptor_i,
336 const std::array<Identifier, 4>& channelIdIn,
337 const std::array<int, 4>& gasGap_i,
const std::array<int, 4>& channel_i,
338 double& width_i,
double& hit_position_i,
Amg::Vector2D& tmp_hitPos_i,
342 const std::array<const MuonGM::TgcReadoutElement*, 4>& descriptor_i,
343 const std::array<Identifier, 4>& channelIdIn,
344 const std::array<int, 4>& gasGap_i,
const std::array<int, 4>& channel_i,
345 double& width_i,
double& hit_position_i,
Amg::Vector2D& tmp_hitPos_i,
346 Identifier& channelIdIn_tmp,
const bool isBackward,
347 const bool isAside)
const;
351 int& sbLoc_o,
int& slbId_o)
const;
355 std::array<Identifier, 3>& channelId,
int&
index,
int& chip,
356 int& hitId,
int& sub,
int& sswId,
int& sbLoc,
int& subMatrix,
357 std::array<int, 3>& bitpos,
const bool isBoundary =
false,
358 const TgcRdo* rdoColl = 0,
const int index_w = -1,
359 const int chip_w = -1,
const int hitId_w = -1,
360 const int sub_w = -1)
const;
364 const TgcRdo* rdoColl,
const int index_w,
const int chip_w,
365 const int hitId_w,
const int sub_w)
const;
369 const TgcRdo* rdoColl,
const int index_w,
const int chip_w,
370 const int hitId_w,
const int sub_w)
const;
374 int& trackletIdStripFirst,
375 int& trackletIdStripSecond,
376 int& trackletIdStripThird);
381 const double eta,
const double phi);
384 this,
"DetectorManagerKey",
"MuonDetectorManager",
385 "Key of input MuonDetectorManager condition data"};
388 this,
"CablingKey",
"MuonTgc_CablingMap"};
391 this,
"MuonIdHelperSvc",
"Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
395 this,
"OutputCollection",
"TGC_Measurements"};
399 this,
"OutputCoinCollection",
"TrigT1CoinDataCollection"};
415 this,
"show_warning_level_invalid_A09_SSW6_hit",
false};
436 this,
"RDOContainer",
"TGCRDO",
"TgcRdoContainer to retrieve"};
441 this,
"outputCoinKey", {}};
445 this,
"prepDataKey",
"TGC_MeasurementsAllBCs"};
459 this,
"CoinCacheString",
"",
460 "Prefix for names of Coin cache collections"};
466 StatusCode
decode(
const EventContext& ctx,
467 const std::vector<uint32_t>& robIds)
const override;
470 uint16_t& newsector)
const {
471 newrodId = rd->
rodId();
476 newrodId = rd->
sector() / 2 + 1 + (rd->
rodId() - 17) * 4;
477 newsector = (rd->
sector() + (rd->
rodId() - 17) * 8) % 2;
479 newrodId = rd->
sector() / 4 + 1 + (rd->
rodId() - 17) * 4;
480 newsector = (rd->
sector() + (rd->
rodId() - 17) * 16) % 4;
485 uint16_t& newsector)
const {
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Cached value with atomic update.
Property holding a SG store/key/clid from which an UpdateHandle is made.
Handle class for modifying an existing object in StoreGate.
This is a "hash" representation of an Identifier.
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains s...
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which an UpdateHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
An unit object of TGC ROD output.
Eigen::Matrix< double, 2, 1 > Vector2D
Ensure that the Athena extensions are properly loaded.
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
MuonPrepDataContainerT< TgcPrepData > TgcPrepDataContainer
SG::HandleKeyArray< SG::UpdateHandle< TgcCoinDataCollection_Cache >, SG::UpdateHandleKey< TgcCoinDataCollection_Cache >, Gaudi::DataHandle::Reader > TgcCoinUpdateHandles
HandleKeyArray< WriteHandle< T >, WriteHandleKey< T >, Gaudi::DataHandle::Writer > WriteHandleKeyArray