21 const std::string& name,
22 const IInterface* parent )
26 declareInterface< IMuonFeatureCnvTool >(
this );
79 return StatusCode::SUCCESS;
116 const std::vector< std::vector<int> >& chamber_type_1 = aodMfd->
chamber_type_1();
117 const std::vector< std::vector<float> >& aw = aodMfd->
aw();
118 const std::vector< std::vector<float> >& bw = aodMfd->
bw();
119 const std::vector< std::vector<float> >& zetaMin = aodMfd->
zetaMin();
120 const std::vector< std::vector<float> >& zetaMax = aodMfd->
zetaMax();
121 const std::vector< std::vector<float> >& radMin = aodMfd->
radMin();
122 const std::vector< std::vector<float> >& radMax = aodMfd->
radMax();
123 const std::vector< std::vector<float> >& etaMin = aodMfd->
etaMin();
124 const std::vector< std::vector<float> >& etaMax = aodMfd->
etaMax();
125 for (
int sector=0; sector<2; sector++) {
126 for (
int station=0; station<4; station++) {
127 xaod->
setChamberType1(station, sector, chamber_type_1[sector][station]);
128 xaod->
setChamberType2(station, sector, chamber_type_1[sector][station]);
129 xaod->
setRoad(station, sector, aw[sector][station], bw[sector][station]);
130 xaod->
setRegionZ(station, sector, zetaMin[sector][station], zetaMax[sector][station]);
131 xaod->
setRegionR(station, sector, radMin[sector][station], radMax[sector][station]);
132 xaod->
setRegionEta(station, sector, etaMin[sector][station], etaMax[sector][station]);
137 const std::vector<uint32_t>& pad_hit_code = aodMfd->
pad_hit_code();
138 const std::vector<float>& pad_hit_x = aodMfd->
pad_hit_x();
139 const std::vector<float>& pad_hit_y = aodMfd->
pad_hit_y();
140 const std::vector<float>& pad_hit_z = aodMfd->
pad_hit_z();
141 const std::vector<float>& pad_hit_r = aodMfd->
pad_hit_r();
142 const std::vector<float>& pad_hit_p = aodMfd->
pad_hit_p();
143 for (
unsigned int i=0; i< pad_hit_onlineId.size(); i++) {
144 if ( i >= pad_hit_code.size() || i >= pad_hit_x.size() || i >= pad_hit_y.size() ||
145 i >= pad_hit_z.size() || i >= pad_hit_r.size() || i >= pad_hit_p.size() )
continue;
146 xaod->
setRpcHit( (uint32_t)pad_hit_onlineId[i], pad_hit_code[i],
147 pad_hit_x[i], pad_hit_y[i], pad_hit_z[i],
148 0.,pad_hit_r[i], pad_hit_p[i],
"");
172 for (
unsigned int i=0; i< tgc_Inn_rho_hit_phi.size(); i++) {
173 if (i >= tgc_Inn_rho_hit_r.size() || i >= tgc_Inn_rho_hit_z.size() ||
174 i >= tgc_Inn_rho_hit_width.size() || i >= tgc_Inn_rho_hit_in_seg.size() ||
175 i >= tgc_Inn_phi_hit_phi.size() || i >= tgc_Inn_phi_hit_r.size() ||
176 i >= tgc_Inn_phi_hit_z.size() || i >= tgc_Inn_phi_hit_width.size() ||
177 i >= tgc_Inn_phi_hit_in_seg.size() || i >= tgc_Mid_rho_hit_phi.size() ||
178 i >= tgc_Mid_rho_hit_r.size() || i >= tgc_Mid_rho_hit_z.size() ||
179 i >= tgc_Mid_rho_hit_width.size() || i >= tgc_Mid_rho_hit_in_seg.size() ||
180 i >= tgc_Mid_phi_hit_phi.size() || i >= tgc_Mid_phi_hit_r.size() ||
181 i >= tgc_Mid_phi_hit_z.size() || i >= tgc_Mid_phi_hit_width.size() ||
182 i >= tgc_Mid_phi_hit_in_seg.size() )
continue;
183 xaod->
setTgcHit(0.,tgc_Inn_rho_hit_phi[i], tgc_Inn_rho_hit_r[i], tgc_Inn_rho_hit_z[i],
184 tgc_Inn_rho_hit_width[i], (
int)tgc_Inn_rho_hit_in_seg[i], 0, 0, 0);
187 const std::vector<uint32_t>& mdt_onlineId = aodMfd->
mdt_onlineId();
188 const std::vector<uint32_t>& mdt_offlineId = aodMfd->
mdt_offlineId();
189 const std::vector<float>& mdt_tube_r = aodMfd->
mdt_tube_r();
190 const std::vector<float>& mdt_tube_z = aodMfd->
mdt_tube_z();
192 const std::vector<float>& mdt_tube_time = aodMfd->
mdt_tube_time();
193 const std::vector<float>& mdt_tube_space = aodMfd->
mdt_tube_space();
194 const std::vector<float>& mdt_tube_sigma = aodMfd->
mdt_tube_sigma();
196 for (
unsigned int i=0; i< mdt_onlineId.size(); i++) {
197 if ( i >= mdt_offlineId.size() || i >= mdt_tube_r.size() ||
198 i >= mdt_tube_z.size() || i >= mdt_tube_residual.size() ||
199 i >= mdt_tube_time.size() || i >= mdt_tube_space.size() ||
200 i >= mdt_tube_sigma.size() )
continue;
201 xaod->
setMdtHit(mdt_onlineId[i], (
int)mdt_offlineId[i], (
int)chamber,
202 mdt_tube_r[i], mdt_tube_z[i], 0., mdt_tube_residual[i],
203 mdt_tube_time[i], mdt_tube_space[i], mdt_tube_sigma[i]);
210 return StatusCode::SUCCESS;
218 ATH_MSG_ERROR(
"Null pointer for input MuonFeatureContainter" );
219 return StatusCode::FAILURE;
223 ATH_MSG_ERROR(
"Null pointer for input MuonFeatureDetailsContainter" );
224 return StatusCode::FAILURE;
234 std::vector<std::pair <bool, const MuonFeatureDetails*>> vMfd;
238 for (citMfd = citMfdBegin; citMfd != citMfdEnd; ++citMfd) {
239 vMfd.emplace_back(
false, *citMfd);
242 citMfd = citMfdBegin;
244 for (citMf = citMfBegin; citMf != citMfEnd; ++citMf) {
251 if(
sc.isFailure())
return sc;
253 for (
unsigned int i=0; i<vMfd.size(); i++) {
255 if (vMfd[i].first)
continue;
257 if ( (
int)(*citMf)->roiId() == (
int)vMfd[i].second->roi_id() &&
258 (
int)(*citMf)->algoId() == (
int)vMfd[i].second->id() ) {
260 vMfd[i].first =
true;
265 if(
sc.isFailure())
return sc;
275 return StatusCode::SUCCESS;
#define ATH_MSG_VERBOSE(x)
DataModel_detail::const_iterator< DataVector > const_iterator
value_type push_back(value_type pElem)
Add an element to the end of the collection.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
size_type size() const noexcept
Returns the number of elements in the collection.
const std::vector< float > & mdt_tube_residual(void) const
float tgc_Mid1_phi(void) const
const std::vector< float > & tgc_Inn_rho_hit_width(void) const
const std::vector< float > & pad_hit_p(void) const
float tgc_Mid_rho_chi2(void) const
const std::vector< std::vector< float > > & bw(void) const
float tgc_Inn_rho_std(void) const
const std::vector< float > & tgc_Mid_phi_hit_width(void) const
const std::vector< float > & tgc_Mid_rho_hit_r(void) const
const std::vector< float > & tgc_Mid_rho_hit_phi(void) const
const std::vector< float > & tgc_Mid_phi_hit_phi(void) const
const std::vector< float > & tgc_Inn_phi_hit_z(void) const
const std::vector< float > & tgc_Mid_phi_hit_z(void) const
const std::vector< float > & pad_hit_r(void) const
const std::vector< float > & mdt_tube_r(void) const
float tgc_Inn_z(void) const
long tgc_Inn_rho_N(void) const
const std::vector< float > & tgc_Inn_rho_hit_z(void) const
const std::vector< std::vector< float > > & zetaMin(void) const
int max_mdt_hits_capacity(void) const
const std::vector< uint32_t > & mdt_offlineId(void) const
const std::vector< uint32_t > & tgc_Mid_phi_hit_in_seg(void) const
uint32_t roi_id(void) const
int max_rpc_hits_capacity(void) const
float tgc_Mid2_z(void) const
uint32_t lumi_block(void) const
const std::vector< float > & tgc_Inn_rho_hit_phi(void) const
const std::vector< float > & tgc_Inn_rho_hit_r(void) const
float tgc_Mid2_phi(void) const
const std::vector< float > & tgc_Mid_phi_hit_r(void) const
uint32_t roi_subsystem(void) const
uint32_t muondetmask(void) const
uint32_t roi_number(void) const
const std::vector< float > & tgc_Inn_phi_hit_width(void) const
float tgc_Mid1_eta(void) const
uint32_t lvl1_id(void) const
float tgc_Inn_phi(void) const
float tgc_Mid_phi_chi2(void) const
const std::vector< std::vector< float > > & radMax(void) const
uint32_t te_id(void) const
long tgc_Mid_rho_N(void) const
const std::vector< std::vector< float > > & aw(void) const
const std::vector< float > & tgc_Inn_phi_hit_phi(void) const
const std::vector< float > & tgc_Mid_rho_hit_width(void) const
long tgc_Mid_phi_N(void) const
const std::vector< float > & pad_hit_z(void) const
float tgc_Mid2_eta(void) const
float tgc_Mid1_z(void) const
const std::vector< float > & pad_hit_x(void) const
uint32_t roi_system(void) const
uint32_t roi_threshold(void) const
const std::vector< float > & pad_hit_y(void) const
const std::vector< float > & tgc_Inn_phi_hit_r(void) const
const std::vector< uint32_t > & tgc_Inn_rho_hit_in_seg(void) const
const std::vector< std::vector< float > > & zetaMax(void) const
const std::vector< std::vector< float > > & etaMax(void) const
const std::vector< uint32_t > & pad_hit_code(void) const
float tgc_Inn_phi_std(void) const
const std::vector< uint32_t > & tgc_Inn_phi_hit_in_seg(void) const
const std::vector< float > & tgc_Mid_rho_hit_z(void) const
const std::vector< std::vector< float > > & etaMin(void) const
float tgc_Mid2_r(void) const
const std::vector< uint32_t > & mdt_onlineId(void) const
float tgc_Inn_r(void) const
int max_tgc_hits_capacity(void) const
const std::vector< uint32_t > & pad_hit_onlineId(void) const
const std::vector< float > & mdt_tube_z(void) const
long tgc_Inn_phi_N(void) const
const std::vector< uint32_t > & tgc_Mid_rho_hit_in_seg(void) const
const std::vector< float > & mdt_tube_sigma(void) const
float tgc_Mid1_r(void) const
const std::vector< std::vector< int > > & chamber_type_1(void) const
float tgc_Inn_eta(void) const
uint32_t roi_sector(void) const
const std::vector< float > & mdt_tube_time(void) const
const std::vector< std::vector< float > > & radMin(void) const
const std::vector< float > & mdt_tube_space(void) const
float br_radius(void) const
float ec_alpha(void) const
float br_sagitta(void) const
double dq_var1(void) const
double dq_var2(void) const
float dir_zeta(void) const
float ec_beta(void) const
float sp1_slope(void) const
float sp2_slope(void) const
float sp3_slope(void) const
float dir_phi(void) const
void setRegionR(int station, int sector, float min, float max)
R range.
void setEta(float eta)
Set the pseudorapidity ( ) of the muon.
void setBeta(float value)
Set beta.
void setRpcFitInn(float phi, float slope, float offset)
Set the results of RPC fit.
void setPhi(float phi)
Set the azimuthal angle ( ) of the muon.
void setRpcHit(uint32_t layer, uint32_t measuresPhi, float x, float y, float z, float time, float distEta, float distPhi, const std::string &stationName)
Set RPC hits.
void setBarrelSagitta(float value)
Set the fitted sagitta of the muon in the barrel.
void setEtaMS(float value)
Set the eta at muon spectrometer.
void setMdtHit(uint32_t onlineId, int isOutier, int chamber, float r, float z, float phi, float residual, float time, float space, float sigma)
Set the properties of each MDT tube.
void setTgcInn(float eta, float phi, float r, float z)
Set the results of TGC fit.
void setRoiSystem(uint32_t value)
void setRoad(int station, int sector, float aw, float bw)
Road.
void setTgcHit(float eta, float phi, float r, float z, float width, int stationNum, bool isStrip, int bcTag, bool inRoad)
Set TGC hits.
void setRoiNumber(uint32_t value)
void setTgcMid2(float eta, float phi, float r, float z)
void setCapacities(int rpc, int tgc, int mdt, int csc)
void setRMS(float value)
Set the R at muon spectrometer.
void setLumiBlock(uint32_t value)
void setRoiThreshold(uint32_t value)
void setTgcMidF(float rhoChi2, long rhoN, float phiChi2, long phiN)
void setIsTgcFailure(int value)
Set flag to record if TGC is properly read.
void setRoiSubsystem(uint32_t value)
void setTeId(uint32_t value)
virtual double pt() const
The transverse momentum ( ) of the particle.
void setRoiSector(uint32_t value)
void setRpcFitOut(float phi, float slope, float offset)
void setLvl1Id(uint32_t value)
void setChamberType2(int station, int sector, int chamberType)
virtual double phi() const
The azimuthal angle ( ) of the particle.
void setMuonDetMask(uint32_t value)
void setDirPhiMS(float value)
Set tan phi at muon spectrometer.
void setRegionZ(int station, int sector, float min, float max)
Z range.
void setEndcapBeta(float value)
Set the fitted value in the endcap.
void setChamberType1(int station, int sector, int chamberType)
Set the muon road information.
void setSAddress(int value)
Set the station address of the muon.
void setRpcFitMid(float phi, float slope, float offset)
void setPhiMS(float value)
Set the phi at muon spectrometer.
float tgcPt() const
Set and get pT from different algorithms.
void setEndcapAlpha(float value)
Set the fitted value in the endcap.
void setRoIWord(uint32_t value)
Set the RoI ID of the seeding LVL1 muon.
void setRoiId(uint32_t value)
void setTgcMid1(float eta, float phi, float r, float z)
void setRegionEta(int station, int sector, float min, float max)
Eta range.
void setIsRpcFailure(int value)
Set flag to record if RPC is properly read.
void setPt(float pt)
Set the transverse momentum ( ) of the muon.
void setSuperPoint(int chamber, float r, float z, float slope, float intercept=0., float chi2=0.)
Set the properties of one particular super point measurement.
virtual double eta() const
The pseudorapidity ( ) of the particle.
void setDirZMS(float value)
Set dRdZ at muon spectrometer.
void setAlgoId(int value)
void setZMS(float value)
Set the Z at muon spectrometer.
void setBarrelRadius(float value)
Set the fitted radius of the muon in the barrel.
void setTgcPt(float value)
void setTgcInnF(float rhoStd, long rhoN, float phiStd, long phiN)
@ BarrelInner
Inner station in the barrel spectrometer.
@ EndcapOuter
Outer station in the endcap spectrometer.
@ BarrelMiddle
Middle station in the barrel spectrometer.
@ EndcapMiddle
Middle station in the endcap spectrometer.
@ BarrelOuter
Outer station in the barrel spectrometer.
@ EndcapInner
Inner station in the endcap spectrometer.
L2StandAloneMuonContainer_v2 L2StandAloneMuonContainer
Define the latest version of the muon SA container.
L2StandAloneMuon_v2 L2StandAloneMuon
Define the latest version of the muon SA class.