From e886fe5f5e82b52a204233fff1f75a2afcf042ee Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Fri, 1 May 2020 10:49:58 -0500 Subject: [PATCH 001/459] Remove remnants in the code from conflicts - committed by mistake --- .../src/SiSpacePointsSeedMaker_HeavyIon.cxx | 178 +++++++++--------- .../HIJetRec/share/HIegamma_jobOptions.py | 49 ++++- .../share/HIMonitoringSteering_jo.py | 16 +- 3 files changed, 136 insertions(+), 107 deletions(-) diff --git a/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_HeavyIon.cxx b/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_HeavyIon.cxx index 02777545edf..1113538c02f 100644 --- a/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_HeavyIon.cxx +++ b/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_HeavyIon.cxx @@ -74,7 +74,7 @@ StatusCode InDet::SiSpacePointsSeedMaker_HeavyIon::finalize() } /////////////////////////////////////////////////////////////////// -// Initialize tool for new event +// Initialize tool for new event /////////////////////////////////////////////////////////////////// void InDet::SiSpacePointsSeedMaker_HeavyIon::newEvent(const EventContext& ctx, EventData& data, int) const @@ -112,7 +112,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newEvent(const EventContext& ctx, E float irstep = 1./m_r_rstep; int irmax = m_r_size-1 ; - // Get pixels space points containers from store gate + // Get pixels space points containers from store gate // if (m_pixel) { @@ -120,7 +120,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newEvent(const EventContext& ctx, E if (spacepointsPixel.isValid()) { for (const SpacePointCollection* spc: *spacepointsPixel) { - for (const Trk::SpacePoint* sp: *spc) { + for (const Trk::SpacePoint* sp: *spc) { float r = sp->r(); if (r < 43. || r>=m_r_rmax) continue; InDet::SiSpacePointForSeed* sps = newSpacePoint(data, sp); @@ -135,7 +135,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newEvent(const EventContext& ctx, E } } - // Get sct space points containers from store gate + // Get sct space points containers from store gate // if (m_sct) { @@ -196,13 +196,13 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newRegion } else { data.K = 2./(300.* 5.); } - + data.i_spforseed = data.l_spforseed.begin(); float irstep = 1./m_r_rstep; int irmax = m_r_size-1; - - // Get pixels space points containers from store gate + + // Get pixels space points containers from store gate // if (m_pixel && vPixel.size()) { @@ -230,7 +230,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newRegion } } - // Get sct space points containers from store gate + // Get sct space points containers from store gate // if (m_sct && vSCT.size()) { @@ -286,7 +286,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::find2Sp(EventData& data, const std: int mode = 0; if (lv.begin()!=lv.end()) mode = 1; bool newv = newVertices(data, lv); - + if (newv || !data.state || data.nspoint!=2 || data.mode!=mode || data.nlist) { data.i_seede = data.l_seeds.begin(); @@ -301,7 +301,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::find2Sp(EventData& data, const std: production2Sp(data); } data.i_seed = data.l_seeds.begin(); - + if (m_outputlevel<=0) { data.nprint=1; dump(data, msg(MSG::DEBUG)); @@ -362,7 +362,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::findVSp(const EventContext&, EventD int mode = 5; if (lv.begin()!=lv.end()) mode = 6; bool newv = newVertices(data, lv); - + if (newv || !data.state || data.nspoint!=4 || data.mode!=mode || data.nlist) { data.i_seede = data.l_seeds.begin(); data.state = 1 ; @@ -422,13 +422,13 @@ MsgStream& InDet::SiSpacePointsSeedMaker_HeavyIon::dumpConditions(EventData& dat out<<"| BeamConditionsService | "<<m_beamSpotKey.key()<<s5 <<endmsg; out<<"| usePixel | " - <<std::setw(12)<<m_pixel + <<std::setw(12)<<m_pixel <<" |"<<endmsg; out<<"| useSCT | " - <<std::setw(12)<<m_sct + <<std::setw(12)<<m_sct <<" |"<<endmsg; out<<"| maxSize | " - <<std::setw(12)<<m_maxsize + <<std::setw(12)<<m_maxsize <<" |"<<endmsg; out<<"| maxSizeSP | " <<std::setw(12)<<m_maxsizeSP @@ -436,11 +436,11 @@ MsgStream& InDet::SiSpacePointsSeedMaker_HeavyIon::dumpConditions(EventData& dat out<<"| pTmin (mev) | " <<std::setw(12)<<std::setprecision(5)<<m_ptmin <<" |"<<endmsg; - out<<"| |rapidity| <= | " + out<<"| |rapidity| <= | " <<std::setw(12)<<std::setprecision(5)<<m_rapcut <<" |"<<endmsg; out<<"| max radius SP | " - <<std::setw(12)<<std::setprecision(5)<<m_r_rmax + <<std::setw(12)<<std::setprecision(5)<<m_r_rmax <<" |"<<endmsg; out<<"| radius step | " <<std::setw(12)<<std::setprecision(5)<<m_r_rstep @@ -488,10 +488,10 @@ MsgStream& InDet::SiSpacePointsSeedMaker_HeavyIon::dumpConditions(EventData& dat <<std::setw(12)<<std::setprecision(5)<<m_drmax <<" |"<<endmsg; out<<"| max dZ impact | " - <<std::setw(12)<<std::setprecision(5)<<m_dzver + <<std::setw(12)<<std::setprecision(5)<<m_dzver <<" |"<<endmsg; out<<"| max dZ/dR impact | " - <<std::setw(12)<<std::setprecision(5)<<m_dzdrver + <<std::setw(12)<<std::setprecision(5)<<m_dzdrver <<" |"<<endmsg; out<<"| max impact | " <<std::setw(12)<<std::setprecision(5)<<m_diver @@ -573,7 +573,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::findNext(EventData& data) const data.i_seed = data.l_seeds.begin(); ++data.nlist; -} +} /////////////////////////////////////////////////////////////////// // New and old list vertices comparison @@ -599,7 +599,7 @@ bool InDet::SiSpacePointsSeedMaker_HeavyIon::newVertices(EventData& data, const // Initiate frame work for seed generator /////////////////////////////////////////////////////////////////// -void InDet::SiSpacePointsSeedMaker_HeavyIon::buildFrameWork() +void InDet::SiSpacePointsSeedMaker_HeavyIon::buildFrameWork() { m_ptmin = fabs(m_ptmin) ; if (m_ptmin < 100.) m_ptmin = 100.; @@ -633,21 +633,21 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::buildFrameWork() const int NFtmax = SizeRFV; const float sFvmax = static_cast<float>(NFtmax)/pi2; m_sFv = m_ptmin/120.; - if (m_sFv > sFvmax) m_sFv = sFvmax; + if (m_sFv > sFvmax) m_sFv = sFvmax; m_fvNmax = static_cast<int>(pi2*m_sFv); if (m_fvNmax>=NFtmax) m_fvNmax = NFtmax-1; - // Build maps for radius-azimuthal-Z sorted collections + // Build maps for radius-azimuthal-Z sorted collections // for (int f=0; f<=m_fNmax; ++f) { int fb = f-1; if (fb<0) fb = m_fNmax; int ft = f+1; if (ft>m_fNmax) ft = 0; - + // For each azimuthal region loop through all Z regions // - for (int z=0; z<SizeZ; ++z) { + for (int z=0; z<SizeZ; ++z) { int a = f *SizeZ+z; int b = fb*SizeZ+z; int c = ft*SizeZ+z; @@ -705,10 +705,10 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::buildFrameWork() for (int f=0; f<=m_fvNmax; ++f) { int fb = f-1; if (fb<0 ) fb=m_fvNmax; int ft = f+1; if (ft>m_fvNmax) ft=0; - + // For each azimuthal region loop through central Z regions // - for (int z=0; z<SizeZV; ++z) { + for (int z=0; z<SizeZV; ++z) { int a = f *SizeZV+z; int b = fb*SizeZV+z; int c = ft*SizeZV+z; @@ -749,17 +749,17 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::buildBeamFrameWork(const EventConte double cost = cos(th); double sinp = sin(ph); double cosp = cos(ph); - + data.xbeam[0] = static_cast<float>(cb.x()) ; data.xbeam[1] = static_cast<float>(cost*cosp*cosp+sinp*sinp); data.xbeam[2] = static_cast<float>(cost*sinp*cosp-sinp*cosp); data.xbeam[3] =-static_cast<float>(sint*cosp ); - + data.ybeam[0] = static_cast<float>(cb.y()) ; data.ybeam[1] = static_cast<float>(cost*cosp*sinp-sinp*cosp); data.ybeam[2] = static_cast<float>(cost*sinp*sinp+cosp*cosp); data.ybeam[3] =-static_cast<float>(sint*sinp ); - + data.zbeam[0] = static_cast<float>(cb.z()) ; data.zbeam[1] = static_cast<float>(sint*cosp) ; data.zbeam[2] = static_cast<float>(sint*sinp) ; @@ -777,7 +777,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::convertToBeamFrameWork r[1] = static_cast<float>(sp->globalPosition().y())-data.ybeam[0]; r[2] = static_cast<float>(sp->globalPosition().z())-data.zbeam[0]; } - + /////////////////////////////////////////////////////////////////// // Initiate space points seed maker /////////////////////////////////////////////////////////////////// @@ -786,13 +786,13 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::fillLists(EventData& data) const { constexpr float pi2 = 2.*M_PI; std::vector<InDet::SiSpacePointForSeed*>::iterator r; - + for (int i=0; i<m_r_size; ++i) { if (!data.r_map[i]) continue; r = data.r_Sorted[i].begin(); while (r!=data.r_Sorted[i].end()) { - + // Azimuthal angle sort // float F = (*r)->phi(); @@ -817,9 +817,9 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::fillLists(EventData& data) const data.rfz_Sorted[n].push_back(*r); if (!data.rfz_map[n]++) data.rfz_index[data.nrfz++] = n; - if ((*r)->spacepoint->clusterList().second == 0 && z>=3 && z<=7) { + if ((*r)->spacepoint->clusterList().second == 0 && z>=3 && z<=7) { z<=4 ? z=0 : z>=6 ? z=2 : z=1; - + // Azimuthal angle and Z-coordinate sort for fast vertex search // f = static_cast<int>(F*m_sFv); @@ -837,7 +837,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::fillLists(EventData& data) const data.nr = 0; data.state = 0; } - + /////////////////////////////////////////////////////////////////// // Erase space point information /////////////////////////////////////////////////////////////////// @@ -921,7 +921,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production2Sp(EventData& data) cons r = data.rfzv_Sorted[an].begin(); re = data.rfzv_Sorted[an].end (); - + for (; r!=re; ++r) { float Rb =(*r)->radius(); if (Rb<m_r1minv) continue; @@ -969,11 +969,11 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production2Sp(EventData& data) cons } /////////////////////////////////////////////////////////////////// -// Production 3 space points seeds +// Production 3 space points seeds /////////////////////////////////////////////////////////////////// void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp(EventData& data) const -{ +{ if (data.nsaz<3) return; const int ZI[SizeZ] = {5,6,7,8,9,10,4,3,2,1,0}; @@ -982,7 +982,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp(EventData& data) cons // Loop thorugh all azimuthal regions // - for (int f=data.fNmin; f<=m_fNmax; ++f) { + for (int f=data.fNmin; f<=m_fNmax; ++f) { // For each azimuthal region loop through all Z regions // int z = 0; @@ -992,18 +992,18 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp(EventData& data) cons int a = f*SizeZ+ZI[z]; if (!data.rfz_map[a]) continue; int NB = 0, NT = 0; - for (int i=0; i<m_rfz_b[a]; ++i) { + for (int i=0; i<m_rfz_b[a]; ++i) { int an = m_rfz_ib[a][i]; if (!data.rfz_map[an]) continue; rb [NB] = data.rfz_Sorted[an].begin(); rbe[NB++] = data.rfz_Sorted[an].end(); - } - for (int i=0; i<m_rfz_t[a]; ++i) { + } + for (int i=0; i<m_rfz_t[a]; ++i) { int an = m_rfz_it[a][i]; if (!data.rfz_map[an]) continue; rt [NT] = data.rfz_Sorted[an].begin(); rte[NT++] = data.rfz_Sorted[an].end(); - } + } if (data.izvertex) { if (!data.trigger) production3Sp (data, rb, rbe, rt, rte, NB, NT, nseed); else production3SpTrigger(data, rb, rbe, rt, rte, NB, NT, nseed); @@ -1014,7 +1014,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp(EventData& data) cons data.fNmin=f; data.zMin = z; return; - } + } } } data.endlist = true; @@ -1040,7 +1040,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp for (; r0!=rbe[0]; ++r0) { data.nOneSeeds = 0; data.mapOneSeeds.erase(data.mapOneSeeds.begin(), data.mapOneSeeds.end()); - + float R = (*r0)->radius(); const Trk::SpacePoint* SP0 = (*r0)->spacepoint; @@ -1065,7 +1065,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp float Tz = (Z-(*r)->z())/dR; if (Tz < m_dzdrmin || Tz > m_dzdrmax) continue; - + // Comparison with vertices Z coordinates // float Zo = Z-R*Tz; @@ -1077,7 +1077,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp breakb: if (!Nb || Nb==m_maxsizeSP) continue; int Nt = Nb; - + // Top links production // for (int i=0; i<NT; ++i) { @@ -1103,7 +1103,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp if (++Nt==m_maxsizeSP) goto breakt; } } - + breakt: if (!(Nt-Nb)) continue; @@ -1112,7 +1112,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp float ax = X/R; float ay = Y/R; - + for (int i=0; i<Nt; ++i) { InDet::SiSpacePointForSeed* sp = data.SP[i]; @@ -1133,7 +1133,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp data.V [i] = y*r2 ; data.Er[i] = (covz0+sp->covz()+tz*tz*(covr0+sp->covr()))*r2; } - + float imc = m_diver ; float ipt2 = m_ipt2 ; float K = data.K ; @@ -1148,7 +1148,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp // for (int b=0; b<Nb; ++b) { const Trk::SpacePoint* SPb = data.SP[b]->spacepoint; - + float Zob = data.Zo[b] ; float Tzb = data.Tz[b] ; float Rb2r = data.R [b]*covr0; @@ -1187,7 +1187,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp ++r0; data.rMin = r0; return; - } + } } } @@ -1216,7 +1216,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger for (; r0!=rbe[0]; ++r0) { data.nOneSeeds = 0; data.mapOneSeeds.erase(data.mapOneSeeds.begin(), data.mapOneSeeds.end()); - + float R = (*r0)->radius(); const Trk::SpacePoint* SP0 = (*r0)->spacepoint; @@ -1248,7 +1248,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger float Tz = (Z-(*r)->z())/dR; if (Tz < m_dzdrmin || Tz > m_dzdrmax) continue; - + // Comparison with vertices Z coordinates // float Zo = Z-R*Tz; @@ -1260,7 +1260,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger breakb: if (!Nb || Nb==m_maxsizeSP) continue; int Nt = Nb; - + // Top links production // for (int i=0; i<NT; ++i) { @@ -1283,17 +1283,17 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger // float Zo = Z-R*Tz; if (!isZCompatible(data, Zo, R, Tz)) continue; - + // Polar angle test // Zo = (*r)->z()+(550.-Rt)*Tz; if ( Zo < m_zminU || Zo > m_zmaxU) continue; - + data.SP[Nt] = (*r); if (++Nt==m_maxsizeSP) goto breakt; } } - + breakt: if (!(Nt-Nb)) continue; @@ -1302,7 +1302,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger float ax = X/R; float ay = Y/R; - + for (int i=0; i!=Nt; ++i) { InDet::SiSpacePointForSeed* sp = data.SP[i]; @@ -1323,7 +1323,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger data.V [i] = y*r2 ; data.Er[i] = (covz0+sp->covz()+tz*tz*(covr0+sp->covr()))*r2; } - + float imc = m_diver ; float ipt2 = m_ipt2 ; float K = data.K ; @@ -1334,12 +1334,12 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger float COFK = COF*K2 ; covr0 *= 2. ; covz0 *= 2. ; - + // Three space points comparison // for (int b=0; b!=Nb; ++b) { const Trk::SpacePoint* SPb = data.SP[b]->spacepoint; - + float Zob = data.Zo[b] ; float Tzb = data.Tz[b] ; float Rb2r = data.R [b]*covr0; @@ -1365,7 +1365,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger float B2 = B*B ; if (B2 > ipt2K*S2 || dT*S2 > B2*CSA) continue; float Im = fabs((A-B*R)*R) ; - + if (Im > imc ) continue; // Azimuthal angle test @@ -1389,7 +1389,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger } } } - + /////////////////////////////////////////////////////////////////// // Production 3 space points seeds for full scan without vertex information @@ -1414,7 +1414,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex for (; r0!=rbe[0]; ++r0) { data.nOneSeeds = 0; data.mapOneSeeds.erase(data.mapOneSeeds.begin(), data.mapOneSeeds.end()); - + float R = (*r0)->radius(); const Trk::SpacePoint* SP0 = (*r0)->spacepoint; @@ -1442,7 +1442,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex if ( !pix && !(*r)->spacepoint->clusterList().second) continue; float Tz = (Z-(*r)->z())/dR; if (Tz < m_dzdrmin || Tz > m_dzdrmax) continue; - + // Comparison with vertices Z coordinates // float Zo = Z-R*Tz; @@ -1454,7 +1454,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex breakb: if (!Nb || Nb==m_maxsizeSP) continue; int Nt = Nb; - + // Top links production // for (int i=0; i<NT; ++i) { @@ -1478,7 +1478,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex if (++Nt==m_maxsizeSP) goto breakt; } } - + breakt: if (!(Nt-Nb)) continue; @@ -1487,7 +1487,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex float ax = X/R; float ay = Y/R; - + for (int i=0; i<Nt; ++i) { InDet::SiSpacePointForSeed* sp = data.SP[i]; @@ -1508,7 +1508,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex data.V [i] = y*r2 ; data.Er[i] = (covz0+sp->covz()+tz*tz*(covr0+sp->covr()))*r2; } - + float imc = m_diver ; float imcs = m_diverpps; float ipt2 = m_ipt2 ; @@ -1520,12 +1520,12 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex float COFK = COF*K2 ; covr0 *= 2. ; covz0 *= 2. ; - + // Three space points comparison // for (int b=0; b<Nb; ++b) { const Trk::SpacePoint* SPb = data.SP[b]->spacepoint; - + float Zob = data.Zo[b] ; float Tzb = data.Tz[b] ; float Rb2r = data.R [b]*covr0; @@ -1550,7 +1550,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex float B2 = B*B ; if (B2 > ipt2K*S2 || dT*S2 > B2*CSA) continue; float Im = fabs((A-B*R)*R) ; - + if (pix) { if ( Im > imc ) continue; if (data.SP[t]->spacepoint->clusterList().second && Im > imcs) continue; @@ -1567,7 +1567,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex ++r0; data.rMin = r0; return; - } + } } } @@ -1577,7 +1577,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex void InDet::SiSpacePointsSeedMaker_HeavyIon::newOneSeed (EventData& data, - const Trk::SpacePoint*& p1,const Trk::SpacePoint*& p2, + const Trk::SpacePoint*& p1,const Trk::SpacePoint*& p2, const Trk::SpacePoint*& p3,const float& z,const float& q) const { if (data.nOneSeeds < m_maxOneSize) { @@ -1590,19 +1590,19 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newOneSeed data.mapOneSeeds.insert(std::make_pair(q, &(data.OneSeeds[data.nOneSeeds]))); ++data.nOneSeeds; } else { - std::multimap<float,InDet::SiSpacePointsSeed*>::reverse_iterator + std::multimap<float,InDet::SiSpacePointsSeed*>::reverse_iterator l = data.mapOneSeeds.rbegin(); if ((*l).first <= q) return; - + InDet::SiSpacePointsSeed* s = (*l).second; s->erase(); s->add(p1); s->add(p2); s->add(p3); s->setZVertex(static_cast<double>(z)); - std::multimap<float,InDet::SiSpacePointsSeed*>::iterator + std::multimap<float,InDet::SiSpacePointsSeed*>::iterator i = data.mapOneSeeds.insert(std::make_pair(q,s)); - + for (++i; i!=data.mapOneSeeds.end(); ++i) { if ((*i).second==s) { data.mapOneSeeds.erase(i); @@ -1619,11 +1619,11 @@ const InDet::SiSpacePointsSeed* InDet::SiSpacePointsSeedMaker_HeavyIon::next(con if (data.i_seed==data.i_seede) { findNext(data); if (data.i_seed==data.i_seede) return nullptr; - } + } return &(*data.i_seed++); } -bool InDet::SiSpacePointsSeedMaker_HeavyIon::isZCompatible +bool InDet::SiSpacePointsSeedMaker_HeavyIon::isZCompatible (EventData& data, float& Zv, float& R, float& T) const { if (Zv < m_zmin || Zv > m_zmax) return false; @@ -1648,7 +1648,7 @@ float InDet::SiSpacePointsSeedMaker_HeavyIon::dZVertexMin(EventData& data, float } /////////////////////////////////////////////////////////////////// -// New space point for seeds +// New space point for seeds /////////////////////////////////////////////////////////////////// InDet::SiSpacePointForSeed* InDet::SiSpacePointsSeedMaker_HeavyIon::newSpacePoint @@ -1667,17 +1667,17 @@ InDet::SiSpacePointForSeed* InDet::SiSpacePointsSeedMaker_HeavyIon::newSpacePoin sps = &(data.l_spforseed.back()); data.i_spforseed = data.l_spforseed.end(); } - + return sps; } /////////////////////////////////////////////////////////////////// -// New 2 space points seeds +// New 2 space points seeds /////////////////////////////////////////////////////////////////// void InDet::SiSpacePointsSeedMaker_HeavyIon::newSeed (EventData& data, - const Trk::SpacePoint*& p1, const Trk::SpacePoint*& p2, + const Trk::SpacePoint*& p1, const Trk::SpacePoint*& p2, const float& z) const { if (data.i_seede!=data.l_seeds.end()) { @@ -1693,12 +1693,12 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newSeed } /////////////////////////////////////////////////////////////////// -// New 3 space points seeds +// New 3 space points seeds /////////////////////////////////////////////////////////////////// void InDet::SiSpacePointsSeedMaker_HeavyIon::newSeed (EventData& data, - const Trk::SpacePoint*& p1, const Trk::SpacePoint*& p2, + const Trk::SpacePoint*& p1, const Trk::SpacePoint*& p2, const Trk::SpacePoint*& p3, const float& z) const { if (data.i_seede!=data.l_seeds.end()) { @@ -1713,14 +1713,14 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newSeed data.i_seede = data.l_seeds.end(); } } - + /////////////////////////////////////////////////////////////////// // Fill seeds /////////////////////////////////////////////////////////////////// void InDet::SiSpacePointsSeedMaker_HeavyIon::fillSeeds(EventData& data) const { - std::multimap<float, InDet::SiSpacePointsSeed*>::iterator + std::multimap<float, InDet::SiSpacePointsSeed*>::iterator l = data.mapOneSeeds.begin(), le = data.mapOneSeeds.end (); for (; l!=le; ++l) { diff --git a/Reconstruction/HeavyIonRec/HIJetRec/share/HIegamma_jobOptions.py b/Reconstruction/HeavyIonRec/HIJetRec/share/HIegamma_jobOptions.py index a9743a824d9..4c4c571f632 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/share/HIegamma_jobOptions.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/share/HIegamma_jobOptions.py @@ -9,7 +9,7 @@ import PerfMonComps.DomainsRegistry as pdr pdr.flag_domain('calo') from CaloRec.CaloRecFlags import jobproperties -from AthenaCommon.Resilience import treatException +from AthenaCommon.Resilience import treatException from RecExConfig.RecFlags import rec from AthenaCommon.GlobalFlags import globalflags from AthenaCommon.DetFlags import DetFlags @@ -28,23 +28,23 @@ jobproperties.egammaRecFlags.doEgammaCaloSeeded=True jobproperties.egammaRecFlags.doEgammaForwardSeeded=False jobproperties.egammaRecFlags.doTopoCaloSeeded=False -if DetFlags.haveRIO.Calo_on() : +if DetFlags.haveRIO.Calo_on() : #combined clusters - if jobproperties.CaloRecFlags.doCaloCluster() : + if jobproperties.CaloRecFlags.doCaloCluster() : try: from CaloRec.CaloClusterSWCmbGetter import CaloClusterSWCmbGetter CaloClusterSWCmbGetter() - except Exception: + except Exception: treatException("Problem with CaloSWCmbCluster. Switched off.") - jobproperties.CaloRecFlags.doCaloCluster=False + jobproperties.CaloRecFlags.doCaloCluster=False #EM clusters if jobproperties.CaloRecFlags.doEmCluster() : try: include( "LArClusterRec/LArCluster_jobOptions.py" ) - except Exception: + except Exception: treatException("Problem with LArCluster. Switched off.") - jobproperties.CaloRecFlags.doEmCluster=False + jobproperties.CaloRecFlags.doEmCluster=False # write digits of EM clusters - if jobproperties.CaloRecFlags.doEMDigits() and globalflags.DataSource()=='data' and globalflags.InputFormat() == 'bytestream': + if jobproperties.CaloRecFlags.doEMDigits() and globalflags.DataSource()=='data' and globalflags.InputFormat() == 'bytestream': try: include ("LArClusterRec/LArDigits_fromEMCluster_jobptions.py") except Exception: treatException("Problem with LArDigitsFromEMClust. Switched off.") @@ -59,7 +59,7 @@ if DetFlags.haveRIO.Calo_on() : #EM Topoclusters if jobproperties.CaloRecFlags.doCaloEMTopoCluster() : - try: include( "CaloRec/EMTopoCluster_jobOptions.py" ) + try: include( "CaloRec/EMTopoCluster_jobOptions.py" ) except Exception: treatException("Problem with EMTopoCluster. Switched off") jobproperties.CaloRecFlags.doCaloTopoCluster=False @@ -76,6 +76,26 @@ AODFix_postEgammaRec() from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() +#from IsoGetter.py +import ROOT, cppyy +cppyy.loadDictionary('xAODCoreRflxDict') +cppyy.loadDictionary('xAODPrimitivesDict') +isoPar = ROOT.xAOD.Iso + +#remove isoPar.pileupCorrection from standard corrections + +IsoCorEg = [ + [ isoPar.core57cells, isoPar.ptCorrection ], + [ isoPar.core57cells, isoPar.ptCorrection ], + [ isoPar.coreTrackPtr ] #still hard-coded + ] +IsoCorMu = [ + #[ isoPar.coreCone ], + [ isoPar.coreMuon ], + [ isoPar.coreCone ], + [ isoPar.coreTrackPtr ] #still hard-coded + ] + if hasattr(topSequence,"EDtpIsoCentralAlg") : EDtpIsoCentralAlg=getattr(topSequence,"EDtpIsoCentralAlg") topSequence.remove(EDtpIsoCentralAlg) @@ -86,10 +106,19 @@ if hasattr(topSequence,"EDtpIsoForwardAlg") : topSequence.remove(EDtpIsoForwardAlg) topSequence+=EDtpIsoForwardAlg +if hasattr(topSequence,"EDtpIsoVeryForwardAlg") : + EDtpIsoVeryForwardAlg=getattr(topSequence,"EDtpIsoVeryForwardAlg") + topSequence.remove(EDtpIsoVeryForwardAlg) + topSequence+=EDtpIsoVeryForwardAlg + if hasattr(topSequence,"IsolationBuilder") : iso=getattr(topSequence,"IsolationBuilder") topSequence.remove(iso) iso.EgIsoTypes=iso.MuIsoTypes + iso.EgCorTypes=IsoCorEg + iso.MuCorTypes=IsoCorMu iso.CellCollectionName='SubtractedCells' - topSequence+=iso + + +#topSequence+=iso diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py b/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py index fe476748594..6bf24b8957b 100755 --- a/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py +++ b/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py @@ -1,4 +1,4 @@ -## Event Shape +## Event Shape from HIMonitoring.HIMonitoringConf import HIMonitoringEventShapeTool HIEventShapeMonTool = HIMonitoringEventShapeTool ( @@ -12,7 +12,7 @@ ESmon = True, #if DQMonFlags.useTrigger(): # HIEventShapeMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace -## Photons +## Photons from HIMonitoring.HIMonitoringConf import HIMonitoringPhotonsTool HIPhotonsMonTool = HIMonitoringPhotonsTool ( name = "HIPhotonsMonTool", @@ -22,7 +22,7 @@ name = "HIPhotonsMonTool", #if DQMonFlags.useTrigger(): # HIPhotonsMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace -## Muons +## Muons from HIMonitoring.HIMonitoringConf import HIMonitoringMuonsTool HIMuonsMonTool = HIMonitoringMuonsTool ( name = "HIMuonsMonTool", @@ -32,7 +32,7 @@ name = "HIMuonsMonTool", #if DQMonFlags.useTrigger(): # HIMuonsMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace -## ZDC +## ZDC from HIMonitoring.HIMonitoringConf import HIMonitoringZdcTool HIZdcMonTool = HIMonitoringZdcTool ( name = "HIZdcMonTool", @@ -42,7 +42,7 @@ name = "HIZdcMonTool", #if DQMonFlags.useTrigger(): # HIZdcMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace -## Electrons +## Electrons from HIMonitoring.HIMonitoringConf import HIMonitoringElectronsTool HIElectronsMonTool = HIMonitoringElectronsTool ( name = "HIElectronsMonTool", @@ -54,7 +54,7 @@ name = "HIElectronsMonTool", -if DQMonFlags.monManEnvironment == 'tier0ESD' or DQMonFlags.monManEnvironment == 'tier0': +if DQMonFlags.monManEnvironment == 'tier0ESD' or DQMonFlags.monManEnvironment == 'tier0': #ToolSvc += HIEventShapeMonTool HIEventShapeMonMan = AthenaMonManager( "HIEventShapeManager", FileKey = DQMonFlags.monManFileKey(), #"GLOBAL" #"stat" @@ -66,7 +66,7 @@ if DQMonFlags.monManEnvironment == 'tier0ESD' or DQMonFlags.monManEnvironment == LumiBlock = DQMonFlags.monManLumiBlock(), #1 AthenaMonTools = [ HIEventShapeMonTool ]) topSequence += HIEventShapeMonMan - + #ToolSvc += HIPhotonsMonTool HIPhotonsMonMan = AthenaMonManager( "HIPhotonsMonManager", FileKey = DQMonFlags.monManFileKey(), #"GLOBAL" #"stat" @@ -90,7 +90,7 @@ if DQMonFlags.monManEnvironment == 'tier0ESD' or DQMonFlags.monManEnvironment == LumiBlock = DQMonFlags.monManLumiBlock(), #1 AthenaMonTools = [ HIMuonsMonTool ]) topSequence += HIMuonsMonMan - + #ToolSvc += HIElectronsMonTool HIElectronsMonMan = AthenaMonManager( "HIElectronsMonManager", FileKey = DQMonFlags.monManFileKey(), #"GLOBAL" #"stat" -- GitLab From b68e1dab87ff42c7605049f56dcaad70a0cf131d Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Fri, 1 May 2020 10:52:10 -0500 Subject: [PATCH 002/459] Revert "Remove remnants in the code from conflicts - committed by mistake" Done by mistake on master in my fork This reverts commit e886fe5f5e82b52a204233fff1f75a2afcf042ee. --- .../src/SiSpacePointsSeedMaker_HeavyIon.cxx | 178 +++++++++--------- .../HIJetRec/share/HIegamma_jobOptions.py | 49 +---- .../share/HIMonitoringSteering_jo.py | 16 +- 3 files changed, 107 insertions(+), 136 deletions(-) diff --git a/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_HeavyIon.cxx b/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_HeavyIon.cxx index 1113538c02f..02777545edf 100644 --- a/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_HeavyIon.cxx +++ b/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_HeavyIon.cxx @@ -74,7 +74,7 @@ StatusCode InDet::SiSpacePointsSeedMaker_HeavyIon::finalize() } /////////////////////////////////////////////////////////////////// -// Initialize tool for new event +// Initialize tool for new event /////////////////////////////////////////////////////////////////// void InDet::SiSpacePointsSeedMaker_HeavyIon::newEvent(const EventContext& ctx, EventData& data, int) const @@ -112,7 +112,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newEvent(const EventContext& ctx, E float irstep = 1./m_r_rstep; int irmax = m_r_size-1 ; - // Get pixels space points containers from store gate + // Get pixels space points containers from store gate // if (m_pixel) { @@ -120,7 +120,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newEvent(const EventContext& ctx, E if (spacepointsPixel.isValid()) { for (const SpacePointCollection* spc: *spacepointsPixel) { - for (const Trk::SpacePoint* sp: *spc) { + for (const Trk::SpacePoint* sp: *spc) { float r = sp->r(); if (r < 43. || r>=m_r_rmax) continue; InDet::SiSpacePointForSeed* sps = newSpacePoint(data, sp); @@ -135,7 +135,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newEvent(const EventContext& ctx, E } } - // Get sct space points containers from store gate + // Get sct space points containers from store gate // if (m_sct) { @@ -196,13 +196,13 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newRegion } else { data.K = 2./(300.* 5.); } - + data.i_spforseed = data.l_spforseed.begin(); float irstep = 1./m_r_rstep; int irmax = m_r_size-1; - - // Get pixels space points containers from store gate + + // Get pixels space points containers from store gate // if (m_pixel && vPixel.size()) { @@ -230,7 +230,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newRegion } } - // Get sct space points containers from store gate + // Get sct space points containers from store gate // if (m_sct && vSCT.size()) { @@ -286,7 +286,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::find2Sp(EventData& data, const std: int mode = 0; if (lv.begin()!=lv.end()) mode = 1; bool newv = newVertices(data, lv); - + if (newv || !data.state || data.nspoint!=2 || data.mode!=mode || data.nlist) { data.i_seede = data.l_seeds.begin(); @@ -301,7 +301,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::find2Sp(EventData& data, const std: production2Sp(data); } data.i_seed = data.l_seeds.begin(); - + if (m_outputlevel<=0) { data.nprint=1; dump(data, msg(MSG::DEBUG)); @@ -362,7 +362,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::findVSp(const EventContext&, EventD int mode = 5; if (lv.begin()!=lv.end()) mode = 6; bool newv = newVertices(data, lv); - + if (newv || !data.state || data.nspoint!=4 || data.mode!=mode || data.nlist) { data.i_seede = data.l_seeds.begin(); data.state = 1 ; @@ -422,13 +422,13 @@ MsgStream& InDet::SiSpacePointsSeedMaker_HeavyIon::dumpConditions(EventData& dat out<<"| BeamConditionsService | "<<m_beamSpotKey.key()<<s5 <<endmsg; out<<"| usePixel | " - <<std::setw(12)<<m_pixel + <<std::setw(12)<<m_pixel <<" |"<<endmsg; out<<"| useSCT | " - <<std::setw(12)<<m_sct + <<std::setw(12)<<m_sct <<" |"<<endmsg; out<<"| maxSize | " - <<std::setw(12)<<m_maxsize + <<std::setw(12)<<m_maxsize <<" |"<<endmsg; out<<"| maxSizeSP | " <<std::setw(12)<<m_maxsizeSP @@ -436,11 +436,11 @@ MsgStream& InDet::SiSpacePointsSeedMaker_HeavyIon::dumpConditions(EventData& dat out<<"| pTmin (mev) | " <<std::setw(12)<<std::setprecision(5)<<m_ptmin <<" |"<<endmsg; - out<<"| |rapidity| <= | " + out<<"| |rapidity| <= | " <<std::setw(12)<<std::setprecision(5)<<m_rapcut <<" |"<<endmsg; out<<"| max radius SP | " - <<std::setw(12)<<std::setprecision(5)<<m_r_rmax + <<std::setw(12)<<std::setprecision(5)<<m_r_rmax <<" |"<<endmsg; out<<"| radius step | " <<std::setw(12)<<std::setprecision(5)<<m_r_rstep @@ -488,10 +488,10 @@ MsgStream& InDet::SiSpacePointsSeedMaker_HeavyIon::dumpConditions(EventData& dat <<std::setw(12)<<std::setprecision(5)<<m_drmax <<" |"<<endmsg; out<<"| max dZ impact | " - <<std::setw(12)<<std::setprecision(5)<<m_dzver + <<std::setw(12)<<std::setprecision(5)<<m_dzver <<" |"<<endmsg; out<<"| max dZ/dR impact | " - <<std::setw(12)<<std::setprecision(5)<<m_dzdrver + <<std::setw(12)<<std::setprecision(5)<<m_dzdrver <<" |"<<endmsg; out<<"| max impact | " <<std::setw(12)<<std::setprecision(5)<<m_diver @@ -573,7 +573,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::findNext(EventData& data) const data.i_seed = data.l_seeds.begin(); ++data.nlist; -} +} /////////////////////////////////////////////////////////////////// // New and old list vertices comparison @@ -599,7 +599,7 @@ bool InDet::SiSpacePointsSeedMaker_HeavyIon::newVertices(EventData& data, const // Initiate frame work for seed generator /////////////////////////////////////////////////////////////////// -void InDet::SiSpacePointsSeedMaker_HeavyIon::buildFrameWork() +void InDet::SiSpacePointsSeedMaker_HeavyIon::buildFrameWork() { m_ptmin = fabs(m_ptmin) ; if (m_ptmin < 100.) m_ptmin = 100.; @@ -633,21 +633,21 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::buildFrameWork() const int NFtmax = SizeRFV; const float sFvmax = static_cast<float>(NFtmax)/pi2; m_sFv = m_ptmin/120.; - if (m_sFv > sFvmax) m_sFv = sFvmax; + if (m_sFv > sFvmax) m_sFv = sFvmax; m_fvNmax = static_cast<int>(pi2*m_sFv); if (m_fvNmax>=NFtmax) m_fvNmax = NFtmax-1; - // Build maps for radius-azimuthal-Z sorted collections + // Build maps for radius-azimuthal-Z sorted collections // for (int f=0; f<=m_fNmax; ++f) { int fb = f-1; if (fb<0) fb = m_fNmax; int ft = f+1; if (ft>m_fNmax) ft = 0; - + // For each azimuthal region loop through all Z regions // - for (int z=0; z<SizeZ; ++z) { + for (int z=0; z<SizeZ; ++z) { int a = f *SizeZ+z; int b = fb*SizeZ+z; int c = ft*SizeZ+z; @@ -705,10 +705,10 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::buildFrameWork() for (int f=0; f<=m_fvNmax; ++f) { int fb = f-1; if (fb<0 ) fb=m_fvNmax; int ft = f+1; if (ft>m_fvNmax) ft=0; - + // For each azimuthal region loop through central Z regions // - for (int z=0; z<SizeZV; ++z) { + for (int z=0; z<SizeZV; ++z) { int a = f *SizeZV+z; int b = fb*SizeZV+z; int c = ft*SizeZV+z; @@ -749,17 +749,17 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::buildBeamFrameWork(const EventConte double cost = cos(th); double sinp = sin(ph); double cosp = cos(ph); - + data.xbeam[0] = static_cast<float>(cb.x()) ; data.xbeam[1] = static_cast<float>(cost*cosp*cosp+sinp*sinp); data.xbeam[2] = static_cast<float>(cost*sinp*cosp-sinp*cosp); data.xbeam[3] =-static_cast<float>(sint*cosp ); - + data.ybeam[0] = static_cast<float>(cb.y()) ; data.ybeam[1] = static_cast<float>(cost*cosp*sinp-sinp*cosp); data.ybeam[2] = static_cast<float>(cost*sinp*sinp+cosp*cosp); data.ybeam[3] =-static_cast<float>(sint*sinp ); - + data.zbeam[0] = static_cast<float>(cb.z()) ; data.zbeam[1] = static_cast<float>(sint*cosp) ; data.zbeam[2] = static_cast<float>(sint*sinp) ; @@ -777,7 +777,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::convertToBeamFrameWork r[1] = static_cast<float>(sp->globalPosition().y())-data.ybeam[0]; r[2] = static_cast<float>(sp->globalPosition().z())-data.zbeam[0]; } - + /////////////////////////////////////////////////////////////////// // Initiate space points seed maker /////////////////////////////////////////////////////////////////// @@ -786,13 +786,13 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::fillLists(EventData& data) const { constexpr float pi2 = 2.*M_PI; std::vector<InDet::SiSpacePointForSeed*>::iterator r; - + for (int i=0; i<m_r_size; ++i) { if (!data.r_map[i]) continue; r = data.r_Sorted[i].begin(); while (r!=data.r_Sorted[i].end()) { - + // Azimuthal angle sort // float F = (*r)->phi(); @@ -817,9 +817,9 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::fillLists(EventData& data) const data.rfz_Sorted[n].push_back(*r); if (!data.rfz_map[n]++) data.rfz_index[data.nrfz++] = n; - if ((*r)->spacepoint->clusterList().second == 0 && z>=3 && z<=7) { + if ((*r)->spacepoint->clusterList().second == 0 && z>=3 && z<=7) { z<=4 ? z=0 : z>=6 ? z=2 : z=1; - + // Azimuthal angle and Z-coordinate sort for fast vertex search // f = static_cast<int>(F*m_sFv); @@ -837,7 +837,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::fillLists(EventData& data) const data.nr = 0; data.state = 0; } - + /////////////////////////////////////////////////////////////////// // Erase space point information /////////////////////////////////////////////////////////////////// @@ -921,7 +921,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production2Sp(EventData& data) cons r = data.rfzv_Sorted[an].begin(); re = data.rfzv_Sorted[an].end (); - + for (; r!=re; ++r) { float Rb =(*r)->radius(); if (Rb<m_r1minv) continue; @@ -969,11 +969,11 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production2Sp(EventData& data) cons } /////////////////////////////////////////////////////////////////// -// Production 3 space points seeds +// Production 3 space points seeds /////////////////////////////////////////////////////////////////// void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp(EventData& data) const -{ +{ if (data.nsaz<3) return; const int ZI[SizeZ] = {5,6,7,8,9,10,4,3,2,1,0}; @@ -982,7 +982,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp(EventData& data) cons // Loop thorugh all azimuthal regions // - for (int f=data.fNmin; f<=m_fNmax; ++f) { + for (int f=data.fNmin; f<=m_fNmax; ++f) { // For each azimuthal region loop through all Z regions // int z = 0; @@ -992,18 +992,18 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp(EventData& data) cons int a = f*SizeZ+ZI[z]; if (!data.rfz_map[a]) continue; int NB = 0, NT = 0; - for (int i=0; i<m_rfz_b[a]; ++i) { + for (int i=0; i<m_rfz_b[a]; ++i) { int an = m_rfz_ib[a][i]; if (!data.rfz_map[an]) continue; rb [NB] = data.rfz_Sorted[an].begin(); rbe[NB++] = data.rfz_Sorted[an].end(); - } - for (int i=0; i<m_rfz_t[a]; ++i) { + } + for (int i=0; i<m_rfz_t[a]; ++i) { int an = m_rfz_it[a][i]; if (!data.rfz_map[an]) continue; rt [NT] = data.rfz_Sorted[an].begin(); rte[NT++] = data.rfz_Sorted[an].end(); - } + } if (data.izvertex) { if (!data.trigger) production3Sp (data, rb, rbe, rt, rte, NB, NT, nseed); else production3SpTrigger(data, rb, rbe, rt, rte, NB, NT, nseed); @@ -1014,7 +1014,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp(EventData& data) cons data.fNmin=f; data.zMin = z; return; - } + } } } data.endlist = true; @@ -1040,7 +1040,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp for (; r0!=rbe[0]; ++r0) { data.nOneSeeds = 0; data.mapOneSeeds.erase(data.mapOneSeeds.begin(), data.mapOneSeeds.end()); - + float R = (*r0)->radius(); const Trk::SpacePoint* SP0 = (*r0)->spacepoint; @@ -1065,7 +1065,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp float Tz = (Z-(*r)->z())/dR; if (Tz < m_dzdrmin || Tz > m_dzdrmax) continue; - + // Comparison with vertices Z coordinates // float Zo = Z-R*Tz; @@ -1077,7 +1077,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp breakb: if (!Nb || Nb==m_maxsizeSP) continue; int Nt = Nb; - + // Top links production // for (int i=0; i<NT; ++i) { @@ -1103,7 +1103,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp if (++Nt==m_maxsizeSP) goto breakt; } } - + breakt: if (!(Nt-Nb)) continue; @@ -1112,7 +1112,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp float ax = X/R; float ay = Y/R; - + for (int i=0; i<Nt; ++i) { InDet::SiSpacePointForSeed* sp = data.SP[i]; @@ -1133,7 +1133,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp data.V [i] = y*r2 ; data.Er[i] = (covz0+sp->covz()+tz*tz*(covr0+sp->covr()))*r2; } - + float imc = m_diver ; float ipt2 = m_ipt2 ; float K = data.K ; @@ -1148,7 +1148,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp // for (int b=0; b<Nb; ++b) { const Trk::SpacePoint* SPb = data.SP[b]->spacepoint; - + float Zob = data.Zo[b] ; float Tzb = data.Tz[b] ; float Rb2r = data.R [b]*covr0; @@ -1187,7 +1187,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3Sp ++r0; data.rMin = r0; return; - } + } } } @@ -1216,7 +1216,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger for (; r0!=rbe[0]; ++r0) { data.nOneSeeds = 0; data.mapOneSeeds.erase(data.mapOneSeeds.begin(), data.mapOneSeeds.end()); - + float R = (*r0)->radius(); const Trk::SpacePoint* SP0 = (*r0)->spacepoint; @@ -1248,7 +1248,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger float Tz = (Z-(*r)->z())/dR; if (Tz < m_dzdrmin || Tz > m_dzdrmax) continue; - + // Comparison with vertices Z coordinates // float Zo = Z-R*Tz; @@ -1260,7 +1260,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger breakb: if (!Nb || Nb==m_maxsizeSP) continue; int Nt = Nb; - + // Top links production // for (int i=0; i<NT; ++i) { @@ -1283,17 +1283,17 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger // float Zo = Z-R*Tz; if (!isZCompatible(data, Zo, R, Tz)) continue; - + // Polar angle test // Zo = (*r)->z()+(550.-Rt)*Tz; if ( Zo < m_zminU || Zo > m_zmaxU) continue; - + data.SP[Nt] = (*r); if (++Nt==m_maxsizeSP) goto breakt; } } - + breakt: if (!(Nt-Nb)) continue; @@ -1302,7 +1302,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger float ax = X/R; float ay = Y/R; - + for (int i=0; i!=Nt; ++i) { InDet::SiSpacePointForSeed* sp = data.SP[i]; @@ -1323,7 +1323,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger data.V [i] = y*r2 ; data.Er[i] = (covz0+sp->covz()+tz*tz*(covr0+sp->covr()))*r2; } - + float imc = m_diver ; float ipt2 = m_ipt2 ; float K = data.K ; @@ -1334,12 +1334,12 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger float COFK = COF*K2 ; covr0 *= 2. ; covz0 *= 2. ; - + // Three space points comparison // for (int b=0; b!=Nb; ++b) { const Trk::SpacePoint* SPb = data.SP[b]->spacepoint; - + float Zob = data.Zo[b] ; float Tzb = data.Tz[b] ; float Rb2r = data.R [b]*covr0; @@ -1365,7 +1365,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger float B2 = B*B ; if (B2 > ipt2K*S2 || dT*S2 > B2*CSA) continue; float Im = fabs((A-B*R)*R) ; - + if (Im > imc ) continue; // Azimuthal angle test @@ -1389,7 +1389,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpTrigger } } } - + /////////////////////////////////////////////////////////////////// // Production 3 space points seeds for full scan without vertex information @@ -1414,7 +1414,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex for (; r0!=rbe[0]; ++r0) { data.nOneSeeds = 0; data.mapOneSeeds.erase(data.mapOneSeeds.begin(), data.mapOneSeeds.end()); - + float R = (*r0)->radius(); const Trk::SpacePoint* SP0 = (*r0)->spacepoint; @@ -1442,7 +1442,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex if ( !pix && !(*r)->spacepoint->clusterList().second) continue; float Tz = (Z-(*r)->z())/dR; if (Tz < m_dzdrmin || Tz > m_dzdrmax) continue; - + // Comparison with vertices Z coordinates // float Zo = Z-R*Tz; @@ -1454,7 +1454,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex breakb: if (!Nb || Nb==m_maxsizeSP) continue; int Nt = Nb; - + // Top links production // for (int i=0; i<NT; ++i) { @@ -1478,7 +1478,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex if (++Nt==m_maxsizeSP) goto breakt; } } - + breakt: if (!(Nt-Nb)) continue; @@ -1487,7 +1487,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex float ax = X/R; float ay = Y/R; - + for (int i=0; i<Nt; ++i) { InDet::SiSpacePointForSeed* sp = data.SP[i]; @@ -1508,7 +1508,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex data.V [i] = y*r2 ; data.Er[i] = (covz0+sp->covz()+tz*tz*(covr0+sp->covr()))*r2; } - + float imc = m_diver ; float imcs = m_diverpps; float ipt2 = m_ipt2 ; @@ -1520,12 +1520,12 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex float COFK = COF*K2 ; covr0 *= 2. ; covz0 *= 2. ; - + // Three space points comparison // for (int b=0; b<Nb; ++b) { const Trk::SpacePoint* SPb = data.SP[b]->spacepoint; - + float Zob = data.Zo[b] ; float Tzb = data.Tz[b] ; float Rb2r = data.R [b]*covr0; @@ -1550,7 +1550,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex float B2 = B*B ; if (B2 > ipt2K*S2 || dT*S2 > B2*CSA) continue; float Im = fabs((A-B*R)*R) ; - + if (pix) { if ( Im > imc ) continue; if (data.SP[t]->spacepoint->clusterList().second && Im > imcs) continue; @@ -1567,7 +1567,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex ++r0; data.rMin = r0; return; - } + } } } @@ -1577,7 +1577,7 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::production3SpNoVertex void InDet::SiSpacePointsSeedMaker_HeavyIon::newOneSeed (EventData& data, - const Trk::SpacePoint*& p1,const Trk::SpacePoint*& p2, + const Trk::SpacePoint*& p1,const Trk::SpacePoint*& p2, const Trk::SpacePoint*& p3,const float& z,const float& q) const { if (data.nOneSeeds < m_maxOneSize) { @@ -1590,19 +1590,19 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newOneSeed data.mapOneSeeds.insert(std::make_pair(q, &(data.OneSeeds[data.nOneSeeds]))); ++data.nOneSeeds; } else { - std::multimap<float,InDet::SiSpacePointsSeed*>::reverse_iterator + std::multimap<float,InDet::SiSpacePointsSeed*>::reverse_iterator l = data.mapOneSeeds.rbegin(); if ((*l).first <= q) return; - + InDet::SiSpacePointsSeed* s = (*l).second; s->erase(); s->add(p1); s->add(p2); s->add(p3); s->setZVertex(static_cast<double>(z)); - std::multimap<float,InDet::SiSpacePointsSeed*>::iterator + std::multimap<float,InDet::SiSpacePointsSeed*>::iterator i = data.mapOneSeeds.insert(std::make_pair(q,s)); - + for (++i; i!=data.mapOneSeeds.end(); ++i) { if ((*i).second==s) { data.mapOneSeeds.erase(i); @@ -1619,11 +1619,11 @@ const InDet::SiSpacePointsSeed* InDet::SiSpacePointsSeedMaker_HeavyIon::next(con if (data.i_seed==data.i_seede) { findNext(data); if (data.i_seed==data.i_seede) return nullptr; - } + } return &(*data.i_seed++); } -bool InDet::SiSpacePointsSeedMaker_HeavyIon::isZCompatible +bool InDet::SiSpacePointsSeedMaker_HeavyIon::isZCompatible (EventData& data, float& Zv, float& R, float& T) const { if (Zv < m_zmin || Zv > m_zmax) return false; @@ -1648,7 +1648,7 @@ float InDet::SiSpacePointsSeedMaker_HeavyIon::dZVertexMin(EventData& data, float } /////////////////////////////////////////////////////////////////// -// New space point for seeds +// New space point for seeds /////////////////////////////////////////////////////////////////// InDet::SiSpacePointForSeed* InDet::SiSpacePointsSeedMaker_HeavyIon::newSpacePoint @@ -1667,17 +1667,17 @@ InDet::SiSpacePointForSeed* InDet::SiSpacePointsSeedMaker_HeavyIon::newSpacePoin sps = &(data.l_spforseed.back()); data.i_spforseed = data.l_spforseed.end(); } - + return sps; } /////////////////////////////////////////////////////////////////// -// New 2 space points seeds +// New 2 space points seeds /////////////////////////////////////////////////////////////////// void InDet::SiSpacePointsSeedMaker_HeavyIon::newSeed (EventData& data, - const Trk::SpacePoint*& p1, const Trk::SpacePoint*& p2, + const Trk::SpacePoint*& p1, const Trk::SpacePoint*& p2, const float& z) const { if (data.i_seede!=data.l_seeds.end()) { @@ -1693,12 +1693,12 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newSeed } /////////////////////////////////////////////////////////////////// -// New 3 space points seeds +// New 3 space points seeds /////////////////////////////////////////////////////////////////// void InDet::SiSpacePointsSeedMaker_HeavyIon::newSeed (EventData& data, - const Trk::SpacePoint*& p1, const Trk::SpacePoint*& p2, + const Trk::SpacePoint*& p1, const Trk::SpacePoint*& p2, const Trk::SpacePoint*& p3, const float& z) const { if (data.i_seede!=data.l_seeds.end()) { @@ -1713,14 +1713,14 @@ void InDet::SiSpacePointsSeedMaker_HeavyIon::newSeed data.i_seede = data.l_seeds.end(); } } - + /////////////////////////////////////////////////////////////////// // Fill seeds /////////////////////////////////////////////////////////////////// void InDet::SiSpacePointsSeedMaker_HeavyIon::fillSeeds(EventData& data) const { - std::multimap<float, InDet::SiSpacePointsSeed*>::iterator + std::multimap<float, InDet::SiSpacePointsSeed*>::iterator l = data.mapOneSeeds.begin(), le = data.mapOneSeeds.end (); for (; l!=le; ++l) { diff --git a/Reconstruction/HeavyIonRec/HIJetRec/share/HIegamma_jobOptions.py b/Reconstruction/HeavyIonRec/HIJetRec/share/HIegamma_jobOptions.py index 4c4c571f632..a9743a824d9 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/share/HIegamma_jobOptions.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/share/HIegamma_jobOptions.py @@ -9,7 +9,7 @@ import PerfMonComps.DomainsRegistry as pdr pdr.flag_domain('calo') from CaloRec.CaloRecFlags import jobproperties -from AthenaCommon.Resilience import treatException +from AthenaCommon.Resilience import treatException from RecExConfig.RecFlags import rec from AthenaCommon.GlobalFlags import globalflags from AthenaCommon.DetFlags import DetFlags @@ -28,23 +28,23 @@ jobproperties.egammaRecFlags.doEgammaCaloSeeded=True jobproperties.egammaRecFlags.doEgammaForwardSeeded=False jobproperties.egammaRecFlags.doTopoCaloSeeded=False -if DetFlags.haveRIO.Calo_on() : +if DetFlags.haveRIO.Calo_on() : #combined clusters - if jobproperties.CaloRecFlags.doCaloCluster() : + if jobproperties.CaloRecFlags.doCaloCluster() : try: from CaloRec.CaloClusterSWCmbGetter import CaloClusterSWCmbGetter CaloClusterSWCmbGetter() - except Exception: + except Exception: treatException("Problem with CaloSWCmbCluster. Switched off.") - jobproperties.CaloRecFlags.doCaloCluster=False + jobproperties.CaloRecFlags.doCaloCluster=False #EM clusters if jobproperties.CaloRecFlags.doEmCluster() : try: include( "LArClusterRec/LArCluster_jobOptions.py" ) - except Exception: + except Exception: treatException("Problem with LArCluster. Switched off.") - jobproperties.CaloRecFlags.doEmCluster=False + jobproperties.CaloRecFlags.doEmCluster=False # write digits of EM clusters - if jobproperties.CaloRecFlags.doEMDigits() and globalflags.DataSource()=='data' and globalflags.InputFormat() == 'bytestream': + if jobproperties.CaloRecFlags.doEMDigits() and globalflags.DataSource()=='data' and globalflags.InputFormat() == 'bytestream': try: include ("LArClusterRec/LArDigits_fromEMCluster_jobptions.py") except Exception: treatException("Problem with LArDigitsFromEMClust. Switched off.") @@ -59,7 +59,7 @@ if DetFlags.haveRIO.Calo_on() : #EM Topoclusters if jobproperties.CaloRecFlags.doCaloEMTopoCluster() : - try: include( "CaloRec/EMTopoCluster_jobOptions.py" ) + try: include( "CaloRec/EMTopoCluster_jobOptions.py" ) except Exception: treatException("Problem with EMTopoCluster. Switched off") jobproperties.CaloRecFlags.doCaloTopoCluster=False @@ -76,26 +76,6 @@ AODFix_postEgammaRec() from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() -#from IsoGetter.py -import ROOT, cppyy -cppyy.loadDictionary('xAODCoreRflxDict') -cppyy.loadDictionary('xAODPrimitivesDict') -isoPar = ROOT.xAOD.Iso - -#remove isoPar.pileupCorrection from standard corrections - -IsoCorEg = [ - [ isoPar.core57cells, isoPar.ptCorrection ], - [ isoPar.core57cells, isoPar.ptCorrection ], - [ isoPar.coreTrackPtr ] #still hard-coded - ] -IsoCorMu = [ - #[ isoPar.coreCone ], - [ isoPar.coreMuon ], - [ isoPar.coreCone ], - [ isoPar.coreTrackPtr ] #still hard-coded - ] - if hasattr(topSequence,"EDtpIsoCentralAlg") : EDtpIsoCentralAlg=getattr(topSequence,"EDtpIsoCentralAlg") topSequence.remove(EDtpIsoCentralAlg) @@ -106,19 +86,10 @@ if hasattr(topSequence,"EDtpIsoForwardAlg") : topSequence.remove(EDtpIsoForwardAlg) topSequence+=EDtpIsoForwardAlg -if hasattr(topSequence,"EDtpIsoVeryForwardAlg") : - EDtpIsoVeryForwardAlg=getattr(topSequence,"EDtpIsoVeryForwardAlg") - topSequence.remove(EDtpIsoVeryForwardAlg) - topSequence+=EDtpIsoVeryForwardAlg - if hasattr(topSequence,"IsolationBuilder") : iso=getattr(topSequence,"IsolationBuilder") topSequence.remove(iso) iso.EgIsoTypes=iso.MuIsoTypes - iso.EgCorTypes=IsoCorEg - iso.MuCorTypes=IsoCorMu iso.CellCollectionName='SubtractedCells' + topSequence+=iso - - -#topSequence+=iso diff --git a/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py b/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py index 6bf24b8957b..fe476748594 100755 --- a/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py +++ b/Reconstruction/HeavyIonRec/HIMonitoring/share/HIMonitoringSteering_jo.py @@ -1,4 +1,4 @@ -## Event Shape +## Event Shape from HIMonitoring.HIMonitoringConf import HIMonitoringEventShapeTool HIEventShapeMonTool = HIMonitoringEventShapeTool ( @@ -12,7 +12,7 @@ ESmon = True, #if DQMonFlags.useTrigger(): # HIEventShapeMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace -## Photons +## Photons from HIMonitoring.HIMonitoringConf import HIMonitoringPhotonsTool HIPhotonsMonTool = HIMonitoringPhotonsTool ( name = "HIPhotonsMonTool", @@ -22,7 +22,7 @@ name = "HIPhotonsMonTool", #if DQMonFlags.useTrigger(): # HIPhotonsMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace -## Muons +## Muons from HIMonitoring.HIMonitoringConf import HIMonitoringMuonsTool HIMuonsMonTool = HIMonitoringMuonsTool ( name = "HIMuonsMonTool", @@ -32,7 +32,7 @@ name = "HIMuonsMonTool", #if DQMonFlags.useTrigger(): # HIMuonsMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace -## ZDC +## ZDC from HIMonitoring.HIMonitoringConf import HIMonitoringZdcTool HIZdcMonTool = HIMonitoringZdcTool ( name = "HIZdcMonTool", @@ -42,7 +42,7 @@ name = "HIZdcMonTool", #if DQMonFlags.useTrigger(): # HIZdcMonTool.TrigDecisionTool = monTrigDecTool #tool should already be in namespace -## Electrons +## Electrons from HIMonitoring.HIMonitoringConf import HIMonitoringElectronsTool HIElectronsMonTool = HIMonitoringElectronsTool ( name = "HIElectronsMonTool", @@ -54,7 +54,7 @@ name = "HIElectronsMonTool", -if DQMonFlags.monManEnvironment == 'tier0ESD' or DQMonFlags.monManEnvironment == 'tier0': +if DQMonFlags.monManEnvironment == 'tier0ESD' or DQMonFlags.monManEnvironment == 'tier0': #ToolSvc += HIEventShapeMonTool HIEventShapeMonMan = AthenaMonManager( "HIEventShapeManager", FileKey = DQMonFlags.monManFileKey(), #"GLOBAL" #"stat" @@ -66,7 +66,7 @@ if DQMonFlags.monManEnvironment == 'tier0ESD' or DQMonFlags.monManEnvironment == LumiBlock = DQMonFlags.monManLumiBlock(), #1 AthenaMonTools = [ HIEventShapeMonTool ]) topSequence += HIEventShapeMonMan - + #ToolSvc += HIPhotonsMonTool HIPhotonsMonMan = AthenaMonManager( "HIPhotonsMonManager", FileKey = DQMonFlags.monManFileKey(), #"GLOBAL" #"stat" @@ -90,7 +90,7 @@ if DQMonFlags.monManEnvironment == 'tier0ESD' or DQMonFlags.monManEnvironment == LumiBlock = DQMonFlags.monManLumiBlock(), #1 AthenaMonTools = [ HIMuonsMonTool ]) topSequence += HIMuonsMonMan - + #ToolSvc += HIElectronsMonTool HIElectronsMonMan = AthenaMonManager( "HIElectronsMonManager", FileKey = DQMonFlags.monManFileKey(), #"GLOBAL" #"stat" -- GitLab From c953dedb5dde52b7600e0b9c90c35cca879607d4 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Mon, 15 Jun 2020 12:56:09 +0100 Subject: [PATCH 003/459] Adding ATLAS_CHECK_THREAD_SAFETY to MuonByteStream. No errors occuring --- .../MuonByteStream/MuonByteStream/ATLAS_CHECK_THREAD_SAFETY | 1 + 1 file changed, 1 insertion(+) create mode 100644 MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/ATLAS_CHECK_THREAD_SAFETY diff --git a/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/ATLAS_CHECK_THREAD_SAFETY b/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..f5e24b72707 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonByteStream/MuonByteStream/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +MuonSpectrometer/MuonCnv/MuonByteStream \ No newline at end of file -- GitLab From 443601632043eaeb65bf9a6bb9d5ad5d2506f8db Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Mon, 15 Jun 2020 16:00:47 +0100 Subject: [PATCH 004/459] Adding thread check to CSC tools --- .../MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx | 5 +++++ .../MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h | 5 +++++ .../MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.cxx | 8 ++++++++ .../MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.h | 7 +++++++ 4 files changed, 25 insertions(+) diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx index 6915dc9ae72..60efbbed7fb 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx @@ -6,6 +6,11 @@ // CSC_RawDataProviderTool.cxx, (c) ATLAS Detector software /////////////////////////////////////////////////////////////////// +/// This code is only used in the single-thread setup +/// As such, deactivating the check in this file +#include "CxxUtils/checker_macros.h" +ATLAS_NO_CHECK_FILE_THREAD_SAFETY; + #include "CSC_RawDataProviderTool.h" #include "MuonReadoutGeometry/MuonDetectorManager.h" #include "ByteStreamData/ROBData.h" diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h index a9be02ed374..b8e43461525 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h @@ -9,6 +9,11 @@ #ifndef MUONCSC_CNVTOOLS_CSC_RAWDATAPROVIDERTOOL_H #define MUONCSC_CNVTOOLS_CSC_RAWDATAPROVIDERTOOL_H +/// This code is only used in the single-thread setup +/// As such, deactivating the check in this file +#include "CxxUtils/checker_macros.h" +ATLAS_NO_CHECK_FILE_THREAD_SAFETY; + #include "CSC_RawDataProviderToolCore.h" #include "GaudiKernel/ToolHandle.h" #include "GaudiKernel/ServiceHandle.h" diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.cxx b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.cxx index e9777821626..35696f58e01 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.cxx +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.cxx @@ -7,6 +7,14 @@ /// algorithm to decode RDO into PrepRawData +/// This code is only used in the single-thread setup +/// CscRdoToCscPrepDataToolMT.cxx has the same functions but +/// defined for a thread-safe environment +/// As such, deactivating the check in this file +#include "CxxUtils/checker_macros.h" +ATLAS_NO_CHECK_FILE_THREAD_SAFETY; + + #include "MuonIdHelpers/CscIdHelper.h" #include "MuonReadoutGeometry/CscReadoutElement.h" #include "MuonRDO/CscRawData.h" diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.h b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.h index b2938aecb06..8f5a1c91080 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.h +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.h @@ -5,6 +5,13 @@ #ifndef MUONCSC_CNVTOOLS_CSCRDOTOCSCPREPDATATOOLCORE_H #define MUONCSC_CNVTOOLS_CSCRDOTOCSCPREPDATATOOLCORE_H +/// This code is only used in the single-thread setup +/// CscRdoToCscPrepDataToolMT.cxx has the same functions but +/// defined for a thread-safe environment +/// As such, deactivating the check in this file +#include "CxxUtils/checker_macros.h" +ATLAS_NO_CHECK_FILE_THREAD_SAFETY; + #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ServiceHandle.h" #include "GaudiKernel/ToolHandle.h" -- GitLab From 26aae2c4ce7f3c3e8dc377a674fd7d55882f41a1 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Mon, 15 Jun 2020 17:15:26 +0100 Subject: [PATCH 005/459] Adding thread check to MDT --- .../MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.cxx | 7 +++++++ .../MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.cxx b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.cxx index b72b1fc24e0..538eec80c32 100644 --- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.cxx @@ -2,6 +2,13 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ +/// This code is only used in the single-thread setup +/// As such, deactivating the check in this file +#include "CxxUtils/checker_macros.h" +ATLAS_NO_CHECK_FILE_THREAD_SAFETY; + + + #include "MdtRdoToPrepDataTool.h" Muon::MdtRdoToPrepDataTool::MdtRdoToPrepDataTool(const std::string& t, const std::string& n, const IInterface* p) diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h index 5c648e499bc..01950c89dab 100644 --- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h @@ -5,6 +5,11 @@ #ifndef MUONMdtRdoToPrepDataTool_H #define MUONMdtRdoToPrepDataTool_H +/// This code is only used in the single-thread setup +/// As such, deactivating the check in this file +#include "CxxUtils/checker_macros.h" +ATLAS_NO_CHECK_FILE_THREAD_SAFETY; + #include "MdtRdoToPrepDataToolCore.h" namespace Muon -- GitLab From c6125d21936a436bc25543ac4dc7e56860ea7a0b Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Mon, 15 Jun 2020 17:15:32 +0100 Subject: [PATCH 006/459] Adding the check files --- .../MuonCSC_CnvTools/MuonCSC_CnvTools/ATLAS_CHECK_THREAD_SAFETY | 1 + .../MuonMDT_CnvTools/MuonMDT_CnvTools/ATLAS_CHECK_THREAD_SAFETY | 1 + 2 files changed, 2 insertions(+) create mode 100644 MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/MuonCSC_CnvTools/ATLAS_CHECK_THREAD_SAFETY create mode 100644 MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/MuonMDT_CnvTools/ATLAS_CHECK_THREAD_SAFETY diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/MuonCSC_CnvTools/ATLAS_CHECK_THREAD_SAFETY b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/MuonCSC_CnvTools/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..4880df7d0fa --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/MuonCSC_CnvTools/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +MuonSpectrometer/MuonCnv/MuonCSC_CnvTools \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/MuonMDT_CnvTools/ATLAS_CHECK_THREAD_SAFETY b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/MuonMDT_CnvTools/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..fdac45c0a17 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/MuonMDT_CnvTools/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +MuonSpectrometer/MuonCnv/MuonMDT_CnvTools \ No newline at end of file -- GitLab From 0d3ab87a61f54597e297a0d8db1c3071ece486c5 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Tue, 16 Jun 2020 12:43:26 +0100 Subject: [PATCH 007/459] Updating MDT --- .../MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.cxx | 5 +++++ .../MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.h | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.cxx b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.cxx index 573f5ee6c98..4bcd008435a 100644 --- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.cxx @@ -2,6 +2,11 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ +/// This code is only used in the single-thread setup +/// As such, deactivating the check in this file +#include "CxxUtils/checker_macros.h" +ATLAS_NO_CHECK_FILE_THREAD_SAFETY; + #include "MDT_RawDataProviderTool.h" #include "MuonRDO/MdtCsmContainer.h" #include "MuonReadoutGeometry/MuonDetectorManager.h" diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.h b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.h index 6a692cbbf7c..9d03632b02a 100644 --- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.h +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.h @@ -5,6 +5,11 @@ #ifndef MUONMDTCNVTOOLS_MUONMDTRAWDATAPROVIDERTOOL_H #define MUONMDTCNVTOOLS_MUONMDTRAWDATAPROVIDERTOOL_H +/// This code is only used in the single-thread setup +/// As such, deactivating the check in this file +#include "CxxUtils/checker_macros.h" +ATLAS_NO_CHECK_FILE_THREAD_SAFETY; + #include "GaudiKernel/ToolHandle.h" #include "GaudiKernel/ServiceHandle.h" #include "MuonCnvToolInterfaces/IMuonRawDataProviderTool.h" -- GitLab From 6beff46e8754d9d88d8f5d875f87e8fb7255845d Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Thu, 14 May 2020 02:06:22 -0500 Subject: [PATCH 008/459] New Class HIJetConstituentModifier in HIJetRec --- .../HIJetRec/HIJetConstituentModifier.h | 42 ++++++++++++ .../Root/HIJetConstituentModifier.cxx | 64 +++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifier.h create mode 100644 Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifier.cxx diff --git a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifier.h b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifier.h new file mode 100644 index 00000000000..63334d0ae5e --- /dev/null +++ b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifier.h @@ -0,0 +1,42 @@ +// This file is -*- C++ -*- +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + */ + +#ifndef HIJETREC_HIJETCONSTITUENTMODIFIER_H +#define HIJETREC_HIJETCONSTITUENTMODIFIER_H + /////////////////////////////////////////////////////// + /// \class HIJetConstituentModifier + /// \author R.Longo - riccardo.longo@cern.ch + /// \date May 2020 + /// + /// Tool to subtract final HIEventShape from constituents + /// on the fly (w/o modifying clusters) + /////////////////////////////////////////////////////// + +#include "JetRec/JetModifierBase.h" +#include "xAODCaloEvent/CaloClusterContainer.h" + +#include "StoreGate/ReadHandleKey.h" +#include "StoreGate/WriteHandleKey.h" + +class HIJetConstituentModifier : public JetModifierBase { + + ASG_TOOL_CLASS(HIJetConstituentModifier, IJetModifier); + + public: + + // Constructor from tool name. + HIJetConstituentModifier(const std::string& myname); + + virtual StatusCode initialize() override; + // Inherited method to modify a jet. + virtual int modifyJet(xAOD::Jet& jet) const; + + private: + /// \brief Name of input cluster container + SG::ReadHandleKey< xAOD::CaloClusterContainer > m_clusterKey { this, "ClusterKey", "ClusterKey", "Name of the input Cluster Container"}; + +}; + +#endif diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifier.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifier.cxx new file mode 100644 index 00000000000..2839c52566c --- /dev/null +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifier.cxx @@ -0,0 +1,64 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#include "HIJetRec/HIJetConstituentModifier.h" +#include "HIJetRec/HIJetRecDefs.h" +#include "xAODJet/JetConstituentVector.h" +#include "xAODCaloEvent/CaloClusterContainer.h" +#include "xAODBase/IParticle.h" +#include "xAODBase/IParticleContainer.h" +#include "JetRec/JetModifierBase.h" + +#include "StoreGate/ReadHandle.h" + +HIJetConstituentModifier::HIJetConstituentModifier(const std::string& myname): JetModifierBase(myname) +{ +} + +StatusCode HIJetConstituentModifier::initialize(){ + + ATH_CHECK( m_clusterKey.initialize() ); + + return StatusCode::SUCCESS; +} + +int HIJetConstituentModifier::modifyJet(xAOD::Jet& jet) const { + + const xAOD::JetConstituentVector constituents = jet.getConstituents(); + std::vector<size_t> cluster_indices; + cluster_indices.reserve(constituents.size()); + + for (auto citer = constituents.begin(); citer != constituents.end(); ++citer) + { + cluster_indices.push_back(citer->rawConstituent()->index()); + } + + /// The accessor for the cluster element links + static SG::AuxElement::Accessor< std::vector< ElementLink< xAOD::IParticleContainer > > > + constituentAcc( "constituentLinks" ); + static SG::AuxElement::Accessor< std::vector< float> > + constituentWeightAcc( "constituentWeights" ); + + if( constituentAcc.isAvailable(jet) ) constituentAcc( jet ).resize(0); + if( constituentWeightAcc.isAvailable(jet) ) constituentWeightAcc( jet ).resize(0); + + //save unsubtracted kinematics as moment if they don’t exist already... + jet.setJetP4(HIJetRec::unsubtractedJetState(),jet.jetP4()); + + xAOD::IParticle::FourMom_t subtrP4; + xAOD::JetFourMom_t jet4vec; + //need to add usual safety checks on cluster container access + SG::ReadHandle<xAOD::CaloClusterContainer> readHandleSubtractedClusters ( m_clusterKey ); + const xAOD::CaloClusterContainer* ccl=readHandleSubtractedClusters.cptr(); + for(auto index : cluster_indices) + { + auto cl=ccl->at(index); + jet.addConstituent(cl); + subtrP4=cl->p4(HIJetRec::subtractedClusterState()); + } + jet4vec.SetCoordinates(subtrP4.Pt(),subtrP4.Eta(),subtrP4.Phi(),subtrP4.M()); + jet.setJetP4(jet4vec); + + return 0; +} -- GitLab From 1098609d130da0d46ef387df7c75fd8ac21f7a3b Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Thu, 14 May 2020 02:07:10 -0500 Subject: [PATCH 009/459] Introducing shallow copy for CaloClusterContainers in HIClusterSubtraction --- .../HIJetRec/src/HIClusterSubtraction.cxx | 65 ++++++++++--------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx index 651947798b5..4c4678aa96d 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx @@ -7,10 +7,14 @@ #include "xAODCaloEvent/CaloClusterContainer.h" #include "HIEventUtils/HIEventShapeMap.h" #include "HIJetRec/HIJetRecDefs.h" +#include "xAODCore/ShallowAuxContainer.h" +#include "xAODCore/ShallowCopy.h" +#include "xAODBase/IParticleHelpers.h" #include "StoreGate/ReadHandle.h" #include "StoreGate/WriteHandle.h" +class ISvcLocator; //********************************************************************** HIClusterSubtraction::HIClusterSubtraction(std::string name) : asg::AsgTool(name)//, @@ -39,57 +43,63 @@ int HIClusterSubtraction::execute() const //const jet::cellset_t & badcells = badCellMap.cells() ; //retrieve UE - //From here on temporarily commented out code bc decorators needs a dedicated treatment in MT - //const xAOD::HIEventShapeContainer* shape = 0; + //From here on temporarily commented out code bc needs a dedicated treatment in MT to compile + //In rel 21 we were updating a non-const CaloCalusterContainer. That approach is no more acceptable in Athena MT + ATH_MSG_WARNING("HIClusterSubtraction being rebuilt to work in MT - upgrade not yet over! "); + const xAOD::HIEventShapeContainer* shape = 0; SG::ReadHandle<xAOD::HIEventShapeContainer> readHandleEvtShape ( m_eventShapeKey ); - //shape = readHandleEvtShape.get(); - ATH_MSG_WARNING("HIClusterSubtraction not yet migrated to MT. Currently disabled! "); - //const HIEventShapeIndex* es_index = HIEventShapeMap::getIndex( m_eventShapeKey.key() ); + shape = readHandleEvtShape.cptr(); + const HIEventShapeIndex* es_index = HIEventShapeMap::getIndex( m_eventShapeKey.key() ); const xAOD::HIEventShape* eshape = nullptr; - //Hibryd merging between commit c2aeaed0 to master and 5af8a733 to 21.0ss CHECK(m_modulatorTool->getShape(eshape), 1); - //This part regards decoration! - //Needs a more deep implementation to work in MT - to be discussed w/ Bill Balunas - //Will be fronted in the next step of the migration - /* - SG::ReadHandle<xAOD::CaloClusterContainer> read_handle_clusters ( m_clusterKey ); - if (!read_handle_clusters.isValid()) - { - ATH_MSG_ERROR("Could not retrieve input CaloClusterContainer " << m_clusterKey.key() ); - return 1; - } - const xAOD::CaloClusterContainer* ccl=0; + + //New implementation: make a shallow copy of original HIClusters and apply subtraction to clusters in the new container + SG::ReadHandle<xAOD::CaloClusterContainer> readHandleClusters ( m_clusterKey ); + + ATH_MSG_DEBUG("Shallow-copying HIClusters"); + + std::pair<xAOD::CaloClusterContainer*,xAOD::ShallowAuxContainer*> shallowcopy = xAOD::shallowCopyContainer(*readHandleClusters); + + /// Set whether only the overriden parameters should be written out - default is true + //shallowcopy.second->setShallowIO(m_shallowIO); + + // Make sure that memory is managed safely + std::unique_ptr<xAOD::CaloClusterContainer> outCaloClus(shallowcopy.first); + std::unique_ptr<xAOD::ShallowAuxContainer> shallowAux(shallowcopy.second); + + // Connect the copied clusters to their originals + xAOD::setOriginalObjectLink(*readHandleClusters, *outCaloClus); + if(m_updateMode) { - ccl = read_handle_clusters.get(); - //if(evtStore()->retrieve(ccl,m_clusterKey).isFailure()) + const xAOD::CaloClusterContainer* ccl = shallowcopy.first; + //ccl = readHandleClusters.cptr(); std::unique_ptr<std::vector<float> > subtractedE(new std::vector<float>()); subtractedE->reserve(ccl->size()); - //Decoration TODO: check for migration + //Decoration via SG::AuxElement::Decorator should still work in MT code (that seems from browsing the code) SG::AuxElement::Decorator< float > decorator("HISubtractedE"); for(xAOD::CaloClusterContainer::const_iterator itr=ccl->begin(); itr!=ccl->end(); itr++) { const xAOD::CaloCluster* cl=*itr; xAOD::IParticle::FourMom_t p4; - m_subtractorTool->Subtract(p4,cl,shape,es_index,m_modulatorTool,eshape); + m_subtractorTool->subtract(p4,cl,shape,es_index,m_modulatorTool,eshape); subtractedE->push_back(p4.E()); decorator(*cl)=p4.E(); } } else { - xAOD::CaloClusterContainer* ccl=0; - ccl = read_handle_clusters.get(); + xAOD::CaloClusterContainer* ccl = shallowcopy.first; for(xAOD::CaloClusterContainer::iterator itr=ccl->begin(); itr!=ccl->end(); itr++) { xAOD::CaloCluster* cl=*itr; xAOD::IParticle::FourMom_t p4; - if(m_setMoments) m_subtractorTool->SubtractWithMoments(cl, shape, es_index, m_modulatorTool, eshape); + if(m_setMoments) m_subtractorTool->subtractWithMoments(cl, shape, es_index, m_modulatorTool, eshape); else { - m_subtractorTool->Subtract(p4,cl,shape,es_index,m_modulatorTool,eshape); + m_subtractorTool->subtract(p4,cl,shape,es_index,m_modulatorTool,eshape); HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedClusterState()); } } @@ -98,10 +108,7 @@ int HIClusterSubtraction::execute() const { ATH_MSG_DEBUG(" Applying correction = " << (*toolIt)->name() ); CHECK((*toolIt)->execute(Gaudi::Hive::currentContext(), ccl), 1); - //Hibryd merging between commit c2aeaed0 to master and 5af8a733 to 21.0 - //eventually needs to be changed to following for r21: - //CHECK((*toolIt)->execute(ccl), 1); }//End loop over correction tools - }*/ + } return 0; } -- GitLab From d0b20c2ab933bdcba8d0ca39e291d6e90d53c195 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Fri, 15 May 2020 02:18:22 -0500 Subject: [PATCH 010/459] CaloCluster ShallowCopy set for store and retrieval, new HIJetConstituentModifier included in the compfactory and python scheduling modified to include it --- .../Root/HIJetConstituentModifier.cxx | 2 ++ .../HIJetRec/python/HIJetRecUtils.py | 11 ++++++ .../HIJetRec/share/HIJetRec_jobOptions.py | 3 +- .../HIJetRec/src/HIClusterSubtraction.cxx | 36 ++++++++++++------- .../HIJetRec/src/HIClusterSubtraction.h | 4 ++- .../src/components/HIJetRec_entries.cxx | 3 +- ...MonitoringJobOptions_forRecExCommission.py | 1 + 7 files changed, 44 insertions(+), 16 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifier.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifier.cxx index 2839c52566c..71d3c353ff6 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifier.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifier.cxx @@ -18,6 +18,8 @@ HIJetConstituentModifier::HIJetConstituentModifier(const std::string& myname): J StatusCode HIJetConstituentModifier::initialize(){ + //Shallow copy key automatically built from the cluster key + m_clusterKey = m_clusterKey.key() + ".shallowCopy"; ATH_CHECK( m_clusterKey.initialize() ); return StatusCode::SUCCESS; diff --git a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py index 345e86b5171..3c9cb8e9cfb 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py @@ -207,6 +207,17 @@ def ApplySubtractionToClusters(**kwargs) : jtm.jetrecs += [theAlg] jtm.HIJetRecs+=[theAlg] +def GetConstituentsModifierTool(**kwargs) : + #For the cluster key, same exact logic as used for ApplySubtractionToClusters + if 'cluster_key' in kwargs.keys() : cluster_key=kwargs['cluster_key'] + else : cluster_key=HIJetFlags.HIClusterKey() + + HIJetConstituentModifier=CompFactory.HIJetConstituentModifier + toolName='HIJetConstituentModifierTool' + if 'name' in kwargs.keys() : toolName = kwargs['name'] + cmod=HIJetConstituentModifier(toolName) + cmod.ClusterKey=cluster_key + return cmod def AddIteration(seed_container,shape_name, **kwargs) : diff --git a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py index 6ffa3c145f0..e3b1fae2f7e 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py @@ -190,7 +190,8 @@ for k in jtm.jetrecs : in_name=k.OutputContainer out_name=in_name.replace("_%s" % unsubtr_suffix,"") #>slight tweak in case R=1.0 jets are requestd, add some substructure tools - modifiers=GetHIModifierList(out_name,hi_tools) + modifiers=GetConstituentsModifierTool(name="HIJetConstituentModifierTool", cluster_key=ClusterKey) + modifiers+=GetHIModifierList(out_name,hi_tools) if '10HIJets' in k.name() : from JetSubStructureMomentTools.JetSubStructureMomentToolsConf import KtDeltaRTool jtm += KtDeltaRTool('ktdr10',JetRadius =1.0) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx index 4c4678aa96d..38dffbe0f05 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx @@ -14,7 +14,6 @@ #include "StoreGate/ReadHandle.h" #include "StoreGate/WriteHandle.h" -class ISvcLocator; //********************************************************************** HIClusterSubtraction::HIClusterSubtraction(std::string name) : asg::AsgTool(name)//, @@ -25,9 +24,12 @@ HIClusterSubtraction::HIClusterSubtraction(std::string name) : asg::AsgTool(name StatusCode HIClusterSubtraction::initialize() { + //New key for the shallow copy automatically built from the cluster key + m_outClusterKey = m_inClusterKey.key() + ".shallowCopy"; //Keys initialization ATH_CHECK( m_eventShapeKey.initialize() ); - ATH_CHECK( m_clusterKey.initialize() ); + ATH_CHECK( m_inClusterKey.initialize() ); + ATH_CHECK( m_outClusterKey.initialize() ); for (auto tool : m_clusterCorrectionTools) { @@ -55,7 +57,7 @@ int HIClusterSubtraction::execute() const CHECK(m_modulatorTool->getShape(eshape), 1); //New implementation: make a shallow copy of original HIClusters and apply subtraction to clusters in the new container - SG::ReadHandle<xAOD::CaloClusterContainer> readHandleClusters ( m_clusterKey ); + SG::ReadHandle<xAOD::CaloClusterContainer> readHandleClusters ( m_inClusterKey ); ATH_MSG_DEBUG("Shallow-copying HIClusters"); @@ -65,22 +67,23 @@ int HIClusterSubtraction::execute() const //shallowcopy.second->setShallowIO(m_shallowIO); // Make sure that memory is managed safely - std::unique_ptr<xAOD::CaloClusterContainer> outCaloClus(shallowcopy.first); - std::unique_ptr<xAOD::ShallowAuxContainer> shallowAux(shallowcopy.second); + //std::unique_ptr<xAOD::CaloClusterContainer> outCaloClus(shallowcopy.first); + //std::unique_ptr<xAOD::ShallowAuxContainer> shallowAux(shallowcopy.second); // Connect the copied clusters to their originals - xAOD::setOriginalObjectLink(*readHandleClusters, *outCaloClus); + //xAOD::setOriginalObjectLink(*readHandleClusters, *outCaloClus); + // Now a handle to write the shallow Copy + SG::WriteHandle<xAOD::CaloClusterContainer> writeHandleShallowClusters ( m_outClusterKey ); + //xAOD::CaloClusterContainer* ccl = shallowcopy.first; if(m_updateMode) { - const xAOD::CaloClusterContainer* ccl = shallowcopy.first; - //ccl = readHandleClusters.cptr(); std::unique_ptr<std::vector<float> > subtractedE(new std::vector<float>()); - subtractedE->reserve(ccl->size()); + subtractedE->reserve(shallowcopy.first->size()); //Decoration via SG::AuxElement::Decorator should still work in MT code (that seems from browsing the code) SG::AuxElement::Decorator< float > decorator("HISubtractedE"); - for(xAOD::CaloClusterContainer::const_iterator itr=ccl->begin(); itr!=ccl->end(); itr++) + for(xAOD::CaloClusterContainer::const_iterator itr=shallowcopy.first->begin(); itr!=shallowcopy.first->end(); itr++) { const xAOD::CaloCluster* cl=*itr; xAOD::IParticle::FourMom_t p4; @@ -91,8 +94,7 @@ int HIClusterSubtraction::execute() const } else { - xAOD::CaloClusterContainer* ccl = shallowcopy.first; - for(xAOD::CaloClusterContainer::iterator itr=ccl->begin(); itr!=ccl->end(); itr++) + for(xAOD::CaloClusterContainer::iterator itr=shallowcopy.first->begin(); itr!=shallowcopy.first->end(); itr++) { xAOD::CaloCluster* cl=*itr; xAOD::IParticle::FourMom_t p4; @@ -107,8 +109,16 @@ int HIClusterSubtraction::execute() const toolIt != m_clusterCorrectionTools.end(); toolIt++) { ATH_MSG_DEBUG(" Applying correction = " << (*toolIt)->name() ); - CHECK((*toolIt)->execute(Gaudi::Hive::currentContext(), ccl), 1); + CHECK((*toolIt)->execute(Gaudi::Hive::currentContext(), shallowcopy.first), 1); }//End loop over correction tools } + auto unique_first_copy = xAOD::prepareElementForShallowCopy(shallowcopy.first); + auto unique_second_copy = xAOD::prepareElementForShallowCopy(shallowcopy.second); + xAOD::setOriginalObjectLink(*readHandleClusters, *unique_first_copy); + + if(writeHandleShallowClusters.record ( std::move(unique_first_copy), std::move(unique_second_copy)).isFailure() ){ + ATH_MSG_ERROR("Unable to write Shallow Copy containers for event shape with key: " << m_outClusterKey.key()); + return 1; + } return 0; } diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h index 44e53ca88ff..bb5d1a2f458 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h @@ -48,7 +48,9 @@ public: private: /// \brief Name of input cluster container - SG::ReadHandleKey< xAOD::CaloClusterContainer > m_clusterKey { this, "ClusterKey", "ClusterKey", "Name of the input Cluster Container"}; + SG::ReadHandleKey< xAOD::CaloClusterContainer > m_inClusterKey { this, "ClusterKey", "ClusterKey", "Name of the input Cluster Container"}; + /// |brief New writeHandleKey to store the shallow copy used for new CaloClusterTreatment + SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outClusterKey { this, "ClusterKey", "ClusterKey", "Name of the input Cluster Container"}; /// \brief Name of HIEventShapeContainer defining background SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_eventShapeKey { this, "EventShapeKey", "EventShapeKey", "Name of HIEventShapeContainer defining background"}; diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/components/HIJetRec_entries.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/components/HIJetRec_entries.cxx index ac457b88e17..9cb82abccee 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/components/HIJetRec_entries.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/components/HIJetRec_entries.cxx @@ -8,6 +8,7 @@ #include "HIJetRec/HIEventShapeJetIteration.h" #include "HIJetRec/HIJetClusterSubtractorTool.h" #include "HIJetRec/HIJetConstituentSubtractionTool.h" +#include "HIJetRec/HIJetConstituentModifier.h" #include "HIJetRec/HIJetDRAssociationTool.h" #include "HIJetRec/HIJetMaxOverMeanTool.h" #include "HIJetRec/HIJetDiscriminatorTool.h" @@ -24,10 +25,10 @@ DECLARE_COMPONENT( HISubtractedCellMakerTool ) DECLARE_COMPONENT( HIEventShapeJetIteration ) DECLARE_COMPONENT( HIJetConstituentSubtractionTool ) +DECLARE_COMPONENT( HIJetConstituentModifier ) DECLARE_COMPONENT( HIJetClusterSubtractorTool ) DECLARE_COMPONENT( HIJetDRAssociationTool ) DECLARE_COMPONENT( HIJetMaxOverMeanTool ) DECLARE_COMPONENT( HIJetDiscriminatorTool ) DECLARE_COMPONENT( HIJetSignificanceTool ) DECLARE_COMPONENT( HIUEModulatorTool ) - diff --git a/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions_forRecExCommission.py b/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions_forRecExCommission.py index 7451e62b3f6..85bce8ac765 100644 --- a/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions_forRecExCommission.py +++ b/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions_forRecExCommission.py @@ -46,6 +46,7 @@ from TrigT1CTMonitoring.TrigT1CTMonitoringConfig import * from AthenaCommon.AppMgr import ToolSvc as toolSvc from TrigT1CTMonitoring.TrigT1CTMonitoringConf import TrigT1CTMonitoring__BSMonitoring as BSMon +isOnline=False #-----------ONLINE CODE--------------------- if isOnline and jp.ConcurrencyFlags.NumThreads() == 0: #from TrigServices.TrigServicesConf import TrigMonTHistSvc -- GitLab From 0e9b5c68ca16047f5ed4a27ad13608540e6a329e Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Mon, 18 May 2020 09:57:48 -0500 Subject: [PATCH 011/459] HIJetRec Flags rules now the DoCellBased subtraction + modified the name of new tool to comply w/ ATLAS rules + other fixings --- ...ifier.h => HIJetConstituentModifierTool.h} | 10 +-- ...r.cxx => HIJetConstituentModifierTool.cxx} | 10 ++- .../Root/HIJetConstituentSubtractionTool.cxx | 75 +++++++++---------- .../HIJetRec/python/HIJetRecFlags.py | 4 +- .../HIJetRec/python/HIJetRecUtils.py | 7 +- .../HIJetRec/share/HIJetRec_jobOptions.py | 10 +-- .../HIJetRec/src/HIClusterSubtraction.cxx | 16 ++-- .../HIJetRec/src/HIClusterSubtraction.h | 2 +- .../src/components/HIJetRec_entries.cxx | 4 +- 9 files changed, 70 insertions(+), 68 deletions(-) rename Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/{HIJetConstituentModifier.h => HIJetConstituentModifierTool.h} (77%) rename Reconstruction/HeavyIonRec/HIJetRec/Root/{HIJetConstituentModifier.cxx => HIJetConstituentModifierTool.cxx} (82%) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifier.h b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifierTool.h similarity index 77% rename from Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifier.h rename to Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifierTool.h index 63334d0ae5e..06363650528 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifier.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifierTool.h @@ -3,8 +3,8 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -#ifndef HIJETREC_HIJETCONSTITUENTMODIFIER_H -#define HIJETREC_HIJETCONSTITUENTMODIFIER_H +#ifndef HIJETREC_HIJETCONSTITUENTMODIFIERTOOL_H +#define HIJETREC_HIJETCONSTITUENTMODIFIERTOOL_H /////////////////////////////////////////////////////// /// \class HIJetConstituentModifier /// \author R.Longo - riccardo.longo@cern.ch @@ -20,14 +20,14 @@ #include "StoreGate/ReadHandleKey.h" #include "StoreGate/WriteHandleKey.h" -class HIJetConstituentModifier : public JetModifierBase { +class HIJetConstituentModifierTool : public JetModifierBase { - ASG_TOOL_CLASS(HIJetConstituentModifier, IJetModifier); + ASG_TOOL_CLASS(HIJetConstituentModifierTool, IJetModifier); public: // Constructor from tool name. - HIJetConstituentModifier(const std::string& myname); + HIJetConstituentModifierTool(const std::string& myname); virtual StatusCode initialize() override; // Inherited method to modify a jet. diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifier.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx similarity index 82% rename from Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifier.cxx rename to Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx index 71d3c353ff6..450333afab0 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifier.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#include "HIJetRec/HIJetConstituentModifier.h" +#include "HIJetRec/HIJetConstituentModifierTool.h" #include "HIJetRec/HIJetRecDefs.h" #include "xAODJet/JetConstituentVector.h" #include "xAODCaloEvent/CaloClusterContainer.h" @@ -12,11 +12,11 @@ #include "StoreGate/ReadHandle.h" -HIJetConstituentModifier::HIJetConstituentModifier(const std::string& myname): JetModifierBase(myname) +HIJetConstituentModifierTool::HIJetConstituentModifierTool(const std::string& myname): JetModifierBase(myname) { } -StatusCode HIJetConstituentModifier::initialize(){ +StatusCode HIJetConstituentModifierTool::initialize(){ //Shallow copy key automatically built from the cluster key m_clusterKey = m_clusterKey.key() + ".shallowCopy"; @@ -25,7 +25,7 @@ StatusCode HIJetConstituentModifier::initialize(){ return StatusCode::SUCCESS; } -int HIJetConstituentModifier::modifyJet(xAOD::Jet& jet) const { +int HIJetConstituentModifierTool::modifyJet(xAOD::Jet& jet) const { const xAOD::JetConstituentVector constituents = jet.getConstituents(); std::vector<size_t> cluster_indices; @@ -57,7 +57,9 @@ int HIJetConstituentModifier::modifyJet(xAOD::Jet& jet) const { { auto cl=ccl->at(index); jet.addConstituent(cl); + ATH_MSG_INFO("Cluster Pt(): " << cl->p4(HIJetRec::subtractedClusterState()).Pt()); subtrP4=cl->p4(HIJetRec::subtractedClusterState()); + ATH_MSG_INFO("SubtrP4 Pt(): " << subtrP4.Pt()); } jet4vec.SetCoordinates(subtrP4.Pt(),subtrP4.Eta(),subtrP4.Phi(),subtrP4.M()); jet.setJetP4(jet4vec); diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx index c4f4202b760..cb70d1f124e 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx @@ -39,20 +39,18 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con //retrieve UE //Introduction of a read handle for the HIShapeContainer - SG::ReadHandle<xAOD::HIEventShapeContainer> read_handle_evtShape ( m_eventShapeKey ); + SG::ReadHandle<xAOD::HIEventShapeContainer> readHandleEvtShape ( m_eventShapeKey ); const xAOD::HIEventShapeContainer* shape=nullptr; const HIEventShapeIndex* es_index=nullptr; if(m_eventShapeKey.key().compare("") != 0) { - //if(evtStore()->retrieve(shape,EventShapeKey()).isFailure()) - if (!read_handle_evtShape.isValid()) + if (!readHandleEvtShape.isValid()) { ATH_MSG_ERROR("Could not retrieve input HIEventShape " << m_eventShapeKey.key() ); return StatusCode::FAILURE; } - shape = read_handle_evtShape.get(); /** TODO check if this is neeed **/ - //HIEventShapeMap is a c++ map that neeeds the string key to identify the paired object + shape = readHandleEvtShape.get(); es_index=HIEventShapeMap::getIndex(m_eventShapeKey.key()); if(es_index==nullptr) { @@ -73,17 +71,16 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con const xAOD::VertexContainer* vertices=nullptr; //Introduction of a read handle for the HIShapeContainer - SG::ReadHandle<xAOD::VertexContainer> read_handle_vertexContainer ( m_vertexContainer ); + SG::ReadHandle<xAOD::VertexContainer> readHandleVertexContainer ( m_vertexContainer ); if(m_originCorrection) { - if(!read_handle_vertexContainer.isValid()) + if(!readHandleVertexContainer.isValid()) { ATH_MSG_ERROR("Could not retrieve VertexContainer " << m_vertexContainer.key()); return StatusCode::FAILURE; } - //if(evtStore()->retrieve(vertices,m_vertexContainer).isFailure()) - vertices = read_handle_vertexContainer.get(); + vertices = readHandleVertexContainer.get(); for ( size_t iVertex = 0; iVertex < vertices->size(); ++iVertex ) { if(vertices->at(iVertex)->vertexType() == xAOD::VxType::PriVtx) @@ -136,36 +133,36 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con m_subtractorTool->subtract(p4_cl,itr->rawConstituent(),shape,es_index,m_modulatorTool, eshape); //modifies p4_cl to be constituent 4-vector AFTER subtraction if(m_originCorrection) { - const xAOD::CaloCluster* cl=static_cast<const xAOD::CaloCluster*>(itr->rawConstituent()); - float mag = 0; - if(cl->isAvailable<float>("HIMag")) mag=cl->auxdataConst<float>("HIMag"); - else - { - double cm_mag=0; - if(cl->retrieveMoment (xAOD::CaloCluster::CENTER_MAG, cm_mag)) mag=cm_mag; - } - if(mag!=0.) - { - float eta0=cl->eta0(); - float phi0=cl->phi0(); - float radius=mag/std::cosh(eta0); - xAOD::IParticle::FourMom_t p4_pos; - p4_pos.SetX(radius*std::cos(phi0)-origin->x()); - p4_pos.SetY(radius*std::sin(phi0)-origin->y()); - p4_pos.SetZ(radius*std::sinh(eta0)-origin->z()); - - double deta=p4_pos.Eta()-eta0; - double dphi=p4_pos.Phi()-phi0; - //adjust in case eta/phi are flipped in case of neg E clusters - //this method is agnostic wrt convention - if(p4_cl.Eta()*eta0 <0.) deta*=-1; - - double eta_prime=p4_cl.Eta()+deta; - double phi_prime=p4_cl.Phi()+dphi; - double e_subtr=p4_cl.E(); - p4_cl.SetPtEtaPhiE(e_subtr/std::cosh(eta_prime),eta_prime,phi_prime,e_subtr); - } - else missingMoment=true; + const xAOD::CaloCluster* cl=static_cast<const xAOD::CaloCluster*>(itr->rawConstituent()); + float mag = 0; + if(cl->isAvailable<float>("HIMag")) mag=cl->auxdataConst<float>("HIMag"); + else + { + double cm_mag=0; + if(cl->retrieveMoment (xAOD::CaloCluster::CENTER_MAG, cm_mag)) mag=cm_mag; + } + if(mag!=0.) + { + float eta0=cl->eta0(); + float phi0=cl->phi0(); + float radius=mag/std::cosh(eta0); + xAOD::IParticle::FourMom_t p4_pos; + p4_pos.SetX(radius*std::cos(phi0)-origin->x()); + p4_pos.SetY(radius*std::sin(phi0)-origin->y()); + p4_pos.SetZ(radius*std::sinh(eta0)-origin->z()); + + double deta=p4_pos.Eta()-eta0; + double dphi=p4_pos.Phi()-phi0; + //adjust in case eta/phi are flipped in case of neg E clusters + //this method is agnostic wrt convention + if(p4_cl.Eta()*eta0 <0.) deta*=-1; + + double eta_prime=p4_cl.Eta()+deta; + double phi_prime=p4_cl.Phi()+dphi; + double e_subtr=p4_cl.E(); + p4_cl.SetPtEtaPhiE(e_subtr/std::cosh(eta_prime),eta_prime,phi_prime,e_subtr); + } + else missingMoment=true; } p4_subtr+=p4_cl; diff --git a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecFlags.py b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecFlags.py index d7a8b43435c..b3aeaa257c9 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecFlags.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecFlags.py @@ -100,9 +100,9 @@ class AntiKtRValues(JobProperty): class DoCellBasedSubtraction(JobProperty): """ option to use cell based subtraction """ - statusOn = True + statusOn = False allowedTypes = ['bool'] - StoredValue = True + StoredValue = False class HarmonicsForSubtraction(JobProperty): """ List of flow harmonics applied to jet subtraction diff --git a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py index 3c9cb8e9cfb..9a780a90caa 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py @@ -212,10 +212,12 @@ def GetConstituentsModifierTool(**kwargs) : if 'cluster_key' in kwargs.keys() : cluster_key=kwargs['cluster_key'] else : cluster_key=HIJetFlags.HIClusterKey() - HIJetConstituentModifier=CompFactory.HIJetConstituentModifier + print ('Cluster Key %s' % cluster_key) + HIJetConstituentModifierTool=CompFactory.HIJetConstituentModifierTool toolName='HIJetConstituentModifierTool' if 'name' in kwargs.keys() : toolName = kwargs['name'] - cmod=HIJetConstituentModifier(toolName) + print ('Toolname ConstModif %s' % toolName) + cmod=HIJetConstituentModifierTool(toolName) cmod.ClusterKey=cluster_key return cmod @@ -394,6 +396,7 @@ def GetHIModifierList(coll_name='AntiKt4HIJets',prepend_tools=[],append_tools=[] if coll_name not in jtm.HICalibMap.keys() : print ('Calibration for R=%d not available using default R=0.4 calibration') coll_name='AntiKt4HIJets' + mod_list=prepend_tools mod_list+=[jtm.HICalibMap[coll_name]] mod_list+=jtm.modifiersMap['HI'] diff --git a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py index e3b1fae2f7e..3978413969c 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py @@ -39,8 +39,8 @@ if not jetFlags.useTruth(): jetFlags.useTruth.set_Value_and_Lock(is_mc_or_overlay) -#Tower level subtraction -HIJetFlags.DoCellBasedSubtraction.set_Value_and_Lock(False) +#Tower level subtraction - made it false by default to avoid confusion +#HIJetFlags.DoCellBasedSubtraction.set_Value_and_Lock(False) jetFlags.useTracks.set_Value_and_Lock(True) #HIP mode @@ -178,7 +178,7 @@ if not HIJetFlags.DoCellBasedSubtraction(): #HIJetFlags.IteratedEventShapeKey=iter_egamma.OutputEventShapeKey #Subtraction for egamma and to get layers -ApplySubtractionToClusters(name="HIClusterSubtraction_egamma", event_shape_key=cell_level_shape_key, cluster_key=ClusterKey, modulator=modulator1, CalculateMoments=True, useClusters=False) +#ApplySubtractionToClusters(name="HIClusterSubtraction_egamma", event_shape_key=cell_level_shape_key, cluster_key=ClusterKey, modulator=modulator1, CalculateMoments=True, useClusters=False) #Cluster subtraction for jets ApplySubtractionToClusters(event_shape_key=HIJetFlags.IteratedEventShapeKey(), update_only=True, cluster_key=ClusterKey, modulator=modulator1, CalculateMoments=False, useClusters=True) ### @@ -190,8 +190,8 @@ for k in jtm.jetrecs : in_name=k.OutputContainer out_name=in_name.replace("_%s" % unsubtr_suffix,"") #>slight tweak in case R=1.0 jets are requestd, add some substructure tools - modifiers=GetConstituentsModifierTool(name="HIJetConstituentModifierTool", cluster_key=ClusterKey) - modifiers+=GetHIModifierList(out_name,hi_tools) + hi_tools+=GetConstituentsModifierTool(name="HIJetConstituentModifierTool", cluster_key=ClusterKey) + modifiers=GetHIModifierList(out_name,hi_tools) if '10HIJets' in k.name() : from JetSubStructureMomentTools.JetSubStructureMomentToolsConf import KtDeltaRTool jtm += KtDeltaRTool('ktdr10',JetRadius =1.0) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx index 38dffbe0f05..ff12cf95b8e 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx @@ -55,6 +55,7 @@ int HIClusterSubtraction::execute() const const xAOD::HIEventShape* eshape = nullptr; CHECK(m_modulatorTool->getShape(eshape), 1); + ATH_MSG_DEBUG("HIClusterSubtraction creating key for ShallowCopy! "); //New implementation: make a shallow copy of original HIClusters and apply subtraction to clusters in the new container SG::ReadHandle<xAOD::CaloClusterContainer> readHandleClusters ( m_inClusterKey ); @@ -66,12 +67,6 @@ int HIClusterSubtraction::execute() const /// Set whether only the overriden parameters should be written out - default is true //shallowcopy.second->setShallowIO(m_shallowIO); - // Make sure that memory is managed safely - //std::unique_ptr<xAOD::CaloClusterContainer> outCaloClus(shallowcopy.first); - //std::unique_ptr<xAOD::ShallowAuxContainer> shallowAux(shallowcopy.second); - - // Connect the copied clusters to their originals - //xAOD::setOriginalObjectLink(*readHandleClusters, *outCaloClus); // Now a handle to write the shallow Copy SG::WriteHandle<xAOD::CaloClusterContainer> writeHandleShallowClusters ( m_outClusterKey ); //xAOD::CaloClusterContainer* ccl = shallowcopy.first; @@ -98,7 +93,10 @@ int HIClusterSubtraction::execute() const { xAOD::CaloCluster* cl=*itr; xAOD::IParticle::FourMom_t p4; - if(m_setMoments) m_subtractorTool->subtractWithMoments(cl, shape, es_index, m_modulatorTool, eshape); + + if(m_setMoments) { + m_subtractorTool->subtractWithMoments(cl, shape, es_index, m_modulatorTool, eshape); + } else { m_subtractorTool->subtract(p4,cl,shape,es_index,m_modulatorTool,eshape); @@ -108,12 +106,14 @@ int HIClusterSubtraction::execute() const for(ToolHandleArray<CaloClusterCollectionProcessor>::const_iterator toolIt=m_clusterCorrectionTools.begin(); toolIt != m_clusterCorrectionTools.end(); toolIt++) { - ATH_MSG_DEBUG(" Applying correction = " << (*toolIt)->name() ); + ATH_MSG_INFO(" Applying correction = " << (*toolIt)->name() ); CHECK((*toolIt)->execute(Gaudi::Hive::currentContext(), shallowcopy.first), 1); }//End loop over correction tools } + auto unique_first_copy = xAOD::prepareElementForShallowCopy(shallowcopy.first); auto unique_second_copy = xAOD::prepareElementForShallowCopy(shallowcopy.second); + xAOD::setOriginalObjectLink(*readHandleClusters, *unique_first_copy); if(writeHandleShallowClusters.record ( std::move(unique_first_copy), std::move(unique_second_copy)).isFailure() ){ diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h index bb5d1a2f458..8bf18543505 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h @@ -50,7 +50,7 @@ private: /// \brief Name of input cluster container SG::ReadHandleKey< xAOD::CaloClusterContainer > m_inClusterKey { this, "ClusterKey", "ClusterKey", "Name of the input Cluster Container"}; /// |brief New writeHandleKey to store the shallow copy used for new CaloClusterTreatment - SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outClusterKey { this, "ClusterKey", "ClusterKey", "Name of the input Cluster Container"}; + SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outClusterKey { this, "OutClusterKey", "ClusterKey", "Name of the input Cluster Container"}; /// \brief Name of HIEventShapeContainer defining background SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_eventShapeKey { this, "EventShapeKey", "EventShapeKey", "Name of HIEventShapeContainer defining background"}; diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/components/HIJetRec_entries.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/components/HIJetRec_entries.cxx index 9cb82abccee..1baa0ad506f 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/components/HIJetRec_entries.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/components/HIJetRec_entries.cxx @@ -8,7 +8,7 @@ #include "HIJetRec/HIEventShapeJetIteration.h" #include "HIJetRec/HIJetClusterSubtractorTool.h" #include "HIJetRec/HIJetConstituentSubtractionTool.h" -#include "HIJetRec/HIJetConstituentModifier.h" +#include "HIJetRec/HIJetConstituentModifierTool.h" #include "HIJetRec/HIJetDRAssociationTool.h" #include "HIJetRec/HIJetMaxOverMeanTool.h" #include "HIJetRec/HIJetDiscriminatorTool.h" @@ -20,12 +20,12 @@ DECLARE_COMPONENT( HIClusterMaker ) DECLARE_COMPONENT( HIJetCellSubtractorTool ) DECLARE_COMPONENT( HIClusterSubtraction ) DECLARE_COMPONENT( HISubtractedCellMakerTool ) +DECLARE_COMPONENT( HIJetConstituentModifierTool ) #endif DECLARE_COMPONENT( HIEventShapeJetIteration ) DECLARE_COMPONENT( HIJetConstituentSubtractionTool ) -DECLARE_COMPONENT( HIJetConstituentModifier ) DECLARE_COMPONENT( HIJetClusterSubtractorTool ) DECLARE_COMPONENT( HIJetDRAssociationTool ) DECLARE_COMPONENT( HIJetMaxOverMeanTool ) -- GitLab From 06d47b04eb38da650fa0b03428b20714adf67b7d Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 19 May 2020 22:37:17 -0500 Subject: [PATCH 012/459] New constituent modifier tool now in shape and running + minor changes --- .../Root/HIJetConstituentModifierTool.cxx | 12 ++++++------ .../HIJetRec/python/HIJetRecUtils.py | 3 ++- .../HIJetRec/share/HIJetRec_jobOptions.py | 14 +++++++------- .../HIJetRec/src/HIClusterSubtraction.cxx | 17 +++++++---------- .../HIJetRec/src/HIClusterSubtraction.h | 2 +- .../HIJetRec/src/HISubtractedCellMakerTool.cxx | 12 +++--------- .../src/components/HIJetRec_entries.cxx | 3 +-- 7 files changed, 27 insertions(+), 36 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx index 450333afab0..8eef344c300 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx @@ -18,8 +18,9 @@ HIJetConstituentModifierTool::HIJetConstituentModifierTool(const std::string& my StatusCode HIJetConstituentModifierTool::initialize(){ + ATH_MSG_INFO("Initializing HIJetConstituentModifierTool"); //Shallow copy key automatically built from the cluster key - m_clusterKey = m_clusterKey.key() + ".shallowCopy"; + //m_clusterKey += ".shallowCopy"; ATH_CHECK( m_clusterKey.initialize() ); return StatusCode::SUCCESS; @@ -30,7 +31,6 @@ int HIJetConstituentModifierTool::modifyJet(xAOD::Jet& jet) const { const xAOD::JetConstituentVector constituents = jet.getConstituents(); std::vector<size_t> cluster_indices; cluster_indices.reserve(constituents.size()); - for (auto citer = constituents.begin(); citer != constituents.end(); ++citer) { cluster_indices.push_back(citer->rawConstituent()->index()); @@ -52,14 +52,14 @@ int HIJetConstituentModifierTool::modifyJet(xAOD::Jet& jet) const { xAOD::JetFourMom_t jet4vec; //need to add usual safety checks on cluster container access SG::ReadHandle<xAOD::CaloClusterContainer> readHandleSubtractedClusters ( m_clusterKey ); - const xAOD::CaloClusterContainer* ccl=readHandleSubtractedClusters.cptr(); + + const xAOD::CaloClusterContainer* ccl=readHandleSubtractedClusters.get(); + for(auto index : cluster_indices) { auto cl=ccl->at(index); jet.addConstituent(cl); - ATH_MSG_INFO("Cluster Pt(): " << cl->p4(HIJetRec::subtractedClusterState()).Pt()); - subtrP4=cl->p4(HIJetRec::subtractedClusterState()); - ATH_MSG_INFO("SubtrP4 Pt(): " << subtrP4.Pt()); + subtrP4+=cl->p4(HIJetRec::subtractedClusterState()); } jet4vec.SetCoordinates(subtrP4.Pt(),subtrP4.Eta(),subtrP4.Phi(),subtrP4.M()); jet.setJetP4(jet4vec); diff --git a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py index 9a780a90caa..f66d4797aca 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py @@ -218,7 +218,8 @@ def GetConstituentsModifierTool(**kwargs) : if 'name' in kwargs.keys() : toolName = kwargs['name'] print ('Toolname ConstModif %s' % toolName) cmod=HIJetConstituentModifierTool(toolName) - cmod.ClusterKey=cluster_key + cmod.ClusterKey=cluster_key+'.shallowCopy' + jtm.add(cmod) return cmod def AddIteration(seed_container,shape_name, **kwargs) : diff --git a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py index 3978413969c..763dadf7637 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py @@ -161,11 +161,6 @@ subtr1=MakeSubtractionTool(iter0.OutputEventShapeKey,moment_name="NoIteration",m #main subtractor subtr2=MakeSubtractionTool(HIJetFlags.IteratedEventShapeKey(),modulator=modulator1) -#put subtraction tool at the FRONT of the jet modifiers list -hi_tools=[subtr1,subtr2] -hi_tools+=GetFlowMomentTools(iter1.OutputEventShapeKey,iter1.ModulationEventShapeKey) - - #==========#==========#==========#==========#==========#========== #special addition for egamma #Downstream egamma jo will call SubtractedCellGetter, it assumes that the container pointed to by @@ -178,9 +173,15 @@ if not HIJetFlags.DoCellBasedSubtraction(): #HIJetFlags.IteratedEventShapeKey=iter_egamma.OutputEventShapeKey #Subtraction for egamma and to get layers -#ApplySubtractionToClusters(name="HIClusterSubtraction_egamma", event_shape_key=cell_level_shape_key, cluster_key=ClusterKey, modulator=modulator1, CalculateMoments=True, useClusters=False) +ApplySubtractionToClusters(name="HIClusterSubtraction_egamma", event_shape_key=cell_level_shape_key, cluster_key=ClusterKey, modulator=modulator1, CalculateMoments=True, useClusters=False) #Cluster subtraction for jets ApplySubtractionToClusters(event_shape_key=HIJetFlags.IteratedEventShapeKey(), update_only=True, cluster_key=ClusterKey, modulator=modulator1, CalculateMoments=False, useClusters=True) + +#put subtraction tool at the FRONT of the jet modifiers list +hi_tools=[subtr1,subtr2] +hi_tools+=GetFlowMomentTools(iter1.OutputEventShapeKey,iter1.ModulationEventShapeKey) +hi_tools+=[GetConstituentsModifierTool(name="HIJetConstituentModifierTool", cluster_key=ClusterKey)] + ### #subtracted algorithms #make main jets from unsubtr collections w/ same R, add modifiers for subtraction @@ -190,7 +191,6 @@ for k in jtm.jetrecs : in_name=k.OutputContainer out_name=in_name.replace("_%s" % unsubtr_suffix,"") #>slight tweak in case R=1.0 jets are requestd, add some substructure tools - hi_tools+=GetConstituentsModifierTool(name="HIJetConstituentModifierTool", cluster_key=ClusterKey) modifiers=GetHIModifierList(out_name,hi_tools) if '10HIJets' in k.name() : from JetSubStructureMomentTools.JetSubStructureMomentToolsConf import KtDeltaRTool diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx index ff12cf95b8e..ec8ba1e6a24 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx @@ -42,11 +42,8 @@ StatusCode HIClusterSubtraction::initialize() int HIClusterSubtraction::execute() const { - //const jet::cellset_t & badcells = badCellMap.cells() ; //retrieve UE - //From here on temporarily commented out code bc needs a dedicated treatment in MT to compile - //In rel 21 we were updating a non-const CaloCalusterContainer. That approach is no more acceptable in Athena MT ATH_MSG_WARNING("HIClusterSubtraction being rebuilt to work in MT - upgrade not yet over! "); const xAOD::HIEventShapeContainer* shape = 0; SG::ReadHandle<xAOD::HIEventShapeContainer> readHandleEvtShape ( m_eventShapeKey ); @@ -60,8 +57,6 @@ int HIClusterSubtraction::execute() const //New implementation: make a shallow copy of original HIClusters and apply subtraction to clusters in the new container SG::ReadHandle<xAOD::CaloClusterContainer> readHandleClusters ( m_inClusterKey ); - ATH_MSG_DEBUG("Shallow-copying HIClusters"); - std::pair<xAOD::CaloClusterContainer*,xAOD::ShallowAuxContainer*> shallowcopy = xAOD::shallowCopyContainer(*readHandleClusters); /// Set whether only the overriden parameters should be written out - default is true @@ -111,12 +106,14 @@ int HIClusterSubtraction::execute() const }//End loop over correction tools } - auto unique_first_copy = xAOD::prepareElementForShallowCopy(shallowcopy.first); - auto unique_second_copy = xAOD::prepareElementForShallowCopy(shallowcopy.second); - - xAOD::setOriginalObjectLink(*readHandleClusters, *unique_first_copy); +// Make sure that memory is managed safely + std::unique_ptr<xAOD::CaloClusterContainer> outClusters(shallowcopy.first); + std::unique_ptr<xAOD::ShallowAuxContainer> shallowAux(shallowcopy.second); - if(writeHandleShallowClusters.record ( std::move(unique_first_copy), std::move(unique_second_copy)).isFailure() ){ + // Connect the copied jets to their originals + xAOD::setOriginalObjectLink(*readHandleClusters, *outClusters); + + if(writeHandleShallowClusters.record ( std::move(outClusters), std::move(shallowAux)).isFailure() ){ ATH_MSG_ERROR("Unable to write Shallow Copy containers for event shape with key: " << m_outClusterKey.key()); return 1; } diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h index 8bf18543505..e2d5250e324 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h @@ -50,7 +50,7 @@ private: /// \brief Name of input cluster container SG::ReadHandleKey< xAOD::CaloClusterContainer > m_inClusterKey { this, "ClusterKey", "ClusterKey", "Name of the input Cluster Container"}; /// |brief New writeHandleKey to store the shallow copy used for new CaloClusterTreatment - SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outClusterKey { this, "OutClusterKey", "ClusterKey", "Name of the input Cluster Container"}; + SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outClusterKey { this, "OutClusterKey", "OutClusterKey", "Name of the input Cluster Container"}; /// \brief Name of HIEventShapeContainer defining background SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_eventShapeKey { this, "EventShapeKey", "EventShapeKey", "Name of HIEventShapeContainer defining background"}; diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HISubtractedCellMakerTool.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HISubtractedCellMakerTool.cxx index 04b80f0cd74..d80316b0603 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HISubtractedCellMakerTool.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HISubtractedCellMakerTool.cxx @@ -56,13 +56,7 @@ StatusCode HISubtractedCellMakerTool::process (CaloCellContainer* theCells, return StatusCode::SUCCESS; } - // FIXME: m_modulatorTool->retrieveShape() is non-const. - // It should be made const in order to be able to safely call it from here. - // However, this method already needs updating to work in MT (and is checked - // above), so just use a const_cast for now to allow this to compile - // when ToolHandle restrictions are enabled. - - IHIUEModulatorTool* modtool_nc = const_cast<IHIUEModulatorTool*> (m_modulatorTool.get()); + auto modtool_nc = m_modulatorTool.get(); CHECK(modtool_nc->retrieveShape()); for(auto pCell : *theCells) @@ -76,8 +70,8 @@ StatusCode HISubtractedCellMakerTool::process (CaloCellContainer* theCells, { if( std::abs(eta) - HICaloRange::getRange().getRangeMax(sample) ) { - double fp_round=(eta > 0.) ? -5e-3 : 5e-3; - bin=index->getIndex(eta+fp_round,sample); + double fp_round=(eta > 0.) ? -5e-3 : 5e-3; + bin=index->getIndex(eta+fp_round,sample); } } diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/components/HIJetRec_entries.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/components/HIJetRec_entries.cxx index 1baa0ad506f..11e9f6706b7 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/components/HIJetRec_entries.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/components/HIJetRec_entries.cxx @@ -20,10 +20,9 @@ DECLARE_COMPONENT( HIClusterMaker ) DECLARE_COMPONENT( HIJetCellSubtractorTool ) DECLARE_COMPONENT( HIClusterSubtraction ) DECLARE_COMPONENT( HISubtractedCellMakerTool ) -DECLARE_COMPONENT( HIJetConstituentModifierTool ) #endif - +DECLARE_COMPONENT( HIJetConstituentModifierTool ) DECLARE_COMPONENT( HIEventShapeJetIteration ) DECLARE_COMPONENT( HIJetConstituentSubtractionTool ) DECLARE_COMPONENT( HIJetClusterSubtractorTool ) -- GitLab From 633a3d8cf2714842bf151e04ab35e9619566e2a4 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Fri, 22 May 2020 16:31:08 -0500 Subject: [PATCH 013/459] Moving Origin correction to HIClusterSubtraction (not yet removed from previous location). Validation still TODO along with further implementations --- .../HIJetRec/HIJetRec/HIJetRecDefs.h | 5 +- .../HIJetRec/share/HIJetRec_jobOptions.py | 2 +- .../HIJetRec/src/HIClusterSubtraction.cxx | 93 +++++++++++++++++-- .../HIJetRec/src/HIClusterSubtraction.h | 7 ++ 4 files changed, 96 insertions(+), 11 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h index 81a9cd5d92a..7c55d1e7b13 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h @@ -20,6 +20,7 @@ namespace HIJetRec{ constexpr xAOD::CaloCluster::State unsubtractedClusterState() {return xAOD::CaloCluster::ALTCALIBRATED;} constexpr xAOD::CaloCluster::State subtractedClusterState() {return xAOD::CaloCluster::UNCALIBRATED;} + constexpr xAOD::CaloCluster::State subtractedPVCorrectedClusterState() {return xAOD::CaloCluster::CALIBRATED;} inline bool inTowerBoundary(float eta0, float phi0, float eta, float phi) { @@ -27,13 +28,13 @@ namespace HIJetRec{ if( 2.*std::abs(xAOD::P4Helpers::deltaPhi(phi0,phi)) > HI::TowerBins::getBinSizePhi() ) return false; return true; } - + inline void setClusterP4(const xAOD::CaloCluster::FourMom_t& p, xAOD::CaloCluster* cl, xAOD::CaloCluster::State s) { float energy=p.Energy(); float eta=p.Eta(); float phi=p.Phi(); - if(energy < 0.) + if(energy < 0.) { eta*=-1.; if(phi > 0.) phi-=M_PI; diff --git a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py index 763dadf7637..1bd0344e89e 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py @@ -173,7 +173,7 @@ if not HIJetFlags.DoCellBasedSubtraction(): #HIJetFlags.IteratedEventShapeKey=iter_egamma.OutputEventShapeKey #Subtraction for egamma and to get layers -ApplySubtractionToClusters(name="HIClusterSubtraction_egamma", event_shape_key=cell_level_shape_key, cluster_key=ClusterKey, modulator=modulator1, CalculateMoments=True, useClusters=False) +#ApplySubtractionToClusters(name="HIClusterSubtraction_egamma", event_shape_key=cell_level_shape_key, cluster_key=ClusterKey, modulator=modulator1, CalculateMoments=True, useClusters=False) #Cluster subtraction for jets ApplySubtractionToClusters(event_shape_key=HIJetFlags.IteratedEventShapeKey(), update_only=True, cluster_key=ClusterKey, modulator=modulator1, CalculateMoments=False, useClusters=True) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx index ec8ba1e6a24..f80bd239c07 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx @@ -10,6 +10,8 @@ #include "xAODCore/ShallowAuxContainer.h" #include "xAODCore/ShallowCopy.h" #include "xAODBase/IParticleHelpers.h" +#include "xAODTracking/Vertex.h" +#include "xAODTracking/VertexContainer.h" #include "StoreGate/ReadHandle.h" #include "StoreGate/WriteHandle.h" @@ -30,6 +32,8 @@ StatusCode HIClusterSubtraction::initialize() ATH_CHECK( m_eventShapeKey.initialize() ); ATH_CHECK( m_inClusterKey.initialize() ); ATH_CHECK( m_outClusterKey.initialize() ); + //Vertex container needs to be initialized only if origin correction will take place + ATH_CHECK( m_vertexContainer.initialize( m_originCorrection ) ); for (auto tool : m_clusterCorrectionTools) { @@ -40,6 +44,42 @@ StatusCode HIClusterSubtraction::initialize() return StatusCode::SUCCESS; } +bool HIClusterSubtraction::doOriginCorrection( xAOD::CaloCluster* cl, const xAOD::Vertex* origin, xAOD::IParticle::FourMom_t& p4_cl ) const{ + //made boolean to return what was "missingMoment" in HIJetConstituentSubtractionTool + bool missingMoment = false; + float mag = 0; + if(cl->isAvailable<float>("HIMag")) mag=cl->auxdataConst<float>("HIMag"); + else + { + double cm_mag=0; + if(cl->retrieveMoment (xAOD::CaloCluster::CENTER_MAG, cm_mag)) mag=cm_mag; + } + if(mag!=0.) + { + float eta0=cl->eta0(); + float phi0=cl->phi0(); + float radius=mag/std::cosh(eta0); + xAOD::IParticle::FourMom_t p4_pos; + p4_pos.SetX(radius*std::cos(phi0)-origin->x()); + p4_pos.SetY(radius*std::sin(phi0)-origin->y()); + p4_pos.SetZ(radius*std::sinh(eta0)-origin->z()); + + double deta=p4_pos.Eta()-eta0; + double dphi=p4_pos.Phi()-phi0; + //adjust in case eta/phi are flipped in case of neg E clusters + //this method is agnostic wrt convention + if(p4_cl.Eta()*eta0 <0.) deta*=-1; + + double eta_prime=p4_cl.Eta()+deta; + double phi_prime=p4_cl.Phi()+dphi; + double e_subtr=p4_cl.E(); + p4_cl.SetPtEtaPhiE(e_subtr/std::cosh(eta_prime),eta_prime,phi_prime,e_subtr); + } + else missingMoment=true; + + return missingMoment; +} + int HIClusterSubtraction::execute() const { //const jet::cellset_t & badcells = badCellMap.cells() ; @@ -56,15 +96,43 @@ int HIClusterSubtraction::execute() const //New implementation: make a shallow copy of original HIClusters and apply subtraction to clusters in the new container SG::ReadHandle<xAOD::CaloClusterContainer> readHandleClusters ( m_inClusterKey ); - std::pair<xAOD::CaloClusterContainer*,xAOD::ShallowAuxContainer*> shallowcopy = xAOD::shallowCopyContainer(*readHandleClusters); - /// Set whether only the overriden parameters should be written out - default is true //shallowcopy.second->setShallowIO(m_shallowIO); - // Now a handle to write the shallow Copy SG::WriteHandle<xAOD::CaloClusterContainer> writeHandleShallowClusters ( m_outClusterKey ); - //xAOD::CaloClusterContainer* ccl = shallowcopy.first; + + // Preparing keys and container to perfrom the origin correction + const xAOD::Vertex* primVertex=nullptr; + const xAOD::VertexContainer* vertices=nullptr; + // ReadHandle to retrieve the vertex container + SG::ReadHandle<xAOD::VertexContainer> readHandleVertexContainer ( m_vertexContainer ); + // Boolean to flag that at least a vertex is present in the vertex container + bool isOriginPossible = true; + // Finding the primary vertex in case origin correction has to be performed + if(m_originCorrection) + { + vertices = readHandleVertexContainer.get(); + for ( size_t iVertex = 0; iVertex < vertices->size(); ++iVertex ) + { + if(vertices->at(iVertex)->vertexType() == xAOD::VxType::PriVtx) + { + primVertex=vertices->at(iVertex); + break; + } + } + if(!primVertex && vertices->size() > 0) + { + ATH_MSG_WARNING("No primary vertices found, using first in container"); + primVertex=vertices->at(0); + } + if(!primVertex && vertices->size() == 0) + { + ATH_MSG_WARNING("No primary vertices found, and vertex container empty. Abortin Origin correction for this event."); + isOriginPossible = false; + } + } + bool missingMoment=false; if(m_updateMode) { @@ -87,17 +155,25 @@ int HIClusterSubtraction::execute() const for(xAOD::CaloClusterContainer::iterator itr=shallowcopy.first->begin(); itr!=shallowcopy.first->end(); itr++) { xAOD::CaloCluster* cl=*itr; - xAOD::IParticle::FourMom_t p4; + xAOD::IParticle::FourMom_t p4; + + //Unsubtracted state record done by the subtractor tool functions. if(m_setMoments) { - m_subtractorTool->subtractWithMoments(cl, shape, es_index, m_modulatorTool, eshape); + //This does also the setClusterP4(p4,cl,HIJetRec::subtractedClusterState()); not clear if/how do origin yet + m_subtractorTool->subtractWithMoments(cl, shape, es_index, m_modulatorTool, eshape); } else { m_subtractorTool->subtract(p4,cl,shape,es_index,m_modulatorTool,eshape); HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedClusterState()); + if(isOriginPossible){ + missingMoment = HIClusterSubtraction::doOriginCorrection( cl, primVertex, p4 ); + HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedPVCorrectedClusterState()); + } } - } + }//End of iterator over CaloClusterContainer + for(ToolHandleArray<CaloClusterCollectionProcessor>::const_iterator toolIt=m_clusterCorrectionTools.begin(); toolIt != m_clusterCorrectionTools.end(); toolIt++) { @@ -105,6 +181,7 @@ int HIClusterSubtraction::execute() const CHECK((*toolIt)->execute(Gaudi::Hive::currentContext(), shallowcopy.first), 1); }//End loop over correction tools } + if(missingMoment) ATH_MSG_WARNING("No origin correction applied, CENTERMAG missing"); // Make sure that memory is managed safely std::unique_ptr<xAOD::CaloClusterContainer> outClusters(shallowcopy.first); @@ -112,7 +189,7 @@ int HIClusterSubtraction::execute() const // Connect the copied jets to their originals xAOD::setOriginalObjectLink(*readHandleClusters, *outClusters); - + if(writeHandleShallowClusters.record ( std::move(outClusters), std::move(shallowAux)).isFailure() ){ ATH_MSG_ERROR("Unable to write Shallow Copy containers for event shape with key: " << m_outClusterKey.key()); return 1; diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h index e2d5250e324..7bf7ad983df 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h @@ -27,6 +27,7 @@ #include <HIJetRec/IHISubtractorTool.h> #include <HIJetRec/IHIUEModulatorTool.h> #include "CaloRec/CaloClusterCollectionProcessor.h" +#include "xAODTracking/VertexContainer.h" #include "StoreGate/ReadHandleKey.h" #include "StoreGate/WriteHandleKey.h" @@ -45,6 +46,8 @@ public: virtual int execute() const; + bool doOriginCorrection( xAOD::CaloCluster* cl, const xAOD::Vertex* origin, xAOD::IParticle::FourMom_t& p4_cl ) const; + private: /// \brief Name of input cluster container @@ -53,6 +56,8 @@ private: SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outClusterKey { this, "OutClusterKey", "OutClusterKey", "Name of the input Cluster Container"}; /// \brief Name of HIEventShapeContainer defining background SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_eventShapeKey { this, "EventShapeKey", "EventShapeKey", "Name of HIEventShapeContainer defining background"}; + /// |brief Name of Vertex Container for origin correction + SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainer { this, "VertexContainer", "PrimaryVertices", "Vertex container for primary vertices"}; // Tool handles ToolHandle<IHISubtractorTool> m_subtractorTool { this, "Subtractor", "HIJetSubtractorToolBase", "Handle to IHISubtractorTool which does calculates subtracted kinematics" }; @@ -62,6 +67,8 @@ private: // Booleans Gaudi::Property< bool > m_setMoments { this, "SetMoments", true, "Set Moments boolean switch"}; Gaudi::Property< bool > m_updateMode { this, "UpdateOnly", false, "Update Mode boolean switch"}; + //Moving the origin correction directly here + Gaudi::Property< bool > m_originCorrection { this, "ApplyOriginCorrection", false, "Apply Origin Correction boolean switch"}; }; #endif -- GitLab From 5779315472cb10d5a0a1229d9c072772f4ecc48f Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Sat, 23 May 2020 17:37:19 -0500 Subject: [PATCH 014/459] Python scripts adapted + few more on c++ side --- .../HIJetRec/python/HIJetRecUtils.py | 5 +++- .../HIJetRec/src/HIClusterSubtraction.cxx | 25 ++++++++++++++++--- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py index f66d4797aca..9b3b6439655 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py @@ -145,13 +145,15 @@ def ApplySubtractionToClusters(**kwargs) : if 'cluster_key' in kwargs.keys() : cluster_key=kwargs['cluster_key'] else : cluster_key=HIJetFlags.HIClusterKey() - if 'modulator' in kwargs.keys() : mod_tool=kwargs['modulator'] else : mod_tool=GetNullModulator() if 'update_only' in kwargs.keys() : update_only = kwargs['update_only'] else : update_only = False + if 'apply_origin_correction' in kwargs.keys() : apply_origin_correction=kwargs['apply_origin_correction'] + else : apply_origin_correction=HIJetFlags.ApplyOriginCorrection() + HIClusterSubtraction=CompFactory.HIClusterSubtraction toolName='HIClusterSubtraction' if 'name' in kwargs.keys() : toolName = kwargs['name'] @@ -161,6 +163,7 @@ def ApplySubtractionToClusters(**kwargs) : theAlg.Subtractor=GetSubtractorTool(**kwargs) theAlg.Modulator=mod_tool theAlg.UpdateOnly=update_only + theAlg.ApplyOriginCorrection=apply_origin_correction do_cluster_moments=False if 'CalculateMoments' in kwargs.keys() : do_cluster_moments=kwargs['CalculateMoments'] diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx index f80bd239c07..ad86bac1a3d 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx @@ -158,20 +158,39 @@ int HIClusterSubtraction::execute() const xAOD::IParticle::FourMom_t p4; //Unsubtracted state record done by the subtractor tool functions. - if(m_setMoments) { - //This does also the setClusterP4(p4,cl,HIJetRec::subtractedClusterState()); not clear if/how do origin yet + //This flag is set to false for HIJetClustersSubtractorTool and true for HIJetCellSubtractorTool, + // but for the second we don't do origin correction. In principle the code is structured to do the same as the + //else for m_setMoments=true and HIJetClustersSubtractorTool, therefore we add the code for origin correction also here m_subtractorTool->subtractWithMoments(cl, shape, es_index, m_modulatorTool, eshape); + if(isOriginPossible && m_originCorrection){ + missingMoment = HIClusterSubtraction::doOriginCorrection( cl, primVertex, p4 ); + HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedPVCorrectedClusterState()); + } } else { m_subtractorTool->subtract(p4,cl,shape,es_index,m_modulatorTool,eshape); HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedClusterState()); + ATH_MSG_INFO("Applying origin correction" + << std::setw(12) << "Before:" + << std::setw(10) << std::setprecision(3) << p4.Pt()*1e-3 + << std::setw(10) << std::setprecision(3) << p4.Eta() + << std::setw(10) << std::setprecision(3) << p4.Phi() + << std::setw(10) << std::setprecision(3) << p4.E()*1e-3 + << std::setw(10) << std::setprecision(3) << p4.M()*1e-3); if(isOriginPossible){ missingMoment = HIClusterSubtraction::doOriginCorrection( cl, primVertex, p4 ); HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedPVCorrectedClusterState()); } - } + ATH_MSG_INFO("Applying origin correction" + << std::setw(12) << "After:" + << std::setw(10) << std::setprecision(3) << p4.Pt()*1e-3 + << std::setw(10) << std::setprecision(3) << p4.Eta() + << std::setw(10) << std::setprecision(3) << p4.Phi() + << std::setw(10) << std::setprecision(3) << p4.E()*1e-3 + << std::setw(10) << std::setprecision(3) << p4.M()*1e-3); + } }//End of iterator over CaloClusterContainer for(ToolHandleArray<CaloClusterCollectionProcessor>::const_iterator toolIt=m_clusterCorrectionTools.begin(); -- GitLab From 5e8da4deb13a4d935c74d22b918aafc2039bd5e9 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Mon, 1 Jun 2020 13:58:23 -0500 Subject: [PATCH 015/459] Corrected key used to write the output shape - mistyped in/out before --- .../HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx index 1dcb08a83f7..555e6036eff 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx @@ -55,6 +55,8 @@ int HIEventShapeJetIteration::execute() const const HIEventShapeIndex* es_index = HIEventShapeMap::getIndex(m_inputEventShapeKey.key()); //New implementation after moving away from mutable + ATH_MSG_INFO("HIEventShapeJetIteration: found index for " << m_inputEventShapeKey.key()); + if(es_index==nullptr) { ATH_MSG_INFO("No HIEventShapeIndex w/ name " << m_inputEventShapeKey.key() << " adding it to the map"); @@ -64,7 +66,9 @@ int HIEventShapeJetIteration::execute() const } const HIEventShapeIndex* other_index = HIEventShapeMap::getIndex(m_outputEventShapeKey.key()); - if(!other_index) HIEventShapeMap::insert( m_inputEventShapeKey.key(), *es_index ); + if(!other_index) { + HIEventShapeMap::getMap()->insert( m_outputEventShapeKey.key(), *es_index ); + } //End of new implementation const xAOD::JetContainer* theCaloJets=0; -- GitLab From 864c5d112a6d804c6d5eb2862be93acdcd8ce164 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 2 Jun 2020 10:52:36 -0500 Subject: [PATCH 016/459] Checks implemented in the new ConstituentModifierTool --- .../HIJetRec/HIJetConstituentModifierTool.h | 4 +++- .../HIJetRec/Root/HIJetConstituentModifierTool.cxx | 13 ++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifierTool.h b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifierTool.h index 06363650528..625cc304a4f 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifierTool.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifierTool.h @@ -16,6 +16,7 @@ #include "JetRec/JetModifierBase.h" #include "xAODCaloEvent/CaloClusterContainer.h" +#include "HIJetRec/IHISubtractorTool.h" #include "StoreGate/ReadHandleKey.h" #include "StoreGate/WriteHandleKey.h" @@ -36,7 +37,8 @@ class HIJetConstituentModifierTool : public JetModifierBase { private: /// \brief Name of input cluster container SG::ReadHandleKey< xAOD::CaloClusterContainer > m_clusterKey { this, "ClusterKey", "ClusterKey", "Name of the input Cluster Container"}; - + /// \brief handle to IHISubtractorTool that determines the subtracted kinematics for each constituent + ToolHandle<IHISubtractorTool> m_subtractorTool { this, "Subtractor", "HIJetSubtractorToolBase", "" }; }; #endif diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx index 8eef344c300..615a1f02949 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx @@ -19,15 +19,14 @@ HIJetConstituentModifierTool::HIJetConstituentModifierTool(const std::string& my StatusCode HIJetConstituentModifierTool::initialize(){ ATH_MSG_INFO("Initializing HIJetConstituentModifierTool"); - //Shallow copy key automatically built from the cluster key - //m_clusterKey += ".shallowCopy"; ATH_CHECK( m_clusterKey.initialize() ); - return StatusCode::SUCCESS; + } int HIJetConstituentModifierTool::modifyJet(xAOD::Jet& jet) const { + float E_min=m_subtractorTool->minEnergyForMoments(); const xAOD::JetConstituentVector constituents = jet.getConstituents(); std::vector<size_t> cluster_indices; cluster_indices.reserve(constituents.size()); @@ -46,6 +45,8 @@ int HIJetConstituentModifierTool::modifyJet(xAOD::Jet& jet) const { if( constituentWeightAcc.isAvailable(jet) ) constituentWeightAcc( jet ).resize(0); //save unsubtracted kinematics as moment if they don’t exist already... + xAOD::IParticle::FourMom_t unsubtrP4; + unsubtrP4 = jet.p4(); jet.setJetP4(HIJetRec::unsubtractedJetState(),jet.jetP4()); xAOD::IParticle::FourMom_t subtrP4; @@ -61,6 +62,12 @@ int HIJetConstituentModifierTool::modifyJet(xAOD::Jet& jet) const { jet.addConstituent(cl); subtrP4+=cl->p4(HIJetRec::subtractedClusterState()); } + + if(subtrP4.E()/std::cosh(subtrP4.Eta()) < E_min) + { + subtrP4=unsubtrP4; + subtrP4*=1e-7;//ghost scale + } jet4vec.SetCoordinates(subtrP4.Pt(),subtrP4.Eta(),subtrP4.Phi(),subtrP4.M()); jet.setJetP4(jet4vec); -- GitLab From b3d77bd5ffbd5e23370ef66c0a1cad2d5101cf65 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 2 Jun 2020 10:54:54 -0500 Subject: [PATCH 017/459] Origin correction removed from HIJetConstituentSubtractionTool.cxx, to be moved in HIClusterSubtraction.cxx --- .../Root/HIJetConstituentSubtractionTool.cxx | 74 +------------------ 1 file changed, 1 insertion(+), 73 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx index cb70d1f124e..ffa4a897ad8 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx @@ -67,35 +67,6 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con return StatusCode::FAILURE; } - const xAOD::Vertex* primVertex=nullptr; - const xAOD::VertexContainer* vertices=nullptr; - - //Introduction of a read handle for the HIShapeContainer - SG::ReadHandle<xAOD::VertexContainer> readHandleVertexContainer ( m_vertexContainer ); - - if(m_originCorrection) - { - if(!readHandleVertexContainer.isValid()) - { - ATH_MSG_ERROR("Could not retrieve VertexContainer " << m_vertexContainer.key()); - return StatusCode::FAILURE; - } - vertices = readHandleVertexContainer.get(); - for ( size_t iVertex = 0; iVertex < vertices->size(); ++iVertex ) - { - if(vertices->at(iVertex)->vertexType() == xAOD::VxType::PriVtx) - { - primVertex=vertices->at(iVertex); - break; - } - } - if(!primVertex) - { - ATH_MSG_WARNING("No primary vertices found, using first in container"); - primVertex=vertices->at(0); - } - } - const xAOD::HIEventShape* eshape = nullptr; if(m_modulatorTool->getShape(eshape).isFailure()) { @@ -117,53 +88,11 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con xAOD::IParticle::FourMom_t p4_cl; xAOD::IParticle::FourMom_t p4_subtr; xAOD::IParticle::FourMom_t p4_unsubtr; - const xAOD::Vertex* origin=nullptr; - if(m_originCorrection) - { - if( !(*ijet)->getAssociatedObject<xAOD::Vertex>("OriginVertex", origin) ) - { - origin=primVertex; - ATH_MSG_DEBUG("Jet has no associated vertex, using PV from container"); - } - } const xAOD::JetConstituentVector constituents = (*ijet)->getConstituents(); for (xAOD::JetConstituentVector::iterator itr = constituents.begin(); itr != constituents.end(); ++itr) { m_subtractorTool->subtract(p4_cl,itr->rawConstituent(),shape,es_index,m_modulatorTool, eshape); //modifies p4_cl to be constituent 4-vector AFTER subtraction - if(m_originCorrection) - { - const xAOD::CaloCluster* cl=static_cast<const xAOD::CaloCluster*>(itr->rawConstituent()); - float mag = 0; - if(cl->isAvailable<float>("HIMag")) mag=cl->auxdataConst<float>("HIMag"); - else - { - double cm_mag=0; - if(cl->retrieveMoment (xAOD::CaloCluster::CENTER_MAG, cm_mag)) mag=cm_mag; - } - if(mag!=0.) - { - float eta0=cl->eta0(); - float phi0=cl->phi0(); - float radius=mag/std::cosh(eta0); - xAOD::IParticle::FourMom_t p4_pos; - p4_pos.SetX(radius*std::cos(phi0)-origin->x()); - p4_pos.SetY(radius*std::sin(phi0)-origin->y()); - p4_pos.SetZ(radius*std::sinh(eta0)-origin->z()); - - double deta=p4_pos.Eta()-eta0; - double dphi=p4_pos.Phi()-phi0; - //adjust in case eta/phi are flipped in case of neg E clusters - //this method is agnostic wrt convention - if(p4_cl.Eta()*eta0 <0.) deta*=-1; - - double eta_prime=p4_cl.Eta()+deta; - double phi_prime=p4_cl.Phi()+dphi; - double e_subtr=p4_cl.E(); - p4_cl.SetPtEtaPhiE(e_subtr/std::cosh(eta_prime),eta_prime,phi_prime,e_subtr); - } - else missingMoment=true; - } p4_subtr+=p4_cl; if( msgLvl(MSG::DEBUG) ) @@ -219,7 +148,6 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con (*ijet)->setConstituentsSignalState(HIJetRec::subtractedConstitState()); } } - if(missingMoment) ATH_MSG_WARNING("No origin correction applied, CENTERMAG missing"); - //Fix from conflict beetween d1493284 (master) and 5af8a733 (21.0) + return StatusCode::SUCCESS; } -- GitLab From 76592a4cd205cb2a104c3ac6475f1dca9352f151 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 2 Jun 2020 11:11:40 -0500 Subject: [PATCH 018/459] Added control for broken cell link --- .../HIJetRec/src/HIJetCellSubtractorTool.cxx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIJetCellSubtractorTool.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIJetCellSubtractorTool.cxx index 920fc265b04..5ca285b3b03 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIJetCellSubtractorTool.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIJetCellSubtractorTool.cxx @@ -30,9 +30,9 @@ void HIJetCellSubtractorTool::subtract(xAOD::IParticle::FourMom_t& subtr_mom, co const float phi0=cl->phi0(); float mod=modulator->getModulation(phi0, eshape); - //unsigned int eta_phi_index=HICaloCellHelper::FindEtaPhiBin(cl->eta0(),cl->phi0()); xAOD::CaloCluster::const_cell_iterator cellIterEnd = cl->cell_end(); + for(xAOD::CaloCluster::const_cell_iterator cellIter=cl->cell_begin(); cellIter != cellIterEnd; cellIter++ ) { CxxUtils::prefetchNext(cellIter, cellIterEnd); @@ -55,6 +55,7 @@ void HIJetCellSubtractorTool::subtract(xAOD::IParticle::FourMom_t& subtr_mom, co phi_cl+=cell_E_w*phi; } + if(E_cl!=0.) { eta_cl/=E_cl; @@ -134,6 +135,12 @@ void HIJetCellSubtractorTool::subtractWithMoments(xAOD::CaloCluster* cl, const x std::vector<float> E_sample(CaloSampling::Unknown,0); uint32_t samplingPattern=0; + + auto cellLink = cl->getCellLinks(); + if( cellLink == NULL){ + ATH_MSG_ERROR("HIJetCellSubtraction: cellLink null - returning"); + return; + } //unsigned int eta_phi_index=HICaloCellHelper::FindEtaPhiBin(cl->eta0(),cl->phi0()); xAOD::CaloCluster::cell_iterator cellIterEnd = cl->cell_end(); for(xAOD::CaloCluster::cell_iterator cellIter=cl->cell_begin(); cellIter != cellIterEnd; cellIter++ ) @@ -166,8 +173,6 @@ void HIJetCellSubtractorTool::subtractWithMoments(xAOD::CaloCluster* cl, const x float cell_z=(*cellIter)->z(); etot2+=abs_weight; er2+=std::sqrt(cell_x*cell_x+cell_y*cell_y+cell_z*cell_z)*abs_weight; - - } if(E_cl!=0.) { -- GitLab From 28816b09d4e6eb9eec75cc6a02a7eda4e814ca5b Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 2 Jun 2020 11:13:40 -0500 Subject: [PATCH 019/459] Major restyiling of HIClusterSubtraction: moved to deep copy to store the subracted kinematics, removed update_mode accordingly, implemented origin correctin at this level --- .../HIJetRec/src/HIClusterSubtraction.cxx | 119 ++++++++---------- .../HIJetRec/src/HIClusterSubtraction.h | 2 +- 2 files changed, 55 insertions(+), 66 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx index ad86bac1a3d..dc39af58ead 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx @@ -6,12 +6,12 @@ #include "xAODHIEvent/HIEventShapeContainer.h" #include "xAODCaloEvent/CaloClusterContainer.h" #include "HIEventUtils/HIEventShapeMap.h" +#include "CaloUtils/CaloClusterStoreHelper.h" #include "HIJetRec/HIJetRecDefs.h" -#include "xAODCore/ShallowAuxContainer.h" -#include "xAODCore/ShallowCopy.h" #include "xAODBase/IParticleHelpers.h" #include "xAODTracking/Vertex.h" #include "xAODTracking/VertexContainer.h" +#include "xAODCaloEvent/CaloClusterAuxContainer.h" #include "StoreGate/ReadHandle.h" #include "StoreGate/WriteHandle.h" @@ -26,8 +26,6 @@ HIClusterSubtraction::HIClusterSubtraction(std::string name) : asg::AsgTool(name StatusCode HIClusterSubtraction::initialize() { - //New key for the shallow copy automatically built from the cluster key - m_outClusterKey = m_inClusterKey.key() + ".shallowCopy"; //Keys initialization ATH_CHECK( m_eventShapeKey.initialize() ); ATH_CHECK( m_inClusterKey.initialize() ); @@ -88,30 +86,27 @@ int HIClusterSubtraction::execute() const const xAOD::HIEventShapeContainer* shape = 0; SG::ReadHandle<xAOD::HIEventShapeContainer> readHandleEvtShape ( m_eventShapeKey ); shape = readHandleEvtShape.cptr(); + const HIEventShapeIndex* es_index = HIEventShapeMap::getIndex( m_eventShapeKey.key() ); const xAOD::HIEventShape* eshape = nullptr; CHECK(m_modulatorTool->getShape(eshape), 1); - ATH_MSG_DEBUG("HIClusterSubtraction creating key for ShallowCopy! "); - //New implementation: make a shallow copy of original HIClusters and apply subtraction to clusters in the new container + //New implementation: make a deep copy of original HIClusters and apply subtraction to clusters in the new container SG::ReadHandle<xAOD::CaloClusterContainer> readHandleClusters ( m_inClusterKey ); - std::pair<xAOD::CaloClusterContainer*,xAOD::ShallowAuxContainer*> shallowcopy = xAOD::shallowCopyContainer(*readHandleClusters); - /// Set whether only the overriden parameters should be written out - default is true - //shallowcopy.second->setShallowIO(m_shallowIO); - // Now a handle to write the shallow Copy - SG::WriteHandle<xAOD::CaloClusterContainer> writeHandleShallowClusters ( m_outClusterKey ); + // Now a handle to write the deep Copy + SG::WriteHandle<xAOD::CaloClusterContainer> writeHandleDeepCopyClusters ( m_outClusterKey ); // Preparing keys and container to perfrom the origin correction const xAOD::Vertex* primVertex=nullptr; const xAOD::VertexContainer* vertices=nullptr; - // ReadHandle to retrieve the vertex container - SG::ReadHandle<xAOD::VertexContainer> readHandleVertexContainer ( m_vertexContainer ); // Boolean to flag that at least a vertex is present in the vertex container bool isOriginPossible = true; // Finding the primary vertex in case origin correction has to be performed if(m_originCorrection) { + // ReadHandle to retrieve the vertex container + SG::ReadHandle<xAOD::VertexContainer> readHandleVertexContainer ( m_vertexContainer ); vertices = readHandleVertexContainer.get(); for ( size_t iVertex = 0; iVertex < vertices->size(); ++iVertex ) { @@ -134,83 +129,77 @@ int HIClusterSubtraction::execute() const } bool missingMoment=false; - if(m_updateMode) - { - std::unique_ptr<std::vector<float> > subtractedE(new std::vector<float>()); - subtractedE->reserve(shallowcopy.first->size()); - //Decoration via SG::AuxElement::Decorator should still work in MT code (that seems from browsing the code) - SG::AuxElement::Decorator< float > decorator("HISubtractedE"); + auto originalCluster = readHandleClusters.cptr(); + // Create the new container and its auxiliary store. + xAOD::CaloClusterContainer* copyClusters = new xAOD::CaloClusterContainer(); + xAOD::AuxContainerBase* copyClustersAux = new xAOD::AuxContainerBase(); + copyClusters->setStore(copyClustersAux); + copyClusters->reserve (originalCluster->size()); + + for (const xAOD::CaloCluster* oldCluster : *originalCluster) { + xAOD::CaloCluster* newClu=new xAOD::CaloCluster(); + copyClusters->push_back (newClu); + *newClu=*oldCluster; + } - for(xAOD::CaloClusterContainer::const_iterator itr=shallowcopy.first->begin(); itr!=shallowcopy.first->end(); itr++) - { - const xAOD::CaloCluster* cl=*itr; - xAOD::IParticle::FourMom_t p4; - m_subtractorTool->subtract(p4,cl,shape,es_index,m_modulatorTool,eshape); - subtractedE->push_back(p4.E()); - decorator(*cl)=p4.E(); - } - } - else + for(xAOD::CaloClusterContainer::iterator itr=copyClusters->begin(); itr!=copyClusters->end(); itr++) { - for(xAOD::CaloClusterContainer::iterator itr=shallowcopy.first->begin(); itr!=shallowcopy.first->end(); itr++) - { - xAOD::CaloCluster* cl=*itr; - xAOD::IParticle::FourMom_t p4; - - //Unsubtracted state record done by the subtractor tool functions. - if(m_setMoments) { - //This flag is set to false for HIJetClustersSubtractorTool and true for HIJetCellSubtractorTool, - // but for the second we don't do origin correction. In principle the code is structured to do the same as the - //else for m_setMoments=true and HIJetClustersSubtractorTool, therefore we add the code for origin correction also here - m_subtractorTool->subtractWithMoments(cl, shape, es_index, m_modulatorTool, eshape); - if(isOriginPossible && m_originCorrection){ - missingMoment = HIClusterSubtraction::doOriginCorrection( cl, primVertex, p4 ); - HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedPVCorrectedClusterState()); - } + xAOD::CaloCluster* cl= *itr; + xAOD::IParticle::FourMom_t p4; + //Unsubtracted state record done by the subtractor tool functions. + if(m_setMoments) + { + //This flag is set to false for HIJetClustersSubtractorTool and true for HIJetCellSubtractorTool, + // but for the second we don't do origin correction. In principle the code is structured to do the same as the + //else for m_setMoments=true and HIJetClustersSubtractorTool, therefore we add the code for origin correction also here + m_subtractorTool->subtractWithMoments(cl, shape, es_index, m_modulatorTool, eshape); + if(isOriginPossible && m_originCorrection) + { + missingMoment = HIClusterSubtraction::doOriginCorrection( cl, primVertex, p4 ); + HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedPVCorrectedClusterState()); } - else - { - m_subtractorTool->subtract(p4,cl,shape,es_index,m_modulatorTool,eshape); - HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedClusterState()); - ATH_MSG_INFO("Applying origin correction" + } + else + { + m_subtractorTool->subtract(p4,cl,shape,es_index,m_modulatorTool,eshape); + HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedClusterState()); + ATH_MSG_INFO("Applying origin correction" << std::setw(12) << "Before:" << std::setw(10) << std::setprecision(3) << p4.Pt()*1e-3 << std::setw(10) << std::setprecision(3) << p4.Eta() << std::setw(10) << std::setprecision(3) << p4.Phi() << std::setw(10) << std::setprecision(3) << p4.E()*1e-3 << std::setw(10) << std::setprecision(3) << p4.M()*1e-3); - if(isOriginPossible){ - missingMoment = HIClusterSubtraction::doOriginCorrection( cl, primVertex, p4 ); - HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedPVCorrectedClusterState()); - } - ATH_MSG_INFO("Applying origin correction" + if(isOriginPossible) + { + missingMoment = HIClusterSubtraction::doOriginCorrection( cl, primVertex, p4 ); + HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedPVCorrectedClusterState()); + } + ATH_MSG_INFO("Applying origin correction" << std::setw(12) << "After:" << std::setw(10) << std::setprecision(3) << p4.Pt()*1e-3 << std::setw(10) << std::setprecision(3) << p4.Eta() << std::setw(10) << std::setprecision(3) << p4.Phi() << std::setw(10) << std::setprecision(3) << p4.E()*1e-3 << std::setw(10) << std::setprecision(3) << p4.M()*1e-3); - } - }//End of iterator over CaloClusterContainer + } + }//End of iterator over CaloClusterContainer for(ToolHandleArray<CaloClusterCollectionProcessor>::const_iterator toolIt=m_clusterCorrectionTools.begin(); toolIt != m_clusterCorrectionTools.end(); toolIt++) { ATH_MSG_INFO(" Applying correction = " << (*toolIt)->name() ); - CHECK((*toolIt)->execute(Gaudi::Hive::currentContext(), shallowcopy.first), 1); + CHECK((*toolIt)->execute(Gaudi::Hive::currentContext(), copyClusters), 1); }//End loop over correction tools - } + //} if(missingMoment) ATH_MSG_WARNING("No origin correction applied, CENTERMAG missing"); // Make sure that memory is managed safely - std::unique_ptr<xAOD::CaloClusterContainer> outClusters(shallowcopy.first); - std::unique_ptr<xAOD::ShallowAuxContainer> shallowAux(shallowcopy.second); - - // Connect the copied jets to their originals - xAOD::setOriginalObjectLink(*readHandleClusters, *outClusters); + std::unique_ptr<xAOD::CaloClusterContainer> outClusters(copyClusters); + std::unique_ptr<xAOD::AuxContainerBase> deepAux(copyClustersAux); - if(writeHandleShallowClusters.record ( std::move(outClusters), std::move(shallowAux)).isFailure() ){ - ATH_MSG_ERROR("Unable to write Shallow Copy containers for event shape with key: " << m_outClusterKey.key()); + if(writeHandleDeepCopyClusters.record ( std::move(outClusters), std::move(deepAux)).isFailure() ){ + ATH_MSG_ERROR("Unable to write DeepCopy Copy containers for event shape with key: " << m_outClusterKey.key()); return 1; } return 0; diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h index 7bf7ad983df..7a665337dde 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h @@ -53,7 +53,7 @@ private: /// \brief Name of input cluster container SG::ReadHandleKey< xAOD::CaloClusterContainer > m_inClusterKey { this, "ClusterKey", "ClusterKey", "Name of the input Cluster Container"}; /// |brief New writeHandleKey to store the shallow copy used for new CaloClusterTreatment - SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outClusterKey { this, "OutClusterKey", "OutClusterKey", "Name of the input Cluster Container"}; + SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outClusterKey { this, "OutClusterKey", "OutClusterKey", "Name of the output Cluster Container (deep Copy)"}; /// \brief Name of HIEventShapeContainer defining background SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_eventShapeKey { this, "EventShapeKey", "EventShapeKey", "Name of HIEventShapeContainer defining background"}; /// |brief Name of Vertex Container for origin correction -- GitLab From aaa3784d8eb497db43461294f70d51c5c4235320 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 2 Jun 2020 11:18:16 -0500 Subject: [PATCH 020/459] Changes to alg scheduling to include correctly new implementations on Cluster subtraction --- .../HIJetRec/python/HIJetRecUtils.py | 18 +++++++++++++----- .../HIJetRec/share/HIJetRec_jobOptions.py | 8 +++++--- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py index 9b3b6439655..766ee681ccb 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py @@ -145,6 +145,9 @@ def ApplySubtractionToClusters(**kwargs) : if 'cluster_key' in kwargs.keys() : cluster_key=kwargs['cluster_key'] else : cluster_key=HIJetFlags.HIClusterKey() + if 'output_cluster_key' in kwargs.keys() : output_cluster_key=kwargs['output_cluster_key'] + else : cluster_key=cluster_key+".deepCopy" + if 'modulator' in kwargs.keys() : mod_tool=kwargs['modulator'] else : mod_tool=GetNullModulator() @@ -154,19 +157,23 @@ def ApplySubtractionToClusters(**kwargs) : if 'apply_origin_correction' in kwargs.keys() : apply_origin_correction=kwargs['apply_origin_correction'] else : apply_origin_correction=HIJetFlags.ApplyOriginCorrection() + do_cluster_moments=False + if 'CalculateMoments' in kwargs.keys() : do_cluster_moments=kwargs['CalculateMoments'] + HIClusterSubtraction=CompFactory.HIClusterSubtraction toolName='HIClusterSubtraction' if 'name' in kwargs.keys() : toolName = kwargs['name'] + theAlg=HIClusterSubtraction(toolName) theAlg.ClusterKey=cluster_key + theAlg.OutClusterKey=output_cluster_key theAlg.EventShapeKey=event_shape_key theAlg.Subtractor=GetSubtractorTool(**kwargs) theAlg.Modulator=mod_tool theAlg.UpdateOnly=update_only + theAlg.SetMoments=do_cluster_moments theAlg.ApplyOriginCorrection=apply_origin_correction - do_cluster_moments=False - if 'CalculateMoments' in kwargs.keys() : do_cluster_moments=kwargs['CalculateMoments'] if do_cluster_moments : CaloClusterMomentsMaker=CompFactory.CaloClusterMomentsMaker from CaloTools.CaloNoiseToolDefault import CaloNoiseToolDefault @@ -215,13 +222,14 @@ def GetConstituentsModifierTool(**kwargs) : if 'cluster_key' in kwargs.keys() : cluster_key=kwargs['cluster_key'] else : cluster_key=HIJetFlags.HIClusterKey() - print ('Cluster Key %s' % cluster_key) HIJetConstituentModifierTool=CompFactory.HIJetConstituentModifierTool toolName='HIJetConstituentModifierTool' if 'name' in kwargs.keys() : toolName = kwargs['name'] - print ('Toolname ConstModif %s' % toolName) + cmod=HIJetConstituentModifierTool(toolName) - cmod.ClusterKey=cluster_key+'.shallowCopy' + cmod.ClusterKey=cluster_key + cmod.Subtractor=GetSubtractorTool(**kwargs) + jtm.add(cmod) return cmod diff --git a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py index 1bd0344e89e..c213a76f6f0 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py @@ -172,15 +172,17 @@ if not HIJetFlags.DoCellBasedSubtraction(): cell_level_shape_key=iter_egamma.OutputEventShapeKey #HIJetFlags.IteratedEventShapeKey=iter_egamma.OutputEventShapeKey +cluster_key_eGamma_deep=ClusterKey+"_eGamma_deep" +cluster_key_final_deep=cluster_key_eGamma_deep+"_Cluster_deep" #Subtraction for egamma and to get layers -#ApplySubtractionToClusters(name="HIClusterSubtraction_egamma", event_shape_key=cell_level_shape_key, cluster_key=ClusterKey, modulator=modulator1, CalculateMoments=True, useClusters=False) +ApplySubtractionToClusters(name="HIClusterSubtraction_egamma", event_shape_key=cell_level_shape_key, cluster_key=ClusterKey, output_cluster_key=cluster_key_eGamma_deep, modulator=modulator1, CalculateMoments=True, useClusters=False, apply_origin_correction=False) #Cluster subtraction for jets -ApplySubtractionToClusters(event_shape_key=HIJetFlags.IteratedEventShapeKey(), update_only=True, cluster_key=ClusterKey, modulator=modulator1, CalculateMoments=False, useClusters=True) +ApplySubtractionToClusters(event_shape_key=HIJetFlags.IteratedEventShapeKey(), cluster_key=cluster_key_eGamma_deep, output_cluster_key=cluster_key_final_deep, modulator=modulator1, CalculateMoments=False, useClusters=True, apply_origin_correction=True) #put subtraction tool at the FRONT of the jet modifiers list hi_tools=[subtr1,subtr2] hi_tools+=GetFlowMomentTools(iter1.OutputEventShapeKey,iter1.ModulationEventShapeKey) -hi_tools+=[GetConstituentsModifierTool(name="HIJetConstituentModifierTool", cluster_key=ClusterKey)] +hi_tools+=[GetConstituentsModifierTool(name="HIJetConstituentModifierTool", cluster_key=cluster_key_final_deep)] ### #subtracted algorithms -- GitLab From 55aa8bfa21cb7a69c0860d0ed17b51d712f522ed Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Thu, 11 Jun 2020 14:25:16 -0500 Subject: [PATCH 021/459] New definitions for subtracted state w/ and w/o Origin Correction - to be used in the new HIJetConstituentModifierTool and for downstream tasks (e.g. monitoring) --- .../HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h index 7c55d1e7b13..22f8ad16848 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h @@ -14,13 +14,16 @@ namespace HIJetRec{ //define conventions for HIJets in terms of various signal states - constexpr const char* unsubtractedJetState() { return "JetUnsubtractedScaleMomentum";} - constexpr const char* subtractedJetState() { return "JetSubtractedScaleMomentum";} - constexpr xAOD::JetConstitScale subtractedConstitState() {return xAOD::UncalibratedJetConstituent;} + constexpr const char* unsubtractedJetState() { return "JetUnsubtractedScaleMomentum";} + constexpr const char* subtractedJetState() { return "JetSubtractedScaleMomentum";} + constexpr const char* subtractedOriginCorrectedJetState() { return "JetSubtractedOriginCorrectedScaleMomentum";} + + constexpr xAOD::JetConstitScale subtractedConstitState() { return xAOD::UncalibratedJetConstituent;} + constexpr xAOD::JetConstitScale subtractedOriginCorrectedConstitState() { return xAOD::CalibratedJetConstituent;} constexpr xAOD::CaloCluster::State unsubtractedClusterState() {return xAOD::CaloCluster::ALTCALIBRATED;} constexpr xAOD::CaloCluster::State subtractedClusterState() {return xAOD::CaloCluster::UNCALIBRATED;} - constexpr xAOD::CaloCluster::State subtractedPVCorrectedClusterState() {return xAOD::CaloCluster::CALIBRATED;} + constexpr xAOD::CaloCluster::State subtractedOriginCorrectedClusterState() {return xAOD::CaloCluster::CALIBRATED;} inline bool inTowerBoundary(float eta0, float phi0, float eta, float phi) { -- GitLab From 49598032c589f22c35e5640bdf3a150d6ea2f816 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Thu, 11 Jun 2020 14:40:21 -0500 Subject: [PATCH 022/459] Major updates in kinmatics calculation. Origin Correction flag established to propagate JetScale correctly. Multiple kinematic calculation (w/ and w/o origin correction) --- .../HIJetRec/HIJetConstituentModifierTool.h | 3 ++ .../Root/HIJetConstituentModifierTool.cxx | 45 ++++++++++++++----- 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifierTool.h b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifierTool.h index 625cc304a4f..f9e5f03e740 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifierTool.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentModifierTool.h @@ -39,6 +39,9 @@ class HIJetConstituentModifierTool : public JetModifierBase { SG::ReadHandleKey< xAOD::CaloClusterContainer > m_clusterKey { this, "ClusterKey", "ClusterKey", "Name of the input Cluster Container"}; /// \brief handle to IHISubtractorTool that determines the subtracted kinematics for each constituent ToolHandle<IHISubtractorTool> m_subtractorTool { this, "Subtractor", "HIJetSubtractorToolBase", "" }; + /// |brief boolean switch to drive the JetScale settings after constituents are added + Gaudi::Property< bool > m_originCorrection { this, "ApplyOriginCorrection", false, "Apply Origin Correction boolean switch"}; + }; #endif diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx index 615a1f02949..7d6c507ae14 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx @@ -45,12 +45,14 @@ int HIJetConstituentModifierTool::modifyJet(xAOD::Jet& jet) const { if( constituentWeightAcc.isAvailable(jet) ) constituentWeightAcc( jet ).resize(0); //save unsubtracted kinematics as moment if they don’t exist already... - xAOD::IParticle::FourMom_t unsubtrP4; - unsubtrP4 = jet.p4(); + xAOD::IParticle::FourMom_t unsubtractedP4; + unsubtractedP4 = jet.p4(); jet.setJetP4(HIJetRec::unsubtractedJetState(),jet.jetP4()); - xAOD::IParticle::FourMom_t subtrP4; - xAOD::JetFourMom_t jet4vec; + xAOD::IParticle::FourMom_t subtractedP4; + xAOD::IParticle::FourMom_t subtractedOriginCorrP4; + xAOD::JetFourMom_t subtractedJet4vec; + xAOD::JetFourMom_t subtractedOriginCorrJet4vec; //need to add usual safety checks on cluster container access SG::ReadHandle<xAOD::CaloClusterContainer> readHandleSubtractedClusters ( m_clusterKey ); @@ -60,16 +62,37 @@ int HIJetConstituentModifierTool::modifyJet(xAOD::Jet& jet) const { { auto cl=ccl->at(index); jet.addConstituent(cl); - subtrP4+=cl->p4(HIJetRec::subtractedClusterState()); + subtractedP4+=cl->p4(HIJetRec::subtractedClusterState()); + if( m_originCorrection ) subtractedOriginCorrP4+=cl->p4(HIJetRec::subtractedOriginCorrectedClusterState()); } - - if(subtrP4.E()/std::cosh(subtrP4.Eta()) < E_min) + //Check for subtracted Kinematics + if(subtractedP4.E()/std::cosh(subtractedP4.Eta()) < E_min) + { + subtractedP4=unsubtractedP4; + subtractedP4*=1e-7;//ghost scale + } + //Check for subtracted + Origin Correction Kinematics + if(subtractedOriginCorrP4.E()/std::cosh(subtractedOriginCorrP4.Eta()) < E_min && m_originCorrection ) { - subtrP4=unsubtrP4; - subtrP4*=1e-7;//ghost scale + subtractedOriginCorrP4=unsubtractedP4; + subtractedOriginCorrP4*=1e-7;//ghost scale + } + + subtractedJet4vec.SetCoordinates(subtractedP4.Pt(),subtractedP4.Eta(), + subtractedP4.Phi(),subtractedP4.M()); + jet.setJetP4(HIJetRec::subtractedJetState(), subtractedJet4vec); + + if( m_originCorrection ) { + subtractedOriginCorrJet4vec.SetCoordinates(subtractedOriginCorrP4.Pt(),subtractedOriginCorrP4.Eta(), + subtractedOriginCorrP4.Phi(),subtractedOriginCorrP4.M()); + jet.setJetP4(HIJetRec::subtractedOriginCorrectedJetState(), subtractedOriginCorrJet4vec); + jet.setJetP4(subtractedOriginCorrJet4vec); + jet.setConstituentsSignalState(HIJetRec::subtractedOriginCorrectedConstitState()); + } + else { + jet.setConstituentsSignalState(HIJetRec::subtractedConstitState()); + jet.setJetP4(subtractedJet4vec); } - jet4vec.SetCoordinates(subtrP4.Pt(),subtrP4.Eta(),subtrP4.Phi(),subtrP4.M()); - jet.setJetP4(jet4vec); return 0; } -- GitLab From 2b03a1113e759ea0d829fb05445366e8168bf67a Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Thu, 11 Jun 2020 14:43:02 -0500 Subject: [PATCH 023/459] Few adjustments and clean-up --- .../HIJetRec/Root/HIJetConstituentSubtractionTool.cxx | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx index ffa4a897ad8..f5567b6932e 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx @@ -74,7 +74,6 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con return StatusCode::FAILURE; } - bool missingMoment=false; bool needsUnsubMoment=false; if(jets.size() > 0){ xAOD::JetFourMom_t tmp; @@ -116,9 +115,6 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con << std::setw(10) << std::setprecision(3) << p4_subtr.E()*1e-3 << std::setw(10) << std::setprecision(3) << p4_subtr.M()*1e-3); - - - xAOD::JetFourMom_t jet4vec; //if entire jet has negative E, do no subtraction but set to ghost scale //prevents cases with large cancellations with small E but pT non-trivial @@ -143,7 +139,6 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con //can be skipped in future if custom HI calibration configuration file exists (*ijet)->setJetP4("JetPileupScaleMomentum", jet4vec ); (*ijet)->setJetP4(xAOD::JetEMScaleMomentum, jet4vec); - (*ijet)->setJetP4(jet4vec); (*ijet)->setConstituentsSignalState(HIJetRec::subtractedConstitState()); } -- GitLab From 7010c3abb3034dc3d0d2f9f4bc1d9f9a235015de Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Thu, 11 Jun 2020 14:44:17 -0500 Subject: [PATCH 024/459] From INFO to DEBUG messages + new name for ClusterState according to name convention established for the new Constituent Modifier Tool --- .../HIJetRec/src/HIClusterSubtraction.cxx | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx index dc39af58ead..6dea6c4866e 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx @@ -156,39 +156,42 @@ int HIClusterSubtraction::execute() const if(isOriginPossible && m_originCorrection) { missingMoment = HIClusterSubtraction::doOriginCorrection( cl, primVertex, p4 ); - HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedPVCorrectedClusterState()); + HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedOriginCorrectedClusterState()); } } else { m_subtractorTool->subtract(p4,cl,shape,es_index,m_modulatorTool,eshape); HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedClusterState()); - ATH_MSG_INFO("Applying origin correction" - << std::setw(12) << "Before:" - << std::setw(10) << std::setprecision(3) << p4.Pt()*1e-3 - << std::setw(10) << std::setprecision(3) << p4.Eta() - << std::setw(10) << std::setprecision(3) << p4.Phi() - << std::setw(10) << std::setprecision(3) << p4.E()*1e-3 - << std::setw(10) << std::setprecision(3) << p4.M()*1e-3); + if(isOriginPossible) { + ATH_MSG_DEBUG("Applying origin correction" + << std::setw(12) << "Before:" + << std::setw(10) << std::setprecision(3) << p4.Pt()*1e-3 + << std::setw(10) << std::setprecision(3) << p4.Eta() + << std::setw(10) << std::setprecision(3) << p4.Phi() + << std::setw(10) << std::setprecision(3) << p4.E()*1e-3 + << std::setw(10) << std::setprecision(3) << p4.M()*1e-3); + missingMoment = HIClusterSubtraction::doOriginCorrection( cl, primVertex, p4 ); - HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedPVCorrectedClusterState()); + HIJetRec::setClusterP4(p4,cl,HIJetRec::subtractedOriginCorrectedClusterState()); + + ATH_MSG_DEBUG("Applying origin correction" + << std::setw(12) << "After:" + << std::setw(10) << std::setprecision(3) << p4.Pt()*1e-3 + << std::setw(10) << std::setprecision(3) << p4.Eta() + << std::setw(10) << std::setprecision(3) << p4.Phi() + << std::setw(10) << std::setprecision(3) << p4.E()*1e-3 + << std::setw(10) << std::setprecision(3) << p4.M()*1e-3); } - ATH_MSG_INFO("Applying origin correction" - << std::setw(12) << "After:" - << std::setw(10) << std::setprecision(3) << p4.Pt()*1e-3 - << std::setw(10) << std::setprecision(3) << p4.Eta() - << std::setw(10) << std::setprecision(3) << p4.Phi() - << std::setw(10) << std::setprecision(3) << p4.E()*1e-3 - << std::setw(10) << std::setprecision(3) << p4.M()*1e-3); } }//End of iterator over CaloClusterContainer for(ToolHandleArray<CaloClusterCollectionProcessor>::const_iterator toolIt=m_clusterCorrectionTools.begin(); toolIt != m_clusterCorrectionTools.end(); toolIt++) { - ATH_MSG_INFO(" Applying correction = " << (*toolIt)->name() ); + ATH_MSG_DEBUG(" Applying correction = " << (*toolIt)->name() ); CHECK((*toolIt)->execute(Gaudi::Hive::currentContext(), copyClusters), 1); }//End loop over correction tools //} -- GitLab From 7344e0152c5a4e33c3d615882baae6e1101ce12d Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Thu, 11 Jun 2020 15:44:25 -0500 Subject: [PATCH 025/459] Constituent Modifier Tool called w/ the flag for origin correction now --- Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py | 4 ++++ .../HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py index 766ee681ccb..f5b8cc7c53c 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py @@ -222,6 +222,9 @@ def GetConstituentsModifierTool(**kwargs) : if 'cluster_key' in kwargs.keys() : cluster_key=kwargs['cluster_key'] else : cluster_key=HIJetFlags.HIClusterKey() + if 'apply_origin_correction' in kwargs.keys() : apply_origin_correction=kwargs['apply_origin_correction'] + else : apply_origin_correction=HIJetFlags.ApplyOriginCorrection() + HIJetConstituentModifierTool=CompFactory.HIJetConstituentModifierTool toolName='HIJetConstituentModifierTool' if 'name' in kwargs.keys() : toolName = kwargs['name'] @@ -229,6 +232,7 @@ def GetConstituentsModifierTool(**kwargs) : cmod=HIJetConstituentModifierTool(toolName) cmod.ClusterKey=cluster_key cmod.Subtractor=GetSubtractorTool(**kwargs) + cmod.ApplyOriginCorrection=apply_origin_correction jtm.add(cmod) return cmod diff --git a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py index c213a76f6f0..11211811891 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py @@ -174,15 +174,15 @@ if not HIJetFlags.DoCellBasedSubtraction(): cluster_key_eGamma_deep=ClusterKey+"_eGamma_deep" cluster_key_final_deep=cluster_key_eGamma_deep+"_Cluster_deep" -#Subtraction for egamma and to get layers +#Subtraction for egamma and to get layers - here no origin correction yet (done in the next stage) ApplySubtractionToClusters(name="HIClusterSubtraction_egamma", event_shape_key=cell_level_shape_key, cluster_key=ClusterKey, output_cluster_key=cluster_key_eGamma_deep, modulator=modulator1, CalculateMoments=True, useClusters=False, apply_origin_correction=False) #Cluster subtraction for jets -ApplySubtractionToClusters(event_shape_key=HIJetFlags.IteratedEventShapeKey(), cluster_key=cluster_key_eGamma_deep, output_cluster_key=cluster_key_final_deep, modulator=modulator1, CalculateMoments=False, useClusters=True, apply_origin_correction=True) +ApplySubtractionToClusters(event_shape_key=HIJetFlags.IteratedEventShapeKey(), cluster_key=cluster_key_eGamma_deep, output_cluster_key=cluster_key_final_deep, modulator=modulator1, CalculateMoments=False, useClusters=True, apply_origin_correction=HIJetFlags.ApplyOriginCorrection()) #put subtraction tool at the FRONT of the jet modifiers list hi_tools=[subtr1,subtr2] hi_tools+=GetFlowMomentTools(iter1.OutputEventShapeKey,iter1.ModulationEventShapeKey) -hi_tools+=[GetConstituentsModifierTool(name="HIJetConstituentModifierTool", cluster_key=cluster_key_final_deep)] +hi_tools+=[GetConstituentsModifierTool(name="HIJetConstituentModifierTool", cluster_key=cluster_key_final_deep, apply_origin_correction=HIJetFlags.ApplyOriginCorrection())] ### #subtracted algorithms -- GitLab From 6ba0847124dbc5c49f17b936ea4048d0b416f631 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Thu, 11 Jun 2020 16:57:16 -0500 Subject: [PATCH 026/459] Removed Warning message for MT migration for HIClusterSubtraction class + clean up --- .../HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx index 6dea6c4866e..137baf39a30 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx @@ -82,19 +82,15 @@ int HIClusterSubtraction::execute() const { //const jet::cellset_t & badcells = badCellMap.cells() ; //retrieve UE - ATH_MSG_WARNING("HIClusterSubtraction being rebuilt to work in MT - upgrade not yet over! "); const xAOD::HIEventShapeContainer* shape = 0; SG::ReadHandle<xAOD::HIEventShapeContainer> readHandleEvtShape ( m_eventShapeKey ); shape = readHandleEvtShape.cptr(); - const HIEventShapeIndex* es_index = HIEventShapeMap::getIndex( m_eventShapeKey.key() ); - const xAOD::HIEventShape* eshape = nullptr; CHECK(m_modulatorTool->getShape(eshape), 1); //New implementation: make a deep copy of original HIClusters and apply subtraction to clusters in the new container SG::ReadHandle<xAOD::CaloClusterContainer> readHandleClusters ( m_inClusterKey ); - // Now a handle to write the deep Copy SG::WriteHandle<xAOD::CaloClusterContainer> writeHandleDeepCopyClusters ( m_outClusterKey ); // Preparing keys and container to perfrom the origin correction @@ -194,10 +190,10 @@ int HIClusterSubtraction::execute() const ATH_MSG_DEBUG(" Applying correction = " << (*toolIt)->name() ); CHECK((*toolIt)->execute(Gaudi::Hive::currentContext(), copyClusters), 1); }//End loop over correction tools - //} + if(missingMoment) ATH_MSG_WARNING("No origin correction applied, CENTERMAG missing"); -// Make sure that memory is managed safely + // Make sure that memory is managed safely std::unique_ptr<xAOD::CaloClusterContainer> outClusters(copyClusters); std::unique_ptr<xAOD::AuxContainerBase> deepAux(copyClustersAux); -- GitLab From befa37a2dd7973701f8f39c8b8e2701abf2ab72b Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Fri, 19 Jun 2020 12:38:57 -0500 Subject: [PATCH 027/459] New getClusterP4 function defined to avoid energy flipping while accessing clusters with negative E via CaloCluster_v1::p4() --- .../HIJetRec/HIJetRec/HIJetRecDefs.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h index 22f8ad16848..21d109e6484 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetRecDefs.h @@ -9,6 +9,7 @@ #include "xAODJet/JetTypes.h" #include "HIEventUtils/HIEventDefs.h" #include "FourMomUtils/xAODP4Helpers.h" +#include "TLorentzVector.h" namespace HIJetRec{ @@ -66,5 +67,23 @@ namespace HIJetRec{ } } +/// \brief : getClusterP4 Added during Rel22 migration. We should never use CaloCluster_v1::p4() because this four vector can +/// never have a negative energy. Therefore, if one tries to use setClusterP4 and then retrieve the cluster four momenta, +/// must use this new method that keeps the cluster information as set in setClusterP4 (negative E and flipped eta phi) + inline TLorentzVector getClusterP4( const xAOD::CaloCluster* cl, xAOD::CaloCluster::State s ){ + TLorentzVector correct_clusP4; + float energy=cl->e(s); + float eta=cl->eta(s); + float phi=cl->phi(s); + if(energy < 0.) + { + eta*=-1.; + if(phi > 0.) phi-=M_PI; + else phi+=M_PI; + } + float pt=energy/std::cosh(eta); + correct_clusP4.SetPtEtaPhiE(pt, eta,phi ,energy); + return correct_clusP4; + } } #endif -- GitLab From c9728955ab8eba1a6e420a2ece9112c4e07aeed3 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Fri, 19 Jun 2020 12:40:52 -0500 Subject: [PATCH 028/459] Restoring the HIMag decoration part (requested by Aaron). It was removed at a certain point in Rel 21) --- .../HIGlobal/src/HIEventShapeFillerTool.cxx | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx b/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx index 226f59b3aae..afb7b5a186e 100644 --- a/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx +++ b/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx @@ -29,7 +29,6 @@ StatusCode HIEventShapeFillerTool::initializeCollection(xAOD::HIEventShapeContai { //change m_evtShape to m_evtShape m_evtShape=evtShape_; - //tool is initialized only once if(!m_index) { @@ -105,6 +104,10 @@ StatusCode HIEventShapeFillerTool::fillCollectionFromClusterContainer(const xAOD weight_vector->reserve(theClusters->size()); SG::AuxElement::Decorator< float > decorator("HIEtaPhiWeight"); + std::unique_ptr<std::vector<float> > cm_vector(new std::vector<float>()); + cm_vector->reserve(theClusters->size()); + SG::AuxElement::Decorator< float > cm_decorator("HIMag"); + constexpr float area_cluster=HI::TowerBins::getBinArea(); if(m_towerWeightTool) CHECK(m_towerWeightTool->configureEvent()); @@ -125,6 +128,25 @@ StatusCode HIEventShapeFillerTool::fillCollectionFromClusterContainer(const xAOD weight_vector->push_back(weight); decorator(*cl)=weight; + //HIMag back in rel 22 (removed by mistake in 21) + float etot2=0; + float er2=0; + + for(unsigned int sample=0; sample<24; sample++) + { + CaloSampling::CaloSample s=static_cast<CaloSampling::CaloSample>(sample); + if(!cl->hasSampling(s)) continue; + float esamp=std::abs(cl->eSample(s)); + float w1=m_towerWeightTool->getWeight(eta,phi,s); + float wr=m_towerWeightTool->getWeightMag(eta,phi,s); + etot2+=esamp*w1; + er2+=esamp*wr; + + } + float cm=er2/etot2; + cm_vector->push_back(cm); + cm_decorator(*cl)=cm; + //update members slice->setEt(slice->et()+weight*ET); slice->setRho(slice->rho() + weight*ET/area_cluster); @@ -158,7 +180,6 @@ StatusCode HIEventShapeFillerTool::fillCollectionFromClusterContainer(const xAOD StatusCode HIEventShapeFillerTool::fillCollectionFromCells(const SG::ReadHandleKey<CaloCellContainer> &cell_container_key) { - ATH_MSG_INFO("INSIDE FillCollectionFromCells"); //retrieve the cell container from store SG::ReadHandle<CaloCellContainer> read_handle_caloCell ( cell_container_key ); const CaloCellContainer* CellContainer = read_handle_caloCell.get(); @@ -166,7 +187,6 @@ StatusCode HIEventShapeFillerTool::fillCollectionFromCells(const SG::ReadHandleK } StatusCode HIEventShapeFillerTool::fillCollectionFromCellContainer(const CaloCellContainer* CellContainer) { - ATH_MSG_INFO("INSIDE FillCollectionFromCellContainer"); //loop on Cells for(const auto cellItr : *CellContainer) updateShape(m_evtShape,m_index,cellItr,1.,cellItr->eta(),cellItr->phi()); return StatusCode::SUCCESS; -- GitLab From b5e973b0ed19a10f91c3a9702bbb1240088a8308 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Fri, 19 Jun 2020 12:43:13 -0500 Subject: [PATCH 029/459] Removed vertex container (not needed anymore) and unsubtracted kinematic part (now done in the constituent modifier tool) from HIJetConstituentSubtractionTool --- .../HIJetConstituentSubtractionTool.h | 2 -- .../Root/HIJetConstituentSubtractionTool.cxx | 20 +++---------------- 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentSubtractionTool.h b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentSubtractionTool.h index 0e346b76c3e..30699de280e 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentSubtractionTool.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentSubtractionTool.h @@ -62,8 +62,6 @@ private: /// \brief Name of HIEventShapeContainer SG::ReadHandleKey< xAOD::HIEventShapeContainer > m_eventShapeKey { this, "EventShapeKey", "", "The input HI Event Shape"}; - SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainer { this, "VertexContainer", "PrimaryVertices", "Vertex container for primary vertices"}; - //That looks useless. commented out for the moment //std::string m_modulation_key; /// \brief Subtracted jet kinematics are stored diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx index f5567b6932e..f8dc7966ce4 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx @@ -25,7 +25,6 @@ StatusCode HIJetConstituentSubtractionTool::initialize() { ATH_MSG_VERBOSE("HIJetConstituentSubtractionTool initialize"); ATH_CHECK( m_eventShapeKey.initialize( !m_eventShapeKey.key().empty()) ); - ATH_CHECK( m_vertexContainer.initialize( !m_vertexContainer.key().empty()) ); return StatusCode::SUCCESS; } @@ -74,29 +73,22 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con return StatusCode::FAILURE; } - bool needsUnsubMoment=false; - if(jets.size() > 0){ - xAOD::JetFourMom_t tmp; - needsUnsubMoment = !((*jets.begin())->getAttribute<xAOD::JetFourMom_t>(HIJetRec::unsubtractedJetState(),tmp)); - } - - //check to see if unsubtracted moment has been stored for ( xAOD::JetContainer::iterator ijet=jets.begin(); ijet!=jets.end(); ++ijet) { xAOD::IParticle::FourMom_t p4_cl; xAOD::IParticle::FourMom_t p4_subtr; xAOD::IParticle::FourMom_t p4_unsubtr; - const xAOD::JetConstituentVector constituents = (*ijet)->getConstituents(); for (xAOD::JetConstituentVector::iterator itr = constituents.begin(); itr != constituents.end(); ++itr) { m_subtractorTool->subtract(p4_cl,itr->rawConstituent(),shape,es_index,m_modulatorTool, eshape); //modifies p4_cl to be constituent 4-vector AFTER subtraction - p4_subtr+=p4_cl; + if( msgLvl(MSG::DEBUG) ) { const xAOD::CaloCluster* cl=static_cast<const xAOD::CaloCluster*>(itr->rawConstituent()); + //here we can still keep cl->p4 because it's taking the unsubtracted state - moreover is debug p4_unsubtr+=cl->p4(HIJetRec::unsubtractedClusterState()); } } @@ -125,21 +117,15 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con } jet4vec.SetCoordinates(p4_subtr.Pt(),p4_subtr.Eta(),p4_subtr.Phi(),p4_subtr.M()); - (*ijet)->setJetP4(momentName(),jet4vec); - xAOD::JetFourMom_t tmp; - //if(! (*ijet)->getAttribute<xAOD::JetFourMom_t>(HIJetRec::unsubtractedJetState(),tmp) ){ - if(needsUnsubMoment) - (*ijet)->setJetP4(HIJetRec::unsubtractedJetState(), (*ijet)->jetP4()); -// } if(!momentOnly()) { //hack for now to allow use of pp calib tool skipping pileup subtraction //can be skipped in future if custom HI calibration configuration file exists (*ijet)->setJetP4("JetPileupScaleMomentum", jet4vec ); (*ijet)->setJetP4(xAOD::JetEMScaleMomentum, jet4vec); - (*ijet)->setJetP4(jet4vec); + (*ijet)->setConstituentsSignalState(HIJetRec::subtractedConstitState()); } } -- GitLab From cdcba0a23b85d2254e31a2e6c8f378ad4316f02d Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Fri, 19 Jun 2020 12:48:33 -0500 Subject: [PATCH 030/459] Fixing kinematic computation using the new HIJetRec::getClusterP4 method --- .../Root/HIJetConstituentModifierTool.cxx | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx index 7d6c507ae14..7230177af05 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentModifierTool.cxx @@ -18,7 +18,7 @@ HIJetConstituentModifierTool::HIJetConstituentModifierTool(const std::string& my StatusCode HIJetConstituentModifierTool::initialize(){ - ATH_MSG_INFO("Initializing HIJetConstituentModifierTool"); + ATH_MSG_INFO("Initializing HIJetConstituentModifierTool w/ Cluster Key " << m_clusterKey.key() ); ATH_CHECK( m_clusterKey.initialize() ); return StatusCode::SUCCESS; @@ -30,6 +30,7 @@ int HIJetConstituentModifierTool::modifyJet(xAOD::Jet& jet) const { const xAOD::JetConstituentVector constituents = jet.getConstituents(); std::vector<size_t> cluster_indices; cluster_indices.reserve(constituents.size()); + for (auto citer = constituents.begin(); citer != constituents.end(); ++citer) { cluster_indices.push_back(citer->rawConstituent()->index()); @@ -53,18 +54,30 @@ int HIJetConstituentModifierTool::modifyJet(xAOD::Jet& jet) const { xAOD::IParticle::FourMom_t subtractedOriginCorrP4; xAOD::JetFourMom_t subtractedJet4vec; xAOD::JetFourMom_t subtractedOriginCorrJet4vec; - //need to add usual safety checks on cluster container access + //Cluster container access (from the e-gamma + cluster subtracted deep copy) SG::ReadHandle<xAOD::CaloClusterContainer> readHandleSubtractedClusters ( m_clusterKey ); const xAOD::CaloClusterContainer* ccl=readHandleSubtractedClusters.get(); for(auto index : cluster_indices) { - auto cl=ccl->at(index); + const xAOD::CaloCluster* cl=static_cast<const xAOD::CaloCluster*>(ccl->at(index)); + jet.addConstituent(cl); - subtractedP4+=cl->p4(HIJetRec::subtractedClusterState()); - if( m_originCorrection ) subtractedOriginCorrP4+=cl->p4(HIJetRec::subtractedOriginCorrectedClusterState()); + xAOD::IParticle::FourMom_t subtractedClusterP4; + subtractedClusterP4=HIJetRec::getClusterP4( cl, HIJetRec::subtractedClusterState()); + subtractedP4+=subtractedClusterP4; + ATH_MSG_DEBUG("Subracted Cluster #: " << cl->index() << " :: E: " << subtractedClusterP4.E() << " :: Eta: " << subtractedClusterP4.Eta() << " :: Phi: " << subtractedClusterP4.Phi()); + + if( m_originCorrection ){ + xAOD::IParticle::FourMom_t subtractedOriginCorrClusterP4; + subtractedOriginCorrClusterP4=HIJetRec::getClusterP4( cl, HIJetRec::subtractedOriginCorrectedClusterState()); + subtractedOriginCorrP4+=subtractedOriginCorrClusterP4; + ATH_MSG_DEBUG("Subrtracted OC Cluster #: " << cl->index() << " :: E: " << subtractedOriginCorrClusterP4.E() << " :: Eta: " << subtractedOriginCorrClusterP4.Eta() << " :: Phi: " << subtractedOriginCorrClusterP4.Phi()); + } + } + //Check for subtracted Kinematics if(subtractedP4.E()/std::cosh(subtractedP4.Eta()) < E_min) { @@ -88,10 +101,11 @@ int HIJetConstituentModifierTool::modifyJet(xAOD::Jet& jet) const { jet.setJetP4(HIJetRec::subtractedOriginCorrectedJetState(), subtractedOriginCorrJet4vec); jet.setJetP4(subtractedOriginCorrJet4vec); jet.setConstituentsSignalState(HIJetRec::subtractedOriginCorrectedConstitState()); + } else { - jet.setConstituentsSignalState(HIJetRec::subtractedConstitState()); jet.setJetP4(subtractedJet4vec); + jet.setConstituentsSignalState(HIJetRec::subtractedConstitState()); } return 0; -- GitLab From 6f83da9c00ae30a691a259d8f5b1d806039fba42 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Fri, 19 Jun 2020 12:52:30 -0500 Subject: [PATCH 031/459] Fixing couple of error/warning messages --- .../HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx index 137baf39a30..ec43691107e 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx @@ -191,14 +191,14 @@ int HIClusterSubtraction::execute() const CHECK((*toolIt)->execute(Gaudi::Hive::currentContext(), copyClusters), 1); }//End loop over correction tools - if(missingMoment) ATH_MSG_WARNING("No origin correction applied, CENTERMAG missing"); + if(missingMoment) ATH_MSG_WARNING("No origin correction applied, CENTERMAG missing"); // Make sure that memory is managed safely std::unique_ptr<xAOD::CaloClusterContainer> outClusters(copyClusters); std::unique_ptr<xAOD::AuxContainerBase> deepAux(copyClustersAux); if(writeHandleDeepCopyClusters.record ( std::move(outClusters), std::move(deepAux)).isFailure() ){ - ATH_MSG_ERROR("Unable to write DeepCopy Copy containers for event shape with key: " << m_outClusterKey.key()); + ATH_MSG_ERROR("Unable to write DeepCopy Copy containers for subtracted clusters with key: " << m_outClusterKey.key()); return 1; } return 0; -- GitLab From 41aa2b65e23633881da0e3396719c82bb13a77bc Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Thu, 25 Jun 2020 10:21:34 -0500 Subject: [PATCH 032/459] Restoring generic run number setting in HITowerWeightTool (lost in 21.9 and therefore in master) --- .../HIEventUtils/Root/HITowerWeightTool.cxx | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HITowerWeightTool.cxx b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HITowerWeightTool.cxx index 1159f05437d..d61455cbb1b 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HITowerWeightTool.cxx +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HITowerWeightTool.cxx @@ -85,8 +85,17 @@ StatusCode HITowerWeightTool::configureEvent() auto itr=m_runMap.find(run_number); if(itr==m_runMap.end()) { - m_runIndex=0; - ATH_MSG_WARNING("No calibration avaliable for " << run_number << ". Doing no eta-phi correction."); + //trying generic run number <=> no run dependence + run_number = 226000; + auto itrg=m_runMap.find(run_number); + if(itrg==m_runMap.end()){ + m_runIndex=0; + ATH_MSG_WARNING("No generic calibration or calibration for " << run_number << " is avaliable. Doing no eta-phi correction."); + } + else { + m_runIndex=itrg->second; + ATH_MSG_DEBUG("Using generic calibration for eta-phi correction."); + } } else m_runIndex=itr->second; m_runNumber=run_number; @@ -161,7 +170,9 @@ StatusCode HITowerWeightTool::initialize() ATH_MSG_FATAL("Cannot find TH3F h1_run_index in config file " << full_path ); return StatusCode::FAILURE; } - for(int xbin=1; xbin<h1_run_index->GetNbinsX(); xbin++) m_runMap.emplace_hint(m_runMap.end(),std::make_pair(h1_run_index->GetBinContent(xbin),xbin)); + for(int xbin=1; xbin<=h1_run_index->GetNbinsX(); xbin++) { + m_runMap.emplace_hint(m_runMap.end(),std::make_pair(h1_run_index->GetBinContent(xbin),xbin)); + } f->Close(); m_init=true; return StatusCode::SUCCESS; -- GitLab From a4ee7d3a97a2d5cc8e2e1b409c9d4b43d536f479 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 30 Jun 2020 11:02:02 -0500 Subject: [PATCH 033/459] Adding the new HIEventShapeMapTool and its interface --- .../HIEventUtils/HIEventShapeMapTool.h | 31 +++++++++++++++++++ .../HIEventUtils/IHIEventShapeMapTool.h | 29 +++++++++++++++++ .../HIEventUtils/Root/HIEventShapeMapTool.cxx | 23 ++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h create mode 100644 PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h create mode 100644 PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h new file mode 100644 index 00000000000..698f0497223 --- /dev/null +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h @@ -0,0 +1,31 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H +#define HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H + +#include "xAODHIEvent/HIEventShape.h" +#include "HIEventUtils/HIEventShapeIndex.h" +#include "HIEventUtils/IHIEventShapeMapTool.h" +#include "AsgTools/IAsgTool.h" +#include "AsgTools/AsgTool.h" +#include <string> +#include <map> + +class HIEventShapeMapTool : virtual public asg::AsgTool +{ + ASG_TOOL_CLASS(HIEventShapeMapTool,IHIEventShapeMapTool) + public: + + HIEventShapeMapTool(); + virtual ~HIEventShapeMapTool() {}; + virtual StatusCode initialize() override; + virtual const HIEventShapeIndex* getIndex(std::string key) override; + virtual bool hasKey(std::string key) override; + + private: + Gaudi::Property< string > m_containerName { this, "ContainerName", "", "use Clusters boolean switch" } ; + +}; +#endif diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h new file mode 100644 index 00000000000..d9876b834b9 --- /dev/null +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h @@ -0,0 +1,29 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H +#define HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H + +#include "xAODHIEvent/HIEventShape.h" +#include "HIEventUtils/HIEventShapeIndex.h" +#include "AsgTools/IAsgTool.h" +#include "AsgTools/AsgTool.h" +#include <string> + +class IHIEventShapeMapTool : virtual public asg::AsgTool +{ + ASG_TOOL_INTERFACE(IHITowerWeightTool) + + public: + + virtual ~IHIEventShapeMapTool() {}; + virtual StatusCode initialize() = 0; + virtual const HIEventShapeIndex* getIndex(std::string key) = 0; + virtual bool hasKey(std::string key) = 0; + virtual std::map<std::string,HIEventShapeIndex> getMap() { return m_map; } + + private: + std::map<std::string,HIEventShapeIndex> m_map; +}; +#endif diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx new file mode 100644 index 00000000000..26a87db193e --- /dev/null +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx @@ -0,0 +1,23 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +#include "xAODHIEvent/HIEventShape.h" +#include "HIEventUtils/HIEventShapeIndex.h" +#include "HIEventUtils/HIEventShapeMapTool.h" + +HIEventShapeMapTool::HIEventShapeMapTool() : asg::AsgTool(){ + +} + +const HIEventShapeIndex* HIEventShapeMapTool::getIndex(std::string key) +{ + auto itr=m_map.find(key); + if(itr==m_map.end()) return nullptr; + return &(itr->second); +} + +bool HIEventShapeMapTool::hasKey(std::string key) +{ + return (m_map.find(key)!=m_map.end()); +} -- GitLab From 7b2f0442f1e3e91d51ab3f3287ca871fff919475 Mon Sep 17 00:00:00 2001 From: enagy <elemer.nagy@cern.ch> Date: Wed, 1 Jul 2020 11:17:28 +0200 Subject: [PATCH 034/459] Added comments to changes of Mark Sutton --- .../TrigBjetMonitoring/TrigBjetMonitoring/HLTBjetMonTool.h | 2 +- .../TrigMonitoring/TrigBjetMonitoring/src/HLTBjetMonTool.cxx | 2 +- .../TrigBjetMonitoring/src/TrigBjetMonitorAlgorithm.cxx | 2 +- .../TrigBjetMonitoring/src/TrigBjetMonitorAlgorithm.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Trigger/TrigMonitoring/TrigBjetMonitoring/TrigBjetMonitoring/HLTBjetMonTool.h b/Trigger/TrigMonitoring/TrigBjetMonitoring/TrigBjetMonitoring/HLTBjetMonTool.h index 323c2031ea7..47062da6cc1 100755 --- a/Trigger/TrigMonitoring/TrigBjetMonitoring/TrigBjetMonitoring/HLTBjetMonTool.h +++ b/Trigger/TrigMonitoring/TrigBjetMonitoring/TrigBjetMonitoring/HLTBjetMonTool.h @@ -70,7 +70,7 @@ class HLTBjetMonTool : public IHLTMonTool { "The SG key of the online BJet container from the TriggerEDMRun3"}; SG::ReadHandleKey<xAOD::VertexContainer> m_offlineVertexContainerKey {this,"OfflineVertexContainerName","PrimaryVertices","Key of offline primary vertexes"}; - SG::ReadHandleKey<xAOD::VertexContainer> m_onlineVertexContainerKey {this,"OnlineVertexContainerName","HLT_IDVertex_FS","Key of online bjet primary vertexes"}; + SG::ReadHandleKey<xAOD::VertexContainer> m_onlineVertexContainerKey {this,"OnlineVertexContainerName","HLT_IDVertex_FS","Key of online bjet primary vertexes"}; // MS 290620 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_onlineTrackContainerKey {this,"OnlineTrackContainerName","HLT_IDTrack_Bjet_IDTrig","Key of online tracks of bjets"}; ToolHandle<Trig::TrigDecisionTool> m_trigDec; //! diff --git a/Trigger/TrigMonitoring/TrigBjetMonitoring/src/HLTBjetMonTool.cxx b/Trigger/TrigMonitoring/TrigBjetMonitoring/src/HLTBjetMonTool.cxx index 05c6df13cca..5d115591362 100755 --- a/Trigger/TrigMonitoring/TrigBjetMonitoring/src/HLTBjetMonTool.cxx +++ b/Trigger/TrigMonitoring/TrigBjetMonitoring/src/HLTBjetMonTool.cxx @@ -1085,7 +1085,7 @@ StatusCode HLTBjetMonTool::book(){ if (ijet == 0) { std::string vtxname = m_onlineVertexContainerKey.key(); if ( vtxname.find("HLT_")==0 ) vtxname.erase(0,4); - auto vertexLinkInfo = TrigCompositeUtils::findLink<xAOD::VertexContainer>(jetLinkInfo.source, vtxname ); // CV 200120 + auto vertexLinkInfo = TrigCompositeUtils::findLink<xAOD::VertexContainer>(jetLinkInfo.source, vtxname ); // CV 200120 & MS 290620 ATH_CHECK( vertexLinkInfo.isValid() ) ; // TM 200120 const xAOD::Vertex* vtx = *(vertexLinkInfo.link); ATH_MSG_DEBUG(" PVz_jet from jet link info: " << vtx->z()); diff --git a/Trigger/TrigMonitoring/TrigBjetMonitoring/src/TrigBjetMonitorAlgorithm.cxx b/Trigger/TrigMonitoring/TrigBjetMonitoring/src/TrigBjetMonitorAlgorithm.cxx index 503e71ac1b3..0f7601f1620 100644 --- a/Trigger/TrigMonitoring/TrigBjetMonitoring/src/TrigBjetMonitorAlgorithm.cxx +++ b/Trigger/TrigMonitoring/TrigBjetMonitoring/src/TrigBjetMonitorAlgorithm.cxx @@ -373,7 +373,7 @@ StatusCode TrigBjetMonitorAlgorithm::fillHistograms( const EventContext& ctx ) c std::string vtxname = m_onlineVertexContainerKey.key(); if ( vtxname.find("HLT_")==0 ) vtxname.erase(0,4); - auto vertexLinkInfo = TrigCompositeUtils::findLink<xAOD::VertexContainer>(jetLinkInfo.source, vtxname ); // CV 200120 + auto vertexLinkInfo = TrigCompositeUtils::findLink<xAOD::VertexContainer>(jetLinkInfo.source, vtxname ); // CV 200120 & MS 290620 ATH_CHECK( vertexLinkInfo.isValid() ) ; // TM 200120 const xAOD::Vertex* vtx = *(vertexLinkInfo.link); NameH = "PVz_jet_"+trigName; diff --git a/Trigger/TrigMonitoring/TrigBjetMonitoring/src/TrigBjetMonitorAlgorithm.h b/Trigger/TrigMonitoring/TrigBjetMonitoring/src/TrigBjetMonitorAlgorithm.h index 565bae13e0d..410dd20af63 100644 --- a/Trigger/TrigMonitoring/TrigBjetMonitoring/src/TrigBjetMonitorAlgorithm.h +++ b/Trigger/TrigMonitoring/TrigBjetMonitoring/src/TrigBjetMonitorAlgorithm.h @@ -31,7 +31,7 @@ class TrigBjetMonitorAlgorithm : public AthMonitorAlgorithm { std::vector<std::string> m_allChains; SG::ReadHandleKey<xAOD::MuonContainer> m_muonContainerKey; SG::ReadHandleKey<xAOD::VertexContainer> m_offlineVertexContainerKey {this,"OfflineVertexContainerName","PrimaryVertices","Key of offline primary vertexes"}; - SG::ReadHandleKey<xAOD::VertexContainer> m_onlineVertexContainerKey {this,"OnlineVertexContainerName","HLT_IDVertex_FS","Key of online bjet primary vertexes"}; + SG::ReadHandleKey<xAOD::VertexContainer> m_onlineVertexContainerKey {this,"OnlineVertexContainerName","HLT_IDVertex_FS","Key of online bjet primary vertexes"}; // MS 290620 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_onlineTrackContainerKey {this,"OnlineTrackContainerName","HLT_IDTrack_Bjet_IDTrig","Key of online tracks of bjets"}; ToolHandle<Trig::TrigDecisionTool> m_trigDec; //! -- GitLab From b395dffdc418083f223f9825f14ac537a5177202 Mon Sep 17 00:00:00 2001 From: enagy <elemer.nagy@cern.ch> Date: Thu, 2 Jul 2020 16:10:02 +0200 Subject: [PATCH 035/459] Changing ART file to the latest one which ran correctly --- .../TrigBjetMonitoring/python/TrigBjetMonitorAlgorithm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigMonitoring/TrigBjetMonitoring/python/TrigBjetMonitorAlgorithm.py b/Trigger/TrigMonitoring/TrigBjetMonitoring/python/TrigBjetMonitorAlgorithm.py index 9d047e13bd1..9f460028825 100644 --- a/Trigger/TrigMonitoring/TrigBjetMonitoring/python/TrigBjetMonitorAlgorithm.py +++ b/Trigger/TrigMonitoring/TrigBjetMonitoring/python/TrigBjetMonitorAlgorithm.py @@ -366,7 +366,7 @@ if __name__=='__main__': # file to be run w/ doRun2 = False # file = '/afs/cern.ch/user/e/ebergeas/work/public/triggermonitoring/nightly_2019-10-20T2130/AOD.pool.root' # file = '/afs/cern.ch/work/e/enagy/public/GenerateAOD/Gen_MT_240919/AOD.pool.root' - file = '/afs/cern.ch/work/e/enagy/public/ARTfiles/MCtest200520.AOD.pool.root' + file = '/afs/cern.ch/work/e/enagy/public/ARTfiles/MCtest010720.AOD.pool.root' # file to be run w/ doRun2 = True # file = '/afs/cern.ch/work/e/enagy/public/GenerateAOD/Gen_ST_240919/AOD.pool.root' # file = '/eos/atlas/atlascerngroupdisk/data-art/build-output/master/Athena/x86_64-centos7-gcc8-opt/2019-09-16T2129/TrigAnalysisTest/test_trigAna_q221_RDOtoAOD_mt1_build/AOD.pool.root' -- GitLab From 7679086c6c1893252d4cae7c961a6308b72b0236 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 7 Jul 2020 19:36:04 -0500 Subject: [PATCH 036/459] Improvements to the new HIEventShapeMapTool and ts interface --- .../HIEventUtils/HIEventShapeMapTool.h | 20 ++++++-- .../HIEventUtils/IHIEventShapeMapTool.h | 16 ++++-- .../HIEventUtils/Root/HIEventShapeMapTool.cxx | 50 +++++++++++++++++-- 3 files changed, 72 insertions(+), 14 deletions(-) diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h index 698f0497223..e25c1d88c78 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h @@ -10,22 +10,34 @@ #include "HIEventUtils/IHIEventShapeMapTool.h" #include "AsgTools/IAsgTool.h" #include "AsgTools/AsgTool.h" + #include <string> #include <map> -class HIEventShapeMapTool : virtual public asg::AsgTool +class HIEventShapeMapTool : virtual public asg::AsgTool, virtual public IHIEventShapeMapTool { ASG_TOOL_CLASS(HIEventShapeMapTool,IHIEventShapeMapTool) + public: - HIEventShapeMapTool(); + HIEventShapeMapTool(const std::string& n); virtual ~HIEventShapeMapTool() {}; + virtual StatusCode initialize() override; - virtual const HIEventShapeIndex* getIndex(std::string key) override; + virtual StatusCode insert(std::string key, const HIEventShapeIndex& index, bool clobber=false) override; + virtual const HIEventShapeIndex* getIndex(std::string key) const override; + virtual bool hasKey(std::string key) override; private: - Gaudi::Property< string > m_containerName { this, "ContainerName", "", "use Clusters boolean switch" } ; + //This type of tool should be able to retrieve all the configuration that set the event shape binning + Gaudi::Property< std::string > m_containerName { this, "ContainerName", "", "Container Name" }; + + Gaudi::Property< std::vector < std::string > > m_JetIterNames { this, "JetIterNames", {}, "Key for the shape passed in input to HI Event Shape Jet Iteration" }; + + Gaudi::Property< bool > m_useCaloCell { this, "UseCaloCell", false , "Flag for Calo Cells" }; + + Gaudi::Property< bool > m_useClusters { this, "UseClusters", true , "Flag for Clusters" }; }; #endif diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h index d9876b834b9..3bd39bb5331 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h @@ -2,28 +2,34 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -#ifndef HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H -#define HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H +#ifndef HIEVENTUTILS_IHIEVENTSHAPEMAPTOOL_H +#define HIEVENTUTILS_IHIEVENTSHAPEMAPTOOL_H #include "xAODHIEvent/HIEventShape.h" #include "HIEventUtils/HIEventShapeIndex.h" #include "AsgTools/IAsgTool.h" #include "AsgTools/AsgTool.h" + #include <string> +#include <map> class IHIEventShapeMapTool : virtual public asg::AsgTool { - ASG_TOOL_INTERFACE(IHITowerWeightTool) + ASG_TOOL_INTERFACE(IHIEventShapeMapTool) public: virtual ~IHIEventShapeMapTool() {}; + virtual StatusCode initialize() = 0; - virtual const HIEventShapeIndex* getIndex(std::string key) = 0; + virtual StatusCode insert(std::string key, const HIEventShapeIndex& index, bool clobber=false) = 0; + virtual const HIEventShapeIndex* getIndex(std::string key) const = 0; virtual bool hasKey(std::string key) = 0; - virtual std::map<std::string,HIEventShapeIndex> getMap() { return m_map; } + + virtual std::map<std::string,HIEventShapeIndex> getMap() const { return m_map; } private: std::map<std::string,HIEventShapeIndex> m_map; + }; #endif diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx index 26a87db193e..b8c1316fc45 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx @@ -6,18 +6,58 @@ #include "HIEventUtils/HIEventShapeIndex.h" #include "HIEventUtils/HIEventShapeMapTool.h" -HIEventShapeMapTool::HIEventShapeMapTool() : asg::AsgTool(){ +HIEventShapeMapTool::HIEventShapeMapTool(const std::string& n) : asg::AsgTool(n){ } -const HIEventShapeIndex* HIEventShapeMapTool::getIndex(std::string key) +StatusCode HIEventShapeMapTool::initialize(){ + //The idea is that the tool is being configured w/ all the necessary info and intialiazed accordingly + //This is to prevent access and changes afterwards, that have to be mutexed + HIEventShapeIndex index_1; + index_1.setBinning(HIEventShapeIndex::COMPACT); + //What was done before at level of HIEventShapeFillerTool + ATH_CHECK(insert(m_containerName,index_1)); + //Now the HIEventShapeJetIteration - here we depend from the initialization flags + std::vector < HIEventShapeIndex > index_i; + if( m_useCaloCell == true || (m_useCaloCell == false && m_useClusters == false) ){ + for(int i = 0; i < (int)m_JetIterNames.size(); i++) + { + index_i.push_back(HIEventShapeIndex()); + index_i.back().setBinning(HIEventShapeIndex::COMPACT); + ATH_CHECK(insert(m_JetIterNames[i],index_i.back())); + } + } + else if ( m_useCaloCell == false && m_useClusters == true ){ + for(int i = 0; i < (int)m_JetIterNames.size(); i++) + { + index_i.push_back(HIEventShapeIndex()); + index_i.back().setBinning(HIEventShapeIndex::TOWER); + ATH_CHECK(insert(m_JetIterNames[i],index_i.back())); + } + } + return StatusCode::SUCCESS; +} + +StatusCode HIEventShapeMapTool::insert(std::string key, const HIEventShapeIndex& index, bool clobber) +{ + std::map<std::string,HIEventShapeIndex>::iterator mItr=getMap().find(key); + if(mItr!=getMap().end()) + { + if(clobber) mItr->second=index; + } + else mItr=getMap().insert(std::pair<std::string,HIEventShapeIndex>(key,index)).first; + //return &(mItr->second); + return StatusCode::SUCCESS; +} + +const HIEventShapeIndex* HIEventShapeMapTool::getIndex(std::string key) const { - auto itr=m_map.find(key); - if(itr==m_map.end()) return nullptr; + auto itr=getMap().find(key); + if(itr==getMap().end()) return nullptr; return &(itr->second); } bool HIEventShapeMapTool::hasKey(std::string key) { - return (m_map.find(key)!=m_map.end()); + return (getMap().find(key)!=getMap().end()); } -- GitLab From 2765eed6ad04a405e06bb9e67e53c8ec05d0d061 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 7 Jul 2020 19:36:36 -0500 Subject: [PATCH 037/459] New HIEventShapeMapTool added to the HIEventUtils components --- .../HIEventUtils/src/components/HIEventUtils_entries.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/src/components/HIEventUtils_entries.cxx b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/src/components/HIEventUtils_entries.cxx index dabd16d614e..c76da36df6f 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/src/components/HIEventUtils_entries.cxx +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/src/components/HIEventUtils_entries.cxx @@ -2,10 +2,12 @@ #include "HIEventUtils/HIVertexSelectionTool.h" #include "HIEventUtils/HIEventSelectionTool.h" #include "HIEventUtils/HITowerWeightTool.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include "HIEventUtils/ZdcRecTool.h" DECLARE_COMPONENT( HIEventShapeSummaryTool ) DECLARE_COMPONENT( HITowerWeightTool ) +DECLARE_COMPONENT( HIEventShapeMapTool ) DECLARE_COMPONENT( HI::HIVertexSelectionTool ) DECLARE_COMPONENT( HI::HIEventSelectionTool ) DECLARE_COMPONENT( ZDC::ZdcRecTool ) -- GitLab From 68241b792913dbcf891d64b4795182e5a386e430 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Wed, 8 Jul 2020 18:05:04 -0500 Subject: [PATCH 038/459] Added the HIEventShapeMapTool and replaced the static old instance with it in the code --- .../HeavyIonRec/HIGlobal/HIGlobal/HIEventShapeFillerTool.h | 3 +++ .../HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx | 5 ++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIGlobal/HIGlobal/HIEventShapeFillerTool.h b/Reconstruction/HeavyIonRec/HIGlobal/HIGlobal/HIEventShapeFillerTool.h index 88167ae4fbe..f3a139484ec 100644 --- a/Reconstruction/HeavyIonRec/HIGlobal/HIGlobal/HIEventShapeFillerTool.h +++ b/Reconstruction/HeavyIonRec/HIGlobal/HIGlobal/HIEventShapeFillerTool.h @@ -12,6 +12,7 @@ #include "xAODCaloEvent/CaloClusterContainer.h" #include "HIEventUtils/HIEventShapeIndex.h" #include "HIEventUtils/HITowerWeightTool.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include <NavFourMom/INavigable4MomentumCollection.h> #include "StoreGate/ReadHandleKey.h" @@ -50,6 +51,8 @@ class HIEventShapeFillerTool : public asg::AsgTool, virtual public IHIEventShape ToolHandle<IHITowerWeightTool> m_towerWeightTool { this, "TowerWeightTool", "HITowerWeightTool", "Handle to Tower Weight Tool"}; + ToolHandle<IHIEventShapeMapTool> m_eventShapeMapTool { this, "EventShapeMapTool", "HIEventShapeMapTool", "Handle to Event Shape Map Tool"}; + Gaudi::Property< bool > m_useClusters { this, "UseClusters", false, "use Clusters boolean switch" } ; }; diff --git a/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx b/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx index 226f59b3aae..dc3e2993005 100644 --- a/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx +++ b/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx @@ -8,6 +8,7 @@ #include <CaloEvent/CaloCellContainer.h> #include <xAODHIEvent/HIEventShape.h> #include "HIEventUtils/HIEventShapeMap.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include <iostream> #include <iomanip> @@ -33,9 +34,7 @@ StatusCode HIEventShapeFillerTool::initializeCollection(xAOD::HIEventShapeContai //tool is initialized only once if(!m_index) { - HIEventShapeIndex index; - index.setBinning(HIEventShapeIndex::COMPACT); - m_index=HIEventShapeMap::getMap()->insert(getContainerName(),index); + m_index=m_eventShapeMapTool->getIndex(getContainerName()); } //fix this to have proper name passing //use tool to initialize event shape object -- GitLab From c608a2cad3d8e78dd5ed60a67997fc134ef8ac46 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Wed, 8 Jul 2020 18:08:56 -0500 Subject: [PATCH 039/459] Added the HIEventShapeMapTool to the HIEventShapeIterationTool and replaced the static old instance with it in the code --- .../HIJetRec/HIJetRec/HIEventShapeJetIteration.h | 3 ++- .../HIJetRec/Root/HIEventShapeJetIteration.cxx | 13 +++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIEventShapeJetIteration.h b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIEventShapeJetIteration.h index bc8902b6c6f..58de33a38f4 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIEventShapeJetIteration.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIEventShapeJetIteration.h @@ -15,6 +15,7 @@ #include "xAODCaloEvent/CaloCluster.h" #include "HIJetRec/IHISubtractorTool.h" #include "HIJetRec/IHIUEModulatorTool.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include "StoreGate/ReadHandleKey.h" #include "StoreGate/WriteHandleKey.h" @@ -46,9 +47,9 @@ public: private: - ToolHandle<IHISubtractorTool> m_subtractorTool { this, "Subtractor", "HIJetClusterSubtractorTool", "Handle to HIJetClusterSubtractorTool" }; ToolHandle<IHIUEModulatorTool> m_modulatorTool { this, "Modulator" , "HIUEModulatorTool", "Handle to HIUEModulatorTool" }; + ToolHandle<IHIEventShapeMapTool> m_eventShapeMapTool { this, "EventShapeMapTool", "HIEventShapeMapTool", "Handle to Event Shape Map Tool"}; /// \brief Name of input HIEventShapeContainer SG::ReadHandleKey<xAOD::HIEventShapeContainer> m_inputEventShapeKey { this, "InputEventShapeKey", "HIEventShape", "HIEventShape"}; diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx index 1dcb08a83f7..069581ce54c 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx @@ -9,6 +9,7 @@ #include "HIEventUtils/HIEventShapeIndex.h" #include "HIEventUtils/HIEventShapeSummaryUtils.h" #include "xAODCore/ShallowCopy.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include "StoreGate/ReadHandle.h" #include "StoreGate/WriteHandle.h" @@ -53,18 +54,22 @@ int HIEventShapeJetIteration::execute() const xAOD::HIEventShapeContainer* output_shape=nullptr; getShapes(input_shape,output_shape,true).ignore(); - const HIEventShapeIndex* es_index = HIEventShapeMap::getIndex(m_inputEventShapeKey.key()); + const HIEventShapeIndex* es_index = m_eventShapeMapTool->getIndex(m_inputEventShapeKey.key()); //New implementation after moving away from mutable if(es_index==nullptr) { + //TODO replace w/ a consistency check on binning ATH_MSG_INFO("No HIEventShapeIndex w/ name " << m_inputEventShapeKey.key() << " adding it to the map"); HIEventShapeIndex* h = new HIEventShapeIndex(); h->setBinning(input_shape); es_index = HIEventShapeMap::insert( m_inputEventShapeKey.key(), *h ); } - const HIEventShapeIndex* other_index = HIEventShapeMap::getIndex(m_outputEventShapeKey.key()); - if(!other_index) HIEventShapeMap::insert( m_inputEventShapeKey.key(), *es_index ); + const HIEventShapeIndex* other_index = m_eventShapeMapTool->getIndex(m_outputEventShapeKey.key()); + if(!other_index) { + ATH_MSG_FATAL("No HIEventShapeIndex w/ name " << m_outputEventShapeKey.key() << " adding it to the map"); + HIEventShapeMap::getMap()->insert( m_outputEventShapeKey.key(), *es_index ); + } //End of new implementation const xAOD::JetContainer* theCaloJets=0; @@ -186,7 +191,7 @@ void HIEventShapeJetIteration::updateShape(xAOD::HIEventShapeContainer* output_s { ATH_MSG_INFO("Problem, null pointer"); - es_index=HIEventShapeMap::getIndex(m_inputEventShapeKey.key()); + es_index= m_eventShapeMapTool->getIndex(m_inputEventShapeKey.key()); if(es_index==nullptr) { HIEventShapeIndex* h=new HIEventShapeIndex(); -- GitLab From 71ad8b7205552940f251d482cfaebb857316a3a7 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Wed, 8 Jul 2020 18:09:25 -0500 Subject: [PATCH 040/459] First implementation in python of the HIEventShapeMapTool --- .../HeavyIonRec/HIJetRec/python/HIJetRecUtils.py | 6 ++++++ .../HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py index 345e86b5171..76c5de8c025 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py @@ -207,6 +207,11 @@ def ApplySubtractionToClusters(**kwargs) : jtm.jetrecs += [theAlg] jtm.HIJetRecs+=[theAlg] +#New util - adds maps keys to the maps tool before initialization +def EquipMapTool(map_tool, shape_name, **kwargs) : + out_shape_name=shape_name + if 'suffix' in kwargs.keys() : out_shape_name+='_%s' % kwargs['suffix'] + map_tool.JetIterNames+=[ shape_name, out_shape_name ] def AddIteration(seed_container,shape_name, **kwargs) : @@ -239,6 +244,7 @@ def AddIteration(seed_container,shape_name, **kwargs) : iter_tool.Modulator=mod_tool iter_tool.ShallowCopy=False iter_tool.ModulationEventShapeKey=mod_shape_key + iter_tool.EventShapeMapTool=jtm.theMapTool if 'track_jet_seeds' in kwargs.keys() : iter_tool.TrackJetSeedContainerKey=kwargs['track_jet_seeds'] diff --git a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py index 6ffa3c145f0..c32b85eecec 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py @@ -58,12 +58,22 @@ if is_mc_or_overlay : theCalibTool.CalibSequence='EtaJES' theCalibTool.lock() +#Import the map tool - it will have to harvest configuration along the path +from HIEventUtils.HIEventUtilsConf import HIEventShapeMapTool +theMapTool=HIEventShapeMapTool() + if not HIJetFlags.DoCellBasedSubtraction(): #Make new event shape at tower level from HIGlobal.HIGlobalConf import HIEventShapeMaker from HIGlobal.HIGlobalConf import HIEventShapeFillerTool #EventShapeKey set to point to weighted container, can remove code on L16 EventShapeKey=jobproperties.HIGlobalFlags.EventShapeKey()+'Weighted' + #Wrapping up + theMapTool.ContainerName=EventShapeKey + EquipMapTool(map_tool=theMapTool, shape_name=EventShapeKey, suffix='iter0') + EquipMapTool(map_tool=theMapTool, shape_name=EventShapeKey, suffix='iter1') + jtm.add(theMapTool) + ESAlg_W=HIEventShapeMaker("ESAlg_W") ESAlg_W.OutputContainerKey=EventShapeKey ESAlg_W.UseCaloCell=False @@ -90,6 +100,7 @@ if not HIJetFlags.DoCellBasedSubtraction(): from AthenaCommon.AppMgr import ToolSvc ToolSvc += HITowerWeightTool() ESFiller.TowerWeightTool=TWTool + ESFiller.EventShapeMapTool=theMapTool #Add to top sequence ESAlg_W.HIEventShapeFillerTool=ESFiller -- GitLab From 8f568291c0a2440a47825bfa3c62229f43bfcdc9 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 30 Jun 2020 11:02:02 -0500 Subject: [PATCH 041/459] Adding the new HIEventShapeMapTool and its interface --- .../HIEventUtils/HIEventShapeMapTool.h | 31 +++++++++++++++++++ .../HIEventUtils/IHIEventShapeMapTool.h | 29 +++++++++++++++++ .../HIEventUtils/Root/HIEventShapeMapTool.cxx | 23 ++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h create mode 100644 PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h create mode 100644 PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h new file mode 100644 index 00000000000..698f0497223 --- /dev/null +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h @@ -0,0 +1,31 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H +#define HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H + +#include "xAODHIEvent/HIEventShape.h" +#include "HIEventUtils/HIEventShapeIndex.h" +#include "HIEventUtils/IHIEventShapeMapTool.h" +#include "AsgTools/IAsgTool.h" +#include "AsgTools/AsgTool.h" +#include <string> +#include <map> + +class HIEventShapeMapTool : virtual public asg::AsgTool +{ + ASG_TOOL_CLASS(HIEventShapeMapTool,IHIEventShapeMapTool) + public: + + HIEventShapeMapTool(); + virtual ~HIEventShapeMapTool() {}; + virtual StatusCode initialize() override; + virtual const HIEventShapeIndex* getIndex(std::string key) override; + virtual bool hasKey(std::string key) override; + + private: + Gaudi::Property< string > m_containerName { this, "ContainerName", "", "use Clusters boolean switch" } ; + +}; +#endif diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h new file mode 100644 index 00000000000..d9876b834b9 --- /dev/null +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h @@ -0,0 +1,29 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H +#define HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H + +#include "xAODHIEvent/HIEventShape.h" +#include "HIEventUtils/HIEventShapeIndex.h" +#include "AsgTools/IAsgTool.h" +#include "AsgTools/AsgTool.h" +#include <string> + +class IHIEventShapeMapTool : virtual public asg::AsgTool +{ + ASG_TOOL_INTERFACE(IHITowerWeightTool) + + public: + + virtual ~IHIEventShapeMapTool() {}; + virtual StatusCode initialize() = 0; + virtual const HIEventShapeIndex* getIndex(std::string key) = 0; + virtual bool hasKey(std::string key) = 0; + virtual std::map<std::string,HIEventShapeIndex> getMap() { return m_map; } + + private: + std::map<std::string,HIEventShapeIndex> m_map; +}; +#endif diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx new file mode 100644 index 00000000000..26a87db193e --- /dev/null +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx @@ -0,0 +1,23 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +#include "xAODHIEvent/HIEventShape.h" +#include "HIEventUtils/HIEventShapeIndex.h" +#include "HIEventUtils/HIEventShapeMapTool.h" + +HIEventShapeMapTool::HIEventShapeMapTool() : asg::AsgTool(){ + +} + +const HIEventShapeIndex* HIEventShapeMapTool::getIndex(std::string key) +{ + auto itr=m_map.find(key); + if(itr==m_map.end()) return nullptr; + return &(itr->second); +} + +bool HIEventShapeMapTool::hasKey(std::string key) +{ + return (m_map.find(key)!=m_map.end()); +} -- GitLab From 4bcd6ce2f36a06761e8ea63b31325aad9788cf9f Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 7 Jul 2020 19:36:04 -0500 Subject: [PATCH 042/459] Improvements to the new HIEventShapeMapTool and ts interface --- .../HIEventUtils/HIEventShapeMapTool.h | 20 ++++++-- .../HIEventUtils/IHIEventShapeMapTool.h | 16 ++++-- .../HIEventUtils/Root/HIEventShapeMapTool.cxx | 50 +++++++++++++++++-- 3 files changed, 72 insertions(+), 14 deletions(-) diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h index 698f0497223..e25c1d88c78 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h @@ -10,22 +10,34 @@ #include "HIEventUtils/IHIEventShapeMapTool.h" #include "AsgTools/IAsgTool.h" #include "AsgTools/AsgTool.h" + #include <string> #include <map> -class HIEventShapeMapTool : virtual public asg::AsgTool +class HIEventShapeMapTool : virtual public asg::AsgTool, virtual public IHIEventShapeMapTool { ASG_TOOL_CLASS(HIEventShapeMapTool,IHIEventShapeMapTool) + public: - HIEventShapeMapTool(); + HIEventShapeMapTool(const std::string& n); virtual ~HIEventShapeMapTool() {}; + virtual StatusCode initialize() override; - virtual const HIEventShapeIndex* getIndex(std::string key) override; + virtual StatusCode insert(std::string key, const HIEventShapeIndex& index, bool clobber=false) override; + virtual const HIEventShapeIndex* getIndex(std::string key) const override; + virtual bool hasKey(std::string key) override; private: - Gaudi::Property< string > m_containerName { this, "ContainerName", "", "use Clusters boolean switch" } ; + //This type of tool should be able to retrieve all the configuration that set the event shape binning + Gaudi::Property< std::string > m_containerName { this, "ContainerName", "", "Container Name" }; + + Gaudi::Property< std::vector < std::string > > m_JetIterNames { this, "JetIterNames", {}, "Key for the shape passed in input to HI Event Shape Jet Iteration" }; + + Gaudi::Property< bool > m_useCaloCell { this, "UseCaloCell", false , "Flag for Calo Cells" }; + + Gaudi::Property< bool > m_useClusters { this, "UseClusters", true , "Flag for Clusters" }; }; #endif diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h index d9876b834b9..3bd39bb5331 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h @@ -2,28 +2,34 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -#ifndef HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H -#define HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H +#ifndef HIEVENTUTILS_IHIEVENTSHAPEMAPTOOL_H +#define HIEVENTUTILS_IHIEVENTSHAPEMAPTOOL_H #include "xAODHIEvent/HIEventShape.h" #include "HIEventUtils/HIEventShapeIndex.h" #include "AsgTools/IAsgTool.h" #include "AsgTools/AsgTool.h" + #include <string> +#include <map> class IHIEventShapeMapTool : virtual public asg::AsgTool { - ASG_TOOL_INTERFACE(IHITowerWeightTool) + ASG_TOOL_INTERFACE(IHIEventShapeMapTool) public: virtual ~IHIEventShapeMapTool() {}; + virtual StatusCode initialize() = 0; - virtual const HIEventShapeIndex* getIndex(std::string key) = 0; + virtual StatusCode insert(std::string key, const HIEventShapeIndex& index, bool clobber=false) = 0; + virtual const HIEventShapeIndex* getIndex(std::string key) const = 0; virtual bool hasKey(std::string key) = 0; - virtual std::map<std::string,HIEventShapeIndex> getMap() { return m_map; } + + virtual std::map<std::string,HIEventShapeIndex> getMap() const { return m_map; } private: std::map<std::string,HIEventShapeIndex> m_map; + }; #endif diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx index 26a87db193e..b8c1316fc45 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx @@ -6,18 +6,58 @@ #include "HIEventUtils/HIEventShapeIndex.h" #include "HIEventUtils/HIEventShapeMapTool.h" -HIEventShapeMapTool::HIEventShapeMapTool() : asg::AsgTool(){ +HIEventShapeMapTool::HIEventShapeMapTool(const std::string& n) : asg::AsgTool(n){ } -const HIEventShapeIndex* HIEventShapeMapTool::getIndex(std::string key) +StatusCode HIEventShapeMapTool::initialize(){ + //The idea is that the tool is being configured w/ all the necessary info and intialiazed accordingly + //This is to prevent access and changes afterwards, that have to be mutexed + HIEventShapeIndex index_1; + index_1.setBinning(HIEventShapeIndex::COMPACT); + //What was done before at level of HIEventShapeFillerTool + ATH_CHECK(insert(m_containerName,index_1)); + //Now the HIEventShapeJetIteration - here we depend from the initialization flags + std::vector < HIEventShapeIndex > index_i; + if( m_useCaloCell == true || (m_useCaloCell == false && m_useClusters == false) ){ + for(int i = 0; i < (int)m_JetIterNames.size(); i++) + { + index_i.push_back(HIEventShapeIndex()); + index_i.back().setBinning(HIEventShapeIndex::COMPACT); + ATH_CHECK(insert(m_JetIterNames[i],index_i.back())); + } + } + else if ( m_useCaloCell == false && m_useClusters == true ){ + for(int i = 0; i < (int)m_JetIterNames.size(); i++) + { + index_i.push_back(HIEventShapeIndex()); + index_i.back().setBinning(HIEventShapeIndex::TOWER); + ATH_CHECK(insert(m_JetIterNames[i],index_i.back())); + } + } + return StatusCode::SUCCESS; +} + +StatusCode HIEventShapeMapTool::insert(std::string key, const HIEventShapeIndex& index, bool clobber) +{ + std::map<std::string,HIEventShapeIndex>::iterator mItr=getMap().find(key); + if(mItr!=getMap().end()) + { + if(clobber) mItr->second=index; + } + else mItr=getMap().insert(std::pair<std::string,HIEventShapeIndex>(key,index)).first; + //return &(mItr->second); + return StatusCode::SUCCESS; +} + +const HIEventShapeIndex* HIEventShapeMapTool::getIndex(std::string key) const { - auto itr=m_map.find(key); - if(itr==m_map.end()) return nullptr; + auto itr=getMap().find(key); + if(itr==getMap().end()) return nullptr; return &(itr->second); } bool HIEventShapeMapTool::hasKey(std::string key) { - return (m_map.find(key)!=m_map.end()); + return (getMap().find(key)!=getMap().end()); } -- GitLab From 17b95d84b67ce0139e32aff24b3c82f5689cdaee Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 7 Jul 2020 19:36:36 -0500 Subject: [PATCH 043/459] New HIEventShapeMapTool added to the HIEventUtils components --- .../HIEventUtils/src/components/HIEventUtils_entries.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/src/components/HIEventUtils_entries.cxx b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/src/components/HIEventUtils_entries.cxx index dabd16d614e..c76da36df6f 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/src/components/HIEventUtils_entries.cxx +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/src/components/HIEventUtils_entries.cxx @@ -2,10 +2,12 @@ #include "HIEventUtils/HIVertexSelectionTool.h" #include "HIEventUtils/HIEventSelectionTool.h" #include "HIEventUtils/HITowerWeightTool.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include "HIEventUtils/ZdcRecTool.h" DECLARE_COMPONENT( HIEventShapeSummaryTool ) DECLARE_COMPONENT( HITowerWeightTool ) +DECLARE_COMPONENT( HIEventShapeMapTool ) DECLARE_COMPONENT( HI::HIVertexSelectionTool ) DECLARE_COMPONENT( HI::HIEventSelectionTool ) DECLARE_COMPONENT( ZDC::ZdcRecTool ) -- GitLab From 065030be8738baa70f1eb723a2849991da6dbe51 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Wed, 8 Jul 2020 18:05:04 -0500 Subject: [PATCH 044/459] Added the HIEventShapeMapTool and replaced the static old instance with it in the code --- .../HeavyIonRec/HIGlobal/HIGlobal/HIEventShapeFillerTool.h | 3 +++ .../HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx | 5 ++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIGlobal/HIGlobal/HIEventShapeFillerTool.h b/Reconstruction/HeavyIonRec/HIGlobal/HIGlobal/HIEventShapeFillerTool.h index 88167ae4fbe..f3a139484ec 100644 --- a/Reconstruction/HeavyIonRec/HIGlobal/HIGlobal/HIEventShapeFillerTool.h +++ b/Reconstruction/HeavyIonRec/HIGlobal/HIGlobal/HIEventShapeFillerTool.h @@ -12,6 +12,7 @@ #include "xAODCaloEvent/CaloClusterContainer.h" #include "HIEventUtils/HIEventShapeIndex.h" #include "HIEventUtils/HITowerWeightTool.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include <NavFourMom/INavigable4MomentumCollection.h> #include "StoreGate/ReadHandleKey.h" @@ -50,6 +51,8 @@ class HIEventShapeFillerTool : public asg::AsgTool, virtual public IHIEventShape ToolHandle<IHITowerWeightTool> m_towerWeightTool { this, "TowerWeightTool", "HITowerWeightTool", "Handle to Tower Weight Tool"}; + ToolHandle<IHIEventShapeMapTool> m_eventShapeMapTool { this, "EventShapeMapTool", "HIEventShapeMapTool", "Handle to Event Shape Map Tool"}; + Gaudi::Property< bool > m_useClusters { this, "UseClusters", false, "use Clusters boolean switch" } ; }; diff --git a/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx b/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx index afb7b5a186e..ab02fe32796 100644 --- a/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx +++ b/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx @@ -8,6 +8,7 @@ #include <CaloEvent/CaloCellContainer.h> #include <xAODHIEvent/HIEventShape.h> #include "HIEventUtils/HIEventShapeMap.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include <iostream> #include <iomanip> @@ -32,9 +33,7 @@ StatusCode HIEventShapeFillerTool::initializeCollection(xAOD::HIEventShapeContai //tool is initialized only once if(!m_index) { - HIEventShapeIndex index; - index.setBinning(HIEventShapeIndex::COMPACT); - m_index=HIEventShapeMap::getMap()->insert(getContainerName(),index); + m_index=m_eventShapeMapTool->getIndex(getContainerName()); } //fix this to have proper name passing //use tool to initialize event shape object -- GitLab From afe6c02c67154b4c3cfacd61a05b2dc305ca90da Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Wed, 8 Jul 2020 18:08:56 -0500 Subject: [PATCH 045/459] Added the HIEventShapeMapTool to the HIEventShapeIterationTool and replaced the static old instance with it in the code --- .../HIJetRec/HIJetRec/HIEventShapeJetIteration.h | 3 ++- .../HIJetRec/Root/HIEventShapeJetIteration.cxx | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIEventShapeJetIteration.h b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIEventShapeJetIteration.h index bc8902b6c6f..58de33a38f4 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIEventShapeJetIteration.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIEventShapeJetIteration.h @@ -15,6 +15,7 @@ #include "xAODCaloEvent/CaloCluster.h" #include "HIJetRec/IHISubtractorTool.h" #include "HIJetRec/IHIUEModulatorTool.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include "StoreGate/ReadHandleKey.h" #include "StoreGate/WriteHandleKey.h" @@ -46,9 +47,9 @@ public: private: - ToolHandle<IHISubtractorTool> m_subtractorTool { this, "Subtractor", "HIJetClusterSubtractorTool", "Handle to HIJetClusterSubtractorTool" }; ToolHandle<IHIUEModulatorTool> m_modulatorTool { this, "Modulator" , "HIUEModulatorTool", "Handle to HIUEModulatorTool" }; + ToolHandle<IHIEventShapeMapTool> m_eventShapeMapTool { this, "EventShapeMapTool", "HIEventShapeMapTool", "Handle to Event Shape Map Tool"}; /// \brief Name of input HIEventShapeContainer SG::ReadHandleKey<xAOD::HIEventShapeContainer> m_inputEventShapeKey { this, "InputEventShapeKey", "HIEventShape", "HIEventShape"}; diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx index 555e6036eff..b2909d534d7 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx @@ -9,6 +9,7 @@ #include "HIEventUtils/HIEventShapeIndex.h" #include "HIEventUtils/HIEventShapeSummaryUtils.h" #include "xAODCore/ShallowCopy.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include "StoreGate/ReadHandle.h" #include "StoreGate/WriteHandle.h" @@ -53,20 +54,22 @@ int HIEventShapeJetIteration::execute() const xAOD::HIEventShapeContainer* output_shape=nullptr; getShapes(input_shape,output_shape,true).ignore(); - const HIEventShapeIndex* es_index = HIEventShapeMap::getIndex(m_inputEventShapeKey.key()); + const HIEventShapeIndex* es_index = m_eventShapeMapTool->getIndex(m_inputEventShapeKey.key()); //New implementation after moving away from mutable ATH_MSG_INFO("HIEventShapeJetIteration: found index for " << m_inputEventShapeKey.key()); if(es_index==nullptr) { + //TODO replace w/ a consistency check on binning ATH_MSG_INFO("No HIEventShapeIndex w/ name " << m_inputEventShapeKey.key() << " adding it to the map"); HIEventShapeIndex* h = new HIEventShapeIndex(); h->setBinning(input_shape); es_index = HIEventShapeMap::insert( m_inputEventShapeKey.key(), *h ); } - const HIEventShapeIndex* other_index = HIEventShapeMap::getIndex(m_outputEventShapeKey.key()); + const HIEventShapeIndex* other_index = m_eventShapeMapTool->getIndex(m_outputEventShapeKey.key()); if(!other_index) { + ATH_MSG_FATAL("No HIEventShapeIndex w/ name " << m_outputEventShapeKey.key() << " adding it to the map"); HIEventShapeMap::getMap()->insert( m_outputEventShapeKey.key(), *es_index ); } //End of new implementation @@ -190,7 +193,7 @@ void HIEventShapeJetIteration::updateShape(xAOD::HIEventShapeContainer* output_s { ATH_MSG_INFO("Problem, null pointer"); - es_index=HIEventShapeMap::getIndex(m_inputEventShapeKey.key()); + es_index= m_eventShapeMapTool->getIndex(m_inputEventShapeKey.key()); if(es_index==nullptr) { HIEventShapeIndex* h=new HIEventShapeIndex(); -- GitLab From 2a3e79b5a6bf1d1cc0a84afdfa8a4523993dd82b Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Wed, 8 Jul 2020 18:09:25 -0500 Subject: [PATCH 046/459] First implementation in python of the HIEventShapeMapTool --- .../HeavyIonRec/HIJetRec/python/HIJetRecUtils.py | 8 +++++++- .../HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py | 11 +++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py index 34e27ed98de..f0fbfea1ad1 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py @@ -237,6 +237,11 @@ def GetConstituentsModifierTool(**kwargs) : jtm.add(cmod) return cmod +def EquipMapTool(map_tool, shape_name, **kwargs) : + out_shape_name=shape_name + if 'suffix' in kwargs.keys() : out_shape_name+='_%s' % kwargs['suffix'] + map_tool.JetIterNames+=[ shape_name, out_shape_name ] + def AddIteration(seed_container,shape_name, **kwargs) : out_shape_name=shape_name @@ -268,6 +273,7 @@ def AddIteration(seed_container,shape_name, **kwargs) : iter_tool.Modulator=mod_tool iter_tool.ShallowCopy=False iter_tool.ModulationEventShapeKey=mod_shape_key + iter_tool.EventShapeMapTool=jtm.theMapTool if 'track_jet_seeds' in kwargs.keys() : iter_tool.TrackJetSeedContainerKey=kwargs['track_jet_seeds'] @@ -305,7 +311,7 @@ def JetAlgFromTools(rtools, suffix="HI",persistify=True) : # Add the PseudoJetAlgorithm # To avoid massive refactoring and to preserve familiarity, # jet guys kept calling things "getters", but these are already - # PseudoJetAlgorithms as they eliminated the wrappers + # PseudoJetAlgorithms as they eliminated the wrappers for getter in jtm.allGetters: print ('Adding PseudoJetAlgorithm %s' % getter.name) print ('Input Container %s' % getter.InputContainer) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py index 11211811891..e7f91f3a377 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py @@ -58,12 +58,22 @@ if is_mc_or_overlay : theCalibTool.CalibSequence='EtaJES' theCalibTool.lock() +#Import the map tool - it will have to harvest configuration along the path +from HIEventUtils.HIEventUtilsConf import HIEventShapeMapTool +theMapTool=HIEventShapeMapTool() + if not HIJetFlags.DoCellBasedSubtraction(): #Make new event shape at tower level from HIGlobal.HIGlobalConf import HIEventShapeMaker from HIGlobal.HIGlobalConf import HIEventShapeFillerTool #EventShapeKey set to point to weighted container, can remove code on L16 EventShapeKey=jobproperties.HIGlobalFlags.EventShapeKey()+'Weighted' + #Wrapping up + theMapTool.ContainerName=EventShapeKey + EquipMapTool(map_tool=theMapTool, shape_name=EventShapeKey, suffix='iter0') + EquipMapTool(map_tool=theMapTool, shape_name=EventShapeKey, suffix='iter1') + jtm.add(theMapTool) + ESAlg_W=HIEventShapeMaker("ESAlg_W") ESAlg_W.OutputContainerKey=EventShapeKey ESAlg_W.UseCaloCell=False @@ -90,6 +100,7 @@ if not HIJetFlags.DoCellBasedSubtraction(): from AthenaCommon.AppMgr import ToolSvc ToolSvc += HITowerWeightTool() ESFiller.TowerWeightTool=TWTool + ESFiller.EventShapeMapTool=theMapTool #Add to top sequence ESAlg_W.HIEventShapeFillerTool=ESFiller -- GitLab From bd32318af7fe8b64d5d5243e9a24da5e4d3918a2 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Mon, 13 Jul 2020 11:59:41 +0100 Subject: [PATCH 047/459] Thread saftey check --- .../MuonRPC_CnvTools/MuonRPC_CnvTools/ATLAS_CHECK_THREAD_SAFETY | 1 + .../MuonTGC_CnvTools/MuonTGC_CnvTools/ATLAS_CHECK_THREAD_SAFETY | 1 + 2 files changed, 2 insertions(+) create mode 100644 MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/MuonRPC_CnvTools/ATLAS_CHECK_THREAD_SAFETY create mode 100644 MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/MuonTGC_CnvTools/ATLAS_CHECK_THREAD_SAFETY diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/MuonRPC_CnvTools/ATLAS_CHECK_THREAD_SAFETY b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/MuonRPC_CnvTools/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..bc2954bf389 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/MuonRPC_CnvTools/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +MuonSpectrometer/MuonCnv/MuonRPC_CnvTools \ No newline at end of file diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/MuonTGC_CnvTools/ATLAS_CHECK_THREAD_SAFETY b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/MuonTGC_CnvTools/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..cdb8107fb97 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/MuonTGC_CnvTools/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +MuonSpectrometer/MuonCnv/MuonTGC_CnvTools \ No newline at end of file -- GitLab From a982688b55cd958235d1b0a76e0a284628d873a5 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Mon, 13 Jul 2020 13:48:26 +0100 Subject: [PATCH 048/459] Adding threaad safety check to RPC decoding --- .../MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx | 7 +++++++ .../MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx index 863cf9d74ad..2fb356ccbfa 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx @@ -2,6 +2,13 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ +/// This code is used in both MT and single-thread +/// However the MT code uses the const cast in a single-thread +/// mode by transfering the contents to a thread-safe container +/// in order to prevent complex adjustments in the core decode functions +/// As such, it should not be flagged at this stage as unsafe +#include "CxxUtils/checker_macros.h" +ATLAS_NO_CHECK_FILE_THREAD_SAFETY; #include "RpcRdoToPrepDataTool.h" diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h index d871817d787..52bd5439a99 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h @@ -5,6 +5,14 @@ #ifndef MUONRDOTOPREPDATA_RPCRDOTOPREPDATATOOL_H #define MUONRDOTOPREPDATA_RPCRDOTOPREPDATATOOL_H +/// This code is used in both MT and single-thread +/// However the MT code uses the const cast in a single-thread +/// mode by transfering the contents to a thread-safe container +/// in order to prevent complex adjustments in the core decode functions +/// As such, it should not be flagged at this stage as unsafe +#include "CxxUtils/checker_macros.h" +ATLAS_NO_CHECK_FILE_THREAD_SAFETY; + #include "RpcRdoToPrepDataToolCore.h" namespace Muon { -- GitLab From ad41ef570a4032be3437e18cbd41911eae779ea2 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Mon, 13 Jul 2020 15:45:48 +0100 Subject: [PATCH 049/459] Adding checks to TGC --- .../MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.cxx | 5 +++++ .../MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.h | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.cxx b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.cxx index 864fe645098..8cce7a4a914 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.cxx @@ -2,6 +2,11 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ +/// This code is only used in the single-thread setup +/// As such, deactivating the check in this file +#include "CxxUtils/checker_macros.h" +ATLAS_NO_CHECK_FILE_THREAD_SAFETY; + #include "TgcRdoToPrepDataTool.h" #include "MuonDigitContainer/TgcDigit.h" diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.h index 8526cce9fb8..6eea53359c3 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.h +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.h @@ -5,6 +5,11 @@ #ifndef MUONTGC_CNVTOOLS_TGCRDOTOPREPDATATOOL_H #define MUONTGC_CNVTOOLS_TGCRDOTOPREPDATATOOL_H +/// This code is only used in the single-thread setup +/// As such, deactivating the check in this file +#include "CxxUtils/checker_macros.h" +ATLAS_NO_CHECK_FILE_THREAD_SAFETY; + #include "TgcRdoToPrepDataToolCore.h" namespace Muon -- GitLab From f95963fe2c42a8db22a023489c769272a8b5a6be Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 14 Jul 2020 11:50:58 -0500 Subject: [PATCH 050/459] New HIEventShapeMapTool w/ only TOWER and COMPACT available --- .../HIEventUtils/HIEventShapeMapTool.h | 15 +++++---------- .../HIEventUtils/IHIEventShapeMapTool.h | 11 +++++------ 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h index e25c1d88c78..0b1ea402788 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h @@ -8,6 +8,7 @@ #include "xAODHIEvent/HIEventShape.h" #include "HIEventUtils/HIEventShapeIndex.h" #include "HIEventUtils/IHIEventShapeMapTool.h" +#include "xAODHIEvent/HIEventShapeContainer.h" #include "AsgTools/IAsgTool.h" #include "AsgTools/AsgTool.h" @@ -24,20 +25,14 @@ class HIEventShapeMapTool : virtual public asg::AsgTool, virtual public IHIEvent virtual ~HIEventShapeMapTool() {}; virtual StatusCode initialize() override; - virtual StatusCode insert(std::string key, const HIEventShapeIndex& index, bool clobber=false) override; - virtual const HIEventShapeIndex* getIndex(std::string key) const override; + virtual const HIEventShapeIndex* getIndex(IHIEventShapeMapTool::BinningScheme key) const override; + virtual const HIEventShapeIndex* getIndexFromShape(const xAOD::HIEventShapeContainer* shape) const override; - virtual bool hasKey(std::string key) override; + virtual bool hasKey(BinningScheme key) override; private: - //This type of tool should be able to retrieve all the configuration that set the event shape binning - Gaudi::Property< std::string > m_containerName { this, "ContainerName", "", "Container Name" }; - Gaudi::Property< std::vector < std::string > > m_JetIterNames { this, "JetIterNames", {}, "Key for the shape passed in input to HI Event Shape Jet Iteration" }; - - Gaudi::Property< bool > m_useCaloCell { this, "UseCaloCell", false , "Flag for Calo Cells" }; - - Gaudi::Property< bool > m_useClusters { this, "UseClusters", true , "Flag for Clusters" }; + std::map< IHIEventShapeMapTool::BinningScheme ,HIEventShapeIndex > m_map; }; #endif diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h index 3bd39bb5331..3159d4e41ae 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h @@ -7,6 +7,7 @@ #include "xAODHIEvent/HIEventShape.h" #include "HIEventUtils/HIEventShapeIndex.h" +#include "xAODHIEvent/HIEventShapeContainer.h" #include "AsgTools/IAsgTool.h" #include "AsgTools/AsgTool.h" @@ -18,18 +19,16 @@ class IHIEventShapeMapTool : virtual public asg::AsgTool ASG_TOOL_INTERFACE(IHIEventShapeMapTool) public: + enum BinningScheme{ TOWER = 100, COMPACT = 562 }; virtual ~IHIEventShapeMapTool() {}; virtual StatusCode initialize() = 0; - virtual StatusCode insert(std::string key, const HIEventShapeIndex& index, bool clobber=false) = 0; - virtual const HIEventShapeIndex* getIndex(std::string key) const = 0; - virtual bool hasKey(std::string key) = 0; + virtual const HIEventShapeIndex* getIndex(IHIEventShapeMapTool::BinningScheme key) const = 0; + virtual const HIEventShapeIndex* getIndexFromShape(const xAOD::HIEventShapeContainer* shape) const = 0; - virtual std::map<std::string,HIEventShapeIndex> getMap() const { return m_map; } + virtual bool hasKey(IHIEventShapeMapTool::BinningScheme key) = 0; - private: - std::map<std::string,HIEventShapeIndex> m_map; }; #endif -- GitLab From 38ef1e5baeade6574e9e8b4095c12e56c36d8c54 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 14 Jul 2020 12:06:51 -0500 Subject: [PATCH 051/459] New HIEventShapeMapTool w/ only TOWER and COMPACT available --- .../HIEventUtils/Root/HIEventShapeMapTool.cxx | 72 +++++++++---------- 1 file changed, 35 insertions(+), 37 deletions(-) diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx index b8c1316fc45..1f013f23cd5 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx @@ -11,53 +11,51 @@ HIEventShapeMapTool::HIEventShapeMapTool(const std::string& n) : asg::AsgTool(n) } StatusCode HIEventShapeMapTool::initialize(){ - //The idea is that the tool is being configured w/ all the necessary info and intialiazed accordingly - //This is to prevent access and changes afterwards, that have to be mutexed - HIEventShapeIndex index_1; + + HIEventShapeIndex index_1, index_2; index_1.setBinning(HIEventShapeIndex::COMPACT); - //What was done before at level of HIEventShapeFillerTool - ATH_CHECK(insert(m_containerName,index_1)); - //Now the HIEventShapeJetIteration - here we depend from the initialization flags - std::vector < HIEventShapeIndex > index_i; - if( m_useCaloCell == true || (m_useCaloCell == false && m_useClusters == false) ){ - for(int i = 0; i < (int)m_JetIterNames.size(); i++) - { - index_i.push_back(HIEventShapeIndex()); - index_i.back().setBinning(HIEventShapeIndex::COMPACT); - ATH_CHECK(insert(m_JetIterNames[i],index_i.back())); - } - } - else if ( m_useCaloCell == false && m_useClusters == true ){ - for(int i = 0; i < (int)m_JetIterNames.size(); i++) - { - index_i.push_back(HIEventShapeIndex()); - index_i.back().setBinning(HIEventShapeIndex::TOWER); - ATH_CHECK(insert(m_JetIterNames[i],index_i.back())); - } - } + index_2.setBinning(HIEventShapeIndex::TOWER); + m_map[ IHIEventShapeMapTool::COMPACT ] = index_1; + m_map[ IHIEventShapeMapTool::TOWER ] = index_2; + return StatusCode::SUCCESS; } -StatusCode HIEventShapeMapTool::insert(std::string key, const HIEventShapeIndex& index, bool clobber) +const HIEventShapeIndex* HIEventShapeMapTool::getIndex(IHIEventShapeMapTool::BinningScheme key) const { - std::map<std::string,HIEventShapeIndex>::iterator mItr=getMap().find(key); - if(mItr!=getMap().end()) - { - if(clobber) mItr->second=index; + std::string myKey; + if(key == IHIEventShapeMapTool::COMPACT) myKey="COMPACT"; + else if (key == IHIEventShapeMapTool::TOWER ) myKey="TOWER"; + else myKey = "UNKNOWN SHAPE"; + + auto itr=m_map.find(key); + if(itr==m_map.end()) { + ATH_MSG_ERROR("HIEventShapeMapTool failed to find map w/ format " << myKey); + return nullptr; } - else mItr=getMap().insert(std::pair<std::string,HIEventShapeIndex>(key,index)).first; - //return &(mItr->second); - return StatusCode::SUCCESS; + return &(itr->second); } -const HIEventShapeIndex* HIEventShapeMapTool::getIndex(std::string key) const +const HIEventShapeIndex* HIEventShapeMapTool::getIndexFromShape(const xAOD::HIEventShapeContainer* shape) const { - auto itr=getMap().find(key); - if(itr==getMap().end()) return nullptr; - return &(itr->second); + ATH_MSG_INFO("In getIndexFromShape, Shape size " << shape->size() << " And TOWER is: " << (HI::TowerBins::numLayers()*HI::TowerBins::numEtaBins())); + if(shape->size() == IHIEventShapeMapTool::TOWER){ + //TOWER + auto itr = m_map.find( IHIEventShapeMapTool::TOWER ); + return &(itr->second); + } + else if(shape->size() == IHIEventShapeMapTool::COMPACT){ + //COMPACT + auto itr = m_map.find( IHIEventShapeMapTool::COMPACT ); + return &(itr->second); + } + else { + ATH_MSG_FATAL("Event Shape w/ unknown binning! Not TOWER or COMPACT. Not possible to get Index"); + return nullptr; + } } -bool HIEventShapeMapTool::hasKey(std::string key) +bool HIEventShapeMapTool::hasKey(IHIEventShapeMapTool::BinningScheme key) { - return (getMap().find(key)!=getMap().end()); + return (m_map.find(key)!=m_map.end()); } -- GitLab From 6b7dbb3c751453da3e78878310d7fb57a44fd4c5 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 14 Jul 2020 12:09:59 -0500 Subject: [PATCH 052/459] HIEventShapeMapTool inserted in python --- .../HIGlobal/share/HIGlobal_jobOptions.py | 6 +++++ .../HIJetRec/python/SubtractedCellGetter.py | 16 ++++++------- .../HIJetRec/share/HIJetRec_jobOptions.py | 23 ++++++++----------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIGlobal/share/HIGlobal_jobOptions.py b/Reconstruction/HeavyIonRec/HIGlobal/share/HIGlobal_jobOptions.py index e57b5f5e6de..590dda514cf 100755 --- a/Reconstruction/HeavyIonRec/HIGlobal/share/HIGlobal_jobOptions.py +++ b/Reconstruction/HeavyIonRec/HIGlobal/share/HIGlobal_jobOptions.py @@ -15,6 +15,12 @@ theAlg.ReadExistingKey=shape_key theAlg.OutputContainerKey=shape_key theAlg.HIEventShapeFillerTool=HIEventShapeFillerTool() theAlg.OrderOfFlowHarmonics=jobproperties.HIGlobalFlags.NumFlowHarmonics() + +#Import the map tool +from HIEventUtils.HIEventUtilsConf import HIEventShapeMapTool +theMapTool=HIEventShapeMapTool() +theAlg.HIEventShapeFillerTool.EventShapeMapTool=theMapTool + from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() topSequence += theAlg diff --git a/Reconstruction/HeavyIonRec/HIJetRec/python/SubtractedCellGetter.py b/Reconstruction/HeavyIonRec/HIJetRec/python/SubtractedCellGetter.py index 4a85a2d8b85..483afc26640 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/python/SubtractedCellGetter.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/python/SubtractedCellGetter.py @@ -27,31 +27,31 @@ class SubtractedCellGetter ( Configured ) : from AthenaCommon.AppMgr import ToolSvc ToolSvc += cellCopyTool - + from HIJetRec.HIJetRecConf import HISubtractedCellMakerTool cellSubtrTool=HISubtractedCellMakerTool() from HIJetRec.HIJetRecFlags import HIJetFlags cellSubtrTool.EventShapeKey=HIJetFlags.IteratedEventShapeKey() from HIJetRec.HIJetRecTools import jtm cellSubtrTool.Modulator=jtm.modulator + from HIEventUtils.HIEventUtilsConf import HIEventShapeMapTool + theMapTool=HIEventShapeMapTool() + cellSubtrTool.EventShapeMapTool=theMapTool ToolSvc += cellSubtrTool - + from CaloRec.CaloRecConf import CaloCellContainerFinalizerTool cellFinalizerTool = CaloCellContainerFinalizerTool("HICaloCellFinalizerTool") ToolSvc += cellFinalizerTool - + cellMaker.CaloCellMakerToolNames = [cellCopyTool,cellSubtrTool,cellFinalizerTool] from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() topSequence+=cellMaker; - + return True def outputKey(self): return self._output[self._outputType] - + def outputType(self): return self._outputType - - - diff --git a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py index e7f91f3a377..6b3eceb986b 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/share/HIJetRec_jobOptions.py @@ -68,12 +68,7 @@ if not HIJetFlags.DoCellBasedSubtraction(): from HIGlobal.HIGlobalConf import HIEventShapeFillerTool #EventShapeKey set to point to weighted container, can remove code on L16 EventShapeKey=jobproperties.HIGlobalFlags.EventShapeKey()+'Weighted' - #Wrapping up - theMapTool.ContainerName=EventShapeKey - EquipMapTool(map_tool=theMapTool, shape_name=EventShapeKey, suffix='iter0') - EquipMapTool(map_tool=theMapTool, shape_name=EventShapeKey, suffix='iter1') - jtm.add(theMapTool) - + ESAlg_W=HIEventShapeMaker("ESAlg_W") ESAlg_W.OutputContainerKey=EventShapeKey ESAlg_W.UseCaloCell=False @@ -149,9 +144,9 @@ seeds0=jtm.addJetCopier("%s_%s0" % (seed_prefix, HIJetFlags.SeedSuffix()),"%s_Un jtm.HIJetRecs+=[seeds0] #code nearly identical, but new behavior since upstream ES container and package flags are different -iter0=AddIteration(seed_container=seeds0.OutputContainer,shape_name=EventShapeKey,suffix="iter0") +iter0=AddIteration(seed_container=seeds0.OutputContainer,shape_name=EventShapeKey,map_tool=theMapTool, suffix="iter0") modulator0=iter0.Modulator -subtr1=MakeSubtractionTool(iter0.OutputEventShapeKey,modulator=modulator0) +subtr1=MakeSubtractionTool(iter0.OutputEventShapeKey,modulator=modulator0,map_tool=theMapTool) #now iterate print("Now moving to iteration 1") @@ -161,16 +156,16 @@ jtm.HIJetRecs+=[seeds1] iteration_dict=dict(suffix="iter1") if jetFlags.useTracks() and HIJetFlags.TrackJetSeeds() : iteration_dict['track_jet_seeds']=HIJetFlags.TrackJetContainerName() print("Adding iteration 1") -iter1=AddIteration(seed_container=seeds1.OutputContainer,shape_name=EventShapeKey,**iteration_dict) +iter1=AddIteration(seed_container=seeds1.OutputContainer,shape_name=EventShapeKey,map_tool=theMapTool, **iteration_dict) HIJetFlags.IteratedEventShapeKey=iter1.OutputEventShapeKey modulator1=iter1.Modulator jtm.modulator=modulator1 #subtraction BEFORE iteration for moment -subtr1=MakeSubtractionTool(iter0.OutputEventShapeKey,moment_name="NoIteration",momentOnly=True,modulator=modulator0) +subtr1=MakeSubtractionTool(iter0.OutputEventShapeKey,moment_name="NoIteration",momentOnly=True,modulator=modulator0,map_tool=theMapTool) #main subtractor -subtr2=MakeSubtractionTool(HIJetFlags.IteratedEventShapeKey(),modulator=modulator1) +subtr2=MakeSubtractionTool(HIJetFlags.IteratedEventShapeKey(),modulator=modulator1,map_tool=theMapTool) #==========#==========#==========#==========#==========#========== #special addition for egamma @@ -179,16 +174,16 @@ subtr2=MakeSubtractionTool(HIJetFlags.IteratedEventShapeKey(),modulator=modulato #The fix is to define one more container from the seeds above just as in original reconstruction if not HIJetFlags.DoCellBasedSubtraction(): iteration_dict=dict(suffix="iter_egamma") - iter_egamma=AddIteration(seed_container=seeds1.OutputContainer,shape_name=jobproperties.HIGlobalFlags.EventShapeKey(),useClusters=False,**iteration_dict) + iter_egamma=AddIteration(seed_container=seeds1.OutputContainer,shape_name=jobproperties.HIGlobalFlags.EventShapeKey(), map_tool=theMapTool, useClusters=False,**iteration_dict) cell_level_shape_key=iter_egamma.OutputEventShapeKey #HIJetFlags.IteratedEventShapeKey=iter_egamma.OutputEventShapeKey cluster_key_eGamma_deep=ClusterKey+"_eGamma_deep" cluster_key_final_deep=cluster_key_eGamma_deep+"_Cluster_deep" #Subtraction for egamma and to get layers - here no origin correction yet (done in the next stage) -ApplySubtractionToClusters(name="HIClusterSubtraction_egamma", event_shape_key=cell_level_shape_key, cluster_key=ClusterKey, output_cluster_key=cluster_key_eGamma_deep, modulator=modulator1, CalculateMoments=True, useClusters=False, apply_origin_correction=False) +ApplySubtractionToClusters(name="HIClusterSubtraction_egamma", event_shape_key=cell_level_shape_key, cluster_key=ClusterKey, output_cluster_key=cluster_key_eGamma_deep, modulator=modulator1, map_tool=theMapTool, CalculateMoments=True, useClusters=False, apply_origin_correction=False) #Cluster subtraction for jets -ApplySubtractionToClusters(event_shape_key=HIJetFlags.IteratedEventShapeKey(), cluster_key=cluster_key_eGamma_deep, output_cluster_key=cluster_key_final_deep, modulator=modulator1, CalculateMoments=False, useClusters=True, apply_origin_correction=HIJetFlags.ApplyOriginCorrection()) +ApplySubtractionToClusters(event_shape_key=HIJetFlags.IteratedEventShapeKey(), cluster_key=cluster_key_eGamma_deep, output_cluster_key=cluster_key_final_deep, modulator=modulator1, map_tool=theMapTool, CalculateMoments=False, useClusters=True, apply_origin_correction=HIJetFlags.ApplyOriginCorrection()) #put subtraction tool at the FRONT of the jet modifiers list hi_tools=[subtr1,subtr2] -- GitLab From 364b95af587e30b7df3bc5071ed06cb2730d6855 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 14 Jul 2020 12:11:02 -0500 Subject: [PATCH 053/459] HIEventShapeMapTool inserted in python --- .../HIJetRec/python/HIJetRecUtils.py | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py index 044ec1072ea..d2c57793ad4 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py +++ b/Reconstruction/HeavyIonRec/HIJetRec/python/HIJetRecUtils.py @@ -126,6 +126,11 @@ def MakeSubtractionTool(shapeKey, moment_name='', momentOnly=False, **kwargs) : if 'modulator' in kwargs.keys() : mod_tool=kwargs['modulator'] else : mod_tool=GetNullModulator() + if 'map_tool' in kwargs.keys() : map_tool=kwargs['map_tool'] + else : + from HIEventUtils.HIEventUtilsConf import HIEventShapeMapTool + map_tool=HIEventShapeMapTool() + subtr=HIJetConstituentSubtractionTool("HICS_"+suffix) subtr.EventShapeKey=shapeKey subtr.Modulator=mod_tool @@ -133,6 +138,8 @@ def MakeSubtractionTool(shapeKey, moment_name='', momentOnly=False, **kwargs) : subtr.SetMomentOnly=momentOnly subtr.ApplyOriginCorrection=HIJetFlags.ApplyOriginCorrection() subtr.Subtractor=GetSubtractorTool(**kwargs) + subtr.EventShapeMapTool=map_tool + jtm.add(subtr) return subtr @@ -151,6 +158,11 @@ def ApplySubtractionToClusters(**kwargs) : if 'modulator' in kwargs.keys() : mod_tool=kwargs['modulator'] else : mod_tool=GetNullModulator() + if 'map_tool' in kwargs.keys() : map_tool=kwargs['map_tool'] + else : + from HIEventUtils.HIEventUtilsConf import HIEventShapeMapTool + map_tool=HIEventShapeMapTool() + if 'update_only' in kwargs.keys() : update_only = kwargs['update_only'] else : update_only = False @@ -173,6 +185,7 @@ def ApplySubtractionToClusters(**kwargs) : theAlg.UpdateOnly=update_only theAlg.SetMoments=do_cluster_moments theAlg.ApplyOriginCorrection=apply_origin_correction + theAlg.EventShapeMapTool=map_tool if do_cluster_moments : CaloClusterMomentsMaker=CompFactory.CaloClusterMomentsMaker @@ -237,11 +250,6 @@ def GetConstituentsModifierTool(**kwargs) : jtm.add(cmod) return cmod -def EquipMapTool(map_tool, shape_name, **kwargs) : - out_shape_name=shape_name - if 'suffix' in kwargs.keys() : out_shape_name+='_%s' % kwargs['suffix'] - map_tool.JetIterNames+=[ shape_name, out_shape_name ] - def AddIteration(seed_container,shape_name, **kwargs) : out_shape_name=shape_name @@ -259,6 +267,11 @@ def AddIteration(seed_container,shape_name, **kwargs) : #mod_shape_name=BuildHarmonicName(out_shape_name,**kwargs) mod_tool=MakeModulatorTool(mod_shape_key,**kwargs) + if 'map_tool' in kwargs.keys() : map_tool=kwargs['map_tool'] + else : + from HIEventUtils.HIEventUtilsConf import HIEventShapeMapTool + map_tool=HIEventShapeMapTool() + assoc_name=jtm.HIJetDRAssociation.AssociationName HIEventShapeJetIteration=CompFactory.HIEventShapeJetIteration iter_tool=HIEventShapeJetIteration('HIJetIteration_%s' % out_shape_name ) @@ -273,7 +286,7 @@ def AddIteration(seed_container,shape_name, **kwargs) : iter_tool.Modulator=mod_tool iter_tool.ShallowCopy=False iter_tool.ModulationEventShapeKey=mod_shape_key - iter_tool.EventShapeMapTool=jtm.theMapTool + iter_tool.EventShapeMapTool=map_tool if 'track_jet_seeds' in kwargs.keys() : iter_tool.TrackJetSeedContainerKey=kwargs['track_jet_seeds'] -- GitLab From 563c3fa5e810ccf766af4ff468a439a22b694cbb Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 14 Jul 2020 12:24:23 -0500 Subject: [PATCH 054/459] Implemented the map tool in all the tools that make use of it --- .../HIGlobal/src/HIEventShapeFillerTool.cxx | 2 +- .../HIJetConstituentSubtractionTool.h | 2 ++ .../Root/HIEventShapeJetIteration.cxx | 22 ++++++------------- .../Root/HIJetConstituentSubtractionTool.cxx | 4 ++-- .../HIJetRec/src/HIClusterSubtraction.cxx | 4 +++- .../HIJetRec/src/HIClusterSubtraction.h | 4 +++- .../src/HISubtractedCellMakerTool.cxx | 2 +- .../HIJetRec/src/HISubtractedCellMakerTool.h | 2 ++ 8 files changed, 21 insertions(+), 21 deletions(-) diff --git a/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx b/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx index ab02fe32796..bf4cbf91f9e 100644 --- a/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx +++ b/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx @@ -33,7 +33,7 @@ StatusCode HIEventShapeFillerTool::initializeCollection(xAOD::HIEventShapeContai //tool is initialized only once if(!m_index) { - m_index=m_eventShapeMapTool->getIndex(getContainerName()); + m_index=m_eventShapeMapTool->getIndex( IHIEventShapeMapTool::COMPACT ); } //fix this to have proper name passing //use tool to initialize event shape object diff --git a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentSubtractionTool.h b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentSubtractionTool.h index 30699de280e..c741f7a37bc 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentSubtractionTool.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/HIJetRec/HIJetConstituentSubtractionTool.h @@ -32,6 +32,7 @@ #include "HIJetRec/IHISubtractorTool.h" #include "HIJetRec/IHIUEModulatorTool.h" #include "AsgTools/ToolHandle.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include "StoreGate/ReadHandleKey.h" #include "StoreGate/WriteHandleKey.h" @@ -79,6 +80,7 @@ private: /// subtracted kinematics for each constituent ToolHandle<IHISubtractorTool> m_subtractorTool { this, "Subtractor", "HIJetClusterSubtractorTool", "" }; ToolHandle<IHIUEModulatorTool> m_modulatorTool { this, "Modulator" , "HIUEModulatorTool ", "" }; + ToolHandle<IHIEventShapeMapTool> m_eventShapeMapTool { this, "EventShapeMapTool", "HIEventShapeMapTool", "Handle to Event Shape Map Tool"}; Gaudi::Property< bool > m_originCorrection { this, "ApplyOriginCorrection", false, "Apply Origin Correction boolean switch"}; diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx index b2909d534d7..7173da5c92c 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIEventShapeJetIteration.cxx @@ -54,24 +54,18 @@ int HIEventShapeJetIteration::execute() const xAOD::HIEventShapeContainer* output_shape=nullptr; getShapes(input_shape,output_shape,true).ignore(); - const HIEventShapeIndex* es_index = m_eventShapeMapTool->getIndex(m_inputEventShapeKey.key()); + const HIEventShapeIndex* es_index = m_eventShapeMapTool->getIndexFromShape(input_shape); //New implementation after moving away from mutable ATH_MSG_INFO("HIEventShapeJetIteration: found index for " << m_inputEventShapeKey.key()); - if(es_index==nullptr) { - //TODO replace w/ a consistency check on binning - ATH_MSG_INFO("No HIEventShapeIndex w/ name " << m_inputEventShapeKey.key() << " adding it to the map"); - HIEventShapeIndex* h = new HIEventShapeIndex(); - h->setBinning(input_shape); - es_index = HIEventShapeMap::insert( m_inputEventShapeKey.key(), *h ); + ATH_MSG_FATAL("No HIEventShapeIndex w/ name " << m_inputEventShapeKey.key() << ". Shape not TOWER nor COMPACT"); } - const HIEventShapeIndex* other_index = m_eventShapeMapTool->getIndex(m_outputEventShapeKey.key()); + const HIEventShapeIndex* other_index = m_eventShapeMapTool->getIndexFromShape(output_shape); if(!other_index) { - ATH_MSG_FATAL("No HIEventShapeIndex w/ name " << m_outputEventShapeKey.key() << " adding it to the map"); - HIEventShapeMap::getMap()->insert( m_outputEventShapeKey.key(), *es_index ); - } + ATH_MSG_FATAL("No HIEventShapeIndex w/ name " << m_outputEventShapeKey.key() << ". Shape not TOWER nor COMPACT"); + } //End of new implementation const xAOD::JetContainer* theCaloJets=0; @@ -193,12 +187,10 @@ void HIEventShapeJetIteration::updateShape(xAOD::HIEventShapeContainer* output_s { ATH_MSG_INFO("Problem, null pointer"); - es_index= m_eventShapeMapTool->getIndex(m_inputEventShapeKey.key()); + es_index=m_eventShapeMapTool->getIndexFromShape(output_shape); if(es_index==nullptr) { - HIEventShapeIndex* h=new HIEventShapeIndex(); - h->setBinning(output_shape); - es_index=HIEventShapeMap::insert(m_inputEventShapeKey.key(),*h); + ATH_MSG_FATAL("Can't find correspondent index for map " << m_inputEventShapeKey.key() << " in the HIEventShapeMapTool"); } } diff --git a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx index f8dc7966ce4..cf9de218bfb 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/Root/HIJetConstituentSubtractionTool.cxx @@ -50,7 +50,7 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con return StatusCode::FAILURE; } shape = readHandleEvtShape.get(); - es_index=HIEventShapeMap::getIndex(m_eventShapeKey.key()); + es_index=m_eventShapeMapTool->getIndexFromShape(shape); if(es_index==nullptr) { ATH_MSG_INFO("No HIEventShapeIndex w/ name " << m_eventShapeKey.key() << " adding it to the map"); @@ -88,7 +88,7 @@ StatusCode HIJetConstituentSubtractionTool::modify(xAOD::JetContainer& jets) con if( msgLvl(MSG::DEBUG) ) { const xAOD::CaloCluster* cl=static_cast<const xAOD::CaloCluster*>(itr->rawConstituent()); - //here we can still keep cl->p4 because it's taking the unsubtracted state - moreover is debug + //here we can still keep cl->p4 because it's taking the unsubtracted state - moreover is debug p4_unsubtr+=cl->p4(HIJetRec::unsubtractedClusterState()); } } diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx index ec43691107e..6e9babf1f80 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx @@ -12,6 +12,7 @@ #include "xAODTracking/Vertex.h" #include "xAODTracking/VertexContainer.h" #include "xAODCaloEvent/CaloClusterAuxContainer.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include "StoreGate/ReadHandle.h" #include "StoreGate/WriteHandle.h" @@ -85,7 +86,8 @@ int HIClusterSubtraction::execute() const const xAOD::HIEventShapeContainer* shape = 0; SG::ReadHandle<xAOD::HIEventShapeContainer> readHandleEvtShape ( m_eventShapeKey ); shape = readHandleEvtShape.cptr(); - const HIEventShapeIndex* es_index = HIEventShapeMap::getIndex( m_eventShapeKey.key() ); + const HIEventShapeIndex* es_index = m_eventShapeMapTool->getIndexFromShape( shape ); + if(es_index == nullptr) ATH_MSG_INFO("Here is the issue"); const xAOD::HIEventShape* eshape = nullptr; CHECK(m_modulatorTool->getShape(eshape), 1); diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h index 7a665337dde..d73a7dff186 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.h @@ -28,6 +28,7 @@ #include <HIJetRec/IHIUEModulatorTool.h> #include "CaloRec/CaloClusterCollectionProcessor.h" #include "xAODTracking/VertexContainer.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include "StoreGate/ReadHandleKey.h" #include "StoreGate/WriteHandleKey.h" @@ -62,7 +63,8 @@ private: // Tool handles ToolHandle<IHISubtractorTool> m_subtractorTool { this, "Subtractor", "HIJetSubtractorToolBase", "Handle to IHISubtractorTool which does calculates subtracted kinematics" }; ToolHandle<IHIUEModulatorTool> m_modulatorTool { this, "Modulator" , "HIUEModulatorTool" , "Handle to IHIModulatorTool" }; - ToolHandleArray<CaloClusterCollectionProcessor> m_clusterCorrectionTools { this, "ClusterCorrectionTools", {}, "" }; + ToolHandle<IHIEventShapeMapTool> m_eventShapeMapTool { this, "EventShapeMapTool", "HIEventShapeMapTool", "Handle to Event Shape Map Tool"}; + ToolHandleArray<CaloClusterCollectionProcessor> m_clusterCorrectionTools { this, "ClusterCorrectionTools", {}, "" }; // Booleans Gaudi::Property< bool > m_setMoments { this, "SetMoments", true, "Set Moments boolean switch"}; diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HISubtractedCellMakerTool.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HISubtractedCellMakerTool.cxx index d80316b0603..6248d6a395d 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HISubtractedCellMakerTool.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HISubtractedCellMakerTool.cxx @@ -43,7 +43,7 @@ StatusCode HISubtractedCellMakerTool::process (CaloCellContainer* theCells, SG::ReadHandle<xAOD::HIEventShapeContainer> readHandleEvtShape ( m_eventShapeKey , ctx); shape = readHandleEvtShape.cptr(); - const HIEventShapeIndex* index=HIEventShapeMap::getIndex(m_eventShapeKey.key()); + const HIEventShapeIndex* index=m_eventShapeMapTool->getIndexFromShape( shape ); if(index==nullptr) { ATH_MSG_ERROR("Could not retrieve HIEventShapeIndex for key " << m_eventShapeKey.key()); diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HISubtractedCellMakerTool.h b/Reconstruction/HeavyIonRec/HIJetRec/src/HISubtractedCellMakerTool.h index cfd255c9eba..15c0150079b 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HISubtractedCellMakerTool.h +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HISubtractedCellMakerTool.h @@ -8,6 +8,7 @@ #include "AthenaBaseComps/AthAlgTool.h" #include "CaloInterface/ICaloCellMakerTool.h" #include "HIJetRec/IHIUEModulatorTool.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include "xAODHIEvent/HIEventShapeContainer.h" #include "AsgTools/ToolHandle.h" @@ -30,6 +31,7 @@ private: SG::ReadHandleKey<xAOD::HIEventShapeContainer> m_eventShapeKey { this, "EventShapeKey", "HIEventShapeContainer", "Event Shape Key"}; ToolHandle<IHIUEModulatorTool> m_modulatorTool { this, "Modulator", "HIUEModulatorTool", "Handle to HIUEModulatorTool"}; + ToolHandle<IHIEventShapeMapTool> m_eventShapeMapTool { this, "EventShapeMapTool", "HIEventShapeMapTool", "Handle to Event Shape Map Tool"}; }; -- GitLab From 4d2713e837abfc2f3c72e790a89a5816f68c881c Mon Sep 17 00:00:00 2001 From: Frank Berghaus <frank.berghaus@cern.ch> Date: Tue, 14 Jul 2020 15:00:01 +0200 Subject: [PATCH 055/459] Clean up component accumulator config for bytestream reading Refactor the read configuration for bytestream in component accumulator style. Looking at code from the athena configuration team it seems that we use camelCase for functions and methods. Since that changes the interface it requires a update to the clients. --- Calorimeter/CaloRec/python/CaloRecoConfig.py | 2 +- .../python/ByteStreamConfig.py | 169 +++++++++--------- .../python/TileDQFragMonitorAlgorithm.py | 2 +- .../python/TileDigiNoiseMonitorAlgorithm.py | 2 +- .../TileRawChannelNoiseMonitorAlgorithm.py | 2 +- .../TileRawChannelTimeMonitorAlgorithm.py | 2 +- .../python/TileDigitsFilterConfig.py | 2 +- .../python/TileDigitsMakerConfig.py | 2 +- 8 files changed, 95 insertions(+), 88 deletions(-) diff --git a/Calorimeter/CaloRec/python/CaloRecoConfig.py b/Calorimeter/CaloRec/python/CaloRecoConfig.py index 2776fb87aa8..36365c7e2a5 100644 --- a/Calorimeter/CaloRec/python/CaloRecoConfig.py +++ b/Calorimeter/CaloRec/python/CaloRecoConfig.py @@ -13,7 +13,7 @@ def CaloRecoCfg(configFlags): from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg - result.merge( ByteStreamReadCfg(configFlags,typeNames=['TileDigitsContainer/TileDigitsCnt','TileRawChannelContainer/TileRawChannelCnt'])) + result.merge( ByteStreamReadCfg(configFlags,type_names=['TileDigitsContainer/TileDigitsCnt','TileRawChannelContainer/TileRawChannelCnt'])) from LArROD.LArRawChannelBuilderAlgConfig import LArRawChannelBuilderAlgCfg diff --git a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py index de44b7f9143..ccda176c396 100644 --- a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py +++ b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py @@ -1,71 +1,76 @@ -# -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -# - +#!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +"""module docstring +""" from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory +from AthenaConfiguration.AllConfigFlags import ConfigFlags +from AthenaConfiguration.TestDefaults import defaultTestFiles +from AthenaCommon.Configurable import Configurable +from AthenaServices.MetaDataSvcConfig import MetaDataSvcCfg -def ByteStreamReadCfg( inputFlags, typeNames=[] ): - """ - Creates accumulator for BS reading +def ByteStreamReadCfg(flags, type_names=None): + """Creates resultumulator for BS reading """ - - acc = ComponentAccumulator() - - ByteStreamCnvSvc, ByteStreamEventStorageInputSvc, EventSelectorByteStream=CompFactory.getComps("ByteStreamCnvSvc","ByteStreamEventStorageInputSvc","EventSelectorByteStream",) - - if inputFlags.Input.SecondaryFiles: - filenames = inputFlags.Input.SecondaryFiles - eventSelector = EventSelectorByteStream("SecondaryEventSelector", IsSecondary=True) - eventSelector.Input = filenames - acc.addService( eventSelector ) + result = ComponentAccumulator() + bytestream_conversion = CompFactory.ByteStreamCnvSvc() + result.addService(bytestream_conversion) + + bytestream_input = CompFactory.ByteStreamEventStorageInputSvc( + name="ByteStreamInputSvc", + EventInfoKey="{}EventInfo".format( + flags.Overlay.BkgPrefix if flags.Overlay.DataOverlay else "" + ), + ) + result.addService(bytestream_input) + + if flags.Input.SecondaryFiles: + event_selector = CompFactory.EventSelectorByteStream( + name="SecondaryEventSelector", + IsSecondary=True, + Input=flags.Input.SecondaryFiles, + ByteStreamInputSvc=bytestream_input.name, + ) + result.addService(event_selector) else: - filenames = inputFlags.Input.Files - xAODMaker__EventInfoSelectorTool = CompFactory.xAODMaker.EventInfoSelectorTool - xconv = xAODMaker__EventInfoSelectorTool() - eventSelector = EventSelectorByteStream("EventSelector") - eventSelector.Input = filenames - eventSelector.HelperTools += [xconv] - eventSelector.SkipEvents=inputFlags.Exec.SkipEvents - acc.addService( eventSelector ) - acc.setAppProperty( "EvtSel", eventSelector.name ) - - bsInputSvc = ByteStreamEventStorageInputSvc( "ByteStreamInputSvc" ) - if inputFlags.Overlay.DataOverlay: - bsInputSvc.EventInfoKey = inputFlags.Overlay.BkgPrefix + "EventInfo" - acc.addService( bsInputSvc ) - - EvtPersistencySvc=CompFactory.EvtPersistencySvc - eventPersistencySvc = EvtPersistencySvc( "EventPersistencySvc" ) - acc.addService( eventPersistencySvc ) - - bsCnvSvc = ByteStreamCnvSvc() - eventSelector.ByteStreamInputSvc = bsInputSvc.name - eventPersistencySvc.CnvServices = [ bsCnvSvc.name ] - acc.addService( bsCnvSvc ) - - ROBDataProviderSvc=CompFactory.ROBDataProviderSvc - robDPSvc = ROBDataProviderSvc() - acc.addService( robDPSvc ) - - ByteStreamAddressProviderSvc=CompFactory.ByteStreamAddressProviderSvc - bsAddressProviderSvc = ByteStreamAddressProviderSvc(TypeNames=typeNames) - acc.addService( bsAddressProviderSvc ) - - ProxyProviderSvc=CompFactory.ProxyProviderSvc - - from AthenaServices.MetaDataSvcConfig import MetaDataSvcCfg - acc.merge(MetaDataSvcCfg(inputFlags, ["IOVDbMetaDataTool", "ByteStreamMetadataTool"])) - - proxy = ProxyProviderSvc() - proxy.ProviderNames += [ bsAddressProviderSvc.name ] - acc.addService( proxy ) - - return acc - -def ByteStreamWriteCfg( flags, typeNames=[] ): - acc = ComponentAccumulator("AthOutSeq") + event_selector = CompFactory.EventSelectorByteStream( + name="EventSelector", + Input=flags.Input.Files, + SkipEvents=flags.Exec.SkipEvents, + ByteStreamInputSvc=bytestream_input.name, + ) + event_selector.HelperTools += [ + CompFactory.xAODMaker.EventInfoSelectorTool() + ] + result.addService(event_selector) + result.setAppProperty("EvtSel", event_selector.name) + + event_persistency = CompFactory.EvtPersistencySvc( + name="EventPersistencySvc", CnvServices=[bytestream_conversion.name] + ) + result.addService(event_persistency) + + result.addService(CompFactory.ROBDataProviderSvc()) + + address_provider = CompFactory.ByteStreamAddressProviderSvc( + TypeNames=type_names if type_names else list(), + ) + result.addService(address_provider) + + result.merge( + MetaDataSvcCfg(flags, ["IOVDbMetaDataTool", "ByteStreamMetadataTool"]) + ) + + proxy = CompFactory.ProxyProviderSvc() + proxy.ProviderNames += [address_provider.name] + result.addService(proxy) + + return result + + +def ByteStreamWriteCfg(flags, type_names=[]): + result = ComponentAccumulator("AthOutSeq") outputSvc = CompFactory.ByteStreamEventStorageOutputSvc() outputSvc.MaxFileMB = 15000 # event (beyond which it creates a new file) @@ -73,34 +78,36 @@ def ByteStreamWriteCfg( flags, typeNames=[] ): outputSvc.OutputDirectory = "./" outputSvc.AppName = "Athena" # release variable depends the way the env is configured - #FileTag = release + # FileTag = release allRuns = set(flags.Input.RunNumber) - assert len(allRuns) == 1, "The input is from multiple runs, do not know which one to use {}".format(allRuns) + assert ( + len(allRuns) == 1 + ), "The input is from multiple runs, do not know which one to use {}".format( + allRuns + ) outputSvc.RunNumber = allRuns.pop() - bsCnvSvc = CompFactory.ByteStreamCnvSvc("ByteStreamCnvSvc") - - bsCnvSvc.ByteStreamOutputSvcList = [ outputSvc.getName() ] - streamAlg = CompFactory.AthenaOutputStream( "BSOutputStreamAlg", - EvtConversionSvc = bsCnvSvc.getName(), - OutputFile = "ByteStreamEventStorageOutputSvc", - ItemList = typeNames ) + bytestream_conversion = CompFactory.ByteStreamCnvSvc("ByteStreamCnvSvc") - acc.addService( outputSvc ) - acc.addService( bsCnvSvc ) - acc.addEventAlgo( streamAlg, primary = True ) - return acc + bytestream_conversion.ByteStreamOutputSvcList = [outputSvc.getName()] + streamAlg = CompFactory.AthenaOutputStream( + "BSOutputStreamAlg", + EvtConversionSvc=bytestream_conversion.getName(), + OutputFile="ByteStreamEventStorageOutputSvc", + ItemList=type_names, + ) + result.addService(outputSvc) + result.addService(bytestream_conversion) + result.addEventAlgo(streamAlg, primary=True) + return result if __name__ == "__main__": - from AthenaConfiguration.AllConfigFlags import ConfigFlags - from AthenaConfiguration.TestDefaults import defaultTestFiles - from AthenaCommon.Configurable import Configurable - Configurable.configurableRun3Behavior=True + Configurable.configurableRun3Behavior = True ConfigFlags.Input.Files = defaultTestFiles.RAW - acc = ByteStreamReadCfg( ConfigFlags ) - acc.store( open( "test.pkl", "wb" ) ) + acc = ByteStreamReadCfg(ConfigFlags) + acc.store(open("test.pkl", "wb")) print("All OK") diff --git a/TileCalorimeter/TileMonitoring/python/TileDQFragMonitorAlgorithm.py b/TileCalorimeter/TileMonitoring/python/TileDQFragMonitorAlgorithm.py index f331a2014c1..ec65125a570 100644 --- a/TileCalorimeter/TileMonitoring/python/TileDQFragMonitorAlgorithm.py +++ b/TileCalorimeter/TileMonitoring/python/TileDQFragMonitorAlgorithm.py @@ -254,7 +254,7 @@ if __name__=='__main__': from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg tileTypeNames = ['TileRawChannelContainer/TileRawChannelCnt', 'TileDigitsContainer/TileDigitsCnt'] - cfg.merge( ByteStreamReadCfg(ConfigFlags, typeNames = tileTypeNames) ) + cfg.merge( ByteStreamReadCfg(ConfigFlags, type_names = tileTypeNames) ) from TileRecUtils.TileRawChannelMakerConfig import TileRawChannelMakerCfg cfg.merge( TileRawChannelMakerCfg(ConfigFlags) ) diff --git a/TileCalorimeter/TileMonitoring/python/TileDigiNoiseMonitorAlgorithm.py b/TileCalorimeter/TileMonitoring/python/TileDigiNoiseMonitorAlgorithm.py index 3e750d187f6..ac987ea3044 100644 --- a/TileCalorimeter/TileMonitoring/python/TileDigiNoiseMonitorAlgorithm.py +++ b/TileCalorimeter/TileMonitoring/python/TileDigiNoiseMonitorAlgorithm.py @@ -108,7 +108,7 @@ if __name__=='__main__': from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg tileTypeNames = ['TileRawChannelContainer/TileRawChannelCnt', 'TileDigitsContainer/TileDigitsCnt'] - cfg.merge( ByteStreamReadCfg(ConfigFlags, typeNames = tileTypeNames) ) + cfg.merge( ByteStreamReadCfg(ConfigFlags, type_names = tileTypeNames) ) cfg.merge( TileDigiNoiseMonitoringConfig(ConfigFlags, TriggerChain = '') ) diff --git a/TileCalorimeter/TileMonitoring/python/TileRawChannelNoiseMonitorAlgorithm.py b/TileCalorimeter/TileMonitoring/python/TileRawChannelNoiseMonitorAlgorithm.py index ae75099c21e..0626765535c 100644 --- a/TileCalorimeter/TileMonitoring/python/TileRawChannelNoiseMonitorAlgorithm.py +++ b/TileCalorimeter/TileMonitoring/python/TileRawChannelNoiseMonitorAlgorithm.py @@ -121,7 +121,7 @@ if __name__=='__main__': from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg tileTypeNames = ['TileRawChannelContainer/TileRawChannelCnt', 'TileDigitsContainer/TileDigitsCnt'] - cfg.merge( ByteStreamReadCfg(ConfigFlags, typeNames = tileTypeNames) ) + cfg.merge( ByteStreamReadCfg(ConfigFlags, type_names = tileTypeNames) ) from TileRecUtils.TileRawChannelMakerConfig import TileRawChannelMakerCfg cfg.merge( TileRawChannelMakerCfg(ConfigFlags) ) diff --git a/TileCalorimeter/TileMonitoring/python/TileRawChannelTimeMonitorAlgorithm.py b/TileCalorimeter/TileMonitoring/python/TileRawChannelTimeMonitorAlgorithm.py index e0cb1adf8e7..3f662248fbf 100644 --- a/TileCalorimeter/TileMonitoring/python/TileRawChannelTimeMonitorAlgorithm.py +++ b/TileCalorimeter/TileMonitoring/python/TileRawChannelTimeMonitorAlgorithm.py @@ -155,7 +155,7 @@ if __name__=='__main__': tileTypeNames = ['TileRawChannelContainer/TileRawChannelCnt', 'TileDigitsContainer/TileDigitsCnt', 'TileBeamElemContainer/TileBeamElemCnt'] - cfg.merge( ByteStreamReadCfg(ConfigFlags, typeNames = tileTypeNames) ) + cfg.merge( ByteStreamReadCfg(ConfigFlags, type_names = tileTypeNames) ) from TileRecUtils.TileRawChannelMakerConfig import TileRawChannelMakerCfg cfg.merge( TileRawChannelMakerCfg(ConfigFlags) ) diff --git a/TileCalorimeter/TileRecAlgs/python/TileDigitsFilterConfig.py b/TileCalorimeter/TileRecAlgs/python/TileDigitsFilterConfig.py index 97e1fd31c06..0542192fb22 100644 --- a/TileCalorimeter/TileRecAlgs/python/TileDigitsFilterConfig.py +++ b/TileCalorimeter/TileRecAlgs/python/TileDigitsFilterConfig.py @@ -78,7 +78,7 @@ if __name__ == "__main__": from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg tileTypeNames = ['TileRawChannelContainer/TileRawChannelCnt', 'TileDigitsContainer/TileDigitsCnt'] - acc.merge( ByteStreamReadCfg(ConfigFlags, typeNames = tileTypeNames) ) + acc.merge( ByteStreamReadCfg(ConfigFlags, type_names = tileTypeNames) ) acc.merge( TileDigitsFilterOutputCfg(ConfigFlags) ) diff --git a/TileCalorimeter/TileSimAlgs/python/TileDigitsMakerConfig.py b/TileCalorimeter/TileSimAlgs/python/TileDigitsMakerConfig.py index bf7398360eb..06070f59d8c 100644 --- a/TileCalorimeter/TileSimAlgs/python/TileDigitsMakerConfig.py +++ b/TileCalorimeter/TileSimAlgs/python/TileDigitsMakerConfig.py @@ -60,7 +60,7 @@ def TileDigitsMakerCfg(flags, **kwargs): if flags.Overlay.DataOverlay: from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg - acc.merge(ByteStreamReadCfg(flags, typeNames=[ + acc.merge(ByteStreamReadCfg(flags, type_names=[ 'TileDigitsContainer/' + flags.Overlay.BkgPrefix + 'TileDigitsCnt', 'TileRawChannelContainer/' + flags.Overlay.BkgPrefix + 'TileRawChannelCnt'] )) -- GitLab From 9a51b8cd8d4e37f1cff156412ac517dd823733f6 Mon Sep 17 00:00:00 2001 From: Frank Berghaus <frank.berghaus@cern.ch> Date: Thu, 9 Jul 2020 13:22:47 +0200 Subject: [PATCH 056/459] Allow running test outside .cern.ch domain The EOS frontend was specified as eosatlas, missing the CERN domain name. This works fine as long as the test is running at CERN. To allow running the test on my machine I added the cern.ch domain name to eosatlas. --- .../python/TileRawChannelNoiseMonitorAlgorithm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TileCalorimeter/TileMonitoring/python/TileRawChannelNoiseMonitorAlgorithm.py b/TileCalorimeter/TileMonitoring/python/TileRawChannelNoiseMonitorAlgorithm.py index 0626765535c..248106129f1 100644 --- a/TileCalorimeter/TileMonitoring/python/TileRawChannelNoiseMonitorAlgorithm.py +++ b/TileCalorimeter/TileMonitoring/python/TileRawChannelNoiseMonitorAlgorithm.py @@ -107,7 +107,7 @@ if __name__=='__main__': from AthenaConfiguration.TestDefaults import defaultTestFiles ConfigFlags.Input.Files = defaultTestFiles.RAW - ConfigFlags.Input.Files = ['root://eosatlas//eos/atlas/atlascerngroupdisk/det-tile/test/data14_cos.00239908.physics_CosmicCalo.merge.RAW._lb0004._SFO-ALL._0001.1'] + ConfigFlags.Input.Files = ['root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/det-tile/test/data14_cos.00239908.physics_CosmicCalo.merge.RAW._lb0004._SFO-ALL._0001.1'] ConfigFlags.IOVDb.GlobalTag = 'CONDBR2-ES1PA-2018-02' ConfigFlags.Output.HISTFileName = 'TileRawChannelNoiseMonitorOutput.root' -- GitLab From c69802f11feb40f15601aa3b8a8dd55c3ba55d01 Mon Sep 17 00:00:00 2001 From: Frank Berghaus <frank.berghaus@cern.ch> Date: Tue, 14 Jul 2020 17:02:37 +0200 Subject: [PATCH 057/459] Refactor CA bytestream write configuration Make the bytestream write configuration compliant with the style found in the Athena configuration modules. Update the one client. Executing the configuration now copies 10 events from the default RAW input into a new bytestream file to test the configuration. --- .../python/ByteStreamConfig.py | 82 +++++++++++++------ 1 file changed, 56 insertions(+), 26 deletions(-) diff --git a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py index ccda176c396..9f4ef0857bf 100644 --- a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py +++ b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py @@ -6,14 +6,19 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory from AthenaConfiguration.AllConfigFlags import ConfigFlags from AthenaConfiguration.TestDefaults import defaultTestFiles +from AthenaConfiguration.MainServicesConfig import MainServicesCfg from AthenaCommon.Configurable import Configurable +from AthenaCommon.Logging import logging from AthenaServices.MetaDataSvcConfig import MetaDataSvcCfg +LOG = logging.getLogger('ByteStreamConfig') + def ByteStreamReadCfg(flags, type_names=None): """Creates resultumulator for BS reading """ result = ComponentAccumulator() + bytestream_conversion = CompFactory.ByteStreamCnvSvc() result.addService(bytestream_conversion) @@ -69,45 +74,70 @@ def ByteStreamReadCfg(flags, type_names=None): return result -def ByteStreamWriteCfg(flags, type_names=[]): +def ByteStreamWriteCfg(flags, type_names=None): + """func level docstring goes here + """ + all_runs = set(flags.Input.RunNumber) + assert ( + len(all_runs) == 1 + ), "Input is from multiple runs, do not know which one to use {}".format( + all_runs + ) + result = ComponentAccumulator("AthOutSeq") - outputSvc = CompFactory.ByteStreamEventStorageOutputSvc() - outputSvc.MaxFileMB = 15000 - # event (beyond which it creates a new file) - outputSvc.MaxFileNE = 15000000 - outputSvc.OutputDirectory = "./" - outputSvc.AppName = "Athena" + + event_storage_output = CompFactory.ByteStreamEventStorageOutputSvc( + MaxFileMB=15000, + MaxFileNE=15000000, # event (beyond which it creates a new file) + OutputDirectory="./", + AppName="Athena", + RunNumber=all_runs.pop(), + ) + result.addService(event_storage_output) # release variable depends the way the env is configured # FileTag = release - allRuns = set(flags.Input.RunNumber) - assert ( - len(allRuns) == 1 - ), "The input is from multiple runs, do not know which one to use {}".format( - allRuns - ) - outputSvc.RunNumber = allRuns.pop() - bytestream_conversion = CompFactory.ByteStreamCnvSvc("ByteStreamCnvSvc") + bytestream_conversion = CompFactory.ByteStreamCnvSvc( + name="ByteStreamCnvSvc", + ByteStreamOutputSvcList=[event_storage_output.getName()], + ) + result.addService(bytestream_conversion) - bytestream_conversion.ByteStreamOutputSvcList = [outputSvc.getName()] - streamAlg = CompFactory.AthenaOutputStream( - "BSOutputStreamAlg", - EvtConversionSvc=bytestream_conversion.getName(), + output_stream = CompFactory.AthenaOutputStream( + name="BSOutputStreamAlg", + EvtConversionSvc=bytestream_conversion.name, OutputFile="ByteStreamEventStorageOutputSvc", - ItemList=type_names, + ItemList=type_names if type_names else list(), ) + result.addEventAlgo(output_stream, primary=True) - result.addService(outputSvc) - result.addService(bytestream_conversion) - result.addEventAlgo(streamAlg, primary=True) return result -if __name__ == "__main__": +def main(): + """Implement running simple functional test""" Configurable.configurableRun3Behavior = True ConfigFlags.Input.Files = defaultTestFiles.RAW + ConfigFlags.Output.doWriteBS = True + ConfigFlags.lock() - acc = ByteStreamReadCfg(ConfigFlags) - acc.store(open("test.pkl", "wb")) + read = ByteStreamReadCfg(ConfigFlags) + read.store(open("test.pkl", "wb")) print("All OK") + + write = ByteStreamWriteCfg(ConfigFlags) + write.printConfig() + LOG.info("Write setup OK") + + acc = MainServicesCfg(ConfigFlags) + acc.merge(read) + acc.merge(write) + acc.printConfig() + LOG.info("Config OK") + + acc.run(10) + + +if __name__ == "__main__": + main() -- GitLab From c84545b2389b34fd4d297557e800663804eabf34 Mon Sep 17 00:00:00 2001 From: Frank Berghaus <frank.berghaus@cern.ch> Date: Tue, 14 Jul 2020 17:04:33 +0200 Subject: [PATCH 058/459] Document bytestream configuration module Add docstrings to the bytestream configuration module and the functions that set up reading from and writing to bytestream. Remove remaining global data members. --- .../python/ByteStreamConfig.py | 93 +++++++++++++------ 1 file changed, 66 insertions(+), 27 deletions(-) diff --git a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py index 9f4ef0857bf..beb913c5df7 100644 --- a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py +++ b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py @@ -1,28 +1,52 @@ #!/usr/bin/env python # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -"""module docstring +"""Set up to read and/or write bytestream files. + +This module configures the Athena components required to read from +RAW/bytestream input. Use either byteStreamReadCfg to set up for reading +and byteStreamWriteCfg to set up for writing. Merge the component accumulator +the functions return into your job configuration as needed. + +Executing this module will run a short test over 10 events. The events are read +from the default bytestream input on CVMFS and written to a local bytestream +file. + + Typical usage examples: + + component_accumulator.merge(byteStreamReadCfg(ConfigFlags)) """ +import AthenaConfiguration.ComponentFactory +import AthenaConfiguration.AllConfigFlags from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator -from AthenaConfiguration.ComponentFactory import CompFactory -from AthenaConfiguration.AllConfigFlags import ConfigFlags from AthenaConfiguration.TestDefaults import defaultTestFiles from AthenaConfiguration.MainServicesConfig import MainServicesCfg from AthenaCommon.Configurable import Configurable from AthenaCommon.Logging import logging from AthenaServices.MetaDataSvcConfig import MetaDataSvcCfg -LOG = logging.getLogger('ByteStreamConfig') +def byteStreamReadCfg(flags, type_names=None): + """Set up to read from a bytestream file + + The function adds the components required to read events and metadata from + bytestream input. May be used to read events from a secondary input as well + primary input file. -def ByteStreamReadCfg(flags, type_names=None): - """Creates resultumulator for BS reading + Args: + flags: Job configuration, usually derived from ConfigFlags + type_names: (optional) specific type names for address provider to find + + Returns: + A component accumulator fragment containing the components required to + read from bytestream. Should be merged into main job configuration. """ result = ComponentAccumulator() + comp_factory = AthenaConfiguration.ComponentFactory.CompFactory - bytestream_conversion = CompFactory.ByteStreamCnvSvc() + bytestream_conversion = comp_factory.ByteStreamCnvSvc() result.addService(bytestream_conversion) - bytestream_input = CompFactory.ByteStreamEventStorageInputSvc( + bytestream_input = comp_factory.ByteStreamEventStorageInputSvc( name="ByteStreamInputSvc", EventInfoKey="{}EventInfo".format( flags.Overlay.BkgPrefix if flags.Overlay.DataOverlay else "" @@ -31,7 +55,7 @@ def ByteStreamReadCfg(flags, type_names=None): result.addService(bytestream_input) if flags.Input.SecondaryFiles: - event_selector = CompFactory.EventSelectorByteStream( + event_selector = comp_factory.EventSelectorByteStream( name="SecondaryEventSelector", IsSecondary=True, Input=flags.Input.SecondaryFiles, @@ -39,26 +63,26 @@ def ByteStreamReadCfg(flags, type_names=None): ) result.addService(event_selector) else: - event_selector = CompFactory.EventSelectorByteStream( + event_selector = comp_factory.EventSelectorByteStream( name="EventSelector", Input=flags.Input.Files, SkipEvents=flags.Exec.SkipEvents, ByteStreamInputSvc=bytestream_input.name, ) event_selector.HelperTools += [ - CompFactory.xAODMaker.EventInfoSelectorTool() + comp_factory.xAODMaker.EventInfoSelectorTool() ] result.addService(event_selector) result.setAppProperty("EvtSel", event_selector.name) - event_persistency = CompFactory.EvtPersistencySvc( + event_persistency = comp_factory.EvtPersistencySvc( name="EventPersistencySvc", CnvServices=[bytestream_conversion.name] ) result.addService(event_persistency) - result.addService(CompFactory.ROBDataProviderSvc()) + result.addService(comp_factory.ROBDataProviderSvc()) - address_provider = CompFactory.ByteStreamAddressProviderSvc( + address_provider = comp_factory.ByteStreamAddressProviderSvc( TypeNames=type_names if type_names else list(), ) result.addService(address_provider) @@ -67,15 +91,27 @@ def ByteStreamReadCfg(flags, type_names=None): MetaDataSvcCfg(flags, ["IOVDbMetaDataTool", "ByteStreamMetadataTool"]) ) - proxy = CompFactory.ProxyProviderSvc() + proxy = comp_factory.ProxyProviderSvc() proxy.ProviderNames += [address_provider.name] result.addService(proxy) return result -def ByteStreamWriteCfg(flags, type_names=None): - """func level docstring goes here +def byteStreamWriteCfg(flags, type_names=None): + """Set up output stream in RAW/bytestream format + + Configure components responsible for writing bytestream format. Write job + results to bytestream file. ATLAS file naming conventions are enforced as + determined from the given configuration flags. + + Args: + flags: Job configuration, usually derived from ConfigFlags + type_names: (optional) Specify item list for output stream to write + + Returns: + A component accumulator fragment containing the components required to + write to bytestream. Should be merged into main job configuration. """ all_runs = set(flags.Input.RunNumber) assert ( @@ -85,8 +121,9 @@ def ByteStreamWriteCfg(flags, type_names=None): ) result = ComponentAccumulator("AthOutSeq") + comp_factory = AthenaConfiguration.ComponentFactory.CompFactory - event_storage_output = CompFactory.ByteStreamEventStorageOutputSvc( + event_storage_output = comp_factory.ByteStreamEventStorageOutputSvc( MaxFileMB=15000, MaxFileNE=15000000, # event (beyond which it creates a new file) OutputDirectory="./", @@ -97,13 +134,13 @@ def ByteStreamWriteCfg(flags, type_names=None): # release variable depends the way the env is configured # FileTag = release - bytestream_conversion = CompFactory.ByteStreamCnvSvc( + bytestream_conversion = comp_factory.ByteStreamCnvSvc( name="ByteStreamCnvSvc", ByteStreamOutputSvcList=[event_storage_output.getName()], ) result.addService(bytestream_conversion) - output_stream = CompFactory.AthenaOutputStream( + output_stream = comp_factory.AthenaOutputStream( name="BSOutputStreamAlg", EvtConversionSvc=bytestream_conversion.name, OutputFile="ByteStreamEventStorageOutputSvc", @@ -115,12 +152,14 @@ def ByteStreamWriteCfg(flags, type_names=None): def main(): - """Implement running simple functional test""" + """Run a functional test if module is executed""" + log = logging.getLogger('ByteStreamConfig') Configurable.configurableRun3Behavior = True - ConfigFlags.Input.Files = defaultTestFiles.RAW - ConfigFlags.Output.doWriteBS = True - ConfigFlags.lock() + config_flags = AthenaConfiguration.AllConfigFlags.ConfigFlags + config_flags.Input.Files = defaultTestFiles.RAW + config_flags.Output.doWriteBS = True + config_flags.lock() read = ByteStreamReadCfg(ConfigFlags) read.store(open("test.pkl", "wb")) @@ -128,13 +167,13 @@ def main(): write = ByteStreamWriteCfg(ConfigFlags) write.printConfig() - LOG.info("Write setup OK") + log.info("Write setup OK") - acc = MainServicesCfg(ConfigFlags) + acc = MainServicesCfg(config_flags) acc.merge(read) acc.merge(write) acc.printConfig() - LOG.info("Config OK") + log.info("Config OK") acc.run(10) -- GitLab From e2d5ed714a386e60c47a0b42fe1705005331e9c2 Mon Sep 17 00:00:00 2001 From: Frank Berghaus <frank.berghaus@cern.ch> Date: Thu, 9 Jul 2020 15:56:16 +0200 Subject: [PATCH 059/459] Document bytestream configuration module Add docstrings to the bytestream configuration module and the functions that set up reading from and writing to bytestream. Remove remaining global data members. --- Event/ByteStreamCnvSvc/python/ByteStreamConfig.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py index beb913c5df7..81e839e26de 100644 --- a/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py +++ b/Event/ByteStreamCnvSvc/python/ByteStreamConfig.py @@ -25,7 +25,7 @@ from AthenaCommon.Logging import logging from AthenaServices.MetaDataSvcConfig import MetaDataSvcCfg -def byteStreamReadCfg(flags, type_names=None): +def ByteStreamReadCfg(flags, type_names=None): """Set up to read from a bytestream file The function adds the components required to read events and metadata from @@ -98,7 +98,7 @@ def byteStreamReadCfg(flags, type_names=None): return result -def byteStreamWriteCfg(flags, type_names=None): +def ByteStreamWriteCfg(flags, type_names=None): """Set up output stream in RAW/bytestream format Configure components responsible for writing bytestream format. Write job @@ -161,11 +161,11 @@ def main(): config_flags.Output.doWriteBS = True config_flags.lock() - read = ByteStreamReadCfg(ConfigFlags) + read = ByteStreamReadCfg(config_flags) read.store(open("test.pkl", "wb")) print("All OK") - write = ByteStreamWriteCfg(ConfigFlags) + write = ByteStreamWriteCfg(config_flags) write.printConfig() log.info("Write setup OK") -- GitLab From 6aa34794fe55e8ad9d05dbb4ea2a25b40f1f4873 Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Thu, 16 Jul 2020 14:44:16 +0200 Subject: [PATCH 060/459] Update how G4AtlasAlg is seeded to allow output to match FullG4 in ISF --- Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx | 4 ++-- Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.h | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx index 6fc596429b0..a67569805da 100644 --- a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx +++ b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.cxx @@ -311,8 +311,8 @@ StatusCode G4AtlasAlg::execute() // Set the RNG to use for this event. We need to reset it for MT jobs // because of the mismatch between Gaudi slot-local and G4 thread-local RNG. - ATHRNG::RNGWrapper* rngWrapper = m_rndmGenSvc->getEngine(this); - rngWrapper->setSeed( name(), Gaudi::Hive::currentContext() ); + ATHRNG::RNGWrapper* rngWrapper = m_rndmGenSvc->getEngine(this, m_randomStreamName); + rngWrapper->setSeed( m_randomStreamName, Gaudi::Hive::currentContext() ); G4Random::setTheEngine(*rngWrapper); ATH_MSG_DEBUG("Calling SimulateG4Event"); diff --git a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.h b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.h index d69a20e2b39..d457b07c8b9 100644 --- a/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.h +++ b/Simulation/G4Atlas/G4AtlasAlg/src/G4AtlasAlg.h @@ -122,6 +122,8 @@ private: Gaudi::Property<bool> m_activateParallelGeometries{this, "ActivateParallelWorlds", false, "Toggle on/off the G4 parallel geometry system"}; /// Random number service ServiceHandle<IAthRNGSvc> m_rndmGenSvc{this, "AtRndmGenSvc", "AthRNGSvc", ""}; // TODO rename property + /// Random Stream Name + Gaudi::Property<std::string> m_randomStreamName{this, "RandomStreamName", "Geant4", ""}; /// ServiceHandle<IUserLimitsSvc> m_userLimitsSvc{this, "UserLimitsSvc", "UserLimitsSvc", ""}; /// User Action Service -- GitLab From ac39f9b8b190e462ee905d23548d4cb8a96f4fbe Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Thu, 16 Jul 2020 18:48:26 -0500 Subject: [PATCH 061/459] BinningScheme moved to HIEventDefs. Change propagated elsewhere. --- .../HIEventUtils/HIEventUtils/HIEventDefs.h | 1 + .../HIEventUtils/HIEventShapeIndex.h | 3 +-- .../HIEventUtils/HIEventShapeMap.h | 5 ++-- .../HIEventUtils/HIEventShapeMapTool.h | 7 +++--- .../HIEventUtils/IHIEventShapeMapTool.h | 6 ++--- .../HIEventUtils/Root/HIEventShapeIndex.cxx | 6 ++--- .../HIEventUtils/Root/HIEventShapeMapTool.cxx | 24 +++++++++---------- .../HIGlobal/src/HIEventShapeFillerTool.cxx | 4 ++-- ...MonitoringJobOptions_forRecExCommission.py | 1 - 9 files changed, 28 insertions(+), 29 deletions(-) diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventDefs.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventDefs.h index 4f75e098668..3b92695b61b 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventDefs.h +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventDefs.h @@ -13,6 +13,7 @@ namespace HI{ + enum BinningScheme{ TOWER = 100, COMPACT = 562 }; namespace TowerBins{ constexpr unsigned int numEtaBins() {return 100;} diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeIndex.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeIndex.h index dc95d1db7d7..2a3d218cf73 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeIndex.h +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeIndex.h @@ -16,7 +16,6 @@ class HIEventShapeIndex { public: - enum BinningScheme{ TOWER, COMPACT}; HIEventShapeIndex(); ~HIEventShapeIndex(); @@ -25,7 +24,7 @@ public: unsigned int setBinning(const TH2* h2, bool asMask); unsigned int setBinning(const xAOD::HIEventShapeContainer* shape); - unsigned int setBinning(BinningScheme scheme); + unsigned int setBinning(HI::BinningScheme scheme); void initializeEventShapeContainer(xAOD::HIEventShapeContainer* shape_container, unsigned int num_harmonics) const; //can associate ptr to shape container w/ binning diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMap.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMap.h index ab0c70f1ffc..955d6bca71c 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMap.h +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMap.h @@ -9,8 +9,7 @@ #include "HIEventUtils/HIEventShapeIndex.h" #include <string> -//Migration check: in this class keys are only used as strings to access the map. -//For the moment we leave it untouched and we pass the only string to the methods +//This class is currently supersed by HIEventShapeMapTool - fully MT safe class HIEventShapeMap { @@ -24,7 +23,7 @@ class HIEventShapeMap private: HIEventShapeMap(){}; std::map<std::string,HIEventShapeIndex> m_map; - static HIEventShapeMap s_obj; //TODO move to const implementation + static HIEventShapeMap s_obj; }; diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h index 0b1ea402788..680d8d9936c 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/HIEventShapeMapTool.h @@ -5,6 +5,7 @@ #ifndef HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H #define HIEVENTUTILS_HIEVENTSHAPEMAPTOOL_H +#include "HIEventUtils/HIEventDefs.h" #include "xAODHIEvent/HIEventShape.h" #include "HIEventUtils/HIEventShapeIndex.h" #include "HIEventUtils/IHIEventShapeMapTool.h" @@ -25,14 +26,14 @@ class HIEventShapeMapTool : virtual public asg::AsgTool, virtual public IHIEvent virtual ~HIEventShapeMapTool() {}; virtual StatusCode initialize() override; - virtual const HIEventShapeIndex* getIndex(IHIEventShapeMapTool::BinningScheme key) const override; + virtual const HIEventShapeIndex* getIndex(HI::BinningScheme key) const override; virtual const HIEventShapeIndex* getIndexFromShape(const xAOD::HIEventShapeContainer* shape) const override; - virtual bool hasKey(BinningScheme key) override; + virtual bool hasKey(HI::BinningScheme key) override; private: - std::map< IHIEventShapeMapTool::BinningScheme ,HIEventShapeIndex > m_map; + std::map< HI::BinningScheme ,HIEventShapeIndex > m_map; }; #endif diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h index 3159d4e41ae..d8e4efee08d 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/HIEventUtils/IHIEventShapeMapTool.h @@ -5,6 +5,7 @@ #ifndef HIEVENTUTILS_IHIEVENTSHAPEMAPTOOL_H #define HIEVENTUTILS_IHIEVENTSHAPEMAPTOOL_H +#include "HIEventUtils/HIEventDefs.h" #include "xAODHIEvent/HIEventShape.h" #include "HIEventUtils/HIEventShapeIndex.h" #include "xAODHIEvent/HIEventShapeContainer.h" @@ -19,15 +20,14 @@ class IHIEventShapeMapTool : virtual public asg::AsgTool ASG_TOOL_INTERFACE(IHIEventShapeMapTool) public: - enum BinningScheme{ TOWER = 100, COMPACT = 562 }; virtual ~IHIEventShapeMapTool() {}; virtual StatusCode initialize() = 0; - virtual const HIEventShapeIndex* getIndex(IHIEventShapeMapTool::BinningScheme key) const = 0; + virtual const HIEventShapeIndex* getIndex(HI::BinningScheme key) const = 0; virtual const HIEventShapeIndex* getIndexFromShape(const xAOD::HIEventShapeContainer* shape) const = 0; - virtual bool hasKey(IHIEventShapeMapTool::BinningScheme key) = 0; + virtual bool hasKey(HI::BinningScheme key) = 0; }; diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeIndex.cxx b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeIndex.cxx index 971ac86492d..77e3d879d8c 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeIndex.cxx +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeIndex.cxx @@ -95,10 +95,10 @@ unsigned int HIEventShapeIndex::setBinning(const TH2* h2, bool asMask) return count; } -unsigned int HIEventShapeIndex::setBinning(HIEventShapeIndex::BinningScheme scheme) +unsigned int HIEventShapeIndex::setBinning(HI::BinningScheme scheme) { unsigned int index=0; - if(scheme==TOWER) + if(scheme==HI::BinningScheme::TOWER) { for(unsigned int layer=0; layer < static_cast<int>(HI::TowerBins::numLayers()); layer++) { @@ -112,7 +112,7 @@ unsigned int HIEventShapeIndex::setBinning(HIEventShapeIndex::BinningScheme sche } } } - else if(scheme==COMPACT) + else if(scheme==HI::BinningScheme::COMPACT) { float deta=HI::TowerBins::getBinSizeEta(); for(int layer=0; layer < static_cast<int>(HI::TowerBins::numLayers()); layer++) diff --git a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx index 1f013f23cd5..a237c5747d3 100644 --- a/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx +++ b/PhysicsAnalysis/HeavyIonPhys/HIEventUtils/Root/HIEventShapeMapTool.cxx @@ -13,19 +13,19 @@ HIEventShapeMapTool::HIEventShapeMapTool(const std::string& n) : asg::AsgTool(n) StatusCode HIEventShapeMapTool::initialize(){ HIEventShapeIndex index_1, index_2; - index_1.setBinning(HIEventShapeIndex::COMPACT); - index_2.setBinning(HIEventShapeIndex::TOWER); - m_map[ IHIEventShapeMapTool::COMPACT ] = index_1; - m_map[ IHIEventShapeMapTool::TOWER ] = index_2; + index_1.setBinning(HI::BinningScheme::COMPACT); + index_2.setBinning(HI::BinningScheme::TOWER); + m_map[ HI::BinningScheme::COMPACT ] = index_1; + m_map[ HI::BinningScheme::TOWER ] = index_2; return StatusCode::SUCCESS; } -const HIEventShapeIndex* HIEventShapeMapTool::getIndex(IHIEventShapeMapTool::BinningScheme key) const +const HIEventShapeIndex* HIEventShapeMapTool::getIndex(HI::BinningScheme key) const { std::string myKey; - if(key == IHIEventShapeMapTool::COMPACT) myKey="COMPACT"; - else if (key == IHIEventShapeMapTool::TOWER ) myKey="TOWER"; + if(key == HI::BinningScheme::COMPACT) myKey="COMPACT"; + else if (key == HI::BinningScheme::TOWER ) myKey="TOWER"; else myKey = "UNKNOWN SHAPE"; auto itr=m_map.find(key); @@ -39,14 +39,14 @@ const HIEventShapeIndex* HIEventShapeMapTool::getIndex(IHIEventShapeMapTool::Bin const HIEventShapeIndex* HIEventShapeMapTool::getIndexFromShape(const xAOD::HIEventShapeContainer* shape) const { ATH_MSG_INFO("In getIndexFromShape, Shape size " << shape->size() << " And TOWER is: " << (HI::TowerBins::numLayers()*HI::TowerBins::numEtaBins())); - if(shape->size() == IHIEventShapeMapTool::TOWER){ + if(shape->size() == HI::BinningScheme::TOWER){ //TOWER - auto itr = m_map.find( IHIEventShapeMapTool::TOWER ); + auto itr = m_map.find( HI::BinningScheme::TOWER ); return &(itr->second); } - else if(shape->size() == IHIEventShapeMapTool::COMPACT){ + else if(shape->size() == HI::BinningScheme::COMPACT){ //COMPACT - auto itr = m_map.find( IHIEventShapeMapTool::COMPACT ); + auto itr = m_map.find( HI::BinningScheme::COMPACT ); return &(itr->second); } else { @@ -55,7 +55,7 @@ const HIEventShapeIndex* HIEventShapeMapTool::getIndexFromShape(const xAOD::HIEv } } -bool HIEventShapeMapTool::hasKey(IHIEventShapeMapTool::BinningScheme key) +bool HIEventShapeMapTool::hasKey(HI::BinningScheme key) { return (m_map.find(key)!=m_map.end()); } diff --git a/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx b/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx index bf4cbf91f9e..18654d41dd8 100644 --- a/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx +++ b/Reconstruction/HeavyIonRec/HIGlobal/src/HIEventShapeFillerTool.cxx @@ -7,7 +7,7 @@ #include <CaloEvent/CaloCell.h> #include <CaloEvent/CaloCellContainer.h> #include <xAODHIEvent/HIEventShape.h> -#include "HIEventUtils/HIEventShapeMap.h" +#include "HIEventUtils/HIEventDefs.h" #include "HIEventUtils/HIEventShapeMapTool.h" #include <iostream> @@ -33,7 +33,7 @@ StatusCode HIEventShapeFillerTool::initializeCollection(xAOD::HIEventShapeContai //tool is initialized only once if(!m_index) { - m_index=m_eventShapeMapTool->getIndex( IHIEventShapeMapTool::COMPACT ); + m_index=m_eventShapeMapTool->getIndex( HI::BinningScheme::COMPACT ); } //fix this to have proper name passing //use tool to initialize event shape object diff --git a/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions_forRecExCommission.py b/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions_forRecExCommission.py index 85bce8ac765..7451e62b3f6 100644 --- a/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions_forRecExCommission.py +++ b/Trigger/TrigT1/TrigT1CTMonitoring/share/TrigT1CTMonitoringJobOptions_forRecExCommission.py @@ -46,7 +46,6 @@ from TrigT1CTMonitoring.TrigT1CTMonitoringConfig import * from AthenaCommon.AppMgr import ToolSvc as toolSvc from TrigT1CTMonitoring.TrigT1CTMonitoringConf import TrigT1CTMonitoring__BSMonitoring as BSMon -isOnline=False #-----------ONLINE CODE--------------------- if isOnline and jp.ConcurrencyFlags.NumThreads() == 0: #from TrigServices.TrigServicesConf import TrigMonTHistSvc -- GitLab From 0dc9a8d5f38bd09f93005786aed508be6e24c95c Mon Sep 17 00:00:00 2001 From: Xiaozhong Huang <xiaozhong.huang@cern.ch> Date: Thu, 25 Jun 2020 11:47:52 +0800 Subject: [PATCH 062/459] tauRecTools: style fix of TauWPDecorator --- .../tauRecTools/Root/TauWPDecorator.cxx | 343 +++++++++--------- .../tauRecTools/tauRecTools/TauWPDecorator.h | 69 ++-- 2 files changed, 206 insertions(+), 206 deletions(-) diff --git a/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx b/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx index 8f5174d7ff8..06fb462db8d 100644 --- a/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx +++ b/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "tauRecTools/TauWPDecorator.h" @@ -9,59 +9,59 @@ #include <utility> #include "TFile.h" #include "TH2.h" -#include "TString.h" -/********************************************************************/ -TauWPDecorator::TauWPDecorator(const std::string& name) : - TauRecToolBase(name) -{ - declareProperty("flatteningFile0Prong", m_file0P); - declareProperty("flatteningFile1Prong", m_file1P); - declareProperty("flatteningFile3Prong", m_file3P); - declareProperty("ScoreName", m_scoreName = "BDTJetScore"); - declareProperty("NewScoreName", m_newScoreName = "BDTJetScoreSigTrans"); - declareProperty("DefineWPs", m_defineWP=false); - declareProperty("UseEleBDT", m_electronMode=false); +TauWPDecorator::TauWPDecorator(const std::string& name) : + TauRecToolBase(name) { + declareProperty("UseEleBDT", m_electronMode = false); + declareProperty("DefineWPs", m_defineWPs = false); + declareProperty("ScoreName", m_scoreName = "BDTJetScore"); + declareProperty("NewScoreName", m_scoreNameTrans = "BDTJetScoreSigTrans"); - declareProperty("CutEnumVals", m_cut_bits); - declareProperty("SigEff0P", m_cut_effs_0p); - declareProperty("SigEff1P", m_cut_effs_1p); - declareProperty("SigEff3P", m_cut_effs_3p); - - declareProperty("DecorWPNames", m_decoration_names); - declareProperty("DecorWPCutEffs0P", m_cut_effs_decoration_0p); - declareProperty("DecorWPCutEffs1P", m_cut_effs_decoration_1p); - declareProperty("DecorWPCutEffs3P", m_cut_effs_decoration_3p); + declareProperty("flatteningFile0Prong", m_file0p = ""); + declareProperty("flatteningFile1Prong", m_file1p = ""); + declareProperty("flatteningFile3Prong", m_file3p = ""); + + declareProperty("CutEnumVals", m_EDMWPs); + declareProperty("SigEff0P", m_EDMWPEffs0p); + declareProperty("SigEff1P", m_EDMWPEffs1p); + declareProperty("SigEff3P", m_EDMWPEffs3p); + + declareProperty("DecorWPNames", m_decorWPs); + declareProperty("DecorWPCutEffs0P", m_decorWPEffs0p); + declareProperty("DecorWPCutEffs1P", m_decorWPEffs1p); + declareProperty("DecorWPCutEffs3P", m_decorWPEffs3p); } -/********************************************************************/ + + TauWPDecorator::~TauWPDecorator() { } -StatusCode TauWPDecorator::retrieveHistos(int nProng) { + +StatusCode TauWPDecorator::retrieveHistos(int nProng) { // Find and open file std::string fileName; std::vector<m_pair_t>* histArray = nullptr; if (nProng == 0) { - fileName = m_file0P; - histArray = m_hists0P.get(); + fileName = m_file0p; + histArray = m_hists0p.get(); } else if (nProng == 1) { - fileName = m_file1P; - histArray = m_hists1P.get(); + fileName = m_file1p; + histArray = m_hists1p.get(); } else { - fileName = m_file3P; - histArray = m_hists3P.get(); + fileName = m_file3p; + histArray = m_hists3p.get(); } std::string fullPath = find_file(fileName); - std::unique_ptr<TFile> myFile(TFile::Open(fullPath.c_str(), "READ")); + std::unique_ptr<TFile> file(TFile::Open(fullPath.c_str(), "READ")); - if(!myFile || myFile->IsZombie()) { + if (!file || file->IsZombie()) { ATH_MSG_FATAL("Could not open file " << fullPath.c_str()); return StatusCode::FAILURE; } @@ -69,218 +69,225 @@ StatusCode TauWPDecorator::retrieveHistos(int nProng) { ATH_MSG_INFO("Loading working points from " << fullPath.c_str()); // Iterate over working points - for(int i=0; i<100; i++) - { + for (int i = 0; i < 100; ++i) { // Retrieve histogram - TH2* myGraph = dynamic_cast<TH2*>(myFile->Get(Form("h2_%02d", i))); - if(!myGraph){ + TH2* graph = dynamic_cast<TH2*>(file->Get(Form("h2_%02d", i))); + if (!graph){ ATH_MSG_WARNING("Failed to retrieve Graph " << i << " named " << Form("h2_%02d", i)); continue; } - - std::unique_ptr<TH2> myLocalGraph(myGraph); - myLocalGraph->SetDirectory(0); - histArray->push_back(m_pair_t(float(i)/100., std::move(myLocalGraph))); + graph->SetDirectory(0); + std::unique_ptr<TH2> uniqueGraph(graph); + histArray->push_back(m_pair_t(float(i)/100., std::move(uniqueGraph))); } - myFile->Close(); + file->Close(); return StatusCode::SUCCESS; } -StatusCode TauWPDecorator::storeLimits(int nProng) { + +StatusCode TauWPDecorator::storeLimits(int nProng) { std::vector<m_pair_t>* histArray = nullptr; - if (nProng == 0) histArray = m_hists0P.get(); - else if (nProng == 1) histArray = m_hists1P.get(); - else histArray = m_hists3P.get(); - - // Default values - m_xmin[nProng] = 1E9; - m_xmax[nProng] = -1E9; - m_ymin[nProng] = 1E9; - m_ymax[nProng] = -1E9; - - // Store limits - for (unsigned int i=0; i<histArray->size(); i++) - { - TH2* myHist = histArray->at(i).second.get(); - m_xmin[nProng] = TMath::Min(myHist->GetXaxis()->GetXmin(), m_xmin[nProng]); - m_ymin[nProng] = TMath::Min(myHist->GetYaxis()->GetXmin(), m_ymin[nProng]); + if (nProng == 0) { + histArray = m_hists0p.get(); + } + else if (nProng == 1) { + histArray = m_hists1p.get(); + } + else { + histArray = m_hists3p.get(); + } - m_xmax[nProng] = TMath::Max(myHist->GetXaxis()->GetBinCenter(myHist->GetNbinsX()), m_xmax[nProng]); - m_ymax[nProng] = TMath::Max(myHist->GetYaxis()->GetBinCenter(myHist->GetNbinsY()), m_ymin[nProng]); + TH2* firstHist = histArray->at(0).second.get(); + m_xMin[nProng] = firstHist->GetXaxis()->GetXmin(); + m_xMax[nProng] = firstHist->GetXaxis()->GetBinCenter(firstHist->GetNbinsX()); + m_yMin[nProng] = firstHist->GetYaxis()->GetXmin(); + m_yMax[nProng] = firstHist->GetYaxis()->GetBinCenter(firstHist->GetNbinsY()); + // Check all the histograms have the same limits + for (size_t i = 1; i < histArray->size(); ++i) { + TH2* hist = histArray->at(i).second.get(); + + double xMin = hist->GetXaxis()->GetXmin(); + double xMax = hist->GetXaxis()->GetBinCenter(firstHist->GetNbinsX()); + double yMin = hist->GetYaxis()->GetXmin(); + double yMax = hist->GetYaxis()->GetBinCenter(firstHist->GetNbinsY()); + + if (std::abs(m_xMin[nProng] - xMin) > 1e-5 || + std::abs(m_xMax[nProng] - xMax) > 1e-5 || + std::abs(m_yMin[nProng] - yMin) > 1e-5 || + std::abs(m_yMax[nProng] - yMax) > 1e-5) { + ATH_MSG_WARNING("The " << i << " th histogram has different limit"); + } } return StatusCode::SUCCESS; } -double TauWPDecorator::transformScore(double score, double cut_lo, double eff_lo, double cut_hi, double eff_hi) const { - double newscore = 1. - eff_lo - (score - cut_lo)/(cut_hi - cut_lo) * (eff_hi - eff_lo); - return newscore; +double TauWPDecorator::transformScore(double score, double cutLow, double effLow, double cutHigh, double effHigh) const { + double efficiency = effLow + (score - cutLow)/(cutHigh - cutLow) * (effHigh - effLow); + double scoreTrans = 1.0 - efficiency; + return scoreTrans; } -/********************************************************************/ + + StatusCode TauWPDecorator::initialize() { ATH_CHECK( m_eventInfo.initialize() ); // 0p is for trigger only - if(!m_file0P.empty()) { - m_hists0P = std::make_unique<std::vector<m_pair_t>>(); - ATH_CHECK( retrieveHistos(0) ); - ATH_CHECK( storeLimits(0) ); + if (!m_file0p.empty()) { + m_hists0p = std::make_unique<std::vector<m_pair_t>>(); + ATH_CHECK(retrieveHistos(0)); + ATH_CHECK(storeLimits(0)); + } + + // 1p and 3p file must be provided + if (m_file1p.empty() || m_file3p.empty()) { + ATH_MSG_ERROR("1p/3p flatterning file is not provided !"); + return StatusCode::FAILURE; } - m_hists1P = std::make_unique<std::vector<m_pair_t>>(); - ATH_CHECK( retrieveHistos(1) ); - ATH_CHECK( storeLimits(1) ); + m_hists1p = std::make_unique<std::vector<m_pair_t>>(); + ATH_CHECK(retrieveHistos(1)); + ATH_CHECK(storeLimits(1)); - m_hists3P = std::make_unique<std::vector<m_pair_t>>(); - ATH_CHECK( retrieveHistos(3) ); - ATH_CHECK( storeLimits(3) ); + m_hists3p = std::make_unique<std::vector<m_pair_t>>(); + ATH_CHECK(retrieveHistos(3)); + ATH_CHECK(storeLimits(3)); return StatusCode::SUCCESS; } -/********************************************************************/ -StatusCode TauWPDecorator::execute(xAOD::TauJet& pTau) const -{ - float mu = 0; - SG::ReadHandle<xAOD::EventInfo> eventinfoInHandle( m_eventInfo ); - if (!eventinfoInHandle.isValid()) { - ATH_MSG_ERROR( "Could not retrieve HiveDataObj with key " << eventinfoInHandle.key() << ", mu is set to be .0"); - } + +StatusCode TauWPDecorator::execute(xAOD::TauJet& pTau) const { + // obtain the dependent variables of the efficiency + // -- x variable is tau pt + double xVariable = pTau.pt(); + + // -- y variable is |eta| of leading track in electron mode, and pileup in other cases + double yVariable = 0.0; + if (m_electronMode) { + const SG::AuxElement::ConstAccessor<float> acc_absEta("ABS_ETA_LEAD_TRACK"); + yVariable = std::abs(acc_absEta(pTau)); + } else { - const xAOD::EventInfo* eventInfo = eventinfoInHandle.cptr(); - mu = eventInfo->averageInteractionsPerCrossing(); + SG::ReadHandle<xAOD::EventInfo> eventinfoInHandle( m_eventInfo ); + if (!eventinfoInHandle.isValid()) { + ATH_MSG_ERROR("Could not retrieve HiveDataObj with key " << eventinfoInHandle.key() << ", mu is set to be .0"); + } + else { + const xAOD::EventInfo* eventInfo = eventinfoInHandle.cptr(); + yVariable = eventInfo->averageInteractionsPerCrossing(); + } } - const SG::AuxElement::ConstAccessor<float> acc_score(m_scoreName); - SG::AuxElement::Accessor<float> acc_newScore(m_newScoreName); - - // could use detail(TauJetParameters::nChargedTracks) for trigger, but TauIDVarCalculator used nTracks() int nProng = pTau.nTracks(); - - // WARNING, previous behaviour: use 1p flattening file for 1-track taus, else use 3p flattening file - // meaning when we don't use a 0p flattening file, 0p falls back to 3p case - // for now, keep it for backward-compatibility - if(nProng==0 && !m_hists0P) nProng = 3; - else if(nProng>=2) nProng = 3; - - std::vector<m_pair_t>* histArray = nullptr; - if (nProng == 0) histArray = m_hists0P.get(); - else if (nProng == 1) histArray = m_hists1P.get(); - else histArray = m_hists3P.get(); - // Retrieve tau properties - double score = acc_score(pTau); - double pt = pTau.pt(); + // nProng >=2 is treated as 3 prong + // 0 prong is treated as 3 prong when 0 prong calibraction file is not provided + if (nProng==0 && !m_hists0p) { + nProng = 3; + } + else if (nProng>=2) { + nProng = 3; + } - double y_var = 0.0; - if(m_electronMode) { - const SG::AuxElement::ConstAccessor<float> acc_absEta("ABS_ETA_LEAD_TRACK"); - y_var = std::abs(acc_absEta(pTau)); - } else { - y_var = mu; + // make sure the dependent variables are within the range of calibration histograms + ATH_MSG_DEBUG("original pT:\t" << xVariable); + if (m_electronMode) { + ATH_MSG_DEBUG("original |eta|:\t" << yVariable); + } + else { + ATH_MSG_DEBUG("original mu:\t" << yVariable); } - ATH_MSG_VERBOSE("pT before " << pt); - ATH_MSG_VERBOSE("mu before " << y_var); + xVariable = TMath::Min(m_xMax.at(nProng), TMath::Max(m_xMin.at(nProng), xVariable)); + yVariable = TMath::Min(m_yMax.at(nProng), TMath::Max(m_yMin.at(nProng), yVariable)); + + ATH_MSG_DEBUG("final pT:\t" << xVariable); + if (m_electronMode) { + ATH_MSG_DEBUG("final |eta|:\t" << yVariable); + } + else { + ATH_MSG_DEBUG("final mu:\t" << yVariable); + } - // Implement limits - pt = TMath::Min(m_xmax.at(nProng), TMath::Max(m_xmin.at(nProng), pt)); - y_var = TMath::Min(m_ymax.at(nProng), TMath::Max(m_ymin.at(nProng), y_var)); + std::vector<m_pair_t>* histArray = nullptr; + if (nProng == 0) histArray = m_hists0p.get(); + else if (nProng == 1) histArray = m_hists1p.get(); + else histArray = m_hists3p.get(); - ATH_MSG_VERBOSE("pT after " << pt); - ATH_MSG_VERBOSE("mu after " << y_var); - - // calculate flattened disc - std::vector<double> cuts(2,0.); - std::vector<double> effs(2,0.); - bool gotLow = false; - bool gotHigh = false; + std::array<double, 2> cuts = {-1.01, 1.01}; // lower and upper bounday of the score + std::array<double, 2> effs = {1.0, 0.0}; // efficiency corresponding to the score cut + bool gotLow = false; // whether lower bounday is found + bool gotHigh = false; // whether upper bounday is found - // Loop over all histograms - for (unsigned int i=0; i<histArray->size(); i++) { + const SG::AuxElement::ConstAccessor<float> acc_score(m_scoreName); + double score = acc_score(pTau); // original score (BDT/RNN) + + // Loop over all histograms to find the lower and upper bounary of the score and corresponding efficiency + for (unsigned int i = 0; i < histArray->size(); ++i) { TH2* myHist = histArray->at(i).second.get(); - double myCut = myHist->Interpolate(pt, y_var); + double myCut = myHist->Interpolate(xVariable, yVariable); - // Find upper and lower cuts - if(myCut <= score && ((!gotLow) || std::abs(myCut-score) < std::abs(cuts[0]-score))) { + if (myCut <= score && ((!gotLow) || std::abs(myCut-score) < std::abs(cuts[0]-score))) { gotLow = true; effs[0] = histArray->at(i).first; cuts[0] = myCut; } - - else if(myCut > score && ((!gotHigh) || std::abs(myCut-score) < std::abs(cuts[1]-score))) { + else if (myCut > score && ((!gotHigh) || std::abs(myCut-score) < std::abs(cuts[1]-score))) { gotHigh = true; effs[1] = histArray->at(i).first; cuts[1] = myCut; } - if(gotLow && gotHigh){ + if (gotLow && gotHigh){ ATH_MSG_VERBOSE("break @ " << myHist->GetName()); break; } } - ATH_MSG_VERBOSE("BDTScore " << score); - ATH_MSG_VERBOSE("CutLow/High " << cuts[0] << " " << cuts[1]); - ATH_MSG_VERBOSE("EffLow/High " << effs[0] << " " << effs[1]); - ATH_MSG_VERBOSE("gotHigh=" << gotHigh << " gotLow=" << gotLow); - - if(!gotLow && !gotHigh) { - ATH_MSG_WARNING("Must have at least upper or lower efficiency boundary!"); - ATH_MSG_WARNING("Candidate pT/mu/BDTscore " << pt << " " << y_var << " " << score); + double scoreTrans = -1111.; // flattened score + if (score > cuts[1]) { // should not happen + scoreTrans = 1 - effs[1]; } - - // Upper & Lower Boundaries - if(!gotHigh) { - cuts[1] = 1.01; - effs[1] = 0.0; - } - if(!gotLow) { - cuts[0] = -1.01; - effs[0] = 1.0; + else if (score < cuts[0]) { // score is -9999 when BDT/RNN fails + scoreTrans = 1 - effs[0]; } - - // Evaluate and decorate new score - double newscore = -1111.; - // Score higher than default upper boundary (rare) - if( score > cuts[1] ) newscore = 1 - effs[1]; - // Score lower than default lower boundary (rare) - else if( score < cuts[0] ) newscore = 1 - effs[0]; - // Score inside boundaries else { - newscore = transformScore(score, cuts[0], effs[0], cuts[1], effs[1]); + scoreTrans = transformScore(score, cuts[0], effs[0], cuts[1], effs[1]); } - acc_newScore(pTau) = newscore; + SG::AuxElement::Accessor<float> acc_scoreTrans(m_scoreNameTrans); + acc_scoreTrans(pTau) = scoreTrans; - if(m_defineWP) { - for (u_int Nwp=0; Nwp < m_cut_bits.size(); Nwp++){ + if(m_defineWPs) { + // WPs in EDM + for (size_t wpIndex=0; wpIndex < m_EDMWPs.size(); ++wpIndex) { if(nProng == 0) { - pTau.setIsTau((xAOD::TauJetParameters::IsTauFlag) m_cut_bits[Nwp], newscore > (1-m_cut_effs_0p[Nwp])); + pTau.setIsTau((xAOD::TauJetParameters::IsTauFlag) m_EDMWPs[wpIndex], scoreTrans > (1-m_EDMWPEffs0p[wpIndex])); } else if(nProng == 1) { - pTau.setIsTau((xAOD::TauJetParameters::IsTauFlag) m_cut_bits[Nwp], newscore > (1-m_cut_effs_1p[Nwp])); + pTau.setIsTau((xAOD::TauJetParameters::IsTauFlag) m_EDMWPs[wpIndex], scoreTrans > (1-m_EDMWPEffs1p[wpIndex])); } else { - pTau.setIsTau((xAOD::TauJetParameters::IsTauFlag) m_cut_bits[Nwp], newscore > (1-m_cut_effs_3p[Nwp])); + pTau.setIsTau((xAOD::TauJetParameters::IsTauFlag) m_EDMWPs[wpIndex], scoreTrans > (1-m_EDMWPEffs3p[wpIndex])); } } // Decorate other WPs - for (u_int Nwp=0; Nwp < m_decoration_names.size(); Nwp++){ + for (size_t wpIndex=0; wpIndex < m_decorWPs.size(); ++wpIndex) { if(nProng == 0) { - pTau.auxdecor<char>(m_decoration_names[Nwp]) = newscore > (1-m_cut_effs_decoration_0p[Nwp]); + pTau.auxdecor<char>(m_decorWPs[wpIndex]) = scoreTrans > (1-m_decorWPEffs0p[wpIndex]); } else if(nProng == 1) { - pTau.auxdecor<char>(m_decoration_names[Nwp]) = newscore > (1-m_cut_effs_decoration_1p[Nwp]); + pTau.auxdecor<char>(m_decorWPs[wpIndex]) = scoreTrans > (1-m_decorWPEffs1p[wpIndex]); } else { - pTau.auxdecor<char>(m_decoration_names[Nwp]) = newscore > (1-m_cut_effs_decoration_3p[Nwp]); + pTau.auxdecor<char>(m_decorWPs[wpIndex]) = scoreTrans > (1-m_decorWPEffs3p[wpIndex]); } } } @@ -288,12 +295,8 @@ StatusCode TauWPDecorator::execute(xAOD::TauJet& pTau) const return StatusCode::SUCCESS; } -//----------------------------------------------------------------------------- -// Finalize -//----------------------------------------------------------------------------- + StatusCode TauWPDecorator::finalize() { - return StatusCode::SUCCESS; - } diff --git a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h index 70690312304..1d6a059883c 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h @@ -28,54 +28,51 @@ class TH2; */ class TauWPDecorator : public TauRecToolBase { -public: - - TauWPDecorator(const std::string& name="TauWPDecorator") ; + public: ASG_TOOL_CLASS2(TauWPDecorator, TauRecToolBase, ITauToolBase) + TauWPDecorator(const std::string& name="TauWPDecorator"); ~TauWPDecorator(); virtual StatusCode initialize() override; virtual StatusCode finalize() override; virtual StatusCode execute(xAOD::TauJet& pTau) const override; - virtual StatusCode retrieveHistos(int nProng); - virtual StatusCode storeLimits(int nProng); - virtual double transformScore(double score, double cut_lo, double eff_lo, double cut_hi, double eff_hi) const; - -private: - std::string m_file0P; - std::string m_file1P; - std::string m_file3P; - - typedef std::pair<double, std::unique_ptr<TH2> > m_pair_t; + private: + StatusCode retrieveHistos(int nProng); + StatusCode storeLimits(int nProng); + double transformScore(double score, double cutLow, double effLow, double cutHigh, double effHigh) const; - std::unique_ptr<std::vector<m_pair_t>> m_hists0P; //! - std::unique_ptr<std::vector<m_pair_t>> m_hists1P; //! - std::unique_ptr<std::vector<m_pair_t>> m_hists3P; //! - - // Limits, probably not needed - std::map<int, double> m_xmin; - std::map<int, double> m_ymin; - std::map<int, double> m_xmax; - std::map<int, double> m_ymax; - - bool m_defineWP; bool m_electronMode; - - std::vector<int> m_cut_bits; - std::vector<float> m_cut_effs_0p; - std::vector<float> m_cut_effs_1p; - std::vector<float> m_cut_effs_3p; - - std::vector<std::string> m_decoration_names; - std::vector<float> m_cut_effs_decoration_0p; - std::vector<float> m_cut_effs_decoration_1p; - std::vector<float> m_cut_effs_decoration_3p; - + bool m_defineWPs; std::string m_scoreName; - std::string m_newScoreName; + std::string m_scoreNameTrans; + std::string m_file0p; + std::string m_file1p; + std::string m_file3p; + + std::vector<int> m_EDMWPs; + std::vector<float> m_EDMWPEffs0p; + std::vector<float> m_EDMWPEffs1p; + std::vector<float> m_EDMWPEffs3p; + + std::vector<std::string> m_decorWPs; + std::vector<float> m_decorWPEffs0p; + std::vector<float> m_decorWPEffs1p; + std::vector<float> m_decorWPEffs3p; + SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo{this,"Key_eventInfo", "EventInfo", "EventInfo key"}; + + typedef std::pair<double, std::unique_ptr<TH2> > m_pair_t; + + std::unique_ptr<std::vector<m_pair_t>> m_hists0p; + std::unique_ptr<std::vector<m_pair_t>> m_hists1p; + std::unique_ptr<std::vector<m_pair_t>> m_hists3p; + + std::map<int, double> m_xMin; + std::map<int, double> m_yMin; + std::map<int, double> m_xMax; + std::map<int, double> m_yMax; }; #endif -- GitLab From 7fa9af571c4b026fc8d0ee2bc2fe516a5b080715 Mon Sep 17 00:00:00 2001 From: Xiaozhong Huang <xiaozhong.huang@cern.ch> Date: Fri, 17 Jul 2020 14:45:38 +0800 Subject: [PATCH 063/459] tauRecTools: add doxygen comments for TauWPDecorator --- .../tauRecTools/tauRecTools/TauWPDecorator.h | 87 +++++++++++++------ 1 file changed, 59 insertions(+), 28 deletions(-) diff --git a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h index 1d6a059883c..84176b0de96 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h @@ -18,61 +18,92 @@ class TH2; /** * @brief Implementation of tool to decorate flattened BDT score and working points * - * Input comes from 2 ROOT files with lists of TH2s containing BDTScore distributions - * as a function of the dependent variables + * Input comes from ROOT files with lists of TH2s containing BDT/RNN score distributions + * as a function of the dependent variables. For eVeto, the score distributions depend on + * tau pT and |eta| of the leading track. Otherwise, the score distributions depend on + * tau pT and pileup. * * @author P.O. DeViveiros * @author W. Davey * @author L. Hauswald - * */ class TauWPDecorator : public TauRecToolBase { public: + ASG_TOOL_CLASS2(TauWPDecorator, TauRecToolBase, ITauToolBase) + + /** @brief Constructor */ TauWPDecorator(const std::string& name="TauWPDecorator"); + + /** @brief Destructor */ ~TauWPDecorator(); + /** @brief Initialization of this tool */ virtual StatusCode initialize() override; - virtual StatusCode finalize() override; + + /** @brief Executation of this tool */ virtual StatusCode execute(xAOD::TauJet& pTau) const override; + + /** @brief Finalization of this tool */ + virtual StatusCode finalize() override; private: + + /** + * @brief Retrieve the histograms containing BDT/RNN score distributions as a function of dependent variables + * @param nProng Prong of the tau candidate + */ StatusCode retrieveHistos(int nProng); + + /** + * @brief Obtain the limit of the dependent variables + * @param nProng Prong of the tau candidate + */ StatusCode storeLimits(int nProng); - double transformScore(double score, double cutLow, double effLow, double cutHigh, double effHigh) const; - bool m_electronMode; - bool m_defineWPs; - std::string m_scoreName; - std::string m_scoreNameTrans; + /** + * @brief Obtain the flattened score + * @param score Original BDT/RNN score + * @param cutLow Lower score cut + * @param effLow Efficiency of the lower cut + * @param cutHigh Higher score cut + * @param effHigh Efficiency of the higher cut + */ + double transformScore(double score, double cutLow, double effLow, double cutHigh, double effHigh) const; - std::string m_file0p; - std::string m_file1p; - std::string m_file3p; + bool m_electronMode; //!< Whether we are flatterning electron veto WP + bool m_defineWPs; //!< Whether to decorate the WPs - std::vector<int> m_EDMWPs; - std::vector<float> m_EDMWPEffs0p; - std::vector<float> m_EDMWPEffs1p; - std::vector<float> m_EDMWPEffs3p; - - std::vector<std::string> m_decorWPs; - std::vector<float> m_decorWPEffs0p; - std::vector<float> m_decorWPEffs1p; - std::vector<float> m_decorWPEffs3p; + std::string m_scoreName; //!< Name of the original score + std::string m_scoreNameTrans; //!< Name of the transformed score + + std::string m_file0p; //!< Calibration file name of 0-prong taus + std::string m_file1p; //!< Calibration file name of 1-prong taus + std::string m_file3p; //!< Calibration file name of 3-prong taus + + std::vector<int> m_EDMWPs; //!< Vector of WPs in the EDM + std::vector<float> m_EDMWPEffs0p; //!< Efficiency of each WP in EDP for 0-prong taus + std::vector<float> m_EDMWPEffs1p; //!< Efficiency of each WP in EDP for 1-prong taus + std::vector<float> m_EDMWPEffs3p; //!< Efficiency of each WP in EDP for 3-prong taus + + std::vector<std::string> m_decorWPs; //!< Vector of WPs not in the EDM (to be decorated) + std::vector<float> m_decorWPEffs0p; //!< Efficiency of each WP to be docorated for 0-prong taus + std::vector<float> m_decorWPEffs1p; //!< Efficiency of each WP to be docorated for 1-prong taus + std::vector<float> m_decorWPEffs3p; //!< Efficiency of each WP to be docorated for 3-prong taus SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo{this,"Key_eventInfo", "EventInfo", "EventInfo key"}; typedef std::pair<double, std::unique_ptr<TH2> > m_pair_t; - std::unique_ptr<std::vector<m_pair_t>> m_hists0p; - std::unique_ptr<std::vector<m_pair_t>> m_hists1p; - std::unique_ptr<std::vector<m_pair_t>> m_hists3p; + std::unique_ptr<std::vector<m_pair_t>> m_hists0p; //!< Efficiency and corresponding score distributions of 0-prong taus + std::unique_ptr<std::vector<m_pair_t>> m_hists1p; //!< Efficiency and corresponding score distributions of 1-prong taus + std::unique_ptr<std::vector<m_pair_t>> m_hists3p; //!< Efficiency and corresponding score distributions of 3-prong taus - std::map<int, double> m_xMin; - std::map<int, double> m_yMin; - std::map<int, double> m_xMax; - std::map<int, double> m_yMax; + std::map<int, double> m_xMin; //!< Map of n-prong and the minimum value of x variables + std::map<int, double> m_yMin; //!< Map of n-prong and the minimum value of y variables + std::map<int, double> m_xMax; //!< Map of n-prong and the maximum value of x variables + std::map<int, double> m_yMax; //!< Map of n-prong and the maximum value of y variables }; #endif -- GitLab From e756a594bd1c71c6d77b78e12f63fc8b791e9f2d Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Fri, 17 Jul 2020 11:34:39 +0100 Subject: [PATCH 064/459] Moving from file check to class check --- .../MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx | 5 ----- .../MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h | 8 +++----- .../MuonCSC_CnvTools/src/CscRdoToCscPrepDataTool.h | 4 +++- .../src/CscRdoToCscPrepDataToolCore.cxx | 12 ++++-------- .../src/CscRdoToCscPrepDataToolCore.h | 10 +++------- 5 files changed, 13 insertions(+), 26 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx index 60efbbed7fb..6915dc9ae72 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.cxx @@ -6,11 +6,6 @@ // CSC_RawDataProviderTool.cxx, (c) ATLAS Detector software /////////////////////////////////////////////////////////////////// -/// This code is only used in the single-thread setup -/// As such, deactivating the check in this file -#include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; - #include "CSC_RawDataProviderTool.h" #include "MuonReadoutGeometry/MuonDetectorManager.h" #include "ByteStreamData/ROBData.h" diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h index b8e43461525..fc78a22b30a 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CSC_RawDataProviderTool.h @@ -8,11 +8,8 @@ #ifndef MUONCSC_CNVTOOLS_CSC_RAWDATAPROVIDERTOOL_H #define MUONCSC_CNVTOOLS_CSC_RAWDATAPROVIDERTOOL_H - -/// This code is only used in the single-thread setup -/// As such, deactivating the check in this file + #include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; #include "CSC_RawDataProviderToolCore.h" #include "GaudiKernel/ToolHandle.h" @@ -23,7 +20,8 @@ ATLAS_NO_CHECK_FILE_THREAD_SAFETY; namespace Muon { -class CSC_RawDataProviderTool : virtual public IMuonRawDataProviderTool, public CSC_RawDataProviderToolCore +/// This class is only used in a single-thread mode +class ATLAS_NOT_THREAD_SAFE CSC_RawDataProviderTool : virtual public IMuonRawDataProviderTool, public CSC_RawDataProviderToolCore { public: CSC_RawDataProviderTool(const std::string& t, const std::string& n, const IInterface* p); diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataTool.h b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataTool.h index 1b17a57de7b..f56e7b8ce63 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataTool.h +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataTool.h @@ -5,6 +5,8 @@ #ifndef MUONCSC_CNVTOOLS_CSCRDOTOCSCPREPDATATOOL_H #define MUONCSC_CNVTOOLS_CSCRDOTOCSCPREPDATATOOL_H +#include "CxxUtils/checker_macros.h" + #include "CscRdoToCscPrepDataToolCore.h" #include <string> @@ -22,7 +24,7 @@ //////////////////////////////////////////////////////////////////////////////////////// namespace Muon { - class CscRdoToCscPrepDataTool : public CscRdoToCscPrepDataToolCore { + class ATLAS_NOT_THREAD_SAFE CscRdoToCscPrepDataTool : public CscRdoToCscPrepDataToolCore { public: diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.cxx b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.cxx index 07e0047870e..35154052997 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.cxx +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.cxx @@ -6,12 +6,6 @@ /// BNL, April 03 2005 /// algorithm to decode RDO into PrepRawData -/// This code is only used in the single-thread setup -/// CscRdoToCscPrepDataToolMT.cxx has the same functions but -/// defined for a thread-safe environment -/// As such, deactivating the check in this file -#include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; #include "MuonIdHelpers/CscIdHelper.h" #include "MuonReadoutGeometry/CscReadoutElement.h" @@ -76,7 +70,8 @@ StatusCode CscRdoToCscPrepDataToolCore::decode(std::vector<IdentifierHash>&, std //***************************************** //************** Process for the givenId EF Filter case... -StatusCode CscRdoToCscPrepDataToolCore::decode(const CscRawDataContainer* rdoContainer, IdentifierHash givenHashId, std::vector<IdentifierHash>& decodedIdhs) { +/// This decode function is for single-thread running only +StatusCode CscRdoToCscPrepDataToolCore::decode ATLAS_NOT_THREAD_SAFE (const CscRawDataContainer* rdoContainer, IdentifierHash givenHashId, std::vector<IdentifierHash>& decodedIdhs) { IdContext cscContext = m_idHelperSvc->cscIdHelper().module_context(); SG::ReadCondHandle<MuonGM::MuonDetectorManager> muDetMgrHandle{m_muDetMgrKey}; @@ -264,7 +259,8 @@ StatusCode CscRdoToCscPrepDataToolCore::decode(const CscRawDataContainer* rdoCon //************** Process for all in case of Offline -StatusCode CscRdoToCscPrepDataToolCore::decode(const CscRawDataContainer* rdoContainer, std::vector<IdentifierHash>& decodedIdhs) +/// This decode function is for single-thread running only +StatusCode CscRdoToCscPrepDataToolCore::decode ATLAS_NOT_THREAD_SAFE (const CscRawDataContainer* rdoContainer, std::vector<IdentifierHash>& decodedIdhs) { typedef CscRawDataContainer::const_iterator collection_iterator; diff --git a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.h b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.h index ebeea0ef459..0fd634f50bf 100644 --- a/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.h +++ b/MuonSpectrometer/MuonCnv/MuonCSC_CnvTools/src/CscRdoToCscPrepDataToolCore.h @@ -5,13 +5,6 @@ #ifndef MUONCSC_CNVTOOLS_CSCRDOTOCSCPREPDATATOOLCORE_H #define MUONCSC_CNVTOOLS_CSCRDOTOCSCPREPDATATOOLCORE_H -/// This code is only used in the single-thread setup -/// CscRdoToCscPrepDataToolMT.cxx has the same functions but -/// defined for a thread-safe environment -/// As such, deactivating the check in this file -#include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; - #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ServiceHandle.h" #include "GaudiKernel/ToolHandle.h" @@ -43,6 +36,9 @@ class CscRawDataContainer; //////////////////////////////////////////////////////////////////////////////////////// namespace Muon { + + /// This class is only used in a single-thread mode as CscRdoToCscPrepDataToolMT has the + /// equivalent functions defined for a thread-safe setup class CscRdoToCscPrepDataToolCore : public AthAlgTool, virtual public IMuonRdoToPrepDataTool { public: -- GitLab From ce4ce14d298d3c0b136205da835125c9dea6bef8 Mon Sep 17 00:00:00 2001 From: Jannik Geisen <jannik.geisen@cern.ch> Date: Fri, 17 Jul 2020 15:44:34 +0200 Subject: [PATCH 065/459] Added safety check when accessing jet variables to prevent crashes. Also added kinematic histograms for various calibration scales. --- .../JetMonitoring/JetMonitoring/JetVariable.h | 28 ++++++++++++++++--- .../python/JetStandardHistoSpecs.py | 21 ++++++++++++-- .../python/TrigJetMonitorAlgorithm.py | 22 ++++++++------- 3 files changed, 54 insertions(+), 17 deletions(-) diff --git a/Reconstruction/Jet/JetMonitoring/JetMonitoring/JetVariable.h b/Reconstruction/Jet/JetMonitoring/JetMonitoring/JetVariable.h index 5321f6cb976..6eba2d557dd 100644 --- a/Reconstruction/Jet/JetMonitoring/JetMonitoring/JetVariable.h +++ b/Reconstruction/Jet/JetMonitoring/JetMonitoring/JetVariable.h @@ -90,7 +90,13 @@ namespace JetVar { template<typename T> struct VariableAtt : public Variable { VariableAtt(const std::string & name) : Variable(name), m_acc(name) {} - virtual float value(const xAOD::Jet & j) const { return m_acc(j)*m_scale;} + virtual float value(const xAOD::Jet & j) const { + if ( m_acc.isAvailable( j ) ) return m_acc(j)*m_scale; + else { + std::cout<<"VariableAtt::value() cannot access variable '"<<m_name<<"'"<<std::endl; + return -999.; + } + } Accessor<T> m_acc; }; @@ -120,11 +126,25 @@ namespace JetVar { virtual bool isVector() const {return m_index==-1;} // use only if the index is valid - virtual float value(const xAOD::Jet & j) const { return m_acc(j)[m_index]*m_scale;} + virtual float value(const xAOD::Jet & j) const { + if ( m_acc.isAvailable( j ) ) return m_acc(j)[m_index]*m_scale; + else { + std::cout<<"VariableAtt<std::vector<T>>::value() cannot access variable '"<<m_name<<"["<<std::to_string(m_index)<<"]'"<<std::endl; + return -999.; + } + } virtual VectorValue vector(const xAOD::Jet &j) const { - VectorValue v( new VectorWrapperT(&m_acc(j)) , m_scale ) ; - return v; + if ( m_acc.isAvailable( j ) ) { + VectorValue v( new VectorWrapperT(&m_acc(j)) , m_scale ) ; + return v; + } + else { + std::cout<<"VariableAtt<std::vector<T>>::vector() cannot access variable '"<<m_name<<"'"<<std::endl; + vect_t dummy(1,-999.); + VectorValue junk( new VectorWrapperT(&dummy), m_scale ); + return junk; + } } diff --git a/Reconstruction/Jet/JetMonitoring/python/JetStandardHistoSpecs.py b/Reconstruction/Jet/JetMonitoring/python/JetStandardHistoSpecs.py index df219a76df1..9f9702635b9 100644 --- a/Reconstruction/Jet/JetMonitoring/python/JetStandardHistoSpecs.py +++ b/Reconstruction/Jet/JetMonitoring/python/JetStandardHistoSpecs.py @@ -191,11 +191,26 @@ _knownHistos = [ HistoSpec('ShowerDeconstructionW', (100, -100, 100), title='ShowerDeconstructionW;ShowerDeconstructionW;', ), HistoSpec('ShowerDeconstructionTop', (100, -100, 100), title='ShowerDeconstructionTop;ShowerDeconstructionTop;', ), - - + HistoSpec( 'JetConstitScaleMomentum_eta', (50,-5,5) , title='ConstitScale #eta;ConstitScale #eta;Entries'), + HistoSpec( 'JetConstitScaleMomentum_phi', (50,-3.3,3.3) , title='ConstitScale #phi;ConstitScale #phi;Entries'), + HistoSpec( 'JetConstitScaleMomentum_pt:GeV', (100,0,200) , title='ConstitScale p_{T};ConstitScale p_{T} [GeV];Entries'), + HistoSpec( 'JetConstitScaleMomentum_m:GeV', (100,0,300) , title='ConstitScale mass;ConstitScale mass [GeV];Entries'), - + HistoSpec( 'JetEMScaleMomentum_eta', (50,-5,5) , title='EMScale #eta;EMScale #eta;Entries'), + HistoSpec( 'JetEMScaleMomentum_phi', (50,-3.3,3.3) , title='EMScale #phi;EMScale #phi;Entries'), + HistoSpec( 'JetEMScaleMomentum_pt:GeV', (100,0,200) , title='EMScale p_{T};EMScale p_{T} [GeV];Entries'), + HistoSpec( 'JetEMScaleMomentum_m:GeV', (100,0,300) , title='EMScale mass;EMScale mass [GeV];Entries'), + + HistoSpec( 'JetPileupScaleMomentum_eta', (50,-5,5) , title='PileupScale #eta;PileupScale #eta;Entries'), + HistoSpec( 'JetPileupScaleMomentum_phi', (50,-3.3,3.3) , title='PileupScale #phi;PileupScale #phi;Entries'), + HistoSpec( 'JetPileupScaleMomentum_pt:GeV', (100,0,200) , title='PileupScale p_{T};PileupScale p_{T} [GeV];Entries'), + HistoSpec( 'JetPileupScaleMomentum_m:GeV', (100,0,300) , title='PileupScale mass;PileupScale mass [GeV];Entries'), + + HistoSpec( 'JetEtaJESScaleMomentum_eta', (50,-5,5) , title='EtaJESScale #eta;EtaJESScale #eta;Entries'), + HistoSpec( 'JetEtaJESScaleMomentum_phi', (50,-3.3,3.3) , title='EtaJESScale #phi;EtaJESScale #phi;Entries'), + HistoSpec( 'JetEtaJESScaleMomentum_pt:GeV', (100,0,200) , title='EtaJESScale p_{T};EtaJESScale p_{T} [GeV];Entries'), + HistoSpec( 'JetEtaJESScaleMomentum_m:GeV', (100,0,300) , title='EtaJESScale mass;EtaJESScale mass [GeV];Entries'), # --------------------- # 2D histogram (x and y vars are separated by ';' ) HistoSpec( 'pt:GeV;m:GeV', (100,0,1000, 100,0,300) , title='mass vs p_{T};p_{T};mass [GeV];'), diff --git a/Trigger/TrigMonitoring/TrigJetMonitoring/python/TrigJetMonitorAlgorithm.py b/Trigger/TrigMonitoring/TrigJetMonitoring/python/TrigJetMonitorAlgorithm.py index d7a0bce9ca4..3b0c04cf147 100644 --- a/Trigger/TrigMonitoring/TrigJetMonitoring/python/TrigJetMonitorAlgorithm.py +++ b/Trigger/TrigMonitoring/TrigJetMonitoring/python/TrigJetMonitorAlgorithm.py @@ -63,7 +63,7 @@ Chain2JetCollDict['Legacy'] = { 'HLT_3j200' : 'HLT_xAOD__JetContainer_a4tcemsubjesISFS', } -from JetMonitoring.JetMonitoringConfig import JetMonAlgSpec, HistoSpec, EventHistoSpec, SelectSpec, ToolSpec +from JetMonitoring.JetMonitoringConfig import JetMonAlgSpec, HistoSpec, EventHistoSpec, SelectSpec, ToolSpec, VarSpec from AthenaConfiguration.AllConfigFlags import ConfigFlags def TrigJetMonConfig(inputFlags): @@ -182,16 +182,11 @@ def basicJetMonAlgSpec(jetcoll,isOnline,athenaMT): return Conf -from JetMonitoring.JetStandardHistoSpecs import knownHistos # Additional histograms for offline jets ExtraOfflineHists = [ HistoSpec('HECFrac', (50,0,1), title="HECFrac;HEC fraction;Entries" ), HistoSpec('EMFrac', (50,0,1), title="EMFrac;EM fraction;Entries" ), HistoSpec('Jvt', (50,-0.1,1), title="JVT;JVT;Entries" ), - knownHistos.pt.clone('JetConstitScaleMomentum_pt', title='ConstitScale p_{T};ConstitScale p_{T} [GeV];Entries', xvar='JetConstitScaleMomentum_pt:GeV'), - knownHistos.eta.clone('JetConstitScaleMomentum_eta', title='ConstitScale #eta;ConstitScale #eta;Entries', xvar='JetConstitScaleMomentum_eta'), - knownHistos.phi.clone('JetConstitScaleMomentum_phi', title='ConstitScale #phi;ConstitScale #phi;Entries', xvar='JetConstitScaleMomentum_phi'), - knownHistos.m.clone('JetConstitScaleMomentum_m', title='ConstitScale m;ConstitScale mass [GeV];Entries', xvar='JetConstitScaleMomentum_m:GeV'), "JVFCorr", "JvtRpt", "NumTrkPt1000[0]", @@ -206,10 +201,6 @@ ExtraSmallROnlineHists = [ HistoSpec('DetectorEta', (100,-5,5), title="DetectorEta;Detector #eta;Entries" ), HistoSpec('ActiveArea', (80,0,0.8), title="ActiveArea;Active Area;Entries" ), HistoSpec('et:GeV;eta', (100,0,750, 50,-5,5) , title='#eta vs E_{T};E_{T} [GeV];#eta;Entries'), - knownHistos.pt.clone('JetConstitScaleMomentum_pt', title='ConstitScale p_{T};ConstitScale p_{T} [GeV];Entries', xvar='JetConstitScaleMomentum_pt:GeV'), - knownHistos.eta.clone('JetConstitScaleMomentum_eta', title='ConstitScale #eta;ConstitScale #eta;Entries', xvar='JetConstitScaleMomentum_eta'), - knownHistos.phi.clone('JetConstitScaleMomentum_phi', title='ConstitScale #phi;ConstitScale #phi;Entries', xvar='JetConstitScaleMomentum_phi'), - knownHistos.m.clone('JetConstitScaleMomentum_m', title='ConstitScale m;ConstitScale mass [GeV];Entries', xvar='JetConstitScaleMomentum_m:GeV'), "EM3Frac", "Tile0Frac", ] @@ -217,6 +208,17 @@ ExtraSmallROnlineHists = [ ExtraLargeROnlineHists = [ ] +#Additional online & offline histograms to include kinematics at various jet calibration scales +OfflineScaleMomenta = [ "ConstitScale", "EMScale", "PileupScale", "EtaJESScale"] +OnlineScaleMomenta = [ "ConstitScale" ] + +for var in [ "pt", "eta", "phi", "m" ]: + for offlinescale in OfflineScaleMomenta: + ExtraOfflineHists.append("Jet"+offlinescale+"Momentum_"+var) + for onlinescale in OnlineScaleMomenta: + ExtraSmallROnlineHists.append("Jet"+onlinescale+"Momentum_"+var) + + def jetMonitoringConfig(inputFlags,jetcoll,athenaMT): '''Function to configures some algorithms in the monitoring system.''' -- GitLab From 411b83c413f0a4f91c225ec29ee384ffdf344651 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Fri, 17 Jul 2020 16:35:01 +0100 Subject: [PATCH 066/459] Moving to decalring classes and functions thread unsafe --- .../MuonMDT_CnvTools/src/MDT_RawDataProviderTool.cxx | 6 ++---- .../MuonMDT_CnvTools/src/MDT_RawDataProviderTool.h | 9 +++------ .../MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.cxx | 9 ++------- .../MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h | 5 +---- .../MuonRPC_CnvTools/src/RPC_RawDataProviderTool.h | 6 ++++-- .../MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h | 5 ++--- .../MuonRPC_CnvTools/src/RpcRdoToPrepDataToolCore.h | 2 +- .../MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.cxx | 8 +++++--- .../MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h | 4 ++-- .../MuonTGC_CnvTools/src/TGC_RawDataProviderTool.h | 4 +++- .../MuonTGC_CnvTools/src/TGC_RawDataProviderToolCore.cxx | 3 ++- .../MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.cxx | 5 ----- .../MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.h | 9 +++------ 13 files changed, 30 insertions(+), 45 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.cxx b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.cxx index 4bcd008435a..5d9859afe9b 100644 --- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.cxx @@ -2,10 +2,7 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -/// This code is only used in the single-thread setup -/// As such, deactivating the check in this file #include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; #include "MDT_RawDataProviderTool.h" #include "MuonRDO/MdtCsmContainer.h" @@ -77,7 +74,8 @@ StatusCode Muon::MDT_RawDataProviderTool::convert( const std::vector<const OFFLI return convert(vecRobs); } -StatusCode Muon::MDT_RawDataProviderTool::convert( const std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*>& vecRobs) +/// This decode function is for single-thread running only +StatusCode Muon::MDT_RawDataProviderTool::convert ATLAS_NOT_THREAD_SAFE ( const std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*>& vecRobs) { ATH_MSG_VERBOSE("convert(): " << vecRobs.size()<<" ROBFragments."); diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.h b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.h index 9d03632b02a..ee6302337ed 100644 --- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.h +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MDT_RawDataProviderTool.h @@ -4,11 +4,8 @@ #ifndef MUONMDTCNVTOOLS_MUONMDTRAWDATAPROVIDERTOOL_H #define MUONMDTCNVTOOLS_MUONMDTRAWDATAPROVIDERTOOL_H - -/// This code is only used in the single-thread setup -/// As such, deactivating the check in this file + #include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; #include "GaudiKernel/ToolHandle.h" #include "GaudiKernel/ServiceHandle.h" @@ -26,8 +23,8 @@ namespace Muon @author Edward Moyse <Edward.Moyse@cern.ch> @author Mark Owen <markowen@cern.ch> */ - -class MDT_RawDataProviderTool : virtual public IMuonRawDataProviderTool, public MDT_RawDataProviderToolCore +/// This class is only used in a single-thread mode +class ATLAS_NOT_THREAD_SAFE MDT_RawDataProviderTool : virtual public IMuonRawDataProviderTool, public MDT_RawDataProviderToolCore { public: MDT_RawDataProviderTool(const std::string&,const std::string&,const IInterface*); diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.cxx b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.cxx index 538eec80c32..1c11ae58838 100644 --- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.cxx @@ -1,13 +1,8 @@ /* Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ - -/// This code is only used in the single-thread setup -/// As such, deactivating the check in this file + #include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; - - #include "MdtRdoToPrepDataTool.h" @@ -26,7 +21,7 @@ StatusCode Muon::MdtRdoToPrepDataTool::initialize() return StatusCode::SUCCESS; } -Muon::MdtRdoToPrepDataTool::SetupMdtPrepDataContainerStatus Muon::MdtRdoToPrepDataTool::setupMdtPrepDataContainer() +Muon::MdtRdoToPrepDataTool::SetupMdtPrepDataContainerStatus Muon::MdtRdoToPrepDataTool::setupMdtPrepDataContainer ATLAS_NOT_THREAD_SAFE() { if(!evtStore()->contains<Muon::MdtPrepDataContainer>(m_mdtPrepDataContainerKey.key())){ m_fullEventDone=false; diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h index 01950c89dab..58d21ea185f 100644 --- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h @@ -4,11 +4,8 @@ #ifndef MUONMdtRdoToPrepDataTool_H #define MUONMdtRdoToPrepDataTool_H - -/// This code is only used in the single-thread setup -/// As such, deactivating the check in this file + #include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; #include "MdtRdoToPrepDataToolCore.h" diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RPC_RawDataProviderTool.h b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RPC_RawDataProviderTool.h index 1970d3489fb..e4029a4431d 100644 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RPC_RawDataProviderTool.h +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RPC_RawDataProviderTool.h @@ -5,6 +5,8 @@ #ifndef MUONRPCRAWDATAPROVIDERTOOL_H #define MUONRPCRAWDATAPROVIDERTOOL_H +#include "CxxUtils/checker_macros.h" + #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ToolHandle.h" #include "MuonCnvToolInterfaces/IMuonRawDataProviderTool.h" @@ -19,8 +21,8 @@ namespace Muon { class IRpcROD_Decoder; - -class RPC_RawDataProviderTool : virtual public IMuonRawDataProviderTool, +/// This class is only used in a single-thread mode +class ATLAS_NOT_THREAD_SAFE RPC_RawDataProviderTool : virtual public IMuonRawDataProviderTool, public RPC_RawDataProviderToolCore { public: diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h index 52bd5439a99..9929175b29f 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.h @@ -11,13 +11,12 @@ /// in order to prevent complex adjustments in the core decode functions /// As such, it should not be flagged at this stage as unsafe #include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; #include "RpcRdoToPrepDataToolCore.h" namespace Muon { - -class RpcRdoToPrepDataTool : virtual public RpcRdoToPrepDataToolCore { +/// This class is only used in a single-thread mode +class ATLAS_NOT_THREAD_SAFE RpcRdoToPrepDataTool : virtual public RpcRdoToPrepDataToolCore { public: RpcRdoToPrepDataTool( const std::string&, const std::string&, const IInterface* ); virtual ~RpcRdoToPrepDataTool()=default; diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolCore.h b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolCore.h index d456a18de7f..e3415624061 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolCore.h +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolCore.h @@ -31,7 +31,7 @@ namespace Muon { ///////////////////////////////////////////////////////////////////////////// -class RpcRdoToPrepDataToolCore : virtual public IMuonRdoToPrepDataTool, virtual public AthAlgTool { +class RpcRdoToPrepDataToolCore : virtual public IMuonRdoToPrepDataTool, virtual public AthAlgTool { public: RpcRdoToPrepDataToolCore( const std::string&, const std::string&, const IInterface* ); diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.cxx b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.cxx index 56c363ab1da..b9c9ad798a3 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.cxx +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.cxx @@ -54,7 +54,7 @@ StatusCode Muon::RpcRdoToPrepDataToolMT::finalize() return RpcRdoToPrepDataToolCore::finalize(); } -StatusCode Muon::RpcRdoToPrepDataToolMT::manageOutputContainers(bool& firstTimeInTheEvent) +StatusCode Muon::RpcRdoToPrepDataToolMT::manageOutputContainers ATLAS_THREAD_SAFE (bool& firstTimeInTheEvent) { // We will need to retrieve from cache even in different threads SG::WriteHandle< Muon::RpcPrepDataContainer >rpcPRDHandle(m_rpcPrepDataContainerKey); @@ -142,7 +142,8 @@ StatusCode Muon::RpcRdoToPrepDataToolMT::manageOutputContainers(bool& firstTimeI return StatusCode::SUCCESS; } -StatusCode Muon::RpcRdoToPrepDataToolMT::decode( std::vector<IdentifierHash>& idVect, std::vector<IdentifierHash>& selectedIdVect ){ +/// This code is thread-safe as we will propagate local thread collection contents to a thread-safe one +StatusCode Muon::RpcRdoToPrepDataToolMT::decode ( std::vector<IdentifierHash>& idVect, std::vector<IdentifierHash>& selectedIdVect ){ ATH_MSG_DEBUG("Calling Core decode function from MT decode function (hash vector)"); StatusCode status = Muon::RpcRdoToPrepDataToolCore::decode( idVect, selectedIdVect ); if (status.isFailure()){ @@ -158,7 +159,8 @@ StatusCode Muon::RpcRdoToPrepDataToolMT::decode( std::vector<IdentifierHash>& id return StatusCode::SUCCESS; } -StatusCode Muon::RpcRdoToPrepDataToolMT::decode( const std::vector<uint32_t>& robIds ){ +/// This code is thread-safe as we will propagate local thread collection contents to a thread-safe one +StatusCode Muon::RpcRdoToPrepDataToolMT::decode ( const std::vector<uint32_t>& robIds ){ ATH_MSG_DEBUG("Calling Core decode function from MT decode function (ROB vector)"); StatusCode status = Muon::RpcRdoToPrepDataToolCore::decode( robIds ); if (status.isFailure()){ diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h index d0468b4be10..3191244a371 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h @@ -18,8 +18,8 @@ public: virtual ~RpcRdoToPrepDataToolMT(); virtual StatusCode initialize() override; virtual StatusCode finalize() override; - virtual StatusCode decode( std::vector<IdentifierHash>& idVect, std::vector<IdentifierHash>& selectedIdVect ) override; - virtual StatusCode decode( const std::vector<uint32_t>& robIds ) override; + virtual StatusCode decode ( std::vector<IdentifierHash>& idVect, std::vector<IdentifierHash>& selectedIdVect ) override; + virtual StatusCode decode ( const std::vector<uint32_t>& robIds ) override; protected: virtual StatusCode manageOutputContainers(bool& firstTimeInTheEvent) override; diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TGC_RawDataProviderTool.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TGC_RawDataProviderTool.h index 945aad7ef50..6e047c09dc9 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TGC_RawDataProviderTool.h +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TGC_RawDataProviderTool.h @@ -5,6 +5,8 @@ #ifndef MUONTGC_CNVTOOLS_TGC_RAWDATAPROVIDERTOOL_H #define MUONTGC_CNVTOOLS_TGC_RAWDATAPROVIDERTOOL_H +#include "CxxUtils/checker_macros.h" + #include "TGC_RawDataProviderToolCore.h" #include "MuonCnvToolInterfaces/IMuonRawDataProviderTool.h" @@ -21,7 +23,7 @@ namespace Muon * @author Mark Owen <markowen@cern.ch> */ - class TGC_RawDataProviderTool : virtual public IMuonRawDataProviderTool, public TGC_RawDataProviderToolCore + class ATLAS_NOT_THREAD_SAFE TGC_RawDataProviderTool : virtual public IMuonRawDataProviderTool, public TGC_RawDataProviderToolCore { public: /** Default constructor */ diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TGC_RawDataProviderToolCore.cxx b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TGC_RawDataProviderToolCore.cxx index 748e08c9535..11b263d8d47 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TGC_RawDataProviderToolCore.cxx +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TGC_RawDataProviderToolCore.cxx @@ -61,7 +61,8 @@ StatusCode Muon::TGC_RawDataProviderToolCore::initialize() StatusCode Muon::TGC_RawDataProviderToolCore::convertIntoContainer(const std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*>& vecRobs, TgcRdoContainer& tgcRdoContainer) { - static int DecodeErrCount = 0; + /// Static variables are not thread safe + static thread_local int DecodeErrCount = 0; // Update to range based loop for(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment* fragment : vecRobs){ diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.cxx b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.cxx index 8cce7a4a914..864fe645098 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.cxx @@ -2,11 +2,6 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -/// This code is only used in the single-thread setup -/// As such, deactivating the check in this file -#include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; - #include "TgcRdoToPrepDataTool.h" #include "MuonDigitContainer/TgcDigit.h" diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.h index 6eea53359c3..25351ae165a 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.h +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRdoToPrepDataTool.h @@ -4,11 +4,8 @@ #ifndef MUONTGC_CNVTOOLS_TGCRDOTOPREPDATATOOL_H #define MUONTGC_CNVTOOLS_TGCRDOTOPREPDATATOOL_H - -/// This code is only used in the single-thread setup -/// As such, deactivating the check in this file + #include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; #include "TgcRdoToPrepDataToolCore.h" @@ -22,8 +19,8 @@ namespace Muon * * This class was developed by Takashi Kubota. */ - - class TgcRdoToPrepDataTool : virtual public TgcRdoToPrepDataToolCore + /// This class is only used in a single-thread mode + class ATLAS_NOT_THREAD_SAFE TgcRdoToPrepDataTool : virtual public TgcRdoToPrepDataToolCore { public: /** Constructor */ -- GitLab From 2e19a460790cbb3810308da3585d045fe96900aa Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Fri, 17 Jul 2020 21:20:42 +0200 Subject: [PATCH 067/459] Naive effort to add TLS on top of RD's private code --- .../AtlasFieldCacheCondObj.h | 7 +- .../G4Atlas/G4AtlasServices/CMakeLists.txt | 7 +- .../G4AtlasServices/src/StandardFieldSvc.cxx | 37 +++++--- .../G4AtlasServices/src/StandardFieldSvc.h | 90 +++++++++++++++---- 4 files changed, 105 insertions(+), 36 deletions(-) diff --git a/MagneticField/MagFieldConditions/MagFieldConditions/AtlasFieldCacheCondObj.h b/MagneticField/MagFieldConditions/MagFieldConditions/AtlasFieldCacheCondObj.h index 74bb2636e4f..f0a75517d5f 100644 --- a/MagneticField/MagFieldConditions/MagFieldConditions/AtlasFieldCacheCondObj.h +++ b/MagneticField/MagFieldConditions/MagFieldConditions/AtlasFieldCacheCondObj.h @@ -28,11 +28,14 @@ public: inline void getInitializedCache (MagField::AtlasFieldCache& cache) const; /** access to solenoid field scale factor */ - double solenoidFieldScaleFactor() const { return m_solFieldScale; } ; + double solenoidFieldScaleFactor() const { return m_solFieldScale; } /** access to toroid field scale factor */ - double toriodFieldScaleFactor() const { return m_torFieldScale; } ; + double toriodFieldScaleFactor() const { return m_torFieldScale; } + /** access to non-owning AtlasFieldMap*/ + const MagField::AtlasFieldMap* fieldMap() const { return m_fieldMap; } + /** set values for field scale and service to be able to build the cache **/ bool initialize(double solFieldScale, double torFieldScale, const MagField::AtlasFieldMap* fieldMap); diff --git a/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt b/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt index 2d735a12d06..94b2a7579b1 100644 --- a/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt +++ b/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt @@ -10,13 +10,14 @@ find_package( CLHEP ) find_package( Geant4 ) find_package( TBB ) find_package( XercesC ) - +find_package( Boost COMPONENTS thread ) # Component(s) in the package: atlas_add_component( G4AtlasServices src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS} - LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} GaudiKernel AthenaBaseComps G4AtlasInterfaces G4AtlasToolsLib G4PhysicsLists MagFieldInterfaces) + INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} + LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} ${Boost_LIBRARIES} GaudiKernel AthenaBaseComps + G4AtlasInterfaces G4AtlasToolsLib G4PhysicsLists MagFieldInterfaces MagFieldElements MagFieldConditions) #test G4AtlasFieldServices atlas_add_test( G4AtlasFieldServices_test diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx index 2d237afd057..5b2a42901eb 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx @@ -1,24 +1,19 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ #include "StandardFieldSvc.h" +#include "GaudiKernel/ThreadLocalContext.h" +#include "StoreGate/ReadCondHandle.h" -//----------------------------------------------------------------------------- -// Constructor for the AtlasField G4 field object -//----------------------------------------------------------------------------- -AtlasField::AtlasField(MagField::IMagFieldSvc* m) - : m_magFieldSvc(m) -{} //----------------------------------------------------------------------------- // Constructor for the StandardFieldSvc //----------------------------------------------------------------------------- StandardFieldSvc::StandardFieldSvc(const std::string& name, ISvcLocator* pSvcLocator) - : G4MagFieldSvcBase(name, pSvcLocator) -{ -} + : G4MagFieldSvcBase(name, pSvcLocator) +{} //----------------------------------------------------------------------------- // Initialize the service @@ -26,7 +21,12 @@ StandardFieldSvc::StandardFieldSvc(const std::string& name, StatusCode StandardFieldSvc::initialize() { ATH_MSG_INFO( "Initializing " << name() ); - ATH_CHECK( m_magFieldSvc.retrieve() ); + + // Read handle for AtlasFieldCacheCondObj + ATH_CHECK( m_fieldCacheCondObjInputKey.initialize() ); + + ATH_MSG_INFO( "Initialized " << m_fieldCacheCondObjInputKey.key() ); + return StatusCode::SUCCESS; } @@ -36,5 +36,18 @@ StatusCode StandardFieldSvc::initialize() G4MagneticField* StandardFieldSvc::makeField() { ATH_MSG_INFO( "StandardFieldSvc::makeField" ); - return new AtlasField( &*m_magFieldSvc ); + + MagField::AtlasFieldCache fieldCache; + SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle( + m_fieldCacheCondObjInputKey, Gaudi::Hive::currentContext()); + const AtlasFieldCacheCondObj* fieldCondObj{ *readHandle }; + if (fieldCondObj == nullptr) { + ATH_MSG_ERROR( + "G4MagneticField : Failed to retrieve AtlasFieldCacheCondObj with key " + << m_fieldCacheCondObjInputKey.key()); + return nullptr; + } + + AtlasField* af = new AtlasField(fieldCondObj); + return (af); } diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h index 03a08adf723..5205df5639d 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h @@ -13,43 +13,92 @@ // Gaudi/Athena #include "GaudiKernel/ServiceHandle.h" -#include "MagFieldInterfaces/IMagFieldSvc.h" // Base classes #include "G4MagFieldSvcBase.h" +// MagField cache +#include "MagFieldConditions/AtlasFieldCacheCondObj.h" +#include "MagFieldElements/AtlasFieldCache.h" + +/* + * This is needed due to the current threading model in simulation. + * + * We need a cache returning the field for a specific position. + * The cache might needs to be filled + * or updated when the requested position changes. + * + * Ideally they would be passed by the caller. + * Actually this is the + * scheme we use in offline. + * But this is not yet possible is simulations + * + * So we need to wrap the new machinery in a way that mimics + * the TLS behavious of the to be + * removed ATLAS svc + */ +#include <boost/thread/tss.hpp> +struct ATLASFieldCacheTLSWrapper +{ +private: + mutable boost::thread_specific_ptr<MagField::AtlasFieldCache> + m_fieldCache_tls{}; + +public: + double solFieldScale{ 1 }; + double torFieldScale{ 1 }; + const MagField::AtlasFieldMap* fieldMap{ nullptr }; + + // Set up the thread specific cache + MagField::AtlasFieldCache& getTLSCache() const + { + MagField::AtlasFieldCache* fieldCache = m_fieldCache_tls.get(); + // if we have none for this thread lest create one + if (!fieldCache) { + fieldCache = + new MagField::AtlasFieldCache(solFieldScale, torFieldScale, fieldMap); + m_fieldCache_tls.reset(fieldCache); + } + return *fieldCache; + } + + // forward call to the thread specific cache + void getField(const double* point, double* field) const + { + MagField::AtlasFieldCache& fieldCache = getTLSCache(); + fieldCache.getField(point, field); + } +}; /// @class AtlasField -/// @brief G4 wrapper around the main ATLAS magnetic field service. -/// -/// @todo TODO this should probably be put in a good namespace. -/// +/// @brief G4 wrapper around the main ATLAS magnetic field cache. class AtlasField : public G4MagneticField { public: + /// Construct the field object from conditions object + AtlasField(const AtlasFieldCacheCondObj* condObj){ + m_fieldCache.solFieldScale = condObj->solenoidFieldScaleFactor(); + m_fieldCache.torFieldScale = condObj->toriodFieldScaleFactor(); + m_fieldCache.fieldMap= condObj->fieldMap(); + } - /// Construct the field object from the IMagFieldSvc - AtlasField(MagField::IMagFieldSvc* m); + MagField::AtlasFieldCache& fieldCache() { return m_fieldCache.getTLSCache(); } /// Implementation of G4 method to retrieve field value void GetFieldValue(const double *point, double *field) const { - m_magFieldSvc->getField(point, field); + m_fieldCache.getField(point, field); } private: - - /// Pointer to the magnetic field service. - /// We use a raw pointer here to avoid ServiceHandle overhead. - MagField::IMagFieldSvc* m_magFieldSvc{}; + /// Field cache TLS Wrapper + ATLASFieldCacheTLSWrapper m_fieldCache{}; }; /// @class StandardFieldSvc /// @brief Athena service for constructing the AtlasField object /// -/// @todo TODO this should probably be put in a good namespace. -/// class StandardFieldSvc final : public G4MagFieldSvcBase { public: @@ -57,21 +106,24 @@ class StandardFieldSvc final : public G4MagFieldSvcBase /// Standard constructor StandardFieldSvc(const std::string& name, ISvcLocator* pSvcLocator); /// Empty destructor - ~StandardFieldSvc() = default; + ~StandardFieldSvc() {} /// Athena method. called at initialization time, being customized here. StatusCode initialize() override final; protected: - /// Create/retrieve the AtlasField object G4MagneticField* makeField() override final; private: - /// Handle to the ATLAS magnetic field service - ServiceHandle<MagField::IMagFieldSvc> m_magFieldSvc{this, "MagneticFieldSvc", "MagField::AtlasFieldSvc/AtlasFieldSvc"}; - + // Read handle for conditions object to get the field cache + SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey{ + this, + "AtlasFieldCacheCondObj", + "fieldCondObj", + "Name of the Magnetic Field conditions object key" + }; }; #endif // G4ATLASSERVICES_StandardFieldSvc_H -- GitLab From 4446eb713a3a51731e94ce99bd0d5e7c7b51cc1f Mon Sep 17 00:00:00 2001 From: schaffer <R.D.Schaffer@cern.ch> Date: Sat, 18 Jul 2020 18:59:19 +0200 Subject: [PATCH 068/459] added map initialization into StandardFieldSvc --- .../G4Atlas/G4AtlasServices/CMakeLists.txt | 8 +- .../python/G4AtlasFieldServices.py | 10 +- .../python/G4AtlasServicesConfig.py | 4 +- .../G4AtlasServices/src/StandardFieldSvc.cxx | 110 +++++++++++++++--- .../G4AtlasServices/src/StandardFieldSvc.h | 45 ++++--- 5 files changed, 137 insertions(+), 40 deletions(-) diff --git a/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt b/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt index 94b2a7579b1..7074e4c6639 100644 --- a/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt +++ b/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt @@ -11,13 +11,15 @@ find_package( Geant4 ) find_package( TBB ) find_package( XercesC ) find_package( Boost COMPONENTS thread ) +find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) # Component(s) in the package: atlas_add_component( G4AtlasServices src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} - LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} ${Boost_LIBRARIES} GaudiKernel AthenaBaseComps - G4AtlasInterfaces G4AtlasToolsLib G4PhysicsLists MagFieldInterfaces MagFieldElements MagFieldConditions) + INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} ${Boost_LIBRARIES} ${ROOT_LIBRARIES} + GaudiKernel AthenaBaseComps + G4AtlasInterfaces G4AtlasToolsLib G4PhysicsLists PathResolver MagFieldElements) #test G4AtlasFieldServices atlas_add_test( G4AtlasFieldServices_test diff --git a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py index 8dcbf5aba46..ab0afbd2313 100644 --- a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py +++ b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py @@ -12,12 +12,12 @@ if "AthSimulation_DIR" not in os.environ: def StandardFieldSvcCfg(ConfigFlags,name="StandardField", **kwargs): result = ComponentAccumulator() - #setup the field and add the magneticfield service - acc = MagneticFieldSvcCfg(ConfigFlags) - result.merge(acc) + # #setup the field and add the magneticfield service + # acc = MagneticFieldSvcCfg(ConfigFlags) + # result.merge(acc) - kwargs.setdefault("MagneticFieldSvc", result.getService("AtlasFieldSvc")) # TODO This should probably be based on simFlags.MagneticField? - #kwargs.setdefault("FieldOn", True) + # kwargs.setdefault("MagneticFieldSvc", result.getService("AtlasFieldSvc")) # TODO This should probably be based on simFlags.MagneticField? + # #kwargs.setdefault("FieldOn", True) result.addService(StandardFieldSvc(name, **kwargs)) return result diff --git a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py index 70df4efe8a0..bbfb9b345e3 100644 --- a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py +++ b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py @@ -161,8 +161,8 @@ def getTB_RegionCreatorList(): ######################################################################### def getStandardFieldSvc(name="StandardField", **kwargs): - import MagFieldServices.SetupField # noqa: F401 - kwargs.setdefault("MagneticFieldSvc", "AtlasFieldSvc") # TODO This should probably be based on simFlags.MagneticField? + # import MagFieldServices.SetupField # noqa: F401 + # kwargs.setdefault("MagneticFieldSvc", "AtlasFieldSvc") # TODO This should probably be based on simFlags.MagneticField? #kwargs.setdefault("FieldOn", True) return CfgMgr.StandardFieldSvc(name, **kwargs) diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx index 5b2a42901eb..14e4849e1a0 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx @@ -6,6 +6,16 @@ #include "GaudiKernel/ThreadLocalContext.h" #include "StoreGate/ReadCondHandle.h" +// Field map +#include "MagFieldElements/AtlasFieldMap.h" + +// PathResolver +#include "PathResolver/PathResolver.h" + +// ROOT +#include "TFile.h" +#include "TTree.h" + //----------------------------------------------------------------------------- // Constructor for the StandardFieldSvc @@ -22,11 +32,9 @@ StatusCode StandardFieldSvc::initialize() { ATH_MSG_INFO( "Initializing " << name() ); - // Read handle for AtlasFieldCacheCondObj - ATH_CHECK( m_fieldCacheCondObjInputKey.initialize() ); - - ATH_MSG_INFO( "Initialized " << m_fieldCacheCondObjInputKey.key() ); - + // Create field map + ATH_CHECK( createFieldMap() ); + return StatusCode::SUCCESS; } @@ -37,17 +45,85 @@ G4MagneticField* StandardFieldSvc::makeField() { ATH_MSG_INFO( "StandardFieldSvc::makeField" ); - MagField::AtlasFieldCache fieldCache; - SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle( - m_fieldCacheCondObjInputKey, Gaudi::Hive::currentContext()); - const AtlasFieldCacheCondObj* fieldCondObj{ *readHandle }; - if (fieldCondObj == nullptr) { - ATH_MSG_ERROR( - "G4MagneticField : Failed to retrieve AtlasFieldCacheCondObj with key " - << m_fieldCacheCondObjInputKey.key()); - return nullptr; - } - - AtlasField* af = new AtlasField(fieldCondObj); + AtlasField* af = new AtlasField(m_fieldMap.get()); return (af); } + + +//----------------------------------------------------------------------------- +// Create field map +//----------------------------------------------------------------------------- +StatusCode StandardFieldSvc::createFieldMap() +{ + ATH_MSG_INFO( "StandardFieldSvc::createFieldMap" ); + + + // Select map file according to the value of the currents which indicate which map is 'on' + + // determine the map to load + std::string mapFile; + if ( solenoidOn() && toroidOn() ) mapFile = m_fullMapFilename; + else if ( solenoidOn() ) mapFile = m_soleMapFilename; + else if ( toroidOn() ) mapFile = m_toroMapFilename; + else { + // all magnets OFF. no need to read map + return StatusCode::SUCCESS; + } + + ATH_MSG_INFO ( "StandardFieldSvc::createFieldMap: Set map currents from FieldSvc: solenoid/toroid " + << m_mapSoleCurrent << "," << m_mapToroCurrent); + ATH_MSG_INFO ( "StandardFieldSvc::createFieldMap: Use map file " << mapFile); + + + // find the path to the map file + std::string resolvedMapFile = PathResolver::find_file( mapFile.c_str(), "DATAPATH" ); + if ( resolvedMapFile.empty() ) { + ATH_MSG_ERROR( "StandardFieldSvc::createFieldMap: Field map file " << mapFile << " not found" ); + return StatusCode::FAILURE; + } + // Do checks and extract root file to initialize the map + if ( resolvedMapFile.find(".root") == std::string::npos ) { + ATH_MSG_ERROR("StandardFieldSvc::createFieldMap: input file name '" << resolvedMapFile << "' does not end with .root"); + return StatusCode::FAILURE; + } + TFile* rootfile = new TFile(resolvedMapFile.c_str(), "OLD"); + if ( ! rootfile ) { + ATH_MSG_ERROR("StandardFieldSvc::createFieldMap: failed to open " << resolvedMapFile); + return StatusCode::FAILURE; + } + if ( !rootfile->cd() ) { + // could not make it current directory + ATH_MSG_ERROR("StandardFieldSvc::createFieldMap: unable to cd() into the ROOT field map TFile"); + rootfile->Close(); + delete rootfile; + return StatusCode::FAILURE; + } + // open the tree + TTree* tree = (TTree*)rootfile->Get("BFieldMap"); + if ( tree == nullptr ) { + // no tree + ATH_MSG_ERROR("StandardFieldSvc::createFieldMap: TTree 'BFieldMap' does not exist in ROOT field map"); + rootfile->Close(); + delete rootfile; + return StatusCode::FAILURE; + } + + // create map + m_fieldMap = std::make_unique<MagField::AtlasFieldMap>(); + + // initialize map + if (!m_fieldMap->initializeMap( rootfile, m_mapSoleCurrent, m_mapToroCurrent )) { + // failed to initialize the map + ATH_MSG_ERROR("StandardFieldSvc::createFieldMap: unable to initialize the map for AtlasFieldMap for file " << resolvedMapFile); + rootfile->Close(); + delete rootfile; + return StatusCode::FAILURE; + } + + rootfile->Close(); + delete rootfile; + + + ATH_MSG_INFO( "StandardFieldSvc::createFieldMap: Initialized the field map from " << resolvedMapFile ); + return StatusCode::SUCCESS; +} diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h index 5205df5639d..1e43ecf937b 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h @@ -18,9 +18,13 @@ #include "G4MagFieldSvcBase.h" // MagField cache -#include "MagFieldConditions/AtlasFieldCacheCondObj.h" #include "MagFieldElements/AtlasFieldCache.h" +// forward declarations +namespace MagField { + class AtlasFieldMap; +} + /* * This is needed due to the current threading model in simulation. * @@ -53,7 +57,7 @@ public: MagField::AtlasFieldCache& getTLSCache() const { MagField::AtlasFieldCache* fieldCache = m_fieldCache_tls.get(); - // if we have none for this thread lest create one + // if we have none for this thread create one if (!fieldCache) { fieldCache = new MagField::AtlasFieldCache(solFieldScale, torFieldScale, fieldMap); @@ -76,10 +80,8 @@ class AtlasField : public G4MagneticField { public: /// Construct the field object from conditions object - AtlasField(const AtlasFieldCacheCondObj* condObj){ - m_fieldCache.solFieldScale = condObj->solenoidFieldScaleFactor(); - m_fieldCache.torFieldScale = condObj->toriodFieldScaleFactor(); - m_fieldCache.fieldMap= condObj->fieldMap(); + AtlasField(const MagField::AtlasFieldMap* fieldMap){ + m_fieldCache.fieldMap = fieldMap; } MagField::AtlasFieldCache& fieldCache() { return m_fieldCache.getTLSCache(); } @@ -117,13 +119,30 @@ class StandardFieldSvc final : public G4MagFieldSvcBase private: - // Read handle for conditions object to get the field cache - SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey{ - this, - "AtlasFieldCacheCondObj", - "fieldCondObj", - "Name of the Magnetic Field conditions object key" - }; + StatusCode createFieldMap(); + + // properties taken from AtlasFieldMapCondAlg + bool solenoidOn() { return (m_mapSoleCurrent > 0.0); } + bool toroidOn() { return (m_mapToroCurrent > 0.0); } + + /// map file names + Gaudi::Property<std::string> m_fullMapFilename {this, + "FullMapFile", "MagneticFieldMaps/bfieldmap_7730_20400_14m.root", + "File storing the full magnetic field map"}; + Gaudi::Property<std::string> m_soleMapFilename {this, + "SoleMapFile", "MagneticFieldMaps/bfieldmap_7730_0_14m.root", + "File storing the solenoid-only magnetic field map"}; + Gaudi::Property<std::string> m_toroMapFilename {this, + "ToroMapFile", "MagneticFieldMaps/bfieldmap_0_20400_14m.root", + "File storing the toroid-only magnetic field map"}; + /// nominal current for the maps + Gaudi::Property<double> m_mapSoleCurrent {this, + "MapSoleCurrent", 7730., "Nominal solenoid current (A)"}; + Gaudi::Property<double> m_mapToroCurrent {this, + "MapToroCurrent", 20400., "Nominal toroid current (A)"}; + + // field map held locally in svc - in Athena, this would go into a conditions object + std::unique_ptr<MagField::AtlasFieldMap> m_fieldMap; }; #endif // G4ATLASSERVICES_StandardFieldSvc_H -- GitLab From 75cff1de52748ef281229624b3c50f84c8e4895d Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Sat, 18 Jul 2020 19:48:15 +0200 Subject: [PATCH 069/459] update comments for the TLS part --- .../G4AtlasServices/src/StandardFieldSvc.h | 53 +++++++++++++------ 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h index 1e43ecf937b..74824f8422e 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h @@ -25,21 +25,42 @@ namespace MagField { class AtlasFieldMap; } -/* - * This is needed due to the current threading model in simulation. +/** + * The ATLASFieldCacheTLSWrapper + * is needed due to the current threading model in simulation. + * + * In general clients need a MagField::AtlasFieldCache + * returning the magnetic field values + * for a specific position. + * + * The MagField::AtlasFieldCache refer to a specific "cell" and might + * need to be filled or updated when the position changes. + * In the other hand subsequent calls more often + * than not re-use the info from the same "cell". + * One can look at MagFieldElements for more details. + * + * Ideally objects would be passed by/be local to the caller. + * Actually this is what happens in offline/online + * where we moved completely to Condition Objects. + * i.e AtlasFieldCacheCondObj. + * + * But this is not yet possible in simulation. + * So we need to wrap things in a way that mimics + * the relevant TLS behaviour of the to be removed ATLAS Svc. + * + * The end result is that for now the ATLASFieldCacheTLSWrapper + * is to be used instead of AtlasFieldCacheCondObj in simulation. * - * We need a cache returning the field for a specific position. - * The cache might needs to be filled - * or updated when the requested position changes. + * It has similar payload. + * The major difference is that when we use the + * condition Object each user of the magnetic field + * ends up with its own local MagField::AtlasFieldCache so there is + * no need for synchronisation. * - * Ideally they would be passed by the caller. - * Actually this is the - * scheme we use in offline. - * But this is not yet possible is simulations + * In the other hand here we provide thread-specific + * MagField::AtlasFieldCache (s) to allow for the TLS + * scheme needed by the simulation. * - * So we need to wrap the new machinery in a way that mimics - * the TLS behavious of the to be - * removed ATLAS svc */ #include <boost/thread/tss.hpp> struct ATLASFieldCacheTLSWrapper @@ -49,15 +70,17 @@ private: m_fieldCache_tls{}; public: + ///Sclae for solenoid double solFieldScale{ 1 }; + ///Scale for toroid double torFieldScale{ 1 }; + ///Not owning ptr const MagField::AtlasFieldMap* fieldMap{ nullptr }; - // Set up the thread specific cache + /// Method setting up and returning the TLS MagField::AtlasFieldCache MagField::AtlasFieldCache& getTLSCache() const { MagField::AtlasFieldCache* fieldCache = m_fieldCache_tls.get(); - // if we have none for this thread create one if (!fieldCache) { fieldCache = new MagField::AtlasFieldCache(solFieldScale, torFieldScale, fieldMap); @@ -66,7 +89,7 @@ public: return *fieldCache; } - // forward call to the thread specific cache + /// getField method, forwarding to the TLS object void getField(const double* point, double* field) const { MagField::AtlasFieldCache& fieldCache = getTLSCache(); -- GitLab From 28da8b30d9781690ee6cab7f22a13807a83dc5ed Mon Sep 17 00:00:00 2001 From: schaffer <R.D.Schaffer@cern.ch> Date: Sun, 19 Jul 2020 16:33:10 +0200 Subject: [PATCH 070/459] adding back optional use of mag service for forward magnetic fields --- .../G4Atlas/G4AtlasServices/CMakeLists.txt | 2 +- .../python/G4AtlasFieldServices.py | 16 ++++----- .../python/G4AtlasServicesConfig.py | 5 ++- .../G4AtlasServices/src/StandardFieldSvc.cxx | 30 +++++++++++++--- .../G4AtlasServices/src/StandardFieldSvc.h | 36 ++++++++++++++++--- 5 files changed, 70 insertions(+), 19 deletions(-) diff --git a/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt b/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt index 7074e4c6639..bad45642cff 100644 --- a/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt +++ b/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt @@ -19,7 +19,7 @@ atlas_add_component( G4AtlasServices INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} ${Boost_LIBRARIES} ${ROOT_LIBRARIES} GaudiKernel AthenaBaseComps - G4AtlasInterfaces G4AtlasToolsLib G4PhysicsLists PathResolver MagFieldElements) + G4AtlasInterfaces G4AtlasToolsLib G4PhysicsLists PathResolver MagFieldElements MagFieldInterfaces) #test G4AtlasFieldServices atlas_add_test( G4AtlasFieldServices_test diff --git a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py index ab0afbd2313..eadb4f10687 100644 --- a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py +++ b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py @@ -3,7 +3,7 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory StandardFieldSvc=CompFactory.StandardFieldSvc -from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg +# from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg #to prevent unit tests failing when just running over simulation import os if "AthSimulation_DIR" not in os.environ: @@ -25,13 +25,13 @@ def StandardFieldSvcCfg(ConfigFlags,name="StandardField", **kwargs): def ForwardFieldSvcCfg(ConfigFlags, name="ForwardField", **kwargs): result = ComponentAccumulator() - #setup the field and add the magneticfield service - acc = MagneticFieldSvcCfg(ConfigFlags) - result.merge(acc) + # #setup the field and add the magneticfield service + # acc = MagneticFieldSvcCfg(ConfigFlags) + # result.merge(acc) - #FIXME Once it exists this version should use the new MagField Service defined in ForwardRegionMgField - kwargs.setdefault("MagneticFieldSvc", result.getService("AtlasFieldSvc")) - #kwargs.setdefault("FieldOn", True) + # #FIXME Once it exists this version should use the new MagField Service defined in ForwardRegionMgField + # kwargs.setdefault("MagneticFieldSvc", result.getService("AtlasFieldSvc")) + # #kwargs.setdefault("FieldOn", True) result.addService(StandardFieldSvc(name, **kwargs)) return result @@ -43,7 +43,7 @@ def Q1FwdG4FieldSvcCfg(ConfigFlags, name='Q1FwdG4FieldSvc', **kwargs): Magnet = 0, # FIXME find a better way to do this. MQXA_DataFile = "MQXA_NOMINAL.dat")) - kwargs.setdefault("MagneticFieldSvc", result.getService("Q1")) + # kwargs.setdefault("MagneticFieldSvc", result.getService("Q1")) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q2FwdG4FieldSvcCfg(ConfigFlags, name='Q2FwdG4FieldSvc', **kwargs): diff --git a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py index bbfb9b345e3..af029fc9156 100644 --- a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py +++ b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py @@ -168,8 +168,11 @@ def getStandardFieldSvc(name="StandardField", **kwargs): def getForwardFieldSvc(name="ForwardField", **kwargs): #FIXME Once it exists this version should use the new MagField Service defined in ForwardRegionMgField - kwargs.setdefault("MagneticFieldSvc", "AtlasFieldSvc") + # kwargs.setdefault("MagneticFieldSvc", "AtlasFieldSvc") + kwargs.setdefault("MagneticFieldSvc", "ForwardRegionFieldSvc") #kwargs.setdefault("FieldOn", True) + # Must switch on the use of a field svc to be able to have StandardFieldSvc use ForwardRegionFieldSvc + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ1FwdG4FieldSvc(name='Q1FwdG4FieldSvc', **kwargs): diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx index 14e4849e1a0..a60d02136a3 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx @@ -22,8 +22,11 @@ //----------------------------------------------------------------------------- StandardFieldSvc::StandardFieldSvc(const std::string& name, ISvcLocator* pSvcLocator) - : G4MagFieldSvcBase(name, pSvcLocator) -{} + : G4MagFieldSvcBase(name, pSvcLocator), + m_magFieldSvc("MagField::ForwardRegionFieldSvc/ForwardRegionFieldSvc", name) +{ + declareProperty("MagneticFieldSvc", m_magFieldSvc); +} //----------------------------------------------------------------------------- // Initialize the service @@ -32,8 +35,16 @@ StatusCode StandardFieldSvc::initialize() { ATH_MSG_INFO( "Initializing " << name() ); - // Create field map - ATH_CHECK( createFieldMap() ); + // Either initialize the field map - used for solenoid and toroid, or the field service for the forward field + if (m_useMagFieldSvc) { + ATH_CHECK( m_magFieldSvc.retrieve() ); + ATH_MSG_INFO( "initialize: using field service " << m_magFieldSvc.name() ); + } + else { + // Create field map + ATH_CHECK( createFieldMap() ); + ATH_MSG_INFO( "initialize: using created map for field cache "); + } return StatusCode::SUCCESS; } @@ -45,7 +56,16 @@ G4MagneticField* StandardFieldSvc::makeField() { ATH_MSG_INFO( "StandardFieldSvc::makeField" ); - AtlasField* af = new AtlasField(m_fieldMap.get()); + AtlasField* af = 0; + + // Either initialize the field map - used for solenoid and toroid, or the field service for the forward field + if (m_useMagFieldSvc) { + af = new AtlasField( &*m_magFieldSvc ); + } + else { + af = new AtlasField(m_fieldMap.get()); + } + return (af); } diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h index 1e43ecf937b..b51b339bfdc 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h @@ -13,6 +13,7 @@ // Gaudi/Athena #include "GaudiKernel/ServiceHandle.h" +#include "MagFieldInterfaces/IMagFieldSvc.h" // Base classes #include "G4MagFieldSvcBase.h" @@ -75,26 +76,37 @@ public: }; /// @class AtlasField -/// @brief G4 wrapper around the main ATLAS magnetic field cache. +/// @brief G4 wrapper around the main ATLAS magnetic field cache or field svc for forward field. class AtlasField : public G4MagneticField { public: /// Construct the field object from conditions object - AtlasField(const MagField::AtlasFieldMap* fieldMap){ - m_fieldCache.fieldMap = fieldMap; + AtlasField(const MagField::AtlasFieldMap* fieldMap) { + m_fieldCache.fieldMap = fieldMap; } + /// Construct the field object from the IMagFieldSvc + AtlasField(MagField::IMagFieldSvc* m) : + m_magFieldSvc(m) + {} + MagField::AtlasFieldCache& fieldCache() { return m_fieldCache.getTLSCache(); } /// Implementation of G4 method to retrieve field value void GetFieldValue(const double *point, double *field) const { - m_fieldCache.getField(point, field); + if (m_magFieldSvc) m_magFieldSvc->getField(point, field); + else m_fieldCache.getField(point, field); } private: /// Field cache TLS Wrapper ATLASFieldCacheTLSWrapper m_fieldCache{}; + + /// Pointer to the magnetic field service. + /// We use a raw pointer here to avoid ServiceHandle overhead. + MagField::IMagFieldSvc* m_magFieldSvc{nullptr}; + }; @@ -119,6 +131,22 @@ class StandardFieldSvc final : public G4MagFieldSvcBase private: + // There are two options for the magnetic field: + // + // 1) For solenoid and toroid, this has moved to use AtlasFieldCache and here we must create and + // same the field map + // 2) For the forward quadrupole fields, we preserve the access to the magnetic field service + // + // The boolean flag UseMagFieldSvc is now used to differentiate between the two cases (default is false) + // + + // flag to use magnet field service + Gaudi::Property<bool> m_useMagFieldSvc {this, + "UseMagFieldSvc", false, "Use magnetic field service - Should ONLY be used for ForwardRegionFieldSvc"}; + + /// Handle to the the Forward ATLAS magnetic field service + ServiceHandle<MagField::IMagFieldSvc> m_magFieldSvc; + StatusCode createFieldMap(); // properties taken from AtlasFieldMapCondAlg -- GitLab From ab24aaf910016f4d807cf147c705147784e9fe49 Mon Sep 17 00:00:00 2001 From: Jannik Geisen <jannik.geisen@cern.ch> Date: Mon, 20 Jul 2020 11:24:19 +0200 Subject: [PATCH 071/459] Removed couts, VarSpec import, and phi variable from JetXScaleMomentum histos --- .../Jet/JetMonitoring/JetMonitoring/JetVariable.h | 12 ++---------- .../python/TrigJetMonitorAlgorithm.py | 4 ++-- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/Reconstruction/Jet/JetMonitoring/JetMonitoring/JetVariable.h b/Reconstruction/Jet/JetMonitoring/JetMonitoring/JetVariable.h index 6eba2d557dd..ae1731a421d 100644 --- a/Reconstruction/Jet/JetMonitoring/JetMonitoring/JetVariable.h +++ b/Reconstruction/Jet/JetMonitoring/JetMonitoring/JetVariable.h @@ -8,7 +8,6 @@ #define JETMONITORING_JETVARIABLE_H #include <vector> - #include "xAODJet/Jet.h" /////////////////////////////////////////////////////////// @@ -92,10 +91,7 @@ namespace JetVar { VariableAtt(const std::string & name) : Variable(name), m_acc(name) {} virtual float value(const xAOD::Jet & j) const { if ( m_acc.isAvailable( j ) ) return m_acc(j)*m_scale; - else { - std::cout<<"VariableAtt::value() cannot access variable '"<<m_name<<"'"<<std::endl; - return -999.; - } + else return -999.; } Accessor<T> m_acc; }; @@ -128,10 +124,7 @@ namespace JetVar { // use only if the index is valid virtual float value(const xAOD::Jet & j) const { if ( m_acc.isAvailable( j ) ) return m_acc(j)[m_index]*m_scale; - else { - std::cout<<"VariableAtt<std::vector<T>>::value() cannot access variable '"<<m_name<<"["<<std::to_string(m_index)<<"]'"<<std::endl; - return -999.; - } + else return -999.; } virtual VectorValue vector(const xAOD::Jet &j) const { @@ -140,7 +133,6 @@ namespace JetVar { return v; } else { - std::cout<<"VariableAtt<std::vector<T>>::vector() cannot access variable '"<<m_name<<"'"<<std::endl; vect_t dummy(1,-999.); VectorValue junk( new VectorWrapperT(&dummy), m_scale ); return junk; diff --git a/Trigger/TrigMonitoring/TrigJetMonitoring/python/TrigJetMonitorAlgorithm.py b/Trigger/TrigMonitoring/TrigJetMonitoring/python/TrigJetMonitorAlgorithm.py index 3b0c04cf147..385550cc37c 100644 --- a/Trigger/TrigMonitoring/TrigJetMonitoring/python/TrigJetMonitorAlgorithm.py +++ b/Trigger/TrigMonitoring/TrigJetMonitoring/python/TrigJetMonitorAlgorithm.py @@ -63,7 +63,7 @@ Chain2JetCollDict['Legacy'] = { 'HLT_3j200' : 'HLT_xAOD__JetContainer_a4tcemsubjesISFS', } -from JetMonitoring.JetMonitoringConfig import JetMonAlgSpec, HistoSpec, EventHistoSpec, SelectSpec, ToolSpec, VarSpec +from JetMonitoring.JetMonitoringConfig import JetMonAlgSpec, HistoSpec, EventHistoSpec, SelectSpec, ToolSpec from AthenaConfiguration.AllConfigFlags import ConfigFlags def TrigJetMonConfig(inputFlags): @@ -212,7 +212,7 @@ ExtraLargeROnlineHists = [ OfflineScaleMomenta = [ "ConstitScale", "EMScale", "PileupScale", "EtaJESScale"] OnlineScaleMomenta = [ "ConstitScale" ] -for var in [ "pt", "eta", "phi", "m" ]: +for var in [ "pt", "eta", "m" ]: for offlinescale in OfflineScaleMomenta: ExtraOfflineHists.append("Jet"+offlinescale+"Momentum_"+var) for onlinescale in OnlineScaleMomenta: -- GitLab From b04d1780eb20cd6ebb664e5a366566dcfd45de20 Mon Sep 17 00:00:00 2001 From: schaffer <R.D.Schaffer@cern.ch> Date: Mon, 20 Jul 2020 12:27:18 +0200 Subject: [PATCH 072/459] removed default creation of the forward field svc --- Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx index a60d02136a3..3ccf9363f4e 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx @@ -23,7 +23,7 @@ StandardFieldSvc::StandardFieldSvc(const std::string& name, ISvcLocator* pSvcLocator) : G4MagFieldSvcBase(name, pSvcLocator), - m_magFieldSvc("MagField::ForwardRegionFieldSvc/ForwardRegionFieldSvc", name) + m_magFieldSvc("", name) { declareProperty("MagneticFieldSvc", m_magFieldSvc); } -- GitLab From 322d8db38a76f1099dde0cd478938b3a4c591514 Mon Sep 17 00:00:00 2001 From: Liaoshan Shi <Liaoshan.Shi@cern.ch> Date: Mon, 20 Jul 2020 13:10:42 +0200 Subject: [PATCH 073/459] Update OnlineEventDisplaysSvc to rel22 First working configuration of OnlineEventDisplaysSvc in rel22. - Update the BeginEvent incident source - Remove obsolete trigger tools - Update to read stream tags from the new xAOD::EventInfo class See details in AA-19. --- .../PyAnalysisCore/python/PyEventTools.py | 3 +- .../python/OnlineEventDisplaysSvc.py | 67 +++++-------------- 2 files changed, 20 insertions(+), 50 deletions(-) diff --git a/PhysicsAnalysis/PyAnalysis/PyAnalysisCore/python/PyEventTools.py b/PhysicsAnalysis/PyAnalysis/PyAnalysisCore/python/PyEventTools.py index a2397a5e796..acff2eef8be 100755 --- a/PhysicsAnalysis/PyAnalysis/PyAnalysisCore/python/PyEventTools.py +++ b/PhysicsAnalysis/PyAnalysis/PyAnalysisCore/python/PyEventTools.py @@ -21,4 +21,5 @@ def getEventInfo (aKey): athena> print e.event_ID().event_number() """ - return PyK.retrieve(PyK.GNS.EventInfo,aKey) + #return PyK.retrieve(PyK.GNS.EventInfo,aKey) + return PyK.retrieve('xAOD::EventInfo',aKey) diff --git a/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py b/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py index b71b9220483..13361a3e3be 100644 --- a/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py +++ b/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py @@ -1,6 +1,4 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -from __future__ import print_function +# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration __doc__ = """This service runs in the online Athena event display threads. It manages the distribution of incoming events to the right event display streams. @@ -33,9 +31,6 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): self.StreamToFileTool = None self.StreamToServerTool = None self.VP1EventProducer = None - self.TrigBSExtraction = None - self.TrigDecMaker = None - self.TrigDecTool = None self.run = 0 self.event = 0 @@ -74,36 +69,23 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): if not (self.StreamToFileTool and self.StreamToServerTool and self.VP1EventProducer): self.getJobOptions() - if not self.TrigDecTool: - try: - self.TrigBSExtraction = PyAthena.py_alg('TrigBSExtraction') - self.TrigDecMaker = PyAthena.py_alg('TrigDecMaker') - self.TrigDecTool = PyAthena.py_tool('Trig::TrigDecisionTool/TrigDecisionTool', iface='Trig::TrigDecisionTool') - self.msg.info("TrigDecTool: %s" % self.TrigDecTool) - except Exception as err: - self.msg.warning("Coult not retrieve TrigDecisionTool: %s" % err) - try: - eventInfo = PyEventTools.getEventInfo('') - except LookupError as err: + eventInfo = PyEventTools.getEventInfo('EventInfo') + except LookupError, err: self.msg.error("Could not retrieve EventInfo: %s" % err) return StatusCode.Recoverable try: # Read event info - eventID = eventInfo.event_ID() - self.run = eventID.run_number() - self.event = eventID.event_number() + self.run = eventInfo.runNumber() + self.event = eventInfo.eventNumber() # Retrieve trigger info - triggerInfo = eventInfo.trigger_info() - if triggerInfo: - streamTags = triggerInfo.streamTags() - else: - streamTags = [] - except Exception as err: + streamTags = eventInfo.streamTags() + except Exception, err: self.msg.error("Exception occured while reading event/trigger info: %s" % err) return StatusCode.Recoverable + print(streamTags) # lshi test # Retrieve the physics stream names from the trigger info streams = [] @@ -119,39 +101,25 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): if tag.type() == 'physics' and tag.name(): streams += [tag.type()+'_'+tag.name()] - # Add special streams to the list (JetTriggers, Public) - try: - if self.TrigDecTool: - self.TrigBSExtraction.execute() - self.TrigDecMaker.execute() - - if self.TrigDecTool.isPassed('L1_J5') or self.TrigDecTool.isPassed('L1_J10') or self.TrigDecTool.isPassed('L1_J15'): - streams += ['JetTriggers'] - #if self.TrigDecTool.isPassed('L1_MBTS_1_1'): - # streams += ['MinBias'] - #if self.TrigDecTool.isPassed('L1_MU0') or self.TrigDecTool.isPassed('L1_MU6') or self.TrigDecTool.isPassed('L1_MU10'): - # streams += ['Muons'] - except Exception as err: - self.msg.error("Exception occured while using TrigDecTool: %s" % err) - + # Add special streams to the list Public try: for stream in streams: if stream in self.public: ready4physics = ISInfoAny() self.dict.getValue('RunParams.Ready4Physics', ready4physics) - print ("Ready for physics: %s " % ready4physics.get()) + print "Ready for physics: %s " % ready4physics.get() runparams = ISObject(self.partition, 'RunParams.RunParams','RunParams') runparams.checkout() physicsReady = ISObject(self.partition, 'RunParams.Ready4Physics','Ready4PhysicsInfo') physicsReady.checkout() - print ("Ready for physics: %r" % (physicsReady.ready4physics)) + print "Ready for physics: %r" % (physicsReady.ready4physics) #if ready4physics.get() and physicsReady.ready4physics and runparams.T0_project_tag in self.projecttags: if physicsReady.ready4physics and runparams.T0_project_tag in self.projecttags: streams += ['Public'] else: self.msg.debug("RunParams.Ready4Physics is not set, run number is not set, or T0_project_tag is not set to any of %s" % ", ".join(self.projecttags)) break - except Exception as err: + except Exception, err: self.msg.error("Exception occured while reading RunParams.Ready4Physics: %s" % err) # Randomize list of streams @@ -179,7 +147,7 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): os.chown(self.directory, -1, self.DQMgid) self.msg.info("Created output directory \'%s\' for stream \'%s\'" % (self.directory, self.stream)) break - except OSError as err: + except OSError, err: self.msg.warning("Failed to create output directory \'%s\' for stream \'%s\': %s", (self.directory, self.stream, err.strerror)) self.directory = '' @@ -197,8 +165,8 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): self.StreamToFileTool.getProperty('FileNamePrefix').setValue("%s/JiveXML" % self.directory) # And also for the VP1 event producer algorithm - self.VP1EventProducer.getProperty('DestinationDirectory').setValue(self.directory) - except Exception as err: + #self.VP1EventProducer.getProperty('DestinationDirectory').setValue(self.directory) # lshi June 22 2020 + except Exception, err: self.msg.error("Exception occured while setting job options: %s" % err) return StatusCode.Failure @@ -219,10 +187,11 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): self.directory = '' def handle(self, incident): - self.msg.verbose("Received incident %s from %s" % (incident.type(), incident.source())) + #self.msg.verbose("Received incident %s from %s" % (incident.type(), incident.source())) + self.msg.info("Received incident %s from %s" % (incident.type(), incident.source())) # Event and trigger info present, decide stream - if incident.type() == 'BeginEvent' and incident.source() == 'AthenaEventLoopMgr': + if incident.type() == 'BeginEvent' and incident.source() == 'BeginIncFiringAlg': self.beginEvent() # VP1 writes its file at EndEvent, so we can do cleanup at StoreCleared -- GitLab From b1fb0189098c467d155df1f74bf29d74f96e3a6b Mon Sep 17 00:00:00 2001 From: Liaoshan Shi <Liaoshan.Shi@cern.ch> Date: Mon, 20 Jul 2020 13:25:46 +0200 Subject: [PATCH 074/459] Update EventDisplay_jobOptions to fix ATLASRECTS-5496 --- .../share/EventDisplay_jobOptions.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py b/graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py index 0234aeca017..29c762895bf 100644 --- a/graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py +++ b/graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py @@ -32,8 +32,7 @@ useAtlantisEmon = False ## ------------------------------------------- flags set in: RecExOnline_emonsvc.py (from RecExOnline_jobOptions.py) partitionName = 'ATLAS' -#Current test partition looping through 2015 data if you want to test when no run is ongoing. -#partitionName = 'GMTestPartition_lshi_tdaq6' +#partitionName = 'GMTestPartition' #Test partition serving events from a raw data file if you want to test when no run is ongoing. publishName = 'EventDisplays' if (partitionName == 'ATLAS'): @@ -51,12 +50,12 @@ pickleconfigfile = './ami_recotrf.pickle' DataSource = 'data' InputFormat = 'bytestream' fileName = './0.data' +beamType = 'collisions' #beamType = 'cosmics' -#beamType = 'collisions' #COND tag and GEO are needed for running over a test partition online #Previous COND tag -ConditionsTag = 'CONDBR2-HLTP-2017-03' #Removed 07/04 +ConditionsTag = 'CONDBR2-HLTP-2018-01' #Swapped to this following AMI tag for current reco. Swap back if not in release #ConditionsTag = 'CONDBR2-ES1PA-2016-01' #Different #Current DetDesc @@ -125,9 +124,11 @@ jobproperties.CaloCellFlags.doLArHVCorr=False jobproperties.CaloCellFlags.doPileupOffsetBCIDCorr.set_Value_and_Lock(False) jobproperties.CaloCellFlags.doLArCreateMissingCells=False -#Work around to stop crash in pixel cluster splitting +#Work around to stop crash in pixel cluster splitting (Updated by lshi 15 July 2020, ATLASRECTS-5496) from InDetRecExample.InDetJobProperties import InDetFlags#All OK InDetFlags.doInnerDetectorCommissioning.set_Value_and_Lock(True) +InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(False) +InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False) from JetRec.JetRecFlags import jetFlags jetFlags.useTracks.set_Value_and_Lock(False) -- GitLab From 8d1036c2c8fbf556cd8d630cba0ebca0d6827c0e Mon Sep 17 00:00:00 2001 From: Liaoshan Shi <Liaoshan.Shi@cern.ch> Date: Mon, 20 Jul 2020 13:32:15 +0200 Subject: [PATCH 075/459] Add LumiBlockMuTool to fix AveIntPerXDecor error Details in ATLASRECTS-5544, ATLASRECTS-5496 --- .../RecExOnline/share/RecExOnline_globalconfig.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_globalconfig.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_globalconfig.py index 13fb8dafe0c..f55282b5ca4 100644 --- a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_globalconfig.py +++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_globalconfig.py @@ -311,6 +311,17 @@ from AthenaCommon.GlobalFlags import globalflags #globalflags.DatabaseInstance = "CONDBR2" globalflags.DatabaseInstance.set_Value_and_Lock("CONDBR2") +from LumiBlockComps.LuminosityCondAlgDefault import LuminosityCondAlgOnlineDefault +LuminosityCondAlgOnlineDefault() + +from LumiBlockComps.LumiBlockMuWriterDefault import LumiBlockMuWriterDefault +LumiBlockMuWriterDefault() + +from AthenaCommon.AppMgr import ToolSvc +from AthenaCommon import CfgMgr +if not hasattr(ToolSvc, "LumiBlockMuTool"): + ToolSvc += CfgMgr.LumiBlockMuTool("LumiBlockMuTool") + ## Another Problem with LAR offline databases from LArConditionsCommon.LArCondFlags import larCondFlags #larCondFlags.SingleVersion.set_Value_and_Lock(True) -- GitLab From 16a668f0d574f54f546038c5cb0c4a275447699b Mon Sep 17 00:00:00 2001 From: Liaoshan Shi <Liaoshan.Shi@cern.ch> Date: Mon, 20 Jul 2020 13:34:40 +0200 Subject: [PATCH 076/459] Update online reconstruction post config Update post config to fix crashes when running InDet reconstruction online. - Remove condition settings for ATLASDQ-772 - Update ErrorStrategy for ATLASRECTS-5544, ATLASRECTS-5496 --- .../share/RecExOnline_postconfig.py | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_postconfig.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_postconfig.py index a4af971e907..99e6941244a 100644 --- a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_postconfig.py +++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_postconfig.py @@ -25,6 +25,8 @@ if isOnline and useEmon: #ToolSvc.InDetCosmicsEventPhaseTool.GlobalOffset = 0 +ToolSvc.InDetPixelClusterOnTrackTool.ErrorStrategy=1 # Added 13 Jul 2020 from ATLASRECTS-5544 + ### ### Fix problem in PixelConditionsTools @@ -57,28 +59,28 @@ if isOnline and useEmon: # Need to get this part to work online and offline !!! (SMWANG : Nov 17th 2015) # -if (isOnline and not isOfflineTest): - from IOVDbSvc.CondDB import conddb - if not conddb.folderRequested("PIXEL/PixReco"): - conddb.addFolder('PIXEL','/PIXEL/PixReco') - if not conddb.folderRequested("PIXEL/PixCalib"): - conddb.addFolder('PIXEL','/PIXEL/PixCalib') - conddb.blockFolder("/PIXEL/PixCalib") - conddb.blockFolder("/PIXEL/PixReco") - conddb.addFolderWithTag("/det/indet/M8/AtlasProduction-20.1.0.1/NewHLT.db;dbname=CONDBR2","/PIXEL/PixReco","PixReco-HLT-RUN12-000-01",force=True) - conddb.addFolderWithTag("/det/indet/M8/AtlasProduction-20.1.0.1/NewHLT.db;dbname=CONDBR2","/PIXEL/PixCalib","PixReco-HLT-RUN12-000-01",force=True) - - -if (isOnline and isOfflineTest): - from IOVDbSvc.CondDB import conddb - if not conddb.folderRequested("PIXEL/PixReco"): - conddb.addFolder('PIXEL','/PIXEL/PixReco') - if not conddb.folderRequested("PIXEL/PixCalib"): - conddb.addFolder('PIXEL','/PIXEL/PixCalib') - conddb.blockFolder("/PIXEL/PixCalib") - conddb.blockFolder("/PIXEL/PixReco") - conddb.addFolderWithTag("/afs/cern.ch/work/s/smwang/public/DQM/InDet_online_db/NewHLT.db;dbname=CONDBR2","/PIXEL/PixReco","PixReco-HLT-RUN12-000-01",force=True) - conddb.addFolderWithTag("/afs/cern.ch/work/s/smwang/public/DQM/InDet_online_db/NewHLT.db;dbname=CONDBR2","/PIXEL/PixCalib","PixReco-HLT-RUN12-000-01",force=True) +#if (isOnline and not isOfflineTest): +# from IOVDbSvc.CondDB import conddb +# if not conddb.folderRequested("PIXEL/PixReco"): +# conddb.addFolder('PIXEL','/PIXEL/PixReco') +# if not conddb.folderRequested("PIXEL/PixCalib"): +# conddb.addFolder('PIXEL','/PIXEL/PixCalib') +# conddb.blockFolder("/PIXEL/PixCalib") +# conddb.blockFolder("/PIXEL/PixReco") +# conddb.addFolderWithTag("/det/indet/M8/AtlasProduction-20.1.0.1/NewHLT.db;dbname=CONDBR2","/PIXEL/PixReco","PixReco-HLT-RUN12-000-01",force=True) +# conddb.addFolderWithTag("/det/indet/M8/AtlasProduction-20.1.0.1/NewHLT.db;dbname=CONDBR2","/PIXEL/PixCalib","PixReco-HLT-RUN12-000-01",force=True) +# +# +#if (isOnline and isOfflineTest): +# from IOVDbSvc.CondDB import conddb +# if not conddb.folderRequested("PIXEL/PixReco"): +# conddb.addFolder('PIXEL','/PIXEL/PixReco') +# if not conddb.folderRequested("PIXEL/PixCalib"): +# conddb.addFolder('PIXEL','/PIXEL/PixCalib') +# conddb.blockFolder("/PIXEL/PixCalib") +# conddb.blockFolder("/PIXEL/PixReco") +# conddb.addFolderWithTag("/afs/cern.ch/work/s/smwang/public/DQM/InDet_online_db/NewHLT.db;dbname=CONDBR2","/PIXEL/PixReco","PixReco-HLT-RUN12-000-01",force=True) +# conddb.addFolderWithTag("/afs/cern.ch/work/s/smwang/public/DQM/InDet_online_db/NewHLT.db;dbname=CONDBR2","/PIXEL/PixCalib","PixReco-HLT-RUN12-000-01",force=True) # ----------------------------- Printout -- GitLab From 4633a77813d3986336ffaac5eb9c864ab62cc934 Mon Sep 17 00:00:00 2001 From: Liaoshan Shi <Liaoshan.Shi@cern.ch> Date: Mon, 20 Jul 2020 14:04:05 +0200 Subject: [PATCH 077/459] python 3 updates --- .../python/OnlineEventDisplaysSvc.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py b/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py index 13361a3e3be..133dc8d2a31 100644 --- a/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py +++ b/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py @@ -1,4 +1,6 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +from __future__ import print_function __doc__ = """This service runs in the online Athena event display threads. It manages the distribution of incoming events to the right event display streams. @@ -71,7 +73,7 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): try: eventInfo = PyEventTools.getEventInfo('EventInfo') - except LookupError, err: + except LookupError as err: self.msg.error("Could not retrieve EventInfo: %s" % err) return StatusCode.Recoverable @@ -82,7 +84,7 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): # Retrieve trigger info streamTags = eventInfo.streamTags() - except Exception, err: + except Exception as err: self.msg.error("Exception occured while reading event/trigger info: %s" % err) return StatusCode.Recoverable print(streamTags) # lshi test @@ -107,19 +109,19 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): if stream in self.public: ready4physics = ISInfoAny() self.dict.getValue('RunParams.Ready4Physics', ready4physics) - print "Ready for physics: %s " % ready4physics.get() + print("Ready for physics: %s " % ready4physics.get()) runparams = ISObject(self.partition, 'RunParams.RunParams','RunParams') runparams.checkout() physicsReady = ISObject(self.partition, 'RunParams.Ready4Physics','Ready4PhysicsInfo') physicsReady.checkout() - print "Ready for physics: %r" % (physicsReady.ready4physics) + print("Ready for physics: %r" % (physicsReady.ready4physics)) #if ready4physics.get() and physicsReady.ready4physics and runparams.T0_project_tag in self.projecttags: if physicsReady.ready4physics and runparams.T0_project_tag in self.projecttags: streams += ['Public'] else: self.msg.debug("RunParams.Ready4Physics is not set, run number is not set, or T0_project_tag is not set to any of %s" % ", ".join(self.projecttags)) break - except Exception, err: + except Exception as err: self.msg.error("Exception occured while reading RunParams.Ready4Physics: %s" % err) # Randomize list of streams @@ -147,7 +149,7 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): os.chown(self.directory, -1, self.DQMgid) self.msg.info("Created output directory \'%s\' for stream \'%s\'" % (self.directory, self.stream)) break - except OSError, err: + except OSError as err: self.msg.warning("Failed to create output directory \'%s\' for stream \'%s\': %s", (self.directory, self.stream, err.strerror)) self.directory = '' @@ -166,7 +168,7 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): # And also for the VP1 event producer algorithm #self.VP1EventProducer.getProperty('DestinationDirectory').setValue(self.directory) # lshi June 22 2020 - except Exception, err: + except Exception as err: self.msg.error("Exception occured while setting job options: %s" % err) return StatusCode.Failure -- GitLab From 4bd25a5a42f8539d5b3fc62d265bee5e395f0033 Mon Sep 17 00:00:00 2001 From: Liaoshan Shi <Liaoshan.Shi@cern.ch> Date: Mon, 20 Jul 2020 14:09:56 +0200 Subject: [PATCH 078/459] clean up debugging output --- graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py | 1 - 1 file changed, 1 deletion(-) diff --git a/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py b/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py index 133dc8d2a31..02172773322 100644 --- a/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py +++ b/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py @@ -87,7 +87,6 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): except Exception as err: self.msg.error("Exception occured while reading event/trigger info: %s" % err) return StatusCode.Recoverable - print(streamTags) # lshi test # Retrieve the physics stream names from the trigger info streams = [] -- GitLab From 82465f76390413fb2fa808987f3b1f7407f4c18b Mon Sep 17 00:00:00 2001 From: schaffer <R.D.Schaffer@cern.ch> Date: Mon, 20 Jul 2020 16:52:36 +0200 Subject: [PATCH 079/459] move to newer syntax for service handle initializer and removed declare property --- .../G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx | 7 ++----- Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h | 2 +- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx index 3ccf9363f4e..7f68d336754 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx @@ -22,11 +22,8 @@ //----------------------------------------------------------------------------- StandardFieldSvc::StandardFieldSvc(const std::string& name, ISvcLocator* pSvcLocator) - : G4MagFieldSvcBase(name, pSvcLocator), - m_magFieldSvc("", name) -{ - declareProperty("MagneticFieldSvc", m_magFieldSvc); -} + : G4MagFieldSvcBase(name, pSvcLocator) +{} //----------------------------------------------------------------------------- // Initialize the service diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h index 776978db5b4..429f14be185 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h @@ -168,7 +168,7 @@ class StandardFieldSvc final : public G4MagFieldSvcBase "UseMagFieldSvc", false, "Use magnetic field service - Should ONLY be used for ForwardRegionFieldSvc"}; /// Handle to the the Forward ATLAS magnetic field service - ServiceHandle<MagField::IMagFieldSvc> m_magFieldSvc; + ServiceHandle<MagField::IMagFieldSvc> m_magFieldSvc {this, "MagneticFieldSvc", ""}; StatusCode createFieldMap(); -- GitLab From 5dbe2d72b783aee6309952eb0cec90c603f42f08 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Tue, 21 Jul 2020 14:42:18 +0100 Subject: [PATCH 080/459] Addressing warnings for thread safety --- .../MuonRPC_CnvTools/src/RPC_Hid2RESrcID.h | 4 ++- .../MuonRPC_CnvTools/src/RpcROD_Decoder.h | 4 ++- .../MuonRPC_CnvTools/src/RpcROD_Encoder.h | 4 ++- .../src/RpcRdoToPrepDataToolMT.cxx | 2 +- .../src/RpcRdoToPrepDataToolMT.h | 3 +- .../MuonTGC_CnvTools/src/TgcRDO_Decoder.h | 4 ++- .../MuonTGC_CnvTools/src/TgcRODReadOut.cxx | 2 +- .../MuonTGC_CnvTools/src/TgcRODReadOut.h | 2 +- .../MuonTGC_CnvTools/src/TgcSlbData.cxx | 31 +++++++++++++++++-- .../MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.h | 4 +++ 10 files changed, 50 insertions(+), 10 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RPC_Hid2RESrcID.h b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RPC_Hid2RESrcID.h index 608e5dd4150..6cc3af7fde1 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RPC_Hid2RESrcID.h +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RPC_Hid2RESrcID.h @@ -14,6 +14,8 @@ #include <stdint.h> #include <map> +#include "CxxUtils/checker_macros.h" + class RPC_Hid2RESrcID { public: @@ -44,7 +46,7 @@ private: int m_specialROBNumber; - mutable Athena::MsgStreamMember m_msg; + mutable Athena::MsgStreamMember m_msg ATLAS_THREAD_SAFE; }; diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcROD_Decoder.h b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcROD_Decoder.h index 26a1f593214..b5a1d27b582 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcROD_Decoder.h +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcROD_Decoder.h @@ -30,6 +30,8 @@ #include "RPC_CondCabling/RpcCablingCondData.h" #include "StoreGate/ReadCondHandleKey.h" +#include "CxxUtils/checker_macros.h" + #include <atomic> #include <cassert> #include <stdint.h> @@ -113,7 +115,7 @@ namespace Muon //====LBTAG==== Added 02112008 for buffer format check int m_printerror; - mutable std::atomic_int m_RPCcheckfail[13]; + mutable std::atomic_int m_RPCcheckfail[13] ATLAS_THREAD_SAFE; IntegerProperty m_maxprinterror; //====LBTAG==== Added 02112008 for buffer format check diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcROD_Encoder.h b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcROD_Encoder.h index 47c72b4aaaf..bd47017adfb 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcROD_Encoder.h +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcROD_Encoder.h @@ -20,6 +20,8 @@ #include "RPC_Hid2RESrcID.h" +#include "CxxUtils/checker_macros.h" + /** This class provides conversion from BS to ROD format. * @author H. Ma * @version 0-0-1 , Oct 7, 2002 @@ -82,7 +84,7 @@ private: std::vector<const RpcPad*> m_vRpcPad; - mutable Athena::MsgStreamMember m_msg; + mutable Athena::MsgStreamMember m_msg ATLAS_THREAD_SAFE; } ; #endif diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.cxx b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.cxx index b9c9ad798a3..549fa75b01f 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.cxx +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.cxx @@ -54,7 +54,7 @@ StatusCode Muon::RpcRdoToPrepDataToolMT::finalize() return RpcRdoToPrepDataToolCore::finalize(); } -StatusCode Muon::RpcRdoToPrepDataToolMT::manageOutputContainers ATLAS_THREAD_SAFE (bool& firstTimeInTheEvent) +StatusCode Muon::RpcRdoToPrepDataToolMT::manageOutputContainers (bool& firstTimeInTheEvent) { // We will need to retrieve from cache even in different threads SG::WriteHandle< Muon::RpcPrepDataContainer >rpcPRDHandle(m_rpcPrepDataContainerKey); diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h index 3191244a371..1e13f69d841 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h @@ -9,6 +9,7 @@ #include "MuonPrepRawData/MuonPrepDataCollection_Cache.h" #include "MuonTrigCoinData/MuonTrigCoinData_Cache.h" +#include "CxxUtils/checker_macros.h" namespace Muon { @@ -22,7 +23,7 @@ public: virtual StatusCode decode ( const std::vector<uint32_t>& robIds ) override; protected: - virtual StatusCode manageOutputContainers(bool& firstTimeInTheEvent) override; + StatusCode manageOutputContainers(bool& firstTimeInTheEvent) override; StatusCode transferOutputToCache(); void printMT(); diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRDO_Decoder.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRDO_Decoder.h index 199a9f619f8..7bb17d73960 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRDO_Decoder.h +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRDO_Decoder.h @@ -9,6 +9,8 @@ #include "AthenaBaseComps/AthAlgTool.h" +#include "CxxUtils/checker_macros.h" + class TgcDigit; class TgcRawData; class Identifier; @@ -53,7 +55,7 @@ namespace Muon private: StatusCode getCabling() const; - mutable const ITGCcablingSvc *m_cabling; + mutable const ITGCcablingSvc *m_cabling ATLAS_THREAD_SAFE; bool m_applyPatch; }; diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRODReadOut.cxx b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRODReadOut.cxx index 28c9e57122d..6adda91c19e 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRODReadOut.cxx +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRODReadOut.cxx @@ -71,7 +71,7 @@ Muon::TgcRODReadOut::~TgcRODReadOut() delete m_tgcSlbDataHelper; m_tgcSlbDataHelper=0; } -TgcRdo* Muon::TgcRODReadOut::getRdo(void) const +const TgcRdo* Muon::TgcRODReadOut::getRdo(void) const { return m_tgcRdo; } diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRODReadOut.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRODReadOut.h index 85b8cee2540..d6d47f6440a 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRODReadOut.h +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRODReadOut.h @@ -44,7 +44,7 @@ namespace Muon virtual ~TgcRODReadOut(); /** Get TgcRdo member */ - TgcRdo * getRdo(void) const; + const TgcRdo * getRdo(void) const; /** Set TgcRdo member */ StatusCode setRdo(TgcRdo * v_tgcRdo); diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx index 13fbf3e919a..ea5020b2874 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx @@ -70,6 +70,31 @@ const bool* Muon::TgcSlbData::getBitArray(const uint16_t bcTag) const } return bitArray; } + +// This function avoids using const cast internally +bool* Muon::TgcSlbData::getBitArrayNC(const uint16_t bcTag) +{ + bool* bitArray = 0; + switch (bcTag) + { + case BC_CENTRAL: + bitArray = m_bitArray_C; + break; + case BC_PREVIOUS: + bitArray = m_bitArray_P; + break; + case BC_NEXT: + bitArray = m_bitArray_N; + break; + case BC_UNDEFINED: + bitArray = m_bitArray_C; // for backward compatibility + break; + default: + bitArray = 0; + break; + } + return bitArray; +} // store bitmap void Muon::TgcSlbData::setBitmap(const uint16_t bcTag, @@ -79,7 +104,8 @@ void Muon::TgcSlbData::setBitmap(const uint16_t bcTag, if(cellAddr == PADDING_WORD) return; // get bit array - bool *bitArray = const_cast<bool*>(getBitArray(bcTag)); + //bool *bitArray = const_cast<bool*>(getBitArray(bcTag)); + bool *bitArray = getBitArrayNC(bcTag); // assign int indexMap = BITMAP_SIZE - CELL_SIZE*(cellAddr+1); @@ -104,7 +130,8 @@ void Muon::TgcSlbData::setBit(const uint16_t bcTag, if(iBit >= BITMAP_SIZE) return; // get bit array - bool *bitArray = const_cast<bool*>(getBitArray(bcTag)); + // bool *bitArray = const_cast<bool*>(getBitArray(bcTag)); + bool *bitArray = getBitArrayNC(bcTag); *(bitArray+iBit)=true; } diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.h index 13b2d8dd7e8..90183d14204 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.h +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.h @@ -124,6 +124,10 @@ namespace Muon /** Costructor */ TgcSlbData(void); + /** Get bitArray for a BC tag. */ + // Non-const version which is used in this class only + bool * getBitArrayNC(const uint16_t bcTag); + uint16_t m_bcId; uint32_t m_l1Id; uint16_t m_sswId; -- GitLab From 20edbaa1ce45d2aa8bb9b79cf05ef83664d1a77d Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Tue, 21 Jul 2020 16:10:44 +0200 Subject: [PATCH 081/459] lets use thread_local , should be safe enough, and get rid of one indirection --- .../G4Atlas/G4AtlasServices/CMakeLists.txt | 5 ++--- .../G4AtlasServices/src/StandardFieldSvc.h | 20 +++++++++---------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt b/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt index bad45642cff..83078840efa 100644 --- a/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt +++ b/Simulation/G4Atlas/G4AtlasServices/CMakeLists.txt @@ -10,14 +10,13 @@ find_package( CLHEP ) find_package( Geant4 ) find_package( TBB ) find_package( XercesC ) -find_package( Boost COMPONENTS thread ) find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) # Component(s) in the package: atlas_add_component( G4AtlasServices src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} ${Boost_LIBRARIES} ${ROOT_LIBRARIES} + INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} ${ROOT_LIBRARIES} GaudiKernel AthenaBaseComps G4AtlasInterfaces G4AtlasToolsLib G4PhysicsLists PathResolver MagFieldElements MagFieldInterfaces) diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h index 429f14be185..f8308d2a846 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h @@ -63,12 +63,13 @@ namespace MagField { * scheme needed by the simulation. * */ -#include <boost/thread/tss.hpp> struct ATLASFieldCacheTLSWrapper { private: - mutable boost::thread_specific_ptr<MagField::AtlasFieldCache> - m_fieldCache_tls{}; + MagField::AtlasFieldCache createCache() const + { + return MagField::AtlasFieldCache(solFieldScale, torFieldScale, fieldMap); + } public: ///Sclae for solenoid @@ -78,16 +79,13 @@ public: ///Not owning ptr const MagField::AtlasFieldMap* fieldMap{ nullptr }; - /// Method setting up and returning the TLS MagField::AtlasFieldCache + /// Method setting up the TLS + /// and returning ref to + /// the TLS MagField::AtlasFieldCache MagField::AtlasFieldCache& getTLSCache() const { - MagField::AtlasFieldCache* fieldCache = m_fieldCache_tls.get(); - if (!fieldCache) { - fieldCache = - new MagField::AtlasFieldCache(solFieldScale, torFieldScale, fieldMap); - m_fieldCache_tls.reset(fieldCache); - } - return *fieldCache; + static thread_local MagField::AtlasFieldCache fieldCache = createCache(); + return fieldCache; } /// getField method, forwarding to the TLS object -- GitLab From 844ee4b80ff02ade3c125c093f55c4b83b144838 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Tue, 21 Jul 2020 19:12:35 +0100 Subject: [PATCH 082/459] ATR-20042 Add functionality to create missing collection for cases with nonstandard Aux --- .../TrigOutputHandling/src/HLTEDMCreator.cxx | 53 ++++++++++++------- .../TrigOutputHandling/src/HLTEDMCreator.h | 9 +++- .../TrigEDMConfig/python/TriggerEDMRun3.py | 5 +- .../TriggerJobOpts/python/TriggerConfig.py | 10 ++++ 4 files changed, 56 insertions(+), 21 deletions(-) diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx index 5e6d421213f..c4a9f0f24eb 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.cxx @@ -16,20 +16,20 @@ HLTEDMCreator::HLTEDMCreator( const std::string& type, template<typename T> StatusCode HLTEDMCreator::initHandles( const HandlesGroup<T>& handles ) { - CHECK( handles.out.initialize() ); + ATH_CHECK( handles.out.initialize() ); renounceArray( handles.out ); - CHECK( handles.in.initialize() ); + ATH_CHECK( handles.in.initialize() ); renounceArray( handles.in ); - CHECK( handles.views.initialize() ); + ATH_CHECK( handles.views.initialize() ); renounceArray( handles.views ); // the case w/o reading from views, both views handles and collection in views should be empty if ( handles.views.size() == 0 ) { - CHECK( handles.in.size() == 0 ); + ATH_CHECK( handles.in.size() == 0 ); } else { // the case with views, for every output we expect an input View and an input collection inside that View - CHECK( handles.out.size() == handles.in.size() ); - CHECK( handles.in.size() == handles.views.size() ); + ATH_CHECK( handles.out.size() == handles.in.size() ); + ATH_CHECK( handles.in.size() == handles.views.size() ); } return StatusCode::SUCCESS; } @@ -66,10 +66,10 @@ StatusCode HLTEDMCreator::initialize() // this section has to appear after the above initialisation of DecorHandles, else the renounce of TrigComposite does not work as expected #define INIT(__TYPE) \ - CHECK( initHandles( HandlesGroup<__TYPE>( m_##__TYPE, m_##__TYPE##InViews, m_##__TYPE##Views ) ) ); + ATH_CHECK( initHandles( HandlesGroup<__TYPE>( m_##__TYPE, m_##__TYPE##InViews, m_##__TYPE##Views ) ) ); #define INIT_XAOD(__TYPE) \ - CHECK( initHandles( HandlesGroup<xAOD::__TYPE>( m_##__TYPE, m_##__TYPE##InViews, m_##__TYPE##Views ) ) ); + ATH_CHECK( initHandles( HandlesGroup<xAOD::__TYPE>( m_##__TYPE, m_##__TYPE##InViews, m_##__TYPE##Views ) ) ); INIT( TrigRoiDescriptorCollection ); INIT_XAOD( TrigCompositeContainer ); @@ -95,14 +95,17 @@ StatusCode HLTEDMCreator::initialize() INIT_XAOD( TrigBphysContainer ); INIT_XAOD( BTaggingContainer ); INIT_XAOD( BTagVertexContainer ); - INIT_XAOD( CaloClusterContainer ); #undef INIT #undef INIT_XAOD - - + ATH_CHECK( m_CaloClusterContainerShallowCopy.initialize() ); + renounceArray( m_CaloClusterContainerShallowCopy ); + for ( auto k: m_CaloClusterContainerShallowCopy ) + m_CaloClusterContainerShallowCopyOut.push_back(k.key()); + ATH_CHECK( m_CaloClusterContainerShallowCopyOut.initialize() ); + renounceArray( m_CaloClusterContainerShallowCopyOut ); return StatusCode::SUCCESS; } @@ -160,9 +163,9 @@ StatusCode HLTEDMCreator::viewsMerge( ViewContainer const& views, const SG::Rea typedef typename T::base_value_type type_in_container; StoreGateSvc* sg = evtStore().operator->(); // why the get() method is returing a null ptr is a puzzle, we have to use this ugly call to operator instead of it - CHECK( sg != nullptr ); + ATH_CHECK( sg != nullptr ); ViewHelper::ViewMerger merger( sg, msg() ); - CHECK( merger.mergeViewCollection<type_in_container>( views, inViewKey, context, output ) ); + ATH_CHECK( merger.mergeViewCollection<type_in_container>( views, inViewKey, context, output ) ); return StatusCode::SUCCESS; } @@ -296,14 +299,14 @@ StatusCode HLTEDMCreator::createIfMissing( const EventContext& context, const Co if ( viewsHandle.isValid() ) { SG::ReadHandleKey<T> inViewReadHandleKey = handles.in.at(i); ATH_MSG_DEBUG("Will be merging from " << viewsHandle->size() << " views using in-view key " << inViewReadHandleKey.key() ); - CHECK( (this->*merger)( *viewsHandle, inViewReadHandleKey , context, *generator.data.get() ) ); + ATH_CHECK( (this->*merger)( *viewsHandle, inViewReadHandleKey , context, *generator.data.get() ) ); } else { ATH_MSG_DEBUG("Views " << viewsReadHandleKey.key() << " are missing. Will leave " << writeHandleKey.key() << " output collection empty."); } } auto writeHandle = SG::makeHandle( writeHandleKey, context ); - CHECK( generator.record( writeHandle ) ); + ATH_CHECK( generator.record( writeHandle ) ); } return StatusCode::SUCCESS; @@ -319,7 +322,7 @@ StatusCode HLTEDMCreator::createOutput(const EventContext& context) const { #define CREATE(__TYPE) \ { \ plainGenerator<__TYPE> generator; \ - CHECK( createIfMissing<__TYPE>( context, ConstHandlesGroup<__TYPE>( m_##__TYPE, m_##__TYPE##InViews, m_##__TYPE##Views ), generator, &HLTEDMCreator::noMerge<__TYPE> ) ); \ + ATH_CHECK( createIfMissing<__TYPE>( context, ConstHandlesGroup<__TYPE>( m_##__TYPE, m_##__TYPE##InViews, m_##__TYPE##Views ), generator, &HLTEDMCreator::noMerge<__TYPE> ) ); \ } CREATE( TrigRoiDescriptorCollection ) @@ -329,14 +332,14 @@ StatusCode HLTEDMCreator::createOutput(const EventContext& context) const { #define CREATE_XAOD(__TYPE, __STORE_TYPE) \ { \ xAODGenerator<xAOD::__TYPE, xAOD::__STORE_TYPE> generator; \ - CHECK( createIfMissing<xAOD::__TYPE>( context, ConstHandlesGroup<xAOD::__TYPE>( m_##__TYPE, m_##__TYPE##InViews, m_##__TYPE##Views ), generator, &HLTEDMCreator::viewsMerge<xAOD::__TYPE> ) ); \ + ATH_CHECK( createIfMissing<xAOD::__TYPE>( context, ConstHandlesGroup<xAOD::__TYPE>( m_##__TYPE, m_##__TYPE##InViews, m_##__TYPE##Views ), generator, &HLTEDMCreator::viewsMerge<xAOD::__TYPE> ) ); \ } #define CREATE_XAOD_NO_MERGE(__TYPE, __STORE_TYPE) \ { \ xAODGenerator<xAOD::__TYPE, xAOD::__STORE_TYPE> generator; \ - CHECK( createIfMissing<xAOD::__TYPE>( context, ConstHandlesGroup<xAOD::__TYPE>( m_##__TYPE, m_##__TYPE##InViews, m_##__TYPE##Views ), generator, &HLTEDMCreator::noMerge<xAOD::__TYPE> ) ); \ + ATH_CHECK( createIfMissing<xAOD::__TYPE>( context, ConstHandlesGroup<xAOD::__TYPE>( m_##__TYPE, m_##__TYPE##InViews, m_##__TYPE##Views ), generator, &HLTEDMCreator::noMerge<xAOD::__TYPE> ) ); \ } CREATE_XAOD_NO_MERGE( TrigCompositeContainer, TrigCompositeAuxContainer ); @@ -370,6 +373,20 @@ StatusCode HLTEDMCreator::createOutput(const EventContext& context) const { #undef CREATE_XAOD #undef CREATE_XAOD_NO_MERGE + // special cases + { + for ( size_t index = 0; index < m_CaloClusterContainerShallowCopy.size(); ++index ){ + auto readHandle = SG::makeHandle<xAOD::CaloClusterContainer> ( m_CaloClusterContainerShallowCopy[index], context ); + if ( not readHandle.isValid() ) { // collection is missing + ATH_MSG_DEBUG( "Creating missing CaloClusterContainerShallowCopy " << m_CaloClusterContainerShallowCopy[index].key() ); + auto writeHandle = SG::makeHandle( m_CaloClusterContainerShallowCopyOut[index], context ); + ATH_CHECK( writeHandle.record( std::move( std::make_unique<xAOD::CaloClusterContainer>()), std::move(std::make_unique<xAOD::ShallowAuxContainer>()) )); + } else { + ATH_MSG_DEBUG( "CaloClusterContainerShallowCopy " << m_CaloClusterContainerShallowCopyOut[index].key() << " present in the event, done nothing"); + } + } + } + if ( m_dumpSGAfter ) ATH_MSG_DEBUG( evtStore()->dump() ); diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h index 0e700a28e6a..1a11e35a674 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h +++ b/Trigger/TrigSteer/TrigOutputHandling/src/HLTEDMCreator.h @@ -17,7 +17,6 @@ #include "AthViews/View.h" #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h" - #include "xAODTrigger/TrigCompositeContainer.h" #include "xAODTrigger/TrigCompositeAuxContainer.h" #include "xAODTrigEgamma/TrigElectronContainer.h" @@ -32,7 +31,7 @@ #include "xAODTrigCalo/TrigEMClusterAuxContainer.h" #include "xAODTrigCalo/TrigCaloClusterContainer.h" #include "xAODTrigCalo/TrigCaloClusterAuxContainer.h" -// Ringer + #include "xAODTrigRinger/TrigRingerRingsContainer.h" #include "xAODTrigRinger/TrigRingerRingsAuxContainer.h" @@ -66,6 +65,7 @@ #include "xAODCaloEvent/CaloClusterContainer.h" #include "xAODTrigCalo/CaloClusterTrigAuxContainer.h" +#include "xAODCore/ShallowAuxContainer.h" /** * @class HLTEDMCreator @@ -145,6 +145,11 @@ class HLTEDMCreator: public extends<AthAlgTool, IHLTOutputTool> { #undef DEF_KEY #undef DEF_XAOD_KEY + + // special cases coded by hand (container not in views + SG::ReadHandleKeyArray<xAOD::CaloClusterContainer> m_CaloClusterContainerShallowCopy{ this, "CaloClusterContainerShallowCopy", {}, "Required collections of xAOD::CaloClusterContainer wiht Aux of type ShallowAuxContainer"}; + SG::WriteHandleKeyArray<xAOD::CaloClusterContainer> m_CaloClusterContainerShallowCopyOut; + template<typename T> struct HandlesGroup { HandlesGroup(SG::WriteHandleKeyArray<T>& out_, diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py index 7f82370ada6..1e671d7dba7 100644 --- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py +++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py @@ -130,9 +130,12 @@ TriggerHLTListRun3 = [ ('xAOD::CaloClusterContainer#HLT_CaloEMClusters', 'BS ESD AODFULL', 'Egamma', 'inViews:precisionCaloViews'), ('xAOD::CaloClusterTrigAuxContainer#HLT_CaloEMClustersAux.', 'BS ESD AODFULL', 'Egamma'), - # This varient needed by TrigUpgradeTest/egammaRinger.py + # This variant needed by TrigUpgradeTest/egammaRinger.py ('xAOD::CaloClusterContainer#HLT_TopoCaloClusters', 'BS ESD AODFULL', 'Egamma'), ('xAOD::CaloClusterTrigAuxContainer#HLT_TopoCaloClustersAux.', 'BS ESD AODFULL', 'Egamma'), + # + ('xAOD::CaloClusterContainer#HLT_TopoCaloClustersLCFS', 'BS ESD AODFULL', 'Jet', 'alias:CaloClusterContainerShallowCopy'), # special argument indicating that this collection has a different Aux + ('xAOD::ShallowAuxContainer#HLT_TopoCaloClustersLCFSAux.calE.calEta.calPhi', 'BS ESD AODFULL', 'Jet'), # Not sure we need these two... ('xAOD::CaloClusterContainer#HLT_TopoCaloClustersRoI', 'BS ESD AODFULL', 'Egamma', 'inViews:precisionCaloViews'), diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py index a28aa1835ba..ec0e917eda2 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py @@ -458,6 +458,7 @@ def triggerMergeViewsAndAddMissingEDMCfg( edmSet, hypos, viewMakers, decObj, dec attrInView.append( collName ) attrName.append( collName ) # + setattr(mergingTool, collType+"Views", attrView ) setattr(mergingTool, collType+"InViews", attrInView ) setattr(mergingTool, collType, attrName ) @@ -484,6 +485,15 @@ def triggerMergeViewsAndAddMissingEDMCfg( edmSet, hypos, viewMakers, decObj, dec collType, collName = el[0].split("#") if "Aux" in collType: # the GapFiller crates appropriate Aux obejcts continue + if len(el) >= 4: # see if there is an alias + aliases = [ x for x in el[3:] if "alias:" in x ] # assume that the description can be: (.... , [alias:Blah | inViews:XYZ | inViews:XYZ, alias:Blah]) + if len(aliases) == 1: + alias = aliases[0].split(":")[1] + __log.info("GapFiller configuration found an aliased type '{}' for '{}'".format( alias, collType)) + collType = alias + elif len(aliases) > 1: + __log.error("GapFiller configuration found inconsistent '{}' (to many aliases?)".format(el[3:])) + groupedByType[collType].append( collName ) for collType, collNameList in six.iteritems (groupedByType): -- GitLab From 3c929e09ff9a526c14b6cde8421036f0d61b6e05 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Wed, 22 Jul 2020 00:45:28 +0200 Subject: [PATCH 083/459] bring most of athenaprivate1//merge_requests/11783 in master --- .../xAODCaloEvent/CaloClusterContainerFwd.h | 3 +-- .../xAODCaloEvent/versions/CaloClusterContainer_v1.h | 10 +--------- .../xAODCaloEvent/versions/CaloCluster_v1.h | 7 +++++++ Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h | 4 ++-- .../xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h | 7 +++---- Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h | 7 +++---- .../xAODEgamma/versions/EgammaContainer_v1.h | 4 ---- Event/xAOD/xAODEgamma/xAODEgamma/versions/Egamma_v1.h | 9 +++++++-- .../xAODEgamma/versions/ElectronContainer_v1.h | 6 +----- .../xAOD/xAODEgamma/xAODEgamma/versions/Electron_v1.h | 9 ++++++--- .../xAODEgamma/versions/PhotonContainer_v1.h | 7 +------ Event/xAOD/xAODEgamma/xAODEgamma/versions/Photon_v1.h | 10 +++++++--- .../xAODTracking/NeutralParticleContainerFwd.h | 4 ++-- .../xAODTracking/TrackParticleContainerFwd.h | 7 +++---- .../versions/NeutralParticleContainer_v1.h | 6 +----- .../xAODTracking/versions/NeutralParticle_v1.h | 5 +++++ .../xAODTracking/versions/TrackParticleContainer_v1.h | 6 +----- .../xAODTracking/versions/TrackParticle_v1.h | 6 +++++- 18 files changed, 56 insertions(+), 61 deletions(-) diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h index 3ff64a19080..5e17d9da0a2 100644 --- a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h +++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id$ #ifndef XAODCALOEVENT_CALOCLUSTERCONTAINERFWD_V1_H #define XAODCALOEVENT_CALOCLUSTERCONTAINERFWD_V1_H diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloClusterContainer_v1.h b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloClusterContainer_v1.h index 6d99188d328..83492d94419 100644 --- a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloClusterContainer_v1.h +++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloClusterContainer_v1.h @@ -1,29 +1,21 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id: CaloClusterContainer_v1.h 783594 2016-11-11 05:03:25Z ssnyder $ #ifndef XAODCALOEVENT_VERSIONS_CALOCLUSTERCONTAINER_V1_H #define XAODCALOEVENT_VERSIONS_CALOCLUSTERCONTAINER_V1_H // EDM include(s): #include "AthContainers/DataVector.h" #include "xAODBase/IParticleContainer.h" - // Local include(s): #include "xAODCaloEvent/versions/CaloCluster_v1.h" -#include "xAODCaloEvent/CaloClusterContainerFwd.h" - -// Finish declaration of IParticle as a base class of CaloCluster_v1: -DATAVECTOR_BASE_FIN( xAOD::CaloCluster_v1, xAOD::IParticle ); namespace xAOD { /// Define the cluster container as a simple DataVector typedef DataVector< CaloCluster_v1 > CaloClusterContainer_v1; } - - #endif // XAODCALOEVENT_VERSIONS_CALOCLUSTERCONTAINER_V1_H diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloCluster_v1.h b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloCluster_v1.h index 228729201e3..8df01154389 100644 --- a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloCluster_v1.h +++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloCluster_v1.h @@ -32,6 +32,9 @@ extern "C" { // ROOT include(s): #include "Math/Vector4D.h" +//Already include the DataVector specialization for this type +#include "xAODCaloEvent/CaloClusterContainerFwd.h" + // Declare a dummy CaloClusterCellLink definition for standalone compilation: #if defined(GENERATIONBASE) || defined(SIMULATIONBASE) || defined(XAOD_ANALYSIS) class CaloClusterCellLink {}; @@ -795,4 +798,8 @@ namespace xAOD { } // namespace xAOD +// Finish declaration of IParticle as a base class of CaloCluster_v1: +DATAVECTOR_BASE_FIN( xAOD::CaloCluster_v1, xAOD::IParticle ); + + #endif // XAODCALOEVENT_VERSIONS_CALOCLUSTER_V1_H diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h b/Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h index a2fa3dc3bfe..4d9502b3f8b 100644 --- a/Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h +++ b/Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h @@ -12,10 +12,10 @@ #include "xAODBase/IParticleContainer.h" #include "xAODEgamma/EgammaFwd.h" -DATAVECTOR_BASE_FWD( xAOD::Egamma, xAOD::IParticle); +DATAVECTOR_BASE_FWD( xAOD::Egamma_v1, xAOD::IParticle); namespace xAOD { /// Definition of the current "egamma container version" - typedef DataVector<Egamma > EgammaContainer; + typedef DataVector<Egamma_v1> EgammaContainer; } #endif // XAODEGAMMA_EGAMMACONTAINERFWD_H diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h b/Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h index f2ea470e778..600e208470e 100644 --- a/Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h +++ b/Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id: ElectronContainerFwd.h 644948 2015-02-07 01:33:06Z christos $ #ifndef XAODEGAMMA_ELECTRONCONTAINERFWD_H #define XAODEGAMMA_ELECTRONCONTAINERFWD_H @@ -12,10 +11,10 @@ #include "xAODEgamma/ElectronFwd.h" #include "xAODEgamma/EgammaContainerFwd.h" -DATAVECTOR_BASE_FWD( xAOD::Electron, xAOD::Egamma ); +DATAVECTOR_BASE_FWD( xAOD::Electron_v1, xAOD::Egamma ); namespace xAOD { /// The container is a simple typedef for now - typedef DataVector< xAOD::Electron > ElectronContainer; + typedef DataVector< xAOD::Electron_v1> ElectronContainer; } diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h b/Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h index 17dfa03ced7..36ac8444b74 100644 --- a/Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h +++ b/Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id: PhotonContainerFwd.h 644948 2015-02-07 01:33:06Z christos $ #ifndef XAODEGAMMA_PHOTONCONTAINERFWD_H #define XAODEGAMMA_PHOTONCONTAINERFWD_H @@ -12,10 +11,10 @@ #include "xAODEgamma/PhotonFwd.h" #include "xAODEgamma/EgammaContainerFwd.h" -DATAVECTOR_BASE_FWD( xAOD::Photon, xAOD::Egamma ); +DATAVECTOR_BASE_FWD( xAOD::Photon_v1, xAOD::Egamma ); namespace xAOD { /// The container is a simple typedef for now - typedef DataVector< xAOD::Photon > PhotonContainer; + typedef DataVector< xAOD::Photon_v1 > PhotonContainer; } diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/versions/EgammaContainer_v1.h b/Event/xAOD/xAODEgamma/xAODEgamma/versions/EgammaContainer_v1.h index a979e2ca3a6..c3237658818 100644 --- a/Event/xAOD/xAODEgamma/xAODEgamma/versions/EgammaContainer_v1.h +++ b/Event/xAOD/xAODEgamma/xAODEgamma/versions/EgammaContainer_v1.h @@ -11,13 +11,9 @@ // Core include(s): #include "AthContainers/DataVector.h" #include "xAODBase/IParticleContainer.h" - // Local include(s): #include "xAODEgamma/versions/Egamma_v1.h" -#include "xAODEgamma/EgammaContainerFwd.h" -//Need that to compler the DATAVECTOR_BASE_FWD -template struct DataVector_detail::DVLEltBaseInit< xAOD::Egamma_v1>; namespace xAOD { /// The container is a simple typedef for now typedef DataVector< xAOD::Egamma_v1 > EgammaContainer_v1; diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/versions/Egamma_v1.h b/Event/xAOD/xAODEgamma/xAODEgamma/versions/Egamma_v1.h index 8ae00720158..f0d1f4724d0 100644 --- a/Event/xAOD/xAODEgamma/xAODEgamma/versions/Egamma_v1.h +++ b/Event/xAOD/xAODEgamma/xAODEgamma/versions/Egamma_v1.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id: Egamma_v1.h 788131 2016-12-05 16:24:11Z christos $ #ifndef XAODEGAMMA_VERSIONS_EGAMMA_V1_H #define XAODEGAMMA_VERSIONS_EGAMMA_V1_H @@ -36,6 +35,10 @@ // ROOT include(s): #include "Math/Vector4D.h" +//Already include the DataVector specialization for this type +#include "xAODEgamma/EgammaContainerFwd.h" + + namespace xAOD { /// @class xAOD::Egamma @@ -415,5 +418,7 @@ namespace xAOD { } // namespace xAOD +//Finish declaration of IParticle as a base class of Egamma +DATAVECTOR_BASE_FIN(xAOD::Egamma_v1, xAOD::IParticle); #endif // XAODEGAMMA_VERSIONS_EGAMMA_V1_H diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/versions/ElectronContainer_v1.h b/Event/xAOD/xAODEgamma/xAODEgamma/versions/ElectronContainer_v1.h index 1790d455fa4..d9031324023 100644 --- a/Event/xAOD/xAODEgamma/xAODEgamma/versions/ElectronContainer_v1.h +++ b/Event/xAOD/xAODEgamma/xAODEgamma/versions/ElectronContainer_v1.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id: ElectronContainer_v1.h 644948 2015-02-07 01:33:06Z christos $ #ifndef XAODEGAMMA_VERSIONS_ELECTRONCONTAINER_V1_H #define XAODEGAMMA_VERSIONS_ELECTRONCONTAINER_V1_H @@ -14,10 +13,7 @@ // Local include(s): #include "xAODEgamma/versions/Electron_v1.h" #include "xAODEgamma/versions/EgammaContainer_v1.h" -#include "xAODEgamma/ElectronContainerFwd.h" -//Need that to compler the DATAVECTOR_BASE_FWD -template struct DataVector_detail::DVLEltBaseInit< xAOD::Electron_v1>; namespace xAOD { /// The container is a simple typedef for now diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/versions/Electron_v1.h b/Event/xAOD/xAODEgamma/xAODEgamma/versions/Electron_v1.h index f3a6987423f..5a8c4afd76b 100644 --- a/Event/xAOD/xAODEgamma/xAODEgamma/versions/Electron_v1.h +++ b/Event/xAOD/xAODEgamma/xAODEgamma/versions/Electron_v1.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id: Electron_v1.h 636327 2014-12-16 16:34:24Z christos $ #ifndef XAODEGAMMA_VERSIONS_ELECTRON_V1_H #define XAODEGAMMA_VERSIONS_ELECTRON_V1_H @@ -20,6 +19,9 @@ #include "xAODTracking/TrackParticle.h" #include "xAODTracking/TrackParticleContainer.h" +//Already include the DataVector specialization for this type +#include "xAODEgamma/ElectronContainerFwd.h" + namespace xAOD { /// @class xAOD::Electron @@ -131,7 +133,8 @@ namespace xAOD { }; // Electron Class }// xAOD namespace - +//Finish declaration of Egamma as a base class of Electron +DATAVECTOR_BASE_FIN(xAOD::Electron_v1, xAOD::Egamma); #endif // XAODEGAMMA_VERSIONS_ELECTRON_V1_H diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/versions/PhotonContainer_v1.h b/Event/xAOD/xAODEgamma/xAODEgamma/versions/PhotonContainer_v1.h index bd0ce52c3a9..eed00ac5db5 100644 --- a/Event/xAOD/xAODEgamma/xAODEgamma/versions/PhotonContainer_v1.h +++ b/Event/xAOD/xAODEgamma/xAODEgamma/versions/PhotonContainer_v1.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id: PhotonContainer_v1.h 644948 2015-02-07 01:33:06Z christos $ #ifndef XAODEGAMMA_VERSIONS_PHOTONCONTAINER_V1_H #define XAODEGAMMA_VERSIONS_PHOTONCONTAINER_V1_H @@ -14,10 +13,6 @@ // Local include(s): #include "xAODEgamma/versions/Photon_v1.h" #include "xAODEgamma/versions/EgammaContainer_v1.h" -#include "xAODEgamma/PhotonContainerFwd.h" - -//Need that to compler the DATAVECTOR_BASE_FWD -template struct DataVector_detail::DVLEltBaseInit< xAOD::Photon_v1>; namespace xAOD { /// The container is a simple typedef for now diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/versions/Photon_v1.h b/Event/xAOD/xAODEgamma/xAODEgamma/versions/Photon_v1.h index d9338c8be41..54095fa9796 100644 --- a/Event/xAOD/xAODEgamma/xAODEgamma/versions/Photon_v1.h +++ b/Event/xAOD/xAODEgamma/xAODEgamma/versions/Photon_v1.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id: Photon_v1.h 667341 2015-05-15 14:39:34Z christos $ #ifndef XAODEGAMMA_VERSIONS_PHOTON_V1_H #define XAODEGAMMA_VERSIONS_PHOTON_V1_H @@ -20,6 +19,10 @@ #include "xAODEgamma/versions/Egamma_v1.h" #include "xAODEgamma/PhotonxAODHelpers.h" +//Already include the DataVector specialization for this type +#include "xAODEgamma/PhotonContainerFwd.h" + + namespace xAOD { /// @class xAOD::Photon @@ -119,5 +122,6 @@ namespace xAOD { }// xAOD namespace - +//Finish declaration of Egamma as base class of Photon_v1 +DATAVECTOR_BASE_FIN(xAOD::Photon_v1, xAOD::Egamma); #endif // XAODEGAMMA_VERSIONS_PHOTON_V1_H diff --git a/Event/xAOD/xAODTracking/xAODTracking/NeutralParticleContainerFwd.h b/Event/xAOD/xAODTracking/xAODTracking/NeutralParticleContainerFwd.h index 0c8bef3b2f3..e56d9bd5072 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/NeutralParticleContainerFwd.h +++ b/Event/xAOD/xAODTracking/xAODTracking/NeutralParticleContainerFwd.h @@ -18,10 +18,10 @@ #include "xAODTracking/NeutralParticleFwd.h" // Declare that this is a vector of IParticle-derived objects -DATAVECTOR_BASE_FWD( xAOD::NeutralParticle, xAOD::IParticle ); +DATAVECTOR_BASE_FWD( xAOD::NeutralParticle_v1, xAOD::IParticle ); namespace xAOD { /// Provide a forward declaration for NeutralParticleContainer - typedef DataVector< NeutralParticle > NeutralParticleContainer; + typedef DataVector< NeutralParticle_v1> NeutralParticleContainer; } #endif // XAODTRACKING_NEUTRALPARTICLECONTAINERFWD_H diff --git a/Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainerFwd.h b/Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainerFwd.h index d50a2f10673..ff2ff11be21 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainerFwd.h +++ b/Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainerFwd.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id$ #ifndef XAODTRACKING_TRACKPARTICLECONTAINERFWD_H #define XAODTRACKING_TRACKPARTICLECONTAINERFWD_H @@ -20,10 +19,10 @@ // Declare that this is a vector of IParticle-derived objects -DATAVECTOR_BASE_FWD( xAOD::TrackParticle, xAOD::IParticle ); +DATAVECTOR_BASE_FWD( xAOD::TrackParticle_v1, xAOD::IParticle ); namespace xAOD { /// Provide a forward declaration for TrackParticleContainer - typedef DataVector< TrackParticle > TrackParticleContainer; + typedef DataVector< TrackParticle_v1> TrackParticleContainer; } #endif // XAODTRACKING_TRACKPARTICLECONTAINERFWD_H diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticleContainer_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticleContainer_v1.h index 5cdea055abf..bcb67aca4bd 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticleContainer_v1.h +++ b/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticleContainer_v1.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef XAODTRACKING_VERSIONS_NEUTRALPARTICLECONTAINER_V1_H @@ -12,10 +12,6 @@ // Local include(s): #include "xAODTracking/versions/NeutralParticle_v1.h" -#include "xAODTracking/NeutralParticleContainerFwd.h" - -// To complete the DATAVECTOR_BASE macro: -template struct DataVector_detail::DVLEltBaseInit< xAOD::NeutralParticle_v1 >; namespace xAOD { /// The container is a simple typedef for now diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h index 7f7002a8573..e35519f6576 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h +++ b/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h @@ -28,6 +28,8 @@ // ROOT include(s): #include "Math/Vector4D.h" +//Already include the DataVector specialization for this type +#include "xAODTracking/NeutralParticleContainerFwd.h" namespace xAOD { /// Class describing a NeutralParticle. @@ -146,5 +148,8 @@ namespace xAOD { } // namespace xAOD +// Finish declaration of IParticle as a base class of NeutralParticle_v1 +DATAVECTOR_BASE_FIN( xAOD::NeutralParticle_v1, xAOD::IParticle ); + #endif // XAODTRACKING_VERSIONS_NEUTRALPARTICLE_V1_H diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticleContainer_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticleContainer_v1.h index d03a53c4c07..b4b8543b370 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticleContainer_v1.h +++ b/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticleContainer_v1.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef XAODTRACKING_VERSIONS_TRACKPARTICLECONTAINER_V1_H @@ -12,10 +12,6 @@ // Local include(s): #include "xAODTracking/versions/TrackParticle_v1.h" -#include "xAODTracking/TrackParticleContainerFwd.h" - -// To complete the DATAVECTOR_BASE macro: -template struct DataVector_detail::DVLEltBaseInit< xAOD::TrackParticle_v1 >; namespace xAOD { /// The container is a simple typedef for now diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticle_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticle_v1.h index 1332801c9be..b2b0a0c24c0 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticle_v1.h +++ b/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticle_v1.h @@ -1,7 +1,7 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef XAODTRACKING_VERSIONS_TRACKPARTICLE_V1_H @@ -31,6 +31,8 @@ extern "C" { // ROOT include(s): #include "Math/Vector4D.h" +//Already include the DataVector specialization for this type +#include "xAODTracking/TrackParticleContainerFwd.h" namespace xAOD { /// Class describing a TrackParticle. @@ -348,5 +350,7 @@ private: } // namespace xAOD +// Finish declaration of IParticle as a base class of TrackParticle_v1 +DATAVECTOR_BASE_FIN( xAOD::TrackParticle_v1, xAOD::IParticle ); #endif // XAODTRACKING_VERSIONS_TrackParticle_v1_H -- GitLab From b032400a1298509530ee982b3acd415ccd949e4b Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Wed, 22 Jul 2020 05:06:37 +0200 Subject: [PATCH 084/459] ART test for DQ on cosmics, and fixes to make it succeed --- .../python/AllConfigFlags.py | 3 +- .../AthenaMonitoring/python/DQConfigFlags.py | 16 ++-- .../test/test_run3dq_r22_esd_cosmics.sh | 21 +++++ .../src/MuonTrackMonitorAlgorithm.cxx | 6 +- .../python/JetMonitoringStandard.py | 23 +++-- .../python/METMonitorAlgorithm.py | 94 ++++++++++--------- .../python/TileJetMonitorAlgorithm.py | 2 +- 7 files changed, 100 insertions(+), 65 deletions(-) create mode 100755 Control/AthenaMonitoring/test/test_run3dq_r22_esd_cosmics.sh diff --git a/Control/AthenaConfiguration/python/AllConfigFlags.py b/Control/AthenaConfiguration/python/AllConfigFlags.py index 32c87029a88..0bd90c5e1a8 100644 --- a/Control/AthenaConfiguration/python/AllConfigFlags.py +++ b/Control/AthenaConfiguration/python/AllConfigFlags.py @@ -196,9 +196,8 @@ def _createCfgFlags(): _addFlagsCategory(acf,"BTagging",__btagging, 'BTagging') def __dq(): - from AthenaMonitoring.DQConfigFlags import createDQConfigFlags, createComplexDQConfigFlags + from AthenaMonitoring.DQConfigFlags import createDQConfigFlags dqf = createDQConfigFlags() - dqf.join( createComplexDQConfigFlags() ) return dqf _addFlagsCategory(acf, "DQ", __dq, 'AthenaMonitoring' ) diff --git a/Control/AthenaMonitoring/python/DQConfigFlags.py b/Control/AthenaMonitoring/python/DQConfigFlags.py index bf7157de5b3..08ce9be8d9a 100644 --- a/Control/AthenaMonitoring/python/DQConfigFlags.py +++ b/Control/AthenaMonitoring/python/DQConfigFlags.py @@ -34,9 +34,17 @@ def createDQConfigFlags(): # temp thing for steering from inside old-style ... acf.addFlag('DQ.isReallyOldStyle', False) + # computed + acf.addFlag('DQ.Environment', getEnvironment ) + acf.addFlag('DQ.DataType', getDataType ) + # steering ... for flag in _steeringFlags + _lowLevelSteeringFlags: - acf.addFlag('DQ.Steering.' + flag, True) + arg = True + if flag == 'doJetTagMon': + arg = lambda x: x.DQ.DataType != 'cosmics' # noqa: E731 + acf.addFlag('DQ.Steering.' + flag, arg) + # HLT steering ... from PyUtils.moduleExists import moduleExists if moduleExists ('TrigHLTMonitoring'): @@ -44,12 +52,6 @@ def createDQConfigFlags(): acf.join(createHLTDQConfigFlags()) return acf -def createComplexDQConfigFlags(): - acf=AthConfigFlags() - acf.addFlag('DQ.Environment', getEnvironment ) - acf.addFlag('DQ.DataType', getDataType ) - return acf - def getDataType(flags): if flags.Input.isMC: return 'monteCarlo' diff --git a/Control/AthenaMonitoring/test/test_run3dq_r22_esd_cosmics.sh b/Control/AthenaMonitoring/test/test_run3dq_r22_esd_cosmics.sh new file mode 100755 index 00000000000..e329e982014 --- /dev/null +++ b/Control/AthenaMonitoring/test/test_run3dq_r22_esd_cosmics.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# art-description: ESD->HIST, R22 cosmics data ESD +# art-type: grid +# art-memory: 3072 +# art-include: master/Athena +# art-output: ExampleMonitorOutput.root +# art-output: log* + +art.py download Tier0ChainTests test_q220.sh +ESDFILE=(./ref-*/myESD.pool.root) +Run3DQTestingDriver.py 'Input.Files=["'${ESDFILE}'"]' DQ.Steering.doHLTMon=False > log.HIST_Creation 2>&1 + +echo "art-result: $? HIST_Creation" +rm -rf ref-* + +ArtPackage=$1 +ArtJobName=$2 +art.py download ${ArtPackage} ${ArtJobName} +REFFILE=(./ref-*/ExampleMonitorOutput.root) +hist_diff.sh ExampleMonitorOutput.root $REFFILE -x TIME_execute -i > log.HIST_Diff 2>&1 +echo "art-result: $? HIST_Diff" diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx index d18591933e2..732e53a50c5 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonTrackMonitoring/src/MuonTrackMonitorAlgorithm.cxx @@ -413,8 +413,10 @@ StatusCode MuonTrackMonitorAlgorithm::fillHistograms(const EventContext& ctx) co ATH_CHECK( analyseLowLevelMuonFeatures(*Muons, lumiBlockID) ); ATH_CHECK( analyseCombinedTracks(*Muons, lumiBlockID) ); - ATH_CHECK( analyseZBosonCandidates(*Muons, lumiBlockID) ); - ATH_CHECK( analyseJPsiCandidates(*Muons, lumiBlockID) ); + if (dataType() != DataType_t::cosmics) { + ATH_CHECK( analyseZBosonCandidates(*Muons, lumiBlockID) ); + ATH_CHECK( analyseJPsiCandidates(*Muons, lumiBlockID) ); + } return StatusCode::SUCCESS; } diff --git a/Reconstruction/Jet/JetMonitoring/python/JetMonitoringStandard.py b/Reconstruction/Jet/JetMonitoring/python/JetMonitoringStandard.py index 6a8d9200a30..c04cef28d22 100644 --- a/Reconstruction/Jet/JetMonitoring/python/JetMonitoringStandard.py +++ b/Reconstruction/Jet/JetMonitoring/python/JetMonitoringStandard.py @@ -63,11 +63,6 @@ commonHistoSpecs = [ ] ), - SelectSpec( 'highJVF', - '0.3<JVF[0]', # JVF is a vector<float> for each jets. Here we cut on the 0th entry of this vector - FillerTools = [ - "pt", - ] ), # Selecting jets passing the LooseBad selection from the JetCleaningTool. SelectSpec( 'LooseBadJets', 'LooseBad', # this is not in the form 'min<x<max', so it will be assumed 'LooseBad' is an entry existing in JetStandardHistoSpecs.knownSelector @@ -77,6 +72,15 @@ commonHistoSpecs = [ ] +# Separate these out because they cannot run in cosmics +jvfHistosSpec = [ + SelectSpec( 'highJVF', + '0.3<JVF[0]', # JVF is a vector<float> for each jets. Here we cut on the 0th entry of this vector + FillerTools = [ + "pt", + ] ), +] + topoHistosSpec = [ # histos common to all topo jets @@ -90,7 +94,7 @@ pflowHistosSpec = [ -def jetMonAlgConfig( jetName, truthJetName='', trigger=''): +def jetMonAlgConfig( jetName, inputFlags, truthJetName='', trigger=''): """returns a specification of a JetMonitoringAlg (in the form of a JetMonAlgSpec dictionnary). """ @@ -107,6 +111,9 @@ def jetMonAlgConfig( jetName, truthJetName='', trigger=''): # then add pre-defined lists as defined above : histoSpecs += commonHistoSpecs + if inputFlags.DQ.DataType != 'cosmics': + histoSpecs += jvfHistosSpec + if 'Topo' in jetName: histoSpecs += topoHistosSpec if 'PFlow' in jetName: @@ -145,9 +152,9 @@ def standardJetMonitoring(inputFlags): # create a list of JetMonitoringAlg specifications jetAlgConfs = [ # use the helper function defined above : - jetMonAlgConfig( "AntiKt4LCTopoJets", ), + jetMonAlgConfig( "AntiKt4LCTopoJets", inputFlags), #jetMonAlgConfig( "AntiKt4LCTopoJets", truthJetName="AntiKt4TruthJets"), #How can we make sure truth jets are available ?? - jetMonAlgConfig( "AntiKt4EMPFlowJets"), + jetMonAlgConfig( "AntiKt4EMPFlowJets", inputFlags), ] # schedule each JetMonitoringAlg by invoking the toAlg() methods of the config specification diff --git a/Reconstruction/MissingETMonitoring/python/METMonitorAlgorithm.py b/Reconstruction/MissingETMonitoring/python/METMonitorAlgorithm.py index d3aacf57fbf..934393e2f38 100644 --- a/Reconstruction/MissingETMonitoring/python/METMonitorAlgorithm.py +++ b/Reconstruction/MissingETMonitoring/python/METMonitorAlgorithm.py @@ -72,16 +72,16 @@ def METMonitoringConfig(inputFlags): for mets in met_types: defineHistograms(METRefFinal_MonAlg, group,helper,mets) + if inputFlags.DQ.DataType != 'cosmics': + METPflow_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_MonAlg') + pfmet_types = ["MET_PFlow","MET_PFlow_RefJet","MET_PFlow_Muon","MET_PFlow_RefEle","MET_PFlow_RefGamma","MET_PFlow_RefTau","MET_PFlow_PVSoftTrk"] + METPflow_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" + METPflow_MonAlg.metKeys = pfmet_types + METPflow_MonAlg.alltrigger = True - METPflow_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_MonAlg') - pfmet_types = ["MET_PFlow","MET_PFlow_RefJet","MET_PFlow_Muon","MET_PFlow_RefEle","MET_PFlow_RefGamma","MET_PFlow_RefTau","MET_PFlow_PVSoftTrk"] - METPflow_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" - METPflow_MonAlg.metKeys = pfmet_types - METPflow_MonAlg.alltrigger = True - - group = helper.addGroup(METPflow_MonAlg, "METMonitor", "MissingEt/AllTriggers/MET_AntiKt4EMPFlow/") - for mets in pfmet_types: - defineHistograms(METPflow_MonAlg, group,helper,mets) + group = helper.addGroup(METPflow_MonAlg, "METMonitor", "MissingEt/AllTriggers/MET_AntiKt4EMPFlow/") + for mets in pfmet_types: + defineHistograms(METPflow_MonAlg, group,helper,mets) METEMTopo_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METEMTopo_MonAlg') @@ -114,14 +114,15 @@ def METMonitoringConfig(inputFlags): for mets in met_types: defineHistograms(METRefFinal_XE30_MonAlg, group,helper,mets) - METPflow_XE30_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_XE30_MonAlg') - METPflow_XE30_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" - METPflow_XE30_MonAlg.metTotalKey="FinalTrk" - METPflow_XE30_MonAlg.metKeys = pfmet_types - METPflow_XE30_MonAlg.dotrigger = True - group = helper.addGroup(METPflow_XE30_MonAlg,"METMonitor","MissingEt/TrigXE30/MET_AntiKt4EMPflow/") - for mets in pfmet_types: - defineHistograms(METPflow_XE30_MonAlg, group,helper,mets) + if inputFlags.DQ.DataType != 'cosmics': + METPflow_XE30_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_XE30_MonAlg') + METPflow_XE30_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" + METPflow_XE30_MonAlg.metTotalKey="FinalTrk" + METPflow_XE30_MonAlg.metKeys = pfmet_types + METPflow_XE30_MonAlg.dotrigger = True + group = helper.addGroup(METPflow_XE30_MonAlg,"METMonitor","MissingEt/TrigXE30/MET_AntiKt4EMPflow/") + for mets in pfmet_types: + defineHistograms(METPflow_XE30_MonAlg, group,helper,mets) METCalo_XE30_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METCalo_XE30_MonAlg') METCalo_XE30_MonAlg.METCaloContainer="MET_Calo" @@ -152,14 +153,15 @@ def METMonitoringConfig(inputFlags): for mets in met_types: defineHistograms(METRefFinal_METCut_MonAlg, group,helper,mets) - METPflow_METCut_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_METCut_MonAlg') - METPflow_METCut_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" - METPflow_METCut_MonAlg.metKeys = pfmet_types - METPflow_METCut_MonAlg.dometcut = True - METPflow_METCut_MonAlg.metcut = 80 - group = helper.addGroup(METPflow_METCut_MonAlg,"METMonitor","MissingEt/CutMet80/MET_AntiKt4EMPflow/") - for mets in pfmet_types: - defineHistograms(METPflow_METCut_MonAlg, group,helper,mets) + if inputFlags.DQ.DataType != 'cosmics': + METPflow_METCut_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METPflow_METCut_MonAlg') + METPflow_METCut_MonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" + METPflow_METCut_MonAlg.metKeys = pfmet_types + METPflow_METCut_MonAlg.dometcut = True + METPflow_METCut_MonAlg.metcut = 80 + group = helper.addGroup(METPflow_METCut_MonAlg,"METMonitor","MissingEt/CutMet80/MET_AntiKt4EMPflow/") + for mets in pfmet_types: + defineHistograms(METPflow_METCut_MonAlg, group,helper,mets) METCalo_METCut_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METCalo_METCut_MonAlg') metcalo_types = [ "PEMB", "EMB", "PEME", "EME", "TILE", "HEC", "FCAL" ] @@ -200,15 +202,16 @@ def METMonitoringConfig(inputFlags): defineHistograms(JetCleaning_METMonAlg, JetCleaningGroup,helper,mets) - PflowJetCleaning_METMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'PflowJetCleaning_METMonAlg') - PflowJetCleaning_METMonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" - PflowJetCleaning_METMonAlg.metKeys = pfmet_types - PflowJetCleaning_METMonAlg.DoJetCleaning = True - PflowJetCleaning_METMonAlg.JetCleaningTool = jetCleaningTool - PflowJetCleaningGroup = helper.addGroup(PflowJetCleaning_METMonAlg,"METMonitor","MissingEt/Jetcleaning/MET_AntiKt4EMPflow/") - PflowJetCleaning_METMonAlg.JetContainerName = "AntiKt4EMPFlowJets" - for mets in pfmet_types: - defineHistograms(PflowJetCleaning_METMonAlg, PflowJetCleaningGroup,helper,mets) + if inputFlags.DQ.DataType != 'cosmics': + PflowJetCleaning_METMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'PflowJetCleaning_METMonAlg') + PflowJetCleaning_METMonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" + PflowJetCleaning_METMonAlg.metKeys = pfmet_types + PflowJetCleaning_METMonAlg.DoJetCleaning = True + PflowJetCleaning_METMonAlg.JetCleaningTool = jetCleaningTool + PflowJetCleaningGroup = helper.addGroup(PflowJetCleaning_METMonAlg,"METMonitor","MissingEt/Jetcleaning/MET_AntiKt4EMPflow/") + PflowJetCleaning_METMonAlg.JetContainerName = "AntiKt4EMPFlowJets" + for mets in pfmet_types: + defineHistograms(PflowJetCleaning_METMonAlg, PflowJetCleaningGroup,helper,mets) METCaloJetCleaning_MonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'METCaloJetCleaning_MonAlg') metcalo_types = [ "PEMB", "EMB", "PEME", "EME", "TILE", "HEC", "FCAL" ] @@ -248,17 +251,18 @@ def METMonitoringConfig(inputFlags): for mets in met_types: defineHistograms(BadJets_METMonAlg, BadJetsGroup,helper,mets) - BadPFJets_METMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'BadPFJets_METMonAlg') - BadPFJets_METMonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" - BadPFJets_METMonAlg.metKeys = pfmet_types - BadPFJets_METMonAlg.DoJetCleaning = True - BadPFJets_METMonAlg.alltrigger = True - BadPFJets_METMonAlg.DoBadJets = True - BadPFJets_METMonAlg.JetCleaningTool = jetCleaningTool - BadPFJets_METMonAlg.JetContainerName = "AntiKt4EMPFlowJets" - BadPFJetsGroup = helper.addGroup(BadPFJets_METMonAlg,"METMonitor","MissingEt/AllTriggers/BadJets/MET_AntiKt4EMPflow/") - for mets in pfmet_types: - defineHistograms(BadPFJets_METMonAlg, BadPFJetsGroup,helper,mets) + if inputFlags.DQ.DataType != 'cosmics': + BadPFJets_METMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'BadPFJets_METMonAlg') + BadPFJets_METMonAlg.METContainer="MET_Reference_AntiKt4EMPFlow" + BadPFJets_METMonAlg.metKeys = pfmet_types + BadPFJets_METMonAlg.DoJetCleaning = True + BadPFJets_METMonAlg.alltrigger = True + BadPFJets_METMonAlg.DoBadJets = True + BadPFJets_METMonAlg.JetCleaningTool = jetCleaningTool + BadPFJets_METMonAlg.JetContainerName = "AntiKt4EMPFlowJets" + BadPFJetsGroup = helper.addGroup(BadPFJets_METMonAlg,"METMonitor","MissingEt/AllTriggers/BadJets/MET_AntiKt4EMPflow/") + for mets in pfmet_types: + defineHistograms(BadPFJets_METMonAlg, BadPFJetsGroup,helper,mets) BadJets_CaloMETMonAlg = helper.addAlgorithm(CompFactory.METMonitoringAlg,'BadJets_CaloMETMonAlg') diff --git a/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py b/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py index 91b7ea9172d..9727e025035 100644 --- a/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py +++ b/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py @@ -50,7 +50,7 @@ def TileJetMonitoringConfig(flags, **kwargs): DoEnergyDiffHistograms = kwargs.get('DoEnergyDiffHistograms', tileJetMonAlg._descriptors['DoEnergyDiffHistograms'].default) - if not flags.DQ.DataType == 'heavyioncollision': + if not flags.DQ.DataType in ('heavyioncollisions', 'cosmics'): jvtTool = CompFactory.JetVertexTaggerTool() jetContainer = kwargs.get('JetContainer', tileJetMonAlg._descriptors['JetContainer'].default) -- GitLab From 399d9e139fc05b892dd4dae8f2d63f4d425fecb1 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Wed, 22 Jul 2020 10:59:45 +0100 Subject: [PATCH 085/459] Removed chain name property from JSON as it is duplicating the object key --- .../TrigConfData/TrigConfData/DataStructure.h | 3 +++ Trigger/TrigConfiguration/TrigConfData/src/DataStructure.cxx | 4 ++++ Trigger/TrigConfiguration/TrigConfData/src/HLTChain.cxx | 1 - Trigger/TrigConfiguration/TrigConfData/src/HLTMenu.cxx | 4 ++-- .../TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMenuJSON.py | 1 - .../TriggerCommon/TriggerMenuMT/scripts/menu_config_tests.py | 4 ++-- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Trigger/TrigConfiguration/TrigConfData/TrigConfData/DataStructure.h b/Trigger/TrigConfiguration/TrigConfData/TrigConfData/DataStructure.h index 4383771e111..40468452f28 100644 --- a/Trigger/TrigConfiguration/TrigConfData/TrigConfData/DataStructure.h +++ b/Trigger/TrigConfiguration/TrigConfData/TrigConfData/DataStructure.h @@ -60,6 +60,9 @@ namespace TrigConf { void setData(const ptree & data); void setData(ptree && data); + /** @brief Setting the configuration element name */ + void setName(const std::string& n); + /** A string that is the name of the class */ virtual std::string className() const; diff --git a/Trigger/TrigConfiguration/TrigConfData/src/DataStructure.cxx b/Trigger/TrigConfiguration/TrigConfData/src/DataStructure.cxx index 49b7bbe6897..0aef851fa60 100644 --- a/Trigger/TrigConfiguration/TrigConfData/src/DataStructure.cxx +++ b/Trigger/TrigConfiguration/TrigConfData/src/DataStructure.cxx @@ -46,6 +46,10 @@ TrigConf::DataStructure::setData(ptree&& data) update(); } +void TrigConf::DataStructure::setName(const std::string& n) { + m_name = n; +} + void TrigConf::DataStructure::clear() diff --git a/Trigger/TrigConfiguration/TrigConfData/src/HLTChain.cxx b/Trigger/TrigConfiguration/TrigConfData/src/HLTChain.cxx index 0a072f3e40e..bfeeab95645 100644 --- a/Trigger/TrigConfiguration/TrigConfData/src/HLTChain.cxx +++ b/Trigger/TrigConfiguration/TrigConfData/src/HLTChain.cxx @@ -19,7 +19,6 @@ TrigConf::Chain::update() if(! isInitialized() || empty() ) { return; } - m_name = getAttribute("name"); } TrigConf::Chain::~Chain() diff --git a/Trigger/TrigConfiguration/TrigConfData/src/HLTMenu.cxx b/Trigger/TrigConfiguration/TrigConfData/src/HLTMenu.cxx index 817ae1ee6f8..d4c72ae1d00 100644 --- a/Trigger/TrigConfiguration/TrigConfData/src/HLTMenu.cxx +++ b/Trigger/TrigConfiguration/TrigConfData/src/HLTMenu.cxx @@ -49,14 +49,14 @@ TrigConf::HLTMenu::setSMK(unsigned int smk) { TrigConf::HLTMenu::const_iterator TrigConf::HLTMenu::begin() const { - return {data().get_child("chains"), 0, [](auto & x){return Chain(x.second);}}; + return {data().get_child("chains"), 0, [](auto & x){auto chain = Chain(x.second); chain.setName(x.first); return chain; }}; } TrigConf::HLTMenu::const_iterator TrigConf::HLTMenu::end() const { auto & pt = data().get_child("chains"); - return { pt, pt.size(), [](auto & x){return Chain(x.second);} }; + return { pt, pt.size(), [](auto & x){return Chain(x.second);} }; // Shuld there be an option to make "invalid" chain in this case? } diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMenuJSON.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMenuJSON.py index 8e34146f6d1..dba04e5537a 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMenuJSON.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTMenuJSON.py @@ -109,7 +109,6 @@ def __generateJSON( chainDicts, chainConfigs, HLTAllSteps, menuName, fileName ): chainName = chain["chainName"] menuDict["chains"][chainName] = odict([ ("counter", chain["chainCounter"]), - ("name", chainName), ("nameHash", chain["chainNameHash"]), ("l1item", chain["L1item"]), ("l1thresholds", l1Thresholds), diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/menu_config_tests.py b/Trigger/TriggerCommon/TriggerMenuMT/scripts/menu_config_tests.py index b744da8dbc6..04ae8bc1e24 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/scripts/menu_config_tests.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/scripts/menu_config_tests.py @@ -34,7 +34,7 @@ class UniqueChainNames(MenuVerification): description="Chain names are unique") def run(self, config): - names = [chain["name"] for chain in config["chains"].values()] + names = config["chains"].keys() counts = Counter(names) self.failures = [chain for chain, count in counts.items() if count > 1] @@ -80,7 +80,7 @@ class StructuredChainNames(MenuVerification): def run(self, config): if self._trigger_level == TriggerLevel.HLT: - names = [chain["name"] for chain in config["chains"].values()] + names = config["chains"].keys() self.failures = [n for n in names if not self._name_matches_hlt_convention(n)] elif self._trigger_level == TriggerLevel.L1: -- GitLab From c68a0d35c23c48899a113dfe4df2a511c132ae9e Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Wed, 22 Jul 2020 11:09:43 +0100 Subject: [PATCH 086/459] Removed unnecessary comment --- Trigger/TrigConfiguration/TrigConfData/src/HLTMenu.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigConfiguration/TrigConfData/src/HLTMenu.cxx b/Trigger/TrigConfiguration/TrigConfData/src/HLTMenu.cxx index d4c72ae1d00..f75ab64a14e 100644 --- a/Trigger/TrigConfiguration/TrigConfData/src/HLTMenu.cxx +++ b/Trigger/TrigConfiguration/TrigConfData/src/HLTMenu.cxx @@ -56,7 +56,7 @@ TrigConf::HLTMenu::const_iterator TrigConf::HLTMenu::end() const { auto & pt = data().get_child("chains"); - return { pt, pt.size(), [](auto & x){return Chain(x.second);} }; // Shuld there be an option to make "invalid" chain in this case? + return { pt, pt.size(), [](auto & x){return Chain(x.second);} }; } -- GitLab From 290a30b43b327be37ab7363c41c5466c4a389760 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 21 Jul 2020 18:20:07 +0200 Subject: [PATCH 087/459] TrigT1TGC: Rename .hh files to .h --- .../TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h | 4 +-- .../{TGCArguments.hh => TGCArguments.h} | 0 .../TrigT1TGC/{TGCBIDOut.hh => TGCBIDOut.h} | 0 ...oardConnection.hh => TGCBoardConnection.h} | 2 +- ...ctionASDToPP.hh => TGCConnectionASDToPP.h} | 4 +-- ...ctionHPBToSL.hh => TGCConnectionHPBToSL.h} | 2 +- ...CConnectionInPP.hh => TGCConnectionInPP.h} | 4 +-- ...nectionPPToSB.hh => TGCConnectionPPToSB.h} | 2 +- ...nectionPPToSL.hh => TGCConnectionPPToSL.h} | 8 ++--- ...ctionSBToHPB.hh => TGCConnectionSBToHPB.h} | 4 +-- ...atabaseManager.hh => TGCDatabaseManager.h} | 8 ++--- .../{TGCDoubletSB.hh => TGCDoubletSB.h} | 2 +- .../TrigT1TGC/TGCEIFICoincidenceMap.h | 4 +-- ...ronicsSystem.hh => TGCElectronicsSystem.h} | 2 +- .../{TGCHighPtBoard.hh => TGCHighPtBoard.h} | 4 +-- ...CHighPtBoardOut.hh => TGCHighPtBoardOut.h} | 2 +- ...TGCHighPtChipOut.hh => TGCHighPtChipOut.h} | 2 +- .../{TGCHitPattern.hh => TGCHitPattern.h} | 2 +- Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCIndex.h | 2 +- .../TrigT1TGC/{TGCInnerSB.hh => TGCInnerSB.h} | 2 +- ...TrackletSlot.hh => TGCInnerTrackletSlot.h} | 2 +- ...Holder.hh => TGCInnerTrackletSlotHolder.h} | 4 +-- Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSW.h | 2 +- .../TrigT1TGC/TGCNSWCoincidenceMap.h | 2 +- .../{TGCNumbering.hh => TGCNumbering.h} | 0 .../{TGCPatchPanel.hh => TGCPatchPanel.h} | 8 ++--- ...TGCPatchPanelOut.hh => TGCPatchPanelOut.h} | 6 ++-- ...ncidenceMap.hh => TGCRPhiCoincidenceMap.h} | 2 +- ...ceMatrix.hh => TGCRPhiCoincidenceMatrix.h} | 6 ++-- ...ncidenceOut.hh => TGCRPhiCoincidenceOut.h} | 2 +- ...TGCSLPreSelector.hh => TGCSLPreSelector.h} | 2 +- ...reSelectorOut.hh => TGCSLPreSelectorOut.h} | 2 +- .../{TGCSLSelector.hh => TGCSLSelector.h} | 0 ...TGCSLSelectorOut.hh => TGCSLSelectorOut.h} | 0 ...TGCSSCController.hh => TGCSSCController.h} | 6 ++-- ...ControllerOut.hh => TGCSSCControllerOut.h} | 2 +- .../TrigT1TGC/{TGCSector.hh => TGCSector.h} | 32 +++++++++---------- .../{TGCSectorLogic.hh => TGCSectorLogic.h} | 26 +++++++-------- .../{TGCSlaveBoard.hh => TGCSlaveBoard.h} | 12 +++---- ...TGCSlaveBoardOut.hh => TGCSlaveBoardOut.h} | 2 +- ...CStripDoubletSB.hh => TGCStripDoubletSB.h} | 2 +- ...ipHighPtBoard.hh => TGCStripHighPtBoard.h} | 12 +++---- ...CStripTripletSB.hh => TGCStripTripletSB.h} | 2 +- ...idenceMap.hh => TGCTileMuCoincidenceMap.h} | 2 +- ...TGCTimingManager.hh => TGCTimingManager.h} | 2 +- ...TGCWireDoubletSB.hh => TGCWireDoubletSB.h} | 2 +- ...ireHighPtBoard.hh => TGCWireHighPtBoard.h} | 2 +- ...TGCWireTripletSB.hh => TGCWireTripletSB.h} | 2 +- .../TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx | 18 +++++------ Trigger/TrigT1/TrigT1TGC/src/NSWTrigOut.cxx | 2 +- Trigger/TrigT1/TrigT1TGC/src/TGCArguments.cxx | 2 +- Trigger/TrigT1/TrigT1TGC/src/TGCBIDOut.cxx | 2 +- .../TrigT1TGC/src/TGCBoardConnection.cxx | 2 +- .../TrigT1TGC/src/TGCConnectionASDToPP.cxx | 6 ++-- .../TrigT1TGC/src/TGCConnectionHPBToSL.cxx | 4 +-- .../TrigT1TGC/src/TGCConnectionInPP.cxx | 6 ++-- .../TrigT1TGC/src/TGCConnectionPPToSB.cxx | 4 +-- .../TrigT1TGC/src/TGCConnectionPPToSL.cxx | 4 +-- .../TrigT1TGC/src/TGCConnectionSBToHPB.cxx | 4 +-- .../TrigT1TGC/src/TGCDatabaseManager.cxx | 14 ++++---- Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx | 8 ++--- .../TrigT1TGC/src/TGCEIFICoincidenceMap.cxx | 2 +- .../TrigT1TGC/src/TGCElectronicsSystem.cxx | 6 ++-- .../TrigT1/TrigT1TGC/src/TGCHighPtBoard.cxx | 6 ++-- .../TrigT1TGC/src/TGCHighPtBoardOut.cxx | 2 +- .../TrigT1/TrigT1TGC/src/TGCHighPtChipOut.cxx | 4 +-- .../TrigT1/TrigT1TGC/src/TGCHitPattern.cxx | 2 +- Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx | 2 +- .../TrigT1TGC/src/TGCInnerTrackletSlot.cxx | 2 +- .../src/TGCInnerTrackletSlotHolder.cxx | 2 +- .../TrigT1TGC/src/TGCNSWCoincidenceMap.cxx | 4 +-- .../TrigT1/TrigT1TGC/src/TGCPatchPanel.cxx | 12 +++---- .../TrigT1/TrigT1TGC/src/TGCPatchPanelOut.cxx | 6 ++-- .../TrigT1TGC/src/TGCRPhiCoincidenceMap.cxx | 4 +-- .../src/TGCRPhiCoincidenceMatrix.cxx | 8 ++--- .../TrigT1TGC/src/TGCRPhiCoincidenceOut.cxx | 2 +- .../TrigT1/TrigT1TGC/src/TGCSLPreSelector.cxx | 8 ++--- .../TrigT1TGC/src/TGCSLPreSelectorOut.cxx | 2 +- .../TrigT1/TrigT1TGC/src/TGCSLSelector.cxx | 8 ++--- .../TrigT1/TrigT1TGC/src/TGCSLSelectorOut.cxx | 2 +- .../TrigT1/TrigT1TGC/src/TGCSSCController.cxx | 10 +++--- .../TrigT1TGC/src/TGCSSCControllerOut.cxx | 2 +- Trigger/TrigT1/TrigT1TGC/src/TGCSector.cxx | 4 +-- .../TrigT1/TrigT1TGC/src/TGCSectorLogic.cxx | 10 +++--- .../TrigT1/TrigT1TGC/src/TGCSlaveBoard.cxx | 2 +- .../TrigT1/TrigT1TGC/src/TGCSlaveBoardOut.cxx | 4 +-- .../TrigT1TGC/src/TGCStripHighPtBoard.cxx | 2 +- .../TrigT1TGC/src/TGCStripTripletSB.cxx | 2 +- .../TrigT1TGC/src/TGCTileMuCoincidenceMap.cxx | 4 +-- .../TrigT1/TrigT1TGC/src/TGCTimingManager.cxx | 22 ++++++------- .../TrigT1/TrigT1TGC/src/TGCTrackSelector.cxx | 4 +-- .../TrigT1TGC/src/TGCWireHighPtBoard.cxx | 4 +-- .../TrigT1/TrigT1TGC/src/TGCWireTripletSB.cxx | 2 +- 93 files changed, 218 insertions(+), 218 deletions(-) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCArguments.hh => TGCArguments.h} (100%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCBIDOut.hh => TGCBIDOut.h} (100%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCBoardConnection.hh => TGCBoardConnection.h} (94%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCConnectionASDToPP.hh => TGCConnectionASDToPP.h} (90%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCConnectionHPBToSL.hh => TGCConnectionHPBToSL.h} (96%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCConnectionInPP.hh => TGCConnectionInPP.h} (94%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCConnectionPPToSB.hh => TGCConnectionPPToSB.h} (97%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCConnectionPPToSL.hh => TGCConnectionPPToSL.h} (83%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCConnectionSBToHPB.hh => TGCConnectionSBToHPB.h} (94%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCDatabaseManager.hh => TGCDatabaseManager.h} (96%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCDoubletSB.hh => TGCDoubletSB.h} (97%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCElectronicsSystem.hh => TGCElectronicsSystem.h} (98%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCHighPtBoard.hh => TGCHighPtBoard.h} (97%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCHighPtBoardOut.hh => TGCHighPtBoardOut.h} (98%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCHighPtChipOut.hh => TGCHighPtChipOut.h} (98%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCHitPattern.hh => TGCHitPattern.h} (96%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCInnerSB.hh => TGCInnerSB.h} (91%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCInnerTrackletSlot.hh => TGCInnerTrackletSlot.h} (97%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCInnerTrackletSlotHolder.hh => TGCInnerTrackletSlotHolder.h} (95%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCNumbering.hh => TGCNumbering.h} (100%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCPatchPanel.hh => TGCPatchPanel.h} (94%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCPatchPanelOut.hh => TGCPatchPanelOut.h} (90%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCRPhiCoincidenceMap.hh => TGCRPhiCoincidenceMap.h} (99%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCRPhiCoincidenceMatrix.hh => TGCRPhiCoincidenceMatrix.h} (91%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCRPhiCoincidenceOut.hh => TGCRPhiCoincidenceOut.h} (98%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCSLPreSelector.hh => TGCSLPreSelector.h} (94%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCSLPreSelectorOut.hh => TGCSLPreSelectorOut.h} (98%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCSLSelector.hh => TGCSLSelector.h} (100%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCSLSelectorOut.hh => TGCSLSelectorOut.h} (100%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCSSCController.hh => TGCSSCController.h} (90%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCSSCControllerOut.hh => TGCSSCControllerOut.h} (99%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCSector.hh => TGCSector.h} (86%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCSectorLogic.hh => TGCSectorLogic.h} (89%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCSlaveBoard.hh => TGCSlaveBoard.h} (90%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCSlaveBoardOut.hh => TGCSlaveBoardOut.h} (98%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCStripDoubletSB.hh => TGCStripDoubletSB.h} (92%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCStripHighPtBoard.hh => TGCStripHighPtBoard.h} (76%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCStripTripletSB.hh => TGCStripTripletSB.h} (92%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCTileMuCoincidenceMap.hh => TGCTileMuCoincidenceMap.h} (98%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCTimingManager.hh => TGCTimingManager.h} (93%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCWireDoubletSB.hh => TGCWireDoubletSB.h} (92%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCWireHighPtBoard.hh => TGCWireHighPtBoard.h} (94%) rename Trigger/TrigT1/TrigT1TGC/TrigT1TGC/{TGCWireTripletSB.hh => TGCWireTripletSB.h} (94%) diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h index 65428de780f..b3520d0b65d 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h @@ -22,7 +22,7 @@ #include "Identifier/Identifier.h" // EIFI-SL connection -#include "TrigT1TGC/TGCInnerTrackletSlotHolder.hh" +#include "TrigT1TGC/TGCInnerTrackletSlotHolder.h" #include "StoreGate/ReadCondHandle.h" #include "MuonCondSvc/TGCTriggerData.h" @@ -32,7 +32,7 @@ #include "MuonDigitContainer/TgcDigit.h" -#include "TrigT1TGC/TGCArguments.hh" +#include "TrigT1TGC/TGCArguments.h" #include "MuonDigitContainer/TgcDigitContainer.h" // Tile-Muon diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCArguments.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCArguments.h similarity index 100% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCArguments.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCArguments.h diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCBIDOut.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCBIDOut.h similarity index 100% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCBIDOut.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCBIDOut.h diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCBoardConnection.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCBoardConnection.h similarity index 94% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCBoardConnection.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCBoardConnection.h index 38c74ee6857..2bbc79b95ff 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCBoardConnection.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCBoardConnection.h @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -//$Id: TGCBoardConnection.hh,v 1.1.1.10 2003-11-03 10:18:17 mishino Exp $ +//$Id: TGCBoardConnection.h,v 1.1.1.10 2003-11-03 10:18:17 mishino Exp $ #ifndef TGCBoardConnection_hh #define TGCBoardConnection_hh diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionASDToPP.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionASDToPP.h similarity index 90% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionASDToPP.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionASDToPP.h index 19ad22adc75..4d48a2dea77 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionASDToPP.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionASDToPP.h @@ -2,11 +2,11 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -//$Id: TGCConnectionASDToPP.hh,v 1.1.1.10 2003-11-03 10:18:17 mishino Exp $ +//$Id: TGCConnectionASDToPP.h,v 1.1.1.10 2003-11-03 10:18:17 mishino Exp $ #ifndef TGCConnectionASDToPP_hh #define TGCConnectionASDToPP_hh -#include "TrigT1TGC/TGCNumbering.hh" +#include "TrigT1TGC/TGCNumbering.h" #include <fstream> #include <sstream> diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionHPBToSL.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionHPBToSL.h similarity index 96% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionHPBToSL.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionHPBToSL.h index b0754de2cf6..2516bbfb3ee 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionHPBToSL.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionHPBToSL.h @@ -6,7 +6,7 @@ #ifndef TGCConnectionHPBToSL_hh #define TGCConnectionHPBToSL_hh -#include "TrigT1TGC/TGCBoardConnection.hh" +#include "TrigT1TGC/TGCBoardConnection.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionInPP.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionInPP.h similarity index 94% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionInPP.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionInPP.h index fefd7acf208..964a7414142 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionInPP.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionInPP.h @@ -2,13 +2,13 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -//$Id: TGCConnectionInPP.hh,v 1.1.1.10 2003-11-03 10:18:17 mishino Exp $ +//$Id: TGCConnectionInPP.h,v 1.1.1.10 2003-11-03 10:18:17 mishino Exp $ // Table of connection between input channel and output channel // of PatchPanel. #ifndef TGCConnectionInPP_hh #define TGCConnectionInPP_hh -#include "TrigT1TGC/TGCPatchPanel.hh" +#include "TrigT1TGC/TGCPatchPanel.h" #include <iostream> #include <vector> diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionPPToSB.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionPPToSB.h similarity index 97% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionPPToSB.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionPPToSB.h index 4ba4b969d61..841e374ec64 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionPPToSB.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionPPToSB.h @@ -6,7 +6,7 @@ #ifndef TGCConnectionPPToSB_hh #define TGCConnectionPPToSB_hh -#include "TrigT1TGC/TGCBoardConnection.hh" +#include "TrigT1TGC/TGCBoardConnection.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionPPToSL.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionPPToSL.h similarity index 83% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionPPToSL.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionPPToSL.h index e6258cd1ebc..2978044f9b7 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionPPToSL.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionPPToSL.h @@ -5,10 +5,10 @@ // Table of connection between Patch Panel and Sector Logic. #ifndef TGCConnectionPPToSL_hh #define TGCConnectionPPToSL_hh -#include "TrigT1TGC/TGCNumbering.hh" -#include "TrigT1TGC/TGCConnectionPPToSB.hh" -#include "TrigT1TGC/TGCConnectionSBToHPB.hh" -#include "TrigT1TGC/TGCConnectionHPBToSL.hh" +#include "TrigT1TGC/TGCNumbering.h" +#include "TrigT1TGC/TGCConnectionPPToSB.h" +#include "TrigT1TGC/TGCConnectionSBToHPB.h" +#include "TrigT1TGC/TGCConnectionHPBToSL.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionSBToHPB.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionSBToHPB.h similarity index 94% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionSBToHPB.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionSBToHPB.h index dce4e88a5ad..1b56d668881 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionSBToHPB.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionSBToHPB.h @@ -6,8 +6,8 @@ #ifndef TGCConnectionSBToHPB_hh #define TGCConnectionSBToHPB_hh -#include "TrigT1TGC/TGCBoardConnection.hh" -#include "TrigT1TGC/TGCNumbering.hh" +#include "TrigT1TGC/TGCBoardConnection.h" +#include "TrigT1TGC/TGCNumbering.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h similarity index 96% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h index 99421858d10..37baea889f3 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h @@ -5,10 +5,10 @@ #ifndef TGCDatabaseManager_hh #define TGCDatabaseManager_hh -#include "TrigT1TGC/TGCArguments.hh" -#include "TrigT1TGC/TGCNumbering.hh" -#include "TrigT1TGC/TGCElectronicsSystem.hh" -#include "TrigT1TGC/TGCConnectionPPToSB.hh" +#include "TrigT1TGC/TGCArguments.h" +#include "TrigT1TGC/TGCNumbering.h" +#include "TrigT1TGC/TGCElectronicsSystem.h" +#include "TrigT1TGC/TGCConnectionPPToSB.h" #include "MuonCondSvc/TGCTriggerData.h" #include "StoreGate/ReadCondHandleKey.h" diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDoubletSB.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDoubletSB.h similarity index 97% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDoubletSB.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDoubletSB.h index 44dbb2d062d..25e4e0199a1 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDoubletSB.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDoubletSB.h @@ -5,7 +5,7 @@ #ifndef TGCDoubletSB_hh #define TGCDoubletSB_hh -#include "TrigT1TGC/TGCSlaveBoard.hh" +#include "TrigT1TGC/TGCSlaveBoard.h" #include <iostream> namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEIFICoincidenceMap.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEIFICoincidenceMap.h index f0c3bf5c7f2..b97cba650fe 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEIFICoincidenceMap.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEIFICoincidenceMap.h @@ -5,8 +5,8 @@ #ifndef TrigT1TGC_TGCEIFICoincidenceMap_hh #define TrigT1TGC_TGCEIFICoincidenceMap_hh -#include "TrigT1TGC/TGCInnerTrackletSlot.hh" -#include "TrigT1TGC/TGCArguments.hh" +#include "TrigT1TGC/TGCInnerTrackletSlot.h" +#include "TrigT1TGC/TGCArguments.h" #include "StoreGate/ReadCondHandle.h" #include "MuonCondSvc/TGCTriggerData.h" diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCElectronicsSystem.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCElectronicsSystem.h similarity index 98% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCElectronicsSystem.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCElectronicsSystem.h index 8c2a44c9baf..1e52dd01496 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCElectronicsSystem.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCElectronicsSystem.h @@ -5,7 +5,7 @@ #ifndef TGCElectronicsSystem_hh #define TGCElectronicsSystem_hh -#include "TrigT1TGC/TGCArguments.hh" +#include "TrigT1TGC/TGCArguments.h" #include "TrigT1TGC/TGCReadoutIndex.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtBoard.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtBoard.h similarity index 97% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtBoard.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtBoard.h index d740a46b2b7..caa417601b1 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtBoard.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtBoard.h @@ -5,8 +5,8 @@ #ifndef TGCHighPtBoard_hh #define TGCHighPtBoard_hh -#include "TrigT1TGC/TGCSlaveBoard.hh" -#include "TrigT1TGC/TGCConnectionHPBToSL.hh" +#include "TrigT1TGC/TGCSlaveBoard.h" +#include "TrigT1TGC/TGCConnectionHPBToSL.h" namespace LVL1TGCTrigger { class TGCSlaveBoardOut; diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtBoardOut.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtBoardOut.h similarity index 98% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtBoardOut.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtBoardOut.h index e5fed3ad805..2ef91fcd249 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtBoardOut.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtBoardOut.h @@ -5,7 +5,7 @@ #ifndef TGCHighPtBoardOut_hh #define TGCHighPtBoardOut_hh -#include "TrigT1TGC/TGCHighPtBoard.hh" +#include "TrigT1TGC/TGCHighPtBoard.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtChipOut.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtChipOut.h similarity index 98% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtChipOut.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtChipOut.h index d639e6469e6..09ae8799f3a 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtChipOut.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHighPtChipOut.h @@ -5,7 +5,7 @@ #ifndef TGCHighPtChipOut_hh #define TGCHighPtChipOut_hh -#include "TrigT1TGC/TGCHighPtBoard.hh" +#include "TrigT1TGC/TGCHighPtBoard.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHitPattern.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHitPattern.h similarity index 96% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHitPattern.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHitPattern.h index 2bb36af69df..7ad4d1dce78 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHitPattern.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHitPattern.h @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -//$Id: TGCHitPattern.hh,v 1.1.1.10 2003-11-03 10:18:17 mishino Exp $ +//$Id: TGCHitPattern.h,v 1.1.1.10 2003-11-03 10:18:17 mishino Exp $ #ifndef TGCHitPattern_hh #define TGCHitPattern_hh #include <fstream> diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCIndex.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCIndex.h index c7a8f6c05af..132e5a407ef 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCIndex.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCIndex.h @@ -13,7 +13,7 @@ #ifndef TGC_INDEX_H #define TGC_INDEX_H -#include "TrigT1TGC/TGCNumbering.hh" +#include "TrigT1TGC/TGCNumbering.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerSB.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerSB.h similarity index 91% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerSB.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerSB.h index f234f72cee8..cddc39f705c 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerSB.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerSB.h @@ -5,7 +5,7 @@ #ifndef TGCInnerSB_hh #define TGCInnerSB_hh -#include "TrigT1TGC/TGCSlaveBoard.hh" +#include "TrigT1TGC/TGCSlaveBoard.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlot.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlot.h similarity index 97% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlot.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlot.h index 03f325a6e7f..0940d5be714 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlot.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlot.h @@ -5,7 +5,7 @@ #ifndef TGCInnerTrackletSlot_hh #define TGCInnerTrackletSlot_hh -#include "TrigT1TGC/TGCArguments.hh" +#include "TrigT1TGC/TGCArguments.h" namespace LVL1TGCTrigger { class TGCInnerTrackletSlot { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlotHolder.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlotHolder.h similarity index 95% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlotHolder.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlotHolder.h index 22620501136..61ea51d0d1c 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlotHolder.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlotHolder.h @@ -5,8 +5,8 @@ #ifndef TGCInnerTrackletSlotHolder_hh #define TGCInnerTrackletSlotHolder_hh -#include "TrigT1TGC/TGCInnerTrackletSlot.hh" -#include "TrigT1TGC/TGCArguments.hh" +#include "TrigT1TGC/TGCInnerTrackletSlot.h" +#include "TrigT1TGC/TGCArguments.h" namespace LVL1TGCTrigger { // class TGCInnerTrackletSlot; diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSW.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSW.h index c8d4f6c3112..53d85d8edc4 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSW.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSW.h @@ -13,7 +13,7 @@ #include <vector> #include <memory> -#include "TrigT1TGC/TGCNumbering.hh" +#include "TrigT1TGC/TGCNumbering.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSWCoincidenceMap.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSWCoincidenceMap.h index 252ee0d8b3f..9e9d02f0ed4 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSWCoincidenceMap.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSWCoincidenceMap.h @@ -6,7 +6,7 @@ #include <string> #include "GaudiKernel/ToolHandle.h" -#include "TrigT1TGC/TGCNumbering.hh" +#include "TrigT1TGC/TGCNumbering.h" #include "AthenaKernel/MsgStreamMember.h" #include "GaudiKernel/MsgStream.h" diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNumbering.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNumbering.h similarity index 100% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNumbering.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNumbering.h diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanel.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanel.h similarity index 94% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanel.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanel.h index 62d1668d490..a78b0e33633 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanel.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanel.h @@ -2,13 +2,13 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -//$Id: TGCPatchPanel.hh,v 1.4 2008-08-10 11:36:44 isaya Exp $ +//$Id: TGCPatchPanel.h,v 1.4 2008-08-10 11:36:44 isaya Exp $ #ifndef TGCPatchPanel_hh #define TGCPatchPanel_hh -#include "TrigT1TGC/TGCArguments.hh" -#include "TrigT1TGC/TGCConnectionPPToSB.hh" -#include "TrigT1TGC/TGCNumbering.hh" +#include "TrigT1TGC/TGCArguments.h" +#include "TrigT1TGC/TGCConnectionPPToSB.h" +#include "TrigT1TGC/TGCNumbering.h" #include <fstream> #include <string> diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanelOut.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanelOut.h similarity index 90% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanelOut.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanelOut.h index c07e9273249..76818bfe765 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanelOut.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanelOut.h @@ -2,12 +2,12 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -//$Id: TGCPatchPanelOut.hh,v 1.1.1.10 2003-11-03 10:18:17 mishino Exp $ +//$Id: TGCPatchPanelOut.h,v 1.1.1.10 2003-11-03 10:18:17 mishino Exp $ #ifndef TGCPatchPanelOut_hh #define TGCPatchPanelOut_hh -#include "TrigT1TGC/TGCPatchPanel.hh" -#include "TrigT1TGC/TGCHitPattern.hh" +#include "TrigT1TGC/TGCPatchPanel.h" +#include "TrigT1TGC/TGCHitPattern.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMap.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMap.h similarity index 99% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMap.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMap.h index b5907d869bb..92538476936 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMap.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMap.h @@ -12,7 +12,7 @@ #include "GaudiKernel/ToolHandle.h" #include "StoreGate/ReadCondHandleKey.h" #include "MuonCondSvc/TGCTriggerData.h" -#include "TrigT1TGC/TGCArguments.hh" +#include "TrigT1TGC/TGCArguments.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMatrix.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMatrix.h similarity index 91% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMatrix.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMatrix.h index 382863e3eb3..cdee8a4c2e5 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMatrix.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMatrix.h @@ -5,9 +5,9 @@ #ifndef TGCRPhiCoincidenceMatrix_hh #define TGCRPhiCoincidenceMatrix_hh -#include "TrigT1TGC/TGCSSCControllerOut.hh" -#include "TrigT1TGC/TGCRPhiCoincidenceMap.hh" -#include "TrigT1TGC/TGCArguments.hh" +#include "TrigT1TGC/TGCSSCControllerOut.h" +#include "TrigT1TGC/TGCRPhiCoincidenceMap.h" +#include "TrigT1TGC/TGCArguments.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceOut.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceOut.h similarity index 98% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceOut.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceOut.h index 437f58edc8d..94a6a4e682b 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceOut.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceOut.h @@ -4,7 +4,7 @@ #ifndef TGCRPhiCoincidenceOut_hh #define TGCRPhiCoincidenceOut_hh -#include "TrigT1TGC/TGCRPhiCoincidenceMatrix.hh" +#include "TrigT1TGC/TGCRPhiCoincidenceMatrix.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLPreSelector.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLPreSelector.h similarity index 94% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLPreSelector.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLPreSelector.h index e43dbad57c6..bdf94a28ec7 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLPreSelector.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLPreSelector.h @@ -6,7 +6,7 @@ #define TGCSLPreSelector_hh class TGCSectorLogic; -#include "TrigT1TGC/TGCRPhiCoincidenceMatrix.hh" +#include "TrigT1TGC/TGCRPhiCoincidenceMatrix.h" namespace LVL1TGCTrigger { class TGCRPhiCoincidenceOut; diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLPreSelectorOut.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLPreSelectorOut.h similarity index 98% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLPreSelectorOut.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLPreSelectorOut.h index b4b8a50a82a..b22980599da 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLPreSelectorOut.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLPreSelectorOut.h @@ -5,7 +5,7 @@ #ifndef TGCSLPreSelectorOut_hh #define TGCSLPreSelectorOut_hh -#include "TrigT1TGC/TGCRPhiCoincidenceMatrix.hh" +#include "TrigT1TGC/TGCRPhiCoincidenceMatrix.h" namespace LVL1TGCTrigger { const int NCandidateInSLPreSelector = 2; diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLSelector.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLSelector.h similarity index 100% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLSelector.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLSelector.h diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLSelectorOut.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLSelectorOut.h similarity index 100% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLSelectorOut.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSLSelectorOut.h diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCController.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCController.h similarity index 90% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCController.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCController.h index 70c942c312e..88d1edc4021 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCController.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCController.h @@ -5,9 +5,9 @@ #ifndef TGCSSCController_hh #define TGCSSCController_hh -#include "TrigT1TGC/TGCHighPtChipOut.hh" -#include "TrigT1TGC/TGCSSCControllerOut.hh" -#include "TrigT1TGC/TGCArguments.hh" +#include "TrigT1TGC/TGCHighPtChipOut.h" +#include "TrigT1TGC/TGCSSCControllerOut.h" +#include "TrigT1TGC/TGCArguments.h" namespace LVL1TGCTrigger { class TGCSectorLogic; diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCControllerOut.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCControllerOut.h similarity index 99% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCControllerOut.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCControllerOut.h index 02d56162031..5ca9d898c08 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCControllerOut.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCControllerOut.h @@ -4,7 +4,7 @@ #ifndef TGCSSCControllerOut_hh #define TGCSSCControllerOut_hh -#include "TrigT1TGC/TGCNumbering.hh" +#include "TrigT1TGC/TGCNumbering.h" #include <iostream> namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSector.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSector.h similarity index 86% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSector.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSector.h index 233b38f3186..a4f0c795825 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSector.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSector.h @@ -5,30 +5,30 @@ #ifndef TGCSector_h #define TGCSector_h -#include "TrigT1TGC/TGCArguments.hh" -#include "TrigT1TGC/TGCDatabaseManager.hh" -#include "TrigT1TGC/TGCTimingManager.hh" +#include "TrigT1TGC/TGCArguments.h" +#include "TrigT1TGC/TGCDatabaseManager.h" +#include "TrigT1TGC/TGCTimingManager.h" #include "TrigT1TGC/TGCReadoutIndex.h" -#include "TrigT1TGC/TGCConnectionInPP.hh" -#include "TrigT1TGC/TGCConnectionPPToSL.hh" -#include "TrigT1TGC/TGCConnectionASDToPP.hh" -#include "TrigT1TGC/TGCRPhiCoincidenceMap.hh" +#include "TrigT1TGC/TGCConnectionInPP.h" +#include "TrigT1TGC/TGCConnectionPPToSL.h" +#include "TrigT1TGC/TGCConnectionASDToPP.h" +#include "TrigT1TGC/TGCRPhiCoincidenceMap.h" #include "TrigT1TGC/TGCASDOut.h" -#include "TrigT1TGC/TGCPatchPanel.hh" +#include "TrigT1TGC/TGCPatchPanel.h" -#include "TrigT1TGC/TGCWireDoubletSB.hh" -#include "TrigT1TGC/TGCStripDoubletSB.hh" -#include "TrigT1TGC/TGCWireTripletSB.hh" -#include "TrigT1TGC/TGCStripTripletSB.hh" -#include "TrigT1TGC/TGCInnerSB.hh" +#include "TrigT1TGC/TGCWireDoubletSB.h" +#include "TrigT1TGC/TGCStripDoubletSB.h" +#include "TrigT1TGC/TGCWireTripletSB.h" +#include "TrigT1TGC/TGCStripTripletSB.h" +#include "TrigT1TGC/TGCInnerSB.h" -#include "TrigT1TGC/TGCWireHighPtBoard.hh" -#include "TrigT1TGC/TGCStripHighPtBoard.hh" +#include "TrigT1TGC/TGCWireHighPtBoard.h" +#include "TrigT1TGC/TGCStripHighPtBoard.h" -#include "TrigT1TGC/TGCSectorLogic.hh" +#include "TrigT1TGC/TGCSectorLogic.h" #include "TrigT1TGC/TGCTMDB.h" #include "TrigT1TGC/TGCNSW.h" diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSectorLogic.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSectorLogic.h similarity index 89% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSectorLogic.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSectorLogic.h index 8de4d435ca4..36d19241636 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSectorLogic.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSectorLogic.h @@ -5,22 +5,22 @@ #ifndef TGGSectorLogic_hh #define TGGSectorLogic_hh -#include "TrigT1TGC/TGCArguments.hh" -#include "TrigT1TGC/TGCNumbering.hh" +#include "TrigT1TGC/TGCArguments.h" +#include "TrigT1TGC/TGCNumbering.h" #include "TrigT1TGC/TGCEvent.h" #include "TrigT1TGC/TGCReadoutIndex.h" #include "TrigT1TGC/TGCEIFICoincidenceMap.h" -#include "TrigT1TGC/TGCTileMuCoincidenceMap.hh" -#include "TrigT1TGC/TGCRPhiCoincidenceMap.hh" -#include "TrigT1TGC/TGCRPhiCoincidenceMatrix.hh" -#include "TrigT1TGC/TGCRPhiCoincidenceOut.hh" -#include "TrigT1TGC/TGCSSCController.hh" -#include "TrigT1TGC/TGCSSCControllerOut.hh" -#include "TrigT1TGC/TGCSLPreSelectorOut.hh" -#include "TrigT1TGC/TGCSLPreSelector.hh" -#include "TrigT1TGC/TGCSLSelector.hh" -#include "TrigT1TGC/TGCSLSelectorOut.hh" -#include "TrigT1TGC/TGCInnerTrackletSlotHolder.hh" +#include "TrigT1TGC/TGCTileMuCoincidenceMap.h" +#include "TrigT1TGC/TGCRPhiCoincidenceMap.h" +#include "TrigT1TGC/TGCRPhiCoincidenceMatrix.h" +#include "TrigT1TGC/TGCRPhiCoincidenceOut.h" +#include "TrigT1TGC/TGCSSCController.h" +#include "TrigT1TGC/TGCSSCControllerOut.h" +#include "TrigT1TGC/TGCSLPreSelectorOut.h" +#include "TrigT1TGC/TGCSLPreSelector.h" +#include "TrigT1TGC/TGCSLSelector.h" +#include "TrigT1TGC/TGCSLSelectorOut.h" +#include "TrigT1TGC/TGCInnerTrackletSlotHolder.h" //for Run3 #include "TrigT1TGC/TGCTrackSelector.h" diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoard.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoard.h similarity index 90% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoard.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoard.h index dca46e11503..24b6b0c8c11 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoard.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoard.h @@ -5,12 +5,12 @@ #ifndef TGCSlaveBoard_hh #define TGCSlaveBoard_hh -#include "TrigT1TGC/TGCArguments.hh" -#include "TrigT1TGC/TGCSlaveBoardOut.hh" -#include "TrigT1TGC/TGCPatchPanel.hh" -#include "TrigT1TGC/TGCPatchPanelOut.hh" -#include "TrigT1TGC/TGCHitPattern.hh" -#include "TrigT1TGC/TGCConnectionSBToHPB.hh" +#include "TrigT1TGC/TGCArguments.h" +#include "TrigT1TGC/TGCSlaveBoardOut.h" +#include "TrigT1TGC/TGCPatchPanel.h" +#include "TrigT1TGC/TGCPatchPanelOut.h" +#include "TrigT1TGC/TGCHitPattern.h" +#include "TrigT1TGC/TGCConnectionSBToHPB.h" #include <limits.h> #include <bitset> #include <iostream> diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoardOut.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoardOut.h similarity index 98% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoardOut.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoardOut.h index 95907b20692..b9f088f84cc 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoardOut.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoardOut.h @@ -4,7 +4,7 @@ #ifndef TGCSlaveBoardOut_hh #define TGCSlaveBoardOut_hh -#include "TrigT1TGC/TGCHitPattern.hh" +#include "TrigT1TGC/TGCHitPattern.h" #include <fstream> #include <iostream> diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripDoubletSB.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripDoubletSB.h similarity index 92% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripDoubletSB.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripDoubletSB.h index 8d50b00f460..334b1b67611 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripDoubletSB.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripDoubletSB.h @@ -5,7 +5,7 @@ #ifndef TGCStripDoubletSB_hh #define TGCStripDoubletSB_hh -#include "TrigT1TGC/TGCDoubletSB.hh" +#include "TrigT1TGC/TGCDoubletSB.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripHighPtBoard.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripHighPtBoard.h similarity index 76% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripHighPtBoard.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripHighPtBoard.h index 27be283a118..a7f6cdc821e 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripHighPtBoard.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripHighPtBoard.h @@ -5,12 +5,12 @@ #ifndef TGCStripHighPtBoard_hh #define TGCStripHighPtBoard_hh -#include "TrigT1TGC/TGCHighPtBoard.hh" -#include "TrigT1TGC/TGCDoubletSB.hh" -#include "TrigT1TGC/TGCHighPtBoardOut.hh" -#include "TrigT1TGC/TGCHighPtChipOut.hh" -#include "TrigT1TGC/TGCStripTripletSB.hh" -#include "TrigT1TGC/TGCSlaveBoardOut.hh" +#include "TrigT1TGC/TGCHighPtBoard.h" +#include "TrigT1TGC/TGCDoubletSB.h" +#include "TrigT1TGC/TGCHighPtBoardOut.h" +#include "TrigT1TGC/TGCHighPtChipOut.h" +#include "TrigT1TGC/TGCStripTripletSB.h" +#include "TrigT1TGC/TGCSlaveBoardOut.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripTripletSB.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripTripletSB.h similarity index 92% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripTripletSB.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripTripletSB.h index 17ac0862f0c..86b6fd333ab 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripTripletSB.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripTripletSB.h @@ -5,7 +5,7 @@ #ifndef TGCStripTripletSB_hh #define TGCStripTripletSB_hh -#include "TrigT1TGC/TGCSlaveBoard.hh" +#include "TrigT1TGC/TGCSlaveBoard.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTileMuCoincidenceMap.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTileMuCoincidenceMap.h similarity index 98% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTileMuCoincidenceMap.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTileMuCoincidenceMap.h index a3702b21de5..a2587360a9b 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTileMuCoincidenceMap.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTileMuCoincidenceMap.h @@ -12,7 +12,7 @@ #include "StoreGate/ReadCondHandle.h" #include "MuonCondSvc/TGCTriggerData.h" -#include "TrigT1TGC/TGCArguments.hh" +#include "TrigT1TGC/TGCArguments.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTimingManager.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTimingManager.h similarity index 93% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTimingManager.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTimingManager.h index 20a806640a7..f8455e5ad0d 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTimingManager.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTimingManager.h @@ -2,7 +2,7 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -//$Id: TGCTimingManager.hh,v 1.1.1.10 2003-11-03 10:18:18 mishino Exp $ +//$Id: TGCTimingManager.h,v 1.1.1.10 2003-11-03 10:18:18 mishino Exp $ #ifndef TGCTimingManager_hh #define TGCTimingManager_hh diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireDoubletSB.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireDoubletSB.h similarity index 92% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireDoubletSB.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireDoubletSB.h index d89b8f64199..f3941911a02 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireDoubletSB.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireDoubletSB.h @@ -4,7 +4,7 @@ #ifndef TGCWireDoubletSB_hh #define TGCWireDoubletSB_hh -#include "TrigT1TGC/TGCDoubletSB.hh" +#include "TrigT1TGC/TGCDoubletSB.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireHighPtBoard.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireHighPtBoard.h similarity index 94% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireHighPtBoard.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireHighPtBoard.h index ab0f0ce392d..e92347b72f7 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireHighPtBoard.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireHighPtBoard.h @@ -5,7 +5,7 @@ #ifndef TGCWireHighPtBoard_hh #define TGCWireHighPtBoard_hh -#include "TrigT1TGC/TGCHighPtBoard.hh" +#include "TrigT1TGC/TGCHighPtBoard.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireTripletSB.hh b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireTripletSB.h similarity index 94% rename from Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireTripletSB.hh rename to Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireTripletSB.h index e0fb05c3aa9..d39871ac353 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireTripletSB.hh +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireTripletSB.h @@ -5,7 +5,7 @@ #ifndef TGCWireTripletSB_hh #define TGCWireTripletSB_hh -#include "TrigT1TGC/TGCSlaveBoard.hh" +#include "TrigT1TGC/TGCSlaveBoard.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx b/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx index 8f9325a9968..3f293920bcc 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx @@ -12,15 +12,15 @@ #include "TrigT1TGC/TGCASDOut.h" #include "TrigT1TGC/TGCEvent.h" #include "TrigT1TGC/TGCReadoutIndex.h" -#include "TrigT1TGC/TGCSLSelectorOut.hh"// for Run2 -#include "TrigT1TGC/TGCTrackSelectorOut.h"// for Run3 -#include "TrigT1TGC/TGCElectronicsSystem.hh" -#include "TrigT1TGC/TGCTimingManager.hh" -#include "TrigT1TGC/TGCDatabaseManager.hh" -#include "TrigT1TGC/TGCSector.hh" -#include "TrigT1TGC/TGCNumbering.hh" +#include "TrigT1TGC/TGCSLSelectorOut.h" // for Run2 +#include "TrigT1TGC/TGCTrackSelectorOut.h" // for Run3 +#include "TrigT1TGC/TGCElectronicsSystem.h" +#include "TrigT1TGC/TGCTimingManager.h" +#include "TrigT1TGC/TGCDatabaseManager.h" +#include "TrigT1TGC/TGCSector.h" +#include "TrigT1TGC/TGCNumbering.h" #include "TrigT1TGC/TrigT1TGC_ClassDEF.h" -#include "TrigT1TGC/TGCNumbering.hh" +#include "TrigT1TGC/TGCNumbering.h" #include "TrigT1TGC/TGCTMDBOut.h" #include "TrigT1TGC/TGCNSW.h" @@ -1151,7 +1151,7 @@ namespace LVL1TGCTrigger { } //////////////////////////////////////////////// - // see TGCNumbering.hh + // see TGCNumbering.h int LVL1TGCTrigger::getLPTTypeInRawData(int type) { switch(type) { diff --git a/Trigger/TrigT1/TrigT1TGC/src/NSWTrigOut.cxx b/Trigger/TrigT1/TrigT1TGC/src/NSWTrigOut.cxx index 601b23d636a..250bd58b26f 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/NSWTrigOut.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/NSWTrigOut.cxx @@ -10,7 +10,7 @@ #include "TrigT1TGC/NSWTrigOut.h" -#include "TrigT1TGC/TGCArguments.hh" +#include "TrigT1TGC/TGCArguments.h" #include "AthenaBaseComps/AthMsgStreamMacros.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCArguments.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCArguments.cxx index 3c7f65000fa..1556c2e5c7d 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCArguments.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCArguments.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCArguments.hh" +#include "TrigT1TGC/TGCArguments.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCBIDOut.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCBIDOut.cxx index 465fb6607de..0b6fd8446b5 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCBIDOut.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCBIDOut.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCBIDOut.hh" +#include "TrigT1TGC/TGCBIDOut.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCBoardConnection.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCBoardConnection.cxx index 931554750d3..07f775424b4 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCBoardConnection.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCBoardConnection.cxx @@ -3,7 +3,7 @@ */ //$Id: TGCBoardConnection.cxx,v 1.3 2009-01-08 10:06:48 isaya Exp $ -#include "TrigT1TGC/TGCBoardConnection.hh" +#include "TrigT1TGC/TGCBoardConnection.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionASDToPP.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionASDToPP.cxx index 5420299bb2d..70ef1ce4b01 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionASDToPP.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionASDToPP.cxx @@ -8,9 +8,9 @@ #include <ctype.h> #include <string> -#include "TrigT1TGC/TGCConnectionASDToPP.hh" -#include "TrigT1TGC/TGCConnectionPPToSB.hh" -#include "TrigT1TGC/TGCDatabaseManager.hh" +#include "TrigT1TGC/TGCConnectionASDToPP.h" +#include "TrigT1TGC/TGCConnectionPPToSB.h" +#include "TrigT1TGC/TGCDatabaseManager.h" #include "PathResolver/PathResolver.h" diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionHPBToSL.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionHPBToSL.cxx index cce4a1ddbe7..3c527834156 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionHPBToSL.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionHPBToSL.cxx @@ -3,8 +3,8 @@ */ //$Id: TGCConnectionHPBToSL.cxx,v 1.2 2006-06-22 00:26:35 nkanaya Exp $ -#include "TrigT1TGC/TGCConnectionHPBToSL.hh" -#include "TrigT1TGC/TGCBoardConnection.hh" +#include "TrigT1TGC/TGCConnectionHPBToSL.h" +#include "TrigT1TGC/TGCBoardConnection.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionInPP.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionInPP.cxx index 00986f20746..e85a9e16877 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionInPP.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionInPP.cxx @@ -3,9 +3,9 @@ */ //$Id: TGCConnectionInPP.cxx,v 1.4 2009-03-20 17:48:53 isaya Exp $ -#include "TrigT1TGC/TGCConnectionInPP.hh" -#include "TrigT1TGC/TGCPatchPanel.hh" -#include "TrigT1TGC/TGCDatabaseManager.hh" +#include "TrigT1TGC/TGCConnectionInPP.h" +#include "TrigT1TGC/TGCPatchPanel.h" +#include "TrigT1TGC/TGCDatabaseManager.h" #include <iostream> #include <fstream> #include <sstream> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionPPToSB.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionPPToSB.cxx index 1daeebce971..d6c74cfc0fb 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionPPToSB.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionPPToSB.cxx @@ -3,8 +3,8 @@ */ //$Id: TGCConnectionPPToSB.cxx,v 1.2 2006-06-22 00:26:35 nkanaya Exp $ -#include "TrigT1TGC/TGCConnectionPPToSB.hh" -#include "TrigT1TGC/TGCBoardConnection.hh" +#include "TrigT1TGC/TGCConnectionPPToSB.h" +#include "TrigT1TGC/TGCBoardConnection.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionPPToSL.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionPPToSL.cxx index c59d1abeb00..e5171e3bfdc 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionPPToSL.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionPPToSL.cxx @@ -2,8 +2,8 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCConnectionPPToSL.hh" -#include "TrigT1TGC/TGCDatabaseManager.hh" +#include "TrigT1TGC/TGCConnectionPPToSL.h" +#include "TrigT1TGC/TGCDatabaseManager.h" #include <iostream> #include <fstream> #include <sstream> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionSBToHPB.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionSBToHPB.cxx index b9533a3affa..72aa50f01e2 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionSBToHPB.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionSBToHPB.cxx @@ -3,8 +3,8 @@ */ //$Id: TGCConnectionSBToHPB.cxx,v 1.3 2009-03-15 18:07:55 isaya Exp $ -#include "TrigT1TGC/TGCConnectionSBToHPB.hh" -#include "TrigT1TGC/TGCBoardConnection.hh" +#include "TrigT1TGC/TGCConnectionSBToHPB.h" +#include "TrigT1TGC/TGCBoardConnection.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCDatabaseManager.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCDatabaseManager.cxx index c19cec99763..c1082612908 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCDatabaseManager.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCDatabaseManager.cxx @@ -2,15 +2,15 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCDatabaseManager.hh" -#include "TrigT1TGC/TGCConnectionPPToSL.hh" -#include "TrigT1TGC/TGCRPhiCoincidenceMap.hh" +#include "TrigT1TGC/TGCDatabaseManager.h" +#include "TrigT1TGC/TGCConnectionPPToSL.h" +#include "TrigT1TGC/TGCRPhiCoincidenceMap.h" #include "TrigT1TGC/TGCEIFICoincidenceMap.h" -#include "TrigT1TGC/TGCTileMuCoincidenceMap.hh" +#include "TrigT1TGC/TGCTileMuCoincidenceMap.h" #include "TrigT1TGC/TGCNSWCoincidenceMap.h" -#include "TrigT1TGC/TGCConnectionASDToPP.hh" -#include "TrigT1TGC/TGCConnectionInPP.hh" -#include "TrigT1TGC/TGCPatchPanel.hh" +#include "TrigT1TGC/TGCConnectionASDToPP.h" +#include "TrigT1TGC/TGCConnectionInPP.h" +#include "TrigT1TGC/TGCPatchPanel.h" #include "AthenaBaseComps/AthMsgStreamMacros.h" diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx index 9c5b381cd4a..5a983b93c5c 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx @@ -2,10 +2,10 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCDoubletSB.hh" -#include "TrigT1TGC/TGCSlaveBoard.hh" -#include "TrigT1TGC/TGCPatchPanelOut.hh" -#include "TrigT1TGC/TGCHitPattern.hh" +#include "TrigT1TGC/TGCDoubletSB.h" +#include "TrigT1TGC/TGCSlaveBoard.h" +#include "TrigT1TGC/TGCPatchPanelOut.h" +#include "TrigT1TGC/TGCHitPattern.h" #include <iostream> #include <cstdlib> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCEIFICoincidenceMap.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCEIFICoincidenceMap.cxx index fdf7d1c4814..7c984206b14 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCEIFICoincidenceMap.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCEIFICoincidenceMap.cxx @@ -10,7 +10,7 @@ #include <string> #include <iomanip> -#include "TrigT1TGC/TGCDatabaseManager.hh" +#include "TrigT1TGC/TGCDatabaseManager.h" #include "PathResolver/PathResolver.h" #include "GaudiKernel/MsgStream.h" diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCElectronicsSystem.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCElectronicsSystem.cxx index 186e43bb10c..40f7b79a9a1 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCElectronicsSystem.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCElectronicsSystem.cxx @@ -3,10 +3,10 @@ */ //$Id: TGCElectronicsSystem.cxx,v 1.13 2009-05-04 11:39:44 isaya Exp $ -#include "TrigT1TGC/TGCElectronicsSystem.hh" +#include "TrigT1TGC/TGCElectronicsSystem.h" #include "TrigT1TGC/TGCASDOut.h" -#include "TrigT1TGC/TGCDatabaseManager.hh" -#include "TrigT1TGC/TGCSector.hh" +#include "TrigT1TGC/TGCDatabaseManager.h" +#include "TrigT1TGC/TGCSector.h" #include <iostream> #include <vector> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCHighPtBoard.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCHighPtBoard.cxx index fd84c0f7dfa..7ff5abd6e9b 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCHighPtBoard.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCHighPtBoard.cxx @@ -2,9 +2,9 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCHighPtBoardOut.hh" -#include "TrigT1TGC/TGCHighPtBoard.hh" -#include "TrigT1TGC/TGCHighPtChipOut.hh" +#include "TrigT1TGC/TGCHighPtBoardOut.h" +#include "TrigT1TGC/TGCHighPtBoard.h" +#include "TrigT1TGC/TGCHighPtChipOut.h" #include <iostream> #include <cmath> #include <cstdlib> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCHighPtBoardOut.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCHighPtBoardOut.cxx index a78fb031c1f..6cbd9ce9387 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCHighPtBoardOut.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCHighPtBoardOut.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCHighPtBoardOut.hh" +#include "TrigT1TGC/TGCHighPtBoardOut.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCHighPtChipOut.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCHighPtChipOut.cxx index 5010ea6f685..545110ce5c9 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCHighPtChipOut.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCHighPtChipOut.cxx @@ -2,8 +2,8 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCHighPtChipOut.hh" -#include "TrigT1TGC/TGCHighPtBoard.hh" +#include "TrigT1TGC/TGCHighPtChipOut.h" +#include "TrigT1TGC/TGCHighPtBoard.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx index 1ce381310d9..747b1591e63 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCHitPattern.hh" +#include "TrigT1TGC/TGCHitPattern.h" #include <iostream> #include <cstdlib> #include <cstring> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx index f218004da1b..8ccbad70896 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx @@ -3,7 +3,7 @@ */ // ref. SOS054V06,SOS053V04 -#include "TrigT1TGC/TGCInnerSB.hh" +#include "TrigT1TGC/TGCInnerSB.h" #include <iostream> #include <cstdlib> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCInnerTrackletSlot.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCInnerTrackletSlot.cxx index ff6679d0a16..9e0bd15a709 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCInnerTrackletSlot.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCInnerTrackletSlot.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCInnerTrackletSlot.hh" +#include "TrigT1TGC/TGCInnerTrackletSlot.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCInnerTrackletSlotHolder.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCInnerTrackletSlotHolder.cxx index ce46293aa66..d8c1cc31cdd 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCInnerTrackletSlotHolder.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCInnerTrackletSlotHolder.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCInnerTrackletSlotHolder.hh" +#include "TrigT1TGC/TGCInnerTrackletSlotHolder.h" namespace LVL1TGCTrigger { /** Constructor */ diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCNSWCoincidenceMap.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCNSWCoincidenceMap.cxx index f5d144eb4db..386d7f1bc61 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCNSWCoincidenceMap.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCNSWCoincidenceMap.cxx @@ -11,7 +11,7 @@ #include "TrigT1TGC/TGCNSWCoincidenceMap.h" #include "TrigT1TGC/NSWTrigOut.h" -#include "TrigT1TGC/TGCDatabaseManager.hh" +#include "TrigT1TGC/TGCDatabaseManager.h" #include "PathResolver/PathResolver.h" #include "MuonCondInterface/ITGCTriggerDbTool.h" @@ -21,7 +21,7 @@ #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/IMessageSvc.h" -#include "TrigT1TGC/TGCArguments.hh" +#include "TrigT1TGC/TGCArguments.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCPatchPanel.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCPatchPanel.cxx index 68deef38215..ffc7020fe74 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCPatchPanel.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCPatchPanel.cxx @@ -2,13 +2,13 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCPatchPanel.hh" -#include "TrigT1TGC/TGCPatchPanelOut.hh" -#include "TrigT1TGC/TGCHitPattern.hh" -#include "TrigT1TGC/TGCConnectionInPP.hh" -#include "TrigT1TGC/TGCBIDOut.hh" +#include "TrigT1TGC/TGCPatchPanel.h" +#include "TrigT1TGC/TGCPatchPanelOut.h" +#include "TrigT1TGC/TGCHitPattern.h" +#include "TrigT1TGC/TGCConnectionInPP.h" +#include "TrigT1TGC/TGCBIDOut.h" #include "TrigT1TGC/TGCASDOut.h" -#include "TrigT1TGC/TGCDatabaseManager.hh" +#include "TrigT1TGC/TGCDatabaseManager.h" #include <iostream> #include <string> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCPatchPanelOut.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCPatchPanelOut.cxx index 41b54decd78..ad203367522 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCPatchPanelOut.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCPatchPanelOut.cxx @@ -2,9 +2,9 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCPatchPanelOut.hh" -#include "TrigT1TGC/TGCPatchPanel.hh" -#include "TrigT1TGC/TGCHitPattern.hh" +#include "TrigT1TGC/TGCPatchPanelOut.h" +#include "TrigT1TGC/TGCPatchPanel.h" +#include "TrigT1TGC/TGCHitPattern.h" #include <cstdlib> #include <iostream> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceMap.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceMap.cxx index b5d195fa17e..63a4104c565 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceMap.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceMap.cxx @@ -8,8 +8,8 @@ #include <string> #include <iomanip> -#include "TrigT1TGC/TGCRPhiCoincidenceMap.hh" -#include "TrigT1TGC/TGCDatabaseManager.hh" +#include "TrigT1TGC/TGCRPhiCoincidenceMap.h" +#include "TrigT1TGC/TGCDatabaseManager.h" #include "PathResolver/PathResolver.h" #include "GaudiKernel/ISvcLocator.h" diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceMatrix.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceMatrix.cxx index b58100e6e77..1cdfb2c4c1c 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceMatrix.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceMatrix.cxx @@ -2,10 +2,10 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCRPhiCoincidenceMatrix.hh" -#include "TrigT1TGC/TGCRPhiCoincidenceOut.hh" -#include "TrigT1TGC/TGCRPhiCoincidenceMap.hh" -#include "TrigT1TGC/TGCSectorLogic.hh" +#include "TrigT1TGC/TGCRPhiCoincidenceMatrix.h" +#include "TrigT1TGC/TGCRPhiCoincidenceOut.h" +#include "TrigT1TGC/TGCRPhiCoincidenceMap.h" +#include "TrigT1TGC/TGCSectorLogic.h" #include <iostream> #include <cstdlib> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceOut.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceOut.cxx index 455678d7bfa..f9232cd2b24 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceOut.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceOut.cxx @@ -4,7 +4,7 @@ //$Id: TGCRPhiCoincidenceOut.cxx,v 1.3 2003-12-13 16:01:32 mishino Exp $ -#include "TrigT1TGC/TGCRPhiCoincidenceOut.hh" +#include "TrigT1TGC/TGCRPhiCoincidenceOut.h" #include <iostream> #include <assert.h> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSLPreSelector.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSLPreSelector.cxx index d89b0debbb1..0c3815ab08c 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSLPreSelector.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSLPreSelector.cxx @@ -2,10 +2,10 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCSectorLogic.hh" -#include "TrigT1TGC/TGCSLPreSelector.hh" -#include "TrigT1TGC/TGCSLPreSelectorOut.hh" -#include "TrigT1TGC/TGCRPhiCoincidenceOut.hh" +#include "TrigT1TGC/TGCSectorLogic.h" +#include "TrigT1TGC/TGCSLPreSelector.h" +#include "TrigT1TGC/TGCSLPreSelectorOut.h" +#include "TrigT1TGC/TGCRPhiCoincidenceOut.h" #include <iostream> namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSLPreSelectorOut.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSLPreSelectorOut.cxx index 45bcf39e5dc..19c96712c68 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSLPreSelectorOut.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSLPreSelectorOut.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCSLPreSelectorOut.hh" +#include "TrigT1TGC/TGCSLPreSelectorOut.h" #include <iostream> namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSLSelector.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSLSelector.cxx index 97e44935987..fc60488eab9 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSLSelector.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSLSelector.cxx @@ -2,10 +2,10 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCSLSelector.hh" -#include "TrigT1TGC/TGCSectorLogic.hh" -#include "TrigT1TGC/TGCSLSelectorOut.hh" -#include "TrigT1TGC/TGCSLPreSelectorOut.hh" +#include "TrigT1TGC/TGCSLSelector.h" +#include "TrigT1TGC/TGCSectorLogic.h" +#include "TrigT1TGC/TGCSLSelectorOut.h" +#include "TrigT1TGC/TGCSLPreSelectorOut.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSLSelectorOut.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSLSelectorOut.cxx index 702ed5c63f2..c00d3d5ef94 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSLSelectorOut.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSLSelectorOut.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCSLSelectorOut.hh" +#include "TrigT1TGC/TGCSLSelectorOut.h" #include <iostream> namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSSCController.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSSCController.cxx index 8698d7e3c2c..d77aac247c7 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSSCController.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSSCController.cxx @@ -3,11 +3,11 @@ */ //$Id: TGCSSCController.cxx,v 1.6 2009-03-15 18:07:55 isaya Exp $ -#include "TrigT1TGC/TGCSSCController.hh" -#include "TrigT1TGC/TGCSSCControllerOut.hh" -#include "TrigT1TGC/TGCSectorLogic.hh" -#include "TrigT1TGC/TGCRPhiCoincidenceMap.hh" -#include "TrigT1TGC/TGCHighPtBoardOut.hh" +#include "TrigT1TGC/TGCSSCController.h" +#include "TrigT1TGC/TGCSSCControllerOut.h" +#include "TrigT1TGC/TGCSectorLogic.h" +#include "TrigT1TGC/TGCRPhiCoincidenceMap.h" +#include "TrigT1TGC/TGCHighPtBoardOut.h" #include <iostream> namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSSCControllerOut.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSSCControllerOut.cxx index 6bc8f8a227d..cf6c226ba10 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSSCControllerOut.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSSCControllerOut.cxx @@ -3,7 +3,7 @@ */ //$Id: TGCSSCControllerOut.cxx,v 1.5 2005-11-29 08:12:40 nkanaya Exp $ -#include "TrigT1TGC/TGCSSCControllerOut.hh" +#include "TrigT1TGC/TGCSSCControllerOut.h" #include <iostream> namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSector.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSector.cxx index 25c4fd3c0dc..18fb4690eef 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSector.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSector.cxx @@ -2,8 +2,8 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCSector.hh" -#include "TrigT1TGC/TGCElectronicsSystem.hh" +#include "TrigT1TGC/TGCSector.h" +#include "TrigT1TGC/TGCElectronicsSystem.h" #include "TrigT1TGC/TGCReadoutIndex.h" #include <iostream> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSectorLogic.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSectorLogic.cxx index 4fd6096a71e..2b88af9b03f 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSectorLogic.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSectorLogic.cxx @@ -2,11 +2,11 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCSectorLogic.hh" -#include "TrigT1TGC/TGCElectronicsSystem.hh" -#include "TrigT1TGC/TGCHighPtBoard.hh" -#include "TrigT1TGC/TGCHighPtBoardOut.hh" -#include "TrigT1TGC/TGCHighPtChipOut.hh" +#include "TrigT1TGC/TGCSectorLogic.h" +#include "TrigT1TGC/TGCElectronicsSystem.h" +#include "TrigT1TGC/TGCHighPtBoard.h" +#include "TrigT1TGC/TGCHighPtBoardOut.h" +#include "TrigT1TGC/TGCHighPtChipOut.h" #include "TrigT1TGC/TGCTMDB.h" #include "TrigT1TGC/TGCTMDBOut.h" diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSlaveBoard.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSlaveBoard.cxx index 59374e8683f..aebbb1d6bb7 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSlaveBoard.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSlaveBoard.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCSlaveBoard.hh" +#include "TrigT1TGC/TGCSlaveBoard.h" #include <iostream> #include <iomanip> #include <cstdlib> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSlaveBoardOut.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSlaveBoardOut.cxx index 3008757562f..67621c4f209 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSlaveBoardOut.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSlaveBoardOut.cxx @@ -2,8 +2,8 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCSlaveBoardOut.hh" -#include "TrigT1TGC/TGCSlaveBoard.hh" +#include "TrigT1TGC/TGCSlaveBoardOut.h" +#include "TrigT1TGC/TGCSlaveBoard.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCStripHighPtBoard.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCStripHighPtBoard.cxx index 307e484c505..166a0a188b1 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCStripHighPtBoard.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCStripHighPtBoard.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCStripHighPtBoard.hh" +#include "TrigT1TGC/TGCStripHighPtBoard.h" #include <iostream> #include <cstdlib> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCStripTripletSB.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCStripTripletSB.cxx index 369f781ccd3..b95bf39f036 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCStripTripletSB.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCStripTripletSB.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "TrigT1TGC/TGCStripTripletSB.hh" +#include "TrigT1TGC/TGCStripTripletSB.h" #include <iostream> #include <cstdlib> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCTileMuCoincidenceMap.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCTileMuCoincidenceMap.cxx index 7ae0e49add2..e1e4395e7c2 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCTileMuCoincidenceMap.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCTileMuCoincidenceMap.cxx @@ -8,8 +8,8 @@ #include <string> #include <iomanip> -#include "TrigT1TGC/TGCTileMuCoincidenceMap.hh" -#include "TrigT1TGC/TGCDatabaseManager.hh" +#include "TrigT1TGC/TGCTileMuCoincidenceMap.h" +#include "TrigT1TGC/TGCDatabaseManager.h" #include "PathResolver/PathResolver.h" #include "GaudiKernel/ISvcLocator.h" diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCTimingManager.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCTimingManager.cxx index e5427dca3b9..c64c2bb49a9 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCTimingManager.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCTimingManager.cxx @@ -4,17 +4,17 @@ //$Id: TGCTimingManager.cxx,v 1.4 2009-05-13 02:53:51 isaya Exp $ -#include "TrigT1TGC/TGCSector.hh" -#include "TrigT1TGC/TGCPatchPanel.hh" -#include "TrigT1TGC/TGCSlaveBoard.hh" -#include "TrigT1TGC/TGCDoubletSB.hh" -#include "TrigT1TGC/TGCWireTripletSB.hh" -#include "TrigT1TGC/TGCStripTripletSB.hh" -#include "TrigT1TGC/TGCHighPtBoard.hh" -#include "TrigT1TGC/TGCWireHighPtBoard.hh" -#include "TrigT1TGC/TGCStripHighPtBoard.hh" -#include "TrigT1TGC/TGCSectorLogic.hh" -#include "TrigT1TGC/TGCDatabaseManager.hh" +#include "TrigT1TGC/TGCSector.h" +#include "TrigT1TGC/TGCPatchPanel.h" +#include "TrigT1TGC/TGCSlaveBoard.h" +#include "TrigT1TGC/TGCDoubletSB.h" +#include "TrigT1TGC/TGCWireTripletSB.h" +#include "TrigT1TGC/TGCStripTripletSB.h" +#include "TrigT1TGC/TGCHighPtBoard.h" +#include "TrigT1TGC/TGCWireHighPtBoard.h" +#include "TrigT1TGC/TGCStripHighPtBoard.h" +#include "TrigT1TGC/TGCSectorLogic.h" +#include "TrigT1TGC/TGCDatabaseManager.h" #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/Bootstrap.h" diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCTrackSelector.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCTrackSelector.cxx index f3ea1bc956b..89ced345cb6 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCTrackSelector.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCTrackSelector.cxx @@ -3,9 +3,9 @@ */ #include "TrigT1TGC/TGCTrackSelector.h" -#include "TrigT1TGC/TGCSectorLogic.hh" +#include "TrigT1TGC/TGCSectorLogic.h" #include "TrigT1TGC/TGCTrackSelectorOut.h" -#include "TrigT1TGC/TGCRPhiCoincidenceOut.hh" +#include "TrigT1TGC/TGCRPhiCoincidenceOut.h" namespace LVL1TGCTrigger { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCWireHighPtBoard.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCWireHighPtBoard.cxx index f5917a7574d..665ac6405d6 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCWireHighPtBoard.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCWireHighPtBoard.cxx @@ -3,8 +3,8 @@ */ // ref. SOS063V07,S0S061V04 -#include "TrigT1TGC/TGCWireHighPtBoard.hh" -#include "TrigT1TGC/TGCHighPtBoardOut.hh" +#include "TrigT1TGC/TGCWireHighPtBoard.h" +#include "TrigT1TGC/TGCHighPtBoardOut.h" #include <iostream> #include <cstdlib> diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCWireTripletSB.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCWireTripletSB.cxx index a3f690287dd..30420c46c81 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCWireTripletSB.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCWireTripletSB.cxx @@ -3,7 +3,7 @@ */ // ref. SOS051V07,S0S052V06 -#include "TrigT1TGC/TGCWireTripletSB.hh" +#include "TrigT1TGC/TGCWireTripletSB.h" #include <iostream> #include <cstdlib> -- GitLab From e3766a9d36c592c8a5e5b37d141ff3ed23a8a908 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 22 Jul 2020 09:45:58 +0200 Subject: [PATCH 088/459] NSWTrigOut+TGCASDOut: remove MsgStreamMember rely on compiler generated code Remove the non-thread safe `MsgStreamMember` and instead just construct a `MsgStream` where it's needed. Also remove user-defined default© constructor and assignment operator. The compiler generated ones are just fine here. --- .../TrigT1/TrigT1TGC/TrigT1TGC/NSWTrigOut.h | 32 +----- .../TrigT1/TrigT1TGC/TrigT1TGC/TGCASDOut.h | 19 +--- Trigger/TrigT1/TrigT1TGC/src/NSWTrigOut.cxx | 104 ++++-------------- Trigger/TrigT1/TrigT1TGC/src/TGCASDOut.cxx | 38 +------ 4 files changed, 39 insertions(+), 154 deletions(-) diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/NSWTrigOut.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/NSWTrigOut.h index dd34ccfee92..8dc486aee22 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/NSWTrigOut.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/NSWTrigOut.h @@ -10,8 +10,6 @@ #ifndef NSW_TRIGOUT_H #define NSW_TRIGOUT_H -#include "AthenaKernel/MsgStreamMember.h" - #include <vector> namespace LVL1TGCTrigger { @@ -26,23 +24,17 @@ namespace LVL1TGCTrigger { class NSWTrigOut { protected: - int m_sideID; // 0:A-side 1:C-side + int m_sideID{-1}; // 0:A-side 1:C-side std::vector<int> m_NSWTriggerProcessor; // 0 ~ 15 std::vector<int> m_NSWeta_8bit; // 0.005 std::vector<int> m_NSWphi_6bit; // 10mrad std::vector<int> m_NSWDtheta_5bit; // 1mrad public: - NSWTrigOut(); - NSWTrigOut(int side, std::vector<int> NSWTrigger, std::vector<int> NSWeta, std::vector<int> NSWphi, std::vector<int> NSWDtheta,TGCArguments* tgcargs=0); - NSWTrigOut(int side, std::vector<int> NSWTrigger,TGCArguments* tgcargs=0); + NSWTrigOut() = default; + NSWTrigOut(int side, std::vector<int> NSWTrigger, std::vector<int> NSWeta, std::vector<int> NSWphi, std::vector<int> NSWDtheta,TGCArguments* tgcargs=nullptr); + NSWTrigOut(int side, std::vector<int> NSWTrigger,TGCArguments* tgcargs=nullptr); - virtual ~NSWTrigOut() { } - - NSWTrigOut(const NSWTrigOut& right); - - const NSWTrigOut& operator=(const NSWTrigOut& right); - NSWTrigOut& operator+(const NSWTrigOut& right); NSWTrigOut& operator+=(const NSWTrigOut& right); bool operator==(const NSWTrigOut& right) const { @@ -55,7 +47,6 @@ public: } - // set functons void setSide(int side){ m_sideID = side; } void setNSWTriggerProcessor(int NSWTP){ m_NSWTriggerProcessor.push_back(NSWTP); } @@ -72,25 +63,12 @@ public: const std::vector<int>& getNSWDtheta() const {return m_NSWDtheta_5bit; } // print methods - const MSG::Level defaultMSGLvl = MSG::INFO; - bool msgLvl(const MSG::Level lvl) const; - MsgStream& msg(const MSG::Level lvl) const; void print() const; - private: - TGCArguments* m_tgcArgs; - mutable Athena::MsgStreamMember m_msg; - - + TGCArguments* m_tgcArgs{nullptr}; }; -inline bool NSWTrigOut::msgLvl(const MSG::Level lvl) const -{ - return (m_msg.get().level() <= lvl) ? true : false; -} -inline MsgStream& NSWTrigOut::msg(const MSG::Level lvl) const{ return m_msg << lvl; } - } //end of namespace bracket #endif diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCASDOut.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCASDOut.h index a3cdec3889f..6ea04941f2e 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCASDOut.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCASDOut.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // ==================================================================== @@ -16,7 +16,6 @@ #ifndef TGC_ASDOUT_H #define TGC_ASDOUT_H -//#include "TrigT1TGC/TGCIndex.h" #include "TrigT1TGC/TGCReadoutIndex.h" namespace LVL1TGCTrigger { @@ -30,24 +29,18 @@ namespace LVL1TGCTrigger { class TGCASDOut { protected: TGCReadoutIndex m_tgcReadoutIndex; - TGCSignalType m_signalType; - int m_hitID; // index in a chamber - int m_channel; // index in a ASD board - double m_hitToF; + TGCSignalType m_signalType{WIRE}; + int m_hitID{0}; // index in a chamber + int m_channel{0}; // index in a ASD board + double m_hitToF{0}; public: - TGCASDOut(); + TGCASDOut() = default; TGCASDOut(TGCIndex tgcindex, int ilyr, TGCSignalType sigtype=WIREGROUP, int id=-1, double tof=0.); TGCASDOut(TGCReadoutIndex tgcrindex, TGCSignalType sigtype=WIREGROUP, int id=-1, double tof=0.); - virtual ~TGCASDOut() { } - - TGCASDOut(const TGCASDOut& right); - - TGCASDOut& operator=(const TGCASDOut& right); - int operator==(const TGCASDOut& right) const { return (this==&right); diff --git a/Trigger/TrigT1/TrigT1TGC/src/NSWTrigOut.cxx b/Trigger/TrigT1/TrigT1TGC/src/NSWTrigOut.cxx index 250bd58b26f..2cd83ad65da 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/NSWTrigOut.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/NSWTrigOut.cxx @@ -8,114 +8,58 @@ */ // ==================================================================== +#include "AthenaKernel/getMessageSvc.h" #include "TrigT1TGC/NSWTrigOut.h" - #include "TrigT1TGC/TGCArguments.h" -#include "AthenaBaseComps/AthMsgStreamMacros.h" namespace LVL1TGCTrigger { -// ==================================================================== -// -// class description -// -// ==================================================================== - -////////////////////// -NSWTrigOut::NSWTrigOut() - : m_sideID(-1), m_NSWTriggerProcessor(0), m_NSWeta_8bit(0), m_NSWphi_6bit(0), m_NSWDtheta_5bit(0), m_tgcArgs(0) -////////////////////// -{ -} /////////////////////////////////////////////////////////////// - NSWTrigOut::NSWTrigOut(int side, std::vector<int> NSWTP, std::vector<int> NSWeta,std::vector<int> NSWphi, std::vector<int> NSWDtheta,TGCArguments* tgcargs) - : m_sideID(side), m_NSWTriggerProcessor(NSWTP), m_NSWeta_8bit(NSWeta), m_NSWphi_6bit(NSWphi), m_NSWDtheta_5bit(NSWDtheta),m_tgcArgs(tgcargs) +NSWTrigOut::NSWTrigOut(int side, std::vector<int> NSWTP, std::vector<int> NSWeta, std::vector<int> NSWphi, std::vector<int> NSWDtheta, TGCArguments* tgcargs) + : m_sideID(side), m_NSWTriggerProcessor(NSWTP), m_NSWeta_8bit(NSWeta), m_NSWphi_6bit(NSWphi), m_NSWDtheta_5bit(NSWDtheta), m_tgcArgs(tgcargs) /////////////////////////////////////////////////////////////// { - m_msg = Athena::MsgStreamMember("LVL1TGC::NSWTrigOut"); - if(m_tgcArgs){ - m_msg.get().setLevel(m_tgcArgs->MSGLEVEL()); - } - else{ - m_msg.get().setLevel(defaultMSGLvl); - } -} - NSWTrigOut::NSWTrigOut(int side, std::vector<int> NSWTP,TGCArguments* tgcargs) - : m_sideID(side), m_NSWTriggerProcessor(NSWTP), m_NSWeta_8bit(0), m_NSWphi_6bit(0), m_NSWDtheta_5bit(0),m_tgcArgs(tgcargs) -/////////////////////////////////////////////////////////////// -{ - m_msg = Athena::MsgStreamMember("LVL1TGC::NSWTrigOut"); - if(m_tgcArgs){ - m_msg.get().setLevel(m_tgcArgs->MSGLEVEL()); - } - else{ - m_msg.get().setLevel(defaultMSGLvl); - } } /////////////////////////////////////////////////////////////// -NSWTrigOut::NSWTrigOut(const NSWTrigOut& right) -///////////////////////////////////////////////////////////// - :m_sideID(right.m_sideID), - m_NSWTriggerProcessor(right.m_NSWTriggerProcessor), - m_NSWeta_8bit(right.m_NSWeta_8bit), - m_NSWphi_6bit(right.m_NSWphi_6bit), - m_NSWDtheta_5bit(right.m_NSWDtheta_5bit), - m_tgcArgs(right.m_tgcArgs) +NSWTrigOut::NSWTrigOut(int side, std::vector<int> NSWTP, TGCArguments* tgcargs) + : m_sideID(side), m_NSWTriggerProcessor(NSWTP), m_tgcArgs(tgcargs) +/////////////////////////////////////////////////////////////// { - m_msg = Athena::MsgStreamMember("LVL1TGC::NSWTrigOut"); - if(m_tgcArgs){ - m_msg.get().setLevel(m_tgcArgs->MSGLEVEL()); - } - else{ - m_msg.get().setLevel(defaultMSGLvl); - } } -///////////////////////////////////////////////////////////// -const NSWTrigOut& NSWTrigOut::operator=(const NSWTrigOut& right) -///////////////////////////////////////////////////////////// -{ - if (this != &right) { - m_sideID = right.m_sideID; - m_NSWTriggerProcessor = right.m_NSWTriggerProcessor; - m_NSWeta_8bit = right.m_NSWeta_8bit; - m_NSWphi_6bit = right.m_NSWphi_6bit; - m_NSWDtheta_5bit = right.m_NSWDtheta_5bit; - m_tgcArgs = right.m_tgcArgs; - } - return *this; -} - /////////////////////////////////////////////////////////// NSWTrigOut& NSWTrigOut::operator+=(const NSWTrigOut& right) /////////////////////////////////////////////////////////// { if (this != &right && (m_sideID==right.m_sideID || m_sideID==-1)) { - m_NSWTriggerProcessor.insert(m_NSWTriggerProcessor.end(), right.m_NSWTriggerProcessor.begin(), right.m_NSWTriggerProcessor.end()); - m_NSWeta_8bit.insert(m_NSWeta_8bit.end(), right.m_NSWeta_8bit.begin(), right.m_NSWeta_8bit.end()); - m_NSWphi_6bit.insert(m_NSWphi_6bit.end(), right.m_NSWphi_6bit.begin(), right.m_NSWphi_6bit.end()); - m_NSWDtheta_5bit.insert(m_NSWDtheta_5bit.end(), right.m_NSWDtheta_5bit.begin(), right.m_NSWDtheta_5bit.end()); - } - - return *this; - + m_NSWTriggerProcessor.insert(m_NSWTriggerProcessor.end(), right.m_NSWTriggerProcessor.begin(), right.m_NSWTriggerProcessor.end()); + m_NSWeta_8bit.insert(m_NSWeta_8bit.end(), right.m_NSWeta_8bit.begin(), right.m_NSWeta_8bit.end()); + m_NSWphi_6bit.insert(m_NSWphi_6bit.end(), right.m_NSWphi_6bit.begin(), right.m_NSWphi_6bit.end()); + m_NSWDtheta_5bit.insert(m_NSWDtheta_5bit.end(), right.m_NSWDtheta_5bit.begin(), right.m_NSWDtheta_5bit.end()); + } + return *this; } ///////////////////////////// void NSWTrigOut::print() const ///////////////////////////// { + MsgStream msg(Athena::getMessageSvc(), "LVL1TGC::NSWTrigOut"); + if (m_tgcArgs) msg.setLevel(m_tgcArgs->MSGLEVEL()); + for(unsigned int i=0;i!=m_NSWTriggerProcessor.size();i++){ - ATH_MSG_DEBUG("i="<<i<<"\n" - <<"Size=="<<m_NSWTriggerProcessor.size()<<"\n" - << "Side=" << m_sideID <<"\n" - << " :: ModuleID=" << m_NSWTriggerProcessor[i]<<"\n" - << " :: eta_8bit=" << m_NSWeta_8bit[i]<<"\n" - << " :: phi_6bit=" << m_NSWphi_6bit[i]<<"\n" - << " :: Dtheta_5bit=" << m_NSWDtheta_5bit[i]<<"\n"); + msg << MSG::DEBUG + << "i=" << i<<"\n" + <<"Size=="<<m_NSWTriggerProcessor.size()<<"\n" + << "Side=" << m_sideID <<"\n" + << " :: ModuleID=" << m_NSWTriggerProcessor[i]<<"\n" + << " :: eta_8bit=" << m_NSWeta_8bit[i]<<"\n" + << " :: phi_6bit=" << m_NSWphi_6bit[i]<<"\n" + << " :: Dtheta_5bit=" << m_NSWDtheta_5bit[i]<<"\n" + << endmsg; } } diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCASDOut.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCASDOut.cxx index 4f63fcb752d..9eb227ab21a 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCASDOut.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCASDOut.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // ==================================================================== @@ -23,7 +23,7 @@ namespace LVL1TGCTrigger { // // ==================================================================== -static const char* strsig[3]= { "N/A", "WireGroup", "Strip" }; +const char* const strsig[3]= { "N/A", "WireGroup", "Strip" }; // ==================================================================== // @@ -31,19 +31,12 @@ static const char* strsig[3]= { "N/A", "WireGroup", "Strip" }; // // ==================================================================== -////////////////////// -TGCASDOut::TGCASDOut() - : m_tgcReadoutIndex(), - m_signalType(WIRE), m_hitID(0), m_channel(0), m_hitToF(0.0) -////////////////////// -{ -} /////////////////////////////////////////////////////////////// TGCASDOut::TGCASDOut(TGCIndex tgcindex, int ilyr, TGCSignalType sigtype, int id, double tof) : m_tgcReadoutIndex(tgcindex, ilyr), - m_signalType(sigtype), m_hitID(id), m_channel(0), m_hitToF(tof) + m_signalType(sigtype), m_hitID(id), m_hitToF(tof) /////////////////////////////////////////////////////////////// { } @@ -52,35 +45,12 @@ TGCASDOut::TGCASDOut(TGCIndex tgcindex, int ilyr, TGCASDOut::TGCASDOut(TGCReadoutIndex tgcrindex, TGCSignalType sigtype, int id, double tof) : m_tgcReadoutIndex(tgcrindex), - m_signalType(sigtype), m_hitID(id), m_channel(0), m_hitToF(tof) -/////////////////////////////////////////////////////////////// -{ -} - + m_signalType(sigtype), m_hitID(id), m_hitToF(tof) /////////////////////////////////////////////////////////////// -TGCASDOut::TGCASDOut(const TGCASDOut& right) -///////////////////////////////////////////////////////////// { - *this= right; } -///////////////////////////////////////////////////////////// -TGCASDOut& TGCASDOut::operator=(const TGCASDOut& right) -///////////////////////////////////////////////////////////// -{ - if (this != &right) { - m_tgcReadoutIndex= right.m_tgcReadoutIndex; - m_signalType= right.m_signalType; - m_hitID= right.m_hitID; - m_channel= right.m_channel; - m_hitToF= right.m_hitToF; - } - return *this; -} - - - //////////////////////////////////////////////////////////////////////// void TGCASDOut::SetParams(TGCSignalType signal_type, int id, double tof) //////////////////////////////////////////////////////////////////////// -- GitLab From 9f1b869b0ecab2399665cb3f89eddd35db10a3e3 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 22 Jul 2020 10:01:42 +0200 Subject: [PATCH 089/459] TrigT1TGC: removing call to exit function Remove code that was checking if memory allocation was successful and otherwise called `exit`. The latter triggers the thread-checker and in general we really don't check all calls to `new` in our code. --- Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx | 10 +--------- Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx | 18 +----------------- Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx | 6 +----- .../TrigT1/TrigT1TGC/src/TGCStripTripletSB.cxx | 6 +----- .../TrigT1/TrigT1TGC/src/TGCWireTripletSB.cxx | 10 +--------- 5 files changed, 5 insertions(+), 45 deletions(-) diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx index 5a983b93c5c..5bff629e1d9 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "TrigT1TGC/TGCDoubletSB.h" @@ -55,10 +55,6 @@ void TGCDoubletSB::doCoincidence() if ( m_slaveBoardOut!= 0 ) delete m_slaveBoardOut; m_slaveBoardOut = new TGCSlaveBoardOut(this,m_bid); - if ( !m_slaveBoardOut ) { - std::cerr << "TGCDoubletSB::createSlaveBoardOut: Memory allocation failure."; - exit(1); - } m_slaveBoardOut->clear(); m_slaveBoardOut->setNumberOfData(NumberOfDoubletSBData); @@ -211,10 +207,6 @@ void TGCDoubletSB::do3outof4Coincedence(TGCHitPattern** LCOut) if(((LCOut[0]!=0)||(LCOut[1]!=0))&&((LCOut[2]!=0)||(LCOut[3]!=0))){ if ( m_coincidenceOut != 0 ) delete m_coincidenceOut; m_coincidenceOut = new TGCHitPattern; - if ( !m_coincidenceOut ) { - std::cerr << "TGCDoubletSB::create coincidenceOut: Memory allocation failure."; - exit(1); - } #ifdef TGCDEBUG std::cout << "# DoubletSB [do3outof4Coincedence]" <<std::endl; std::cout<<"#SB LCOut[0]: inner 2hit";LCOut[0]->print(); diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx index 747b1591e63..b8a5bbc3129 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "TrigT1TGC/TGCHitPattern.h" @@ -84,10 +84,6 @@ void TGCHitPattern::setLength(int lengthIn) if ( m_cPattern !=0) delete [] m_cPattern; m_cPattern = 0; m_pattern = new bool [m_length]; - if ( !m_pattern ) { - std::cerr << "TGCHitPattern::setLength: Memory allocation failure." << std::endl; - exit(1); - } } } @@ -238,10 +234,6 @@ void TGCHitPattern::push_back(TGCHitPattern* hp) bool* ptmp; ptmp = 0; ptmp = new bool [hp->getLength() + m_length]; - if(!ptmp){ - std::cerr << "TGCHitPattern::push_back: Memory allocation failure." << std::endl; - exit(1); - } int i; for(i=0; i<m_length ; i++){ ptmp[i] = m_pattern[i]; @@ -262,10 +254,6 @@ void TGCHitPattern::resize(int size) if(m_pattern)delete [] m_pattern; m_pattern = new bool [size]; m_length = size; - if ( !m_pattern ) { - std::cerr << "TGCHitPattern::resize: Memory allocation failure." << std::endl; - exit(1); - } } else { m_length = -1; } @@ -280,10 +268,6 @@ void TGCHitPattern::del(int pos) bool* ptmp; ptmp = 0; ptmp = new bool [m_length-1]; - if(!ptmp){ - std::cerr << "TGCHitPattern::push_back: Memory allocation failure." << std::endl; - exit(1); - } int i; for(i=0; i<pos ; i++){ ptmp[i] = m_pattern[i]; diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx index 8ccbad70896..d3e292a7ded 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // ref. SOS054V06,SOS053V04 @@ -18,10 +18,6 @@ void TGCInnerSB::createSlaveBoardOut() if(m_coincidenceOut!=0){ if ( m_slaveBoardOut!=0 ) delete m_slaveBoardOut; m_slaveBoardOut = new TGCSlaveBoardOut(this, m_bid); - if ( !m_slaveBoardOut ) { - std::cerr << "TGCInnerSB::createSlaveBoardOut: Memory allocation failure."; - exit(1); - } m_slaveBoardOut->clear(); m_slaveBoardOut->setNumberOfData(NumberOfInnerSBData); diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCStripTripletSB.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCStripTripletSB.cxx index b95bf39f036..7eb945aa4e0 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCStripTripletSB.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCStripTripletSB.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "TrigT1TGC/TGCStripTripletSB.h" @@ -20,10 +20,6 @@ void TGCStripTripletSB::createSlaveBoardOut() if(m_coincidenceOut!=0){ m_slaveBoardOut = new TGCSlaveBoardOut(this, m_bid); - if ( !m_slaveBoardOut ) { - std::cerr << "TGCStripTripletSB::createSlaveBoardOut: Memory allocation failure."; - exit(1); - } m_slaveBoardOut->clear(); m_slaveBoardOut->setNumberOfData(NumberOfStripTripletSBData); diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCWireTripletSB.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCWireTripletSB.cxx index 30420c46c81..a355233eb3b 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCWireTripletSB.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCWireTripletSB.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // ref. SOS051V07,S0S052V06 @@ -17,10 +17,6 @@ void TGCWireTripletSB::createSlaveBoardOut() if(m_coincidenceOut!=0){ if ( m_slaveBoardOut != 0 ) delete m_slaveBoardOut; m_slaveBoardOut = new TGCSlaveBoardOut(this, m_bid); - if ( !m_slaveBoardOut ) { - std::cerr << "TGCWireTripletSB::createSlaveBoardOut: Memory allocation failure."<<std::endl; - exit(1); - } m_slaveBoardOut->clear(); m_slaveBoardOut->setNumberOfData(NumberOfWireTripletSBData); @@ -148,10 +144,6 @@ TGCWireTripletSB& TGCWireTripletSB::operator=(const TGCWireTripletSB& right) if ( m_lengthOfCoincidenceOut > 0) { if ( m_coincidenceOut ) delete m_coincidenceOut; m_coincidenceOut = new TGCHitPattern (m_lengthOfCoincidenceOut); - if ( !m_coincidenceOut ) { - std::cerr << "TGCWireTripletSB::TGCWireTripletSB: Memory allocation failure." << std::endl; - exit(1); - } } } return *this; -- GitLab From 20c8ca90167646d347844c68cd2380ff879ec294 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 22 Jul 2020 10:39:42 +0200 Subject: [PATCH 090/459] TGCEIFICoincidenceMap+TGCDatabaseManager: Use AthMessaging Use AthMessaging instead of declaring our own private MsgStream. Also a few const fixes to make thread-checker happy. --- .../TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h | 28 +-------- .../TrigT1TGC/TGCEIFICoincidenceMap.h | 61 +++---------------- .../TrigT1TGC/src/TGCDatabaseManager.cxx | 15 +++-- .../TrigT1TGC/src/TGCEIFICoincidenceMap.cxx | 22 +++---- 4 files changed, 26 insertions(+), 100 deletions(-) diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h index 37baea889f3..049344ed912 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h @@ -12,14 +12,12 @@ #include "MuonCondSvc/TGCTriggerData.h" #include "StoreGate/ReadCondHandleKey.h" -#include "AthenaKernel/MsgStreamMember.h" +#include "AthenaBaseComps/AthMessaging.h" #include <vector> #include <map> #include <string> -#include "GaudiKernel/MsgStream.h" - namespace LVL1TGCTrigger { class TGCConnectionASDToPP; @@ -31,7 +29,7 @@ class TGCEIFICoincidenceMap; class TGCTileMuCoincidenceMap; class TGCNSWCoincidenceMap; -class TGCDatabaseManager +class TGCDatabaseManager : public AthMessaging { typedef std::vector<int> PatchPanelIDs; typedef std::vector<const TGCPatchPanel*> PatchPanelPointers; @@ -63,15 +61,6 @@ class TGCDatabaseManager TGCArguments* tgcArgs() const; - /** Declaring the standard message stream - * Returns a reference to the default message stream - */ - MsgStream& msg(const MSG::Level lvl) const; - /** Test method to evaluate the verbosity level */ - bool msgLvl(const MSG::Level lvl) const; - /** set message level to propagate from the parent class */ - void setMessageLevel(const MSG::Level lvl) const; - private: enum {NumberOfModuleInBW=9}; @@ -85,9 +74,6 @@ class TGCDatabaseManager std::map<PatchPanelIDs, std::pair<const TGCConnectionInPP, PatchPanelPointers> > m_patchPanelToConnectionInPP; TGCArguments* m_tgcArgs; - - //Declaring private message stream member. - mutable Athena::MsgStreamMember m_msg; }; inline @@ -131,16 +117,6 @@ inline return m_ASDToPP[region-1][type][forwardBackward]; } -inline MsgStream& TGCDatabaseManager::msg(const MSG::Level lvl) const { return m_msg << lvl; } - -inline bool TGCDatabaseManager::msgLvl(const MSG::Level lvl) const -{ - return (m_msg.get().level() <= lvl) ? true : false; -} - -inline void TGCDatabaseManager::setMessageLevel(const MSG::Level lvl) const { m_msg.get().setLevel(lvl); } - - } //end of namespace bracket #endif // TGCDatabaseManager_hh diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEIFICoincidenceMap.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEIFICoincidenceMap.h index b97cba650fe..b0f51d2eddf 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEIFICoincidenceMap.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEIFICoincidenceMap.h @@ -11,21 +11,20 @@ #include "StoreGate/ReadCondHandle.h" #include "MuonCondSvc/TGCTriggerData.h" -#include "AthenaKernel/MsgStreamMember.h" +#include "AthenaBaseComps/AthMessaging.h" #include <string> #include <bitset> namespace LVL1TGCTrigger { -class TGCEIFICoincidenceMap +class TGCEIFICoincidenceMap : public AthMessaging { public: TGCEIFICoincidenceMap(TGCArguments*, const SG::ReadCondHandleKey<TGCTriggerData>& readCondKey); TGCEIFICoincidenceMap(TGCArguments*, const SG::ReadCondHandleKey<TGCTriggerData>& readCondKey, const std::string& version, int sideId=0); - virtual ~TGCEIFICoincidenceMap(); TGCEIFICoincidenceMap(const TGCEIFICoincidenceMap& right); TGCEIFICoincidenceMap& operator = (const TGCEIFICoincidenceMap& right); @@ -49,24 +48,16 @@ class TGCEIFICoincidenceMap const int bit) const; - const std::string& getVersion() const; - int getSideId() const; - bool isFullCW() const; - void setFullCW( bool val); + const std::string& getVersion() const { return m_verName; } + int getSideId() const { return m_side; } + bool isFullCW() const { return m_fullCW; } + void setFullCW( bool val) { m_fullCW = val; } bool readMap(); void dumpMap() const; - TGCArguments* tgcArgs() const; - - /** Declaring the standard message stream - * Returns a reference to the default message stream - */ - MsgStream& msg(const MSG::Level lvl) const; - /** Test method to evaluate the verbosity level */ - bool msgLvl(const MSG::Level lvl) const; - /** set message level to propagate from the parent class */ - void setMessageLevel(const MSG::Level lvl) const; + const TGCArguments* tgcArgs() const { return m_tgcArgs; } + TGCArguments* tgcArgs() { return m_tgcArgs; } protected: enum {N_EndcapSector=48}; @@ -93,35 +84,8 @@ class TGCEIFICoincidenceMap TGCArguments* m_tgcArgs; const SG::ReadCondHandleKey<TGCTriggerData>& m_readCondKey; - - //Declaring private message stream member. - mutable Athena::MsgStreamMember m_msg; }; -inline TGCArguments* TGCEIFICoincidenceMap::tgcArgs() const -{ - return m_tgcArgs; -} - -inline const std::string& TGCEIFICoincidenceMap::getVersion() const -{ - return m_verName; -} - -inline int TGCEIFICoincidenceMap::getSideId() const -{ - return m_side; -} - -inline bool TGCEIFICoincidenceMap::isFullCW() const -{ - return m_fullCW; -} - -inline void TGCEIFICoincidenceMap::setFullCW(bool val) -{ - m_fullCW = val; -} inline const TGCInnerTrackletSlot* TGCEIFICoincidenceMap::getInnerTrackletMask(const int input, @@ -135,15 +99,6 @@ inline return &(m_map[input][ssc][sec]); } -inline MsgStream& TGCEIFICoincidenceMap::msg(const MSG::Level lvl) const { return m_msg << lvl; } - -inline bool TGCEIFICoincidenceMap::msgLvl(const MSG::Level lvl) const -{ - return (m_msg.get().level() <= lvl) ? true : false; -} - -inline void TGCEIFICoincidenceMap::setMessageLevel(const MSG::Level lvl) const { m_msg.get().setLevel(lvl); } - } //end of namespace bracket #endif diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCDatabaseManager.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCDatabaseManager.cxx index c1082612908..d0fb4c1ac42 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCDatabaseManager.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCDatabaseManager.cxx @@ -70,12 +70,11 @@ void TGCDatabaseManager::addConnectionInPP(const TGCPatchPanel* patchPanel, } TGCDatabaseManager::TGCDatabaseManager(TGCArguments* tgcargs) - : m_mapTileMu(0), + : AthMessaging(Athena::getMessageSvc(), "LVL1TGC::TGCDatabaseManager"), + m_mapTileMu(0), m_tgcArgs(tgcargs) { - // set message label - m_msg = Athena::MsgStreamMember("LVL1TGC::TGCDatabaseManager"); - m_msg.get().setLevel(tgcArgs()->MSGLEVEL()); + setLevel(tgcArgs()->MSGLEVEL()); int i,j,k; for( j=0; j<NumberOfRegionType; j+=1){ @@ -100,11 +99,10 @@ TGCDatabaseManager::TGCDatabaseManager(TGCArguments* tgcargs) TGCDatabaseManager::TGCDatabaseManager(TGCArguments* tgcargs, const SG::ReadCondHandleKey<TGCTriggerData>& readCondKey, const std::string& ver, bool ) - : m_tgcArgs(tgcargs) + : AthMessaging(Athena::getMessageSvc(), "LVL1TGC::TGCDatabaseManager"), + m_tgcArgs(tgcargs) { - // set message label - m_msg = Athena::MsgStreamMember("LVL1TGC::TGCDatabaseManager"); - m_msg.get().setLevel(tgcArgs()->MSGLEVEL()); + setLevel(tgcArgs()->MSGLEVEL()); bool status = true; @@ -209,6 +207,7 @@ TGCDatabaseManager::~TGCDatabaseManager() } TGCDatabaseManager::TGCDatabaseManager(const TGCDatabaseManager& right) + : AthMessaging(Athena::getMessageSvc(), "LVL1TGC::TGCDatabaseManager") { for(int j=0; j<NumberOfRegionType; j+=1){ for(int i=0; i<NumberOfPatchPanelType; i+=1){ diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCEIFICoincidenceMap.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCEIFICoincidenceMap.cxx index 7c984206b14..3a15c9b10b1 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCEIFICoincidenceMap.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCEIFICoincidenceMap.cxx @@ -12,21 +12,20 @@ #include "TrigT1TGC/TGCDatabaseManager.h" #include "PathResolver/PathResolver.h" - -#include "GaudiKernel/MsgStream.h" +#include "AthenaKernel/getMessageSvc.h" namespace LVL1TGCTrigger { TGCEIFICoincidenceMap::TGCEIFICoincidenceMap(TGCArguments* tgcargs, const SG::ReadCondHandleKey<TGCTriggerData>& readCondKey) - :m_verName("NA"), + :AthMessaging(Athena::getMessageSvc(), "LVL1TGC::TGCEIFICoincidenceMap"), + m_verName("NA"), m_side(0), m_fullCW(false), m_tgcArgs(tgcargs), m_readCondKey(readCondKey) { - m_msg = Athena::MsgStreamMember("LVL1TGC::TGCEIFICoincidenceMap"); - m_msg.get().setLevel(tgcArgs()->MSGLEVEL()); + setLevel(tgcArgs()->MSGLEVEL()); // intialize map ATH_MSG_DEBUG("initialising the map"); @@ -51,14 +50,14 @@ TGCEIFICoincidenceMap::TGCEIFICoincidenceMap(TGCArguments* tgcargs, const SG::ReadCondHandleKey<TGCTriggerData>& readCondKey, const std::string& version, int sideID) - : m_verName(version), + : AthMessaging(Athena::getMessageSvc(), "LVL1TGC::TGCEIFICoincidenceMap"), + m_verName(version), m_side(sideID), m_fullCW(false), m_tgcArgs(tgcargs), m_readCondKey(readCondKey) { - m_msg = Athena::MsgStreamMember("LVL1TGC::TGCEIFICoincidenceMap"); - m_msg.get().setLevel(tgcArgs()->MSGLEVEL()); + setLevel(tgcArgs()->MSGLEVEL()); // initialize map ATH_MSG_DEBUG("initialising the map"); @@ -103,12 +102,9 @@ TGCEIFICoincidenceMap::TGCEIFICoincidenceMap(TGCArguments* tgcargs, } -TGCEIFICoincidenceMap::~TGCEIFICoincidenceMap() -{ -} - TGCEIFICoincidenceMap::TGCEIFICoincidenceMap(const TGCEIFICoincidenceMap& right) - : m_readCondKey(right.m_readCondKey) + : AthMessaging(Athena::getMessageSvc(), "LVL1TGC::TGCEIFICoincidenceMap"), + m_readCondKey(right.m_readCondKey) { ATH_MSG_DEBUG("copy constructor"); -- GitLab From 80e9a4b9ca8d100ad9eccb15e10f4e4ca9f37770 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 22 Jul 2020 12:11:24 +0200 Subject: [PATCH 091/459] TrigT1TGC: const fixes Fix most const-ness issues flagged by the thread-checker. --- .../TrigT1TGC/TGCConnectionASDToPP.h | 5 ++-- .../TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h | 30 ++++++++----------- .../TrigT1/TrigT1TGC/TrigT1TGC/TGCDoubletSB.h | 4 +-- .../TrigT1TGC/TGCElectronicsSystem.h | 8 +++-- Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEvent.h | 4 +-- .../TrigT1TGC/TrigT1TGC/TGCHitPattern.h | 5 ++-- .../TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerSB.h | 4 +-- .../TrigT1TGC/TGCInnerTrackletSlotHolder.h | 8 ++--- .../TrigT1TGC/TGCNSWCoincidenceMap.h | 3 +- .../TrigT1TGC/TrigT1TGC/TGCPatchPanel.h | 15 ++++------ .../TrigT1TGC/TGCRPhiCoincidenceMap.h | 6 ++-- .../TrigT1TGC/TGCRPhiCoincidenceMatrix.h | 13 +++----- .../TrigT1TGC/TrigT1TGC/TGCSSCController.h | 12 ++++---- .../TrigT1/TrigT1TGC/TrigT1TGC/TGCSector.h | 17 ++++------- .../TrigT1TGC/TrigT1TGC/TGCSectorLogic.h | 10 ++----- .../TrigT1TGC/TrigT1TGC/TGCSlaveBoard.h | 15 ++++------ .../TrigT1TGC/TrigT1TGC/TGCStripDoubletSB.h | 4 +-- .../TrigT1TGC/TGCTileMuCoincidenceMap.h | 17 +++-------- .../TrigT1TGC/TrigT1TGC/TGCWireDoubletSB.h | 4 +-- .../TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx | 8 ++--- .../TrigT1TGC/src/TGCConnectionASDToPP.cxx | 4 +-- .../TrigT1TGC/src/TGCDatabaseManager.cxx | 16 ++++------ Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx | 2 +- .../TrigT1TGC/src/TGCElectronicsSystem.cxx | 5 ++-- .../TrigT1/TrigT1TGC/src/TGCHitPattern.cxx | 2 +- Trigger/TrigT1/TrigT1TGC/src/TGCIndex.cxx | 8 ++--- Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx | 2 +- .../TrigT1/TrigT1TGC/src/TGCPatchPanel.cxx | 4 +-- .../src/TGCRPhiCoincidenceMatrix.cxx | 2 +- .../TrigT1/TrigT1TGC/src/TGCSSCController.cxx | 5 ++-- Trigger/TrigT1/TrigT1TGC/src/TGCSector.cxx | 6 ++-- .../TrigT1/TrigT1TGC/src/TGCSectorLogic.cxx | 7 +---- .../TrigT1/TrigT1TGC/src/TGCSlaveBoard.cxx | 9 ++---- 33 files changed, 102 insertions(+), 162 deletions(-) diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionASDToPP.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionASDToPP.h index 4d48a2dea77..339481055f8 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionASDToPP.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCConnectionASDToPP.h @@ -1,8 +1,7 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -//$Id: TGCConnectionASDToPP.h,v 1.1.1.10 2003-11-03 10:18:17 mishino Exp $ #ifndef TGCConnectionASDToPP_hh #define TGCConnectionASDToPP_hh @@ -14,7 +13,7 @@ namespace LVL1TGCTrigger { class TGCConnectionASDToPP { public: - int getConnection(const int sideId, const int layer, const int chamber, const int line, int* pp, int* connector, int* channel); + int getConnection(const int sideId, const int layer, const int chamber, const int line, int* pp, int* connector, int* channel) const; bool readData(TGCRegionType region, int type, TGCForwardBackwardType forward); // read database diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h index 049344ed912..1bc630385bc 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDatabaseManager.h @@ -44,11 +44,11 @@ class TGCDatabaseManager : public AthMessaging TGCDatabaseManager(const TGCDatabaseManager& right); TGCDatabaseManager& operator=(const TGCDatabaseManager& right); - TGCConnectionPPToSL* getConnectionPPToSL(TGCRegionType type) const; - TGCConnectionASDToPP* getConnectionASDToPP(TGCRegionType region, int type, TGCForwardBackwardType forwardBackward) const; - TGCRPhiCoincidenceMap* getRPhiCoincidenceMap(int sideId, int octantId) const; - TGCEIFICoincidenceMap* getEIFICoincidenceMap(int sideId) const; - TGCTileMuCoincidenceMap* getTileMuCoincidenceMap() const; + const TGCConnectionPPToSL* getConnectionPPToSL(TGCRegionType type) const; + const TGCConnectionASDToPP* getConnectionASDToPP(TGCRegionType region, int type, TGCForwardBackwardType forwardBackward) const; + const TGCRPhiCoincidenceMap* getRPhiCoincidenceMap(int sideId, int octantId) const; + const TGCEIFICoincidenceMap* getEIFICoincidenceMap(int sideId) const; + const TGCTileMuCoincidenceMap* getTileMuCoincidenceMap() const; std::shared_ptr<TGCNSWCoincidenceMap> getNSWCoincidenceMap(int sideId, int octantId, int moduleId) const; TGCConnectionInPP* getConnectionInPP(TGCPatchPanel* patchPanel) const; @@ -56,10 +56,11 @@ class TGCDatabaseManager : public AthMessaging void deleteConnectionPPToSL(); - static const std::string& getFilename(int type); + static std::string getFilename(int type); static const std::vector<std::string > splitCW(const std::string& input, char delimiter); - TGCArguments* tgcArgs() const; + TGCArguments* tgcArgs() { return m_tgcArgs; } + const TGCArguments* tgcArgs() const { return m_tgcArgs; } private: enum {NumberOfModuleInBW=9}; @@ -76,25 +77,20 @@ class TGCDatabaseManager : public AthMessaging TGCArguments* m_tgcArgs; }; -inline -TGCArguments* TGCDatabaseManager::tgcArgs() const { - return m_tgcArgs; -} - inline -TGCRPhiCoincidenceMap* TGCDatabaseManager::getRPhiCoincidenceMap(int sideId, int octantId) const +const TGCRPhiCoincidenceMap* TGCDatabaseManager::getRPhiCoincidenceMap(int sideId, int octantId) const { return m_mapRphi[sideId][octantId]; } inline -TGCEIFICoincidenceMap* TGCDatabaseManager::getEIFICoincidenceMap(int sideId) const +const TGCEIFICoincidenceMap* TGCDatabaseManager::getEIFICoincidenceMap(int sideId) const { return m_mapEIFI[sideId]; } inline -TGCTileMuCoincidenceMap* TGCDatabaseManager::getTileMuCoincidenceMap() const +const TGCTileMuCoincidenceMap* TGCDatabaseManager::getTileMuCoincidenceMap() const { return m_mapTileMu; } @@ -106,13 +102,13 @@ std::shared_ptr<TGCNSWCoincidenceMap> TGCDatabaseManager::getNSWCoincidenceMap(i } inline - TGCConnectionPPToSL* TGCDatabaseManager::getConnectionPPToSL(TGCRegionType type) const + const TGCConnectionPPToSL* TGCDatabaseManager::getConnectionPPToSL(TGCRegionType type) const { return m_PPToSL[type-1]; } inline - TGCConnectionASDToPP* TGCDatabaseManager::getConnectionASDToPP(TGCRegionType region, int type, TGCForwardBackwardType forwardBackward) const + const TGCConnectionASDToPP* TGCDatabaseManager::getConnectionASDToPP(TGCRegionType region, int type, TGCForwardBackwardType forwardBackward) const { return m_ASDToPP[region-1][type][forwardBackward]; } diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDoubletSB.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDoubletSB.h index 25e4e0199a1..35b90cb4d51 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDoubletSB.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCDoubletSB.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TGCDoubletSB_hh @@ -17,7 +17,7 @@ class TGCHitPattern; class TGCDoubletSB: public TGCSlaveBoard { public: - TGCDoubletSB( TGCArguments* ); + TGCDoubletSB( const TGCArguments* ); virtual ~TGCDoubletSB(); protected: diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCElectronicsSystem.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCElectronicsSystem.h index 1e52dd01496..b637db03687 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCElectronicsSystem.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCElectronicsSystem.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TGCElectronicsSystem_hh @@ -40,13 +40,15 @@ public: if ( (side<0) || (oct<0) || (mod<0) ) return 0; return m_sector[side][oct][mod]; }; - TGCTMDB* getTMDB() const {return m_tmdb;} + TGCTMDB* getTMDB() {return m_tmdb;} + const TGCTMDB* getTMDB() const {return m_tmdb;} std::shared_ptr<TGCNSW> getNSW() const {return m_nsw;} TGCElectronicsSystem(TGCArguments*, TGCDatabaseManager* database, bool isAtlas=true); ~TGCElectronicsSystem(); - TGCArguments* tgcArgs() const { return m_tgcArgs;} + TGCArguments* tgcArgs() { return m_tgcArgs;} + const TGCArguments* tgcArgs() const { return m_tgcArgs;} private: // hide default/copy constructor and assignment operator diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEvent.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEvent.h index e2f642f9ba0..396780b0f0c 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEvent.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCEvent.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // ==================================================================== @@ -81,7 +81,7 @@ public: else return m_vecASDOut[index-1]; } - std::vector<TGCASDOut*>& GetASDOutVector() const + const std::vector<TGCASDOut*>& GetASDOutVector() const { return (std::vector<TGCASDOut*>&)m_vecASDOut; } diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHitPattern.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHitPattern.h index 7ad4d1dce78..c6e65f6abe6 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHitPattern.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCHitPattern.h @@ -1,8 +1,7 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -//$Id: TGCHitPattern.h,v 1.1.1.10 2003-11-03 10:18:17 mishino Exp $ #ifndef TGCHitPattern_hh #define TGCHitPattern_hh #include <fstream> @@ -52,7 +51,7 @@ public: void replace(int pos, TGCHitPattern* hp); void del(int pos); void write(char* buf) const; - bool* getPatad(void) const; + const bool* getPatad(void) const; void reverse(int pos); const char* bool2char(void); diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerSB.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerSB.h index cddc39f705c..9801c278a40 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerSB.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerSB.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TGCInnerSB_hh @@ -14,7 +14,7 @@ const int NumberOfInnerSBData = 8; class TGCInnerSB: public TGCSlaveBoard { public: - TGCInnerSB( TGCArguments* ); + TGCInnerSB( const TGCArguments* ); virtual ~TGCInnerSB(){}; protected: diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlotHolder.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlotHolder.h index 61ea51d0d1c..c60abb77e02 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlotHolder.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCInnerTrackletSlotHolder.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TGCInnerTrackletSlotHolder_hh @@ -37,15 +37,13 @@ namespace LVL1TGCTrigger { // slot23, slot24, slot01, slot02 go to A01 phi0/phi1 Endcap SL }; - TGCArguments* tgcArgs() const; + const TGCArguments* tgcArgs() const { return m_tgcArgs; } private: TGCInnerTrackletSlot m_innerTrackletSlot[NUMBER_OF_SIDES][NUMBER_OF_SLOTS]; TGCArguments* m_tgcArgs; }; - inline TGCArguments* TGCInnerTrackletSlotHolder::tgcArgs() const { - return m_tgcArgs; - } + } //end of namespace bracket #endif // TGCInnerTrackletSlotHolder_hh diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSWCoincidenceMap.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSWCoincidenceMap.h index 9e9d02f0ed4..c8f914b1360 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSWCoincidenceMap.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCNSWCoincidenceMap.h @@ -47,7 +47,8 @@ public: TGCNSWCoincidenceMap(const TGCNSWCoincidenceMap& right); bool readMap(std::string moduleName, ReadCW_Type cw_type); bool readShift(); - TGCArguments* tgcArgs() const { return m_tgcArgs;} + TGCArguments* tgcArgs() { return m_tgcArgs;} + const TGCArguments* tgcArgs() const { return m_tgcArgs;} private: std::vector<short int> m_EtaPhi_CW[N_dEta][N_dPhi]; diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanel.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanel.h index a78b0e33633..bc08ed1145d 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanel.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCPatchPanel.h @@ -1,8 +1,7 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -//$Id: TGCPatchPanel.h,v 1.4 2008-08-10 11:36:44 isaya Exp $ #ifndef TGCPatchPanel_hh #define TGCPatchPanel_hh @@ -51,7 +50,7 @@ public: TGCPatchPanel* getAdjacentPP(int side) const { return m_PPAdj[side]; }; void setAdjacentPP(int side, TGCPatchPanel* PP); - void setASDOut(int connector, int ch, TGCASDOut* asdOut); + void setASDOut(int connector, int ch, const TGCASDOut* asdOut); TGCBIDOut* getBIDOut(int ch, int connector, int bunch); @@ -76,8 +75,8 @@ public: TGCPatchPanel(const TGCPatchPanel& right); TGCPatchPanel& operator=(const TGCPatchPanel& right); - TGCArguments* tgcArgs() const; - + const TGCArguments* tgcArgs() const { return m_tgcArgs; } + private: void showResult() const; void doBID(); @@ -97,7 +96,7 @@ private: int m_nHit; // 18-Jan-01 Added by KH TGCPatchPanelOut* m_PPOut[NumberOfPatchPanelOut]; - TGCASDOut* m_ASDOut[NChOfPPOutputConnector][MaxNumberOfConnector]; + const TGCASDOut* m_ASDOut[NChOfPPOutputConnector][MaxNumberOfConnector]; TGCBIDOut* m_BIDOut[NChOfPPOutputConnector][MaxNumberOfConnector][NumberOfBunchKeptInPP]; TGCPatchPanel* m_PPAdj[2]; // pointer to adjacent board. TGCConnectionInPP* m_connectionInPP; @@ -106,10 +105,6 @@ private: }; - inline TGCArguments* TGCPatchPanel::tgcArgs() const { - return m_tgcArgs; - } - } //end of namespace bracket #endif // TGCPatchPanel_hh diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMap.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMap.h index 92538476936..9f90891a7bc 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMap.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMap.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TGCRPhiCoincidenceMap_hh @@ -47,7 +47,7 @@ public: bool readMap(); // for Run2 bool readMap_Run3();// for Run3 - TGCArguments* tgcArgs() const; + const TGCArguments* tgcArgs() const; private: // hide default constructor TGCRPhiCoincidenceMap() = delete; @@ -91,7 +91,7 @@ private: }; inline -TGCArguments* TGCRPhiCoincidenceMap::tgcArgs() const { +const TGCArguments* TGCRPhiCoincidenceMap::tgcArgs() const { return m_tgcArgs; } diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMatrix.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMatrix.h index cdee8a4c2e5..725d79668f8 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMatrix.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCRPhiCoincidenceMatrix.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TGCRPhiCoincidenceMatrix_hh @@ -25,13 +25,13 @@ public: void clear(); TGCRPhiCoincidenceOut* doCoincidence(); - TGCRPhiCoincidenceMatrix(TGCArguments*, const TGCSectorLogic* sL=0); + TGCRPhiCoincidenceMatrix(const TGCArguments*, const TGCSectorLogic* sL=0); virtual ~TGCRPhiCoincidenceMatrix(); TGCRPhiCoincidenceMatrix(const TGCRPhiCoincidenceMatrix& right); TGCRPhiCoincidenceMatrix& operator=(const TGCRPhiCoincidenceMatrix& right); - TGCArguments* tgcArgs() const ; + const TGCArguments* tgcArgs() const { return m_tgcArgs; } private: @@ -51,14 +51,9 @@ private: int m_dPhi[MaxNPhiHit]; int m_ptPhi[MaxNPhiHit]; - TGCArguments* m_tgcArgs; + const TGCArguments* m_tgcArgs; }; -inline -TGCArguments* TGCRPhiCoincidenceMatrix::tgcArgs() const { - return m_tgcArgs; -} - } //end of namespace bracket #endif // TGCRPhiCoincidenceMatrix_hh diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCController.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCController.h index 88d1edc4021..aa59e7e5bd2 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCController.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSSCController.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TGCSSCController_hh @@ -16,7 +16,7 @@ class TGCSectorLogic; class TGCSSCController { public: - TGCSSCController( TGCArguments*, const TGCSectorLogic* sL=0 ); + TGCSSCController( const TGCArguments*, const TGCSectorLogic* sL=0 ); virtual ~TGCSSCController(){} TGCSSCControllerOut* distribute(TGCHighPtChipOut* wire[], TGCHighPtChipOut* strip); @@ -24,7 +24,7 @@ public: int getNumberOfWireHighPtBoard(){return m_NumberOfWireHighPtBoard;}; void setRegion(TGCRegionType regionIn){ m_region=regionIn;}; - TGCArguments* tgcArgs() const; + const TGCArguments* tgcArgs() const { return m_tgcArgs; } private: const TGCSectorLogic* m_sectorLogic; @@ -34,11 +34,9 @@ private: int getPhiPosInSSC(int chip, int block) const; int m_NumberOfWireHighPtBoard; TGCRegionType m_region; - TGCArguments* m_tgcArgs; + const TGCArguments* m_tgcArgs; }; - inline TGCArguments* TGCSSCController::tgcArgs() const { - return m_tgcArgs; - } + } //end of namespace bracket #endif diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSector.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSector.h index a4f0c795825..c70d46e9767 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSector.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSector.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TGCSector_h @@ -65,7 +65,7 @@ public: TGCPatchPanel* getPP(int type, int index) const; TGCSlaveBoard* getSB(int type, int index) const; TGCHighPtBoard* getHPB(int type, int index) const; - TGCSectorLogic* getSL() const; + TGCSectorLogic* getSL() { return m_SL; } int getNumberOfPP(int type) const; int getNumberOfSB(int type) const; @@ -79,7 +79,8 @@ public: int getOctantId() const { return m_octantId; } int getModuleId() const { return m_moduleId; } - TGCArguments* tgcArgs() const; + TGCArguments* tgcArgs() { return m_tgcArgs; } + const TGCArguments* tgcArgs() const { return m_tgcArgs; } private: const TGCTMDB* getTMDB() const { return m_TMDB; } @@ -113,7 +114,7 @@ private: int m_moduleId; TGCForwardBackwardType m_forwardBackward; - TGCConnectionASDToPP* m_ASDToPP[NumberOfPatchPanelType]; + const TGCConnectionASDToPP* m_ASDToPP[NumberOfPatchPanelType]; int m_numberOfPP[NumberOfPatchPanelType]; TGCPatchPanel** m_PP[NumberOfPatchPanelType]; @@ -132,11 +133,6 @@ private: }; -inline -TGCArguments* TGCSector::tgcArgs() const { - return m_tgcArgs; -} - inline bool TGCSector::hasHit() const { @@ -163,9 +159,6 @@ inline if ((type<0) || (index<0)) return 0; return m_HPB[type][index]; } -inline - TGCSectorLogic* TGCSector::getSL() const -{ return m_SL;} inline int TGCSector::getNumberOfPP(int type) const { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSectorLogic.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSectorLogic.h index 36d19241636..54a8d15c3a2 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSectorLogic.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSectorLogic.h @@ -47,7 +47,7 @@ class TGCSectorLogic { public: TGCSectorLogic(const TGCSectorLogic& right); - TGCSLSelectorOut* getSelectorOutput() const; + const TGCSLSelectorOut* getSelectorOutput() const { return m_selectorOut; } void getTrackSelectorOutput(std::shared_ptr<TGCTrackSelectorOut> &trackSelectorOut)const ; int getTileMuonWord() const; @@ -92,7 +92,8 @@ public: void setInnerTrackletSlots(const TGCInnerTrackletSlot* innerTrackletSlots[]); - TGCArguments* tgcArgs() const; + TGCArguments* tgcArgs() { return m_tgcArgs; } + const TGCArguments* tgcArgs() const { return m_tgcArgs; } protected: enum {MaxNumberOfWireHighPtBoard =2}; @@ -151,11 +152,6 @@ private: TGCArguments* m_tgcArgs; }; -inline -TGCArguments* TGCSectorLogic::tgcArgs() const { - return m_tgcArgs; -} - inline int TGCSectorLogic::getNumberOfSubSectorCluster() const { diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoard.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoard.h index 24b6b0c8c11..37a06907a05 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoard.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCSlaveBoard.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TGCSlaveBoard_hh @@ -30,13 +30,13 @@ class TGCSlaveBoard { public: - TGCSlaveBoard( TGCArguments* ); + TGCSlaveBoard( const TGCArguments* ); virtual ~TGCSlaveBoard(); TGCSlaveBoard(const TGCSlaveBoard& right); TGCSlaveBoard& operator=(const TGCSlaveBoard& right); void clockIn(int bidIn); - TGCSlaveBoardOut* getOutput() const; + TGCSlaveBoardOut* getOutput() { return m_slaveBoardOut; } void eraseOutput(); int getId() const { return m_id;}; @@ -61,7 +61,7 @@ public: void storeSlbIn(); const std::bitset<200>& GetSlbIn(void) const { return m_slbin; } // for readout - TGCArguments* tgcArgs() const; + const TGCArguments* tgcArgs() const { return m_tgcArgs; } protected: void collectInput(); @@ -86,15 +86,10 @@ protected: TGCPatchPanelOut* m_patchPanelOut; std::bitset<200> m_slbin; // store SlaveBoard input for readout - TGCArguments* m_tgcArgs; + const TGCArguments* m_tgcArgs; }; - inline TGCArguments* TGCSlaveBoard::tgcArgs() const { - return m_tgcArgs; - } - - } //end of namespace bracket #endif // TGCSlaveBoard_hh diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripDoubletSB.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripDoubletSB.h index 334b1b67611..8ef62769433 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripDoubletSB.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCStripDoubletSB.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TGCStripDoubletSB_hh @@ -11,7 +11,7 @@ namespace LVL1TGCTrigger { class TGCStripDoubletSB : public TGCDoubletSB { public: - TGCStripDoubletSB(TGCArguments* tgcargs):TGCDoubletSB(tgcargs){ + TGCStripDoubletSB(const TGCArguments* tgcargs):TGCDoubletSB(tgcargs){ m_maxDev=3; m_nChAdj=0; m_iChBase=1; diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTileMuCoincidenceMap.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTileMuCoincidenceMap.h index a2587360a9b..dfa9a5986eb 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTileMuCoincidenceMap.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCTileMuCoincidenceMap.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TGCTileMuCoincidenceMap_hh @@ -51,13 +51,14 @@ public: const int sec, const int side ) const; - const std::string& getVersion() const; + const std::string& getVersion() const { return m_verName; } void dumpMap() const; bool readMap(); - TGCArguments* tgcArgs() const; + TGCArguments* tgcArgs() { return m_tgcArgs; } + const TGCArguments* tgcArgs() const { return m_tgcArgs; } protected: enum {N_Side=2}; @@ -80,16 +81,6 @@ private: const SG::ReadCondHandleKey<TGCTriggerData>& m_readCondKey; }; -inline TGCArguments* TGCTileMuCoincidenceMap::tgcArgs() const { - return m_tgcArgs; -} - -inline - const std::string& TGCTileMuCoincidenceMap::getVersion() const -{ - return m_verName; -} - } //end of namespace bracket #endif // TGCTileMuCoincidenceMap_hh diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireDoubletSB.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireDoubletSB.h index f3941911a02..e7d15e3ad3d 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireDoubletSB.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/TGCWireDoubletSB.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TGCWireDoubletSB_hh @@ -10,7 +10,7 @@ namespace LVL1TGCTrigger { class TGCWireDoubletSB : public TGCDoubletSB { public: - TGCWireDoubletSB(TGCArguments* tgcargs):TGCDoubletSB(tgcargs){ + TGCWireDoubletSB(const TGCArguments* tgcargs):TGCDoubletSB(tgcargs){ m_maxDev=7; m_nChAdj=4; m_iChBase=9; diff --git a/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx b/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx index 3f293920bcc..c69ff0d3100 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx @@ -323,7 +323,7 @@ namespace LVL1TGCTrigger { if(i==1) subsystem = LVL1MUONIF::Lvl1MuCTPIInput::idSideC(); if (m_OutputTgcRDO.value()) recordRdoSL(sector, subsystem); - TGCSLSelectorOut* selectorOut = sector->getSL()->getSelectorOutput(); + const TGCSLSelectorOut* selectorOut = sector->getSL()->getSelectorOutput(); std::shared_ptr<TGCTrackSelectorOut> trackSelectorOut; sector->getSL()->getTrackSelectorOutput(trackSelectorOut); @@ -620,7 +620,7 @@ namespace LVL1TGCTrigger { TGCSlaveBoard * slb = sector->getSB(itype, index); if (0==slb) continue; id = slb->getId(); - TGCSlaveBoardOut * out = slb->getOutput(); + const TGCSlaveBoardOut * out = slb->getOutput(); if (0==out) continue; bool isEIFI = (moduleType==TgcRawData::SLB_TYPE_INNER_WIRE || @@ -898,7 +898,7 @@ namespace LVL1TGCTrigger { // Tile - TGCTMDB* tmdb = m_system->getTMDB(); + const TGCTMDB* tmdb = m_system->getTMDB(); int inner_tile = tmdb->getInnerTileBits(sector->getSideId(), sectorId); if (inner_tile > 0) { @@ -927,7 +927,7 @@ namespace LVL1TGCTrigger { void LVL1TGCTrigger::recordRdoSL(TGCSector * sector, unsigned int subsystem) { // check if whether trigger exists or not - TGCSLSelectorOut* selectorOut = sector->getSL()->getSelectorOutput(); + const TGCSLSelectorOut* selectorOut = sector->getSL()->getSelectorOutput(); if (selectorOut ==0) return; if (selectorOut->getNCandidate()==0) return; diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionASDToPP.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionASDToPP.cxx index 70ef1ce4b01..93548f695ce 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionASDToPP.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCConnectionASDToPP.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include <iostream> @@ -21,7 +21,7 @@ namespace LVL1TGCTrigger { const int TGCConnectionASDToPP::s_forwardLayer[] = {2, 1, 0, 4, 3, 6, 5, 8, 7}; int TGCConnectionASDToPP::getConnection(const int /*sideId*/, const int layer, const int chamber, - const int line, int* pp, int* connector, int* channel) + const int line, int* pp, int* connector, int* channel) const { int i; for( i=0; i<m_totalNumberOfChannel; i+=1){ diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCDatabaseManager.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCDatabaseManager.cxx index d0fb4c1ac42..753eabd811c 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCDatabaseManager.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCDatabaseManager.cxx @@ -264,23 +264,17 @@ TGCDatabaseManager::operator=(const TGCDatabaseManager& right) return *this; } -const std::string& TGCDatabaseManager::getFilename(int type) +std::string TGCDatabaseManager::getFilename(int type) { - static std::string fn=""; switch (type) { case 0: //ASD2PP - fn = "MuonTGC_Cabling_ASD2PP.db"; - break; + return "MuonTGC_Cabling_ASD2PP.db"; case 1: //PP - fn = "MuonTGC_Cabling_PP.db"; - break; + return "MuonTGC_Cabling_PP.db"; case 2: //PP2SL - fn = "MuonTGC_Cabling_PP2SL.db"; - break; - default: - break; + return "MuonTGC_Cabling_PP2SL.db"; } - return fn; + return ""; } const std::vector<std::string> TGCDatabaseManager::splitCW(const std::string& input, char delimiter) diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx index 5bff629e1d9..de682e578bd 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCDoubletSB.cxx @@ -12,7 +12,7 @@ namespace LVL1TGCTrigger { -TGCDoubletSB::TGCDoubletSB( TGCArguments* tgcargs) +TGCDoubletSB::TGCDoubletSB(const TGCArguments* tgcargs) :TGCSlaveBoard(tgcargs), m_priorSign(1),m_numberOfData(2),m_nChInBlock(32), m_maxDev(0),m_posMaxDev(0),m_negMaxDev(0),m_nChAdj(0),m_iChBase(0), diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCElectronicsSystem.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCElectronicsSystem.cxx index 40f7b79a9a1..0b3b0bfbeec 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCElectronicsSystem.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCElectronicsSystem.cxx @@ -1,8 +1,7 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -//$Id: TGCElectronicsSystem.cxx,v 1.13 2009-05-04 11:39:44 isaya Exp $ #include "TrigT1TGC/TGCElectronicsSystem.h" #include "TrigT1TGC/TGCASDOut.h" #include "TrigT1TGC/TGCDatabaseManager.h" @@ -15,7 +14,7 @@ namespace LVL1TGCTrigger { void TGCElectronicsSystem::distributeSignal(LVL1TGCTrigger::TGCEvent* event) { - std::vector<LVL1TGCTrigger::TGCASDOut*>& vecASDOut= event->GetASDOutVector(); + const std::vector<LVL1TGCTrigger::TGCASDOut*>& vecASDOut= event->GetASDOutVector(); event=0; size_t i; for( i=0; i< vecASDOut.size(); i++) { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx index b8a5bbc3129..d92868c3511 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCHitPattern.cxx @@ -403,7 +403,7 @@ void TGCHitPattern::write(char* buf) const } } -bool* TGCHitPattern::getPatad(void) const +const bool* TGCHitPattern::getPatad(void) const { return m_pattern; } diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCIndex.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCIndex.cxx index 7fda07bf401..c9db9016cfd 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCIndex.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCIndex.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // ==================================================================== @@ -20,9 +20,9 @@ namespace LVL1TGCTrigger { // // ==================================================================== -static const char* strStation[5]= { "N/A", "T1", "T2", "T3", "TI" }; -static const char* strRegion[3]= { "N/A", "F", "E" }; -static const char* strModule[7]= { "N/A", "A", "B", "C", "D", "E", "F" }; +static const char* const strStation[5]= { "N/A", "T1", "T2", "T3", "TI" }; +static const char* const strRegion[3]= { "N/A", "F", "E" }; +static const char* const strModule[7]= { "N/A", "A", "B", "C", "D", "E", "F" }; // ==================================================================== diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx index d3e292a7ded..62e6ab12645 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCInnerSB.cxx @@ -10,7 +10,7 @@ namespace LVL1TGCTrigger { -TGCInnerSB::TGCInnerSB(TGCArguments* tgcargs):TGCSlaveBoard(tgcargs) +TGCInnerSB::TGCInnerSB(const TGCArguments* tgcargs):TGCSlaveBoard(tgcargs) {} void TGCInnerSB::createSlaveBoardOut() diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCPatchPanel.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCPatchPanel.cxx index ffc7020fe74..807f914d908 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCPatchPanel.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCPatchPanel.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "TrigT1TGC/TGCPatchPanel.h" @@ -467,7 +467,7 @@ void TGCPatchPanel::eraseOutput(int SBId) m_PPOut[i]=0; } -void TGCPatchPanel::setASDOut(int ch, int connector, TGCASDOut* asdOut) +void TGCPatchPanel::setASDOut(int ch, int connector, const TGCASDOut* asdOut) { #ifdef TGCDEBUG std::cout << "TGCPatchPanel::setASDOut " diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceMatrix.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceMatrix.cxx index 1cdfb2c4c1c..eacfe21ae7d 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceMatrix.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCRPhiCoincidenceMatrix.cxx @@ -150,7 +150,7 @@ void TGCRPhiCoincidenceMatrix::setRPhiMap(const TGCRPhiCoincidenceMap* map) this->m_map = map; } -TGCRPhiCoincidenceMatrix::TGCRPhiCoincidenceMatrix(TGCArguments* tgcargs,const TGCSectorLogic* sL) +TGCRPhiCoincidenceMatrix::TGCRPhiCoincidenceMatrix(const TGCArguments* tgcargs,const TGCSectorLogic* sL) : m_sectorLogic(sL), m_matrixOut(0), m_map(0), m_nPhiHit(0), m_SSCId(0), m_r(0), m_dR(0), m_ptR(0), m_tgcArgs(tgcargs) diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSSCController.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSSCController.cxx index d77aac247c7..5842bed92fa 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSSCController.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSSCController.cxx @@ -1,8 +1,7 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -//$Id: TGCSSCController.cxx,v 1.6 2009-03-15 18:07:55 isaya Exp $ #include "TrigT1TGC/TGCSSCController.h" #include "TrigT1TGC/TGCSSCControllerOut.h" #include "TrigT1TGC/TGCSectorLogic.h" @@ -13,7 +12,7 @@ namespace LVL1TGCTrigger { //constructor -TGCSSCController::TGCSSCController(TGCArguments* tgcargs, const TGCSectorLogic* sL) +TGCSSCController::TGCSSCController(const TGCArguments* tgcargs, const TGCSectorLogic* sL) :m_sectorLogic(sL), m_NumberOfWireHighPtBoard(0), m_region(FORWARD), m_tgcArgs(tgcargs) { diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSector.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSector.cxx index 18fb4690eef..f21a634ca83 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSector.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSector.cxx @@ -52,7 +52,7 @@ int TGCSector::distributeSignal(const TGCASDOut* ASDOut) } if(!notFound){ - m_PP[PPType][idPP]->setASDOut(chPP,conPP,(TGCASDOut*)ASDOut); + m_PP[PPType][idPP]->setASDOut(chPP,conPP,ASDOut); m_numberOfHit+=1; return 0; } @@ -75,7 +75,7 @@ int TGCSector::getPatchPanelType(TGCSignalType signal, int layer) const } } -TGCSector::TGCSector( TGCArguments* tgcargs) +TGCSector::TGCSector(TGCArguments* tgcargs) : m_id(0), m_regionType(FORWARD), m_numberOfHit(0), m_sideId(0), m_octantId(0), m_moduleId(0), m_forwardBackward(ForwardSector), @@ -127,7 +127,7 @@ TGCSector::TGCSector( TGCArguments* tgcargs) } } - TGCConnectionPPToSL* PPToSL = db->getConnectionPPToSL(m_regionType); + const TGCConnectionPPToSL* PPToSL = db->getConnectionPPToSL(m_regionType); // make PatchPanel Boards, Slave Boards, HighPt Boards, SectorLogic. setModule(PPToSL); // dumpModule(); diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSectorLogic.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSectorLogic.cxx index 2b88af9b03f..16655c5b673 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSectorLogic.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSectorLogic.cxx @@ -123,12 +123,7 @@ void TGCSectorLogic::setStripHighPtBoard(TGCHighPtBoard* highPtBoard) m_stripHighPtBoard = highPtBoard; } -TGCSLSelectorOut* TGCSectorLogic::getSelectorOutput() const -{ - return m_selectorOut; -} - - void TGCSectorLogic::getTrackSelectorOutput(std::shared_ptr<TGCTrackSelectorOut> &trackSelectorOut)const +void TGCSectorLogic::getTrackSelectorOutput(std::shared_ptr<TGCTrackSelectorOut> &trackSelectorOut)const { trackSelectorOut=m_trackSelectorOut; } diff --git a/Trigger/TrigT1/TrigT1TGC/src/TGCSlaveBoard.cxx b/Trigger/TrigT1/TrigT1TGC/src/TGCSlaveBoard.cxx index aebbb1d6bb7..e29d1d06c8f 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/TGCSlaveBoard.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/TGCSlaveBoard.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "TrigT1TGC/TGCSlaveBoard.h" @@ -10,7 +10,7 @@ namespace LVL1TGCTrigger { -TGCSlaveBoard::TGCSlaveBoard( TGCArguments* tgcargs ) +TGCSlaveBoard::TGCSlaveBoard( const TGCArguments* tgcargs ) :m_lengthOfCoincidenceOut(0),m_coincidenceOut(0), m_slaveBoardOut(0), m_id(0), m_bid(-1),m_idHighPtBoard(0), @@ -225,11 +225,6 @@ void TGCSlaveBoard::doDecluster() } } -TGCSlaveBoardOut* TGCSlaveBoard::getOutput() const -{ - return m_slaveBoardOut; -} - void TGCSlaveBoard::eraseOutput() { m_slaveBoardOut=0; -- GitLab From 2537984f98d3be777c027122b96bcb422a306884 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 22 Jul 2020 12:27:31 +0200 Subject: [PATCH 092/459] LVL1TGCTrigger: Remove static "firstTime" variable Use a member variable instead of a static to do first event initialization. Ideally this code should be converted to using a conditions algorithm. But at least this way it will work in case we are running multiple clones of this algorithm. --- Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h | 4 ++-- Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h index b3520d0b65d..078f9ede41a 100644 --- a/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h +++ b/Trigger/TrigT1/TrigT1TGC/TrigT1TGC/LVL1TGCTrigger.h @@ -157,9 +157,9 @@ namespace LVL1TGCTrigger { BooleanProperty m_USENSW{this,"USENSW",false}; // flag for using NSW BooleanProperty m_useRun3Config{this,"useRun3Config",false}; // flag for using switch between Run3 and Run2 algorithms - + bool m_firstTime{true}; uint16_t m_bctagInProcess; - + TGCDatabaseManager *m_db; TGCTimingManager *m_TimingManager; TGCElectronicsSystem *m_system; diff --git a/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx b/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx index c69ff0d3100..7c097722af7 100644 --- a/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx +++ b/Trigger/TrigT1/TrigT1TGC/src/LVL1TGCTrigger.cxx @@ -154,11 +154,10 @@ namespace LVL1TGCTrigger { // doMaskOperation is performed at the first event // It is better to implement callback against // MuonTGC_CablingSvc::updateCableASDToPP (Susumu Oda, 2010/10/27) - static bool firstTime = true; - if(firstTime) { + if(m_firstTime) { // do mask operation if(getMaskedChannel().isFailure()) return StatusCode::FAILURE; - firstTime = false; + m_firstTime = false; } StatusCode sc = StatusCode::SUCCESS; -- GitLab From 9b1c48190230447a43826621b7c8701a14394741 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Wed, 22 Jul 2020 12:15:31 +0100 Subject: [PATCH 093/459] Removing no file check. No change to compilation --- .../MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx index 2fb356ccbfa..0a3dc61f317 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx @@ -8,7 +8,6 @@ /// in order to prevent complex adjustments in the core decode functions /// As such, it should not be flagged at this stage as unsafe #include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; #include "RpcRdoToPrepDataTool.h" -- GitLab From fc7eee25cebbb83d3d0b1e1019aa010c78085c6d Mon Sep 17 00:00:00 2001 From: Denis Damazio <damazio@mail.cern.ch> Date: Wed, 22 Jul 2020 14:16:20 +0200 Subject: [PATCH 094/459] Continues to move tests from TrigUpgraTest to better suited packages --- Trigger/TrigAlgorithms/TrigT2CaloCommon/CMakeLists.txt | 3 +++ .../TrigT2CaloCommon}/share/Calo.py | 0 .../TrigT2CaloCommon}/share/CaloRinger.py | 0 .../TrigT2CaloCommon/test/test_t2calo_cf_build.sh} | 0 .../TrigT2CaloCommon/test/test_t2calo_only_build.sh} | 2 +- .../TrigT2CaloCommon/test/test_t2calo_ringer_only_build.sh} | 2 +- 6 files changed, 5 insertions(+), 2 deletions(-) rename Trigger/{TrigValidation/TrigUpgradeTest => TrigAlgorithms/TrigT2CaloCommon}/share/Calo.py (100%) rename Trigger/{TrigValidation/TrigUpgradeTest => TrigAlgorithms/TrigT2CaloCommon}/share/CaloRinger.py (100%) rename Trigger/{TrigValidation/TrigUpgradeTest/test/test_trigUpgr_calo_cf_build.sh => TrigAlgorithms/TrigT2CaloCommon/test/test_t2calo_cf_build.sh} (100%) rename Trigger/{TrigValidation/TrigUpgradeTest/test/test_trigUpgr_calo_only_build.sh => TrigAlgorithms/TrigT2CaloCommon/test/test_t2calo_only_build.sh} (92%) rename Trigger/{TrigValidation/TrigUpgradeTest/test/test_trigUpgr_calo_ringer_only_build.sh => TrigAlgorithms/TrigT2CaloCommon/test/test_t2calo_ringer_only_build.sh} (90%) diff --git a/Trigger/TrigAlgorithms/TrigT2CaloCommon/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigT2CaloCommon/CMakeLists.txt index 38fcdcf5050..118cc52bb73 100644 --- a/Trigger/TrigAlgorithms/TrigT2CaloCommon/CMakeLists.txt +++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/CMakeLists.txt @@ -37,3 +37,6 @@ endfunction( _add_test ) _add_test( TestService test/test_dataaccess.sh ) _add_test( TestServiceNewJO test/test_dataaccessNewJO.sh ) +_add_test( caloCf test/test_t2calo_cf_build.sh ) +_add_test( caloOnly test/test_t2calo_only_build.sh ) +_add_test( caloRinger test/test_t2calo_ringer_only_build.sh ) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/Calo.py b/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/Calo.py similarity index 100% rename from Trigger/TrigValidation/TrigUpgradeTest/share/Calo.py rename to Trigger/TrigAlgorithms/TrigT2CaloCommon/share/Calo.py diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py b/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/CaloRinger.py similarity index 100% rename from Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py rename to Trigger/TrigAlgorithms/TrigT2CaloCommon/share/CaloRinger.py diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_calo_cf_build.sh b/Trigger/TrigAlgorithms/TrigT2CaloCommon/test/test_t2calo_cf_build.sh similarity index 100% rename from Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_calo_cf_build.sh rename to Trigger/TrigAlgorithms/TrigT2CaloCommon/test/test_t2calo_cf_build.sh diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_calo_only_build.sh b/Trigger/TrigAlgorithms/TrigT2CaloCommon/test/test_t2calo_only_build.sh similarity index 92% rename from Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_calo_only_build.sh rename to Trigger/TrigAlgorithms/TrigT2CaloCommon/test/test_t2calo_only_build.sh index ff59ca560c7..7ab73ae4541 100755 --- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_calo_only_build.sh +++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/test/test_t2calo_only_build.sh @@ -8,7 +8,7 @@ export EVENTS=20 export THREADS=1 export SLOTS=1 -export JOBOPTION="TrigUpgradeTest/Calo.py" +export JOBOPTION="TrigT2CaloCommon/Calo.py" # Skip dumping chain counts because this test doesn't produce the histogram including them export SKIP_CHAIN_DUMP=1 diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_calo_ringer_only_build.sh b/Trigger/TrigAlgorithms/TrigT2CaloCommon/test/test_t2calo_ringer_only_build.sh similarity index 90% rename from Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_calo_ringer_only_build.sh rename to Trigger/TrigAlgorithms/TrigT2CaloCommon/test/test_t2calo_ringer_only_build.sh index 48035fac8b1..1de726f2d48 100755 --- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_calo_ringer_only_build.sh +++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/test/test_t2calo_ringer_only_build.sh @@ -8,7 +8,7 @@ export EVENTS=20 export THREADS=1 export SLOTS=1 -export JOBOPTION="TrigUpgradeTest/CaloRinger.py" +export JOBOPTION="TrigT2CaloCommon/CaloRinger.py" # Skip dumping chain counts because this test doesn't produce the histogram including them export SKIP_CHAIN_DUMP=1 -- GitLab From b8f744635afc309a7afc0661d62ef01e1e2188a2 Mon Sep 17 00:00:00 2001 From: lbazzano <lisandro.tomas.bazzano.hurrell@cern.ch> Date: Wed, 22 Jul 2020 19:34:08 +0200 Subject: [PATCH 095/459] Added time monitoring to JetConstituentModSequence, created OnlineMon.py tool --- .../JetRecConfig/python/ConstModHelpers.py | 5 +++-- Reconstruction/Jet/JetRecTools/CMakeLists.txt | 11 ++++++++-- .../JetRecTools/JetConstituentModSequence.h | 3 +++ .../Root/JetConstituentModSequence.cxx | 16 +++++++++++++- .../Jet/JetRecTools/python/OnlineMon.py | 12 +++++++++++ .../HLTMenuConfig/Jet/JetRecoSequences.py | 21 ++++++++++++------- 6 files changed, 55 insertions(+), 13 deletions(-) create mode 100644 Reconstruction/Jet/JetRecTools/python/OnlineMon.py diff --git a/Reconstruction/Jet/JetRecConfig/python/ConstModHelpers.py b/Reconstruction/Jet/JetRecConfig/python/ConstModHelpers.py index ce43bab58ff..a3625a451b0 100644 --- a/Reconstruction/Jet/JetRecConfig/python/ConstModHelpers.py +++ b/Reconstruction/Jet/JetRecConfig/python/ConstModHelpers.py @@ -51,7 +51,7 @@ ConstModConfigs = { "SK": {} } -def getConstitModAlg(constit,suffix="",tvaKey="JetTrackVtxAssoc",vtxKey="PrimaryVertices"): +def getConstitModAlg(constit,suffix="",tvaKey="JetTrackVtxAssoc",vtxKey="PrimaryVertices",monTool=None): inputtype = constit.basetype # Need to extend to TCC @@ -114,7 +114,8 @@ def getConstitModAlg(constit,suffix="",tvaKey="JetTrackVtxAssoc",vtxKey="Primary InputType=inputtype, OutputContainer = outputcontainer, InputContainer= inputcontainer, - Modifiers = modlist + Modifiers = modlist, + MonTool = monTool ) constitmodalg = CompFactory.JetAlgorithm("jetalg_{0}".format(modseq.getName())) diff --git a/Reconstruction/Jet/JetRecTools/CMakeLists.txt b/Reconstruction/Jet/JetRecTools/CMakeLists.txt index 24e1acefa90..79a35e4e060 100644 --- a/Reconstruction/Jet/JetRecTools/CMakeLists.txt +++ b/Reconstruction/Jet/JetRecTools/CMakeLists.txt @@ -7,6 +7,13 @@ atlas_subdir( JetRecTools ) find_package( FastJet ) find_package( FastJetContrib COMPONENTS SoftKiller ConstituentSubtractor ) +set( mon_deps ) +set( mon_lib ) +if( NOT GENERATIONBASE ) + set( mon_deps Control/AthenaMonitoringKernel ) + set( mon_lib AthenaMonitoringKernelLib ) +endif() + # Component(s) in the package. atlas_add_library( JetRecToolsLib JetRecTools/*.h Root/*.cxx @@ -16,13 +23,13 @@ atlas_add_library( JetRecToolsLib LINK_LIBRARIES ${FASTJET_LIBRARIES} AthContainers AsgTools xAODPFlow xAODTracking xAODCore xAODBase xAODCaloEvent xAODEgamma xAODJet TrackVertexAssociationToolLib JetEDM JetInterface JetRecLib - InDetTrackSelectionToolLib PFlowUtilsLib + InDetTrackSelectionToolLib PFlowUtilsLib AthenaMonitoringKernelLib PRIVATE_LINK_LIBRARIES ${FASTJETCONTRIB_LIBRARIES} xAODTruth ) if( NOT XAOD_STANDALONE ) atlas_add_component( JetRecTools src/components/*.cxx - LINK_LIBRARIES JetRecToolsLib ) + LINK_LIBRARIES JetRecToolsLib AthenaMonitoringKernelLib) endif() # Install files from the package. diff --git a/Reconstruction/Jet/JetRecTools/JetRecTools/JetConstituentModSequence.h b/Reconstruction/Jet/JetRecTools/JetRecTools/JetConstituentModSequence.h index ae65b61714a..d9bd8670609 100644 --- a/Reconstruction/Jet/JetRecTools/JetRecTools/JetConstituentModSequence.h +++ b/Reconstruction/Jet/JetRecTools/JetRecTools/JetConstituentModSequence.h @@ -26,6 +26,7 @@ #include "xAODTracking/TrackParticleContainer.h" #include "xAODPFlow/PFOContainer.h" +#include "AthenaMonitoringKernel/GenericMonitoringTool.h" class JetConstituentModSequence: public asg::AsgTool, virtual public IJetExecuteTool { // Changed from IJetExecute @@ -53,6 +54,8 @@ protected: ToolHandleArray<IJetConstituentModifier> m_modifiers; + ToolHandle<GenericMonitoringTool> m_monTool{this,"MonTool","","Monitoring tool"}; + bool m_saveAsShallow = true; // note: not all keys will be used for a particular instantiation diff --git a/Reconstruction/Jet/JetRecTools/Root/JetConstituentModSequence.cxx b/Reconstruction/Jet/JetRecTools/Root/JetConstituentModSequence.cxx index 751d6410a4a..ff7941e16ae 100644 --- a/Reconstruction/Jet/JetRecTools/Root/JetConstituentModSequence.cxx +++ b/Reconstruction/Jet/JetRecTools/Root/JetConstituentModSequence.cxx @@ -20,6 +20,7 @@ #include "xAODPFlow/TrackCaloCluster.h" #include "xAODPFlow/TrackCaloClusterContainer.h" #include "xAODPFlow/TrackCaloClusterAuxContainer.h" +#include "AthenaMonitoringKernel/Monitored.h" JetConstituentModSequence::JetConstituentModSequence(const std::string &name): asg::AsgTool(name), @@ -44,6 +45,8 @@ StatusCode JetConstituentModSequence::initialize() { ATH_CHECK( m_modifiers.retrieve() ); + if (!m_monTool.empty()) ATH_CHECK(m_monTool.retrieve()); + // Set and initialise DataHandleKeys only for the correct input type // Die if the input type is unsupported switch(m_inputType) { @@ -90,6 +93,12 @@ StatusCode JetConstituentModSequence::initialize() { int JetConstituentModSequence::execute() const { + // Define monitored quantities + auto t_exec = Monitored::Timer<std::chrono::milliseconds>( "TIME_execute" ); + auto t_subtract = Monitored::Timer<std::chrono::milliseconds>( "TIME_subtract" ); + // Explicitly start/stop the timer around the subtraction tool calls + t_subtract.start(); + // Create the shallow copy according to the input type switch(m_inputType){ @@ -128,7 +137,12 @@ int JetConstituentModSequence::execute() const { } } - + + //Explicitly start/stop the timer around the subtraction tool calls + t_subtract.stop(); + + auto mon = Monitored::Group(m_monTool, t_exec, t_subtract); + return 0; } diff --git a/Reconstruction/Jet/JetRecTools/python/OnlineMon.py b/Reconstruction/Jet/JetRecTools/python/OnlineMon.py new file mode 100644 index 00000000000..9824dac3d98 --- /dev/null +++ b/Reconstruction/Jet/JetRecTools/python/OnlineMon.py @@ -0,0 +1,12 @@ +def getMonTool_Algorithm(path): + from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool + monTool = GenericMonitoringTool('MonTool') + + #monTool.HistPath = 'MyGroup/MySubDir' # default is the parent name of MonTool + monTool.HistPath = path + + monTool.defineHistogram( 'TIME_execute', path='EXPERT', type='TH1F', title='Counts', + xbins=100, xmin=0, xmax=1000 ) + monTool.defineHistogram( 'TIME_subtract', path='EXPERT', type='TH1F', title='Counts', + xbins=100, xmin=0, xmax=1000 ) + return monTool diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoSequences.py index 9edd076d045..dd8227c24b0 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoSequences.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Jet/JetRecoSequences.py @@ -143,12 +143,23 @@ def jetRecoSequence( dummyFlags, dataSource, RoIs = 'FSJETRoI', **jetRecoDict): jetDef = JetRecoConfiguration.defineJets(jetRecoDict,clustersKey=clustersKey) useConstitMods = ["sktc","cssktc", "pf", "csskpf"] doConstitMods = jetRecoDict["dataType"] in useConstitMods + + # chosen jet collection + jetsFullName = jetNamePrefix+jetDef.basename+"Jets_"+jetRecoDict["jetCalib"] + if jetRecoDict["trkopt"] != "notrk": + jetsFullName += "_{}".format(jetRecoDict["trkopt"]) + sequenceOut = recordable(jetsFullName) + if doConstitMods: + # Get online monitoring jet rec tool + from JetRecTools import OnlineMon + monJetRecTool = OnlineMon.getMonTool_Algorithm("HLTJets/"+jetsFullName+"/") + from JetRecConfig.ConstModHelpers import getConstitModAlg if jetRecoDict["trkopt"] == "notrk": - recoSeq += getConstitModAlg(jetDef.inputdef,"HLT") + recoSeq += getConstitModAlg(jetDef.inputdef,suffix="HLT",tvaKey="JetTrackVtxAssoc",vtxKey="PrimaryVertices",monTool=monJetRecTool) else: - recoSeq += getConstitModAlg(jetDef.inputdef,"HLT",tvaKey=trkcolls["TVA"],vtxKey=trkcolls["Vertices"]) + recoSeq += getConstitModAlg(jetDef.inputdef,suffix="HLT",tvaKey=trkcolls["TVA"],vtxKey=trkcolls["Vertices"],monTool=monJetRecTool) # Add the PseudoJetGetter alg to the sequence constitPJAlg = getConstitPJGAlg( jetDef.inputdef ) @@ -159,12 +170,6 @@ def jetRecoSequence( dummyFlags, dataSource, RoIs = 'FSJETRoI', **jetRecoDict): pjs = [constitPJKey] if trkcolls: pjs.append(trkcolls["GhostTracks"]) - - # chosen jet collection - jetsFullName = jetNamePrefix+jetDef.basename+"Jets_"+jetRecoDict["jetCalib"] - if jetRecoDict["trkopt"] != "notrk": - jetsFullName += "_{}".format(jetRecoDict["trkopt"]) - sequenceOut = recordable(jetsFullName) from JetRecConfig import JetRecConfig jetModList = [] -- GitLab From f6b15cc87bc56e44d470076caddca971157565de Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Wed, 22 Jul 2020 22:40:47 +0200 Subject: [PATCH 096/459] Move to L1Decoder new configuration --- .../TriggerJobOpts/python/TriggerConfig.py | 3 ++- .../TriggerJobOpts/share/runHLT_standalone.py | 25 ++++++------------- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py index 986c5afa265..2f941f86d22 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py @@ -521,7 +521,7 @@ def triggerRunCfg( flags, seqName = None, menu=None ): acc.merge( triggerIDCCacheCreatorsCfg( flags, seqName ) ) from L1Decoder.L1DecoderConfig import L1DecoderCfg - l1DecoderAcc, l1DecoderAlg = L1DecoderCfg( flags ) + l1DecoderAcc = L1DecoderCfg( flags ) acc.merge( l1DecoderAcc ) @@ -540,6 +540,7 @@ def triggerRunCfg( flags, seqName = None, menu=None ): acc.merge( summaryAcc ) #once menu is included we should configure monitoring here as below + l1DecoderAlg = l1DecoderAcc.getEventAlgo("L1Decoder") monitoringAcc, monitoringAlg = triggerMonitoringCfg( flags, hypos, filters, l1DecoderAlg ) acc.merge( monitoringAcc ) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py index 8d4cc9c5028..d15bcff1704 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py @@ -160,6 +160,8 @@ else: # athenaHLT rec.RunNumber =_run_number del _run_number +ConfigFlags.Input.Format = 'BS' if globalflags.InputFormat=='bytestream' else 'RDO' + # Set final Cond/Geo tag based on input file, command line or default globalflags.DetDescrVersion = opt.setDetDescr or TriggerFlags.OnlineGeoTag() @@ -451,25 +453,12 @@ hltTop += hltBeginSeq l1decoder = None if opt.doL1Unpacking: - if globalflags.InputFormat.is_bytestream(): - # Create inputs for L1Decoder from ByteStream - from TrigT1ResultByteStream.TrigT1ResultByteStreamConfig import L1ByteStreamDecodersRecExSetup - L1ByteStreamDecodersRecExSetup() if globalflags.InputFormat.is_bytestream() or opt.doL1Sim: - # TODO: replace with L1DecoderCfg - from L1Decoder.L1DecoderConfig import L1Decoder - l1decoder = L1Decoder("L1Decoder") - l1decoder.ctpUnpacker.ForceEnableAllChains = opt.forceEnableAllChains - l1decoder.RoIBResult = "RoIBResult" if opt.enableL1CaloLegacy or not opt.enableL1Phase1 else "" - l1decoder.L1TriggerResult = "L1TriggerResult" if opt.enableL1Phase1 else "" - if opt.enableL1Phase1: - from L1Decoder.L1DecoderConfig import getL1TriggerResultMaker - hltBeginSeq += conf2toConfigurable(getL1TriggerResultMaker()) - if TriggerFlags.doTransientByteStream(): - transTypeKey = ("TransientBSOutType","StoreGateSvc+TransientBSOutKey") - l1decoder.ExtraInputs += [transTypeKey] - - hltBeginSeq += conf2toConfigurable(l1decoder) + ConfigFlags.Trigger.L1Decoder.forceEnableAllChains = opt.forceEnableAllChains + from L1Decoder.L1DecoderConfig import L1DecoderCfg + CAtoGlobalWrapper(L1DecoderCfg, ConfigFlags, seqName="HLTBeginSeq") + from AthenaCommon.CFElements import findAlgorithm + l1decoder = hltBeginSeq.L1Decoder else: from TrigUpgradeTest.TestUtils import L1EmulationTest hltBeginSeq += L1EmulationTest() -- GitLab From 268ad5b46853b5e4cc1089eb9621e50dc5d3f9ac Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Wed, 22 Jul 2020 22:42:10 +0200 Subject: [PATCH 097/459] Make L1DecoderCfg accessible in any sequence, clean up extra configuration --- .../L1Decoder/python/L1DecoderConfig.py | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py b/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py index 9e55a14576a..a6bb8b23b29 100644 --- a/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py +++ b/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py @@ -151,7 +151,7 @@ class L1Decoder(CompFactory.L1Decoder) : self.L1DecoderSummaryKey = "L1DecoderSummary" -def L1DecoderCfg(flags): +def L1DecoderCfg(flags, seqName = None): from AthenaCommon.Configurable import Configurable Configurable.configurableRun3Behavior += 1 @@ -160,7 +160,7 @@ def L1DecoderCfg(flags): #from L1Decoder.L1DecoderConf import L1Decoder, CTPUnpackingTool from L1Decoder.L1DecoderMonitoring import CTPUnpackingMonitoring - acc = ComponentAccumulator() + acc = ComponentAccumulator(sequenceName = seqName) decoderAlg = CompFactory.L1Decoder() decoderAlg.RoIBResult = "RoIBResult" if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1Phase1 else "" @@ -168,6 +168,10 @@ def L1DecoderCfg(flags): decoderAlg.L1DecoderSummaryKey = "L1DecoderSummary" # Transient, consumed by DecisionSummaryMakerAlg decoderAlg.ctpUnpacker = CompFactory.CTPUnpackingTool( ForceEnableAllChains = flags.Trigger.L1Decoder.forceEnableAllChains, MonTool = CTPUnpackingMonitoring(512, 200) ) + #Transient bytestream + if flags.Input.Format == "RDO": + transTypeKey = ("TransientBSOutType","StoreGateSvc+TransientBSOutKey") + decoderAlg.ExtraInputs += [transTypeKey] @@ -177,9 +181,6 @@ def L1DecoderCfg(flags): decoderAlg.roiUnpackers += unpackers decoderAlg.rerunRoiUnpackers += rerunUnpackers - from MuonConfig.MuonCablingConfig import RPCCablingConfigCfg, TGCCablingConfigCfg - acc.merge( TGCCablingConfigCfg( flags ) ) - acc.merge( RPCCablingConfigCfg( flags ) ) unpackers, rerunUnpackers = createMuonRoIUnpackers() decoderAlg.roiUnpackers += unpackers decoderAlg.rerunRoiUnpackers += rerunUnpackers @@ -188,22 +189,20 @@ def L1DecoderCfg(flags): decoderAlg.DoCostMonitoring = flags.Trigger.CostMonitoring.doCostMonitoring decoderAlg.CostMonitoringChain = flags.Trigger.CostMonitoring.chain - from TrigConfigSvc.TrigConfigSvcCfg import TrigConfigSvcCfg, HLTPrescaleCondAlgCfg - acc.merge( TrigConfigSvcCfg( flags ) ) - acc.merge( HLTPrescaleCondAlgCfg( flags ) ) + acc.addEventAlgo( decoderAlg, sequenceName = seqName ) if flags.Input.Format == "BS": # Add the algorithm decoding ByteStream into xAOD (Run-3 L1) and/or RoIBResult (legacy L1) from TrigT1ResultByteStream.TrigT1ResultByteStreamConfig import L1TriggerByteStreamDecoderCfg - acc.merge( L1TriggerByteStreamDecoderCfg(flags) ) + acc.merge( L1TriggerByteStreamDecoderCfg(flags), sequenceName = seqName ) # Add the algorithm creating L1TriggerResult which is the input to L1Decoder (Run-3 L1) if flags.Trigger.enableL1Phase1: - acc.addEventAlgo( getL1TriggerResultMaker() ) + acc.addEventAlgo( getL1TriggerResultMaker(), sequenceName = seqName ) Configurable.configurableRun3Behavior -= 1 - return acc,decoderAlg + return acc if __name__ == "__main__": from AthenaCommon.Configurable import Configurable @@ -213,8 +212,14 @@ if __name__ == "__main__": ConfigFlags.Trigger.L1Decoder.forceEnableAllChains= True ConfigFlags.Input.Files= ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1",] ConfigFlags.lock() - acc, alg = L1DecoderCfg( ConfigFlags ) - acc.addEventAlgo(alg) + acc = L1DecoderCfg( ConfigFlags ) + from TrigConfigSvc.TrigConfigSvcCfg import TrigConfigSvcCfg, HLTPrescaleCondAlgCfg + acc.merge( TrigConfigSvcCfg( ConfigFlags ) ) + acc.merge( HLTPrescaleCondAlgCfg( ConfigFlags ) ) + from MuonConfig.MuonCablingConfig import RPCCablingConfigCfg, TGCCablingConfigCfg + acc.merge( TGCCablingConfigCfg( ConfigFlags ) ) + acc.merge( RPCCablingConfigCfg( ConfigFlags ) ) + f=open("L1DecoderConf.pkl","wb") acc.store(f) -- GitLab From 525c23455d390d281de91192bba546da1ae6b0db Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Thu, 23 Jul 2020 11:54:53 +0200 Subject: [PATCH 098/459] Add sequence to topSequence earlier --- .../TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py index d15bcff1704..99926ece234 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py @@ -450,6 +450,7 @@ from AthenaCommon.CFElements import seqOR,parOR hltTop = seqOR("HLTTop") hltBeginSeq = parOR("HLTBeginSeq") hltTop += hltBeginSeq +topSequence += hltTop l1decoder = None if opt.doL1Unpacking: @@ -457,14 +458,11 @@ if opt.doL1Unpacking: ConfigFlags.Trigger.L1Decoder.forceEnableAllChains = opt.forceEnableAllChains from L1Decoder.L1DecoderConfig import L1DecoderCfg CAtoGlobalWrapper(L1DecoderCfg, ConfigFlags, seqName="HLTBeginSeq") - from AthenaCommon.CFElements import findAlgorithm - l1decoder = hltBeginSeq.L1Decoder + l1Decoder = hltBeginSeq.L1Decoder else: from TrigUpgradeTest.TestUtils import L1EmulationTest hltBeginSeq += L1EmulationTest() -topSequence += hltTop - # --------------------------------------------------------------- # Level 1 simulation # --------------------------------------------------------------- -- GitLab From b95c430dfe2e38b8bc9e254c4ea149a25fc50295 Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Thu, 23 Jul 2020 11:55:10 +0200 Subject: [PATCH 099/459] Simplify finding L1Decoder --- .../python/HLTMenuConfig/Menu/HLTCFConfig.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py index 3ae06485187..0a34e3d35c9 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py @@ -127,9 +127,8 @@ def makeHLTTree(newJO=False, triggerConfigHLT = None): # find main HLT top sequence (already set up in runHLT_standalone) - from AthenaCommon.CFElements import findSubSequence - hltBeginSeq = findSubSequence(topSequence, "HLTBeginSeq") - l1decoder = [ d for d in hltBeginSeq.getChildren() if d.getType() == "L1Decoder" ] + from AthenaCommon.CFElements import findSubSequence,findAlgorithm + l1decoder = findAlgorithm(topSequence, "L1Decoder") # add the HLT steps Node steps = seqAND("HLTAllSteps") @@ -165,10 +164,10 @@ def makeHLTTree(newJO=False, triggerConfigHLT = None): Configurable.configurableRun3Behavior=0 hltEndSeq += conf2toConfigurable( summaryAlg ) appendCAtoAthena( summaryAcc ) - decObj = collectDecisionObjects( hypos, filters, l1decoder[0], summaryAlg ) + decObj = collectDecisionObjects( hypos, filters, l1decoder, summaryAlg ) decObjHypoOut = collectHypoDecisionObjects(hypos, inputs=False, outputs=True) Configurable.configurableRun3Behavior=1 - monAcc, monAlg = triggerMonitoringCfg( ConfigFlags, hypos, filters, l1decoder[0] ) + monAcc, monAlg = triggerMonitoringCfg( ConfigFlags, hypos, filters, l1decoder ) edmAlg = triggerMergeViewsAndAddMissingEDMCfg(['AOD', 'ESD'], hypos, viewMakers, decObj, decObjHypoOut) Configurable.configurableRun3Behavior=0 hltEndSeq += conf2toConfigurable( monAlg ) -- GitLab From 4c77da93034aac9b0b31a7d50774d2d9a2189925 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Thu, 23 Jul 2020 13:49:49 +0200 Subject: [PATCH 100/459] TrigValTools: Add unit test for rootcomp.py --- .../TrigValTools/CMakeLists.txt | 4 ++ .../TrigValTools/test/test_rootcomp.C | 36 +++++++++++++++ .../TrigValTools/test/test_rootcomp.sh | 45 +++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 Trigger/TrigValidation/TrigValTools/test/test_rootcomp.C create mode 100755 Trigger/TrigValidation/TrigValTools/test/test_rootcomp.sh diff --git a/Trigger/TrigValidation/TrigValTools/CMakeLists.txt b/Trigger/TrigValidation/TrigValTools/CMakeLists.txt index f49eff884a7..caca5e2565c 100644 --- a/Trigger/TrigValidation/TrigValTools/CMakeLists.txt +++ b/Trigger/TrigValidation/TrigValTools/CMakeLists.txt @@ -42,3 +42,7 @@ atlas_add_test( TrigValSteering_unit_test PROPERTIES TIMEOUT 300 POST_EXEC_SCRIPT nopost.sh ) +atlas_add_test( rootcomp + SCRIPT test/test_rootcomp.sh ${CMAKE_CURRENT_SOURCE_DIR}/test/test_rootcomp.C + PROPERTIES TIMEOUT 120 + POST_EXEC_SCRIPT nopost.sh ) diff --git a/Trigger/TrigValidation/TrigValTools/test/test_rootcomp.C b/Trigger/TrigValidation/TrigValTools/test/test_rootcomp.C new file mode 100644 index 00000000000..bd3266216a7 --- /dev/null +++ b/Trigger/TrigValidation/TrigValTools/test/test_rootcomp.C @@ -0,0 +1,36 @@ +// Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +// Create two ROOT files with histograms used in test_rootcomp.sh +{ + // Histogram for both files: + TH1D h1("h1", "", 10, 0, 10); + h1.Fill(5); + { + TFile f("hist1.root", "RECREATE"); + h1.Write(); + + TH1D hr("hrandom", "", 10, 0, 10); + hr.FillRandom("gaus", 1000); + + TH1D hl("hlabel", "", 5, 0, 5); + hl.Fill("a", 1); + hl.Fill("b", 2); + + TH1D h2("hextra", "", 10, 0, 10); + + f.Write(); + } + + { + TFile f("hist2.root", "RECREATE"); + h1.Write(); + + TH1D hr("hrandom", "", 10, 0, 10); + hr.FillRandom("gaus", 1000); + + TH1D hl("hlabel", "", 4, 0, 4); // one less (empty) bin than above + hl.Fill("b", 2); + hl.Fill("a", 1); + + f.Write(); + } +} diff --git a/Trigger/TrigValidation/TrigValTools/test/test_rootcomp.sh b/Trigger/TrigValidation/TrigValTools/test/test_rootcomp.sh new file mode 100755 index 00000000000..9ee20934588 --- /dev/null +++ b/Trigger/TrigValidation/TrigValTools/test/test_rootcomp.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# +# Unit test for rootcomp.py + +if [ -z "$1" ]; then + echo "Usage: $0 root.C" + exit 1 +fi + +# Helpers: +assert_pass() { + eval $@ || exit 1 +} + +assert_fail() { + eval $@ && exit 1 +} + +# Create histogram files: +assert_pass root -l -b -n -q $1 + +# Check default options: +assert_pass rootcomp.py hist1.root hist1.root +assert_pass test -f rootcomp.root +assert_pass test -f rootcomp.ps + +# Default options for the following specific tests: +opts="--noSkipList --noPS --noRoot" + +# Check regular histogram: +assert_pass rootcomp.py hist1.root hist2.root $opts --select h1 + +# Check label sorting: +assert_pass rootcomp.py hist1.root hist2.root $opts --skip hrandom --sortLabels + +# Check failure for random histogram: +assert_fail rootcomp.py hist1.root hist2.root $opts --sortLabels + +# Missing references: +assert_fail rootcomp.py hist2.root hist1.root $opts --skip hrandom --sortLabels +assert_pass rootcomp.py hist2.root hist1.root $opts --skip hrandom --sortLabels --ignoreMissingRef + +# If we get here all tests succeeded: +exit 0 -- GitLab From 61caf009b31831fedadfbf903af6840a2366bb51 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Thu, 23 Jul 2020 14:37:11 +0200 Subject: [PATCH 101/459] TrigValTools: enable flake8 and make code compliant Run flake8 on all python modules and scripts in the package. Delete obsolete trigslimval.py (ATR-20090). --- .../TrigValTools/CMakeLists.txt | 25 +- .../TrigValTools/bin/COOLRates.py | 17 +- .../TrigValTools/bin/check_log.py | 54 +- .../TrigValTools/bin/histSizes.py | 17 +- .../TrigValTools/bin/regtest.py | 34 +- .../TrigValTools/bin/root2html.py | 6 +- .../TrigValTools/bin/rootcomp.py | 45 +- .../TrigValTools/bin/trigDumpTimers.py | 16 +- .../TrigValTools/bin/trigslimval.py | 540 ------------------ .../test/test_unit_trigvalsteering.py | 3 +- 10 files changed, 81 insertions(+), 676 deletions(-) delete mode 100755 Trigger/TrigValidation/TrigValTools/bin/trigslimval.py diff --git a/Trigger/TrigValidation/TrigValTools/CMakeLists.txt b/Trigger/TrigValidation/TrigValTools/CMakeLists.txt index caca5e2565c..6bc41d4302e 100644 --- a/Trigger/TrigValidation/TrigValTools/CMakeLists.txt +++ b/Trigger/TrigValidation/TrigValTools/CMakeLists.txt @@ -1,42 +1,33 @@ -################################################################################ -# Package: TrigValTools -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( TrigValTools ) # External dependencies: -find_package( ROOT COMPONENTS Hist Graf Gpad RIO Core Tree MathCore pthread Graf3d Html Postscript Gui GX11TTF GX11 ) - -include_directories(src) +find_package( ROOT COMPONENTS Hist Graf Gpad RIO Core MathCore Postscript ) # Component(s) in the package: atlas_add_library( TrigValTools src/*.cxx PUBLIC_HEADERS TrigValTools - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ) + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} ) atlas_add_dictionary( TrigValToolsDict TrigValTools/TrigValToolsDict.h TrigValTools/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} TrigValTools ) + LINK_LIBRARIES TrigValTools ) # Install files from the package: -atlas_install_python_modules( python/*.py python/TrigValSteering bin/chainDump.py ) +atlas_install_python_modules( python/*.py python/TrigValSteering bin/chainDump.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) +atlas_install_scripts( bin/*.py test/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) +atlas_install_scripts( bin/*.pl bin/*.sh ) atlas_install_data( share/*.json share/*.conf ) -atlas_install_runtime( bin/chainDump.py ) -atlas_install_scripts( bin/*.py bin/*.pl bin/*.sh test/*.py ) atlas_install_generic( html/root2html/*.html DESTINATION share/TrigValTools/root2html EXECUTABLE ) # Unit tests: -atlas_add_test( TrigValSteering_flake8 - SCRIPT flake8 --select=ATL,F,E7,E9,W6 --enable-extension=ATL900,ATL901 ${CMAKE_CURRENT_SOURCE_DIR}/python/TrigValSteering - POST_EXEC_SCRIPT nopost.sh ) - atlas_add_test( TrigValSteering_unit_test SCRIPT test_unit_trigvalsteering.py PROPERTIES TIMEOUT 300 diff --git a/Trigger/TrigValidation/TrigValTools/bin/COOLRates.py b/Trigger/TrigValidation/TrigValTools/bin/COOLRates.py index 1f1d37e5cc4..a5ec94e6668 100755 --- a/Trigger/TrigValidation/TrigValTools/bin/COOLRates.py +++ b/Trigger/TrigValidation/TrigValTools/bin/COOLRates.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration #==================================================================================================================== @@ -13,8 +13,6 @@ __doc__ = "Fast Rate plotter from COOL database" from PyCool import cool from multiprocessing import Queue, cpu_count, Process from time import sleep -import random -import copy import argparse,sys,logging,time,os from math import log10 import signal @@ -45,7 +43,7 @@ if __name__=='__main__': parser.add_argument('-m','--processes',dest='PROCESSES',default=2,type=int,help='Sets number of processes for multiprocessing retrieval of COOL data') args = parser.parse_args() -from ROOT import gDirectory, TDatime, TProfile, TH1F, TCanvas, TLegend, TGaxis, gROOT, gStyle, SetOwnership, TColor, TLatex +from ROOT import TDatime, TProfile, TCanvas, TLegend, TGaxis, gROOT, SetOwnership, TColor, TLatex #==================================================================================================================== @@ -145,7 +143,7 @@ class COOLQueryWorker(): break resultBundle = self.processQuery(queryBundle) queueOut.put(resultBundle) - except Exception,exception: + except Exception as exception: logger.critical(exception) self.close() @@ -265,7 +263,7 @@ class QueryBundle(): self.IoVEnd = IoVEnd for request in payloadRequests: if not len(request)==3: - print payloadRequests + print(payloadRequests) sys.exit(0) self.payloadRequests = payloadRequests self.payloadRequirements = payloadRequirements @@ -315,7 +313,7 @@ def rateNameInfo(runLbRanges,mySignal,numProc=1): except Empty: sleep(.001) continue - if run == True: + if run is True: break runLbStart=run<<32 runLbEnd=runLbStart+1 @@ -400,7 +398,7 @@ def rateNameInfo(runLbRanges,mySignal,numProc=1): except Empty: time.sleep(.001) continue - if result == True: + if result is True: finished+=1 if finished==numProc: break continue @@ -561,7 +559,7 @@ def timeRangeToRunLbRange(timeRange): try: timeStart = time.strptime(timeStart,'%Y-%m-%d:%H:%M:%S') timeEnd = time.strptime(timeEnd,'%Y-%m-%d:%H:%M:%S') - except: + except Exception: logger.critical('Time range "{0}" does not match YYYY-MM-DD:HH:mm:ss;YYYY-MM-DD:HH:mm:ss'.format(timeRange)) sys.exit(0) @@ -600,7 +598,6 @@ def nanoTimeRangesToRunLbRanges(nanoTimeRanges): #==================================================================================================================== def fillNumberToRunLbRange(fillNumbers): - runLbRanges = [] minFill = min(fillNumbers)-1 worker = COOLQueryWorker() result = {} diff --git a/Trigger/TrigValidation/TrigValTools/bin/check_log.py b/Trigger/TrigValidation/TrigValTools/bin/check_log.py index 9c4271afa98..75e21bf84d8 100755 --- a/Trigger/TrigValidation/TrigValTools/bin/check_log.py +++ b/Trigger/TrigValidation/TrigValTools/bin/check_log.py @@ -15,24 +15,24 @@ If no config file is provided, all errors will be shown.' # Error keywords errorRegex = [ - '^ERROR ', ' ERROR ', ' FATAL ', 'CRITICAL ', 'ABORT_CHAIN', - '^Exception\:', - '^Caught signal', - '^Core dump', - 'inconsistent use of tabs and spaces in indentation', - 'glibc detected', - 'tcmalloc\: allocation failed', - 'athenaHLT.py\: error', - 'HLTMPPU.*Child Issue', - 'HLTMPPU.*Configuration Issue', - 'There was a crash', - 'illegal instruction', - 'failure loading library', - 'Cannot allocate memory', - 'in state: CONTROLREADY$', - '^\s*missing data: ', - '^\s*can be produced by alg(s): ', - 'pure virtual method called' + r'^ERROR ', ' ERROR ', ' FATAL ', 'CRITICAL ', 'ABORT_CHAIN', + r'^Exception\:', + r'^Caught signal', + r'^Core dump', + r'inconsistent use of tabs and spaces in indentation', + r'glibc detected', + r'tcmalloc\: allocation failed', + r'athenaHLT.py\: error', + r'HLTMPPU.*Child Issue', + r'HLTMPPU.*Configuration Issue', + r'There was a crash', + r'illegal instruction', + r'failure loading library', + r'Cannot allocate memory', + r'in state: CONTROLREADY$', + r'^\s*missing data: ', + r'^\s*can be produced by alg(s): ', + r'pure virtual method called' ] # Add list of all builtin Python errors @@ -42,11 +42,11 @@ errorRegex.extend(builtinErrors) # Traceback keywords traceback = [ - 'Traceback', - 'Shortened traceback', - 'stack trace', - '^Algorithm stack', - '^#\d+\s*0x\w+ in ' + r'Traceback', + r'Shortened traceback', + r'stack trace', + r'^Algorithm stack', + r'^#\d+\s*0x\w+ in ' ] errorRegex.extend(traceback) @@ -113,7 +113,7 @@ def parseConfig(): line = line[1:-1] ignorePattern.append(line) noConfig = False - except: + except Exception: print('No config file, all warnings/errors will be printed') noConfig = True @@ -124,9 +124,9 @@ def scanLogfile(): tPattern = re.compile('|'.join(traceback)) global msgLevels global logFileAddress - if args.warnings == True: + if args.warnings is True: pattern = warningRegex - if args.errors == True: + if args.errors is True: pattern = errorRegex msgLevels = re.compile('|'.join(pattern)) igLevels = re.compile('|'.join(ignorePattern)) @@ -136,7 +136,7 @@ def scanLogfile(): tracing = False for line in logFile: #Tracing only makes sense for errors - if args.errors == True and re.search(tPattern,line): + if args.errors is True and re.search(tPattern,line): tracing = True elif line =='\n': tracing = False diff --git a/Trigger/TrigValidation/TrigValTools/bin/histSizes.py b/Trigger/TrigValidation/TrigValTools/bin/histSizes.py index 4ea3c2d3d37..10d30e3bd52 100755 --- a/Trigger/TrigValidation/TrigValTools/bin/histSizes.py +++ b/Trigger/TrigValidation/TrigValTools/bin/histSizes.py @@ -13,11 +13,11 @@ def filledBins(h): return sum([1 for i in range(N) if h.At(i)!=0]) def hasLabels(h): - return (h.GetXaxis().GetLabels()!=None) + return (h.GetXaxis().GetLabels() is not None) def missingLabels(h): l = h.GetXaxis().GetLabels() - return (l!=None and h.GetXaxis().GetNbins()!=l.GetSize()) + return (l is not None and h.GetXaxis().GetNbins()!=l.GetSize()) def addDirList(dir,path,hists): list=dir.GetListOfKeys() @@ -29,9 +29,9 @@ def addDirList(dir,path,hists): else: h = key.ReadObj() if not h.InheritsFrom('TH1'): continue - if opts.labeled==True and not hasLabels(h): continue - if opts.misslabel==True and not missingLabels(h): continue - if opts.empty==True and h.GetEntries()>0: continue + if opts.labeled is True and not hasLabels(h): continue + if opts.misslabel is True and not missingLabels(h): continue + if opts.empty is True and h.GetEntries()>0: continue b = filledBins(h) if opts.filled else h.GetSize() hists[path+name]=(cname,b) @@ -58,8 +58,7 @@ def byName(hists, nameFunc): return algs def byAlg(hists): - f = lambda h : h.split('/',2)[1] - return byName(hists, f) + return byName(hists, lambda h : h.split('/',2)[1]) def main(): @@ -108,11 +107,11 @@ def main(): if not opts.byAlg: opts.byName = True - if opts.byName==True: + if opts.byName is True: for h,v in sorted(hists.items(), key=sortKey): print('%-80s %10s %10s' % (h,v[0],v[1])) - if opts.byAlg==True: + if opts.byAlg is True: algs = byAlg(hists) for h,v in sorted(algs.items(), key=sortKey): print('%-80s %10s %10s' % (h,v[0],v[1])) diff --git a/Trigger/TrigValidation/TrigValTools/bin/regtest.py b/Trigger/TrigValidation/TrigValTools/bin/regtest.py index e13ea5aceca..84d6aa0d859 100755 --- a/Trigger/TrigValidation/TrigValTools/bin/regtest.py +++ b/Trigger/TrigValidation/TrigValTools/bin/regtest.py @@ -1,6 +1,8 @@ #!/usr/bin/env python -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +from __future__ import print_function import re import argparse @@ -18,7 +20,7 @@ def progErrorExit(message, exitcode): failkey except NameError: failkey = 'FAILURE' - print 'regtest.py:', failkey, message + print('regtest.py: %s %s' % (failkey, message)) sys.exit(exitcode) def commandLine(): @@ -66,12 +68,12 @@ def commandLine(): ) global args args = parser.parse_args() - if help == True: + if help is True: usage() progErrorExit('usage', -1) def usage(): - print''' + print(''' Usage: regtest.py [options] Testing tool for comparing marked lines in a log file against a reference @@ -95,7 +97,7 @@ def usage(): Technical info: Lines which match the regular expression - ''' + ''') def regtest(): with open(args.inputfile,'r') as inpfile: @@ -105,29 +107,29 @@ def regtest(): matchline += 1 if matchline == 0: - print '=== Alert!', failkey, 'no lines matching', linematch, 'in LOG' + print('=== Alert!', failkey, 'no lines matching', linematch, 'in LOG') result = True exit() - if debug == True: - print 'regtest.py,: debug: diff -b', args.inputfile, args.reffile + if debug is True: + print('regtest.py,: debug: diff -b', args.inputfile, args.reffile) command = 'diff -b ' + args.inputfile + ' ' + args.reffile rc = os.system(command) - if rc == False: - print '=== Output is the same as reference.' + if rc is False: + print('=== Output is the same as reference.') # result = False result = 0 else: - print '''=== Alert!''', failkey, '''input file (<) differs from reference (>) - If this change is understood, to update the reference file please type: - cp ''', args.inputfile, args.reffile -# result = True + print('''=== Alert!''', failkey, '''input file (<) differs from reference (>) + If this change is understood, to update the reference file please type: + cp ''', args.inputfile, args.reffile) + # result = True result = 1 - if debug == True: - print 'regtest.py debug: returning result', result + if debug is True: + print('regtest.py debug: returning result', result) return result if __name__ == '__main__': diff --git a/Trigger/TrigValidation/TrigValTools/bin/root2html.py b/Trigger/TrigValidation/TrigValTools/bin/root2html.py index 2e7fbaeeb78..0fbd03e0d8c 100755 --- a/Trigger/TrigValidation/TrigValTools/bin/root2html.py +++ b/Trigger/TrigValidation/TrigValTools/bin/root2html.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # @file: root2html.py # @purpose: Generate the index.htm for a list of root files # @author: Will Buttinger @@ -27,8 +27,6 @@ html_template = """ import sys -import os -from AthenaCommon.Utils.unixtools import FindFile def main(): @@ -48,7 +46,7 @@ def main(): o_html.writelines(html_template%d) o_html.flush() o_html.close() - print "Wrote index.htm file" + print("Wrote index.htm file") return 0 diff --git a/Trigger/TrigValidation/TrigValTools/bin/rootcomp.py b/Trigger/TrigValidation/TrigValTools/bin/rootcomp.py index b9fcbba5610..da161d2e9a8 100755 --- a/Trigger/TrigValidation/TrigValTools/bin/rootcomp.py +++ b/Trigger/TrigValidation/TrigValTools/bin/rootcomp.py @@ -9,44 +9,6 @@ from __future__ import print_function import sys import os import os.path -from TrigValTools.TrigRootUtils import lsroot - - -def diffFiles(ref,file,opts): - """Compare the keys in both files""" - - import ROOT - tref = ROOT.TFile(ref) - tfile = ROOT.TFile(file) - if tref.IsZombie() or tfile.IsZombie(): return - - lsref = lsroot(tref.GetDirectory(opts.refBaseDir)) - lsfile = lsroot(tfile.GetDirectory(opts.fileBaseDir)) - tref.Close() - tfile.Close() - del tref - del tfile - - diff = list(set(lsref).difference(set(lsfile))) - - import re - selection = lambda x: True - - # Only show diffs that are not on the skip list ... - if len(opts.skip)>0: - selection = lambda x : not reduce(lambda a,b:a|b,[re.search(pat,x)!=None for pat in opts.skip]) - # ... or pass the selection - elif len(opts.select)>0: - selection = lambda x : reduce(lambda a,b:a|b,[re.search(pat,x)!=None for pat in opts.select]) - - refonly = filter(selection,filter(lambda s:s[0]=='-',diff)) - - if len(refonly)>0: - print("\nHistograms only found in reference:") - for s in refonly: print(s) - - return - def main(): @@ -184,12 +146,12 @@ def main(): # Now import ROOT - import cppyy + import cppyy # noqa: F401 try: from PerfMonAna import PyRootLib ROOT = PyRootLib.importRoot( batch=True ) except ImportError: - import ROOT + import ROOT # noqa: F401 sys.stdout.flush() sys.stderr.flush() @@ -247,9 +209,6 @@ def main(): print("GZipping postscript file -> %s.ps.gz" % opts.outFile) os.system("gzip -f %s.ps" % (opts.outFile)) - # List histograms that are only found in reference - #diffFiles(args[0],args[1],opts) # this is quite slow, disable it - if rc != 0: result = 255 elif valid.totalHist()>0: diff --git a/Trigger/TrigValidation/TrigValTools/bin/trigDumpTimers.py b/Trigger/TrigValidation/TrigValTools/bin/trigDumpTimers.py index 7affe68bfe7..6f1ba6fee5f 100755 --- a/Trigger/TrigValidation/TrigValTools/bin/trigDumpTimers.py +++ b/Trigger/TrigValidation/TrigValTools/bin/trigDumpTimers.py @@ -1,14 +1,12 @@ #!/usr/bin/env python -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -# @file: dumpTimes.py +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# @file: trigDumpTimers.py # @purpose: Script to dump the timing histograms from expert-monitoring.root/TIMERS # @author: Stewart Martin-Haugh -import argparse import ROOT from optparse import OptionParser -import os import re from TrigValTools.TrigRootUtils import lsroot @@ -31,7 +29,7 @@ def get_matches(pattern, exclude, myFile): if exclude: regex_exclude = re.compile(".*" + exclude + ".*") for name in names: - if not "TIME" in name: + if "TIME" not in name: continue if not regex.match(name): continue @@ -44,18 +42,18 @@ def get_matches(pattern, exclude, myFile): def main(): parser = OptionParser() parser.add_option("-p", "--pattern", dest="pattern", type = "string", default = None, - help="Pattern to match histogram to") + help="Pattern to match histogram to") parser.add_option("-x", "--exclude", dest="exclude", type = "string", default = None, - help="Pattern to exclude histogram from matching") + help="Pattern to exclude histogram from matching") (options, args) = parser.parse_args() - print(options, args) + for arg in args: print(arg) myFile = ROOT.TFile(arg) pattern = ".*" if (options.pattern): pattern = options.pattern - get_matches(options.pattern, options.exclude, myFile) + get_matches(pattern, options.exclude, myFile) if __name__ == "__main__": diff --git a/Trigger/TrigValidation/TrigValTools/bin/trigslimval.py b/Trigger/TrigValidation/TrigValTools/bin/trigslimval.py deleted file mode 100755 index a022377a035..00000000000 --- a/Trigger/TrigValidation/TrigValTools/bin/trigslimval.py +++ /dev/null @@ -1,540 +0,0 @@ -#!/usr/bin/env python - -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -# -# @file TrigSlimVal.py -# @brief Checks the output of TrigSlimValidation run logs -# @author Ben Smith <bcsmith@fas.harvard.edu> - -import os -import sys -from sets import Set - -# Global variables -variables = Set() -failures = list() -testsRun = 0 - -# variable class -class Variable: - name = "" - string = "" - - def __init__(self, name, string): - self.name = name - self.string = string - def __repr__(self): - return 'Variable \'' + self.name + '\' from string \'' + self.string + '\'' - -# comparison class -class Comparison: - name = "Comparison" - string = "" - - def __init__(self, name, string): - self.name = name - self.string = string - def __repr__(self): - return 'Comparison \'' + self.name + '\' with definition \'' + self.string + '\'' - - def passes(self, test, event): - # replace words with variable values - words = self.string.split(' ') - comparison = '=' - currside = 0 - leftVal = 0 - rightVal = 0 - operation = '+' - allVals = list() - for word in words: - # check if its an operation - if len(word) == 1 and not word.isdigit(): - if word == '+': - operation = '+' - allVals.append('+') - elif word == '-': - operation = '-' - allVals.append('-') - elif word == '=': - operation = '+' - comparison = '=' - allVals.append('=') - currside = 1 - elif word == '<': - operation = '+' - comparison = '<' - allVals.append('<') - currside = 1 - elif word == '>': - operation = '+' - comparison = '>' - allVals.append('>') - currside = 1 - else: - return 'Error: cannot parse word ' + word + ' from comparison ' + self.string - continue - # replace the word with variable value - val = '' - if word.startswith('BASE.'): - val = test.getBaseVal(word.replace('BASE.', ''), event) - elif word.startswith('MOD.'): - val = test.getModifiedVal(word.replace('MOD.', ''), event) - elif word.isdigit(): - val = int(word) - if isinstance(val, basestring) and val.count('not defined in') > 0: - val = 0 - if not isinstance(val, int): - return 'ERROR: Cannot parse word ' + word + ' from comparison ' + self.string - - allVals.append('%d' % val) - if operation == '-': - val = val * -1 - if currside == 0: - leftVal += val - else: - rightVal += val - - if leftVal == 0 and rightVal == 0: - return 'PASSED' - if comparison == '=' and leftVal == rightVal: - return 'PASSED' - if comparison == '<' and leftVal < rightVal: - return 'PASSED' - if comparison == '>' and leftVal > rightVal: - return 'PASSED' - - message = 'FAILED comparison \'' + self.name +'\': ' + self.string - message += ' ( ' - for x in allVals: - message += x + ' ' - message += ')' - message += ' Event: %d' % event - return message - -# test class -class Test: - name = "TestClass" - alterableVariables = Set() - comparisons = Set() - baseValDictArray = list() - modifiedValDictArray = list() - - def __init__(self, name): - self.name = name - def __repr__(self): - str = 'Test ' + self.name - str += '\n\tAlterableVariables: ' + self.alterableVariables.__repr__() - str += '\n\tComparisons: ' + self.comparisons.__repr__() - str += '\n\tBase value dictionary array: ' + self.baseValDictArray.__repr__() - str += '\n\tModified value dictionary array: ' + self.modifiedValDictArray.__repr__() - return str - - def getBaseVal(self, name, event): - if not len(self.baseValDictArray) > event: - return 'No entries in the base value dictionary for event %d' % event - baseValDict = self.baseValDictArray[event]; - v = getVariable(name) - if not isinstance(v, Variable): - return v - if not v in baseValDict: - return 'Variable ' + name + ' not defined in the base value dictionary' - return baseValDict[v] - - def getModifiedVal(self, name, event): - if not len(self.modifiedValDictArray) > event: - return 'No entries in the modified value dictionary for event %d' % event - modifiedValDict = self.modifiedValDictArray[event]; - v = getVariable(name) - if not isinstance(v, Variable): - return v - if not v in modifiedValDict: - return 'Variable ' + name + ' not defined in the modified value dictionary' - return modifiedValDict[v] - - def runTests(self): - global testsRun - global failures - - testsRun = testsRun + 1 - # loop through events and check each one - if not len(self.baseValDictArray) == len(self.modifiedValDictArray): - return 'Initialization error: base and modified value dictionary arrays have different sizes' - i = 0 - for i in range(0, len(self.baseValDictArray)): - # check that the non-alterable variables have not changed - for v in variables.difference(map(getVariable, self.alterableVariables)): - if isinstance(self.getBaseVal(v.name, i),basestring): - continue - c = Comparison('UnalterableVariable: ' + v.name, 'BASE.' + v.name + ' = ' + 'MOD.' + v.name) - val = c.passes(self, i) - if not val == 'PASSED': - failures.append(self.name + ': ' + val) - return val - # check that the comparisons pass - for c in self.comparisons: - val = c.passes(self, i) - if not val == 'PASSED': - failures.append(self.name + ': ' + val) - return val - # if we made it this far, then we passed! - return 'PASSED' - -# variable functions -def getVariable(name): - for v in variables: - if v.name == name: - return v - return 'Variable ' + name + ' not found' - -def addVariable(name, string): - if isinstance(getVariable(name), Variable): - return 'Could not add variable ' + name + '... Variable already exists' - v = Variable(name, string) - variables.add(v) - return v - -# parsing functions -def matchLine(line, valDict): - # ignore blank lines - if len(line) == 0: - return '' - # check if any of the variable strings appear in the line - for v in variables: - if line.count(v.string) > 0: - if v in valDict: - return 'Wanted to assign line ' + line + ' to var ' + v.name + ' but ' + v.name + ' is already assigned!' - # split the line by the colon - words = line.split(':') - if not len(words) == 2: - message = 'Wanted to assign line ' + line + ' to var ' + v.name - message = message + ' but line has wrong num (' + words.length() + ') of words' - return messsage - val = int(words[1].replace(' ', '').replace('\n', '')) - valDict[v] = val - return '' - return 'Unable to match line ' + line - -def parseEvent(log, valDict): - for line in log: - errorVal = matchLine(line, valDict) - if not errorVal == '': - return errorVal - return '' - -def parseLog(logFile, valDictArray): - if not os.path.exists(logFile): - return 'File ' + logFile + ' does not exist' - file = open(logFile, 'r') - - # split the log file by event by looking for the lines - startBlock = 'START of TrigSlimValidation DUMP' - endBlock = 'END of TrigSlimValidation DUMP' - log = list() - inBlock = False - eventNum = 1 - - for line in file.readlines(): - # if we see a start block, prepare to read an event - if line.count(startBlock) > 0: - if inBlock: - return 'Wanted to start event %d, but event %d never closed' % (eventNum, eventNum - 1) - inBlock = True - log[:] = [] - continue - if line.count(endBlock) > 0: - # if we see an end block, close event and parse it - if not inBlock: - return 'Wanted to end event %d, but event was never opened!' % (eventNum) - valDict = dict() - errorVal = parseEvent(log, valDict) - valDictArray.append(valDict) - if not errorVal == '': - return errorVal - inBlock = False - eventNum = eventNum + 1 - continue - # if we're in an event block, add the log line - # otherwise, just ignore the line - if inBlock: - log.append(line) - file.close() - - return '' - -def setupTest(test, baseLog, modifiedLog): - test.baseValDictArray = list() - errorVal = parseLog(baseLog, test.baseValDictArray) - if not errorVal == '': - print '\nParsing the base log ' + baseLog + ' for test', - print test.name + ' failed with the following error:' - print errorVal - print 'This is unrecoverable... exiting!\n' - exit() - test.modifiedValDictArray = list() - errorVal = parseLog(modifiedLog, test.modifiedValDictArray) - if not errorVal == '': - print '\nParsing the modified log ' + modifiedLog + ' for test', - print test.name + ' failed with the following error:' - print errorVal - print 'This is unrecoverable... exiting!\n' - exit() - - -############## TrigSlimValidation specific code ################# -def buildObjectList(log, key): - s = Set() - - if not os.path.exists(log): - return 'File ' + log + ' does not exist' - file = open(log, 'r') - for line in file.readlines(): - if line.count(key) > 0: - for word in line.split(' '): - if word.count(':') > 0: - s.add(word.replace(':', '')) - break - return s - -def buildStreamRemovedTest(stream, baseLog, modLog, features): - RSTest = Test('RS' + stream) - setupTest(RSTest, baseLog, modLog) - RSTest.alterableVariables = Set(['elements', 'intermediates', 'stream'+stream, 'links', 'features', 'featureless', 'ghosts', 'seeds', 'seededBy', 'sameRoI','longest', 'unassociated']) - RSTest.alterableVariables.add('unassociatedgroup') - # All features can change, as entire streams are removed - for f in features: - RSTest.alterableVariables.add('feature'+f) - RSTest.comparisons = Set([Comparison('StreamRemoved', 'MOD.stream' + stream + ' < BASE.stream' + stream)]) - return RSTest - -def buildFeatureRemovedTest(feature, baseLog, modLog): - RFTest = Test('RF'+feature) - setupTest(RFTest, baseLog, modLog) - RFTest.alterableVariables = Set(['features','featureless','links','feature'+feature]) - RFTest.comparisons = Set([Comparison('DistinctFeatures', 'BASE.features = MOD.features + 1'), - Comparison('FeatureLinks', 'BASE.links < 1 + MOD.links + BASE.feature'+feature), - Comparison('FeatureRemoved', 'MOD.feature'+feature+' = 0')]) - return RFTest - -def buildSqueezeTest(baseLog, modLog, streams, features): - SqueezeTest = Test('Squeeze') - setupTest(SqueezeTest, baseLog, modLog) - SqueezeTest.alterableVariables = Set(['intermediates', 'seeds', 'seededBy', 'sameRoI', 'elements', 'unassociated', 'longest', 'shortest', 'links','unassociatedgroup']) - for s in streams: - SqueezeTest.alterableVariables.add('stream'+s) - SqueezeTest.comparisons = Set([Comparison('IntermeidateElements','MOD.intermediates = 0'), - Comparison('Elements', 'MOD.elements + BASE.intermediates = BASE.elements'), - Comparison('LongestChain', 'MOD.longest = 3'), - Comparison('ShortestChain', 'MOD.shortest < 4')]) - # When you squeeze, you can actually increase the number of occurrences of a given feature - # if you remove a node with multiple children. Thus, we need to check that the number - # of occurrences of each feature is the same or larger - for f in features: - SqueezeTest.alterableVariables.add('feature'+f) - SqueezeTest.comparisons.add(Comparison('FeatureIncrease'+f, 'MOD.feature'+f+' + 1 > BASE.feature' + f)) - return SqueezeTest - -def buildNoSlimTest(baseLog, modLog): - # No Slim Test - # Nothing changes, so this is super easy! - NoSlimTest = Test("NoSlimTest") - setupTest(NoSlimTest, baseLog, m) - return NoSlimTest - -def buildCombinedTest(test1, test2): - test = Test(test1.name + test2.name) - test.alterableVariables = test1.alterableVariables.union(test2.alterableVariables) - test.comparisons = test1.comparisons.union(test2.comparisons) - test.baseValDictArray = test1.baseValDictArray - test.modifiedValDictArray = test1.modifiedValDictArray - # There are some special rules for combining RF and squeeze tests - # Basically, squeeze tests require that the number of occurrences of a feature - # stays the same or increases. We need to remove this required when we combine - # with an RF test, but only for the feature that was removed - toRemove = Set() - if test1.name.count('RF') > 0: - feature = test1.name.replace('RF', '') - for c in test.comparisons: - if c.name.startswith('FeatureIncrease') and c.name.count(feature) > 0: - toRemove.add(c) - if test2.name.count('RF') > 0: - feature = test2.name.replace('RF', '') - for c in test.comparisons: - if c.name.startswith('FeatureIncrease') and c.name.count(feature) > 0: - toRemove.add(c) - test.comparisons = test.comparisons.difference(toRemove) - return test - -# Begin main - -def main(): - - # read command line options - from optparse import OptionParser - parser = OptionParser(usage = "usage: %prog [options]", - description = "Compares output of TrigSlimValAlg on slimmed and unslimmed AODs to validate TrigNavigationSlimming.") - parser.add_option("-b", "--base", action = "store", dest = "baseLog", default = "TrigSlimValidation_Base.log", help = "Base log file") - parser.add_option("-m", "--modified", action = "append", dest = "modifiedLog", default = list(), help = "Modified log file") - parser.add_option("-t", "--test", action = "append", dest = "testType", default = list(), help = "Test to run") - parser.add_option("-f", "--feature", action = "append", dest = "removedFeature", default = list(), help = "Removed feature (if needed by test)") - parser.add_option("-s", "--stream", action = "append", dest = "removedStream", default = list(), help = "Removed stream (if needed by test)") - - (opts, args) = parser.parse_args() - - if len(args) > 0: - print - print 'Unable to parse option: ' + args[0] - print 'This is unrecoverable... exiting!\n' - print - exit() - - # Populate all variables - baseLog = opts.baseLog - modifiedLogs = opts.modifiedLog - testTypes = opts.testType - removedFeatures = opts.removedFeature - removedStreams = opts.removedStream - if len(modifiedLogs) == 0 and len(testTypes) == 0: - print - print 'You must specify either a modified log (with -m) or a test type (with -t)' - print - exit() - if len(modifiedLogs) == 0: - for t in testTypes: - modifiedLog = 'TrigSlimValidation_' + t + '.log' - print - print 'Assuming modified log file at ' + modifiedLog + ' based upon test type ' + t - print - modifiedLogs.append(modifiedLog) - if len(testTypes) == 0: - for l in modifiedLogs: - frontRemoved = l.split('_') - if not len(frontRemoved) == 2: - print - print 'Unable to determine implicit test type from modified log', - print l + '... you should supply it explicity with -t' - print - exit() - backRemoved = frontRemoved[1].split('.') - if not len(backRemoved) == 2: - print - print 'Unable to determine implicit test type from modified log', - print l + '... you should supply it explicity with -t' - print - exit() - t = backRemoved[0] - print - print 'Assuming test type ' + t + ' based upon modified log file ' + l - print - testTypes.append(t) - - # Build feature, stream, and group lists - features = buildObjectList(baseLog, 'Occurrences of feature') - if not isinstance(features, Set): - print - print 'Unable to build feature list due to the following error:' - print features - print 'This is unrecoverable... exiting!\n' - exit() - streams = buildObjectList(baseLog, 'Elements associated with stream') - if not isinstance(streams, Set): - print - print 'Unable to build stream list due to the following error:' - print streams - print 'This is unrecoverable... exiting!\n' - exit() - groups = buildObjectList(baseLog, 'Elements associated with group') - if not isinstance(groups, Set): - print - print 'Unable to build group list due to the following error:' - print groups - print 'This is unrecoverable... exiting!\n' - exit() - - # Define needed variables - addVariable('elements', 'Number of trigger elements:') - addVariable('features', 'Number of distinct features:') - addVariable('intermediates', 'Number of intermediate trigger elements:') - addVariable('featureless', 'Number of featureless trigger elements:') - addVariable('ghosts', 'Number of ghost trigger elements:') - addVariable('RoIs', 'Number of RoIs:') - addVariable('longest', 'Longest chain:') - addVariable('shortest', 'Shortest chain:') - addVariable('links', 'Number of feature links:') - addVariable('seeds', 'Number of seeds relations:') - addVariable('seededBy', 'Number of seeded by relations:') - addVariable('sameRoI', 'Number of same RoI relations:') - - # add feature, stream, and group variables - for f in features: - addVariable('feature'+f, 'Occurrences of feature ' + f + ':') - for s in streams: - addVariable('stream'+s, 'Elements associated with stream ' + s + ':') - for g in groups: - addVariable('group'+g, 'Elements associated with group ' + g + ':') - addVariable('unassociated', 'Elements unassociated with any stream:') - addVariable('unassociatedgroup', 'Elements unassociated with any group:') - - # Define some useful tests - AllTests = list() - - for t,m in zip(testTypes,modifiedLogs): - if t == 'NoSlim': - AllTests.append(buildNoSlimTest(baseLog, m)) - if t == 'RF': - if len(removedFeatures) == 0: - print - print "Could not find feature to remove for test " + t + ' with modified log file ' + m - print - exit() - AllTests.append(buildFeatureRemovedTest(removedFeatures.pop(0), baseLog, m)) - if t == 'RS': - if len(removedStreams) == 0: - print - print "Could not find stream to remove for test " + t + ' with modified log file ' + m - print - exit() - AllTests.append(buildStreamRemovedTest(removedStreams.pop(0), baseLog, m, features)) - if t == 'Squeeze': - AllTests.append(buildSqueezeTest(baseLog, m, streams, features)) - if t == 'SqueezeRF': - if len(removedFeatures) == 0: - print - print "Could not find feature to remove for test " + t + ' with modified log file ' + m - print - exit() - SqueezeTest = buildSqueezeTest(baseLog, m, streams, features) - RFTest = buildFeatureRemovedTest(removedFeatures.pop(0), baseLog, m) - AllTests.append(buildCombinedTest(SqueezeTest, RFTest)) - - # Check the tests - print - print 'Running tests...' - print - - for t in AllTests: - print t.name + ': ' + t.runTests() - - print - print 'Tests complete!' - print - - # Print the final report - print - print 'Final report:' - print 'Tests passed: %d/%d' % (testsRun - len(failures), testsRun) - print 'Tests failed: %d/%d' % (len(failures), testsRun) - print - - if len(failures) > 0: - print - print "trigslimval.py ERROR: Failures found" - print - print 'Failures:' - for f in failures: - print f - print - print - -if __name__ == "__main__": - sys.exit(main()) - diff --git a/Trigger/TrigValidation/TrigValTools/test/test_unit_trigvalsteering.py b/Trigger/TrigValidation/TrigValTools/test/test_unit_trigvalsteering.py index 8d8958e2b9c..b77f263e9cf 100755 --- a/Trigger/TrigValidation/TrigValTools/test/test_unit_trigvalsteering.py +++ b/Trigger/TrigValidation/TrigValTools/test/test_unit_trigvalsteering.py @@ -1,5 +1,6 @@ #!/usr/bin/env python - +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# # This is not an ART test. This is a unit test of the framework used for # steering Trigger ART tests. -- GitLab From c524c820609a294e69658d3f624f0c6c5bbed82c Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Thu, 23 Jul 2020 14:43:26 +0200 Subject: [PATCH 102/459] TrigValTools: Delete TRoot2Html Delete obsolete TRoot2Html (ATR-20090). ROOT files can just be browsed directly with jsroot (see root2html.py). --- .../TrigValTools/CMakeLists.txt | 3 - .../TrigValTools/TrigValTools/TRoot2Html.h | 92 -------- .../TrigValTools/TrigValToolsDict.h | 3 +- .../TrigValTools/TrigValTools/selection.xml | 3 +- .../TrigValTools/html/root2html/index.html | 12 - .../TrigValTools/html/root2html/tree.html | 63 ------ .../TrigValTools/src/TRoot2Html.cxx | 211 ------------------ 7 files changed, 2 insertions(+), 385 deletions(-) delete mode 100644 Trigger/TrigValidation/TrigValTools/TrigValTools/TRoot2Html.h delete mode 100644 Trigger/TrigValidation/TrigValTools/html/root2html/index.html delete mode 100644 Trigger/TrigValidation/TrigValTools/html/root2html/tree.html delete mode 100644 Trigger/TrigValidation/TrigValTools/src/TRoot2Html.cxx diff --git a/Trigger/TrigValidation/TrigValTools/CMakeLists.txt b/Trigger/TrigValidation/TrigValTools/CMakeLists.txt index 6bc41d4302e..45e23e0bfbd 100644 --- a/Trigger/TrigValidation/TrigValTools/CMakeLists.txt +++ b/Trigger/TrigValidation/TrigValTools/CMakeLists.txt @@ -23,9 +23,6 @@ atlas_install_python_modules( python/*.py python/TrigValSteering bin/chainDump.p atlas_install_scripts( bin/*.py test/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) atlas_install_scripts( bin/*.pl bin/*.sh ) atlas_install_data( share/*.json share/*.conf ) -atlas_install_generic( html/root2html/*.html - DESTINATION share/TrigValTools/root2html - EXECUTABLE ) # Unit tests: atlas_add_test( TrigValSteering_unit_test diff --git a/Trigger/TrigValidation/TrigValTools/TrigValTools/TRoot2Html.h b/Trigger/TrigValidation/TrigValTools/TrigValTools/TRoot2Html.h deleted file mode 100644 index 10c5dd2b9ca..00000000000 --- a/Trigger/TrigValidation/TrigValTools/TrigValTools/TRoot2Html.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef TRIGVALTOOLS_TROOT2HTML_H -#define TRIGVALTOOLS_TROOT2HTML_H - -/** - * @file TRoot2Html.h - * @brief TRoot2Html class - * @author Frank Winklmeier - * - * $Id: TRoot2Html.h 702373 2015-10-22 13:55:56Z fwinkl $ - */ - -#include <fstream> -#include <vector> - -#include "TMultiFileLooper.h" -#include "TDirectory.h" -#include "TString.h" -#include "TH1.h" - -class TPRegexp; - -/** - * @class TRoot2Html - * @brief Create a (static) web page from ROOT histograms - * @author Frank Winklmeier - * - * Create images from histograms in root files and assemble them in - * a web page with a tree like naviation structure. - */ -class TRoot2Html : public TMultiFileLooper { - public: - - /// C'tor - TRoot2Html(); - /// D'tor - virtual ~TRoot2Html() {} - /// Copy C'tor (needed for Reflex dictionary generation) - TRoot2Html(const TRoot2Html& other); - - /// \name Processing hooks - //@{ - virtual void beginJob(); - virtual void endJob(); - virtual void beforeFile(); - virtual void afterFile(); - virtual void beforeDir(); - virtual void afterDir(); - virtual void processKey(TDirectory& dir, TKey& key); - //@} - - /// Output directory for HTML pages - void setOutputDir(const char* dir) {m_outDir = dir;} - - /// Set image size - void setImageSize(Int_t width, Int_t height) {m_imgWidth = width; m_imgHeight = height;} - - /// Add draw options for images (selected by regular expression on name) - void addDrawOptions(const char* regexp, const char* options); - - /// Add draw options for images (selected by regular expression on class name) - void addClassDrawOptions(const char* regexp, const char* options); - - /// Show full file name in tree - void showFullFileName(Bool_t show = kTRUE) {m_showFullFileName = show;} - - private: - TString m_fileList; - TString m_outDir; - Int_t m_imgHeight, m_imgWidth; - std::ofstream m_xml; - Int_t m_nodeId; - - Bool_t m_showFullFileName; - std::vector< std::pair<TPRegexp*,TString> > m_drawOptions; - std::vector< std::pair<TPRegexp*,TString> > m_classDrawOptions; - - TString hist2Png(TDirectory& dir, const TString& name); - TString getDrawOptions(const TH1& h); - - TString xmlTreeItem(const char* text); - TString xmlTreeItemClose(); - TString xmlUserData(const char* name, const char* data); - - // Not copyable due to the ofstream. - TRoot2Html& operator= (const TRoot2Html&); -}; - -#endif diff --git a/Trigger/TrigValidation/TrigValTools/TrigValTools/TrigValToolsDict.h b/Trigger/TrigValidation/TrigValTools/TrigValTools/TrigValToolsDict.h index 28064c13111..f95c08a5c7e 100644 --- a/Trigger/TrigValidation/TrigValTools/TrigValTools/TrigValToolsDict.h +++ b/Trigger/TrigValidation/TrigValTools/TrigValTools/TrigValToolsDict.h @@ -1,10 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "TrigValTools/TRootCompare.h" #include "TrigValTools/TFileLooper.h" #include "TrigValTools/TMultiFileLooper.h" -#include "TrigValTools/TRoot2Html.h" #include "TPRegexp.h" diff --git a/Trigger/TrigValidation/TrigValTools/TrigValTools/selection.xml b/Trigger/TrigValidation/TrigValTools/TrigValTools/selection.xml index 512c9989451..2102ba54f93 100644 --- a/Trigger/TrigValidation/TrigValTools/TrigValTools/selection.xml +++ b/Trigger/TrigValidation/TrigValTools/TrigValTools/selection.xml @@ -2,5 +2,4 @@ <class name="TRootCompare" /> <class name="TFileLooper" /> <class name="TMultiFileLooper" /> - <class name="TRoot2Html" /> -</lcgdict> \ No newline at end of file +</lcgdict> diff --git a/Trigger/TrigValidation/TrigValTools/html/root2html/index.html b/Trigger/TrigValidation/TrigValTools/html/root2html/index.html deleted file mode 100644 index faa2a8df09b..00000000000 --- a/Trigger/TrigValidation/TrigValTools/html/root2html/index.html +++ /dev/null @@ -1,12 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<!-- Main html file for root2html --!> - -<html> - <head> - <title>HLT monitoring histograms</title> - </head> - <frameset cols="320,*" border="0"> - <frame src="tree.html" name="tree"></frame> - <frame src="" name="img"></frame> - </frameset> -</html> diff --git a/Trigger/TrigValidation/TrigValTools/html/root2html/tree.html b/Trigger/TrigValidation/TrigValTools/html/root2html/tree.html deleted file mode 100644 index fc7a2ea9109..00000000000 --- a/Trigger/TrigValidation/TrigValTools/html/root2html/tree.html +++ /dev/null @@ -1,63 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<!-- Tree navigation for root2html --> - -<html> - <body> - <link rel="STYLESHEET" type="text/css" href="http://atlas-project-trigger-release-validation.web.cern.ch/atlas-project-trigger-release-validation/www/dhtmlxTree/css/dhtmlXTree.css"> - <script src="http://atlas-project-trigger-release-validation.web.cern.ch/atlas-project-trigger-release-validation/www/dhtmlxTree/js/dhtmlXCommon.js"></script> - <script src="http://atlas-project-trigger-release-validation.web.cern.ch/atlas-project-trigger-release-validation/www/dhtmlxTree/js/dhtmlXTree.js"></script> - - <input type="button" name="draw" value="Show selected" onClick="drawSelected()"></input> - <input type="button" name="clear" value="ClearAll" onClick="clearAll()"></input> - <p><font size="-2"> - To show histograms, click on single leaf or select multiple and click on "Show selected". - (Please be patient while the tree loads...) - </font></p> - <div id="naviTree" style="width:300"></div> - <div id="footer"><font size="-2">Created by root2html<br>(C) Frank Winklmeier<br>powered by <a href="http://www.scbr.com/docs/products/dhtmlxTree/" target="new">dhtmlXTree</a></font></div> - <script language="JavaScript"> - tree = new dhtmlXTreeObject('naviTree',"100%","80%",0); - tree.setImagePath("http://atlas-project-trigger-release-validation.web.cern.ch/atlas-project-trigger-release-validation/www/dhtmlxTree/imgs/"); - tree.enableCheckBoxes(true); - tree.enableThreeStateCheckboxes(true); - tree.loadXML("tree.xml"); - tree.setOnClickHandler(doOnClick); - - // onClick event handler - // Load image path on click - function doOnClick(nodeId) { - var imgPath = tree.getUserData(nodeId,"img"); - if (imgPath != undefined) parent["img"].location.href = imgPath; - } - - // show all selected plots - function drawSelected() { - var doc = parent["img"].document; - doc.open(); - doc.write("<html><body>"); - - // get list of all selected elements - var ids = tree.getAllChecked().split(','); - // loop over all elements and write <img> tag into frame - for (var i in ids) { - var imgPath = tree.getUserData(ids[i],"img"); - if (imgPath != undefined) { - doc.write('<img src="'); - doc.write(imgPath); - doc.write('"'); - } - } - doc.write("</body></html>"); - doc.close() - } - - // clear all selected items - function clearAll() { - for (var i in tree.getAllChecked().split(',')) { - tree.setCheck(i,false); - } - } - </script> - - </body> -</html> diff --git a/Trigger/TrigValidation/TrigValTools/src/TRoot2Html.cxx b/Trigger/TrigValidation/TrigValTools/src/TRoot2Html.cxx deleted file mode 100644 index 93d24229bec..00000000000 --- a/Trigger/TrigValidation/TrigValTools/src/TRoot2Html.cxx +++ /dev/null @@ -1,211 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -/** - * @file TRoot2Html.cxx - * @brief TRoot2Html implementation - * @author Frank Winklmeier - * - * $Id: TRoot2Html.cxx,v 1.1 2008-07-28 11:02:00 fwinkl Exp $ - */ - -#include "TrigValTools/TRoot2Html.h" - -#include <iostream> -#include <sstream> -#include "TError.h" -#include "TClass.h" -#include "TH1.h" -#include "TFile.h" -#include "TCanvas.h" -#include "TSystem.h" -#include "TKey.h" -#include "TPRegexp.h" - -using namespace std; - -TRoot2Html::TRoot2Html() : - m_nodeId(1), - m_showFullFileName(kFALSE) -{ - setOutputDir("./"); - setImageSize(400,400); -} - -TRoot2Html::TRoot2Html(const TRoot2Html& other): - TMultiFileLooper(other), - m_imgHeight(other.m_imgHeight), - m_imgWidth(other.m_imgWidth), - m_nodeId(other.m_nodeId), - m_showFullFileName(other.m_showFullFileName) -{ -} - -void TRoot2Html::beginJob() -{ - m_xml.open(m_outDir+"/tree.xml"); - if (!m_xml) { - cout << "Cannot write to directory " << m_outDir << endl; - return; - } - - m_xml << "<?_xml version='1.0' encoding='iso-8859-1'?>" << endl; - m_xml << "<!-- This file was auto generated by root2html -->" << endl; - m_xml << "<!-- Use it with the dhtmlxTree component (http://www.scbr.com/docs/products/dhtmlxTree) -->" << endl; - m_xml << "<tree id=\"0\">" << endl; - m_nodeId = 1; -} - -void TRoot2Html::endJob() -{ - m_xml << "</tree>" << endl; - m_xml.close(); -} - - -void TRoot2Html::beforeFile() -{ - TString treeNodeName; - if (m_showFullFileName) treeNodeName = file()->GetName(); - else treeNodeName = gSystem->BaseName(file()->GetName()); - - m_xml << "<!-- Start of " << treeNodeName << " -->" << endl; - m_xml << xmlTreeItem(treeNodeName).Data() << endl; - - // Create output directory - gSystem->mkdir(m_outDir+"/img", true); -} - -void TRoot2Html::afterFile() -{ - m_xml << xmlTreeItemClose().Data() << endl; -} - - -void TRoot2Html::beforeDir() -{ - TString s(getPathFromDir(*gDirectory)); - TString imgDir = TString(m_outDir) + "/img/" + s; - gSystem->mkdir(imgDir, true); - - m_xml << xmlTreeItem(gDirectory->GetName()).Data() << endl; -} - -void TRoot2Html::afterDir() -{ - m_xml << xmlTreeItemClose().Data() << endl; -} - - -void TRoot2Html::processKey(TDirectory& dir, TKey& key) -{ - dir.cd(); - - TObject* obj = key.ReadObj(); - if (obj->IsA()->InheritsFrom("TH1")) { - m_xml << xmlTreeItem(key.GetName()).Data() << endl; - TString imgPath = hist2Png(*gDirectory, key.GetName()); - if (imgPath!="") { - m_xml << xmlUserData("img",imgPath).Data() << endl; - } - m_xml << xmlTreeItemClose().Data() << endl; - } -} - - -// Save histogram 'name' from 'dir' in 'm_outDir/img' -// Return "" on error otherwise image path relative to m_outDir -TString TRoot2Html::hist2Png(TDirectory& dir, const TString& name) -{ - TH1* h = (TH1*)dir.Get(name); - if (h==0) { - cout << "hist2Png: Cannot load histogram " << name << endl; - return ""; - } - - TCanvas c("c","c",m_imgWidth,m_imgHeight); - TString options(getDrawOptions(*h)); - if (m_verbose) cout << "Drawing histogram " << h->GetName() - << " (" << h->ClassName() << ") with options '" - << options << "'" << endl; - h->Draw(options); - TString s(getPathFromDir(dir)); - TString pngName = "img/" + s + "/" + name + ".png"; - - // Suppress the info message when saving file - Int_t oldIgnoreLevel = gErrorIgnoreLevel; - if (!m_verbose) gErrorIgnoreLevel = kWarning; - c.SaveAs(m_outDir+"/"+pngName); - - gErrorIgnoreLevel = oldIgnoreLevel; - - return pngName; -} - - -// Set draw options for all histograms matching re -void TRoot2Html::addDrawOptions(const char* regexp, const char* options) -{ - if (regexp && options) { - TPRegexp* re = new TPRegexp(regexp); - if (re) m_drawOptions.push_back(std::pair<TPRegexp*,TString>(re,options)); - } -} - -void TRoot2Html::addClassDrawOptions(const char* regexp, const char* options) -{ - if (regexp && options) { - TPRegexp* re = new TPRegexp(regexp); - if (re) m_classDrawOptions.push_back(std::pair<TPRegexp*,TString>(re,options)); - } -} - - -// return draw options for specified histogram -TString TRoot2Html::getDrawOptions(const TH1& h) -{ - TString options(""); - - // First check if we have class wide draw options for this histogram - vector< pair<TPRegexp*,TString> >::iterator iter; - for (iter=m_classDrawOptions.begin(); iter!=m_classDrawOptions.end(); iter++) { - if (iter->first->Match(h.ClassName())>0) { - options = iter->second; - break; - } - } - - // Check if any regexp matches the histogram name - for (iter=m_drawOptions.begin(); iter!=m_drawOptions.end(); iter++) { - if (iter->first->Match(h.GetName())>0) { - options = iter->second; - break; - } - } - - return options; -} - -// Tree node with text and id -TString TRoot2Html::xmlTreeItem(const char* text) -{ - TString s; - s.Form("<item text=\"%s\" id=\"%d\">",text,m_nodeId); - m_nodeId++; - return s; -} - -// Tree node close -TString TRoot2Html::xmlTreeItemClose() -{ - return "</item>"; -} - -// User data for tree node -TString TRoot2Html::xmlUserData(const char* name, const char* data) -{ - TString s; - s.Form("<userdata name=\"%s\">%s</userdata>",name,data); - return s; -} -- GitLab From a94b8683d157ee45c7286704f1c4b94e84cd8267 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Thu, 23 Jul 2020 11:51:35 +0200 Subject: [PATCH 103/459] TrigValTools: Fix rootcomp sortLabels option Fix default value for the `--sortLabels` option (ATR-21786). --- Trigger/TrigValidation/TrigValTools/bin/rootcomp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigValidation/TrigValTools/bin/rootcomp.py b/Trigger/TrigValidation/TrigValTools/bin/rootcomp.py index da161d2e9a8..a2a5a081c90 100755 --- a/Trigger/TrigValidation/TrigValTools/bin/rootcomp.py +++ b/Trigger/TrigValidation/TrigValTools/bin/rootcomp.py @@ -25,7 +25,7 @@ def main(): help = "use axis comparison instead of bin-by-bin") parser.add_option("-l", "--sortLabels", - action = "store_true", + action = "store_true", default=False, help = "sort/deflate alphanumeric axis before comparing") parser.add_option("-t", "--threshold", -- GitLab From f561e3f7e03d96f688c4354ef444416fb0e4018d Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Thu, 23 Jul 2020 13:07:25 +0000 Subject: [PATCH 104/459] Fix flake8 complaint --- .../TileMonitoring/python/TileJetMonitorAlgorithm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py b/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py index 9727e025035..5698c66ef42 100644 --- a/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py +++ b/TileCalorimeter/TileMonitoring/python/TileJetMonitorAlgorithm.py @@ -50,7 +50,7 @@ def TileJetMonitoringConfig(flags, **kwargs): DoEnergyDiffHistograms = kwargs.get('DoEnergyDiffHistograms', tileJetMonAlg._descriptors['DoEnergyDiffHistograms'].default) - if not flags.DQ.DataType in ('heavyioncollisions', 'cosmics'): + if flags.DQ.DataType not in ('heavyioncollisions', 'cosmics'): jvtTool = CompFactory.JetVertexTaggerTool() jetContainer = kwargs.get('JetContainer', tileJetMonAlg._descriptors['JetContainer'].default) -- GitLab From c14522116e02fbe3974addbf348972da54d892b6 Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Thu, 23 Jul 2020 16:31:05 +0200 Subject: [PATCH 105/459] Make sure sequence is passed to L1DecoderCfg --- Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py index 2f941f86d22..a226bc60fab 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py @@ -521,7 +521,7 @@ def triggerRunCfg( flags, seqName = None, menu=None ): acc.merge( triggerIDCCacheCreatorsCfg( flags, seqName ) ) from L1Decoder.L1DecoderConfig import L1DecoderCfg - l1DecoderAcc = L1DecoderCfg( flags ) + l1DecoderAcc = L1DecoderCfg( flags, seqName ) acc.merge( l1DecoderAcc ) -- GitLab From 93e4732f96ad1380bbc9e47a6bfd6867b7b86871 Mon Sep 17 00:00:00 2001 From: Savanna Marie Shaw <savanna.marie.shaw@cern.ch> Date: Thu, 23 Jul 2020 17:55:15 +0200 Subject: [PATCH 106/459] Add more muon triggers to LS2 menu Adding muon triggers to LS2 menu to bring in line with the physics_pp_v7_primaries menu, and included some additional primaries listed in ATR-20049.Fixed a small bug in the invariant mass hypo configuration to pick up the invariant mass from the correct leg of asymmetric chains. Updating the references to include the added chains. --- .../python/TrigMuonHypoMTConfig.py | 7 ++-- .../share/ref_RDOtoRDOTrig_mt1_build.ref | 39 +++++++++++++++++++ .../share/ref_data_v1Dev_build.ref | 39 +++++++++++++++++++ .../python/HLTMenuConfig/Menu/LS2_v1.py | 19 ++++++++- 4 files changed, 99 insertions(+), 5 deletions(-) diff --git a/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py b/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py index a1e696b3bd3..25c101e23dc 100755 --- a/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py +++ b/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py @@ -684,7 +684,8 @@ class TrigMuonEFTrackIsolationHypoConfig(object) : def TrigMuonEFInvMassHypoToolFromDict( chainDict ) : cparts = [i for i in chainDict['chainParts'] if i['signature']=='Muon'] - thresholds = cparts[0]['invMassInfo'] + #The invariant mass is specified at end of chain, so only shows up in the last chainPart + thresholds = cparts[len(cparts)-1]['invMassInfo'] config = TrigMuonEFInvMassHypoConfig() tool = config.ConfigurationHypoTool( chainDict['chainName'], thresholds ) addMonitoring( tool, TrigMuonEFInvMassHypoMonitoring, "TrigMuonEFInvMassHypoTool", chainDict['chainName'] ) @@ -710,8 +711,8 @@ class TrigMuonEFInvMassHypoConfig(object) : log.debug('Setting passthrough') tool.AcceptAll = True else: - log.error('threshokds = ', thresholds) - raise Exception('TrigMuonEFTrackIsolation Hypo Misconfigured') + log.error('thresholds = ', thresholds) + raise Exception('TrigMuonEFInvMass Hypo Misconfigured') return tool def TrigMuonLateMuRoIHypoToolFromDict( chainDict ) : diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref index 9b8991fec9d..3a4ba12e88d 100644 --- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref +++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref @@ -37,6 +37,9 @@ TrigSignatureMoniMT INFO -- #2619091790 Features TrigSignatureMoniMT INFO HLT_2mu15_L12MU10 #557204938 TrigSignatureMoniMT INFO -- #557204938 Events 3 3 3 1 1 1 - - 1 TrigSignatureMoniMT INFO -- #557204938 Features 12 4 4 4 - - +TrigSignatureMoniMT INFO HLT_2mu4_L12MU4 #2999632714 +TrigSignatureMoniMT INFO -- #2999632714 Events 4 4 4 4 4 4 - - 4 +TrigSignatureMoniMT INFO -- #2999632714 Features 16 16 24 36 - - TrigSignatureMoniMT INFO HLT_2mu4_bDimu_L12MU4 #1730084172 TrigSignatureMoniMT INFO -- #1730084172 Events 4 4 4 4 4 4 - - 0 TrigSignatureMoniMT INFO -- #1730084172 Features 16 16 24 18 - - @@ -328,6 +331,12 @@ TrigSignatureMoniMT INFO -- #997163309 Features TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU4_EMPTY #782182242 TrigSignatureMoniMT INFO -- #782182242 Events 0 0 0 - - - - - 0 TrigSignatureMoniMT INFO -- #782182242 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_mu10_L1MU10 #209090273 +TrigSignatureMoniMT INFO -- #209090273 Events 10 10 10 10 10 9 - - 9 +TrigSignatureMoniMT INFO -- #209090273 Features 13 12 13 11 - - +TrigSignatureMoniMT INFO HLT_mu10_ivarmedium_mu10_10invm70_L12MU10 #2386882549 +TrigSignatureMoniMT INFO -- #2386882549 Events 3 3 3 2 2 2 2 - 2 +TrigSignatureMoniMT INFO -- #2386882549 Features 6 4 4 4 2 - TrigSignatureMoniMT INFO HLT_mu10_lateMu_L1MU10 #48780310 TrigSignatureMoniMT INFO -- #48780310 Events 10 10 0 0 - - - - 0 TrigSignatureMoniMT INFO -- #48780310 Features 0 0 - - - - @@ -340,24 +349,48 @@ TrigSignatureMoniMT INFO -- #1171632195 Features TrigSignatureMoniMT INFO HLT_mu14_L1MU10 #1696906927 TrigSignatureMoniMT INFO -- #1696906927 Events 10 10 10 7 7 7 - - 7 TrigSignatureMoniMT INFO -- #1696906927 Features 13 8 8 8 - - +TrigSignatureMoniMT INFO HLT_mu20_2mu4noL1_L1MU20 #1029128679 +TrigSignatureMoniMT INFO -- #1029128679 Events 8 8 8 5 5 5 1 1 1 +TrigSignatureMoniMT INFO -- #1029128679 Features 10 6 6 6 2 2 TrigSignatureMoniMT INFO HLT_mu20_ivar_L1MU6 #2083734526 TrigSignatureMoniMT INFO -- #2083734526 Events 10 10 10 5 5 - - - 5 TrigSignatureMoniMT INFO -- #2083734526 Features 14 6 5 - - - +TrigSignatureMoniMT INFO HLT_mu22_2mu4noL1_L1MU20 #3427670100 +TrigSignatureMoniMT INFO -- #3427670100 Events 8 8 8 5 5 5 1 1 1 +TrigSignatureMoniMT INFO -- #3427670100 Features 10 6 6 6 2 2 +TrigSignatureMoniMT INFO HLT_mu22_mu8noL1_L1MU20 #3165652409 +TrigSignatureMoniMT INFO -- #3165652409 Events 8 8 8 5 5 5 2 2 2 +TrigSignatureMoniMT INFO -- #3165652409 Features 10 6 6 6 3 3 +TrigSignatureMoniMT INFO HLT_mu24_2mu4noL1_L1MU20 #3233544630 +TrigSignatureMoniMT INFO -- #3233544630 Events 8 8 8 5 5 5 1 1 1 +TrigSignatureMoniMT INFO -- #3233544630 Features 10 6 6 6 2 2 TrigSignatureMoniMT INFO HLT_mu24_L1MU20 #417425162 TrigSignatureMoniMT INFO -- #417425162 Events 8 8 8 5 5 5 - - 5 TrigSignatureMoniMT INFO -- #417425162 Features 10 6 6 6 - - TrigSignatureMoniMT INFO HLT_mu24_idperf_L1MU20 #677658909 TrigSignatureMoniMT INFO -- #677658909 Events 8 8 6 6 6 6 - - 6 TrigSignatureMoniMT INFO -- #677658909 Features 7 7 7 7 - - +TrigSignatureMoniMT INFO HLT_mu24_mu10noL1_L1MU20 #2563354236 +TrigSignatureMoniMT INFO -- #2563354236 Events 8 8 8 5 5 5 2 2 2 +TrigSignatureMoniMT INFO -- #2563354236 Features 10 6 6 6 3 3 TrigSignatureMoniMT INFO HLT_mu26_L1MU20 #311138376 TrigSignatureMoniMT INFO -- #311138376 Events 8 8 8 5 4 3 - - 3 TrigSignatureMoniMT INFO -- #311138376 Features 10 6 5 4 - - TrigSignatureMoniMT INFO HLT_mu26_ivarmedium_L1MU20 #3411723090 TrigSignatureMoniMT INFO -- #3411723090 Events 8 8 8 5 4 3 2 - 2 TrigSignatureMoniMT INFO -- #3411723090 Features 10 6 5 4 2 - +TrigSignatureMoniMT INFO HLT_mu26_mu10noL1_L1MU20 #2318302287 +TrigSignatureMoniMT INFO -- #2318302287 Events 8 8 8 5 4 3 1 1 1 +TrigSignatureMoniMT INFO -- #2318302287 Features 10 6 5 4 2 2 +TrigSignatureMoniMT INFO HLT_mu26_mu8noL1_L1MU20 #2233067926 +TrigSignatureMoniMT INFO -- #2233067926 Events 8 8 8 5 4 3 1 1 1 +TrigSignatureMoniMT INFO -- #2233067926 Features 10 6 5 4 2 2 TrigSignatureMoniMT INFO HLT_mu28_ivarmedium_L1MU20 #1963262787 TrigSignatureMoniMT INFO -- #1963262787 Events 8 8 8 5 4 3 2 - 2 TrigSignatureMoniMT INFO -- #1963262787 Features 10 6 5 3 2 - +TrigSignatureMoniMT INFO HLT_mu28_mu8noL1_L1MU20 #86648125 +TrigSignatureMoniMT INFO -- #86648125 Events 8 8 8 5 4 3 1 1 1 +TrigSignatureMoniMT INFO -- #86648125 Features 10 6 5 3 1 1 TrigSignatureMoniMT INFO HLT_mu35_ivarmedium_L1MU20 #597064890 TrigSignatureMoniMT INFO -- #597064890 Events 8 8 8 5 3 2 1 - 1 TrigSignatureMoniMT INFO -- #597064890 Features 10 6 4 2 1 - @@ -370,6 +403,9 @@ TrigSignatureMoniMT INFO -- #827327262 Features TrigSignatureMoniMT INFO HLT_mu60_0eta105_msonly_L1MU20 #1642591450 TrigSignatureMoniMT INFO -- #1642591450 Events 8 8 1 0 0 - - - 0 TrigSignatureMoniMT INFO -- #1642591450 Features 2 0 0 - - - +TrigSignatureMoniMT INFO HLT_mu60_L1MU20 #2871837722 +TrigSignatureMoniMT INFO -- #2871837722 Events 8 8 8 5 1 1 - - 1 +TrigSignatureMoniMT INFO -- #2871837722 Features 10 6 1 1 - - TrigSignatureMoniMT INFO HLT_mu6Comb_L1MU6 #996392590 TrigSignatureMoniMT INFO -- #996392590 Events 10 10 10 10 - - - - 10 TrigSignatureMoniMT INFO -- #996392590 Features 14 13 - - - - @@ -394,6 +430,9 @@ TrigSignatureMoniMT INFO -- #451489897 Features TrigSignatureMoniMT INFO HLT_mu6fast_L1MU6 #3518031697 TrigSignatureMoniMT INFO -- #3518031697 Events 10 10 10 - - - - - 10 TrigSignatureMoniMT INFO -- #3518031697 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_mu80_L1MU20 #387900377 +TrigSignatureMoniMT INFO -- #387900377 Events 8 8 8 5 0 0 - - 0 +TrigSignatureMoniMT INFO -- #387900377 Features 10 6 0 0 - - TrigSignatureMoniMT INFO HLT_mu80_msonly_3layersEC_L1MU20 #761101109 TrigSignatureMoniMT INFO -- #761101109 Events 8 8 8 0 0 - - - 0 TrigSignatureMoniMT INFO -- #761101109 Features 10 0 0 - - - diff --git a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref index aefe8df858b..2cee7562387 100644 --- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref +++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref @@ -37,6 +37,9 @@ TrigSignatureMoniMT INFO -- #2619091790 Features TrigSignatureMoniMT INFO HLT_2mu15_L12MU10 #557204938 TrigSignatureMoniMT INFO -- #557204938 Events 20 20 0 0 0 0 - - 0 TrigSignatureMoniMT INFO -- #557204938 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2mu4_L12MU4 #2999632714 +TrigSignatureMoniMT INFO -- #2999632714 Events 20 20 1 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #2999632714 Features 4 0 0 0 - - TrigSignatureMoniMT INFO HLT_2mu4_bDimu_L12MU4 #1730084172 TrigSignatureMoniMT INFO -- #1730084172 Events 20 20 1 1 0 0 - - 0 TrigSignatureMoniMT INFO -- #1730084172 Features 4 2 0 0 - - @@ -328,6 +331,12 @@ TrigSignatureMoniMT INFO -- #997163309 Features TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU4_EMPTY #782182242 TrigSignatureMoniMT INFO -- #782182242 Events 20 20 0 - - - - - 0 TrigSignatureMoniMT INFO -- #782182242 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_mu10_L1MU10 #209090273 +TrigSignatureMoniMT INFO -- #209090273 Events 20 20 1 1 0 0 - - 0 +TrigSignatureMoniMT INFO -- #209090273 Features 1 1 0 0 - - +TrigSignatureMoniMT INFO HLT_mu10_ivarmedium_mu10_10invm70_L12MU10 #2386882549 +TrigSignatureMoniMT INFO -- #2386882549 Events 20 20 0 0 0 0 0 - 0 +TrigSignatureMoniMT INFO -- #2386882549 Features 0 0 0 0 0 - TrigSignatureMoniMT INFO HLT_mu10_lateMu_L1MU10 #48780310 TrigSignatureMoniMT INFO -- #48780310 Events 20 20 0 0 - - - - 0 TrigSignatureMoniMT INFO -- #48780310 Features 0 0 - - - - @@ -340,24 +349,48 @@ TrigSignatureMoniMT INFO -- #1171632195 Features TrigSignatureMoniMT INFO HLT_mu14_L1MU10 #1696906927 TrigSignatureMoniMT INFO -- #1696906927 Events 20 20 1 1 0 0 - - 0 TrigSignatureMoniMT INFO -- #1696906927 Features 1 1 0 0 - - +TrigSignatureMoniMT INFO HLT_mu20_2mu4noL1_L1MU20 #1029128679 +TrigSignatureMoniMT INFO -- #1029128679 Events 20 20 1 1 0 0 0 0 0 +TrigSignatureMoniMT INFO -- #1029128679 Features 1 1 0 0 0 0 TrigSignatureMoniMT INFO HLT_mu20_ivar_L1MU6 #2083734526 TrigSignatureMoniMT INFO -- #2083734526 Events 20 20 1 1 1 - - - 1 TrigSignatureMoniMT INFO -- #2083734526 Features 1 1 1 - - - +TrigSignatureMoniMT INFO HLT_mu22_2mu4noL1_L1MU20 #3427670100 +TrigSignatureMoniMT INFO -- #3427670100 Events 20 20 1 1 0 0 0 0 0 +TrigSignatureMoniMT INFO -- #3427670100 Features 1 1 0 0 0 0 +TrigSignatureMoniMT INFO HLT_mu22_mu8noL1_L1MU20 #3165652409 +TrigSignatureMoniMT INFO -- #3165652409 Events 20 20 1 1 0 0 0 0 0 +TrigSignatureMoniMT INFO -- #3165652409 Features 1 1 0 0 0 0 +TrigSignatureMoniMT INFO HLT_mu24_2mu4noL1_L1MU20 #3233544630 +TrigSignatureMoniMT INFO -- #3233544630 Events 20 20 1 1 0 0 0 0 0 +TrigSignatureMoniMT INFO -- #3233544630 Features 1 1 0 0 0 0 TrigSignatureMoniMT INFO HLT_mu24_L1MU20 #417425162 TrigSignatureMoniMT INFO -- #417425162 Events 20 20 1 1 0 0 - - 0 TrigSignatureMoniMT INFO -- #417425162 Features 1 1 0 0 - - TrigSignatureMoniMT INFO HLT_mu24_idperf_L1MU20 #677658909 TrigSignatureMoniMT INFO -- #677658909 Events 20 20 1 1 0 0 - - 0 TrigSignatureMoniMT INFO -- #677658909 Features 1 1 0 0 - - +TrigSignatureMoniMT INFO HLT_mu24_mu10noL1_L1MU20 #2563354236 +TrigSignatureMoniMT INFO -- #2563354236 Events 20 20 1 1 0 0 0 0 0 +TrigSignatureMoniMT INFO -- #2563354236 Features 1 1 0 0 0 0 TrigSignatureMoniMT INFO HLT_mu26_L1MU20 #311138376 TrigSignatureMoniMT INFO -- #311138376 Events 20 20 1 1 0 0 - - 0 TrigSignatureMoniMT INFO -- #311138376 Features 1 1 0 0 - - TrigSignatureMoniMT INFO HLT_mu26_ivarmedium_L1MU20 #3411723090 TrigSignatureMoniMT INFO -- #3411723090 Events 20 20 1 1 0 0 0 - 0 TrigSignatureMoniMT INFO -- #3411723090 Features 1 1 0 0 0 - +TrigSignatureMoniMT INFO HLT_mu26_mu10noL1_L1MU20 #2318302287 +TrigSignatureMoniMT INFO -- #2318302287 Events 20 20 1 1 0 0 0 0 0 +TrigSignatureMoniMT INFO -- #2318302287 Features 1 1 0 0 0 0 +TrigSignatureMoniMT INFO HLT_mu26_mu8noL1_L1MU20 #2233067926 +TrigSignatureMoniMT INFO -- #2233067926 Events 20 20 1 1 0 0 0 0 0 +TrigSignatureMoniMT INFO -- #2233067926 Features 1 1 0 0 0 0 TrigSignatureMoniMT INFO HLT_mu28_ivarmedium_L1MU20 #1963262787 TrigSignatureMoniMT INFO -- #1963262787 Events 20 20 1 1 0 0 0 - 0 TrigSignatureMoniMT INFO -- #1963262787 Features 1 1 0 0 0 - +TrigSignatureMoniMT INFO HLT_mu28_mu8noL1_L1MU20 #86648125 +TrigSignatureMoniMT INFO -- #86648125 Events 20 20 1 1 0 0 0 0 0 +TrigSignatureMoniMT INFO -- #86648125 Features 1 1 0 0 0 0 TrigSignatureMoniMT INFO HLT_mu35_ivarmedium_L1MU20 #597064890 TrigSignatureMoniMT INFO -- #597064890 Events 20 20 1 1 0 0 0 - 0 TrigSignatureMoniMT INFO -- #597064890 Features 1 1 0 0 0 - @@ -370,6 +403,9 @@ TrigSignatureMoniMT INFO -- #827327262 Features TrigSignatureMoniMT INFO HLT_mu60_0eta105_msonly_L1MU20 #1642591450 TrigSignatureMoniMT INFO -- #1642591450 Events 20 20 0 0 0 - - - 0 TrigSignatureMoniMT INFO -- #1642591450 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_mu60_L1MU20 #2871837722 +TrigSignatureMoniMT INFO -- #2871837722 Events 20 20 1 1 0 0 - - 0 +TrigSignatureMoniMT INFO -- #2871837722 Features 1 1 0 0 - - TrigSignatureMoniMT INFO HLT_mu6Comb_L1MU6 #996392590 TrigSignatureMoniMT INFO -- #996392590 Events 20 20 1 1 - - - - 1 TrigSignatureMoniMT INFO -- #996392590 Features 1 1 - - - - @@ -394,6 +430,9 @@ TrigSignatureMoniMT INFO -- #451489897 Features TrigSignatureMoniMT INFO HLT_mu6fast_L1MU6 #3518031697 TrigSignatureMoniMT INFO -- #3518031697 Events 20 20 1 - - - - - 1 TrigSignatureMoniMT INFO -- #3518031697 Features 1 - - - - - +TrigSignatureMoniMT INFO HLT_mu80_L1MU20 #387900377 +TrigSignatureMoniMT INFO -- #387900377 Events 20 20 1 1 0 0 - - 0 +TrigSignatureMoniMT INFO -- #387900377 Features 1 1 0 0 - - TrigSignatureMoniMT INFO HLT_mu80_msonly_3layersEC_L1MU20 #761101109 TrigSignatureMoniMT INFO -- #761101109 Events 20 20 1 0 0 - - - 0 TrigSignatureMoniMT INFO -- #761101109 Features 1 0 0 - - - diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py index 5b3ac669de1..1fb99d65fe6 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py @@ -31,12 +31,17 @@ def setupMenu(): TriggerFlags.MuonSlice.signatures = TriggerFlags.MuonSlice.signatures() + [ - #ART-19985 + #ATR-19985 ChainProp(name='HLT_mu6_idperf_L1MU6', groups=SingleMuonGroup), ChainProp(name='HLT_mu24_idperf_L1MU20', groups=SingleMuonGroup), ChainProp(name='HLT_mu6_mu6noL1_L1MU6', l1SeedThresholds=['MU6','FSNOSEED'], mergingStrategy='serial', groups=MultiMuonGroup), #ATR-20049 + ChainProp(name='HLT_mu22_mu8noL1_L1MU20', l1SeedThresholds=['MU20','FSNOSEED'], mergingStrategy='serial', groups=MultiMuonGroup), + ChainProp(name='HLT_mu20_2mu4noL1_L1MU20', l1SeedThresholds=['MU20','FSNOSEED'], mergingStrategy='serial', groups=MultiMuonGroup), + ChainProp(name='HLT_mu10_ivarmedium_mu10_10invm70_L12MU10', groups=MultiMuonGroup), + + #test chains ChainProp(name='HLT_mu6fast_L1MU6', groups=SingleMuonGroup), ChainProp(name='HLT_mu6Comb_L1MU6', groups=SingleMuonGroup), ChainProp(name='HLT_mu6_L1MU6', groups=SingleMuonGroup), @@ -58,11 +63,21 @@ def setupMenu(): # ATR-20049 ChainProp(name='HLT_mu6_mu4_L12MU4', l1SeedThresholds=['MU4']*2, groups=MultiMuonGroup), - # Additional intermediate thresholds for validation comparisons + # Additional intermediate thresholds for validation comparisons to match with Physics_pp_v7_primaries menu ChainProp(name='HLT_mu28_ivarmedium_L1MU20', groups=SingleMuonGroup), ChainProp(name='HLT_mu35_ivarmedium_L1MU20', groups=SingleMuonGroup), ChainProp(name='HLT_2mu15_L12MU10', groups=SingleMuonGroup), ChainProp(name='HLT_3mu8_msonly_L13MU6', groups=SingleMuonGroup), + ChainProp(name='HLT_mu80_L1MU20', groups=SingleMuonGroup), + ChainProp(name='HLT_mu60_L1MU20', groups=SingleMuonGroup), + ChainProp(name='HLT_mu24_mu10noL1_L1MU20', l1SeedThresholds=['MU20','FSNOSEED'], mergingStrategy='serial', groups=MultiMuonGroup), + ChainProp(name='HLT_mu26_mu8noL1_L1MU20', l1SeedThresholds=['MU20','FSNOSEED'], mergingStrategy='serial', groups=MultiMuonGroup), + ChainProp(name='HLT_mu26_mu10noL1_L1MU20', l1SeedThresholds=['MU20','FSNOSEED'], mergingStrategy='serial', groups=MultiMuonGroup), + ChainProp(name='HLT_mu28_mu8noL1_L1MU20', l1SeedThresholds=['MU20','FSNOSEED'], mergingStrategy='serial', groups=MultiMuonGroup), + ChainProp(name='HLT_mu22_2mu4noL1_L1MU20', l1SeedThresholds=['MU20','FSNOSEED'], mergingStrategy='serial', groups=MultiMuonGroup), + ChainProp(name='HLT_mu24_2mu4noL1_L1MU20', l1SeedThresholds=['MU20','FSNOSEED'], mergingStrategy='serial', groups=MultiMuonGroup), + ChainProp(name="HLT_mu10_L1MU10", groups=SingleMuonGroup), + ChainProp(name='HLT_2mu4_L12MU4', groups=MultiMuonGroup), # ATR-19452 ChainProp(name='HLT_2mu4_muonqual_L12MU4', groups=MultiMuonGroup), -- GitLab From 6f3ab3c6567218f1530ccc32b1816f5dd1231475 Mon Sep 17 00:00:00 2001 From: schaffer <R.D.Schaffer@cern.ch> Date: Thu, 23 Jul 2020 22:57:56 +0200 Subject: [PATCH 107/459] addressing some small code issues of MR --- .../python/ForwardRegionPropertiesConfig.py | 4 ++-- .../python/G4AtlasFieldServices.py | 22 ++++++++++++++++++- .../python/G4AtlasServicesConfig.py | 20 +++++++++++++++++ .../G4AtlasServices/src/StandardFieldSvc.cxx | 15 +++++-------- .../G4AtlasServices/src/StandardFieldSvc.h | 2 +- 5 files changed, 50 insertions(+), 13 deletions(-) diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionProperties/python/ForwardRegionPropertiesConfig.py b/ForwardDetectors/ForwardSimulation/ForwardRegionProperties/python/ForwardRegionPropertiesConfig.py index af0c916ed12..7213d6e694c 100644 --- a/ForwardDetectors/ForwardSimulation/ForwardRegionProperties/python/ForwardRegionPropertiesConfig.py +++ b/ForwardDetectors/ForwardSimulation/ForwardRegionProperties/python/ForwardRegionPropertiesConfig.py @@ -32,9 +32,9 @@ def getForwardRegionProperties(name="ForwardRegionProperties", **kwargs): f = af.fopen(inputfile) if 'beam_energy' in f.infos and 'N/A' not in f.infos['beam_energy']: if type(f.infos['beam_energy']) is list and float(f.infos['beam_energy'][0])>100.: - twiss_energy = '%1.1fTeV'%(float(f.infos['beam_energy'])*0.000001) + twiss_energy = '%1.1fTeV'%(float(f.infos['beam_energy'][0])*0.000001) elif float(f.infos['beam_energy'])>100.: - twiss_energy = '%1.1fTeV'%(float(f.infos['beam_energy'])*0.000001) + twiss_energy = '%1.1fTeV'%(float(f.infos['beam_energy'][0])*0.000001) except AssertionError: print ("ForwardRegionPropertiesConfig.py ERROR Failed to open input file: %s", inputfile) pass diff --git a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py index eadb4f10687..ee81ddc5392 100644 --- a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py +++ b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py @@ -43,7 +43,8 @@ def Q1FwdG4FieldSvcCfg(ConfigFlags, name='Q1FwdG4FieldSvc', **kwargs): Magnet = 0, # FIXME find a better way to do this. MQXA_DataFile = "MQXA_NOMINAL.dat")) - # kwargs.setdefault("MagneticFieldSvc", result.getService("Q1")) + kwargs.setdefault("MagneticFieldSvc", result.getService("Q1")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q2FwdG4FieldSvcCfg(ConfigFlags, name='Q2FwdG4FieldSvc', **kwargs): @@ -53,6 +54,7 @@ def Q2FwdG4FieldSvcCfg(ConfigFlags, name='Q2FwdG4FieldSvc', **kwargs): Magnet = 1, # FIXME find a better way to do this. MQXA_DataFile = "MQXA_NOMINAL.dat")) kwargs.setdefault("MagneticFieldSvc", result.getService("Q2")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q3FwdG4FieldSvcCfg(ConfigFlags, name='Q3FwdG4FieldSvc', **kwargs): @@ -62,6 +64,7 @@ def Q3FwdG4FieldSvcCfg(ConfigFlags, name='Q3FwdG4FieldSvc', **kwargs): Magnet = 2, # FIXME find a better way to do this. MQXA_DataFile = "MQXA_NOMINAL.dat")) kwargs.setdefault("MagneticFieldSvc", result.getService("Q3")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def D1FwdG4FieldSvcCfg(ConfigFlags, name='D1FwdG4FieldSvc', **kwargs): @@ -70,6 +73,7 @@ def D1FwdG4FieldSvcCfg(ConfigFlags, name='D1FwdG4FieldSvc', **kwargs): Magnet = 3))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("D1")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def D2FwdG4FieldSvcCfg(ConfigFlags, name='D2FwdG4FieldSvc', **kwargs): @@ -78,6 +82,7 @@ def D2FwdG4FieldSvcCfg(ConfigFlags, name='D2FwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("D2", Magnet = 4))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("D2")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q4FwdG4FieldSvcCfg(ConfigFlags, name='Q4FwdG4FieldSvc', **kwargs): @@ -85,6 +90,7 @@ def Q4FwdG4FieldSvcCfg(ConfigFlags, name='Q4FwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q4", Magnet = 5))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q4")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q5FwdG4FieldSvcCfg(ConfigFlags, name='Q5FwdG4FieldSvc', **kwargs): @@ -92,6 +98,7 @@ def Q5FwdG4FieldSvcCfg(ConfigFlags, name='Q5FwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q5", Magnet = 6))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q5")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q6FwdG4FieldSvcCfg(ConfigFlags, name='Q6FwdG4FieldSvc', **kwargs): @@ -99,6 +106,7 @@ def Q6FwdG4FieldSvcCfg(ConfigFlags, name='Q6FwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q6", Magnet = 7))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q6")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q7FwdG4FieldSvcCfg(ConfigFlags, name='Q7FwdG4FieldSvc', **kwargs): @@ -106,6 +114,7 @@ def Q7FwdG4FieldSvcCfg(ConfigFlags, name='Q7FwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q7", Magnet = 8))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q7")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q1HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q1HKickFwdG4FieldSvc', **kwargs): @@ -113,6 +122,7 @@ def Q1HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q1HKickFwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q1HKick", Magnet = 9))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q1HKick")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q1VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q1VKickFwdG4FieldSvc', **kwargs): #note is lower case "v" in ForwardRegionMgFieldConfig.py @@ -120,6 +130,7 @@ def Q1VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q1VKickFwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q1VKick", Magnet = 10))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q1VKick")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q2HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q2HKickFwdG4FieldSvc', **kwargs): @@ -127,6 +138,7 @@ def Q2HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q2HKickFwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q2HKick", Magnet = 11))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q2HKick")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q2VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q2VKickFwdG4FieldSvc', **kwargs): @@ -134,6 +146,7 @@ def Q2VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q2VKickFwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q2VKick", Magnet = 12))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q2VKick")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q3HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q3HKickFwdG4FieldSvc', **kwargs): @@ -141,6 +154,7 @@ def Q3HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q3HKickFwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q3HKick", Magnet = 13))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q3HKick")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q3VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q3VKickFwdG4FieldSvc', **kwargs): @@ -148,6 +162,7 @@ def Q3VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q3VKickFwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q3VKick", Magnet = 14))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q3VKick")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q4VKickAFwdG4FieldSvcCfg(ConfigFlags, name='Q4VKickAFwdG4FieldSvc', **kwargs): @@ -155,6 +170,7 @@ def Q4VKickAFwdG4FieldSvcCfg(ConfigFlags, name='Q4VKickAFwdG4FieldSvc', **kwargs result.addService( MagField__ForwardRegionFieldSvc("Q4VKickA", Magnet = 15))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q4VKickA")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q4HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q4HKickFwdG4FieldSvc', **kwargs): @@ -162,6 +178,7 @@ def Q4HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q4HKickFwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q4HKick", Magnet = 16))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q4HKick")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q4VKickBFwdG4FieldSvcCfg(ConfigFlags, name='Q4VKickBFwdG4FieldSvc', **kwargs): @@ -169,6 +186,7 @@ def Q4VKickBFwdG4FieldSvcCfg(ConfigFlags, name='Q4VKickBFwdG4FieldSvc', **kwargs result.addService( MagField__ForwardRegionFieldSvc("Q4VKickB", Magnet = 17))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q4VKickB")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q5HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q5HKickFwdG4FieldSvc', **kwargs): @@ -176,6 +194,7 @@ def Q5HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q5HKickFwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q5HKick", Magnet = 18))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q5HKick")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q6VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q6VKickFwdG4FieldSvc', **kwargs): @@ -183,5 +202,6 @@ def Q6VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q6VKickFwdG4FieldSvc', **kwargs): result.addService( MagField__ForwardRegionFieldSvc("Q6VKick", Magnet = 19))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q6VKick")) + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result diff --git a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py index af029fc9156..af73486ec01 100644 --- a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py +++ b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py @@ -177,63 +177,83 @@ def getForwardFieldSvc(name="ForwardField", **kwargs): def getQ1FwdG4FieldSvc(name='Q1FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q1") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ2FwdG4FieldSvc(name='Q2FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q2") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ3FwdG4FieldSvc(name='Q3FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q3") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getD1FwdG4FieldSvc(name='D1FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "D1") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getD2FwdG4FieldSvc(name='D2FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "D2") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ4FwdG4FieldSvc(name='Q4FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q4") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ5FwdG4FieldSvc(name='Q5FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q5") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ6FwdG4FieldSvc(name='Q6FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q6") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ7FwdG4FieldSvc(name='Q7FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q7") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ1HKickFwdG4FieldSvc(name='Q1HKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q1HKick") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ1VKickFwdG4FieldSvc(name='Q1VKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q1VKick") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ2HKickFwdG4FieldSvc(name='Q2HKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q2HKick") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ2VKickFwdG4FieldSvc(name='Q2VKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q2VKick") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ3HKickFwdG4FieldSvc(name='Q3HKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q3HKick") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ3VKickFwdG4FieldSvc(name='Q3VKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q3VKick") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ4VKickAFwdG4FieldSvc(name='Q4VKickAFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q4VKickA") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ4HKickFwdG4FieldSvc(name='Q4HKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q4HKick") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ4VKickBFwdG4FieldSvc(name='Q4VKickBFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q4VKickB") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ5HKickFwdG4FieldSvc(name='Q5HKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q5HKick") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getQ6VKickFwdG4FieldSvc(name='Q6VKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q6VKick") + kwargs.setdefault("UseMagFieldSvc", True) return CfgMgr.StandardFieldSvc(name, **kwargs) def getATLAS_FieldMgrList(): diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx index 7f68d336754..a4f533e3410 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.cxx @@ -25,6 +25,7 @@ StandardFieldSvc::StandardFieldSvc(const std::string& name, : G4MagFieldSvcBase(name, pSvcLocator) {} + //----------------------------------------------------------------------------- // Initialize the service //----------------------------------------------------------------------------- @@ -53,7 +54,7 @@ G4MagneticField* StandardFieldSvc::makeField() { ATH_MSG_INFO( "StandardFieldSvc::makeField" ); - AtlasField* af = 0; + AtlasField* af{nullptr}; // Either initialize the field map - used for solenoid and toroid, or the field service for the forward field if (m_useMagFieldSvc) { @@ -103,8 +104,9 @@ StatusCode StandardFieldSvc::createFieldMap() ATH_MSG_ERROR("StandardFieldSvc::createFieldMap: input file name '" << resolvedMapFile << "' does not end with .root"); return StatusCode::FAILURE; } - TFile* rootfile = new TFile(resolvedMapFile.c_str(), "OLD"); - if ( ! rootfile ) { + + std::unique_ptr<TFile> rootfile = std::make_unique<TFile>(resolvedMapFile.c_str(), "OLD"); + if ( ! rootfile.get() ) { ATH_MSG_ERROR("StandardFieldSvc::createFieldMap: failed to open " << resolvedMapFile); return StatusCode::FAILURE; } @@ -112,7 +114,6 @@ StatusCode StandardFieldSvc::createFieldMap() // could not make it current directory ATH_MSG_ERROR("StandardFieldSvc::createFieldMap: unable to cd() into the ROOT field map TFile"); rootfile->Close(); - delete rootfile; return StatusCode::FAILURE; } // open the tree @@ -121,7 +122,6 @@ StatusCode StandardFieldSvc::createFieldMap() // no tree ATH_MSG_ERROR("StandardFieldSvc::createFieldMap: TTree 'BFieldMap' does not exist in ROOT field map"); rootfile->Close(); - delete rootfile; return StatusCode::FAILURE; } @@ -129,17 +129,14 @@ StatusCode StandardFieldSvc::createFieldMap() m_fieldMap = std::make_unique<MagField::AtlasFieldMap>(); // initialize map - if (!m_fieldMap->initializeMap( rootfile, m_mapSoleCurrent, m_mapToroCurrent )) { + if (!m_fieldMap->initializeMap( rootfile.get(), m_mapSoleCurrent, m_mapToroCurrent )) { // failed to initialize the map ATH_MSG_ERROR("StandardFieldSvc::createFieldMap: unable to initialize the map for AtlasFieldMap for file " << resolvedMapFile); rootfile->Close(); - delete rootfile; return StatusCode::FAILURE; } rootfile->Close(); - delete rootfile; - ATH_MSG_INFO( "StandardFieldSvc::createFieldMap: Initialized the field map from " << resolvedMapFile ); return StatusCode::SUCCESS; diff --git a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h index f8308d2a846..871f5af51d0 100644 --- a/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h +++ b/Simulation/G4Atlas/G4AtlasServices/src/StandardFieldSvc.h @@ -141,7 +141,7 @@ class StandardFieldSvc final : public G4MagFieldSvcBase /// Standard constructor StandardFieldSvc(const std::string& name, ISvcLocator* pSvcLocator); /// Empty destructor - ~StandardFieldSvc() {} + ~StandardFieldSvc() = default; /// Athena method. called at initialization time, being customized here. StatusCode initialize() override final; -- GitLab From 2fe753004b9dd32924cb08ac44189fe76ea68ed8 Mon Sep 17 00:00:00 2001 From: Liaoshan Shi <Liaoshan.Shi@cern.ch> Date: Fri, 24 Jul 2020 00:45:26 +0200 Subject: [PATCH 108/459] updated InDet flags --- .../EventDisplaysOnline/share/EventDisplay_jobOptions.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py b/graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py index 29c762895bf..ca8385bb7ba 100644 --- a/graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py +++ b/graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py @@ -124,11 +124,12 @@ jobproperties.CaloCellFlags.doLArHVCorr=False jobproperties.CaloCellFlags.doPileupOffsetBCIDCorr.set_Value_and_Lock(False) jobproperties.CaloCellFlags.doLArCreateMissingCells=False -#Work around to stop crash in pixel cluster splitting (Updated by lshi 15 July 2020, ATLASRECTS-5496) +#Work around to stop crash in pixel cluster splitting (Updated by lshi 23 July 2020, ATLASRECTS-5496) from InDetRecExample.InDetJobProperties import InDetFlags#All OK -InDetFlags.doInnerDetectorCommissioning.set_Value_and_Lock(True) -InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(False) -InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False) +#InDetFlags.doInnerDetectorCommissioning.set_Value_and_Lock(True) +#InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(False) +#InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False) +InDetFlags.doPixelClusterSplitting.set_Value_and_Lock(False) from JetRec.JetRecFlags import jetFlags jetFlags.useTracks.set_Value_and_Lock(False) -- GitLab From f4cb2e10a6ecabd57b0acc9ad3cb4b21215ad97a Mon Sep 17 00:00:00 2001 From: Xiaozhong Huang <xiaozhong.huang@cern.ch> Date: Fri, 24 Jul 2020 09:37:50 +0800 Subject: [PATCH 109/459] minor fix --- .../tauRecTools/Root/TauWPDecorator.cxx | 17 ++++++++++++----- .../tauRecTools/tauRecTools/TauWPDecorator.h | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx b/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx index 06fb462db8d..242875f0ce7 100644 --- a/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx +++ b/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx @@ -16,8 +16,8 @@ TauWPDecorator::TauWPDecorator(const std::string& name) : TauRecToolBase(name) { declareProperty("UseEleBDT", m_electronMode = false); declareProperty("DefineWPs", m_defineWPs = false); - declareProperty("ScoreName", m_scoreName = "BDTJetScore"); - declareProperty("NewScoreName", m_scoreNameTrans = "BDTJetScoreSigTrans"); + declareProperty("ScoreName", m_scoreName = ""); + declareProperty("NewScoreName", m_scoreNameTrans = ""); declareProperty("flatteningFile0Prong", m_file0p = ""); declareProperty("flatteningFile1Prong", m_file1p = ""); @@ -158,6 +158,11 @@ StatusCode TauWPDecorator::initialize() { m_hists3p = std::make_unique<std::vector<m_pair_t>>(); ATH_CHECK(retrieveHistos(3)); ATH_CHECK(storeLimits(3)); + + for (size_t wpIndex=0; wpIndex < m_decorWPs.size(); ++wpIndex) { + const std::string& name = m_decorWPs[wpIndex]; + m_charDecors.emplace_back(SG::AuxElement::Decorator<char>(name)); + } return StatusCode::SUCCESS; } @@ -280,14 +285,16 @@ StatusCode TauWPDecorator::execute(xAOD::TauJet& pTau) const { } // Decorate other WPs for (size_t wpIndex=0; wpIndex < m_decorWPs.size(); ++wpIndex) { + const SG::AuxElement::Decorator<char>& decorator = m_charDecors[wpIndex]; + if(nProng == 0) { - pTau.auxdecor<char>(m_decorWPs[wpIndex]) = scoreTrans > (1-m_decorWPEffs0p[wpIndex]); + decorator(pTau) = scoreTrans > (1-m_decorWPEffs0p[wpIndex]); } else if(nProng == 1) { - pTau.auxdecor<char>(m_decorWPs[wpIndex]) = scoreTrans > (1-m_decorWPEffs1p[wpIndex]); + decorator(pTau) = scoreTrans > (1-m_decorWPEffs1p[wpIndex]); } else { - pTau.auxdecor<char>(m_decorWPs[wpIndex]) = scoreTrans > (1-m_decorWPEffs3p[wpIndex]); + decorator(pTau) = scoreTrans > (1-m_decorWPEffs3p[wpIndex]); } } } diff --git a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h index 84176b0de96..417a5a76876 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h @@ -88,6 +88,7 @@ class TauWPDecorator : public TauRecToolBase { std::vector<float> m_EDMWPEffs3p; //!< Efficiency of each WP in EDP for 3-prong taus std::vector<std::string> m_decorWPs; //!< Vector of WPs not in the EDM (to be decorated) + std::vector<SG::AuxElement::Decorator<char>> m_charDecors; //! std::vector<float> m_decorWPEffs0p; //!< Efficiency of each WP to be docorated for 0-prong taus std::vector<float> m_decorWPEffs1p; //!< Efficiency of each WP to be docorated for 1-prong taus std::vector<float> m_decorWPEffs3p; //!< Efficiency of each WP to be docorated for 3-prong taus -- GitLab From cdc3e0d8d16ec777f442a537871034635ef958b9 Mon Sep 17 00:00:00 2001 From: Vadim Kostyukhin <vadim.kostyukhin@cern.ch> Date: Fri, 24 Jul 2020 09:02:32 +0200 Subject: [PATCH 110/459] Convert std::min() function to .?.:. expression, because static const variable can't be a function argument. Remove unused declaration and convert some commented couts to MSG_VERBOSE and MSG_DEBUG --- .../NewVrtSecInclusiveTool.h | 2 -- .../src/Sel2TrkVertices.cxx | 6 +---- .../NewVrtSecInclusiveTool/src/Utilities.cxx | 2 +- .../src/VrtSecMulti.cxx | 25 +++++++++++-------- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/NewVrtSecInclusiveTool/NewVrtSecInclusiveTool.h b/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/NewVrtSecInclusiveTool/NewVrtSecInclusiveTool.h index 2749aa5c1ae..66d831a8642 100755 --- a/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/NewVrtSecInclusiveTool/NewVrtSecInclusiveTool.h +++ b/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/NewVrtSecInclusiveTool/NewVrtSecInclusiveTool.h @@ -54,8 +54,6 @@ namespace Trk{ namespace MVAUtils { class BDT; } -typedef std::vector<double> dvect; - //------------------------------------------------------------------------ namespace Rec { diff --git a/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/src/Sel2TrkVertices.cxx b/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/src/Sel2TrkVertices.cxx index 1f9e9b53f9a..500fd90c3bf 100755 --- a/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/src/Sel2TrkVertices.cxx +++ b/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/src/Sel2TrkVertices.cxx @@ -17,7 +17,6 @@ #include "TH1.h" #include "TH2D.h" // -//#include<iostream> namespace Rec{ @@ -73,7 +72,7 @@ namespace Rec{ } if( m_fillHist && m_curTup ){ - m_curTup->nTrk=std::min(NTracks,DevTuple::maxNTrk); + m_curTup->nTrk=NTracks < DevTuple::maxNTrk ? NTracks : DevTuple::maxNTrk ; m_curTup->n2Vrt=0; } @@ -192,9 +191,6 @@ namespace Rec{ VARS[7]=sqrt(fabs(1.-cosSVPV*cosSVPV)); VARS[8]=SVPV.Eta(); VARS[9]=std::max(ihitR,jhitR); - //VARS[9]=sumIBLHits; - //VARS[10]=sumBLHits; - //VARS[11]=std::max(Sig3D,m_selVrtSigCut); float wgtSelect=m_SV2T_BDT->GetGradBoostMVA(VARS); //std::vector<float> weights=m_SV2T_BDT->GetMultiResponse(VARS,3); //float wgtSelect=weights[0]; diff --git a/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/src/Utilities.cxx b/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/src/Utilities.cxx index 9377d1a92fb..434ee61a610 100755 --- a/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/src/Utilities.cxx +++ b/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/src/Utilities.cxx @@ -307,7 +307,7 @@ double NewVrtSecInclusiveTool::VrtVrtDist(const xAOD::Vertex & PrimVrt, const Am ParentPDG=0; if( child->hasProdVtx() ){ if( child->prodVtx()->nIncomingParticles()==1 ){ - ParentPDG = abs((*(child->prodVtx()->incomingParticleLinks())[0])->pdgId()); + ParentPDG = std::abs((*(child->prodVtx()->incomingParticleLinks())[0])->pdgId()); return *(child->prodVtx()->incomingParticleLinks())[0]; } } diff --git a/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/src/VrtSecMulti.cxx b/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/src/VrtSecMulti.cxx index 48342e3225e..7076f45744d 100755 --- a/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/src/VrtSecMulti.cxx +++ b/Reconstruction/VKalVrt/NewVrtSecInclusiveTool/src/VrtSecMulti.cxx @@ -107,14 +107,14 @@ namespace Rec{ m_fitSvc->setApproximateVertex(PrimVrt.x(), PrimVrt.y(), PrimVrt.z(),*state); } } -// std::cout<<"FoundAppVrt="<<newvrt.vertex[0]<<", "<<newvrt.vertex[1]<<", "<<newvrt.vertex[2]<<'\n'; sc = StatusCode::FAILURE; sc=m_fitSvc->VKalVrtFit(xAODwrk->tmpListTracks, neutralPartDummy, newvrt.vertex, newvrt.vertexMom, newvrt.vertexCharge, newvrt.vertexCov, newvrt.chi2PerTrk, newvrt.trkAtVrt, newvrt.chi2, *state, false); -// std::cout << "Res="<<newvrt.chi2<<", "<<NPTR<<", "<<newvrt.selTrk[0]<<", "<<newvrt.selTrk[1]<<'\n'; + ATH_MSG_VERBOSE("Found IniVertex="<<newvrt.vertex[0]<<", "<<newvrt.vertex[1]<<", "<<newvrt.vertex[2]); + ATH_MSG_VERBOSE("with Chi2="<<newvrt.chi2<<" Ntrk="<<NPTR<<" trk1,2="<<newvrt.selTrk[0]<<", "<<newvrt.selTrk[1]); if( sc.isFailure() ) continue; /* Bad fit - goto next solution */ if(NPTR==2 && newvrt.chi2>10.) continue; /* Bad 2track vertex */ if(newvrt.chi2PerTrk.size()==2) newvrt.chi2PerTrk[0]=newvrt.chi2PerTrk[1]=newvrt.chi2/2.; @@ -181,8 +181,8 @@ namespace Rec{ vrtWithCommonTrk.emplace(nTCom,std::make_pair(iv,jv)); } } //============================== DEBUG output - //printWrkSet(WrkVrtSet,"InitialVrts"); //for(auto ku : vrtWithCommonTrk)std::cout<<" nCom="<<ku.first<<" v1="<<ku.second.first<<" v2="<<ku.second.second<<'\n'; + if(msgLvl(MSG::DEBUG))printWrkSet(WrkVrtSet,"Initial Vertices"); //=========================================== for(icvrt=vrtWithCommonTrk.rbegin(); icvrt!=vrtWithCommonTrk.rend(); icvrt++){ int nTCom=(*icvrt).first; @@ -219,8 +219,8 @@ namespace Rec{ return finalVertices; } //------ - //printWrkSet(WrkVrtSet,"Interm"); - //------ + if(msgLvl(MSG::DEBUG))printWrkSet(WrkVrtSet,"Intermediate Vertices"); + //------ for( auto &tmpV : (*WrkVrtSet) ) tmpV.projectedVrt=MomProjDist(tmpV.vertex, PrimVrt, tmpV.vertexMom ); //Setup ProjectedVrt //---------------------------------------------------------------------------- // Here we have the overlapping solutions. @@ -238,9 +238,11 @@ namespace Rec{ state = m_fitSvc->makeState(); while((foundMaxT=maxOfShared( WrkVrtSet, TrkInVrt, SelectedTrack, SelectedVertex))>0) { - //std::cout << "MAX="<<foundMaxT<<", "<<SelectedTrack<<", "<<SelectedVertex<<'\n'; - //std::cout << "VRT="<<minVrtVrtDist( WrkVrtSet, foundV1, foundV2)<<", "<<foundV1<<", "<<foundV2<<'\n'; - //printWrkSet(WrkVrtSet,"Iterat"); + if(msgLvl(MSG::VERBOSE)) { + printWrkSet(WrkVrtSet,"Iteration"); + ATH_MSG_VERBOSE("MAX="<<foundMaxT<<", "<<SelectedTrack<<", "<<SelectedVertex<< + "VRT="<<minVrtVrtDist( WrkVrtSet, foundV1, foundV2)<<", "<<foundV1<<", "<<foundV2); + } double foundMinVrtDst = 1000000.; if(foundMaxT<m_trackDetachCut) foundMinVrtDst = minVrtVrtDist( WrkVrtSet, foundV1, foundV2); @@ -391,8 +393,9 @@ namespace Rec{ if(nth >2)m_hb_sig3DNtr->Fill( signif3D, m_w_1); } // -//--- Check V0s and conversions ??? -/* if(nth==2 && curVrt.vertexCharge==0 && curVrt.detachedTrack<0){ +//--- Check V0s and conversions. Necessity must be checked in physics applications +#if 0 + if(nth==2 && curVrt.vertexCharge==0 && curVrt.detachedTrack<0){ double mass_PiPi = curVrt.vertexMom.M(); double mass_PPi = massV0(curVrt.trkAtVrt,m_massP,m_massPi); double mass_EE = massV0(curVrt.trkAtVrt,m_massE,m_massE); @@ -403,7 +406,7 @@ namespace Rec{ if( fabs(mass_PPi-m_massLam) < 8.) continue; if( mass_EE < 60. && curVrt.vertex.perp() > 20.) continue; } -*/ +#endif //--- if(signif3D<m_selVrtSigCut+1.) continue; //Main PV-SV distance quality cut if(curVrt.vertex.perp() > m_maxSVRadiusCut) continue; // Too far from interaction point -- GitLab From 597686005ab75ae566057f7792ce7834867f1e95 Mon Sep 17 00:00:00 2001 From: Liaoshan Shi <Liaoshan.Shi@cern.ch> Date: Fri, 24 Jul 2020 10:18:42 +0200 Subject: [PATCH 111/459] clean up --- .../PyAnalysis/PyAnalysisCore/python/PyEventTools.py | 1 - graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py | 3 +-- graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py | 3 --- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/PhysicsAnalysis/PyAnalysis/PyAnalysisCore/python/PyEventTools.py b/PhysicsAnalysis/PyAnalysis/PyAnalysisCore/python/PyEventTools.py index acff2eef8be..fc05a07a760 100755 --- a/PhysicsAnalysis/PyAnalysis/PyAnalysisCore/python/PyEventTools.py +++ b/PhysicsAnalysis/PyAnalysis/PyAnalysisCore/python/PyEventTools.py @@ -21,5 +21,4 @@ def getEventInfo (aKey): athena> print e.event_ID().event_number() """ - #return PyK.retrieve(PyK.GNS.EventInfo,aKey) return PyK.retrieve('xAOD::EventInfo',aKey) diff --git a/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py b/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py index 02172773322..cc346df5733 100644 --- a/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py +++ b/graphics/EventDisplaysOnline/python/OnlineEventDisplaysSvc.py @@ -188,8 +188,7 @@ class OnlineEventDisplaysSvc( PyAthena.Svc ): self.directory = '' def handle(self, incident): - #self.msg.verbose("Received incident %s from %s" % (incident.type(), incident.source())) - self.msg.info("Received incident %s from %s" % (incident.type(), incident.source())) + self.msg.verbose("Received incident %s from %s" % (incident.type(), incident.source())) # Event and trigger info present, decide stream if incident.type() == 'BeginEvent' and incident.source() == 'BeginIncFiringAlg': diff --git a/graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py b/graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py index ca8385bb7ba..cb1eb086400 100644 --- a/graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py +++ b/graphics/EventDisplaysOnline/share/EventDisplay_jobOptions.py @@ -126,9 +126,6 @@ jobproperties.CaloCellFlags.doLArCreateMissingCells=False #Work around to stop crash in pixel cluster splitting (Updated by lshi 23 July 2020, ATLASRECTS-5496) from InDetRecExample.InDetJobProperties import InDetFlags#All OK -#InDetFlags.doInnerDetectorCommissioning.set_Value_and_Lock(True) -#InDetFlags.doTrackSegmentsTRT.set_Value_and_Lock(False) -#InDetFlags.doTIDE_Ambi.set_Value_and_Lock(False) InDetFlags.doPixelClusterSplitting.set_Value_and_Lock(False) from JetRec.JetRecFlags import jetFlags -- GitLab From 6ab7c2a42044762f213d3ce3436a16077ee9a812 Mon Sep 17 00:00:00 2001 From: Liaoshan Shi <Liaoshan.Shi@cern.ch> Date: Fri, 24 Jul 2020 11:16:14 +0200 Subject: [PATCH 112/459] clean up --- .../share/RecExOnline_postconfig.py | 55 ------------------- 1 file changed, 55 deletions(-) diff --git a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_postconfig.py b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_postconfig.py index 99e6941244a..b07ae96f0a8 100644 --- a/Reconstruction/RecExample/RecExOnline/share/RecExOnline_postconfig.py +++ b/Reconstruction/RecExample/RecExOnline/share/RecExOnline_postconfig.py @@ -28,61 +28,6 @@ if isOnline and useEmon: ToolSvc.InDetPixelClusterOnTrackTool.ErrorStrategy=1 # Added 13 Jul 2020 from ATLASRECTS-5544 -### -### Fix problem in PixelConditionsTools -### From Fares Djama -### " the RUN2 pixel tags have been copied from RUN1, -### while we have a new detector, the IBL. -### We need to add a new IOV to our tags in the online. -### I guess that's the same for all other condb folders" -### - - -# -# This part is only for online (SMWANG : Nov 17th 2015) -# - -#from IOVDbSvc.CondDB import conddb -# -#if not conddb.folderRequested("PIXEL/PixReco"): -# conddb.addFolder('PIXEL','/PIXEL/PixReco') -#if not conddb.folderRequested("PIXEL/PixCalib"): -# conddb.addFolder('PIXEL','/PIXEL/PixCalib') -#conddb.blockFolder("/PIXEL/PixCalib") -#conddb.blockFolder("/PIXEL/PixReco") -# -#conddb.addFolderWithTag("/det/indet/M8/AtlasProduction-20.1.0.1/NewHLT.db;dbname=CONDBR2","/PIXEL/PixReco","PixReco-HLT-RUN12-000-01",force=True) -#conddb.addFolderWithTag("/det/indet/M8/AtlasProduction-20.1.0.1/NewHLT.db;dbname=CONDBR2","/PIXEL/PixCalib","PixReco-HLT-RUN12-000-01",force=True) - - -# -# Need to get this part to work online and offline !!! (SMWANG : Nov 17th 2015) -# - -#if (isOnline and not isOfflineTest): -# from IOVDbSvc.CondDB import conddb -# if not conddb.folderRequested("PIXEL/PixReco"): -# conddb.addFolder('PIXEL','/PIXEL/PixReco') -# if not conddb.folderRequested("PIXEL/PixCalib"): -# conddb.addFolder('PIXEL','/PIXEL/PixCalib') -# conddb.blockFolder("/PIXEL/PixCalib") -# conddb.blockFolder("/PIXEL/PixReco") -# conddb.addFolderWithTag("/det/indet/M8/AtlasProduction-20.1.0.1/NewHLT.db;dbname=CONDBR2","/PIXEL/PixReco","PixReco-HLT-RUN12-000-01",force=True) -# conddb.addFolderWithTag("/det/indet/M8/AtlasProduction-20.1.0.1/NewHLT.db;dbname=CONDBR2","/PIXEL/PixCalib","PixReco-HLT-RUN12-000-01",force=True) -# -# -#if (isOnline and isOfflineTest): -# from IOVDbSvc.CondDB import conddb -# if not conddb.folderRequested("PIXEL/PixReco"): -# conddb.addFolder('PIXEL','/PIXEL/PixReco') -# if not conddb.folderRequested("PIXEL/PixCalib"): -# conddb.addFolder('PIXEL','/PIXEL/PixCalib') -# conddb.blockFolder("/PIXEL/PixCalib") -# conddb.blockFolder("/PIXEL/PixReco") -# conddb.addFolderWithTag("/afs/cern.ch/work/s/smwang/public/DQM/InDet_online_db/NewHLT.db;dbname=CONDBR2","/PIXEL/PixReco","PixReco-HLT-RUN12-000-01",force=True) -# conddb.addFolderWithTag("/afs/cern.ch/work/s/smwang/public/DQM/InDet_online_db/NewHLT.db;dbname=CONDBR2","/PIXEL/PixCalib","PixReco-HLT-RUN12-000-01",force=True) - - # ----------------------------- Printout printfunc ("CHECK POINT PRINTING") globalflags.print_JobProperties() -- GitLab From 8a9262b35884af936dd45e14e59a64edc3f691ee Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 21 Jul 2020 17:57:53 +0200 Subject: [PATCH 113/459] TrigT1: Enable thread checker for "clean" packages --- Trigger/TrigT1/L1Common/ATLAS_CHECK_THREAD_SAFETY | 1 + .../TrigT1/TrigT1CaloCalibAthenaPool/ATLAS_CHECK_THREAD_SAFETY | 1 + .../TrigT1CaloCalibToolInterfaces/ATLAS_CHECK_THREAD_SAFETY | 1 + .../TrigT1CaloEvent/TrigT1CaloEvent/ATLAS_CHECK_THREAD_SAFETY | 1 + .../TrigT1CaloMonitoringTools/ATLAS_CHECK_THREAD_SAFETY | 1 + .../TrigT1CaloToolInterfaces/ATLAS_CHECK_THREAD_SAFETY | 1 + Trigger/TrigT1/TrigT1CaloTools/ATLAS_CHECK_THREAD_SAFETY | 1 + .../TrigT1EventTPCnv/TrigT1EventTPCnv/ATLAS_CHECK_THREAD_SAFETY | 1 + .../TrigT1MuctpiPhase1/ATLAS_CHECK_THREAD_SAFETY | 1 + .../TrigT1ResultByteStream/ATLAS_CHECK_THREAD_SAFETY | 1 + 10 files changed, 10 insertions(+) create mode 100644 Trigger/TrigT1/L1Common/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Trigger/TrigT1/TrigT1CaloCalibAthenaPool/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Trigger/TrigT1/TrigT1CaloCalibToolInterfaces/TrigT1CaloCalibToolInterfaces/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Trigger/TrigT1/TrigT1CaloMonitoringTools/TrigT1CaloMonitoringTools/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Trigger/TrigT1/TrigT1CaloTools/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Trigger/TrigT1/TrigT1EventTPCnv/TrigT1EventTPCnv/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Trigger/TrigT1/TrigT1MuctpiPhase1/TrigT1MuctpiPhase1/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/ATLAS_CHECK_THREAD_SAFETY diff --git a/Trigger/TrigT1/L1Common/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/L1Common/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..98169f72a7f --- /dev/null +++ b/Trigger/TrigT1/L1Common/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/L1Common diff --git a/Trigger/TrigT1/TrigT1CaloCalibAthenaPool/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/TrigT1CaloCalibAthenaPool/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..cef59050354 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibAthenaPool/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/TrigT1CaloCalibAthenaPool diff --git a/Trigger/TrigT1/TrigT1CaloCalibToolInterfaces/TrigT1CaloCalibToolInterfaces/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/TrigT1CaloCalibToolInterfaces/TrigT1CaloCalibToolInterfaces/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..84108d866a3 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibToolInterfaces/TrigT1CaloCalibToolInterfaces/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/TrigT1CaloCalibToolInterfaces diff --git a/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..b512f3b52a0 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/TrigT1CaloEvent diff --git a/Trigger/TrigT1/TrigT1CaloMonitoringTools/TrigT1CaloMonitoringTools/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/TrigT1CaloMonitoringTools/TrigT1CaloMonitoringTools/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..53397ca4d1f --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloMonitoringTools/TrigT1CaloMonitoringTools/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/TrigT1CaloMonitoringTools diff --git a/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..9429994cf2d --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloToolInterfaces/TrigT1CaloToolInterfaces/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/TrigT1CaloToolInterfaces diff --git a/Trigger/TrigT1/TrigT1CaloTools/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/TrigT1CaloTools/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..d26ab96957a --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloTools/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/TrigT1CaloTools diff --git a/Trigger/TrigT1/TrigT1EventTPCnv/TrigT1EventTPCnv/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/TrigT1EventTPCnv/TrigT1EventTPCnv/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..afad21f4121 --- /dev/null +++ b/Trigger/TrigT1/TrigT1EventTPCnv/TrigT1EventTPCnv/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/TrigT1EventTPCnv diff --git a/Trigger/TrigT1/TrigT1MuctpiPhase1/TrigT1MuctpiPhase1/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/TrigT1MuctpiPhase1/TrigT1MuctpiPhase1/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..6d251c6ac81 --- /dev/null +++ b/Trigger/TrigT1/TrigT1MuctpiPhase1/TrigT1MuctpiPhase1/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/TrigT1MuctpiPhase1 diff --git a/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..b7156ae0928 --- /dev/null +++ b/Trigger/TrigT1/TrigT1ResultByteStream/TrigT1ResultByteStream/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/TrigT1ResultByteStream -- GitLab From d8ffef67272b7877adce32bad69b306f5140b4cb Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 22 Jul 2020 12:57:22 +0200 Subject: [PATCH 114/459] TrigT1Interfaces: Fixes for thread checker Enable static thread checker and make code compliant. Delete unused `TMUtil` class. --- .../ATLAS_CHECK_THREAD_SAFETY | 1 + .../TrigT1Interfaces/CTPSLink.h | 15 +- .../TrigT1Interfaces/TMUtil.h | 68 -------- .../TrigT1/TrigT1Interfaces/src/CTPSLink.cxx | 6 +- .../TrigT1Interfaces/src/Lvl1MuCTPIInput.cxx | 4 +- .../src/Lvl1MuCTPIInputPhase1.cxx | 4 +- .../TrigT1/TrigT1Interfaces/src/TMUtil.cxx | 164 ------------------ 7 files changed, 13 insertions(+), 249 deletions(-) create mode 100644 Trigger/TrigT1/TrigT1Interfaces/TrigT1Interfaces/ATLAS_CHECK_THREAD_SAFETY delete mode 100644 Trigger/TrigT1/TrigT1Interfaces/TrigT1Interfaces/TMUtil.h delete mode 100644 Trigger/TrigT1/TrigT1Interfaces/src/TMUtil.cxx diff --git a/Trigger/TrigT1/TrigT1Interfaces/TrigT1Interfaces/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/TrigT1Interfaces/TrigT1Interfaces/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..7b2e4fe9928 --- /dev/null +++ b/Trigger/TrigT1/TrigT1Interfaces/TrigT1Interfaces/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/TrigT1Interfaces diff --git a/Trigger/TrigT1/TrigT1Interfaces/TrigT1Interfaces/CTPSLink.h b/Trigger/TrigT1/TrigT1Interfaces/TrigT1Interfaces/CTPSLink.h index b3ae7e8a371..31f5a4eb039 100644 --- a/Trigger/TrigT1/TrigT1Interfaces/TrigT1Interfaces/CTPSLink.h +++ b/Trigger/TrigT1/TrigT1Interfaces/TrigT1Interfaces/CTPSLink.h @@ -1,8 +1,7 @@ -// Dear emacs, this is -*- c++ -*- -#ifndef TRIGT1INTERFACES_CTPSLINK_H /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ +#ifndef TRIGT1INTERFACES_CTPSLINK_H #define TRIGT1INTERFACES_CTPSLINK_H // std include(s): @@ -67,7 +66,7 @@ namespace LVL1CTP { unsigned int getSize() const; //! retrieve CTP version number - unsigned int getCTPVersionNumber() const { return m_ctpVersionNumber;} + unsigned int getCTPVersionNumber() const { return m_ctpVersionNumber;} /* access data content */ @@ -116,10 +115,10 @@ namespace LVL1CTP { unsigned int m_ctpVersionNumber; CTPdataformatVersion * m_ctpVersion; - mutable unsigned int m_wordsPerHeader; //!< number of words per header - mutable unsigned int m_wordsPerDataElement; //!< number of words per data element - mutable unsigned int m_wordsPerTrailer; //!< number of words per trailer - mutable unsigned int m_wordsPerCTPSLink; //!< number of words per CTPSLink + unsigned int m_wordsPerHeader; //!< number of words per header + unsigned int m_wordsPerDataElement; //!< number of words per data element + unsigned int m_wordsPerTrailer; //!< number of words per trailer + unsigned int m_wordsPerCTPSLink; //!< number of words per CTPSLink //! convert data contetn into string (used by dump and print) const std::string convert(std::vector<uint32_t> data, diff --git a/Trigger/TrigT1/TrigT1Interfaces/TrigT1Interfaces/TMUtil.h b/Trigger/TrigT1/TrigT1Interfaces/TrigT1Interfaces/TMUtil.h deleted file mode 100644 index accd3b0766a..00000000000 --- a/Trigger/TrigT1/TrigT1Interfaces/TrigT1Interfaces/TMUtil.h +++ /dev/null @@ -1,68 +0,0 @@ -// Dear emacs, this is -*- c++ -*- -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -#ifndef TRIGT1INTERFACES_TMUTIL_H -#define TRIGT1INTERFACES_TMUTIL_H - -// WARNING This is a legacy class used by many of the old configuration classes. -// WARNING It will likely be removed soon. Any needed functionality should be put into -// WARNING other places. - -// STL include(s): -#include <string> - -// External include(s): -#include "xercesc/dom/DOMNode.hpp" - -namespace LVL1CTP { - - /** - * @short Legacy class lingering around hopefully unused... - * - * TMUtil is a helper class which does things like conversion from - * XML DOM strings to normal strings etc. I want to get rid of that - * class in the long run, and some parts of it are really nastily - * written .... - * - * @author Thomas Schoerner-Sadenius <thomas.schoerner@cern.ch> - * - * $Revision: 187728 $ - * $Date: 2009-05-27 18:18:06 +0200 (Wed, 27 May 2009) $ - */ - class TMUtil { - - public: - /** Method returning a string representing a bit pattern for a given - integer argument. The second argument is the number of bits to use */ - static std::string intToBits( unsigned int, int ); - - /* ???? */ - static int powerOfInt( const int ); - - /** Translates a XML string to an integer */ - static int DOMToInt( const XMLCh* ); - - /** Converts a XML string to a normal std::string */ - static std::string utilTranscode( const XMLCh * ); - - /// comparison between Nodename and string - static bool compareNodeNameString( const xercesc::DOMNode*, const std::string& ); - - /// get GeV value from a XML string - static float getGevValue( const XMLCh* ); - - /** Calculates an uint from a string containing only numbers */ - static unsigned int uintFromString( std::string ); - - /* ???? */ - static int getMuonThresholdMult( const unsigned int, const int, const int ); - static int getEMThresholdMult( const unsigned int, const int, const int ); - static int getEnergyThreshold( const unsigned int, const int, - const int, const int ); - - }; // class TMUtil - -} // namespace LVL1CTP - -#endif // TRIGT1INTERFACES_TMUTIL_H diff --git a/Trigger/TrigT1/TrigT1Interfaces/src/CTPSLink.cxx b/Trigger/TrigT1/TrigT1Interfaces/src/CTPSLink.cxx index 2d3cf578690..83454893b8b 100644 --- a/Trigger/TrigT1/TrigT1Interfaces/src/CTPSLink.cxx +++ b/Trigger/TrigT1/TrigT1Interfaces/src/CTPSLink.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "TrigT1Interfaces/CTPSLink.h" @@ -12,10 +12,6 @@ // local LVL1 include(s): #include "TrigT1Interfaces/TrigT1CTPDefs.h" -// tdaq-common includes for CTP format definition -//#include "CTPfragment/CTPdataformat.h" - - namespace LVL1CTP { // CTPSLink contains only information of triggered bunch! diff --git a/Trigger/TrigT1/TrigT1Interfaces/src/Lvl1MuCTPIInput.cxx b/Trigger/TrigT1/TrigT1Interfaces/src/Lvl1MuCTPIInput.cxx index 7c57a93ad4d..afb88f14dee 100644 --- a/Trigger/TrigT1/TrigT1Interfaces/src/Lvl1MuCTPIInput.cxx +++ b/Trigger/TrigT1/TrigT1Interfaces/src/Lvl1MuCTPIInput.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include <iostream> @@ -49,7 +49,7 @@ namespace LVL1MUONIF { size_t sectorAddress, int bcid ) const { - static Lvl1MuBarrelSectorLogicData dummy; + static const Lvl1MuBarrelSectorLogicData dummy; for( size_t ip=0; ip<m_data[systemAddress].size(); ip++){ int bc=((m_data[systemAddress]).at(ip)).first; if (bc != bcid) continue; diff --git a/Trigger/TrigT1/TrigT1Interfaces/src/Lvl1MuCTPIInputPhase1.cxx b/Trigger/TrigT1/TrigT1Interfaces/src/Lvl1MuCTPIInputPhase1.cxx index 1467c3639a1..b93409ace6c 100644 --- a/Trigger/TrigT1/TrigT1Interfaces/src/Lvl1MuCTPIInputPhase1.cxx +++ b/Trigger/TrigT1/TrigT1Interfaces/src/Lvl1MuCTPIInputPhase1.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include <iostream> #include <iomanip> @@ -48,7 +48,7 @@ namespace LVL1MUONIF { size_t sectorAddress, int bcid ) const { - static Lvl1MuBarrelSectorLogicDataPhase1 dummy; + static const Lvl1MuBarrelSectorLogicDataPhase1 dummy; for( size_t ip=0; ip<m_data[systemAddress].size(); ip++){ int bc=((m_data[systemAddress]).at(ip)).first; if (bc != bcid) continue; diff --git a/Trigger/TrigT1/TrigT1Interfaces/src/TMUtil.cxx b/Trigger/TrigT1/TrigT1Interfaces/src/TMUtil.cxx deleted file mode 100644 index ec4289982d2..00000000000 --- a/Trigger/TrigT1/TrigT1Interfaces/src/TMUtil.cxx +++ /dev/null @@ -1,164 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#include <sstream> -#include <cmath> - -#include "xercesc/util/XMLString.hpp" - -#include "TrigT1Interfaces/TMUtil.h" - -namespace LVL1CTP { - - int TMUtil::getEMThresholdMult( const unsigned int word, - const int threshold, const int length ) { - - int returnValue; - const int nbit( 32 ); - std::string bitPattern( intToBits( word, nbit ) ); - // bit 01234567890123456789012345678901 - // info xxxxxxP888777666555444333222111x - bitPattern = bitPattern.substr( 7 + ( 8 - threshold ) * length, length ); - returnValue = static_cast<int>( uintFromString( bitPattern ) ); - return returnValue; - - } - - int TMUtil::getMuonThresholdMult( const unsigned int word, - const int threshold, const int length ) { - - int returnValue; - const int nbit( 32 ); - std::string bitPattern( intToBits( word, nbit ) ); - // bit 01234567890123456789012345678901 - // info xxxxxxxxxxxxxx666555444333222111 - bitPattern = bitPattern.substr( 14 + ( 6 - threshold ) * length, length ); - returnValue = static_cast<int>( uintFromString( bitPattern ) ); - return returnValue; - - } - - int TMUtil::getEnergyThreshold( const unsigned int word, - const int threshold, const int offSet, - const int number ) { - - int returnValue; - const int nbit( 32 ); - std::string bitPattern( intToBits( word, nbit ) ); - // bit 01234567890123456789012345678901 - // info xxxxxxP888777666555444333222111x - bitPattern = bitPattern.substr( ( offSet + ( number - threshold ) ), 1 ); - returnValue = static_cast<int>( uintFromString( bitPattern ) ); - return returnValue; - - } - - //const std::string TMUtil::intToBits(const int i,const int nbit) const - std::string TMUtil::intToBits( unsigned int i, int nbit ) { - - std::string bitString = ""; - std::string ONE = "1"; - std::string ZERO = "0"; - if ( i > ( pow( 2, 31 ) - 1 ) ) { - bitString += "1"; - nbit--; - i -= static_cast<unsigned int>( pow( 2, 31 ) ); - } - for ( int j = nbit - 1;j >= 0;j-- ) - if ( pow( 2, j ) <= i ) { - i -= ( int ) pow( 2, j ); - bitString += ONE; - } else - bitString += ZERO; - return bitString; - - } - - int TMUtil::powerOfInt( const int i ) { - int out; - if ( i < 0 || i > 9 ) { - exit( i ); - } else { - out = 1; - for ( int j = 0;j < i;j++ ) - out *= 10; - } - return out; - } - - int TMUtil::DOMToInt( const XMLCh * thisDOMString ) { - - int returnValue( 0 ); - int sign( 1 ); - std::string helpString( TMUtil::utilTranscode( thisDOMString ) ); - if ( helpString.substr( 0, 1 ) == "-" ) { - sign = -1; - helpString = helpString.substr( 1, std::string::npos ); - } - - std::istringstream is( helpString ); - // istrstream is(helpString.c_str(),helpString.size()); - // I think this ^^^ is a gcc32 fix. Don't have time to test it now. EJWM. - is >> returnValue; - - return sign*returnValue; - - } - - std::string TMUtil::utilTranscode( const XMLCh * t ) { - - char* cstr = xercesc::XMLString::transcode( t ); - std::string str = cstr; - xercesc::XMLString::release( &cstr ); - return str; - - } - - unsigned int TMUtil::uintFromString( std::string pattern ) { - - int size = pattern.size() - 1; - unsigned int result = 0; - for ( unsigned int i = 0;i < pattern.size();i++ ) { - if ( pattern[ i ] == '1' ) - result += static_cast<int>( pow( 2, size ) ); - size--; - } - - return result; - - } - - bool TMUtil::compareNodeNameString( const xercesc::DOMNode * domNode, const std::string & string2 ) { - - char* nodename = xercesc::XMLString::transcode( domNode->getNodeName() ); - bool result = ( 0 == xercesc::XMLString::compareString( nodename, string2.c_str() ) ); - xercesc::XMLString::release( &nodename ); - return result; - - } - - float TMUtil::getGevValue( const XMLCh* xmlStr ) { - - // convert XMLCh* to string - const std::string str = utilTranscode( xmlStr ); - - // look for "GeV" - if ( std::string::npos == str.find( "GeV" ) ) - return 0; - - // look for "*" - std::string::size_type idx = str.find( "*" ); - if ( std::string::npos == idx ) - return 0; - - // convert to float - std::istringstream is( str.substr( 0, idx ) ); - float ret; - is >> ret; - - return ret; - - } - -} // namespace LVL1CTP -- GitLab From dc8ac26317446b166b2c31b84f12dd91ffd019a6 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 22 Jul 2020 13:50:31 +0200 Subject: [PATCH 115/459] TrigT1CaloUtils: const fixes, enable thread checker --- .../TrigT1CaloUtils/ATLAS_CHECK_THREAD_SAFETY | 1 + .../TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/BinAndCoord.h | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ATLAS_CHECK_THREAD_SAFETY diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..0290e04599e --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/TrigT1CaloUtils diff --git a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/BinAndCoord.h b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/BinAndCoord.h index 3c278b02840..1f9ebdb98af 100755 --- a/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/BinAndCoord.h +++ b/Trigger/TrigT1/TrigT1CaloUtils/TrigT1CaloUtils/BinAndCoord.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /*************************************************************************** BinAndCoord.h - description @@ -37,13 +37,13 @@ class BinAndCoord { public: BinAndCoord(int phiBin, int etaBin, Coordinate* centralCoords): m_phiBin(phiBin), m_etaBin(etaBin), m_centralCoords(centralCoords){} ; - virtual ~BinAndCoord(){ delete m_centralCoords;}; + ~BinAndCoord(){ delete m_centralCoords;}; public: int phiBin() const {return m_phiBin;}; int etaBin() const {return m_etaBin;}; - Coordinate* coords() const {return m_centralCoords;}; + const Coordinate* coords() const {return m_centralCoords;}; private: -- GitLab From a2654fd86880256508e6a695db7acb341035dfc4 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 22 Jul 2020 13:55:02 +0200 Subject: [PATCH 116/459] TrigT1CaloCalibUtils: const fixes, enable thread checker --- .../TrigT1CaloCalibUtils/ATLAS_CHECK_THREAD_SAFETY | 1 + Trigger/TrigT1/TrigT1CaloCalibUtils/src/L1CaloRampMaker.cxx | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 Trigger/TrigT1/TrigT1CaloCalibUtils/TrigT1CaloCalibUtils/ATLAS_CHECK_THREAD_SAFETY diff --git a/Trigger/TrigT1/TrigT1CaloCalibUtils/TrigT1CaloCalibUtils/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigT1/TrigT1CaloCalibUtils/TrigT1CaloCalibUtils/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..03ad5ea5002 --- /dev/null +++ b/Trigger/TrigT1/TrigT1CaloCalibUtils/TrigT1CaloCalibUtils/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Trigger/TrigT1/TrigT1CaloCalibUtils diff --git a/Trigger/TrigT1/TrigT1CaloCalibUtils/src/L1CaloRampMaker.cxx b/Trigger/TrigT1/TrigT1CaloCalibUtils/src/L1CaloRampMaker.cxx index 7aecf0681cd..3e852a5f9fc 100755 --- a/Trigger/TrigT1/TrigT1CaloCalibUtils/src/L1CaloRampMaker.cxx +++ b/Trigger/TrigT1/TrigT1CaloCalibUtils/src/L1CaloRampMaker.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "TrigT1CaloCalibUtils/L1CaloRampMaker.h" @@ -37,8 +37,8 @@ // define Accessors namespace { -xAOD::TriggerTower::ConstAccessor<float> ttCellsEnergy("CaloCellEnergy"); -xAOD::TriggerTower::ConstAccessor<float> ttCellsET("CaloCellET"); + const xAOD::TriggerTower::ConstAccessor<float> ttCellsEnergy("CaloCellEnergy"); + const xAOD::TriggerTower::ConstAccessor<float> ttCellsET("CaloCellET"); } L1CaloRampMaker::L1CaloRampMaker(const std::string& name, ISvcLocator* pSvcLocator) -- GitLab From 61d2c7ab2fcf3e898e34efbc73d0e0a7e1273bbd Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 22 Jul 2020 15:02:09 +0200 Subject: [PATCH 117/459] TrigT1CaloCalibTools: fixes for thread checker Some fixes to eventually run the static thread checker. L1CaloTriggerTowerDecoratorAlg still needs to be done. --- Trigger/TrigT1/TrigT1CaloCalibTools/CMakeLists.txt | 2 +- .../TrigT1CaloCalibTools/L1CaloCells2TriggerTowers.h | 7 +++++-- .../TrigT1CaloCalibTools/L1CaloLArTowerEnergy.h | 6 ++++-- .../L1CaloPprPhos4ShapeCollection.h | 5 +++-- .../TrigT1CaloCalibTools/TriggerTowerThinningAlg.h | 10 +++++----- .../src/L1CaloPprPhos4ShapeCollection.cxx | 4 ++-- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloCalibTools/CMakeLists.txt b/Trigger/TrigT1/TrigT1CaloCalibTools/CMakeLists.txt index dea05e30876..5c9ff5adc62 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibTools/CMakeLists.txt +++ b/Trigger/TrigT1/TrigT1CaloCalibTools/CMakeLists.txt @@ -12,7 +12,7 @@ atlas_add_library( TrigT1CaloCalibToolsLib src/*.cxx PUBLIC_HEADERS TrigT1CaloCalibTools INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${CORAL_LIBRARIES} ${ROOT_LIBRARIES} AsgTools AthenaBaseComps AthenaKernel AthenaPoolUtilities CaloDetDescrLib CaloEvent CaloIdentifier CaloTriggerToolLib DerivationFrameworkInterfaces GaudiKernel Identifier LArCablingLib LArElecCalib LArIdentifier LArRawEvent LArRecConditions StoreGateLib TileConditionsLib TileEvent TrigT1CaloCalibConditions TrigT1CaloCalibToolInterfaces TrigT1CaloCondSvcLib TrigT1CaloEventLib TrigT1CaloMonitoringToolsLib TrigT1CaloToolInterfaces TrigT1CaloUtilsLib TrigT1Interfaces xAODTrigL1Calo + LINK_LIBRARIES ${CORAL_LIBRARIES} ${ROOT_LIBRARIES} AsgTools AthenaBaseComps AthenaKernel AthenaPoolUtilities CaloDetDescrLib CaloEvent CaloIdentifier CaloTriggerToolLib CxxUtils DerivationFrameworkInterfaces GaudiKernel Identifier LArCablingLib LArElecCalib LArIdentifier LArRawEvent LArRecConditions StoreGateLib TileConditionsLib TileEvent TrigT1CaloCalibConditions TrigT1CaloCalibToolInterfaces TrigT1CaloCondSvcLib TrigT1CaloEventLib TrigT1CaloMonitoringToolsLib TrigT1CaloToolInterfaces TrigT1CaloUtilsLib TrigT1Interfaces xAODTrigL1Calo PRIVATE_LINK_LIBRARIES AthenaMonitoringLib EventInfo LWHists ) atlas_add_component( TrigT1CaloCalibTools diff --git a/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloCells2TriggerTowers.h b/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloCells2TriggerTowers.h index 12b5b5e7575..30793d03584 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloCells2TriggerTowers.h +++ b/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloCells2TriggerTowers.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef _TRIGGER_TRIGT1_TRIGT1CALOCALIBTOOLS_L1CALOCELLS2TRIGGERTOWERS_H_ @@ -8,6 +8,7 @@ // Athena Includes #include "AsgTools/AsgTool.h" #include "GaudiKernel/ToolHandle.h" +#include "CxxUtils/checker_macros.h" #include "StoreGate/StoreGateSvc.h" // Calo includes @@ -47,7 +48,9 @@ */ namespace LVL1 { -class L1CaloCells2TriggerTowers final : virtual public IL1CaloCells2TriggerTowers, public asg::AsgTool + +class ATLAS_NOT_THREAD_SAFE // use of LArCablingBase +L1CaloCells2TriggerTowers final : virtual public IL1CaloCells2TriggerTowers, public asg::AsgTool { /// Create a proper constructor for Athena ASG_TOOL_CLASS( L1CaloCells2TriggerTowers , LVL1::IL1CaloCells2TriggerTowers ) diff --git a/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloLArTowerEnergy.h b/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloLArTowerEnergy.h index 0324a1222bb..e27c105778b 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloLArTowerEnergy.h +++ b/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloLArTowerEnergy.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef _TRIGGER_TRIGT1_TRIGT1CALOCALIBTOOLS_L1CALOLARTOWERENERGY_H_ @@ -8,6 +8,7 @@ // Athena includes #include "AsgTools/AsgTool.h" #include "GaudiKernel/ToolHandle.h" +#include "CxxUtils/checker_macros.h" #include "StoreGate/StoreGateSvc.h" #include "Identifier/Identifier.h" @@ -40,7 +41,8 @@ namespace LVL1 { -class L1CaloLArTowerEnergy : virtual public IL1CaloLArTowerEnergy, public asg::AsgTool +class ATLAS_NOT_THREAD_SAFE // use of LArCablingBase +L1CaloLArTowerEnergy : virtual public IL1CaloLArTowerEnergy, public asg::AsgTool { /// Create a proper constructor for Athena ASG_TOOL_CLASS( L1CaloLArTowerEnergy , LVL1::IL1CaloLArTowerEnergy ) diff --git a/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloPprPhos4ShapeCollection.h b/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloPprPhos4ShapeCollection.h index cb833277f7d..fbf55e5fe6d 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloPprPhos4ShapeCollection.h +++ b/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/L1CaloPprPhos4ShapeCollection.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // ******************************************************** @@ -66,6 +66,7 @@ #include "TrigT1CaloMonitoringTools/TrigT1CaloLWHistogramTool.h" #include "GaudiKernel/ToolHandle.h" +#include "CxxUtils/checker_macros.h" class TTree; class TFile; @@ -111,7 +112,7 @@ public: StatusCode Fill(const L1CaloCoolChannelId& coolId,const unsigned int timeSlice,const unsigned int rodHeaderStep,const int adc); StatusCode Fill(const L1CaloCoolChannelId& coolId,const unsigned int rodHeaderStep,const std::vector<int> adc); - StatusCode Finalize(void); + StatusCode Finalize ATLAS_NOT_REENTRANT(void); TProfile* GetRawSignalShape(const L1CaloCoolChannelId& coolId){return GetMapIterator(coolId)->second->GetRawSignalShape();}; unsigned int GetRawMaxPeakBin(const L1CaloCoolChannelId& coolId){return GetMapIterator(coolId)->second->GetRawMaxPeakBin();}; diff --git a/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/TriggerTowerThinningAlg.h b/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/TriggerTowerThinningAlg.h index fa709b934a6..a81603779d5 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/TriggerTowerThinningAlg.h +++ b/Trigger/TrigT1/TrigT1CaloCalibTools/TrigT1CaloCalibTools/TriggerTowerThinningAlg.h @@ -58,11 +58,11 @@ namespace DerivationFramework { double m_minRandom; // Counters - mutable unsigned long m_nEventsProcessed; - mutable unsigned long m_nEventsAllTriggerTowersKeptByRandom; - mutable unsigned long m_nTriggerTowersProcessed; - mutable unsigned long m_nTriggerTowersKept; - mutable unsigned long m_nTriggerTowersRejected; + mutable std::atomic<unsigned long> m_nEventsProcessed; + mutable std::atomic<unsigned long> m_nEventsAllTriggerTowersKeptByRandom; + mutable std::atomic<unsigned long> m_nTriggerTowersProcessed; + mutable std::atomic<unsigned long> m_nTriggerTowersKept; + mutable std::atomic<unsigned long> m_nTriggerTowersRejected; // Tools and random number generator TRandom3* m_random; diff --git a/Trigger/TrigT1/TrigT1CaloCalibTools/src/L1CaloPprPhos4ShapeCollection.cxx b/Trigger/TrigT1/TrigT1CaloCalibTools/src/L1CaloPprPhos4ShapeCollection.cxx index a00492c4171..0c5f9fdf1c3 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibTools/src/L1CaloPprPhos4ShapeCollection.cxx +++ b/Trigger/TrigT1/TrigT1CaloCalibTools/src/L1CaloPprPhos4ShapeCollection.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "TrigT1CaloCalibTools/L1CaloPprPhos4ShapeCollection.h" @@ -231,7 +231,7 @@ StatusCode L1CaloPprPhos4ShapeCollection::Fill(const L1CaloCoolChannelId& coolId return itr->second->Fill(rodHeaderStep, adc); } -StatusCode L1CaloPprPhos4ShapeCollection::Finalize(void) { +StatusCode L1CaloPprPhos4ShapeCollection::Finalize ATLAS_NOT_REENTRANT(void) { // want to store the profiles and histograms for each cool id into // a TTree, which will be output to a file. -- GitLab From 13aaba029f477ffdb5deb0078c6b6544d83bc3f7 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Fri, 24 Jul 2020 12:34:34 +0200 Subject: [PATCH 118/459] TrigT1CaloCalibUtils: Mark finalize as ATLAS_NOT_THREAD_SAFE `L1CaloPprPhos4ShapeMaker::finalize` is calling `m_signalShapes->Finalize()`, which is marked non-reentrant. So this method needs to be marked not-thread safe to avoid a compiler warning. --- Trigger/TrigT1/TrigT1CaloCalibUtils/CMakeLists.txt | 2 +- .../TrigT1CaloCalibUtils/L1CaloPprPhos4ShapeMaker.h | 12 ++++++------ .../src/L1CaloPprPhos4ShapeMaker.cxx | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloCalibUtils/CMakeLists.txt b/Trigger/TrigT1/TrigT1CaloCalibUtils/CMakeLists.txt index 44651b2ef65..6e5b814fd23 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibUtils/CMakeLists.txt +++ b/Trigger/TrigT1/TrigT1CaloCalibUtils/CMakeLists.txt @@ -16,7 +16,7 @@ atlas_add_library( TrigT1CaloCalibUtilsLib INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CLHEP_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel AthenaPoolUtilities CaloIdentifier CaloTriggerToolLib EventInfo GaudiKernel Identifier LArCablingLib LArElecCalib RegistrationServicesLib StoreGateLib TrigConfHLTData TrigConfL1Data TrigT1CaloCalibConditions TrigT1CaloCalibToolInterfaces TrigT1CaloCalibToolsLib TrigT1CaloCondSvcLib TrigT1CaloEventLib TrigT1CaloMonitoringToolsLib TrigT1CaloUtilsLib xAODTrigL1Calo + LINK_LIBRARIES ${Boost_LIBRARIES} ${CLHEP_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel AthenaPoolUtilities CaloIdentifier CaloTriggerToolLib CxxUtils EventInfo GaudiKernel Identifier LArCablingLib LArElecCalib RegistrationServicesLib StoreGateLib TrigConfHLTData TrigConfL1Data TrigT1CaloCalibConditions TrigT1CaloCalibToolInterfaces TrigT1CaloCalibToolsLib TrigT1CaloCondSvcLib TrigT1CaloEventLib TrigT1CaloMonitoringToolsLib TrigT1CaloUtilsLib xAODTrigL1Calo PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} CaloDetDescrLib CaloEvent TrigT1CaloToolInterfaces TrigT1Interfaces xAODEventInfo ) atlas_add_component( TrigT1CaloCalibUtils diff --git a/Trigger/TrigT1/TrigT1CaloCalibUtils/TrigT1CaloCalibUtils/L1CaloPprPhos4ShapeMaker.h b/Trigger/TrigT1/TrigT1CaloCalibUtils/TrigT1CaloCalibUtils/L1CaloPprPhos4ShapeMaker.h index 25f944f7dda..93e7853e378 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibUtils/TrigT1CaloCalibUtils/L1CaloPprPhos4ShapeMaker.h +++ b/Trigger/TrigT1/TrigT1CaloCalibUtils/TrigT1CaloCalibUtils/L1CaloPprPhos4ShapeMaker.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // *************************************************************************** @@ -17,7 +17,8 @@ #include <map> // Athena includes -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthAlgorithm.h" +#include "CxxUtils/checker_macros.h" #include "GaudiKernel/ITHistSvc.h" #include "GaudiKernel/ToolHandle.h" @@ -65,11 +66,10 @@ class L1CaloPprPhos4ShapeMaker : public AthAlgorithm public: // These are the standard Athena public member functions. L1CaloPprPhos4ShapeMaker(const std::string& name, ISvcLocator* pSvcLocator); - virtual ~L1CaloPprPhos4ShapeMaker(){}; - virtual StatusCode initialize(); - virtual StatusCode execute(); - virtual StatusCode finalize(); + virtual StatusCode initialize() override; + virtual StatusCode execute() override; + virtual StatusCode finalize ATLAS_NOT_THREAD_SAFE() override; private: // Unless you provide a class with a default constructor, copy constructor and copy asignment operator diff --git a/Trigger/TrigT1/TrigT1CaloCalibUtils/src/L1CaloPprPhos4ShapeMaker.cxx b/Trigger/TrigT1/TrigT1CaloCalibUtils/src/L1CaloPprPhos4ShapeMaker.cxx index 5d2aafe4069..c4b152758cf 100644 --- a/Trigger/TrigT1/TrigT1CaloCalibUtils/src/L1CaloPprPhos4ShapeMaker.cxx +++ b/Trigger/TrigT1/TrigT1CaloCalibUtils/src/L1CaloPprPhos4ShapeMaker.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "TrigT1CaloCalibUtils/L1CaloPprPhos4ShapeMaker.h" @@ -431,7 +431,7 @@ StatusCode L1CaloPprPhos4ShapeMaker::execute(){ return StatusCode::SUCCESS; } -StatusCode L1CaloPprPhos4ShapeMaker::finalize(){ +StatusCode L1CaloPprPhos4ShapeMaker::finalize ATLAS_NOT_THREAD_SAFE(){ // Place your post-event-loop code here ATH_MSG_INFO("In finalize()"); -- GitLab From 265f90b2f88d9668ed695be22fc0434898195c10 Mon Sep 17 00:00:00 2001 From: Savanna Marie Shaw <savanna.marie.shaw@cern.ch> Date: Fri, 24 Jul 2020 13:22:15 +0200 Subject: [PATCH 119/459] simplify access to chain parts list --- .../TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py b/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py index 25c101e23dc..1faf5ee8682 100755 --- a/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py +++ b/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py @@ -685,7 +685,7 @@ class TrigMuonEFTrackIsolationHypoConfig(object) : def TrigMuonEFInvMassHypoToolFromDict( chainDict ) : cparts = [i for i in chainDict['chainParts'] if i['signature']=='Muon'] #The invariant mass is specified at end of chain, so only shows up in the last chainPart - thresholds = cparts[len(cparts)-1]['invMassInfo'] + thresholds = cparts[-1]['invMassInfo'] config = TrigMuonEFInvMassHypoConfig() tool = config.ConfigurationHypoTool( chainDict['chainName'], thresholds ) addMonitoring( tool, TrigMuonEFInvMassHypoMonitoring, "TrigMuonEFInvMassHypoTool", chainDict['chainName'] ) -- GitLab From f8ca3076ca87a8ace04cad80aecfe77f16ec91e7 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Fri, 24 Jul 2020 15:15:32 +0200 Subject: [PATCH 120/459] Made further ITauRecTool methods const --- .../Root/TauPi0ScoreCalculator.cxx | 4 ++-- .../tauRecTools/Root/TauPi0Selector.cxx | 6 +++--- .../tauRecTools/Root/TauRecToolBase.cxx | 4 ++-- .../tauRecTools/src/TauPi0ClusterScaler.cxx | 20 +++++++++---------- .../tauRecTools/src/TauPi0ClusterScaler.h | 12 +++++------ .../tauRecTools/tauRecTools/ITauToolBase.h | 4 ++-- .../tauRecTools/TauPi0ScoreCalculator.h | 4 ++-- .../tauRecTools/tauRecTools/TauPi0Selector.h | 6 +++--- .../tauRecTools/tauRecTools/TauRecToolBase.h | 4 ++-- 9 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Reconstruction/tauRecTools/Root/TauPi0ScoreCalculator.cxx b/Reconstruction/tauRecTools/Root/TauPi0ScoreCalculator.cxx index 457eb95138c..2f77020605c 100644 --- a/Reconstruction/tauRecTools/Root/TauPi0ScoreCalculator.cxx +++ b/Reconstruction/tauRecTools/Root/TauPi0ScoreCalculator.cxx @@ -55,7 +55,7 @@ StatusCode TauPi0ScoreCalculator::finalize() } -StatusCode TauPi0ScoreCalculator::executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) +StatusCode TauPi0ScoreCalculator::executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) const { //--------------------------------------------------------------------- // only run on 1-5 prong taus @@ -80,7 +80,7 @@ StatusCode TauPi0ScoreCalculator::executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOCo } -float TauPi0ScoreCalculator::calculateScore(const xAOD::PFO* neutralPFO) +float TauPi0ScoreCalculator::calculateScore(const xAOD::PFO* neutralPFO) const { std::map<TString, float> availableVariables; // map of the variable name to its value diff --git a/Reconstruction/tauRecTools/Root/TauPi0Selector.cxx b/Reconstruction/tauRecTools/Root/TauPi0Selector.cxx index c3071d1ef86..6f7f2eae513 100644 --- a/Reconstruction/tauRecTools/Root/TauPi0Selector.cxx +++ b/Reconstruction/tauRecTools/Root/TauPi0Selector.cxx @@ -44,7 +44,7 @@ StatusCode TauPi0Selector::finalize() return StatusCode::SUCCESS; } -StatusCode TauPi0Selector::executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) +StatusCode TauPi0Selector::executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) const { // decay mode enum auto kDecayModeProto = xAOD::TauJetParameters::PanTau_DecayModeProto; @@ -123,7 +123,7 @@ StatusCode TauPi0Selector::executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer return StatusCode::SUCCESS; } -int TauPi0Selector::getPi0Cluster_etaBin(double Pi0Cluster_eta){ +int TauPi0Selector::getPi0Cluster_etaBin(double Pi0Cluster_eta) const { int Pi0Cluster_etaBin = -1; double Pi0Cluster_noCorr_ABSeta = std::abs(Pi0Cluster_eta); @@ -135,7 +135,7 @@ int TauPi0Selector::getPi0Cluster_etaBin(double Pi0Cluster_eta){ return Pi0Cluster_etaBin; } -TLorentzVector TauPi0Selector::getP4(const xAOD::TauJet& pTau) +TLorentzVector TauPi0Selector::getP4(const xAOD::TauJet& pTau) const { TLorentzVector p4(0.,0.,0.,0.); // Add charged PFOs diff --git a/Reconstruction/tauRecTools/Root/TauRecToolBase.cxx b/Reconstruction/tauRecTools/Root/TauRecToolBase.cxx index 19f60ab1b39..e6763cc28db 100644 --- a/Reconstruction/tauRecTools/Root/TauRecToolBase.cxx +++ b/Reconstruction/tauRecTools/Root/TauRecToolBase.cxx @@ -192,12 +192,12 @@ StatusCode TauRecToolBase::executeVertexVariables(xAOD::TauJet& /*pTau*/, xAOD:: return StatusCode::FAILURE; } -StatusCode TauRecToolBase::executePi0ClusterScaler(xAOD::TauJet& /*pTau*/, xAOD::PFOContainer& /*neutralPFOContainer*/, xAOD::PFOContainer& /*chargedPFOContainer*/ ) { +StatusCode TauRecToolBase::executePi0ClusterScaler(xAOD::TauJet& /*pTau*/, xAOD::PFOContainer& /*neutralPFOContainer*/, xAOD::PFOContainer& /*chargedPFOContainer*/ ) const { ATH_MSG_ERROR("function not implemented"); return StatusCode::FAILURE; } -StatusCode TauRecToolBase::executePi0nPFO(xAOD::TauJet& /*pTau*/, xAOD::PFOContainer& /*neutralPFOContainer*/) { +StatusCode TauRecToolBase::executePi0nPFO(xAOD::TauJet& /*pTau*/, xAOD::PFOContainer& /*neutralPFOContainer*/) const { ATH_MSG_ERROR("function not implemented"); return StatusCode::FAILURE; } diff --git a/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.cxx b/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.cxx index 2d9a903a0ac..e20747d4892 100644 --- a/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.cxx +++ b/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.cxx @@ -51,7 +51,7 @@ StatusCode TauPi0ClusterScaler::finalize() } -StatusCode TauPi0ClusterScaler::executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer) +StatusCode TauPi0ClusterScaler::executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer) const { // Clear vector of cell-based charged PFO Links. // Required when rerunning on xAOD level. @@ -82,7 +82,7 @@ StatusCode TauPi0ClusterScaler::executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD return StatusCode::SUCCESS; } -void TauPi0ClusterScaler::resetNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) +void TauPi0ClusterScaler::resetNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) const { // Set neutral PFO kinematics to vertex corrected cluster ATH_MSG_DEBUG("Resetting neutral PFO kinematics"); @@ -109,7 +109,7 @@ void TauPi0ClusterScaler::resetNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContaine -void TauPi0ClusterScaler::createChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& cPFOContainer) +void TauPi0ClusterScaler::createChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& cPFOContainer) const { ATH_MSG_DEBUG("Creating charged PFOs"); for(auto tauTrackLink : pTau.tauTrackLinks(xAOD::TauJetParameters::classifiedCharged)){ @@ -137,7 +137,7 @@ void TauPi0ClusterScaler::createChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContain } } -void TauPi0ClusterScaler::associateHadronicToChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& chargedPFOContainer) +void TauPi0ClusterScaler::associateHadronicToChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& chargedPFOContainer) const { ATH_MSG_DEBUG("Associating hadronic PFOs to charged PFOs"); @@ -209,13 +209,13 @@ void TauPi0ClusterScaler::associateHadronicToChargedPFOs(xAOD::TauJet& pTau, xAO } // finally set hadronic PFO links (note: we use existing TauShot enum) - for( auto kv : linkMap ){ - if(not kv.first->setAssociatedParticleLinks(xAOD::PFODetails::TauShot,kv.second)) + for( auto [k,v] : linkMap ){ + if(not k->setAssociatedParticleLinks(xAOD::PFODetails::TauShot, v)) ATH_MSG_WARNING("Couldn't add hadronic PFO links to charged PFO!"); } } -void TauPi0ClusterScaler::associateChargedToNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) +void TauPi0ClusterScaler::associateChargedToNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) const { ATH_MSG_DEBUG("Associating charged PFOs to neutral PFOs"); // Will: I'm ashamed of this link-map, but its necessary until the @@ -287,14 +287,14 @@ void TauPi0ClusterScaler::associateChargedToNeutralPFOs(xAOD::TauJet& pTau, xAOD } // finally set charged PFO links - for( auto kv : linkMap ){ - if(not kv.first->setAssociatedParticleLinks(xAOD::PFODetails::Track,kv.second)) + for( auto [k,v] : linkMap ){ + if(not k->setAssociatedParticleLinks(xAOD::PFODetails::Track,v)) ATH_MSG_WARNING("Couldn't add charged PFO links to neutral PFO!"); } } -void TauPi0ClusterScaler::subtractChargedEnergyFromNeutralPFOs(xAOD::PFOContainer& neutralPFOContainer) +void TauPi0ClusterScaler::subtractChargedEnergyFromNeutralPFOs(xAOD::PFOContainer& neutralPFOContainer) const { ATH_MSG_DEBUG("Subtracting charged energy from neutral PFOs"); for( auto neutralPFO : neutralPFOContainer ) diff --git a/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.h b/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.h index 099280916c1..9bfe5c51c5b 100644 --- a/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.h +++ b/Reconstruction/tauRecTools/src/TauPi0ClusterScaler.h @@ -30,7 +30,7 @@ public: virtual StatusCode initialize() override; virtual StatusCode finalize() override; - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer, xAOD::PFOContainer& pChargedPFOContainer) override; + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer, xAOD::PFOContainer& pChargedPFOContainer) const override; private: @@ -38,22 +38,22 @@ private: //ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtensionTool; /** @brief reset neutral PFO kinematics (for AOD running) */ - void resetNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer); + void resetNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer) const; /** @brief create charged PFOs */ - void createChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pChargedPFOContainer); + void createChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pChargedPFOContainer) const; /** @brief extrapolate charged PFO tracks to EM and HAD layers */ //void extrapolateChargedPFOs(xAOD::TauJet& pTau); /** @brief associate hadronic PFOs to charged PFOs */ - void associateHadronicToChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pChargedPFOContainer); + void associateHadronicToChargedPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pChargedPFOContainer) const; /** @brief associate charged PFOs to neutral PFOs */ - void associateChargedToNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer); + void associateChargedToNeutralPFOs(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer) const; /** @brief associate charged PFOs to neutral PFOs */ - void subtractChargedEnergyFromNeutralPFOs(xAOD::PFOContainer& pNeutralPFOContainer); + void subtractChargedEnergyFromNeutralPFOs(xAOD::PFOContainer& pNeutralPFOContainer) const; /** @brief sets of EM/Had samplings for track extrapolation */ //std::set<CaloSampling::CaloSample> m_EMSamplings; diff --git a/Reconstruction/tauRecTools/tauRecTools/ITauToolBase.h b/Reconstruction/tauRecTools/tauRecTools/ITauToolBase.h index 59a608693bd..6e27aea64d2 100644 --- a/Reconstruction/tauRecTools/tauRecTools/ITauToolBase.h +++ b/Reconstruction/tauRecTools/tauRecTools/ITauToolBase.h @@ -60,8 +60,8 @@ class ITauToolBase : virtual public asg::IAsgTool xAOD::CaloClusterContainer& caloClusterContainer, const xAOD::CaloClusterContainer& pCaloClusterContainer ) const = 0; virtual StatusCode executeVertexVariables(xAOD::TauJet& pTau, xAOD::VertexContainer& vertexContainer ) const = 0; - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer ) = 0; - virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) = 0; + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer ) const = 0; + virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) const = 0; virtual StatusCode executePanTau(xAOD::TauJet& pTau, xAOD::ParticleContainer& particleContainer) =0; #ifdef XAOD_ANALYSIS diff --git a/Reconstruction/tauRecTools/tauRecTools/TauPi0ScoreCalculator.h b/Reconstruction/tauRecTools/tauRecTools/TauPi0ScoreCalculator.h index 8c01d0aac55..fe9732e26f1 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauPi0ScoreCalculator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauPi0ScoreCalculator.h @@ -28,11 +28,11 @@ public: virtual StatusCode initialize() override; virtual StatusCode finalize() override; - virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer) override; + virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer) const override; private: /** @brief function used to calculate BDT score */ - float calculateScore(const xAOD::PFO* neutralPFO); + float calculateScore(const xAOD::PFO* neutralPFO) const; std::string m_weightfile; std::unique_ptr<tauRecTools::BDTHelper> m_mvaBDT; diff --git a/Reconstruction/tauRecTools/tauRecTools/TauPi0Selector.h b/Reconstruction/tauRecTools/tauRecTools/TauPi0Selector.h index 0e9c5f72476..954b6764725 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauPi0Selector.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauPi0Selector.h @@ -23,7 +23,7 @@ public: virtual ~TauPi0Selector(); virtual StatusCode initialize() override; virtual StatusCode finalize() override; - virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer) override; + virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& pNeutralPFOContainer) const override; private: @@ -31,9 +31,9 @@ private: std::vector<float> m_clusterBDTCut_1prong; std::vector<float> m_clusterBDTCut_mprong; /** @brief function used to get eta bin of Pi0Cluster */ - int getPi0Cluster_etaBin(double Pi0Cluster_eta); + int getPi0Cluster_etaBin(double Pi0Cluster_eta) const; /** @brief function used to calculate the visible tau 4 momentum */ - TLorentzVector getP4(const xAOD::TauJet& tauJet); + TLorentzVector getP4(const xAOD::TauJet& tauJet) const; }; #endif /* TAUPI0SELECTOR_H */ diff --git a/Reconstruction/tauRecTools/tauRecTools/TauRecToolBase.h b/Reconstruction/tauRecTools/tauRecTools/TauRecToolBase.h index bcff833427f..171f0e91f5f 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauRecToolBase.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauRecToolBase.h @@ -57,8 +57,8 @@ class TauRecToolBase : public asg::AsgTool, virtual public ITauToolBase { xAOD::CaloClusterContainer& caloClusterContainer, const xAOD::CaloClusterContainer& pCaloClusterContainer ) const override; virtual StatusCode executeVertexVariables(xAOD::TauJet& pTau, xAOD::VertexContainer& vertexContainer ) const override; - virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer ) override; - virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) override; + virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer ) const override; + virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) const override; virtual StatusCode executePanTau(xAOD::TauJet& pTau, xAOD::ParticleContainer& particleContainer) override; //----------------------------------------------------------------- -- GitLab From 3cf6b9aeb19df705f17eac3ec229d1b4613e5f31 Mon Sep 17 00:00:00 2001 From: lbazzano <lisandro.tomas.bazzano.hurrell@cern.ch> Date: Fri, 24 Jul 2020 15:32:13 +0200 Subject: [PATCH 121/459] Disabled correctly unused Montioring Tool --- .../Jet/JetRecTools/Root/JetConstituentModSequence.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Reconstruction/Jet/JetRecTools/Root/JetConstituentModSequence.cxx b/Reconstruction/Jet/JetRecTools/Root/JetConstituentModSequence.cxx index ff7941e16ae..8368124a12e 100644 --- a/Reconstruction/Jet/JetRecTools/Root/JetConstituentModSequence.cxx +++ b/Reconstruction/Jet/JetRecTools/Root/JetConstituentModSequence.cxx @@ -45,8 +45,8 @@ StatusCode JetConstituentModSequence::initialize() { ATH_CHECK( m_modifiers.retrieve() ); - if (!m_monTool.empty()) ATH_CHECK(m_monTool.retrieve()); - + ATH_CHECK( m_monTool.retrieve( DisableTool{m_monTool.empty()} ) ); + // Set and initialise DataHandleKeys only for the correct input type // Die if the input type is unsupported switch(m_inputType) { -- GitLab From 448d7224aa6c4c6b154b25c836df9d121168b8ba Mon Sep 17 00:00:00 2001 From: Nils Krumnack <krumnack@iastate.edu> Date: Fri, 24 Jul 2020 09:48:10 -0500 Subject: [PATCH 122/459] add another test for setting boolean values I thought there was an issue, but I had made a mistake somewhere else. Still, no harm in adding the test. --- .../AthToolSupport/AsgExampleTools/test/gt_TProperty.cxx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Control/AthToolSupport/AsgExampleTools/test/gt_TProperty.cxx b/Control/AthToolSupport/AsgExampleTools/test/gt_TProperty.cxx index be4f23434df..2e1573307d8 100644 --- a/Control/AthToolSupport/AsgExampleTools/test/gt_TProperty.cxx +++ b/Control/AthToolSupport/AsgExampleTools/test/gt_TProperty.cxx @@ -229,6 +229,13 @@ namespace asg ASSERT_EQ (0, value); } + TEST (SetStringHelperTest, set_bool) + { + bool value = true; + ASSERT_SUCCESS (SetStringHelper<bool>::set ("1", value)); + ASSERT_EQ (true, value); + } + TEST (SetStringHelperTest, set_enum) { MSG::Level value = MSG::Level::INFO; -- GitLab From 0a4a17da6895db5aa5b7bedfd81863e2100d0085 Mon Sep 17 00:00:00 2001 From: Nils Krumnack <krumnack@iastate.edu> Date: Fri, 24 Jul 2020 09:50:13 -0500 Subject: [PATCH 123/459] fix some const-issues Since my code is somewhat simpler than the Athena version I didn't need as complex of a const-ness setup as them. --- .../AsgDataHandles/ReadHandle.h | 5 +++++ .../AsgDataHandles/ReadHandle.icc | 22 ++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/Control/AthToolSupport/AsgDataHandles/AsgDataHandles/ReadHandle.h b/Control/AthToolSupport/AsgDataHandles/AsgDataHandles/ReadHandle.h index 84b0614291b..ae9f7e17210 100644 --- a/Control/AthToolSupport/AsgDataHandles/AsgDataHandles/ReadHandle.h +++ b/Control/AthToolSupport/AsgDataHandles/AsgDataHandles/ReadHandle.h @@ -140,6 +140,11 @@ private: * Throws ExcNullReadHandle on failure. */ const_pointer_type checkedCPtr(); + + /** + * @brief Helper: dereference the pointer. + */ + const_pointer_type getCPtr() const; }; diff --git a/Control/AthToolSupport/AsgDataHandles/AsgDataHandles/ReadHandle.icc b/Control/AthToolSupport/AsgDataHandles/AsgDataHandles/ReadHandle.icc index 25b2e07fdff..e3aba5c8546 100644 --- a/Control/AthToolSupport/AsgDataHandles/AsgDataHandles/ReadHandle.icc +++ b/Control/AthToolSupport/AsgDataHandles/AsgDataHandles/ReadHandle.icc @@ -109,10 +109,7 @@ inline typename ReadHandle<T>::const_pointer_type ReadHandle<T>::cptr() { - const T *result = nullptr; - if (!xAOD::TActiveEvent::event()->retrieve (result, key(), true)) - throw std::runtime_error ("failed to retrieve " + key()); - return result; + return getCPtr(); } @@ -161,7 +158,7 @@ inline typename ReadHandle<T>::const_pointer_type ReadHandle<T>::get() const { - return cptr(); + return getCPtr(); } @@ -195,6 +192,21 @@ ReadHandle<T>::checkedCPtr() } +/** + * @brief Helper: dereference the pointer. + * Throws ExcNullReadHandle on failure. + */ +template <class T> +inline +typename ReadHandle<T>::const_pointer_type +ReadHandle<T>::getCPtr() const +{ + const T *result = nullptr; + (void) xAOD::TActiveEvent::event()->retrieve (result, key(), true); + return result; +} + + /** * @brief Return a @c ReadHandle referencing @c key. * @param key The key object holding the clid/key/store. -- GitLab From 292f57c2bd60a25bfe4cfd157f52b9bc04537205 Mon Sep 17 00:00:00 2001 From: Nils Krumnack <krumnack@iastate.edu> Date: Fri, 24 Jul 2020 10:14:21 -0500 Subject: [PATCH 124/459] add missing include This was used in a template, but so far it was apparently always included anyways. --- Control/AthToolSupport/AsgTools/AsgTools/AsgComponentConfig.icc | 1 + 1 file changed, 1 insertion(+) diff --git a/Control/AthToolSupport/AsgTools/AsgTools/AsgComponentConfig.icc b/Control/AthToolSupport/AsgTools/AsgTools/AsgComponentConfig.icc index baa59e6b572..ea6e7a97244 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/AsgComponentConfig.icc +++ b/Control/AthToolSupport/AsgTools/AsgTools/AsgComponentConfig.icc @@ -10,6 +10,7 @@ // includes // +#include <AsgTools/AsgComponent.h> #include <AsgTools/MessageCheckAsgTools.h> #ifdef XAOD_STANDALONE -- GitLab From 2218817a8b6b74d905c3e0ef22a7664da033b4ed Mon Sep 17 00:00:00 2001 From: Nils Krumnack <krumnack@iastate.edu> Date: Fri, 24 Jul 2020 10:16:48 -0500 Subject: [PATCH 125/459] add a unit test for AsgDataHandles I should have added that right when I added the read handles, but better late than never. --- .../AsgExampleTools/AsgExampleToolsDict.h | 1 + .../AsgExampleTools/DataHandleTestTool.h | 49 ++++++++++ .../AsgExampleTools/IDataHandleTestTool.h | 29 ++++++ .../AsgExampleTools/selection.xml | 1 + .../AsgExampleTools/CMakeLists.txt | 20 ++-- .../Root/DataHandleTestTool.cxx | 63 +++++++++++++ .../components/AsgExampleTools_entries.cxx | 2 + .../test/gt_DataHandlesTest.cxx | 94 +++++++++++++++++++ 8 files changed, 248 insertions(+), 11 deletions(-) create mode 100644 Control/AthToolSupport/AsgExampleTools/AsgExampleTools/DataHandleTestTool.h create mode 100644 Control/AthToolSupport/AsgExampleTools/AsgExampleTools/IDataHandleTestTool.h create mode 100644 Control/AthToolSupport/AsgExampleTools/Root/DataHandleTestTool.cxx create mode 100644 Control/AthToolSupport/AsgExampleTools/test/gt_DataHandlesTest.cxx diff --git a/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/AsgExampleToolsDict.h b/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/AsgExampleToolsDict.h index bb6ce3289bc..f2bf45164df 100644 --- a/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/AsgExampleToolsDict.h +++ b/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/AsgExampleToolsDict.h @@ -7,6 +7,7 @@ # pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif +#include "AsgExampleTools/DataHandleTestTool.h" #include "AsgExampleTools/UnitTestTool3.h" #include "AsgExampleTools/UnitTestTool2.h" #include "AsgExampleTools/UnitTestTool1A.h" diff --git a/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/DataHandleTestTool.h b/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/DataHandleTestTool.h new file mode 100644 index 00000000000..03cdb9594ae --- /dev/null +++ b/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/DataHandleTestTool.h @@ -0,0 +1,49 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +/// @author Nils Krumnack + + + +#ifndef ASG_TOOLS__UNIT_TEST_TOOL1_H +#define ASG_TOOLS__UNIT_TEST_TOOL1_H + +#include <AsgTools/AsgTool.h> +#include <AsgExampleTools/IDataHandleTestTool.h> +#include <AsgDataHandles/ReadHandleKey.h> +#include <xAODMuon/MuonContainer.h> + +namespace asg +{ + /// \brief a tool used to unit test AnaToolHandle + /// + /// This allows to unit test the various capabilities of + /// stand-alone data handles in a controlled fashion. + + struct DataHandleTestTool : virtual public IDataHandleTestTool, + public AsgTool + { + ASG_TOOL_CLASS (DataHandleTestTool, IDataHandleTestTool) + + /// \brief standard constructor + public: + DataHandleTestTool (const std::string& val_name); + + /// \brief standard destructor + public: + ~DataHandleTestTool (); + + public: + StatusCode initialize () override; + + public: + void runTest () override; + + public: + SG::ReadHandleKey<xAOD::MuonContainer> m_readKey {this, "readKey", "Muons", "regular read key"}; + bool m_readFailure {false}; + }; +} + +#endif diff --git a/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/IDataHandleTestTool.h b/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/IDataHandleTestTool.h new file mode 100644 index 00000000000..2a5e96a61c4 --- /dev/null +++ b/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/IDataHandleTestTool.h @@ -0,0 +1,29 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +/// @author Nils Krumnack + + + +#ifndef ASG_TOOLS__I_DATA_HANDLE_TEST_TOOL_H +#define ASG_TOOLS__I_DATA_HANDLE_TEST_TOOL_H + +#include <AsgTools/IAsgTool.h> + +namespace asg +{ + /// \brief the interface for \ref DataHandleTestTool + + class IDataHandleTestTool : virtual public IAsgTool + { + // Declare the interface that this class provides + ASG_TOOL_INTERFACE( CP::IDataHandleTestTool ) + + /// \brief run the test + public: + virtual void runTest () = 0; + }; +} + +#endif diff --git a/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/selection.xml b/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/selection.xml index 7417c49482a..47bba34f9ec 100644 --- a/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/selection.xml +++ b/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/selection.xml @@ -2,6 +2,7 @@ <lcgdict> <!-- Unit test types: --> + <class name="asg::DataHandleTestTool" /> <class name="asg::UnitTestTool3" /> <class name="asg::UnitTestTool2" /> <class name="asg::UnitTestTool1A" /> diff --git a/Control/AthToolSupport/AsgExampleTools/CMakeLists.txt b/Control/AthToolSupport/AsgExampleTools/CMakeLists.txt index 0d07295c607..dab240c2752 100644 --- a/Control/AthToolSupport/AsgExampleTools/CMakeLists.txt +++ b/Control/AthToolSupport/AsgExampleTools/CMakeLists.txt @@ -5,21 +5,13 @@ # Declare the package name: atlas_subdir( AsgExampleTools ) -# Extra dependencies based on the build environment: -set( extra_deps ) -if( XAOD_STANDALONE ) - set( extra_deps Control/xAODRootAccess ) -else() - set( extra_deps Control/AthenaBaseComps GaudiKernel ) -endif() - # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC + Control/AthToolSupport/AsgDataHandles Control/AthToolSupport/AsgTools - PRIVATE Control/AthToolSupport/AsgTesting - ${extra_deps} ) + Event/xAOD/xAODMuon) # External dependencies: find_package( GTest ) @@ -33,7 +25,7 @@ atlas_add_root_dictionary( AsgExampleToolsLib AsgExampleToolsCintDict atlas_add_library( AsgExampleToolsLib AsgExampleTools/*.h Root/*.cxx ${AsgExampleToolsCintDict} PUBLIC_HEADERS AsgExampleTools - LINK_LIBRARIES AsgTools AsgTestingLib ) + LINK_LIBRARIES AsgTools AsgDataHandlesLib AsgTestingLib xAODMuon ) if( NOT XAOD_STANDALONE ) atlas_add_component( AsgExampleTools @@ -101,6 +93,12 @@ if( XAOD_STANDALONE ) LINK_LIBRARIES ${GTEST_LIBRARIES} AsgTools AsgExampleToolsLib AsgTestingLib ) set_tests_properties (AsgExampleTools_gt_asgtools_toolhandle_test_ctest PROPERTIES LABELS "AsgTools;AsgExampleTools" ) + atlas_add_test( gt_DataHandlesTest + SOURCES test/gt_DataHandlesTest.cxx + INCLUDE_DIRS ${GTEST_INCLUDE_DIRS} + LINK_LIBRARIES ${GTEST_LIBRARIES} AsgTools AsgExampleToolsLib AsgTestingLib ) + set_tests_properties (AsgExampleTools_gt_DataHandlesTest_ctest PROPERTIES LABELS "AsgDataHandles;AsgExampleTools" ) + endif() diff --git a/Control/AthToolSupport/AsgExampleTools/Root/DataHandleTestTool.cxx b/Control/AthToolSupport/AsgExampleTools/Root/DataHandleTestTool.cxx new file mode 100644 index 00000000000..8e95ab31a42 --- /dev/null +++ b/Control/AthToolSupport/AsgExampleTools/Root/DataHandleTestTool.cxx @@ -0,0 +1,63 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +/// @author Nils Krumnack + + + +// +// includes +// + +#include <AsgExampleTools/DataHandleTestTool.h> + +#include <AsgDataHandles/ReadHandle.h> +#include <AsgTesting/UnitTest.h> +#include <gtest/gtest.h> +#include <map> + +// +// method implementations +// + +namespace asg +{ + DataHandleTestTool :: + DataHandleTestTool (const std::string& val_name) + : AsgTool (val_name) + { + declareProperty ("readFailure", m_readFailure, "whether to expect a read failure"); + } + + + + DataHandleTestTool :: + ~DataHandleTestTool () + { + } + + + + StatusCode DataHandleTestTool :: + initialize () + { + ANA_CHECK (m_readKey.initialize ()); + return StatusCode::SUCCESS; + } + + + + void DataHandleTestTool :: + runTest () + { + const xAOD::MuonContainer *muonsStore {nullptr}; + ASSERT_SUCCESS (evtStore()->retrieve (muonsStore, "Muons")); + + auto readHandle = makeHandle (m_readKey); + if (m_readFailure == false) + EXPECT_EQ (muonsStore, readHandle.get()); + else + EXPECT_EQ (nullptr, readHandle.get()); + } +} diff --git a/Control/AthToolSupport/AsgExampleTools/src/components/AsgExampleTools_entries.cxx b/Control/AthToolSupport/AsgExampleTools/src/components/AsgExampleTools_entries.cxx index e5313cbc47f..978309b448d 100644 --- a/Control/AthToolSupport/AsgExampleTools/src/components/AsgExampleTools_entries.cxx +++ b/Control/AthToolSupport/AsgExampleTools/src/components/AsgExampleTools_entries.cxx @@ -3,6 +3,7 @@ #include "../AsgExampleAlgorithm.h" #include "AsgExampleTools/AsgHelloTool.h" +#include <AsgExampleTools/DataHandleTestTool.h> #include <AsgExampleTools/UnitTestTool1.h> #include <AsgExampleTools/UnitTestTool1A.h> #include <AsgExampleTools/UnitTestTool2.h> @@ -12,6 +13,7 @@ DECLARE_COMPONENT( AsgHelloTool ) DECLARE_COMPONENT( AsgExampleAlgorithm ) +DECLARE_COMPONENT( asg::DataHandleTestTool ) DECLARE_COMPONENT( asg::UnitTestTool1 ) DECLARE_COMPONENT( asg::UnitTestTool1A ) DECLARE_COMPONENT( asg::UnitTestTool2 ) diff --git a/Control/AthToolSupport/AsgExampleTools/test/gt_DataHandlesTest.cxx b/Control/AthToolSupport/AsgExampleTools/test/gt_DataHandlesTest.cxx new file mode 100644 index 00000000000..9b01506da3a --- /dev/null +++ b/Control/AthToolSupport/AsgExampleTools/test/gt_DataHandlesTest.cxx @@ -0,0 +1,94 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +/// @author Nils Krumnack + + + +// +// includes +// + +#include <AsgTools/AsgToolConfig.h> +#include <AsgMessaging/MessageCheck.h> +#include <AsgTesting/UnitTest.h> +#include <AsgExampleTools/IDataHandleTestTool.h> +#include <xAODRootAccess/TEvent.h> +#include <xAODRootAccess/TStore.h> +#include <TFile.h> +#include <cmath> +#include <gtest/gtest.h> +#include <sstream> + +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + +// +// method implementations +// + +using namespace asg::msgUserCode; + +namespace asg +{ + struct DataHandlesTest : public ::testing::Test + { + static void SetUpTestCase () + { + const char *test_file = getenv ("ASG_TEST_FILE_MC"); + ASSERT_NE (nullptr, test_file); + file.reset (TFile::Open (test_file, "READ")); + ASSERT_NE (nullptr, file); + } + + static void TearDownTestCase () + { + file.reset (); + } + + virtual void SetUp () override + { + ASSERT_NE (nullptr, file); + ASSERT_SUCCESS (event.readFrom (file.get())); + ASSERT_TRUE (event.getEntry (0) >= 0); + } + + /// \brief make a unique tool name to be used in unit tests + std::string makeUniqueName () + { + static unsigned index = 0; + std::ostringstream str; + str << "unique" << ++ index; + return str.str(); + } + + static inline std::unique_ptr<TFile> file; + xAOD::TEvent event; + xAOD::TStore store; + AsgToolConfig config {"asg::DataHandleTestTool/" + makeUniqueName()}; + std::shared_ptr<void> cleanup; + ToolHandle<IDataHandleTestTool> tool; + }; + + + + // just test that a basic read handle access works + TEST_F (DataHandlesTest, base_test) + { + ASSERT_SUCCESS (config.makeTool (tool, cleanup)); + tool->runTest (); + } + + + + // just test that reading unknown objects fails as it should + TEST_F (DataHandlesTest, read_failure) + { + config.setPropertyFromString ("readFailure", "1"); + config.setPropertyFromString ("readKey", "MuonsFailure"); + ASSERT_SUCCESS (config.makeTool (tool, cleanup)); + tool->runTest (); + } +} + +ATLAS_GOOGLE_TEST_MAIN -- GitLab From 5bd128eebc6c6ebb8753d66924620048c683f2a2 Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Fri, 24 Jul 2020 17:36:51 +0200 Subject: [PATCH 126/459] RDO->POOL --- .../TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py | 2 +- Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py index 46cfe3dd8f6..afd2f81e6f5 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py @@ -92,7 +92,7 @@ def createTriggerFlags(): version = 2 elif "HLTNav_Summary" in flags.Input.Collections: version = 3 - elif flags.Input.Format == "RDO": + elif flags.Input.Format == "POOL": # If running Trigger on RDO input (without previous trigger result), choose Run-3 version = 3 log.info("Determined EDMDecodingVersion to be {}.".format({1:"Run 1", 2:"Run 2", 3:"AthenaMT"}[version])) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py index 99926ece234..c0a00250dd9 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py @@ -160,7 +160,7 @@ else: # athenaHLT rec.RunNumber =_run_number del _run_number -ConfigFlags.Input.Format = 'BS' if globalflags.InputFormat=='bytestream' else 'RDO' +ConfigFlags.Input.Format = 'BS' if globalflags.InputFormat=='bytestream' else 'POOL' # Set final Cond/Geo tag based on input file, command line or default -- GitLab From aa5cf3d54976246dee642ecbd6836299cce1fb9c Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Fri, 24 Jul 2020 17:56:35 +0200 Subject: [PATCH 127/459] Adjust argument name --- Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py index f7b7507545e..0fb2842f788 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py @@ -526,7 +526,7 @@ def triggerRunCfg( flags, seqName = None, menu=None ): acc.merge( triggerIDCCacheCreatorsCfg( flags, seqName="AthAlgSeq" ), sequenceName="HLTBeginSeq" ) from L1Decoder.L1DecoderConfig import L1DecoderCfg - l1DecoderAcc = L1DecoderCfg( flags, sequenceName = "HLTBeginSeq") + l1DecoderAcc = L1DecoderCfg( flags, seqName = "HLTBeginSeq") # TODO, once moved to newJO the algorithm can be added to l1DecoderAcc and merging will be sufficient here acc.merge( l1DecoderAcc ) -- GitLab From dac53e710a42994cce282e36d52b728890733966 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Fri, 24 Jul 2020 17:45:33 +0200 Subject: [PATCH 128/459] BFieldData+MagFieldUtils: remove atlas_depends_on_subdirs Also enable thread checker for BFieldData. --- MagneticField/BFieldData/ATLAS_CHECK_THREAD_SAFETY | 1 + MagneticField/BFieldData/CMakeLists.txt | 4 +--- MagneticField/MagFieldUtils/CMakeLists.txt | 10 +--------- 3 files changed, 3 insertions(+), 12 deletions(-) create mode 100644 MagneticField/BFieldData/ATLAS_CHECK_THREAD_SAFETY diff --git a/MagneticField/BFieldData/ATLAS_CHECK_THREAD_SAFETY b/MagneticField/BFieldData/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..46a095a19e3 --- /dev/null +++ b/MagneticField/BFieldData/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +MagneticField/BFieldData diff --git a/MagneticField/BFieldData/CMakeLists.txt b/MagneticField/BFieldData/CMakeLists.txt index 33e8e469b0e..1fefcbbd751 100644 --- a/MagneticField/BFieldData/CMakeLists.txt +++ b/MagneticField/BFieldData/CMakeLists.txt @@ -1,6 +1,4 @@ -################################################################################ -# Package: BFieldData -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( BFieldData ) diff --git a/MagneticField/MagFieldUtils/CMakeLists.txt b/MagneticField/MagFieldUtils/CMakeLists.txt index 9fbae83a8e9..433f9eda168 100644 --- a/MagneticField/MagFieldUtils/CMakeLists.txt +++ b/MagneticField/MagFieldUtils/CMakeLists.txt @@ -1,16 +1,8 @@ -################################################################################ -# Package: MagFieldUtils -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( MagFieldUtils ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - GaudiKernel - MagneticField/MagFieldInterfaces ) - # External dependencies: find_package( CLHEP ) find_package( Geant4 ) -- GitLab From bb55af0813fd29035f4d48441d1fce27b402c89b Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Fri, 24 Jul 2020 17:46:14 +0200 Subject: [PATCH 129/459] MagFieldConditions: cmake cleanup, remove ROOT dependency --- .../MagFieldConditions/CMakeLists.txt | 21 ++----------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/MagneticField/MagFieldConditions/CMakeLists.txt b/MagneticField/MagFieldConditions/CMakeLists.txt index 70586fd0b15..bbfb586351a 100644 --- a/MagneticField/MagFieldConditions/CMakeLists.txt +++ b/MagneticField/MagFieldConditions/CMakeLists.txt @@ -1,27 +1,10 @@ -################################################################################ -# Package: MagFieldConditions -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( MagFieldConditions ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/StoreGate - GaudiKernel - PRIVATE - MagneticField/MagFieldElements - ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - # Component(s) in the package: atlas_add_library( MagFieldConditions src/*.cxx PUBLIC_HEADERS MagFieldConditions - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES SGTools GaudiKernel StoreGateLib - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} MagFieldElements) - - + LINK_LIBRARIES AthenaKernel GaudiKernel MagFieldElements ) -- GitLab From 1508d16b6bb6a64bcf32e3bf70c3f75a3569f543 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Fri, 24 Jul 2020 17:46:58 +0200 Subject: [PATCH 130/459] MagFieldConfig: enable flake8 and thread checker --- MagneticField/MagFieldConfig/ATLAS_CHECK_THREAD_SAFETY | 1 + MagneticField/MagFieldConfig/CMakeLists.txt | 8 ++------ 2 files changed, 3 insertions(+), 6 deletions(-) create mode 100644 MagneticField/MagFieldConfig/ATLAS_CHECK_THREAD_SAFETY diff --git a/MagneticField/MagFieldConfig/ATLAS_CHECK_THREAD_SAFETY b/MagneticField/MagFieldConfig/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..b6727d76842 --- /dev/null +++ b/MagneticField/MagFieldConfig/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +MagneticField/MagFieldConfig diff --git a/MagneticField/MagFieldConfig/CMakeLists.txt b/MagneticField/MagFieldConfig/CMakeLists.txt index cdf011f905a..1545952dabe 100644 --- a/MagneticField/MagFieldConfig/CMakeLists.txt +++ b/MagneticField/MagFieldConfig/CMakeLists.txt @@ -1,11 +1,7 @@ -################################################################################ -# Package: MagFieldConfig -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( MagFieldConfig ) # Install files from the package: -atlas_install_python_modules( python/*.py ) - - +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) -- GitLab From 6496daf88689ad2e42b45addf35a6d269a3d865c Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Fri, 24 Jul 2020 17:47:24 +0200 Subject: [PATCH 131/459] MagFieldInterfaces: cmake cleanup, remove unused Eigen dependency Also enable thread checker. --- MagneticField/MagFieldInterfaces/CMakeLists.txt | 16 ++-------------- .../MagFieldInterfaces/ATLAS_CHECK_THREAD_SAFETY | 1 + 2 files changed, 3 insertions(+), 14 deletions(-) create mode 100644 MagneticField/MagFieldInterfaces/MagFieldInterfaces/ATLAS_CHECK_THREAD_SAFETY diff --git a/MagneticField/MagFieldInterfaces/CMakeLists.txt b/MagneticField/MagFieldInterfaces/CMakeLists.txt index 3749fb89bee..d8268ae59cd 100644 --- a/MagneticField/MagFieldInterfaces/CMakeLists.txt +++ b/MagneticField/MagFieldInterfaces/CMakeLists.txt @@ -1,21 +1,9 @@ -################################################################################ -# Package: MagFieldInterfaces -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( MagFieldInterfaces ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoPrimitives - GaudiKernel ) - -# External dependencies: -find_package( Eigen ) - # Component(s) in the package: atlas_add_library( MagFieldInterfaces PUBLIC_HEADERS MagFieldInterfaces - INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} GeoPrimitives GaudiKernel ) - + LINK_LIBRARIES GeoPrimitives GaudiKernel ) diff --git a/MagneticField/MagFieldInterfaces/MagFieldInterfaces/ATLAS_CHECK_THREAD_SAFETY b/MagneticField/MagFieldInterfaces/MagFieldInterfaces/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..5e0164aed25 --- /dev/null +++ b/MagneticField/MagFieldInterfaces/MagFieldInterfaces/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +MagneticField/MagFieldInterfaces -- GitLab From 00550f7467cf073ed988ddb9b01f11322f83ed75 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Fri, 24 Jul 2020 17:48:11 +0200 Subject: [PATCH 132/459] MagFieldServices: cmake cleanup, enable flake8 --- MagneticField/MagFieldServices/CMakeLists.txt | 25 +++---------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/MagneticField/MagFieldServices/CMakeLists.txt b/MagneticField/MagFieldServices/CMakeLists.txt index 150469e9ac3..4d89f8435c5 100644 --- a/MagneticField/MagFieldServices/CMakeLists.txt +++ b/MagneticField/MagFieldServices/CMakeLists.txt @@ -1,25 +1,8 @@ -################################################################################ -# Package: MagFieldServices -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( MagFieldServices ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - MagneticField/MagFieldInterfaces - MagneticField/MagFieldConditions - Control/CxxUtils - PRIVATE - MagneticField/MagFieldElements - Control/StoreGate - Database/AthenaPOOL/AthenaPoolUtilities - GaudiKernel - Tools/PathResolver - Event/EventInfo - ) - # External dependencies: find_package( CLHEP ) find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) @@ -29,13 +12,11 @@ atlas_add_component( MagFieldServices src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} MagFieldElements MagFieldConditions CxxUtils - AthenaBaseComps MagFieldInterfaces StoreGateLib SGtests AthenaPoolUtilities GaudiKernel PathResolver - EventInfo ) + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${ROOT_LIBRARIES} AthenaBaseComps AthenaPoolUtilities CxxUtils EventInfo GaudiKernel MagFieldConditions MagFieldElements MagFieldInterfaces PathResolver StoreGateLib ) # Install files from the package: atlas_install_headers( MagFieldServices ) -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) if( NOT SIMULATIONBASE ) atlas_add_test( MagFieldServicesConfig SCRIPT python -m MagFieldServices.MagFieldServicesConfig -- GitLab From 596739af5cb5455b6b33ae18a6a10ef013990376 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Fri, 24 Jul 2020 17:48:40 +0200 Subject: [PATCH 133/459] MagFieldElements: cmake cleanup, remove CLHEP dependency Use `Gaudi::Units` instead of CLHEP. Cleanup cmake configuration. --- MagneticField/MagFieldElements/CMakeLists.txt | 25 ++++--------------- .../MagFieldElements/AtlasFieldCache.h | 4 +-- .../MagFieldElements/AtlasFieldCache.icc | 2 +- .../MagFieldElements/AtlasFieldMap.h | 3 +-- .../MagFieldElements/src/AtlasFieldMap.cxx | 3 --- 5 files changed, 9 insertions(+), 28 deletions(-) diff --git a/MagneticField/MagFieldElements/CMakeLists.txt b/MagneticField/MagFieldElements/CMakeLists.txt index c572626f9eb..d24244fcfb5 100644 --- a/MagneticField/MagFieldElements/CMakeLists.txt +++ b/MagneticField/MagFieldElements/CMakeLists.txt @@ -1,30 +1,15 @@ -################################################################################ -# Package: MagFieldElements -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( MagFieldElements ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Control/CxxUtils - Event/EventPrimitives - PRIVATE - Control/StoreGate - Database/AthenaPOOL/AthenaPoolUtilities - GaudiKernel - Tools/PathResolver ) - # External dependencies: -find_package( CLHEP ) -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) +find_package( ROOT COMPONENTS Core Tree RIO ) # Component(s) in the package: atlas_add_library( MagFieldElements src/*.cxx PUBLIC_HEADERS MagFieldElements - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps GaudiKernel CxxUtils EventPrimitives - PRIVATE_LINK_LIBRARIES PathResolver ) - + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES CxxUtils EventPrimitives GaudiKernel + PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} PathResolver ) diff --git a/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.h b/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.h index 2871b66ea6a..169a0140221 100644 --- a/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.h +++ b/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.h @@ -15,14 +15,14 @@ // MagField includes #include "CxxUtils/restrict.h" #include "GaudiKernel/ServiceHandle.h" +#include "GaudiKernel/SystemOfUnits.h" #include "MagFieldElements/AtlasFieldMap.h" #include "MagFieldElements/BFieldCache.h" #include "MagFieldElements/BFieldCacheZR.h" #include "MagFieldElements/BFieldCond.h" #include "MagFieldElements/BFieldMeshZR.h" #include "MagFieldElements/BFieldZone.h" -// CLHEP -#include "CLHEP/Units/SystemOfUnits.h" + #include <iostream> #include <memory> namespace MagField { diff --git a/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.icc b/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.icc index ed6d347de9d..7b99399a3f4 100644 --- a/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.icc +++ b/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldCache.icc @@ -75,7 +75,7 @@ MagField::AtlasFieldCache::getField(const double* ATH_RESTRICT xyz, if (!fillFieldCache(z, r, phi)) { // caching failed -> outside the valid map volume // return default field (0.1 gauss) - const double defaultB(0.1 * CLHEP::gauss); + const double defaultB(0.1 * Gaudi::Units::gauss); bxyz[0] = bxyz[1] = bxyz[2] = defaultB; // return zero gradient if requested if (deriv) { diff --git a/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldMap.h b/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldMap.h index 582b5ddda8a..4984ba38cf8 100644 --- a/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldMap.h +++ b/MagneticField/MagFieldElements/MagFieldElements/AtlasFieldMap.h @@ -20,8 +20,7 @@ #include "MagFieldElements/BFieldCond.h" #include "MagFieldElements/BFieldMeshZR.h" #include "MagFieldElements/BFieldZone.h" -// CLHEP -#include "CLHEP/Units/SystemOfUnits.h" + #include <iostream> #include <memory> diff --git a/MagneticField/MagFieldElements/src/AtlasFieldMap.cxx b/MagneticField/MagFieldElements/src/AtlasFieldMap.cxx index 43192dd4523..1956e5f35d9 100644 --- a/MagneticField/MagFieldElements/src/AtlasFieldMap.cxx +++ b/MagneticField/MagFieldElements/src/AtlasFieldMap.cxx @@ -12,9 +12,6 @@ // PathResolver #include "PathResolver/PathResolver.h" -// CLHEP -#include "CLHEP/Units/SystemOfUnits.h" - // ROOT #include "TFile.h" #include "TTree.h" -- GitLab From 31466d311f4dbe7b456a68bacd7bb43ef41f390f Mon Sep 17 00:00:00 2001 From: Rafal Bielski <rafal.bielski@cern.ch> Date: Fri, 24 Jul 2020 18:28:29 +0200 Subject: [PATCH 134/459] RootComp: Skip the ResultSizeByStream histogram by default --- Trigger/TrigValidation/TrigValTools/bin/rootcomp.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Trigger/TrigValidation/TrigValTools/bin/rootcomp.py b/Trigger/TrigValidation/TrigValTools/bin/rootcomp.py index 56e0221bfa8..e992488d5d6 100755 --- a/Trigger/TrigValidation/TrigValTools/bin/rootcomp.py +++ b/Trigger/TrigValidation/TrigValTools/bin/rootcomp.py @@ -163,6 +163,7 @@ def main(): opts.skip += ["HltEDMSizes:Events_Without_Truncation"] # ATR-14330 opts.skip += ["Trig.*CaloCellMaker.*/TCRec_"] # timing histograms in TrigCaloCellMaker opts.skip += ["HLTFramework/ROBDataProviderSvc"] # RDP histograms differ in MT due to caching + opts.skip += ["HLTFramework/ByteStreamCnvSvc/ResultSizeByStream"] # ROOT bug, see ATR-21755, ROOT-10944 # Default thresholds if not opts.threshold: -- GitLab From 7c2e7832194281dadece8d86741571298a4d4c94 Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Fri, 24 Jul 2020 11:29:49 -0500 Subject: [PATCH 135/459] Porting the new HIEventShapeMapTool changes to HI Trigger --- .../TrigHIRec/python/TrigHLTHIJetRecConfig.py | 54 ++++++++++--------- .../src/TrigHIEventShapeJetIteration.cxx | 10 ++-- .../src/TrigHIEventShapeJetIteration.h | 3 +- 3 files changed, 33 insertions(+), 34 deletions(-) diff --git a/Trigger/TrigAlgorithms/TrigHIRec/python/TrigHLTHIJetRecConfig.py b/Trigger/TrigAlgorithms/TrigHIRec/python/TrigHLTHIJetRecConfig.py index 41f793cac70..dbddab442ae 100644 --- a/Trigger/TrigAlgorithms/TrigHIRec/python/TrigHLTHIJetRecConfig.py +++ b/Trigger/TrigAlgorithms/TrigHIRec/python/TrigHLTHIJetRecConfig.py @@ -72,12 +72,12 @@ def _getHIJetBuildTool(merge_param, if not name: name = 'TrigAntiKt%dHIJets' % int_merge_param - EventShapeKey = "HLT_xAOD__HIEventShapeContainer_TrigHIEventShape" #jobproperties.HIGlobalFlags.EventShapeKey() - #EventShapeKey = "HIEventShapeContainer_HIUE" - #EventShapeKey = "TrigHIEventShape" + EventShapeKey = "HLT_xAOD__HIEventShapeContainer_TrigHIEventShape" #jobproperties.HIGlobalFlags.EventShapeKey() + #EventShapeKey = "HIEventShapeContainer_HIUE" + #EventShapeKey = "TrigHIEventShape" ClusterKey = hicluster_name - # Plug in directly tools from HIJetTools.py e.g. to avoid PseudoJetGetter which is different at HLT and for other reasons + # Plug in directly tools from HIJetTools.py e.g. to avoid PseudoJetGetter which is different at HLT and for other reasons # ------------------------------------------------------------------------------------------------------------------------- #jet filters @@ -99,14 +99,14 @@ def _getHIJetBuildTool(merge_param, # assoc.AssociationName="HLT_a"+str(int_merge_param)+"HIClDR%dAssoc" % (int(10*DR)) # #assoc.AssociationName="GhostTrack" # jtm.add(assoc) -# +# # assoc_name=assoc.AssociationName #calculate discriminants as moments from HIJetRec.HIJetRecConf import HIJetMaxOverMeanTool max_over_mean=HIJetMaxOverMeanTool("HLT_a"+str(int_merge_param)+"HIJetMaxOverMean") jtm.add(max_over_mean) - + #discriminants for jet filtering from HIJetRec.HIJetRecConf import HIJetDiscriminatorTool discrim=HIJetDiscriminatorTool("HLT_a"+str(int_merge_param)+"HIJetDiscriminator") @@ -123,7 +123,7 @@ def _getHIJetBuildTool(merge_param, mod_tool.EventShapeKey='NULL' for n in [2,3,4] : setattr(mod_tool,'DoV%d' % n,False) jtm.add(mod_tool) - + # subtraction from HIJetRec.HIJetRecConf import HIJetCellSubtractorTool cell_subtr=HIJetCellSubtractorTool("HLT_a"+str(int_merge_param)+"HIJetSubtractor") @@ -144,25 +144,25 @@ def _getHIJetBuildTool(merge_param, # ------------------------------------------------------------------------------------------------- a2_unsubtracted_name = "TrigAntiKt2HIJets_Unsubtracted_a"+str(int_merge_param) - seed_finder = jtm.addJetFinder(a2_unsubtracted_name, - "AntiKt", - 0.2, - #gettersin=[_getTriggerHIPseudoJetGetter(hicluster_name)], - gettersin=[_getTriggerPseudoJetGetter(cluster_calib)], + seed_finder = jtm.addJetFinder(a2_unsubtracted_name, + "AntiKt", + 0.2, + #gettersin=[_getTriggerHIPseudoJetGetter(hicluster_name)], + gettersin=[_getTriggerPseudoJetGetter(cluster_calib)], #modifiersin=[assoc,max_over_mean,jetfil5], # jtm.modifiersMap['HI_Unsubtr'], # may think about TrigHI_Unsubtracted with just max_over_mean modifiersin=[max_over_mean,jetfil5], # jtm.modifiersMap['HI_Unsubtr'], # may think about TrigHI_Unsubtracted with just max_over_mean #modifiersin=[assoc,max_over_mean,jetfil5,discrim], # jtm.modifiersMap['HI_Unsubtr'], # may think about TrigHI_Unsubtracted with just max_over_mean #consumers=None, ivtxin=None, - ghostArea=0.0, + ghostArea=0.0, isTrigger=True, - ptmin = 5000, + ptmin = 5000, ptminFilter= 5000) seeds0_name = "TrigAntiKt2HIJets_seeds0_a"+str(int_merge_param) seeds0=jtm.addJetCopier(seeds0_name,a2_unsubtracted_name,[discrim],isTrigger=True,shallow=False) #seeds0 = seed_finder - + #from HIJetRec.HIJetRecConf import HIEventShapeJetIterationHLT from TrigHIRec.TrigHIRecConf import TrigHIEventShapeJetIteration @@ -180,6 +180,8 @@ def _getHIJetBuildTool(merge_param, # jtm.add(cell_subtr) #iter0.Subtractor=jtm.HIJetSubtractor iter0.Subtractor=cell_subtr + from HIEventUtils.HIEventUtilsConf import HIEventShapeMapTool + iter0.EventShapeMapTool=HIEventShapeMapTool() jtm.add(iter0) jtm.jetrecs += [iter0] @@ -228,9 +230,9 @@ def _getHIJetBuildTool(merge_param, finder=jtm.addJetFinder(name+"_finder", "AntiKt", - merge_param, - #gettersin=[_getTriggerHIPseudoJetGetter(hicluster_name)], - gettersin=[_getTriggerPseudoJetGetter(cluster_calib)], + merge_param, + #gettersin=[_getTriggerHIPseudoJetGetter(hicluster_name)], + gettersin=[_getTriggerPseudoJetGetter(cluster_calib)], modifiersin=[subtr2,calib_tool], #consumers=None, ivtxin=None, ghostArea=0.0, @@ -283,7 +285,7 @@ class TrigHLTHIJetRecFromHICluster(TrigHLTJetRecFromCluster): #TrigHLTJetRecConf. TrigHLTJetRecFromCluster.__init__(self, name=name) - + hicluster_name = "TrigHIClusterMaker_hijet_ionlcwFS" doSubtraction = True @@ -291,7 +293,7 @@ class TrigHLTHIJetRecFromHICluster(TrigHLTJetRecFromCluster): from TrigHLTJetRec.TrigHLTJetRecConfig import _getTriggerPseudoJetGetter - if (doHIClusters) : + if (doHIClusters) : #self.pseudoJetGetter = _getTriggerPseudoJetGetter(hicluster_name) self.pseudoJetGetter = _getTriggerPseudoJetGetter(cluster_calib) else : @@ -301,14 +303,14 @@ class TrigHLTHIJetRecFromHICluster(TrigHLTJetRecFromCluster): hicluster_name = "TrigCaloClusterMaker_topo_ionemFS" from TrigHLTJetRec.TrigHLTJetRecConfig import _getPseudoJetSelectorAll #_getIParticleSelectorAll - + #self.iParticleSelector = _getIParticleSelectorAll( # 'iParticleSelectorAll') - - self.iPseudoJetSelector = _getPseudoJetSelectorAll( + + self.iPseudoJetSelector = _getPseudoJetSelectorAll( 'iPseudoJetSelectorAll') - if (doSubtraction) : + if (doSubtraction) : jetBuildTool = _getHIJetBuildTool( float(int(merge_param))/10., ptmin=ptmin, @@ -317,9 +319,9 @@ class TrigHLTHIJetRecFromHICluster(TrigHLTJetRecFromCluster): hicluster_name=hicluster_name, name=name ) - #self.inputTool = inputTool + #self.inputTool = inputTool #self.doInputs = False - self.jetBuildTool = jetBuildTool + self.jetBuildTool = jetBuildTool print (jetBuildTool) else : from TrigHLTJetRec.TrigHLTJetRecConfig import _getJetBuildTool diff --git a/Trigger/TrigAlgorithms/TrigHIRec/src/TrigHIEventShapeJetIteration.cxx b/Trigger/TrigAlgorithms/TrigHIRec/src/TrigHIEventShapeJetIteration.cxx index efbc12070a5..2d0f5bfafe0 100644 --- a/Trigger/TrigAlgorithms/TrigHIRec/src/TrigHIEventShapeJetIteration.cxx +++ b/Trigger/TrigAlgorithms/TrigHIRec/src/TrigHIEventShapeJetIteration.cxx @@ -56,17 +56,13 @@ int TrigHIEventShapeJetIteration::execute() const std::string unaltered_input_event_shape_key = "TrigHIEventShape"; - const HIEventShapeIndex* es_index=HIEventShapeMap::getIndex(unaltered_input_event_shape_key); //m_input_event_shape_key); + //Map fully initialized in the beginning + const HIEventShapeIndex* es_index=m_eventShapeMapTool->getIndexFromShape( output_shape ); //m_input_event_shape_key); if(es_index==nullptr) { - ATH_MSG(ERROR) << "No HIEventShapeIndex w/ name " << m_input_event_shape_key << endmsg; + ATH_MSG_FATAL("TrigHIEventShapeJetIteration: shape not COMPACT nor TOWER. Corresponding key: " << m_input_event_shape_key ); return 1; } - if(!m_isInit) - { - HIEventShapeMap::getMap()->insert(m_output_event_shape_key,*es_index); - m_isInit=true; - } std::set<unsigned int> used_indices; std::set<unsigned int> used_eta_bins; diff --git a/Trigger/TrigAlgorithms/TrigHIRec/src/TrigHIEventShapeJetIteration.h b/Trigger/TrigAlgorithms/TrigHIRec/src/TrigHIEventShapeJetIteration.h index 60a7e330eac..0d6f3b582c3 100644 --- a/Trigger/TrigAlgorithms/TrigHIRec/src/TrigHIEventShapeJetIteration.h +++ b/Trigger/TrigAlgorithms/TrigHIRec/src/TrigHIEventShapeJetIteration.h @@ -21,6 +21,7 @@ AUTHOR: martin.spousta@cern.ch #include <set> #include "JetInterface/IJetExecuteTool.h" #include "HIJetRec/IHISubtractorTool.h" +#include "HIEventUtils/HIEventShapeMapTool.h" #include "AsgTools/ToolHandle.h" #include "xAODHIEvent/HIEventShapeContainer.h" @@ -41,6 +42,7 @@ public: private: ToolHandle<IHISubtractorTool> m_subtractor_tool; ToolHandle<IHIUEModulatorTool> m_modulator_tool; + ToolHandle<IHIEventShapeMapTool> m_eventShapeMapTool { this, "EventShapeMapTool", "HIEventShapeMapTool", "Handle to Event Shape Map Tool"}; /// \brief Name of input cluster container std::string m_input_clusters_key; @@ -69,4 +71,3 @@ private: }; #endif - -- GitLab From b1ab7a2ca896d1a79c63b5a22050300c21e266e2 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Fri, 24 Jul 2020 18:45:21 +0200 Subject: [PATCH 136/459] RecExAlgs: delete package These "example" classes don't seem to be used anywhere. Delete the package and related job options. The latter would not work in Python3 anyway and I doubt anybody would migrate them ever. --- .../RecExample/RecExAlgs/CMakeLists.txt | 26 -- .../RecExAlgs/RecExAlgs/SimpleCookedObj.h | 15 -- .../RecExAlgs/SimpleCookedObjMaker.h | 57 ---- .../RecExAlgs/RecExAlgs/SimpleRawObj.h | 15 -- .../RecExAlgs/RecExAlgs/SimpleRawObjMaker.h | 57 ---- .../RecExample/RecExAlgs/doc/packagedoc.h | 18 -- .../RecExAlgs/python/SimpleCookedObjGetter.py | 100 ------- .../RecExAlgs/python/SimpleRawObjGetter.py | 74 ------ .../RecExample/RecExAlgs/python/__init__.py | 17 -- .../share/SimpleCookedObjMaker_jobOptions.py | 11 - .../share/SimpleRawObjMaker_jobOptions.py | 10 - .../RecExAlgs/src/SimpleCookedObjMaker.cxx | 111 -------- .../RecExAlgs/src/SimpleRawObjMaker.cxx | 76 ------ .../src/components/RecExAlgs_entries.cxx | 7 - .../share/SimpleConf_topOptions.py | 244 ------------------ .../RecExConfig/share/Simple_topOptions.py | 118 --------- 16 files changed, 956 deletions(-) delete mode 100644 Reconstruction/RecExample/RecExAlgs/CMakeLists.txt delete mode 100755 Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleCookedObj.h delete mode 100755 Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleCookedObjMaker.h delete mode 100755 Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleRawObj.h delete mode 100755 Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleRawObjMaker.h delete mode 100644 Reconstruction/RecExample/RecExAlgs/doc/packagedoc.h delete mode 100755 Reconstruction/RecExample/RecExAlgs/python/SimpleCookedObjGetter.py delete mode 100755 Reconstruction/RecExample/RecExAlgs/python/SimpleRawObjGetter.py delete mode 100755 Reconstruction/RecExample/RecExAlgs/python/__init__.py delete mode 100755 Reconstruction/RecExample/RecExAlgs/share/SimpleCookedObjMaker_jobOptions.py delete mode 100755 Reconstruction/RecExample/RecExAlgs/share/SimpleRawObjMaker_jobOptions.py delete mode 100755 Reconstruction/RecExample/RecExAlgs/src/SimpleCookedObjMaker.cxx delete mode 100755 Reconstruction/RecExample/RecExAlgs/src/SimpleRawObjMaker.cxx delete mode 100644 Reconstruction/RecExample/RecExAlgs/src/components/RecExAlgs_entries.cxx delete mode 100755 Reconstruction/RecExample/RecExConfig/share/SimpleConf_topOptions.py delete mode 100755 Reconstruction/RecExample/RecExConfig/share/Simple_topOptions.py diff --git a/Reconstruction/RecExample/RecExAlgs/CMakeLists.txt b/Reconstruction/RecExample/RecExAlgs/CMakeLists.txt deleted file mode 100644 index f98544c14ca..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/CMakeLists.txt +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Package: RecExAlgs -################################################################################ - -# Declare the package name: -atlas_subdir( RecExAlgs ) - -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Control/AthenaKernel - Control/SGTools - GaudiKernel - PRIVATE - Control/StoreGate ) - -# Component(s) in the package: -atlas_add_component( RecExAlgs - src/*.cxx - src/components/*.cxx - LINK_LIBRARIES AthenaBaseComps AthenaKernel SGTools GaudiKernel StoreGateLib SGtests ) - -# Install files from the package: -atlas_install_headers( RecExAlgs ) -atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) -atlas_install_joboptions( share/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} --extend-ignore=F401,F821 ) diff --git a/Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleCookedObj.h b/Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleCookedObj.h deleted file mode 100755 index a07889785ea..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleCookedObj.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef SIMPLECOOKEDOBJ_H -#define SIMPLECOOKEDOBJ_H 1 -#include "AthenaKernel/CLASS_DEF.h" -#include "SGTools/BuiltinsClids.h" - -typedef float SimpleCookedObj; - -// clid for float is now defined by SGTools -//CLASS_DEF(SimpleCookedObj,245111483,1) - -#endif // not SIMPLECOOKEDOBJ_H diff --git a/Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleCookedObjMaker.h b/Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleCookedObjMaker.h deleted file mode 100755 index 727ddc97b30..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleCookedObjMaker.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// SimpleCookedObjMaker.h, (c) ATLAS Detector software -/////////////////////////////////////////////////////////////////// - -#ifndef SIMPLECOOKEDOBJMAKER_H -#define SIMPLECOOKEDOBJMAKER_H 1 - -// framework includes -#include "AthenaBaseComps/AthAlgorithm.h" -#include <string> - -class AtlasDetectorID; -class Identifier; - - - /** @class SimpleCookedObjMaker - - This is for the Doxygen-Documentation. - Please delete these lines and fill in information about - the Algorithm! - Please precede every member function declaration with a - short Doxygen comment stating the purpose of this function. - - @author David Rousseau <rousseau@lal.in2p3.fr> - */ - - class SimpleCookedObjMaker : public AthAlgorithm - { - public: - - /** Standard Athena-Algorithm Constructor */ - SimpleCookedObjMaker(const std::string& name, ISvcLocator* pSvcLocator); - /** Default Destructor */ - ~SimpleCookedObjMaker(); - - /** standard Athena-Algorithm method */ - StatusCode initialize(); - /** standard Athena-Algorithm method */ - StatusCode execute(); - /** standard Athena-Algorithm method */ - StatusCode finalize(); - - private: - - /** member variables for algorithm properties: */ - std::vector<std::string> m_rawObjNames; - std::string m_cookedObjOutputName; - std::string m_cookedMessage; - - }; - - -#endif diff --git a/Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleRawObj.h b/Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleRawObj.h deleted file mode 100755 index 5154fd29108..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleRawObj.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef SIMPLERAWOBJ_H -#define SIMPLERAWOBJ_H 1 -#include "AthenaKernel/CLASS_DEF.h" -#include "SGTools/BuiltinsClids.h" - -typedef int SimpleRawObj; - -// Clid for integer is now defined in SGTools -//CLASS_DEF(SimpleRawObj,221490383,1) - -#endif // not SIMPLERAWOBJ_H diff --git a/Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleRawObjMaker.h b/Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleRawObjMaker.h deleted file mode 100755 index d81f6960c74..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/RecExAlgs/SimpleRawObjMaker.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// SimpleRawObjMaker.h, (c) ATLAS Detector software -/////////////////////////////////////////////////////////////////// - -#ifndef SIMPLERAWOBJMAKER_H -#define SIMPLERAWOBJMAKER_H 1 - -// Gaudi includes -#include "GaudiKernel/ServiceHandle.h" -#include "AthenaBaseComps/AthAlgorithm.h" -#include <string> - -class AtlasDetectorID; -class Identifier; - - - /** @class SimpleRawObjMaker - - This is for the Doxygen-Documentation. - Please delete these lines and fill in information about - the Algorithm! - Please precede every member function declaration with a - short Doxygen comment stating the purpose of this function. - - @author David Rousseau <rousseau@lal.in2p3.fr> - */ - - class SimpleRawObjMaker : public AthAlgorithm - { - public: - - /** Standard Athena-Algorithm Constructor */ - SimpleRawObjMaker(const std::string& name, ISvcLocator* pSvcLocator); - /** Default Destructor */ - ~SimpleRawObjMaker(); - - /** standard Athena-Algorithm method */ - StatusCode initialize(); - /** standard Athena-Algorithm method */ - StatusCode execute(); - /** standard Athena-Algorithm method */ - StatusCode finalize(); - - private: - - /** member variables for algorithm properties: */ - std::string m_rawObjOutputName; - std::string m_rawMessage; - - }; - - -#endif diff --git a/Reconstruction/RecExample/RecExAlgs/doc/packagedoc.h b/Reconstruction/RecExample/RecExAlgs/doc/packagedoc.h deleted file mode 100644 index 5854b78a734..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/doc/packagedoc.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/** -@page RecExAlgs_page RecExAlgs Package - ->> Please enter an overview of the created package here: What does it contain? - -@author David Rousseau <rousseau@lal.in2p3.fr> - -@section RecExAlgs_RecExAlgsIntro Introduction - ->> Please enter a brief description of the package here. - - - -*/ diff --git a/Reconstruction/RecExample/RecExAlgs/python/SimpleCookedObjGetter.py b/Reconstruction/RecExample/RecExAlgs/python/SimpleCookedObjGetter.py deleted file mode 100755 index 04653bf5d63..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/python/SimpleCookedObjGetter.py +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -# specifies a specific SimpleCookedObjMaker instance - -from AthenaCommon.Logging import logging -from RecExConfig.Configured import Configured - -class SimpleCookedObjGetter ( Configured ) : - _outputType = "SimpleCookedObj" - _output = { _outputType : "SimpleCookedObjBlaBlaDict" } - - - def configure(self): - mlog = logging.getLogger( 'Py:SimpleCookedObjGetter::configure %s:' % self.__class__ ) - - - # work indeed - # from __main__ import include - # include("RecExAlgs/SimpleCookedObjMaker_jobOptions.py") - - # get handle to upstream object - - try: - from RecExAlgs.SimpleRawObjGetter import SimpleRawObjGetter - except ImportError: - mlog.error("could not import SimpleRawObjGetter. Quit") - return False - - theSimpleRawObjGetter=SimpleRawObjGetter() - - if not theSimpleRawObjGetter.usable(): - if not self.ignoreConfigError(): - mlog.error("SimpleRawObjGetter unusable. Quit.") - return False - else: - mlog.error("SimpleRawObjGetter unusable. Continue nevertheless") - - - # get handle to tools - - - # now configure the algorithm, part of this could be done in a separate class - # cannot have same name - try: - from RecExAlgs.RecExAlgsConf import SimpleCookedObjMaker - except ImportError: - mlog.error("could not import SimpleCookedObjMaker. Quit") - return False - - theSimpleCookedObjMaker=SimpleCookedObjMaker() - self._SimpleCookedObjMakerHandle = theSimpleCookedObjMaker - theSimpleCookedObjMaker.CookedMessage= "From SimpleCookedObjGetter.py" - # - - # sets output key - # these two lines are completely equivalent - #self.SimpleCookedObjMakerHandle().CookedObjOutputName=self.outputKey() - theSimpleCookedObjMaker.CookedObjOutputName=self.outputKey() - - - # register output in objKeyStore - # should eventually specify there that object to be written in a stream - from RecExConfig.ObjKeyStore import objKeyStore - objKeyStore.addStreamESD(self.outputType(),self.outputKey()) - # if only transient store - # objKeyStore.addTransient(self.outputType(),self.outputKey()) - - - # can alter upstream alg property here, not recommended - # theSimpleRawObjGetter.SimpleRawObjMakerHandle().RawMessage= "from SimpleCookedObjGetter" - - theSimpleCookedObjMaker.RawObjNames = [ theSimpleRawObjGetter.outputKey()] - - - # now add algorithm to topSequence - # this should always come at the end - - mlog.info(" now adding to topSequence") - from AthenaCommon.AlgSequence import AlgSequence - topSequence = AlgSequence() - topSequence += self.SimpleCookedObjMakerHandle() - - - return True - - def SimpleCookedObjMakerHandle(self): - return self._SimpleCookedObjMakerHandle - - -# would work only if one output object type - def outputKey(self): - return self._output[self._outputType] - - def outputType(self): - return self._outputType - - def outputTypeKey(self): - return str(self.outputType()+"#"+self.outputKey()) - - diff --git a/Reconstruction/RecExample/RecExAlgs/python/SimpleRawObjGetter.py b/Reconstruction/RecExample/RecExAlgs/python/SimpleRawObjGetter.py deleted file mode 100755 index b2d1f95d528..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/python/SimpleRawObjGetter.py +++ /dev/null @@ -1,74 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -# specifies a specific SimpleRawObjMaker instance - -from AthenaCommon.Logging import logging -from RecExConfig.Configured import Configured - - -class SimpleRawObjGetter ( Configured ) : - _outputType = "SimpleRawObj" - # initialisation syntax {"typea":["key1", "key2"], "typeb":"key"} - _output = { _outputType :"SimpleRawObjBlaBlaDict" } - - - def configure(self): - # should be only one - mlog = logging.getLogger( 'Py:SimpleRawObjGetter::configure %s:' % self.__class__ ) - - - - # now configure the algorithm, part of this could be done in a separate file, a Configurable python class for example - - try: - from RecExAlgs.RecExAlgsConf import SimpleRawObjMaker - except ImportError as err: - mlog.error("could not import SimpleRawObjMaker:") - mlog.error(err) - return False - - # create alg instance - theSimpleRawObjMaker=SimpleRawObjMaker() - self._SimpleRawObjMakerHandle = theSimpleRawObjMaker - # sets output key - - - theSimpleRawObjMaker.RawObjOutputName=self.outputKey() - - theSimpleRawObjMaker.RawMessage=" from SimpleRawObjGetter " - # this line is equivalent to the previous - #self.SimpleRawObjMakerHandle().RawMessage=" from SimpleRawObjGetter " - - from RecExConfig.ObjKeyStore import objKeyStore - objKeyStore.addTransient(self.outputType(),self.outputKey()) - - #anotherSimpleRawObjMaker=SimpleRawObjMaker() - - mlog.info(" now adding to topSequence") - from AthenaCommon.AlgSequence import AlgSequence - topSequence = AlgSequence() - topSequence += self.SimpleRawObjMakerHandle() - - # this still work - #theAlg.RawMessage=" from SimpleRawObjGetter with theAlg after topseq" - - mlog.info(" leaving configure") - - return True - - - def SimpleRawObjMakerHandle(self): - return self._SimpleRawObjMakerHandle - -# would work only if one output object type - def outputKey(self): - return self._output[self._outputType] - - def outputType(self): - return self._outputType - - def outputTypeKey(self): - return str(self.outputType()+"#"+self.outputKey()) - - - diff --git a/Reconstruction/RecExample/RecExAlgs/python/__init__.py b/Reconstruction/RecExample/RecExAlgs/python/__init__.py deleted file mode 100755 index d2e5c08f4ca..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/python/__init__.py +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -#======================================================================= -# File: RecExAlgs/python/__init__.py -#======================================================================= -__version__ = '1.0.0' -__author__ = 'David Rousseau ' -__all__ = [ 'SimpleRawObjGetter','SimpleCookedObjGetter'] -__doc__ =""" - Python modules for the ATLAS Reconstruction - - SimpleRawObjGetter -> driving SimpleRawObjMaker alg - SimpleCookedObjGetter -> driving SimpleCookedObjMaker alg - """ -__description__ ='Python interface for ATLAS reconstruction ' - -# -#======================================================================= - diff --git a/Reconstruction/RecExample/RecExAlgs/share/SimpleCookedObjMaker_jobOptions.py b/Reconstruction/RecExample/RecExAlgs/share/SimpleCookedObjMaker_jobOptions.py deleted file mode 100755 index d2cb925bb74..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/share/SimpleCookedObjMaker_jobOptions.py +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -## get a handle on the algsequence -from AthenaCommon.AlgSequence import AlgSequence -job = AlgSequence() - -## add our alg -from AthenaCommon import CfgMgr -job += CfgMgr.SimpleCookedObjMaker() -job.SimpleCookedObjMaker.RawObjNames = ["reallyRaw"] -job.SimpleCookedObjMaker.CookedObjOutputName = "reallyCooked" diff --git a/Reconstruction/RecExample/RecExAlgs/share/SimpleRawObjMaker_jobOptions.py b/Reconstruction/RecExample/RecExAlgs/share/SimpleRawObjMaker_jobOptions.py deleted file mode 100755 index 056daf12f83..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/share/SimpleRawObjMaker_jobOptions.py +++ /dev/null @@ -1,10 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -## get a handle on the algsequence -from AthenaCommon.AlgSequence import AlgSequence -job = AlgSequence() - -## add our algorithm -from AthenaCommon import CfgMgr -job += CfgMgr.SimpleRawObjMaker() -job.SimpleRawObjMaker.RawObjOutputName = "reallyRaw" diff --git a/Reconstruction/RecExample/RecExAlgs/src/SimpleCookedObjMaker.cxx b/Reconstruction/RecExample/RecExAlgs/src/SimpleCookedObjMaker.cxx deleted file mode 100755 index 76c6c71501d..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/src/SimpleCookedObjMaker.cxx +++ /dev/null @@ -1,111 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// SimpleCookedObjMaker.cxx, (c) ATLAS Detector software -/////////////////////////////////////////////////////////////////// - -#include "RecExAlgs/SimpleCookedObjMaker.h" -#include "RecExAlgs/SimpleCookedObj.h" -#include "RecExAlgs/SimpleRawObj.h" - -//================ Constructor ================================================= - -::SimpleCookedObjMaker::SimpleCookedObjMaker(const std::string& name, ISvcLocator* pSvcLocator) - : - AthAlgorithm(name,pSvcLocator), - m_cookedObjOutputName("unspecified"), - m_cookedMessage("unspecified") - -{ - // template for property decalration - - declareProperty("RawObjNames", m_rawObjNames, " input objects key list "); - declareProperty("CookedObjOutputName", m_cookedObjOutputName, " output object key "); - declareProperty("CookedMessage", m_cookedMessage, " message to be printed"); -} - -//================ Destructor ================================================= - -SimpleCookedObjMaker::~SimpleCookedObjMaker() -{} - - -//================ Initialisation ================================================= - -StatusCode SimpleCookedObjMaker::initialize() -{ - // Code entered here will be executed once at program start. - - ATH_MSG_INFO(" initialize()" << endmsg - << " Cooked Message is: " << m_cookedMessage); - - if (m_rawObjNames.size()==0) { - ATH_MSG_ERROR(" no input rawObj specified "); - return StatusCode::FAILURE; - } else { - for (std::vector<std::string>::const_iterator - theRawObjName=m_rawObjNames.begin(), - itrEnd=m_rawObjNames.end(); - theRawObjName != itrEnd; - ++theRawObjName) { - ATH_MSG_INFO(" will read in rawObj with key " << (*theRawObjName)); - } - } - - ATH_MSG_INFO(" will write out CookedObj with key " << m_cookedObjOutputName); - - ATH_MSG_INFO("initialize() successful in " << name()); - return StatusCode::SUCCESS; -} - -//================ Finalisation ================================================= - -StatusCode SimpleCookedObjMaker::finalize() -{ - // Code entered here will be executed once at the end of the program run. - return StatusCode::SUCCESS; -} - -//================ Execution ==================================================== - -StatusCode SimpleCookedObjMaker::execute() -{ - - ATH_MSG_INFO(" Cooked Message is: " << m_cookedMessage); - - for (std::vector<std::string>::const_iterator - theRawObjName=m_rawObjNames.begin(), - itrEnd = m_rawObjNames.end(); - theRawObjName!=itrEnd; - ++theRawObjName) { - ATH_MSG_INFO(" reading in in rawObj with key " << (*theRawObjName)); - - const SimpleRawObj * theRawObj=0; - StatusCode sc = evtStore()->retrieve(theRawObj,*theRawObjName); - if (!sc.isSuccess()) { - ATH_MSG_ERROR(" could not read in SimpleRawObj " << m_cookedObjOutputName); - } - } - - - SimpleCookedObj * theCookedObj = new SimpleCookedObj(); - - ATH_MSG_INFO(" recording SimpleCookedObj " << m_cookedObjOutputName); - - StatusCode sc = evtStore()->record(theCookedObj,m_cookedObjOutputName,false); - - if (!sc.isSuccess()) { - ATH_MSG_ERROR(" could not record SimpleCookedObj " << m_cookedObjOutputName); - } - - - - - // Code entered here will be executed once per event - return StatusCode::SUCCESS; -} - -//============================================================================================ - diff --git a/Reconstruction/RecExample/RecExAlgs/src/SimpleRawObjMaker.cxx b/Reconstruction/RecExample/RecExAlgs/src/SimpleRawObjMaker.cxx deleted file mode 100755 index 1478bebf881..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/src/SimpleRawObjMaker.cxx +++ /dev/null @@ -1,76 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -/////////////////////////////////////////////////////////////////// -// SimpleRawObjMaker.cxx, (c) ATLAS Detector software -/////////////////////////////////////////////////////////////////// - -#include "RecExAlgs/SimpleRawObjMaker.h" -#include "RecExAlgs/SimpleRawObj.h" - -//================ Constructor ================================================= - -SimpleRawObjMaker::SimpleRawObjMaker(const std::string& name, ISvcLocator* pSvcLocator) - : - AthAlgorithm(name,pSvcLocator), - m_rawObjOutputName("unspecified"), - m_rawMessage("unspecified") -{ - // template for property declaration - declareProperty("RawObjOutputName", m_rawObjOutputName, "key of output object"); - declareProperty("RawMessage", m_rawMessage,"message to be printed"); -} - -//================ Destructor ================================================= - -SimpleRawObjMaker::~SimpleRawObjMaker() -{} - - -//================ Initialisation ================================================= - -StatusCode SimpleRawObjMaker::initialize() -{ - // Code entered here will be executed once at program start. - - ATH_MSG_INFO(name() << " initialize()" - << endmsg - << " Raw Message is: " << m_rawMessage << endmsg - << " will write out RawObj with key " << m_rawObjOutputName); - - ATH_MSG_INFO("initialize() successful in " << name()); - return StatusCode::SUCCESS; -} - -//================ Finalisation ================================================= - -StatusCode SimpleRawObjMaker::finalize() -{ - // Code entered here will be executed once at the end of the program run. - return StatusCode::SUCCESS; -} - -//================ Execution ==================================================== - -StatusCode SimpleRawObjMaker::execute() -{ - - ATH_MSG_INFO(" Raw Message is: " << m_rawMessage); - - SimpleRawObj * theObj = new SimpleRawObj(); - - ATH_MSG_INFO(" recording SimpleRawObj " << m_rawObjOutputName); - - StatusCode sc = evtStore()->record(theObj,m_rawObjOutputName,false); - - if (sc.isFailure()) { - ATH_MSG_ERROR(" could not record theObj " << m_rawObjOutputName); - } - - // Code entered here will be executed once per event - return StatusCode::SUCCESS; -} - -//============================================================================================ - diff --git a/Reconstruction/RecExample/RecExAlgs/src/components/RecExAlgs_entries.cxx b/Reconstruction/RecExample/RecExAlgs/src/components/RecExAlgs_entries.cxx deleted file mode 100644 index b6a9beb481c..00000000000 --- a/Reconstruction/RecExample/RecExAlgs/src/components/RecExAlgs_entries.cxx +++ /dev/null @@ -1,7 +0,0 @@ -#include "RecExAlgs/SimpleRawObjMaker.h" -#include "RecExAlgs/SimpleCookedObjMaker.h" - - -DECLARE_COMPONENT( SimpleRawObjMaker ) -DECLARE_COMPONENT( SimpleCookedObjMaker ) - diff --git a/Reconstruction/RecExample/RecExConfig/share/SimpleConf_topOptions.py b/Reconstruction/RecExample/RecExConfig/share/SimpleConf_topOptions.py deleted file mode 100755 index c9b585a3edc..00000000000 --- a/Reconstruction/RecExample/RecExConfig/share/SimpleConf_topOptions.py +++ /dev/null @@ -1,244 +0,0 @@ -# exercise dictionary -if True: - d={"obj1":["tag1","tag2"],"obj2":"another" } - thetag=d["obj2"] - print thetag # single string - thetag=d["obj1"] - print thetag # list of string - # thetag=d["obj3"] - print thetag # crash if wrong - print d.has_key("obj3") - print d.has_key("obj2") - print d.keys() - # the following does not work - #o="obj2" - #x="" - #print d.get( o[, x]) - # print d.get("obj3"[, ""]) - -from AthenaCommon.Logging import logging - -#logRecExCommon_topOptions = logging.getLogger( 'py:RecExCommon_topOptions' ) -doNameAuditor=True -doTrigger=False -doWriteESD=False -doWriteAOD=False -doWriteTAG=False -doAOD=False -include ( "RecExCommon/RecExCommon_flags.py" ) -DetFlags.ID_setOff() -DetFlags.Muon_setOff() -DetFlags.Calo_setOff() - - -#to read G4 POOL RDO -if GlobalFlags.InputFormat.is_pool(): - # to read pool Data - include( "AthenaPoolCnvSvc/ReadAthenaPool_jobOptions.py" ) - - - - # G4 Pool input - # it is possible to specify a list of files to be processed consecutively - # If using logical file name or using back navigation the relevant input - # files should be listed in the PoolFileCatalog.xml - EventSelector = Service( "EventSelector" ) - EventSelector.InputCollections = PoolRDOInput - - - -# Set output level threshold -# ( ALL, VERBOSE, DEBUG, INFO, WARNING, ERROR, FATAL ) -MessageSvc = Service( "MessageSvc" ) -MessageSvc.OutputLevel = OutputLevel -#increase the number of letter reserved to the alg/tool name from 18 to 30 -MessageSvc.Format = "% F%50W%S%7W%R%T %0W%M" -# to change the default limit on number of message - - -# MessageSvc.debugLimit = 10000 # all debug message etc... -MessageSvc.defaultLimit = 9999999 # all messages - - -# Number of events to be processed -theApp.EvtMax = EvtMax - - - -theAuditorSvc = AuditorSvc() -theAuditorSvc.Auditors += [ "ChronoAuditor"] - -# Display detailed size and timing statistics for writing and reading -AthenaPoolCnvSvc = Service( "AthenaPoolCnvSvc" ) -AthenaPoolCnvSvc.UseDetailChronoStat = True - -# -# write out a short message upon entering or leaving each algorithm -# -if doNameAuditor: - theAuditorSvc.Auditors += [ "NameAuditor" ] - - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() -from __main__ import topSequence - - -#other global variables (to be improved ) -ALLOWBACKNAV=False -from __main__ import ALLOWBACKNAV -ALLOWIGNOREEXISTINGDATAOBJECT=False -from __main__ import ALLOWIGNOREEXISTINGDATAOBJECT -ALLOWDISABLE=False -from __main__ import ALLOWDISABLE -ALLOWIGNORECONFIGERROR=False -from __main__ import ALLOWIGNORECONFIGERROR - - -from RecExConfig.ObjKeyStore import * -objKeyStore = ObjKeyStore() - - -print " Initial content of objKeyStore " -objKeyStore.Print() - -from __main__ import objKeyStore - - -# hack allowed here but not in standard config -ALLOWIGNOREEXISTINGDATAOBJECT=True -ALLOWDISABLE=True -ALLOWIGNORECONFIGERROR=True - - -# for example : disable SimpleRawObjGetter, this will cascade to -# downstream algorithm -if False: - from RecExAlgs.SimpleRawObjGetter import SimpleRawObjGetter - theSimpleRawObjGetter = SimpleRawObjGetter(disable=True) - - -# entering normal configuration, no hack alowed anymore -ALLOWIGNOREEXISTINGDATAOBJECT=False -ALLOWDISABLE=False -ALLOWIGNORECONFIGERROR=False - -# for example :if try to disable here, this would be ineffective -if False: - from RecExAlgs.SimpleRawObjGetter import SimpleRawObjGetter - theSimpleRawObjGetter = SimpleRawObjGetter(disable=True) - - - - -# put quasi empty first algorithm so that the first real -# algorithm does not see the memory change due to event manipulation -theApp.Dlls += [ "GaudiAlg" ] -theApp.TopAlg += [ "EventCounter" ] -EventCounter = Algorithm( "EventCounter" ) -EventCounter.Frequency=100 # one print every 100 event - -# other algorithms - - - - -# Print create SimpleCookedObjGetter, this will trigger SimpleRawObjGetter - -from RecExAlgs.SimpleCookedObjGetter import * -aSimpleCookedObjGetter = SimpleCookedObjGetter() - - -print "Py: now trying new instance " - -from RecExAlgs.SimpleRawObjGetter import * -bSimpleRawObjGetter = SimpleRawObjGetter() - -if bSimpleRawObjGetter.usable(): - print "Py:top raw getFullName from b should be same instance ",bSimpleRawObjGetter.outputTypeKey() - print "Py:top raw outputTypeKey in alg ",bSimpleRawObjGetter.SimpleRawObjMakerHandle().RawObjOutputName - -# it is still possible to alter an alg property from there -# bSimpleRawObjGetter.SimpleRawObjMakerHandle().RawMessage=" from topOptions b" - - - -theOutput=bSimpleRawObjGetter.output() -print theOutput - - - - - -# set up all detector description description -# include ("RecExCommon/AllDet_detDescr.py") - - - -# -# G4 : RDO Pool converters -# -#if read or write ESD load the converters -if ( doWriteESD or readESD) or doWriteAOD or doWriteRDO : - # Converters: - include ( "RecExCommon/RecoOutputPoolCnv_jobOptions.py" ) - -if not readAOD and doTruth: #needed to read MuonEntryRecord - include( "G4SimAthenaPOOL/G4SimAthenaPOOL_joboptions.py" ) - - -if DetFlags.readRDOPool.any_on() or DetFlags.readRIOPool.any_on() or readESD : - if DetFlags.readRDOPool.ID_on(): - #FIXME tile reading very slow if InDet dict not there. Bug in Pool. - include( "InDetEventAthenaPool/InDetEventAthenaPool_joboptions.py" ) - - if DetFlags.readRDOPool.LAr_on() : - include( "LArAthenaPool/LArAthenaPool_joboptions.py" ) - - if DetFlags.readRDOPool.Tile_on(): - include( "TileEventAthenaPool/TileEventAthenaPool_joboptions.py" ) - - if DetFlags.readRDOPool.Muon_on() or DetFlags.readRIOPool.Muon_on() : - include( "MuonEventAthenaPool/MuonEventAthenaPool_joboptions.py" ) - - - include( "EventAthenaPool/EventAthenaPool_joboptions.py" ) - - - -if doTruth: - include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" ) - - - -print "List all Dlls" -print theApp.Dlls -print "List all ExtSvc" -print theApp.ExtSvc -print "List of all top algorithms" -print theApp.TopAlg - -print " Final content of objKeyStore " -objKeyStore.Print() - - -# exercise objKeyStore for fun -if objKeyStore.isInInput("bidon"): - print "Py: in InPut :bidon" - -if objKeyStore.isInTransient("bidon"): - print "Py: bidon" - -if objKeyStore.isInTransient("bidon","truc"): - print "Py: bidon truc" - -if objKeyStore.isInTransient("SimpleCookedObj"): - print "Py: SimpleCookedObj" - - -if objKeyStore.isInTransient("SimpleCookedObj","truc"): - print "Py: SimpleCookedObj truc" - -if objKeyStore.isInTransient("SimpleCookedObj","SimpleCookedObjBlaBla"): - print "Py: SimpleCookedObj SimpleCookedObjBlaBla" - diff --git a/Reconstruction/RecExample/RecExConfig/share/Simple_topOptions.py b/Reconstruction/RecExample/RecExConfig/share/Simple_topOptions.py deleted file mode 100755 index 0b42f3cacb6..00000000000 --- a/Reconstruction/RecExample/RecExConfig/share/Simple_topOptions.py +++ /dev/null @@ -1,118 +0,0 @@ - - - -from AthenaCommon.Logging import logging - -#logRecExCommon_topOptions = logging.getLogger( 'py:RecExCommon_topOptions' ) - -doTrigger=False -doWriteESD=False -doWriteAOD=False -doWriteTAG=False -doAOD=False -include ( "RecExCommon/RecExCommon_flags.py" ) -DetFlags.ID_setOff() -DetFlags.Muon_setOff() -DetFlags.Calo_setOff() - - -#to read G4 POOL RDO -if GlobalFlags.InputFormat.is_pool(): - # to read pool Data - include( "AthenaPoolCnvSvc/ReadAthenaPool_jobOptions.py" ) - - - - # G4 Pool input - # it is possible to specify a list of files to be processed consecutively - # If using logical file name or using back navigation the relevant input - # files should be listed in the PoolFileCatalog.xml - EventSelector = Service( "EventSelector" ) - EventSelector.InputCollections = PoolRDOInput - - - -# Set output level threshold -# ( ALL, VERBOSE, DEBUG, INFO, WARNING, ERROR, FATAL ) -MessageSvc = Service( "MessageSvc" ) -MessageSvc.OutputLevel = OutputLevel -#increase the number of letter reserved to the alg/tool name from 18 to 30 -MessageSvc.Format = "% F%50W%S%7W%R%T %0W%M" -# to change the default limit on number of message - - -# MessageSvc.debugLimit = 10000 # all debug message etc... -MessageSvc.defaultLimit = 9999999 # all messages - - -# Number of events to be processed -theApp.EvtMax = EvtMax - - -# put quasi empty first algorithm so that the first real -# algorithm does not see the memory change due to event manipulation -theApp.Dlls += [ "GaudiAlg" ] -theApp.TopAlg += [ "EventCounter" ] -EventCounter = Algorithm( "EventCounter" ) -EventCounter.Frequency=100 # one print every 100 event - -# other algorithms - -include ("RecExAlgs/SimpleRawObjMaker_jobOptions.py") -include ("RecExAlgs/SimpleCookedObjMaker_jobOptions.py") - - - - - - - - -# set up all detector description description -include ("RecExCommon/AllDet_detDescr.py") - - - -# -# G4 : RDO Pool converters -# -#if read or write ESD load the converters -if ( doWriteESD or readESD) or doWriteAOD or doWriteRDO : - # Converters: - include ( "RecExCommon/RecoOutputPoolCnv_jobOptions.py" ) - -if not readAOD and doTruth: #needed to read MuonEntryRecord - include( "G4SimAthenaPOOL/G4SimAthenaPOOL_joboptions.py" ) - - -if DetFlags.readRDOPool.any_on() or DetFlags.readRIOPool.any_on() or readESD : - if DetFlags.readRDOPool.ID_on(): - #FIXME tile reading very slow if InDet dict not there. Bug in Pool. - include( "InDetEventAthenaPool/InDetEventAthenaPool_joboptions.py" ) - - if DetFlags.readRDOPool.LAr_on() : - include( "LArAthenaPool/LArAthenaPool_joboptions.py" ) - - if DetFlags.readRDOPool.Tile_on(): - include( "TileEventAthenaPool/TileEventAthenaPool_joboptions.py" ) - - if DetFlags.readRDOPool.Muon_on() or DetFlags.readRIOPool.Muon_on() : - include( "MuonEventAthenaPool/MuonEventAthenaPool_joboptions.py" ) - - - include( "EventAthenaPool/EventAthenaPool_joboptions.py" ) - - - -if doTruth: - include( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" ) - - - -print "List all Dlls" -print theApp.Dlls -print "List all ExtSvc" -print theApp.ExtSvc -print "List of all top algorithms" -print theApp.TopAlg - -- GitLab From 025454bfbd6079150e0e019eba1efbd5a23e5da3 Mon Sep 17 00:00:00 2001 From: Nils Krumnack <krumnack@iastate.edu> Date: Fri, 24 Jul 2020 12:35:42 -0500 Subject: [PATCH 137/459] protect include with conditional compilation --- Control/AthToolSupport/AsgTools/AsgTools/AsgComponentConfig.icc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Control/AthToolSupport/AsgTools/AsgTools/AsgComponentConfig.icc b/Control/AthToolSupport/AsgTools/AsgTools/AsgComponentConfig.icc index ea6e7a97244..e68faefcb3c 100644 --- a/Control/AthToolSupport/AsgTools/AsgTools/AsgComponentConfig.icc +++ b/Control/AthToolSupport/AsgTools/AsgTools/AsgComponentConfig.icc @@ -10,10 +10,10 @@ // includes // -#include <AsgTools/AsgComponent.h> #include <AsgTools/MessageCheckAsgTools.h> #ifdef XAOD_STANDALONE +#include <AsgTools/AsgComponent.h> #include <AsgTools/TProperty.h> #endif -- GitLab From 76c5b299d36ebe22851553f88ca9e823a462be56 Mon Sep 17 00:00:00 2001 From: Nils Krumnack <krumnack@iastate.edu> Date: Fri, 24 Jul 2020 12:53:42 -0500 Subject: [PATCH 138/459] disable DataHandleTest code in AthSimulation AthSimulation doesn't have the xAOD classes, so disabling these tests that rely on them seemed like the way to go. --- .../AsgExampleTools/DataHandleTestTool.h | 8 ++++++++ .../AthToolSupport/AsgExampleTools/CMakeLists.txt | 12 ++++++++++-- .../AsgExampleTools/Root/DataHandleTestTool.cxx | 4 ++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/DataHandleTestTool.h b/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/DataHandleTestTool.h index 03cdb9594ae..401eed879e3 100644 --- a/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/DataHandleTestTool.h +++ b/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/DataHandleTestTool.h @@ -12,7 +12,13 @@ #include <AsgTools/AsgTool.h> #include <AsgExampleTools/IDataHandleTestTool.h> #include <AsgDataHandles/ReadHandleKey.h> + +// AthSimulation doesn't contain the muon-container, so we can't +// really build the tool, but it is simpler to build an empty tool +// than to exclude the tool completely from the AthSimulation build. +#ifndef SIMULATIONBASE #include <xAODMuon/MuonContainer.h> +#endif namespace asg { @@ -41,7 +47,9 @@ namespace asg void runTest () override; public: +#ifndef SIMULATIONBASE SG::ReadHandleKey<xAOD::MuonContainer> m_readKey {this, "readKey", "Muons", "regular read key"}; +#endif bool m_readFailure {false}; }; } diff --git a/Control/AthToolSupport/AsgExampleTools/CMakeLists.txt b/Control/AthToolSupport/AsgExampleTools/CMakeLists.txt index dab240c2752..cb7fec41ad7 100644 --- a/Control/AthToolSupport/AsgExampleTools/CMakeLists.txt +++ b/Control/AthToolSupport/AsgExampleTools/CMakeLists.txt @@ -5,13 +5,21 @@ # Declare the package name: atlas_subdir( AsgExampleTools ) +if (SIMULATIONBASE) + set (extra_dep ) + set (extra_lib ) +else() + set (extra_dep Event/xAOD/xAODMuon) + set (extra_lib xAODMuon) +endif() + # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Control/AthToolSupport/AsgDataHandles Control/AthToolSupport/AsgTools Control/AthToolSupport/AsgTesting - Event/xAOD/xAODMuon) + ${extra_dep}) # External dependencies: find_package( GTest ) @@ -25,7 +33,7 @@ atlas_add_root_dictionary( AsgExampleToolsLib AsgExampleToolsCintDict atlas_add_library( AsgExampleToolsLib AsgExampleTools/*.h Root/*.cxx ${AsgExampleToolsCintDict} PUBLIC_HEADERS AsgExampleTools - LINK_LIBRARIES AsgTools AsgDataHandlesLib AsgTestingLib xAODMuon ) + LINK_LIBRARIES AsgTools AsgDataHandlesLib AsgTestingLib ${extra_lib} ) if( NOT XAOD_STANDALONE ) atlas_add_component( AsgExampleTools diff --git a/Control/AthToolSupport/AsgExampleTools/Root/DataHandleTestTool.cxx b/Control/AthToolSupport/AsgExampleTools/Root/DataHandleTestTool.cxx index 8e95ab31a42..18778a38bad 100644 --- a/Control/AthToolSupport/AsgExampleTools/Root/DataHandleTestTool.cxx +++ b/Control/AthToolSupport/AsgExampleTools/Root/DataHandleTestTool.cxx @@ -42,7 +42,9 @@ namespace asg StatusCode DataHandleTestTool :: initialize () { +#ifndef SIMULATIONBASE ANA_CHECK (m_readKey.initialize ()); +#endif return StatusCode::SUCCESS; } @@ -51,6 +53,7 @@ namespace asg void DataHandleTestTool :: runTest () { +#ifndef SIMULATIONBASE const xAOD::MuonContainer *muonsStore {nullptr}; ASSERT_SUCCESS (evtStore()->retrieve (muonsStore, "Muons")); @@ -59,5 +62,6 @@ namespace asg EXPECT_EQ (muonsStore, readHandle.get()); else EXPECT_EQ (nullptr, readHandle.get()); +#endif } } -- GitLab From ae7082786a7b321828b7e470328ecd8f5d1cf6b1 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Fri, 24 Jul 2020 18:54:15 +0100 Subject: [PATCH 139/459] InDetConversionFinderTools: Move to new style ToolHandle, private tools, start cleaning ConfiguredSecVertexFinding --- .../python/ConfiguredSecVertexFinding.py | 371 +++++++++--------- .../ConversionPostSelector.h | 22 +- .../SingleTrackConversionTool.h | 110 +++--- .../TrackPairsSelector.h | 132 ++++--- .../src/SingleTrackConversionTool.cxx | 150 ++++--- .../src/TrackPairsSelector.cxx | 63 ++- 6 files changed, 435 insertions(+), 413 deletions(-) diff --git a/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredSecVertexFinding.py b/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredSecVertexFinding.py index bca989125e5..af37ac35285 100644 --- a/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredSecVertexFinding.py +++ b/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredSecVertexFinding.py @@ -11,184 +11,199 @@ from __future__ import print_function class ConfiguredSecVertexFinding: - def __init__(self, - prefix = "", - VertexCuts = None, - TrackParticles = None, - SecVertices = None, - Extrapolator = None, - TrackSummaryTool = None, - MagFieldSvc = None, - printConfig = False): - - # get ToolSvc and topSequence - from AthenaCommon.AppMgr import ToolSvc - from AthenaCommon.AlgSequence import AlgSequence - topSequence = AlgSequence() - # get InDetFlags - from InDetRecExample.InDetJobProperties import InDetFlags - - # - # --- load vertex fitter - # - from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter - InDetSecVxFitterTool = Trk__TrkVKalVrtFitter(name = prefix+"Fitter", - Extrapolator = Extrapolator, - IterationNumber = VertexCuts.Fitter_IterationNumber(), - MakeExtendedVertex = VertexCuts.Fitter_MakeExtendedVertex(), - FirstMeasuredPoint = VertexCuts.Fitter_FirstMeasuredPoint(), - Robustness = VertexCuts.Fitter_Robustness(), - InputParticleMasses = VertexCuts.Fitter_InputParticleMasses(), - VertexForConstraint = VertexCuts.Fitter_VertexForConstraint(), - CovVrtForConstraint = VertexCuts.Fitter_CovVrtForConstraint(), - FirstMeasuredPointLimit = VertexCuts.FirstMeasuredPointLimit(), - usePhiCnst = VertexCuts.usePhiCnst(), - useThetaCnst = VertexCuts.useThetaCnst()) - ToolSvc += InDetSecVxFitterTool - if (printConfig): - print(InDetSecVxFitterTool) - # - # --- Distance of minimum approach utility - # - from TrkVertexSeedFinderUtils.TrkVertexSeedFinderUtilsConf import Trk__SeedNewtonTrkDistanceFinder - InDetSecVxTrkDistanceFinder = Trk__SeedNewtonTrkDistanceFinder(name = prefix+'TrkDistanceFinder') - ToolSvc += InDetSecVxTrkDistanceFinder - if (printConfig): - print(InDetSecVxTrkDistanceFinder) - # - # --- Helper Tool - # - from InDetConversionFinderTools.InDetConversionFinderToolsConf import InDet__ConversionFinderUtils - InDetSecVxHelper = InDet__ConversionFinderUtils(name = prefix+"FinderUtils") - ToolSvc += InDetSecVxHelper - if (printConfig): - print(InDetSecVxHelper) - # - # --- Track selector tool - # - from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetConversionTrackSelectorTool - InDetSecVxTrackSelector = InDet__InDetConversionTrackSelectorTool(name = prefix+"TrackSelector", - TrackSummaryTool = TrackSummaryTool, - Extrapolator = Extrapolator, - maxSiD0 = VertexCuts.TrkSel_maxSiD0(), - maxTrtD0 = VertexCuts.TrkSel_maxTrtD0(), - maxSiZ0 = VertexCuts.TrkSel_maxSiZ0(), - maxTrtZ0 = VertexCuts.TrkSel_maxTrtZ0(), - minPt = VertexCuts.TrkSel_minPt(), - RatioCut1 = VertexCuts.TrkSel_RatioCut1(), - RatioCut2 = VertexCuts.TrkSel_RatioCut2(), - RatioCut3 = VertexCuts.TrkSel_RatioCut3(), - RatioTRT = VertexCuts.TrkSel_RatioTRT(), - IsConversion = VertexCuts.TrkSel_IsConversion(), - significanceD0_Si= VertexCuts.TrkSel_significanceD0_Si(), - RatioV0 = VertexCuts.TrkSel_RatioV0()) - - ToolSvc += InDetSecVxTrackSelector - if (printConfig): - print(InDetSecVxTrackSelector) - # - # Track pairs selector - # - from InDetConversionFinderTools.InDetConversionFinderToolsConf import InDet__TrackPairsSelector - InDetSecVxTrackPairsSelector = InDet__TrackPairsSelector(name = prefix+"TrackPairsSelector", - ConversionFinderHelperTool = InDetSecVxHelper, - DistanceTool = InDetSecVxTrkDistanceFinder, - MaxFirstHitRadius = VertexCuts.TrkPairSel_MaxFirstHitRadius(), - MaxDistBetweenTracks = VertexCuts.TrkPairSel_MaxDistBetweenTracks(), - MaxEta = VertexCuts.TrkPairSel_MaxEta(), - MaxInitDistance = VertexCuts.TrkPairSel_MaxInitDistance(), - MinTrackAngle = VertexCuts.TrkPairSel_MinTrackAngle()) - ToolSvc += InDetSecVxTrackPairsSelector - if (printConfig): - print(InDetSecVxTrackPairsSelector) - # - # Vertex point estimator - # - from InDetConversionFinderTools.InDetConversionFinderToolsConf import InDet__VertexPointEstimator - InDetSecVtxPointEstimator = InDet__VertexPointEstimator(name = prefix+"PointEstimator", - MinDeltaR = VertexCuts.VtxPt_MinDeltaR(), - MaxDeltaR = VertexCuts.VtxPt_MaxDeltaR(), - MaxPhi = VertexCuts.VtxPt_MaxPhi()) - ToolSvc += InDetSecVtxPointEstimator - if (printConfig): - print(InDetSecVtxPointEstimator) - # - # Secondary Vertex post selector - # - from InDetConversionFinderTools.InDetConversionFinderToolsConf import InDet__ConversionPostSelector - InDetSecVtxPostSelector = InDet__ConversionPostSelector(name = prefix+"PostSelector", - MaxChi2Vtx = VertexCuts.SecVtxPost_MaxChi2Vtx(), - MaxInvariantMass = VertexCuts.SecVtxPost_MaxInvariantMass(), - MinFitMomentum = VertexCuts.SecVtxPost_MinFitMomentum(), - MinRadius = VertexCuts.SecVtxPost_MinRadius(), - MinPt = VertexCuts.SecVtxPost_MinPt(), - MaxdR = VertexCuts.SecVtxPost_MaxdR(), - MaxPhiVtxTrk = VertexCuts.SecVtxPost_MaxPhiVtxTrk()) - ToolSvc += InDetSecVtxPostSelector - if (printConfig): - print(InDetSecVtxPostSelector) - # - # Single track secondary vertex tool - # - from InDetConversionFinderTools.InDetConversionFinderToolsConf import InDet__SingleTrackConversionTool - InDetSingleTrackSecVtx = InDet__SingleTrackConversionTool(name = prefix+"SingleTrackTool", - ConversionFinderHelperTool = InDetSecVxHelper, - TrackSummaryTool = TrackSummaryTool, - Extrapolator = Extrapolator, - MaxBLayerHits = VertexCuts.SingleTrk_MaxBLayerHits(), - MinInitialHitRadius = VertexCuts.SingleTrk_MinInitialHitRadius(), - MinInitialHitRadius_noBlay = VertexCuts.SingleTrk_MinInitialHitRadius_noBlay(), - MinRatioOfHLhits = VertexCuts.SingleTrk_MinRatioOfHLhits()) - ToolSvc += InDetSingleTrackSecVtx - if (printConfig): - print(InDetSingleTrackSecVtx) - # - # conversion finder tool - # - from InDetConversionFinderTools.InDetConversionFinderToolsConf import InDet__InDetConversionFinderTools - InDetSecVtxFinderTool = InDet__InDetConversionFinderTools(name = prefix+"FinderTool", - VertexFitterTool = InDetSecVxFitterTool, - TrackSelectorTool = InDetSecVxTrackSelector, - TrackPairsSelector = InDetSecVxTrackPairsSelector, - VertexPointEstimator = InDetSecVtxPointEstimator, - PostSelector = InDetSecVtxPostSelector, - SingleTrackConversionTool = InDetSingleTrackSecVtx, - Extrapolator = Extrapolator, - TrackParticleCollection = TrackParticles, - RemoveTrtTracks = VertexCuts.Finder_RemoveTrtTracks(), - IsConversion = VertexCuts.Finder_IsConversion(), - MinDistVtxHit = VertexCuts.Finder_MinDistVtxHit(), - MaxDistVtxHit = VertexCuts.Finder_MaxDistVtxHit(), - MinFlightAngle = VertexCuts.Finder_MinFlightAngle(), - MinInitVtxR = VertexCuts.Finder_MinInitVtxR()) - ToolSvc += InDetSecVtxFinderTool - if (printConfig): - print(InDetSecVtxFinderTool) + def __init__(self, + prefix="", + VertexCuts=None, + TrackParticles=None, + SecVertices=None, + Extrapolator=None, + TrackSummaryTool=None, + MagFieldSvc=None, + printConfig=False): - # --- remember instances - self.__prefix = prefix - self.__InDetSecVtxFinderTool = InDetSecVtxFinderTool - self.__TrackParticles = TrackParticles - self.__SecVertices = SecVertices - self.__printConfig = printConfig - self.__topSequence = topSequence - - def toolInstance(self): - # - # --- return tool for usage in egamma - # - return self.__InDetSecVtxFinderTool + # get ToolSvc and topSequence + from AthenaCommon.AppMgr import ToolSvc + from AthenaCommon.AlgSequence import AlgSequence + topSequence = AlgSequence() - def addAlgorithm(self): - # - # --- add driving algorithm of usage in InDet - # - from InDetConversionFinder.InDetConversionFinderConf import InDet__ConversionFinder - InDetSecVtxFinder = InDet__ConversionFinder(name = self.__prefix+"Finder", - VertexFinderTool = self.__InDetSecVtxFinderTool, - TracksName = self.__TrackParticles, - InDetConversionOutputName = self.__SecVertices) - self.__topSequence += InDetSecVtxFinder - if (self.__printConfig): - print(InDetSecVtxFinder) + # + # --- load vertex fitter + # + from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter + InDetSecVxFitterTool = Trk__TrkVKalVrtFitter( + name=prefix+"Fitter", + Extrapolator=Extrapolator, + IterationNumber=VertexCuts.Fitter_IterationNumber(), + MakeExtendedVertex=VertexCuts.Fitter_MakeExtendedVertex(), + FirstMeasuredPoint=VertexCuts.Fitter_FirstMeasuredPoint(), + Robustness=VertexCuts.Fitter_Robustness(), + InputParticleMasses=VertexCuts.Fitter_InputParticleMasses(), + VertexForConstraint=VertexCuts.Fitter_VertexForConstraint(), + CovVrtForConstraint=VertexCuts.Fitter_CovVrtForConstraint(), + FirstMeasuredPointLimit=VertexCuts.FirstMeasuredPointLimit(), + usePhiCnst=VertexCuts.usePhiCnst(), + useThetaCnst=VertexCuts.useThetaCnst()) + ToolSvc += InDetSecVxFitterTool + if (printConfig): + print(InDetSecVxFitterTool) + # + # --- Distance of minimum approach utility + # + from TrkVertexSeedFinderUtils.TrkVertexSeedFinderUtilsConf import ( + Trk__SeedNewtonTrkDistanceFinder) + InDetSecVxTrkDistanceFinder = Trk__SeedNewtonTrkDistanceFinder( + name=prefix+'TrkDistanceFinder') + ToolSvc += InDetSecVxTrkDistanceFinder + if (printConfig): + print(InDetSecVxTrkDistanceFinder) + # + # --- Helper Tool + # + from InDetConversionFinderTools.InDetConversionFinderToolsConf import ( + InDet__ConversionFinderUtils) + InDetSecVxHelper = InDet__ConversionFinderUtils( + name=prefix+"FinderUtils") + ToolSvc += InDetSecVxHelper + if (printConfig): + print(InDetSecVxHelper) + # + # --- Track selector tool + # + from InDetTrackSelectorTool.InDetTrackSelectorToolConf import ( + InDet__InDetConversionTrackSelectorTool) + InDetSecVxTrackSelector = InDet__InDetConversionTrackSelectorTool( + name=prefix+"TrackSelector", + TrackSummaryTool=TrackSummaryTool, + Extrapolator=Extrapolator, + maxSiD0=VertexCuts.TrkSel_maxSiD0(), + maxTrtD0=VertexCuts.TrkSel_maxTrtD0(), + maxSiZ0=VertexCuts.TrkSel_maxSiZ0(), + maxTrtZ0=VertexCuts.TrkSel_maxTrtZ0(), + minPt=VertexCuts.TrkSel_minPt(), + RatioCut1=VertexCuts.TrkSel_RatioCut1(), + RatioCut2=VertexCuts.TrkSel_RatioCut2(), + RatioCut3=VertexCuts.TrkSel_RatioCut3(), + RatioTRT=VertexCuts.TrkSel_RatioTRT(), + IsConversion=VertexCuts.TrkSel_IsConversion(), + significanceD0_Si=VertexCuts.TrkSel_significanceD0_Si(), + RatioV0=VertexCuts.TrkSel_RatioV0()) + ToolSvc += InDetSecVxTrackSelector + if (printConfig): + print(InDetSecVxTrackSelector) + # + # Track pairs selector + # + from InDetConversionFinderTools.InDetConversionFinderToolsConf import ( + InDet__TrackPairsSelector) + InDetSecVxTrackPairsSelector = InDet__TrackPairsSelector( + name=prefix+"TrackPairsSelector", + ConversionFinderHelperTool=InDetSecVxHelper, + DistanceTool=InDetSecVxTrkDistanceFinder, + MaxFirstHitRadius=VertexCuts.TrkPairSel_MaxFirstHitRadius(), + MaxDistBetweenTracks=VertexCuts.TrkPairSel_MaxDistBetweenTracks(), + MaxEta=VertexCuts.TrkPairSel_MaxEta(), + MaxInitDistance=VertexCuts.TrkPairSel_MaxInitDistance(), + MinTrackAngle=VertexCuts.TrkPairSel_MinTrackAngle()) + ToolSvc += InDetSecVxTrackPairsSelector + if (printConfig): + print(InDetSecVxTrackPairsSelector) + # + # Vertex point estimator + # + from InDetConversionFinderTools.InDetConversionFinderToolsConf import ( + InDet__VertexPointEstimator) + InDetSecVtxPointEstimator = InDet__VertexPointEstimator( + name=prefix+"PointEstimator", + MinDeltaR=VertexCuts.VtxPt_MinDeltaR(), + MaxDeltaR=VertexCuts.VtxPt_MaxDeltaR(), + MaxPhi=VertexCuts.VtxPt_MaxPhi()) + ToolSvc += InDetSecVtxPointEstimator + if (printConfig): + print(InDetSecVtxPointEstimator) + # + # Secondary Vertex post selector + # + from InDetConversionFinderTools.InDetConversionFinderToolsConf import ( + InDet__ConversionPostSelector) + InDetSecVtxPostSelector = InDet__ConversionPostSelector( + name=prefix+"PostSelector", + MaxChi2Vtx=VertexCuts.SecVtxPost_MaxChi2Vtx(), + MaxInvariantMass=VertexCuts.SecVtxPost_MaxInvariantMass(), + MinFitMomentum=VertexCuts.SecVtxPost_MinFitMomentum(), + MinRadius=VertexCuts.SecVtxPost_MinRadius(), + MinPt=VertexCuts.SecVtxPost_MinPt(), + MaxdR=VertexCuts.SecVtxPost_MaxdR(), + MaxPhiVtxTrk=VertexCuts.SecVtxPost_MaxPhiVtxTrk()) + ToolSvc += InDetSecVtxPostSelector + if (printConfig): + print(InDetSecVtxPostSelector) + # + # Single track secondary vertex tool + # + from InDetConversionFinderTools.InDetConversionFinderToolsConf import ( + InDet__SingleTrackConversionTool) + InDetSingleTrackSecVtx = InDet__SingleTrackConversionTool( + name=prefix+"SingleTrackTool", + ConversionFinderHelperTool=InDetSecVxHelper, + Extrapolator=Extrapolator, + MaxBLayerHits=VertexCuts.SingleTrk_MaxBLayerHits(), + MinInitialHitRadius=VertexCuts.SingleTrk_MinInitialHitRadius(), + MinInitialHitRadius_noBlay=VertexCuts.SingleTrk_MinInitialHitRadius_noBlay(), + MinRatioOfHLhits=VertexCuts.SingleTrk_MinRatioOfHLhits()) + ToolSvc += InDetSingleTrackSecVtx + if (printConfig): + print(InDetSingleTrackSecVtx) + # + # conversion finder tool + # + from InDetConversionFinderTools.InDetConversionFinderToolsConf import ( + InDet__InDetConversionFinderTools) + InDetSecVtxFinderTool = InDet__InDetConversionFinderTools( + name=prefix+"FinderTool", + VertexFitterTool=InDetSecVxFitterTool, + TrackSelectorTool=InDetSecVxTrackSelector, + TrackPairsSelector=InDetSecVxTrackPairsSelector, + VertexPointEstimator=InDetSecVtxPointEstimator, + PostSelector=InDetSecVtxPostSelector, + SingleTrackConversionTool=InDetSingleTrackSecVtx, + Extrapolator=Extrapolator, + TrackParticleCollection=TrackParticles, + RemoveTrtTracks=VertexCuts.Finder_RemoveTrtTracks(), + IsConversion=VertexCuts.Finder_IsConversion(), + MinDistVtxHit=VertexCuts.Finder_MinDistVtxHit(), + MaxDistVtxHit=VertexCuts.Finder_MaxDistVtxHit(), + MinFlightAngle=VertexCuts.Finder_MinFlightAngle(), + MinInitVtxR=VertexCuts.Finder_MinInitVtxR()) + ToolSvc += InDetSecVtxFinderTool + if (printConfig): + print(InDetSecVtxFinderTool) + + # --- remember instances + self.__prefix = prefix + self.__InDetSecVtxFinderTool = InDetSecVtxFinderTool + self.__TrackParticles = TrackParticles + self.__SecVertices = SecVertices + self.__printConfig = printConfig + self.__topSequence = topSequence + + def toolInstance(self): + # + # --- return tool for usage in egamma + # + return self.__InDetSecVtxFinderTool + + def addAlgorithm(self): + # + # --- add driving algorithm of usage in InDet + # + from InDetConversionFinder.InDetConversionFinderConf import ( + InDet__ConversionFinder) + InDetSecVtxFinder = InDet__ConversionFinder( + name=self.__prefix+"Finder", + VertexFinderTool=self.__InDetSecVtxFinderTool, + TracksName=self.__TrackParticles, + InDetConversionOutputName=self.__SecVertices) + self.__topSequence += InDetSecVtxFinder + if (self.__printConfig): + print(InDetSecVtxFinder) diff --git a/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/ConversionPostSelector.h b/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/ConversionPostSelector.h index c6fb2656484..bb4e38c4de8 100644 --- a/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/ConversionPostSelector.h +++ b/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/ConversionPostSelector.h @@ -19,19 +19,19 @@ namespace CLHEP{ } namespace InDet { - + /** @class ConversionPostSelector This class selects tracks for conversion finder @author Tatjana Lenz , Thomas Koffas */ - + class ConversionPostSelector : public AthAlgTool { - + public: ConversionPostSelector (const std::string& type,const std::string& name, const IInterface* parent); virtual ~ConversionPostSelector(); - + static const InterfaceID& interfaceID(); virtual StatusCode initialize() override; virtual StatusCode finalize() override; @@ -55,7 +55,7 @@ namespace InDet { float deltaPhiVtxTrk) const; private: - /** Properties for track selection: + /** Properties for track selection: all cuts are ANDed */ std::vector<double> m_maxChi2; /** Chi2 cut. */ std::vector<double> m_invMassCut; /** Invariant mass cut. */ @@ -66,21 +66,21 @@ namespace InDet { double m_maxPhiVtxTrk;/** Maximum difference in phi between reconstructed vertex and track at vertex. */ bool m_decorateVertices;/** Decorate vertices with values used for vertex selection */ - + /** Masses and mass ranges for different V0 hypotheses */ double m_massK0 ; double m_sigmaK0 ; double m_massLambda ; double m_sigmaLambda ; int m_nsig ; - + /** struct of Particle Masses */ static const Trk::ParticleMasses s_particleMasses; - + /** Compute the four-momentum of a particle according to a mass hypothesis. */ CLHEP::HepLorentzVector fourP(const Trk::TrackParameters&, const Trk::TrackParameters&, double, bool) const; }; - + } -#endif // INDETCONVERSIONFINDERTOOLS_CONVERSIONPOSTSELECTOR_H - +#endif // INDETCONVERSIONFINDERTOOLS_CONVERSIONPOSTSELECTOR_H + diff --git a/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/SingleTrackConversionTool.h b/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/SingleTrackConversionTool.h index 89adfbb309f..31a7e6465df 100644 --- a/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/SingleTrackConversionTool.h +++ b/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/SingleTrackConversionTool.h @@ -11,56 +11,70 @@ #include "xAODTracking/TrackParticleFwd.h" #include "xAODTracking/VertexContainerFwd.h" -namespace Trk -{ - class Track; - class TrackParticleBase; - class ITrackSummaryTool; - class IExtrapolator; +namespace Trk { +class Track; +class TrackParticleBase; +class ITrackSummaryTool; +class IExtrapolator; } namespace InDet { - class ConversionFinderUtils; - - /** - @class SingleTrackConversionTool - Helper tools to reconstruct single track conversions - @author Tatjana Lenz , Thomas Koffas - */ - - class SingleTrackConversionTool : public AthAlgTool { - - public: - SingleTrackConversionTool (const std::string& type,const std::string& name, const IInterface* parent); - virtual ~SingleTrackConversionTool(); - - static const InterfaceID& interfaceID(); - virtual StatusCode initialize() override; - virtual StatusCode finalize() override; - - /** Build single track conversion candidate. Trk::Track interface. */ - xAOD::Vertex* buildSingleTrackConversion(const Trk::Track* track) const; - /** Select single track conversion candidates. Trk::Track interface. */ - bool selectSingleTrackConversion(const Trk::Track* track) const; - /** Build single track conversion candidate. xAOD::TrackParticle interface. */ - xAOD::Vertex* buildSingleTrackParticleConversion( - const xAOD::TrackParticle*, - xAOD::VertexContainer* container) const; - /** Select single track conversion candidates. xAOD::TrackParticle. */ - bool selectSingleTrackParticleConversion(const xAOD::TrackParticle*) const; - - protected: - ToolHandle <InDet::ConversionFinderUtils> m_helpertool; /** Conversion helper tool. */ - ToolHandle <Trk::ITrackSummaryTool> m_trkSumTool; /** Track summary tool. */ - ToolHandle<Trk::IExtrapolator> m_extrapolator; //!< Track extrapolator tool. - double m_minInitR; /** Minimum initial hit radius in order to consider track as coming from photon conversion */ - double m_minInitR_noBLay; /** Minimum initial hit radius in order to consider track as coming from photon conversion */ - double m_singleThreshold; /** Minimum ratio of HL hits for a track to be labeled as electron */ - int m_maxBLhits; /** Maximum number of blayer hits */ - //double m_maxPhiVtxTrk; /** maximum difference in pointing */ - bool m_PIDonlyForXe; /** Only check TRT PID if all hits are Xe hits */ +class ConversionFinderUtils; + +/** + @class SingleTrackConversionTool + Helper tools to reconstruct single track conversions + @author Tatjana Lenz , Thomas Koffas +*/ + +class SingleTrackConversionTool : public AthAlgTool +{ + +public: + SingleTrackConversionTool(const std::string& type, + const std::string& name, + const IInterface* parent); + virtual ~SingleTrackConversionTool(); + + static const InterfaceID& interfaceID(); + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; + + /** Build single track conversion candidate. Trk::Track interface. */ + xAOD::Vertex* buildSingleTrackConversion(const Trk::Track* track) const; + /** Select single track conversion candidates. Trk::Track interface. */ + bool selectSingleTrackConversion(const Trk::Track* track) const; + /** Build single track conversion candidate. xAOD::TrackParticle interface. */ + xAOD::Vertex* buildSingleTrackParticleConversion( + const xAOD::TrackParticle*, + xAOD::VertexContainer* container) const; + /** Select single track conversion candidates. xAOD::TrackParticle. */ + bool selectSingleTrackParticleConversion(const xAOD::TrackParticle*) const; + +protected: + /** Conversion helper tool. */ + ToolHandle<InDet::ConversionFinderUtils> m_helpertool{ + this, + "ConversionFinderHelperTool", + "InDet::ConversionFinderUtils", + "Helper for conversion finding" }; - + //!< Track extrapolator tool. + ToolHandle<Trk::IExtrapolator> m_extrapolator{ this, + "Extrapolator", + "", + "Track Extrapolator Tool" }; + double m_minInitR; /** Minimum initial hit radius in order to consider track + as coming from photon conversion */ + double m_minInitR_noBLay; /** Minimum initial hit radius in order to consider + track as coming from photon conversion */ + double m_singleThreshold; /** Minimum ratio of HL hits for a track to be + labeled as electron */ + int m_maxBLhits; /** Maximum number of blayer hits */ + // double m_maxPhiVtxTrk; /** maximum difference in pointing */ + bool m_PIDonlyForXe; /** Only check TRT PID if all hits are Xe hits */ +}; + } -#endif // INDETCONVERSIONFINDERTOOLS_SINGLETRACKCONVERSION_H - +#endif // INDETCONVERSIONFINDERTOOLS_SINGLETRACKCONVERSION_H + diff --git a/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/TrackPairsSelector.h b/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/TrackPairsSelector.h index 4be35614b20..5d105a226b2 100644 --- a/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/TrackPairsSelector.h +++ b/InnerDetector/InDetRecTools/InDetConversionFinderTools/InDetConversionFinderTools/TrackPairsSelector.h @@ -7,75 +7,89 @@ #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ToolHandle.h" +#include "InDetConversionFinderTools/ConversionFinderUtils.h" #include "Particle/TrackParticle.h" - +#include "TrkVertexSeedFinderUtils/ITrkDistanceFinder.h" #include "xAODTracking/TrackParticleFwd.h" +namespace Trk { +class Track; +} -namespace Trk +namespace InDet { +/** + @class TrackPairsSelector + This class selects track pairs for conversion finder + @author Tatjana Lenz, Thomas Koffas +*/ + +class TrackPairsSelector : public AthAlgTool { - class Track; - class ITrkDistanceFinder; -} +public: + struct Cache + { + /** Distance of closest approach between the tracks **/ + float m_distance = 9999.; + /** Delta cot theta between the tracks **/ + float m_deltaCotTheta = 9999.; + /** Distance difference between initial hits of tracks */ + float m_deltaInit = 9999.; + }; + TrackPairsSelector(const std::string& type, + const std::string& name, + const IInterface* parent); -namespace InDet { - class ConversionFinderUtils; - - /** - @class TrackPairsSelector - This class selects track pairs for conversion finder - @author Tatjana Lenz, Thomas Koffas - */ - - class TrackPairsSelector : public AthAlgTool { - - public: - - struct Cache{ - float m_distance = 9999. ; /** Distance of closest approach between the tracks **/ - float m_deltaCotTheta= 9999.; /** Delta cot theta between the tracks **/ - float m_deltaInit = 9999.; /** Distance difference between initial hits of tracks */ - }; - - TrackPairsSelector(const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual ~TrackPairsSelector(); - - static const InterfaceID& interfaceID(); - - virtual StatusCode initialize() override; - virtual StatusCode finalize() override; - - /** Track pair selectors.Return true if the argument track fulfills the selection */ - bool selectTrackParticlePair(const xAOD::TrackParticle* trkPpos, - const xAOD::TrackParticle* trkPneg, - Cache& cache) const; - - bool selectTrackPair(const Trk::Track* trkpos, - const Trk::Track* trkneg) const; - - /** Return a map with the values calculated for the last pair - * to decorate the vertex once it is created **/ - std::map<std::string, float> getLastValues(const Cache& cache) const; - - private: - - ToolHandle <InDet::ConversionFinderUtils> m_helpertool; /**Conversion helper tool. */ - ToolHandle<Trk::ITrkDistanceFinder> m_distanceTool; /** Distance of minimum approach tool */ - /** Properties for track selection: all cuts are ANDed */ - double m_maxR; /** Maximum initial hit radius in order to apply the impact point cut*/ - double m_MinTrkAngle; /** Minimum allowed angle between decay tracks. Used only in V0 reconstruction. */ - std::vector<double> m_maxDist; /** Maximum allowed distance of minimum approach */ - std::vector<double> m_etaCut; /** Maximum eta difference between tracks in pair. */ - std::vector<double> m_initCut; /** Maximum distance difference between initial hits of tracks in pair. */ + virtual ~TrackPairsSelector(); + + static const InterfaceID& interfaceID(); + + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; + /** Track pair selectors.Return true if the argument track fulfills the + * selection */ + bool selectTrackParticlePair(const xAOD::TrackParticle* trkPpos, + const xAOD::TrackParticle* trkPneg, + Cache& cache) const; + bool selectTrackPair(const Trk::Track* trkpos, + const Trk::Track* trkneg) const; + + /** Return a map with the values calculated for the last pair + * to decorate the vertex once it is created **/ + std::map<std::string, float> getLastValues(const Cache& cache) const; + +private: + /**Conversion helper tool. */ + ToolHandle<InDet::ConversionFinderUtils> m_helpertool{ + this, + "ConversionFinderHelperTool", + "InDet::ConversionFinderUtils", + "Conversion helper tool" + }; + /** Distance of minimum approach tool */ + ToolHandle<Trk::ITrkDistanceFinder> m_distanceTool{ + this, + "DistanceTool", + "Trk::SeedNewtonDistanceFinder", + "Distance of minimum approach tool" }; - + /** Properties for track selection: all cuts are ANDed */ + + /** Maximum initial hit radius in order to apply the impact point cut*/ + double m_maxR; + /** Minimum allowed angle between decay tracks. Used only in V0 + * reconstruction. */ + double m_MinTrkAngle; + /** Maximum allowed distance of minimum approach */ + std::vector<double> m_maxDist; + /** Maximum eta difference between tracks in pair. */ + std::vector<double> m_etaCut; + /** Maximum distance difference between initial hits of tracks in pair. */ + std::vector<double> m_initCut; +}; } -#endif // INDETCONVERSIONFINDERTOOLS_TRACKPAIRSSELECTOR_H +#endif // INDETCONVERSIONFINDERTOOLS_TRACKPAIRSSELECTOR_H diff --git a/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/SingleTrackConversionTool.cxx b/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/SingleTrackConversionTool.cxx index dc869c936c8..b6c9dcd9590 100644 --- a/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/SingleTrackConversionTool.cxx +++ b/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/SingleTrackConversionTool.cxx @@ -40,7 +40,7 @@ namespace InDet { // athena interface definition // ------------------------------------------------------- static const InterfaceID IID_ISingleTrackConversionTool("InDet::SingleTrackConversionTool", 1, 0); - + // ------------------------------------------------------- // constructor // ------------------------------------------------------- @@ -48,9 +48,6 @@ namespace InDet { const std::string& name, const IInterface* parent) : AthAlgTool(type, name, parent) - , m_helpertool("InDet::ConversionFinderUtils") - , m_trkSumTool("Trk::TrackSummaryTool") - , m_extrapolator("Trk::Extrapolator/InDetExtrapolator") , m_minInitR(70.) , m_minInitR_noBLay(120.) , m_singleThreshold(0.1) @@ -58,9 +55,6 @@ namespace InDet { // m_maxPhiVtxTrk(0.2) { declareInterface<SingleTrackConversionTool>(this); - declareProperty("ConversionFinderHelperTool" , m_helpertool); - declareProperty("TrackSummaryTool" , m_trkSumTool); - declareProperty("Extrapolator" , m_extrapolator ); //Extrapolator tool declareProperty("MinInitialHitRadius" , m_minInitR); declareProperty("MinInitialHitRadius_noBlay" , m_minInitR_noBLay); declareProperty("MinRatioOfHLhits" , m_singleThreshold); @@ -69,7 +63,7 @@ namespace InDet { declareProperty("PIDonlyForXe" , m_PIDonlyForXe = false, "Only check TRT PID if all hits are Xe hits"); } - + // ------------------------------------------------------- // destructor // ------------------------------------------------------- @@ -91,17 +85,9 @@ namespace InDet { if ( m_helpertool.retrieve().isFailure() ) { ATH_MSG_FATAL("Failed to retrieve tool " << m_helpertool); return StatusCode::FAILURE; - } + } ATH_MSG_INFO("Retrieved tool " << m_helpertool); - - - /* Get the track summary tool from ToolSvc */ - if ( m_trkSumTool.retrieve().isFailure() ) { - ATH_MSG_FATAL("Failed to retrieve tool " << m_trkSumTool); - return StatusCode::FAILURE; - } - ATH_MSG_INFO("Retrieved tool " << m_trkSumTool); - + /* Get the extrapolator */ if (m_extrapolator.retrieve().isFailure()) { @@ -109,11 +95,11 @@ namespace InDet { return StatusCode::FAILURE; } ATH_MSG_INFO("Retrieved tool " << m_extrapolator); - - + + return StatusCode::SUCCESS; } - + // ------------------------------------------------------- // finalize method // ------------------------------------------------------- @@ -128,33 +114,33 @@ namespace InDet { SingleTrackConversionTool::buildSingleTrackConversion( const Trk::Track* track) const { - + // some local variables const Trk::TrackParameters* tp = nullptr; AmgSymMatrix(5) em ; em.setZero(); - Amg::Vector3D gp ; - gp.setZero(); + Amg::Vector3D gp ; + gp.setZero(); // double chi2 = 0.; int Ndf = 0; - + // get track states on surface const DataVector<const Trk::TrackStateOnSurface>* tsos = track->trackStateOnSurfaces(); if(!tsos) return nullptr; - + // iterate over them DataVector<const Trk::TrackStateOnSurface>::const_iterator its,itse = tsos->end(); for(its=tsos->begin();its!=itse;++its) { - + // check if this is the first measurement if((*its)->type(Trk::TrackStateOnSurface::Measurement)) { - + // get the parameters at this surface tp = (*its)->trackParameters(); if(!tp) { ATH_MSG_WARNING ("Require parameters at first measurement, conversion finder logic broken"); return nullptr; } - + em = *(tp->covariance()); gp = (tp->position()); break; @@ -164,65 +150,65 @@ namespace InDet { if(!tp) { return nullptr; } - + // // --- Need to compute a global position covariance matrix as J.C.JT // // get transform const Amg::Transform3D T( tp->associatedSurface().transform()); - + // this will be the new transform AmgSymMatrix(3) nCovVtx; - + // ME: use the surface to find out what we do, do not hardcode the geoemtry - + if ( Trk::Surface::Plane == tp->associatedSurface().type() ){ - + ///The local position parameters covariance matrix C (2x2) double p11 = em(Trk::locX, Trk::locX); double p12 = em(Trk::locX, Trk::locY); double p21 = em(Trk::locY, Trk::locX); double p22 = em(Trk::locY, Trk::locY); - + ///The Jacobian matrix J (3x2) double Ax[3] = {T(0,0),T(1,0),T(2,0)}; double Ay[3] = {T(0,1),T(1,1),T(2,1)}; double a11 = Ax[0]; double a12 = Ay[0]; double a21 = Ax[1]; double a22 = Ay[1]; double a31 = Ax[2]; double a32 = Ay[2]; - + ///The A = J.C (3x2) double A11 = a11*p11 + a12*p21; double A12 = a11*p12 + a12*p22; double A21 = a21*p11 + a22*p21; double A22 = a21*p12 + a22*p22; double A31 = a31*p11 + a32*p21; double A32 = a31*p12 + a32*p22; - + ///The A.JT = J.C.JT (3x3) double P11 = a11*A11 + A12*a12; double P12 = A11*a21 + A12*a22; double P13 = A11*a31 + A12*a32; double P21 = A21*a11 + A22*a12; double P22 = A21*a21 + A22*a22; double P23 = A21*a31 + A22*a32; double P31 = A31*a11 + A32*a12; double P32 = A31*a21 + A32*a22; double P33 = A31*a31 + A32*a32; - + ///Construct the new covariance matrix (3x3) nCovVtx(0,0) = P11; nCovVtx(0,1) = P12; nCovVtx(0,2) = P13; nCovVtx(1,0) = P21; nCovVtx(1,1) = P22; nCovVtx(1,2) = P23; - nCovVtx(2,0) = P31; nCovVtx(2,1) = P32; nCovVtx(2,2) = P33; - } + nCovVtx(2,0) = P31; nCovVtx(2,1) = P32; nCovVtx(2,2) = P33; + } else if ( Trk::Surface::Line == tp->associatedSurface().type() ) { - + //The local position parameters covariance matrix C (2x2) double p11 = em(Trk::locR, Trk::locR); double p12 = em(Trk::locR, Trk::locZ); double p21 = em(Trk::locZ, Trk::locR); double p22 = em(Trk::locZ, Trk::locZ); - + ///The straight line surface (wire) global directions double A[3] = {T(0,2),T(1,2),T(2,2)}; - + ///The particle global direction double Px = tp->momentum().x(); double Py = tp->momentum().y(); double Pz = tp->momentum().z(); - + ///The Jacobian matrix J (3x2) double Bx = A[1]*Pz-A[2]*Py; double By = A[2]*Px-A[0]*Pz; @@ -231,25 +217,25 @@ namespace InDet { double a11 = Bx; double a12 = A[0]; double a21 = By; double a22 = A[1]; double a31 = Bz; double a32 = A[2]; - + ///The A = J.C (3x2) double A11 = a11*p11 + a12*p21; double A12 = a11*p12 + a12*p22; double A21 = a21*p11 + a22*p21; double A22 = a21*p12 + a22*p22; double A31 = a31*p11 + a32*p21; double A32 = a31*p12 + a32*p22; - + ///The A.JT = J.C.JT (3x3) double P11 = a11*A11 + A12*a12; double P12 = A11*a21 + A12*a22; double P13 = A11*a31 + A12*a32; double P21 = A21*a11 + A22*a12; double P22 = A21*a21 + A22*a22; double P23 = A21*a31 + A22*a32; double P31 = A31*a11 + A32*a12; double P32 = A31*a21 + A32*a22; double P33 = A31*a31 + A32*a32; - + ///Construct the new covariance matrix (3x3) nCovVtx(0,0) = P11; nCovVtx(0,1) = P12; nCovVtx(0,2) = P13; nCovVtx(1,0) = P21; nCovVtx(1,1) = P22; nCovVtx(1,2) = P23; nCovVtx(2,0) = P31; nCovVtx(2,1) = P32; nCovVtx(2,2) = P33; - } + } else { ATH_MSG_ERROR ("Wrong type of surface, not supported !"); - return nullptr; + return nullptr; } // Create the corresponding vector of tracks at that RecVertex. Contains one @@ -269,13 +255,13 @@ namespace InDet { Trk::TrackParameters* pp = perpar->clone(); delete perpar; Trk::VxTrackAtVertex trkV(1., pp); - + Trk::LinkToTrack * linkTT = new Trk::LinkToTrack(); linkTT->setElement(track); trkV.setOrigTrack(linkTT); tmpVTAV.push_back(trkV); - + xAOD::Vertex* vertex = new xAOD::Vertex(); vertex->makePrivateStore(); vertex->setPosition(gp); @@ -287,7 +273,7 @@ namespace InDet { vertex->vxTrackAtVertex().push_back(vtxTrack); } - return vertex; + return vertex; } // ------------------------------------------------------- @@ -441,12 +427,12 @@ namespace InDet { ///The straight line surface (wire) global directions double A[3] = {T(0,2),T(1,2),T(2,2)}; - + ///The particle global direction double Px = trkPar.momentum().x(); double Py = trkPar.momentum().y(); double Pz = trkPar.momentum().z(); - + ///The Jacobian matrix J (3x2) double Bx = A[1]*Pz-A[2]*Py; double By = A[2]*Px-A[0]*Pz; @@ -455,17 +441,17 @@ namespace InDet { double a11 = Bx; double a12 = A[0]; double a21 = By; double a22 = A[1]; double a31 = Bz; double a32 = A[2]; - + ///The A = J.C (3x2) double A11 = a11*p11 + a12*p21; double A12 = a11*p12 + a12*p22; double A21 = a21*p11 + a22*p21; double A22 = a21*p12 + a22*p22; double A31 = a31*p11 + a32*p21; double A32 = a31*p12 + a32*p22; - + ///The A.JT = J.C.JT (3x3) double P11 = a11*A11 + A12*a12; double P12 = A11*a21 + A12*a22; double P13 = A11*a31 + A12*a32; double P21 = A21*a11 + A22*a12; double P22 = A21*a21 + A22*a22; double P23 = A21*a31 + A22*a32; double P31 = A31*a11 + A32*a12; double P32 = A31*a21 + A32*a22; double P33 = A31*a31 + A32*a32; - + ///Construct the new covariance matrix (3x3) nCovVtx(0,0) = P11; nCovVtx(0,1) = P12; nCovVtx(0,2) = P13; nCovVtx(1,0) = P21; nCovVtx(1,1) = P22; nCovVtx(1,2) = P23; @@ -473,8 +459,8 @@ namespace InDet { } // now construct the vertex from the global position, cov. put NdF and chi2 to zero (Markus) - - + + xAOD::Vertex* vertex = new xAOD::Vertex(); container->push_back( vertex ); @@ -482,7 +468,7 @@ namespace InDet { vertex->setCovariancePosition(nCovVtx); vertex->setVertexType(xAOD::VxType::ConvVtx); vertex->setFitQuality( 0, 0); - + return vertex; } @@ -490,9 +476,9 @@ namespace InDet { // preselection cuts on track particles // ------------------------------------------------------- bool SingleTrackConversionTool::selectSingleTrackParticleConversion(const xAOD::TrackParticle* track) const{ - + //Position of first hit in track particle - + int index(-1); for(unsigned int i(0); i< track->numberOfParameters() ; ++i ){ if( xAOD::FirstMeasurement == track->parameterPosition(i) ){ @@ -504,55 +490,55 @@ namespace InDet { ATH_MSG_WARNING("Track Particle does not contain first Measurement track parameters"); return false; } - + const Trk::CurvilinearParameters trk_meas = track->curvilinearParameters(index); - + uint8_t dummy; - uint8_t expectedHitInBLayer(0); + uint8_t expectedHitInBLayer(0); if( track->summaryValue(dummy,xAOD::expectInnermostPixelLayerHit) ) expectedHitInBLayer = dummy; - float Rfirst = trk_meas.position().perp(); - if (expectedHitInBLayer) + float Rfirst = trk_meas.position().perp(); + if (expectedHitInBLayer) { // ME: cut on minInitR if blayer is ok - if (Rfirst < m_minInitR) + if (Rfirst < m_minInitR) { - ATH_MSG_DEBUG("BLayer hit expected. Radius of first hit (" << + ATH_MSG_DEBUG("BLayer hit expected. Radius of first hit (" << Rfirst << ") below minimum: " << m_minInitR); return false; } - } - else + } + else { // ME: cut on minInitR_NBLay if blayer is off if(Rfirst < m_minInitR_noBLay) { - ATH_MSG_DEBUG("No BLayer hit expected. Radius of first hit (" << + ATH_MSG_DEBUG("No BLayer hit expected. Radius of first hit (" << Rfirst << ") below minimum: " << m_minInitR_noBLay); return false; } } - uint8_t nTrtHits(0); + uint8_t nTrtHits(0); if( track->summaryValue(dummy, xAOD::numberOfTRTHits)) nTrtHits = dummy; - - uint8_t nTrtOutliers(0); + + uint8_t nTrtOutliers(0); if(track->summaryValue(dummy, xAOD::numberOfTRTOutliers)) nTrtOutliers = dummy; - + uint8_t ntrt = nTrtHits + nTrtOutliers; - + uint8_t nTrtXenonHits(0); if( track->summaryValue(dummy, xAOD::numberOfTRTXenonHits) ) nTrtXenonHits = dummy; - - - if(ntrt > 0 && (!m_PIDonlyForXe || nTrtXenonHits==ntrt) ) { + + + if(ntrt > 0 && (!m_PIDonlyForXe || nTrtXenonHits==ntrt) ) { // only check TRT PID if m_PIDonlyForXe is false or all TRT hits are Xenon hits float prob = 1.0; if( !track->summaryValue(prob,xAOD::eProbabilityHT) ) @@ -562,7 +548,7 @@ namespace InDet { } if (prob < m_singleThreshold) { - ATH_MSG_DEBUG("Probability (" << prob << ") below threshold: " + ATH_MSG_DEBUG("Probability (" << prob << ") below threshold: " << m_singleThreshold); return false; } @@ -573,7 +559,7 @@ namespace InDet { nBLHits += dummy; if( track->summaryValue(dummy, xAOD::numberOfInnermostPixelLayerOutliers)) nBLHits += dummy; - if(nBLHits > m_maxBLhits) + if(nBLHits > m_maxBLhits) { ATH_MSG_DEBUG("BLayer hits (" << nBLHits << ") above maximum: " << m_maxBLhits); return false; diff --git a/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/TrackPairsSelector.cxx b/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/TrackPairsSelector.cxx index cfe1dfde49c..4a2811624bf 100644 --- a/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/TrackPairsSelector.cxx +++ b/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/TrackPairsSelector.cxx @@ -11,8 +11,6 @@ changes : M.Elsing ***************************************************************************/ #include "InDetConversionFinderTools/TrackPairsSelector.h" -#include "InDetConversionFinderTools/ConversionFinderUtils.h" -#include "TrkVertexSeedFinderUtils/ITrkDistanceFinder.h" #include "TrkMeasurementBase/MeasurementBase.h" #include "GeoPrimitives/GeoPrimitivesHelpers.h" @@ -43,27 +41,22 @@ namespace InDet { const std::string& name, const IInterface* parent) : AthAlgTool(type, name, parent) - , m_helpertool("InDet::ConversionFinderUtils") - , m_distanceTool( - "Trk::SeedNewtonDistanceFinder/InDetConversionTrkDistanceFinder") , m_maxR(500.) , m_MinTrkAngle(0.) { m_etaCut.push_back(0.8); m_etaCut.push_back(1.2); m_etaCut.push_back(1.2); - + m_initCut.push_back(10000.); m_initCut.push_back(10000.); m_initCut.push_back(10000.); - + m_maxDist.push_back(8.); m_maxDist.push_back(80.); m_maxDist.push_back(45.); declareInterface<TrackPairsSelector>(this); - declareProperty("ConversionFinderHelperTool", m_helpertool); - declareProperty("DistanceTool" , m_distanceTool); declareProperty("MaxFirstHitRadius" , m_maxR); declareProperty("MaxDistBetweenTracks" , m_maxDist); declareProperty("MaxEta" , m_etaCut ); @@ -86,20 +79,20 @@ namespace InDet { if ( m_helpertool.retrieve().isFailure() ) { msg(MSG::ERROR) << "Failed to retrieve tool " << m_helpertool << endmsg; return StatusCode::FAILURE; - } + } msg(MSG::INFO) << "Retrieved tool " << m_helpertool << endmsg; - + /* Get the distance tool from ToolsSvc */ if(m_distanceTool.retrieve().isFailure()) { msg(MSG::ERROR) << "Could not get " << m_distanceTool << endmsg; return StatusCode::FAILURE; } msg(MSG::INFO) << "Got the distance tool " << m_distanceTool << endmsg; - + msg(MSG::INFO) << "Initialization successful" << endmsg; return StatusCode::SUCCESS; } - + // ------------------------------------------------------------- StatusCode TrackPairsSelector::finalize() { return StatusCode::SUCCESS; @@ -118,36 +111,36 @@ namespace InDet { const Trk::TrackParameters* perPos = &(trkPpos->perigeeParameters()); const Trk::TrackParameters* perNeg = &(trkPneg->perigeeParameters()); if (!(m_helpertool->momFraction(perPos, perNeg))) pass = false; - + //Track summary information - - + + uint8_t nclusPos(0); uint8_t dummy(0); if(trkPpos->summaryValue(dummy,xAOD::numberOfSCTHits)){ nclusPos += dummy; - } + } if(trkPpos->summaryValue(dummy,xAOD::numberOfPixelHits)){ nclusPos += dummy; - } - + } + uint8_t nclusNeg(0); if(trkPneg->summaryValue(dummy,xAOD::numberOfSCTHits)){ nclusNeg += dummy; - } + } if(trkPneg->summaryValue(dummy,xAOD::numberOfPixelHits)){ nclusNeg += dummy; - } - - + } + + int sCase = 100; if(nclusNeg>0 && nclusPos>0) sCase = 0; if((nclusNeg>0 && nclusPos==0) || (nclusNeg==0 && nclusPos>0)) sCase = 1; if(nclusNeg==0 && nclusPos==0) sCase = 2; - + //Position of first hit in track particle - Trk::CurvilinearParameters parPos; - Trk::CurvilinearParameters parNeg; + Trk::CurvilinearParameters parPos; + Trk::CurvilinearParameters parNeg; int index(-1); for(unsigned int i(0); i< trkPpos->numberOfParameters() ; ++i ){ @@ -162,7 +155,7 @@ namespace InDet { ATH_MSG_WARNING("Track Particle does not contain first Measurement track parameters"); return false; } - + index = -1; for(unsigned int i(0); i< trkPneg->numberOfParameters() ; ++i ){ if( xAOD::FirstMeasurement == trkPneg->parameterPosition(i) ){ @@ -205,10 +198,10 @@ namespace InDet { } else if(sCase == 2) { dinit = m_initCut[2]; } - + cache.m_deltaInit = fabs(firstRpos - firstRneg); if (cache.m_deltaInit > dinit) return false; - + //Cut on distance of minimum approach between the two tracks. double maxDist = 1000.; if(sCase == 0) { @@ -226,12 +219,12 @@ namespace InDet { if (!result) return false; cache.m_distance = dist (result.value()); if (cache.m_distance>maxDist) return false; - + //3D angle cut in the case of V0s, not used in the case of conversions double d_beta = (perPos->momentum().dot(perNeg->momentum())) / (perPos->momentum().mag() * perNeg->momentum().mag()); if(d_beta <m_MinTrkAngle) pass = false; - + return pass; } @@ -246,7 +239,7 @@ namespace InDet { const Trk::Perigee* perPos = trkpos->perigeeParameters(); const Trk::Perigee* perNeg = trkneg->perigeeParameters(); if (!(m_helpertool->momFraction(perPos, perNeg))) pass = false; - + ///Position of initial hit of the two tracks double init_pos = 0.; double init_neg = 0.; const DataVector<const Trk::MeasurementBase>* mb_pos = trkpos->measurementsOnTrack(); @@ -260,7 +253,7 @@ namespace InDet { if (init_neg<=m_maxR && init_pos<=m_maxR) sCase = 0; if ((init_neg<=m_maxR && init_pos>m_maxR) || (init_neg>m_maxR && init_pos<=m_maxR)) sCase = 1; if (init_neg>m_maxR && init_pos>m_maxR) sCase = 2; - + //Cut on Deta double detaCut = 0.0; if(sCase == 0) { @@ -306,12 +299,12 @@ namespace InDet { newDistance = dist (result.value()); if (newDistance>maxDist) pass = false; } - + //3D angle cut in the case of V0s, not used in the case of conversions double d_beta = (perPos->momentum().dot(perNeg->momentum())) / (perPos->momentum().mag() * perNeg->momentum().mag()); if(d_beta <m_MinTrkAngle) pass = false; - + return pass; } -- GitLab From 1af3947920207e5acbb28587ac2a107a2b07395f Mon Sep 17 00:00:00 2001 From: Nils Krumnack <krumnack@iastate.edu> Date: Fri, 24 Jul 2020 14:30:55 -0500 Subject: [PATCH 140/459] fix include guard --- .../AsgExampleTools/AsgExampleTools/DataHandleTestTool.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/DataHandleTestTool.h b/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/DataHandleTestTool.h index 401eed879e3..cf592fab88e 100644 --- a/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/DataHandleTestTool.h +++ b/Control/AthToolSupport/AsgExampleTools/AsgExampleTools/DataHandleTestTool.h @@ -6,8 +6,8 @@ -#ifndef ASG_TOOLS__UNIT_TEST_TOOL1_H -#define ASG_TOOLS__UNIT_TEST_TOOL1_H +#ifndef ASG_TOOLS__DATA_HANDLES_TEST_TOOL_H +#define ASG_TOOLS__DATA_HANDLES_TEST_TOOL_H #include <AsgTools/AsgTool.h> #include <AsgExampleTools/IDataHandleTestTool.h> -- GitLab From c75726c22d9bba381c31a65be625224122117461 Mon Sep 17 00:00:00 2001 From: schaffer <R.D.Schaffer@cern.ch> Date: Fri, 24 Jul 2020 22:52:46 +0200 Subject: [PATCH 141/459] removed some commented lines --- .../G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py index af73486ec01..27b66102a8b 100644 --- a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py +++ b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py @@ -161,8 +161,6 @@ def getTB_RegionCreatorList(): ######################################################################### def getStandardFieldSvc(name="StandardField", **kwargs): - # import MagFieldServices.SetupField # noqa: F401 - # kwargs.setdefault("MagneticFieldSvc", "AtlasFieldSvc") # TODO This should probably be based on simFlags.MagneticField? #kwargs.setdefault("FieldOn", True) return CfgMgr.StandardFieldSvc(name, **kwargs) -- GitLab From 72d380dfc622c5a3e69a343fd53490a43b0fa74e Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Fri, 24 Jul 2020 22:31:22 +0100 Subject: [PATCH 142/459] fix compilation issues --- .../InDetV0Finder/InDetV0FinderTool.h | 19 +++++++++---------- .../InDetConversionFinderTools/CMakeLists.txt | 7 +++++-- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/InnerDetector/InDetRecAlgs/InDetV0Finder/InDetV0Finder/InDetV0FinderTool.h b/InnerDetector/InDetRecAlgs/InDetV0Finder/InDetV0Finder/InDetV0FinderTool.h index eca1a31d74d..02a342a7844 100755 --- a/InnerDetector/InDetRecAlgs/InDetV0Finder/InDetV0Finder/InDetV0FinderTool.h +++ b/InnerDetector/InDetRecAlgs/InDetV0Finder/InDetV0Finder/InDetV0FinderTool.h @@ -17,9 +17,8 @@ #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ToolHandle.h" -#include "InDetConversionFinderTools/InDetConversionFinderTools.h" //why needed? #include "AthContainers/DataVector.h" -#include "xAODTracking/VertexContainerFwd.h" +#include "xAODTracking/VertexContainer.h" #include "xAODTracking/VertexAuxContainer.h" #include "xAODTracking/TrackParticleContainer.h" #include "StoreGate/WriteDecorHandleKey.h" @@ -45,17 +44,17 @@ uksmin < m(pipi) < uksmax or ulamin < m(ppi) < ulamax or ulamin < m(pip) < ulamax V0s are kept if the cumulative chi2 probability of the unconstrained fit is > minVertProb (= 0.0001) - + If doSimpleV0 = True all vertices that pass these cuts are stored in V0UnconstrVertices. If doSimpleV0 = False (default) mass constrained fits are attempted if - the invariant mass of the unconstrained V0 is in the allowed range: ksmin < m(pipi) < ksmax, lamin < m(ppi), m(pip) < lamax and the error on the invariant mass is < errmass (= 100 MeV) - - if an input vertex (collection) is provided the unconstrained V0 is required to + - if an input vertex (collection) is provided the unconstrained V0 is required to have an impact parameter w.r.t the vertex < vert_a0xy_cut (= 3 mm) in xy and < vert_a0z_cut (= 15 mm) in z, the cosine of the angle between the V0 momentum and - the direction from the input vertex to the V0 vertex is > 0, + the direction from the input vertex to the V0 vertex is > 0, Lxy w.r.t the vertex is < vert_lxy_cut (= 500 mm) and Lxy/sigma(Lxy) > vert_lxy_sig (= 2) Mass constrainedV0s are kept if the cumulative chi2 probability of the fit is > minVertProb (= 0.0001) @@ -108,14 +107,14 @@ namespace InDet xAOD::VertexContainer*& ksContainer, xAOD::VertexAuxContainer*& ksAuxContainer, xAOD::VertexContainer*& laContainer, xAOD::VertexAuxContainer*& laAuxContainer, xAOD::VertexContainer*& lbContainer, xAOD::VertexAuxContainer*& lbAuxContainer, - const xAOD::Vertex* vertex, + const xAOD::Vertex* vertex, // AthenaMT migration: passing the vertex collection name at run-time is not supported SG::ReadHandle<xAOD::VertexContainer> vertColl ); //protected: private: - SG::ReadHandleKey<xAOD::TrackParticleContainer> m_trackParticleKey { this, "TrackParticleCollection", "InDetTrackParticles", + SG::ReadHandleKey<xAOD::TrackParticleContainer> m_trackParticleKey { this, "TrackParticleCollection", "InDetTrackParticles", "key for retrieval of TrackParticles" }; ToolHandle < Trk::IVertexFitter > m_iVertexFitter; @@ -165,7 +164,7 @@ namespace InDet double m_vert_lxy_cut; //!< V0 lxy V0 lxy (<500.) double m_vert_a0xy_cut; //!< V0 |a0xy| wrt a vertex (<3.) double m_vert_a0z_cut; //!< V0 |a0z| wrt a vertex (<15.) - + unsigned int m_events_processed; unsigned int m_V0s_stored; unsigned int m_Kshort_stored; @@ -191,7 +190,7 @@ namespace InDet xAOD::Vertex* massFit(int pdgID, std::vector<const xAOD::TrackParticle*> pairV0, Amg::Vector3D vertex, Trk::TrkV0VertexFitter* concreteVertexFitter); - SG::ReadHandleKey<xAOD::VertexContainer> m_vertexKey { this, "VertexContainer", "PrimaryVertices", + SG::ReadHandleKey<xAOD::VertexContainer> m_vertexKey { this, "VertexContainer", "PrimaryVertices", "primary vertex container" }; SG::WriteDecorHandleKey<xAOD::VertexContainer> m_v0LinksDecorkey; SG::WriteDecorHandleKey<xAOD::VertexContainer> m_v0_ksLinksDecorkey; @@ -202,7 +201,7 @@ namespace InDet SG::WriteDecorHandleKey<xAOD::VertexContainer> m_mDecor_gmass; SG::WriteDecorHandleKey<xAOD::VertexContainer> m_mDecor_gmasserr; SG::WriteDecorHandleKey<xAOD::VertexContainer> m_mDecor_gprob; - + SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }; diff --git a/InnerDetector/InDetRecTools/InDetConversionFinderTools/CMakeLists.txt b/InnerDetector/InDetRecTools/InDetConversionFinderTools/CMakeLists.txt index ddab67665ea..23bf33cd118 100644 --- a/InnerDetector/InDetRecTools/InDetConversionFinderTools/CMakeLists.txt +++ b/InnerDetector/InDetRecTools/InDetConversionFinderTools/CMakeLists.txt @@ -39,12 +39,15 @@ atlas_add_library( InDetConversionFinderToolsLib PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} LINK_LIBRARIES AthenaBaseComps xAODTracking GaudiKernel InDetRecToolInterfaces Particle TrkEventPrimitives TrkParameters TrkParticleBase TrkTrack - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthLinks InDetPrepRawData TrkSurfaces TrkMeasurementBase TrkRIO_OnTrack VxVertex TrkExInterfaces TrkToolInterfaces TrkVertexFitterInterfaces TrkVertexSeedFinderUtilsLib ) + PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthLinks InDetPrepRawData TrkSurfaces TrkMeasurementBase TrkRIO_OnTrack VxVertex + TrkExInterfaces TrkToolInterfaces TrkVertexFitterInterfaces TrkVertexSeedFinderUtilsLib ) atlas_add_component( InDetConversionFinderTools src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps xAODTracking GaudiKernel InDetRecToolInterfaces Particle TrkEventPrimitives TrkParameters TrkParticleBase TrkTrack AthLinks InDetPrepRawData TrkSurfaces TrkMeasurementBase TrkRIO_OnTrack VxVertex TrkExInterfaces TrkToolInterfaces TrkVertexFitterInterfaces InDetConversionFinderToolsLib ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps xAODTracking GaudiKernel InDetRecToolInterfaces Particle TrkEventPrimitives + TrkParameters TrkParticleBase TrkTrack AthLinks InDetPrepRawData TrkSurfaces TrkMeasurementBase TrkRIO_OnTrack VxVertex TrkExInterfaces + TrkToolInterfaces TrkVertexFitterInterfaces InDetConversionFinderToolsLib ) atlas_add_test( VertexPointEstimator_test -- GitLab From f7059832b8e47fe0fd59ea344038555a1fb8f662 Mon Sep 17 00:00:00 2001 From: yoyamagu <yohei.yamaguchi@cern.ch> Date: Sat, 25 Jul 2020 15:33:53 +0900 Subject: [PATCH 143/459] add NSW variables into xAOD::L2StandAloneMuonAuxContainer --- .../Root/L2StandAloneMuonAuxContainer_v2.cxx | 25 +++++++++++++++++ .../L2StandAloneMuonAuxContainer_v2.h | 27 +++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/Event/xAOD/xAODTrigMuon/Root/L2StandAloneMuonAuxContainer_v2.cxx b/Event/xAOD/xAODTrigMuon/Root/L2StandAloneMuonAuxContainer_v2.cxx index 008b2740df2..8ddf3ac9e23 100644 --- a/Event/xAOD/xAODTrigMuon/Root/L2StandAloneMuonAuxContainer_v2.cxx +++ b/Event/xAOD/xAODTrigMuon/Root/L2StandAloneMuonAuxContainer_v2.cxx @@ -197,6 +197,31 @@ namespace xAOD { AUX_VARIABLE( cscHitTime ); AUX_VARIABLE( cscHitResidual ); + AUX_VARIABLE( stgcClusterLayer ); + AUX_VARIABLE( stgcClusterIsOutlier ); + AUX_VARIABLE( stgcClusterType ); + AUX_VARIABLE( stgcClusterEta ); + AUX_VARIABLE( stgcClusterPhi ); + AUX_VARIABLE( stgcClusterR ); + AUX_VARIABLE( stgcClusterZ ); + AUX_VARIABLE( stgcClusterResidualR ); + AUX_VARIABLE( stgcClusterResidualPhi ); + AUX_VARIABLE( stgcClusterStationEta ); + AUX_VARIABLE( stgcClusterStationPhi ); + AUX_VARIABLE( stgcClusterStationName ); + + AUX_VARIABLE( mmClusterLayer ); + AUX_VARIABLE( mmClusterIsOutlier ); + AUX_VARIABLE( mmClusterEta ); + AUX_VARIABLE( mmClusterPhi ); + AUX_VARIABLE( mmClusterR ); + AUX_VARIABLE( mmClusterZ ); + AUX_VARIABLE( mmClusterResidualR ); + AUX_VARIABLE( mmClusterResidualPhi ); + AUX_VARIABLE( mmClusterStationEta ); + AUX_VARIABLE( mmClusterStationPhi ); + AUX_VARIABLE( mmClusterStationName ); + } } // namespace xAOD diff --git a/Event/xAOD/xAODTrigMuon/xAODTrigMuon/versions/L2StandAloneMuonAuxContainer_v2.h b/Event/xAOD/xAODTrigMuon/xAODTrigMuon/versions/L2StandAloneMuonAuxContainer_v2.h index b5e203a6354..8607761dfce 100644 --- a/Event/xAOD/xAODTrigMuon/xAODTrigMuon/versions/L2StandAloneMuonAuxContainer_v2.h +++ b/Event/xAOD/xAODTrigMuon/xAODTrigMuon/versions/L2StandAloneMuonAuxContainer_v2.h @@ -241,6 +241,33 @@ namespace xAOD { std::vector< std::vector< float > > cscHitTime; std::vector< std::vector< float > > cscHitResidual; + // sTGC clusters + std::vector< std::vector< unsigned int > > stgcClusterLayer; + std::vector< std::vector< int > > stgcClusterIsOutlier; + std::vector< std::vector< int > > stgcClusterType; + std::vector< std::vector< float > > stgcClusterEta; + std::vector< std::vector< float > > stgcClusterPhi; + std::vector< std::vector< float > > stgcClusterR; + std::vector< std::vector< float > > stgcClusterZ; + std::vector< std::vector< float > > stgcClusterResidualR; + std::vector< std::vector< float > > stgcClusterResidualPhi; + std::vector< std::vector< int > > stgcClusterStationEta; + std::vector< std::vector< int > > stgcClusterStationPhi; + std::vector< std::vector< int > > stgcClusterStationName; + + // MM clusters + std::vector< std::vector< unsigned int > > mmClusterLayer; + std::vector< std::vector< int > > mmClusterIsOutlier; + std::vector< std::vector< float > > mmClusterEta; + std::vector< std::vector< float > > mmClusterPhi; + std::vector< std::vector< float > > mmClusterR; + std::vector< std::vector< float > > mmClusterZ; + std::vector< std::vector< float > > mmClusterResidualR; + std::vector< std::vector< float > > mmClusterResidualPhi; + std::vector< std::vector< int > > mmClusterStationEta; + std::vector< std::vector< int > > mmClusterStationPhi; + std::vector< std::vector< int > > mmClusterStationName; + /// @} }; // class L2StandAloneMuonAuxContainer_v2 -- GitLab From d99caf676b7e0c182a38a463010e52b5d158bd5a Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Sat, 25 Jul 2020 19:45:27 +0200 Subject: [PATCH 144/459] fix for from ValkyrieConf import ValgrindSvc as _ValgrindSvc --- Control/Valkyrie/python/JobOptCfg.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Control/Valkyrie/python/JobOptCfg.py b/Control/Valkyrie/python/JobOptCfg.py index fa5ed452156..03e740b5573 100644 --- a/Control/Valkyrie/python/JobOptCfg.py +++ b/Control/Valkyrie/python/JobOptCfg.py @@ -5,16 +5,16 @@ # @author: Frank Winklmeier # import the automatically generated Configurable -from ValkyrieConf import ValgrindSvc as _ValgrindSvc +from Valkyrie.ValkyrieConf import ValgrindSvc as _ValgrindSvc class ValgrindSvc( _ValgrindSvc): - + __slots__ = ( ) # enforce no new properties def __init__(self, name = "ValgrindSvc", **kwargs ): # have to call base init kwargs['name'] = name - super( ValgrindSvc, self ).__init__( **kwargs ) + super( ValgrindSvc, self ).__init__( **kwargs ) # return # def setDefaults( cls, handle ): @@ -35,4 +35,4 @@ class ValgrindSvc( _ValgrindSvc): pass # class ValgrindSvc - + -- GitLab From 6df5fab3581e2149526164faee16163a1139eec6 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Sat, 25 Jul 2020 18:53:06 +0100 Subject: [PATCH 145/459] Keep only one GsfMaterialMixtureConvolution impl --- .../InDetRecExample/python/TrackingCommon.py | 6 +- .../egammaRec/python/EMCommonRefitter.py | 8 +- .../GsfMaterialMixtureConvolution.h | 91 ++- .../GsfMaterialMixtureConvolutionLM.h | 138 ----- .../src/GsfMaterialMixtureConvolution.cxx | 574 +++++++++++------- .../src/GsfMaterialMixtureConvolutionLM.cxx | 517 ---------------- .../TrkGaussianSumFilter_entries.cxx | 2 - 7 files changed, 448 insertions(+), 888 deletions(-) delete mode 100644 Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GsfMaterialMixtureConvolutionLM.h delete mode 100644 Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolutionLM.cxx diff --git a/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py b/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py index 73355ae4edb..dc4571c5bd7 100644 --- a/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py +++ b/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py @@ -654,8 +654,8 @@ def getInDetGsfMaterialUpdator(name='InDetGsfMaterialUpdator', **kwargs) : if 'MaximumNumberOfComponents' not in kwargs : kwargs=setDefaults(kwargs, MaximumNumberOfComponents = 12) - from TrkGaussianSumFilter.TrkGaussianSumFilterConf import Trk__GsfMaterialMixtureConvolutionLM - return Trk__GsfMaterialMixtureConvolutionLM (name = the_name, **kwargs) + from TrkGaussianSumFilter.TrkGaussianSumFilterConf import Trk__GsfMaterialMixtureConvolution + return Trk__GsfMaterialMixtureConvolution (name = the_name, **kwargs) @makePublicTool @@ -1093,7 +1093,7 @@ def getInDetTRT_ExtensionToolCosmics(name='InDetTRT_ExtensionToolCosmics',**kwar TRT_ClustersContainer = InDetKeys.TRT_DriftCircles(), SearchNeighbour = False, # needs debugging!!! RoadWidth = 10.) - + from TRT_TrackExtensionTool_xk.TRT_TrackExtensionTool_xkConf import InDet__TRT_TrackExtensionToolCosmics return InDet__TRT_TrackExtensionToolCosmics(name = the_name, **kwargs) diff --git a/Reconstruction/egamma/egammaRec/python/EMCommonRefitter.py b/Reconstruction/egamma/egammaRec/python/EMCommonRefitter.py index e4188ae5d87..0afa22e13c1 100644 --- a/Reconstruction/egamma/egammaRec/python/EMCommonRefitter.py +++ b/Reconstruction/egamma/egammaRec/python/EMCommonRefitter.py @@ -10,6 +10,7 @@ def getGSFTrackFitter(): egRotCreator = TrackingCommon.getInDetRotCreator( name='egRotCreator', private=True) + TrackingCommon.createAndAddCondAlg( TrackingCommon.getRIO_OnTrackErrorScalingCondAlg, 'RIO_OnTrackErrorScalingCondAlg') @@ -32,9 +33,11 @@ def getGSFTrackFitter(): # Set up the GSF from TrkGaussianSumFilter.TrkGaussianSumFilterConf import ( - Trk__GsfMaterialMixtureConvolutionLM) + Trk__GsfMaterialMixtureConvolution) - GsfMaterialUpdator = Trk__GsfMaterialMixtureConvolutionLM(name='GsfMaterialUpdator',MaximumNumberOfComponents=12) + GsfMaterialUpdator = Trk__GsfMaterialMixtureConvolution( + name='GsfMaterialUpdator', + MaximumNumberOfComponents=12) from TrkGaussianSumFilter.TrkGaussianSumFilterConf import ( Trk__GsfExtrapolator) @@ -62,6 +65,7 @@ def getGSFTrackFitter(): from TrkGaussianSumFilter.TrkGaussianSumFilterConf import ( Trk__GaussianSumFitter) + GSFTrackFitter = Trk__GaussianSumFitter( name='GSFTrackFitter', ToolForExtrapolation=GsfExtrapolator, diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GsfMaterialMixtureConvolution.h b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GsfMaterialMixtureConvolution.h index 65d4e5296cd..5b3bd9377b6 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GsfMaterialMixtureConvolution.h +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GsfMaterialMixtureConvolution.h @@ -6,7 +6,7 @@ * @file GsfMaterialMixtureConvolution.h * @date Thursday 7th September 2006 * @author Tom Athkinson, Anthony Morley, Christos Anastopoulos - * @brief Class description for convolution of GSF material mixture + * @brief Class description for convolution of GSF material mixture */ #ifndef TrkGsfMaterialMixtureConvolution_H @@ -21,7 +21,9 @@ namespace Trk { class IMultiStateMaterialEffectsUpdator; +class IMultiStateMaterialEffects; class Layer; +class MaterialProperties; class GsfMaterialMixtureConvolution : public AthAlgTool @@ -29,6 +31,13 @@ class GsfMaterialMixtureConvolution { public: + enum MaterialUpdateType + { + Normal = 0, + Preupdate = 1, + Postupdate = 2 + }; + //!< Constructor with AlgTool parameters GsfMaterialMixtureConvolution(const std::string&, const std::string&, @@ -44,36 +53,41 @@ public: virtual StatusCode finalize() override; //!< Convolution with full material properties - virtual MultiComponentState update(std::vector<Trk::IMultiStateMaterialEffects::Cache>&, - const MultiComponentState&, - const Layer&, - PropDirection direction = anyDirection, - ParticleHypothesis particleHypothesis = - nonInteracting) const override final; + virtual MultiComponentState update( + std::vector<Trk::IMultiStateMaterialEffects::Cache>&, + const MultiComponentState&, + const Layer&, + PropDirection direction = anyDirection, + ParticleHypothesis particleHypothesis = + nonInteracting) const override final; //!< Convolution with pre-measurement-update material properties - virtual MultiComponentState preUpdate(std::vector<Trk::IMultiStateMaterialEffects::Cache>&, - const MultiComponentState&, - const Layer&, - PropDirection direction = anyDirection, - ParticleHypothesis particleHypothesis = - nonInteracting) const override final; + virtual MultiComponentState preUpdate( + std::vector<Trk::IMultiStateMaterialEffects::Cache>&, + const MultiComponentState&, + const Layer&, + PropDirection direction = anyDirection, + ParticleHypothesis particleHypothesis = + nonInteracting) const override final; //!< Convolution with post-measurement-update material properties - virtual MultiComponentState postUpdate(std::vector<Trk::IMultiStateMaterialEffects::Cache>&, - const MultiComponentState&, - const Layer&, - PropDirection direction = anyDirection, - ParticleHypothesis particleHypothesis = - nonInteracting) const override final; - - //!< Retain for now redundant simplified material effects - virtual MultiComponentState simplifiedMaterialUpdate( - const MultiComponentState& multiComponentState, + virtual MultiComponentState postUpdate( + std::vector<Trk::IMultiStateMaterialEffects::Cache>&, + const MultiComponentState&, + const Layer&, PropDirection direction = anyDirection, ParticleHypothesis particleHypothesis = nonInteracting) const override final; + //!< Retain for now redundant simplified material effects + virtual MultiComponentState simplifiedMaterialUpdate( + const MultiComponentState&, + PropDirection, + ParticleHypothesis) const override final + { + return {}; + }; + private: Gaudi::Property<unsigned int> m_maximumNumberOfComponents{ this, @@ -88,6 +102,37 @@ private: "Trk::GsfMaterialEffectsUpdator/GsfMaterialEffectsUpdator", "" }; + + ToolHandle<IMultiStateMaterialEffects> m_materialEffects{ + this, + "MaterialEffects", + "Trk::GsfCombinedMaterialEffects/GsfCombinedMaterialEffects", + "" + }; + + Gaudi::Property<bool> m_useReferenceMaterial{ this, + "UseReferenceMaterial", + false, + "" }; + + Gaudi::Property<double> m_momentumCut{ this, + "MinimalMomentum", + 250. * Gaudi::Units::MeV, + "" }; + + Trk::MultiComponentState update( + std::vector<Trk::IMultiStateMaterialEffects::Cache>&, + const Trk::MultiComponentState& inputState, + const Trk::Layer& layer, + Trk::PropDirection direction, + Trk::ParticleHypothesis particleHypothesis, + MaterialUpdateType updateType) const; + + bool updateP(double& qOverP, double deltaP) const; + + std::pair<const Trk::MaterialProperties*, double> getMaterialProperties( + const Trk::TrackParameters* trackParameters, + const Trk::Layer& layer) const; }; } // end Trk namespace diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GsfMaterialMixtureConvolutionLM.h b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GsfMaterialMixtureConvolutionLM.h deleted file mode 100644 index 4611856669c..00000000000 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/GsfMaterialMixtureConvolutionLM.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -*/ - -/** - * @file GsfMaterialMixtureConvolutionLM.h - * @date Thursday 7th September 2006 - * @author Tom Athkinson, Anthony Morley, Christos Anastopoulos - * @brief Class description for convolution of GSF material mixture - */ - -#ifndef TrkGsfMaterialMixtureConvolutionLM_H -#define TrkGsfMaterialMixtureConvolutionLM_H - -#include "TrkGaussianSumFilter/IMaterialMixtureConvolution.h" -#include "TrkMultiComponentStateOnSurface/MultiComponentState.h" - -#include "AthenaBaseComps/AthAlgTool.h" -#include "GaudiKernel/ToolHandle.h" - -namespace Trk { - -class IMultiStateMaterialEffectsUpdator; -class IMultiStateMaterialEffects; -class Layer; -class MaterialProperties; - -class GsfMaterialMixtureConvolutionLM - : public AthAlgTool - , virtual public IMaterialMixtureConvolution -{ - -public: - - enum MaterialUpdateType{ Normal = 0, Preupdate=1, Postupdate=2 }; - - //!< Constructor with AlgTool parameters - GsfMaterialMixtureConvolutionLM(const std::string&, - const std::string&, - const IInterface*); - - //!< Destructor - virtual ~GsfMaterialMixtureConvolutionLM(); - - //!< AlgTool initialise method - virtual StatusCode initialize() override; - - //!< AlgTool finalize method - virtual StatusCode finalize() override; - - //!< Convolution with full material properties - virtual MultiComponentState update(std::vector<Trk::IMultiStateMaterialEffects::Cache>&, - const MultiComponentState&, - const Layer&, - PropDirection direction = anyDirection, - ParticleHypothesis particleHypothesis = - nonInteracting) const override final; - - //!< Convolution with pre-measurement-update material properties - virtual MultiComponentState preUpdate(std::vector<Trk::IMultiStateMaterialEffects::Cache>&, - const MultiComponentState&, - const Layer&, - PropDirection direction = anyDirection, - ParticleHypothesis particleHypothesis = - nonInteracting) const override final; - - //!< Convolution with post-measurement-update material properties - virtual MultiComponentState postUpdate(std::vector<Trk::IMultiStateMaterialEffects::Cache>&, - const MultiComponentState&, - const Layer&, - PropDirection direction = anyDirection, - ParticleHypothesis particleHypothesis = - nonInteracting) const override final; - - //!< Retain for now redundant simplified material effects - virtual MultiComponentState simplifiedMaterialUpdate( - const MultiComponentState& , - PropDirection, - ParticleHypothesis) const override final { return {}; }; - - - private: - Gaudi::Property<unsigned int> m_maximumNumberOfComponents{ - this, - "MaximumNumberOfComponents", - 12, - "Maximum number of components" - }; - - ToolHandle<IMultiStateMaterialEffectsUpdator> m_updator{ - this, - "MaterialEffectsUpdator", - "Trk::GsfMaterialEffectsUpdator/GsfMaterialEffectsUpdator", - "" - }; - - ToolHandle<IMultiStateMaterialEffects> m_materialEffects{ - this, - "MaterialEffects", - "Trk::GsfCombinedMaterialEffects/GsfCombinedMaterialEffects", - "" - }; - - Gaudi::Property<bool> m_useReferenceMaterial{ - this, - "UseReferenceMaterial", - false, - "" - }; - - Gaudi::Property<double> m_momentumCut{ - this, - "MinimalMomentum", - 250. * Gaudi::Units::MeV, - "" - }; - - - Trk::MultiComponentState update( - std::vector<Trk::IMultiStateMaterialEffects::Cache>&, - const Trk::MultiComponentState& inputState, - const Trk::Layer& layer, - Trk::PropDirection direction, - Trk::ParticleHypothesis particleHypothesis, - MaterialUpdateType updateType) const; - - bool updateP(double& qOverP, double deltaP) const; - - std::pair< const Trk::MaterialProperties*, double > getMaterialProperties( - const Trk::TrackParameters* trackParameters, - const Trk::Layer& layer ) const; - - -}; - -} // end Trk namespace - -#endif diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolution.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolution.cxx index eabd4ae974b..c684643aacc 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolution.cxx +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolution.cxx @@ -1,18 +1,21 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2020-2020 CERN for the benefit of the ATLAS collaboration */ /************************************************************************************* GsfMaterialMixtureConvolution.cxx - description ------------------------------------------------- -begin : Thursday 7th September 2006 -author : atkinson -email : Tom.Atkinson@cern.ch +author : amorley +email : amorley@cern.ch decription : Implementation code for GSF material mixture convolution +that uses less mem ************************************************************************************/ #include "TrkGaussianSumFilter/GsfMaterialMixtureConvolution.h" +#include "TrkGaussianSumFilter/AlignedDynArray.h" +#include "TrkGaussianSumFilter/IMultiStateMaterialEffects.h" #include "TrkGaussianSumFilter/IMultiStateMaterialEffectsUpdator.h" +#include "TrkGaussianSumFilter/KLGaussianMixtureReduction.h" #include "TrkGaussianSumFilter/MultiComponentStateAssembler.h" #include "TrkGaussianSumFilter/MultiComponentStateCombiner.h" #include "TrkGaussianSumFilter/QuickCloseComponentsMultiStateMerger.h" @@ -37,11 +40,9 @@ StatusCode Trk::GsfMaterialMixtureConvolution::initialize() { - if (m_updator.retrieve().isFailure()) { - ATH_MSG_ERROR("Could not retrieve the material effects updator instance " - << m_updator.typeAndName() << "... Exiting"); - return StatusCode::FAILURE; - } + ATH_CHECK(m_updator.retrieve()); + + ATH_CHECK(m_materialEffects.retrieve()); return StatusCode::SUCCESS; } @@ -58,7 +59,7 @@ Trk::GsfMaterialMixtureConvolution::finalize() Trk::MultiComponentState Trk::GsfMaterialMixtureConvolution::update( - std::vector<Trk::IMultiStateMaterialEffects::Cache>&, + std::vector<Trk::IMultiStateMaterialEffects::Cache>& caches, const Trk::MultiComponentState& multiComponentState, const Trk::Layer& layer, Trk::PropDirection direction, @@ -72,65 +73,27 @@ Trk::GsfMaterialMixtureConvolution::update( ATH_MSG_DEBUG("UPDATE but no material properties!!!"); } - /* ------------------------------------- - Preliminary checks - ------------------------------------- */ - - // Assembler Cache - MultiComponentStateAssembler::Cache cache; - // Reset the assembler - MultiComponentStateAssembler::reset(cache); - - // Check the multi-component state is populated - if (multiComponentState.empty()) { - ATH_MSG_DEBUG("Multi component state passed to extrapolateInsideVolume is " - "not populated... returning 0"); - return {}; - } - - // Loop over all components and perform material effects update separately - Trk::MultiComponentState::const_iterator component = - multiComponentState.begin(); - - for (; component != multiComponentState.end(); ++component) { - - Trk::MultiComponentState updatedState = - m_updator->updateState(*component, layer, direction, particleHypothesis); - - if (updatedState.empty()) { - continue; - } - - bool componentAdded = MultiComponentStateAssembler::addMultiState( - cache, std::move(updatedState)); - - if (!componentAdded) { - ATH_MSG_WARNING( - "Component could not be added to the state in the assembler"); - } - } - - Trk::MultiComponentState mergedState = - QuickCloseComponentsMultiStateMerger::merge( - std::move(cache.multiComponentState), m_maximumNumberOfComponents); - - ATH_MSG_DEBUG("UPDATE update N in: " << multiComponentState.size() <<" N out: "<< mergedState.size() ); - if (mergedState.empty()) { + Trk::MultiComponentState updatedMergedState = update( + caches, multiComponentState, layer, direction, particleHypothesis, Normal); + ATH_MSG_DEBUG("UPDATE update N in: " << multiComponentState.size() + << " N out: " + << updatedMergedState.size()); + if (updatedMergedState.empty()) { return {}; } // Renormalise state - MultiComponentStateHelpers::renormaliseState(mergedState); + MultiComponentStateHelpers::renormaliseState(updatedMergedState); - return mergedState; + return updatedMergedState; } /* ========================================== Update with pre-update material effects - ========================================== */ +========================================== */ Trk::MultiComponentState Trk::GsfMaterialMixtureConvolution::preUpdate( - std::vector<Trk::IMultiStateMaterialEffects::Cache>&, + std::vector<Trk::IMultiStateMaterialEffects::Cache>& caches, const Trk::MultiComponentState& multiComponentState, const Trk::Layer& layer, Trk::PropDirection direction, @@ -144,50 +107,22 @@ Trk::GsfMaterialMixtureConvolution::preUpdate( /* ------------------------------------- Preliminary checks ------------------------------------- */ - // Assembler Cache - MultiComponentStateAssembler::Cache cache; - - // Check the multi-component state is populated - if (multiComponentState.empty()) { - ATH_MSG_DEBUG("Multi component state passed to extrapolateInsideVolume is " - "not populated... returning 0"); - return {}; - } - - // Loop over all components and perform material effects update separately - Trk::MultiComponentState::const_iterator component = - multiComponentState.begin(); - - for (; component != multiComponentState.end(); ++component) { - - Trk::MultiComponentState updatedState = m_updator->preUpdateState( - *component, layer, direction, particleHypothesis); - ATH_MSG_DEBUG("PREUPDATE update component result size: " << updatedState.size() ); - if (updatedState.empty()) { - continue; - } - - bool componentAdded = MultiComponentStateAssembler::addMultiState( - cache, std::move(updatedState)); - - if (!componentAdded) { - ATH_MSG_WARNING( - "Component could not be added to the state in the assembler"); - } - } - ATH_MSG_DEBUG("PREUPDATE before merge N: " << cache.multiComponentState.size() ); - Trk::MultiComponentState mergedState = - QuickCloseComponentsMultiStateMerger::merge( - std::move(cache.multiComponentState), m_maximumNumberOfComponents); - - ATH_MSG_DEBUG("PREUPDATE update N in: " << multiComponentState.size() <<" N out: "<< mergedState.size() ); - if (mergedState.empty()) { + Trk::MultiComponentState updatedMergedState = update(caches, + multiComponentState, + layer, + direction, + particleHypothesis, + Preupdate); + ATH_MSG_DEBUG("PREUPDATE update N in: " << multiComponentState.size() + << " N out: " + << updatedMergedState.size()); + if (updatedMergedState.empty()) { return {}; } // Renormalise state - MultiComponentStateHelpers::renormaliseState(mergedState); + MultiComponentStateHelpers::renormaliseState(updatedMergedState); - return mergedState; + return updatedMergedState; } /* ========================================== @@ -196,7 +131,7 @@ Trk::GsfMaterialMixtureConvolution::preUpdate( Trk::MultiComponentState Trk::GsfMaterialMixtureConvolution::postUpdate( - std::vector<Trk::IMultiStateMaterialEffects::Cache>&, + std::vector<Trk::IMultiStateMaterialEffects::Cache>& caches, const Trk::MultiComponentState& multiComponentState, const Trk::Layer& layer, Trk::PropDirection direction, @@ -212,149 +147,382 @@ Trk::GsfMaterialMixtureConvolution::postUpdate( Preliminary checks ------------------------------------- */ - // Assembler Cache - MultiComponentStateAssembler::Cache cache; + Trk::MultiComponentState updatedMergedState = update(caches, + multiComponentState, + layer, + direction, + particleHypothesis, + Postupdate); + + ATH_MSG_DEBUG("POSTUPDATE update N in: " << multiComponentState.size() + << " N out: " + << updatedMergedState.size()); + if (updatedMergedState.empty()) { + return {}; + } + // Renormalise state + MultiComponentStateHelpers::renormaliseState(updatedMergedState); + + return updatedMergedState; +} + +Trk::MultiComponentState +Trk::GsfMaterialMixtureConvolution::update( + std::vector<Trk::IMultiStateMaterialEffects::Cache>& caches, + const Trk::MultiComponentState& inputState, + const Trk::Layer& layer, + Trk::PropDirection direction, + Trk::ParticleHypothesis particleHypothesis, + MaterialUpdateType updateType) const +{ // Check the multi-component state is populated - if (multiComponentState.empty()) { - ATH_MSG_DEBUG("Multi component state passed to extrapolateInsideVolume is " + if (inputState.empty()) { + ATH_MSG_DEBUG("Multi component state passed to update is " "not populated... returning 0"); return {}; } - // Loop over all components and perform material effects update separately - Trk::MultiComponentState::const_iterator component = - multiComponentState.begin(); + double updateFactor(1.); + // Full method does this for each component which i don't think this is needed + if (updateType == Preupdate) { + updateFactor = + layer.preUpdateMaterialFactor(*inputState.front().first, direction); + ATH_MSG_DEBUG("Material effects update prior to propagation using layer " + "information and particle hypothesis: " + << particleHypothesis); + } else if (updateType == Postupdate) { + updateFactor = + layer.postUpdateMaterialFactor(*inputState.front().first, direction); + ATH_MSG_DEBUG("Material effects update after propagation using layer " + "information and particle hypothesis: " + << particleHypothesis); + } - for (; component != multiComponentState.end(); ++component) { + if (updateFactor < 0.01) { + // Bail out as factor is too small to bother about + return {}; + } - Trk::MultiComponentState updatedState = m_updator->postUpdateState( - *component, layer, direction, particleHypothesis); + caches.resize(inputState.size()); + + // Fill cache and work out how many final components there should be + size_t n(0); + for (size_t i(0); i < inputState.size(); ++i) { + const AmgSymMatrix(5)* measuredCov = inputState[i].first->covariance(); + // If the momentum is too dont apply material effects + if (inputState[i].first->momentum().mag() <= m_momentumCut) { + ATH_MSG_DEBUG("Ignoring material effects... Momentum too low"); + caches[i].resetAndAddDummyValues(); + caches[i].deltaParameters[0] = inputState[i].first->parameters(); + caches[i].weights[0] = inputState[i].second; + if (measuredCov) { + caches[i].deltaCovariances[0] += *measuredCov; + } + n += caches[i].weights.size(); + continue; + } - if (updatedState.empty()) { + // Get the material effects and store them in the cache + std::pair<const Trk::MaterialProperties*, double> matPropPair = + getMaterialProperties(inputState[i].first.get(), layer); + + if (!matPropPair.first) { + ATH_MSG_DEBUG("No material properties .. dont apply material effects"); + caches[i].resetAndAddDummyValues(); + caches[i].deltaParameters[0] = inputState[i].first->parameters(); + caches[i].weights[0] = inputState[i].second; + if (measuredCov) { + caches[i].deltaCovariances[0] += *measuredCov; + } + n += caches[i].weights.size(); continue; } - bool componentAdded = MultiComponentStateAssembler::addMultiState( - cache, std::move(updatedState)); + // Apply the update factor + matPropPair.second *= updateFactor; + + m_materialEffects->compute(caches[i], + inputState[i], + *matPropPair.first, + matPropPair.second, + direction, + particleHypothesis); + + // check vectors have the same size + if (caches[i].weights.size() != caches[i].deltaPs.size()) { + ATH_MSG_ERROR("Inconsistent number of components in the updator!!! no " + "material effect will be applied"); + caches[i].resetAndAddDummyValues(); + } - if (!componentAdded) { - ATH_MSG_WARNING( - "Component could not be added to the state in the assembler"); + // Apply material effects to input state and store results in cache + for (size_t j(0); j < caches[i].weights.size(); ++j) { + if (measuredCov) { + caches[i].deltaCovariances[j] += *measuredCov; + } else { + caches[i].deltaCovariances[j].setZero(); + } + caches[i].deltaParameters[j] = inputState[i].first->parameters(); + // Adjust the momentum of the component's parameters vector here. Check to + // make sure update is good. + if (!updateP(caches[i].deltaParameters[j][Trk::qOverP], + caches[i].deltaPs[j])) { + ATH_MSG_ERROR("Cannot update state vector momentum!!! return nullptr"); + return {}; + } + // Store component weight + caches[i].weights[j] *= inputState[i].second; + // Ensure weight of component is not too small to save us from potential + // FPE's Value chosen to be sufficiently small so that the final state + // will not be impacted + if (caches[i].weights[j] < 1e-12) { + caches[i].weights[j] = 1e-12; + } } + n += caches[i].weights.size(); } - Trk::MultiComponentState mergedState = - QuickCloseComponentsMultiStateMerger::merge( - std::move(cache.multiComponentState), m_maximumNumberOfComponents); + // Fill information for to calculate which components to merge + // Inaddition scan all components for covariance matrices. If one or more + // component is missing an error matrix, component reduction is impossible. + bool componentWithoutMeasurement = false; + + GSFUtils::AlignedDynArray<GSFUtils::Component1D, GSFUtils::alignment> + components(n); + size_t k(0); + std::vector<std::pair<size_t, size_t>> indices(n); + for (size_t i(0); i < inputState.size(); ++i) { + for (size_t j(0); j < caches[i].weights.size(); ++j) { + const AmgSymMatrix(5)* measuredCov = inputState[i].first->covariance(); + // Fill in infomation + const double cov = + measuredCov ? caches[i].deltaCovariances[j](Trk::qOverP, Trk::qOverP) + : -1.; + if (!measuredCov) { + componentWithoutMeasurement = true; + } + + components[k].mean = caches[i].deltaParameters[j][Trk::qOverP]; + components[k].cov = cov; + components[k].invCov = cov > 0 ? 1. / cov : 1e10; + components[k].weight = caches[i].weights[j]; + indices[k] = { i, j }; + ++k; + } + } - ATH_MSG_DEBUG("POSTUPDATE update N in: " << multiComponentState.size() <<" N out: "<< mergedState.size() ); - if (mergedState.empty()) { - return {}; + if (componentWithoutMeasurement) { + auto result = std::max_element( + components.begin(), components.end(), [](const auto& a, const auto& b) { + return a.weight < b.weight; + }); + auto index = std::distance(components.begin(), result); + + // Build the first TP + size_t stateIndex = indices[index].first; + size_t materialIndex = indices[index].second; + + AmgVector(5)& updatedStateVector = + caches[stateIndex].deltaParameters[materialIndex]; + const AmgSymMatrix(5)* measuredCov = + inputState[stateIndex].first->covariance(); + AmgSymMatrix(5)* updatedCovariance = nullptr; + if (measuredCov && + caches[stateIndex].deltaCovariances.size() > materialIndex) { + updatedCovariance = + new AmgSymMatrix(5)(caches[stateIndex].deltaCovariances[materialIndex]); + } + Trk::TrackParameters* updatedTrackParameters = + inputState[stateIndex].first->associatedSurface().createTrackParameters( + updatedStateVector[Trk::loc1], + updatedStateVector[Trk::loc2], + updatedStateVector[Trk::phi], + updatedStateVector[Trk::theta], + updatedStateVector[Trk::qOverP], + updatedCovariance); + + Trk::ComponentParameters dummyCompParams(updatedTrackParameters, 1.); + Trk::MultiComponentState returnMultiState; + returnMultiState.push_back(std::move(dummyCompParams)); + return returnMultiState; } - // Renormalise state - MultiComponentStateHelpers::renormaliseState(mergedState); - return mergedState; -} + // Gather the merges -- order is important -- RHS is smaller than LHS + std::vector<std::pair<int32_t, int32_t>> merges; + if (n > m_maximumNumberOfComponents) + merges = findMerges(components.buffer(), n, m_maximumNumberOfComponents); + + // Merge components + MultiComponentStateAssembler::Cache assemblerCache; + int nMerges(0); + std::vector<bool> isMerged(n, false); + for (const auto& mergePair : merges) { + const int32_t mini = mergePair.first; + const int32_t minj = mergePair.second; + if (isMerged[minj]) { + ATH_MSG_WARNING("Component is already merged " << minj); + for (const auto& mergePair2 : merges) { + ATH_MSG_DEBUG("Pairs that should be merged together: " + << mergePair2.first << " " << mergePair2.second); + } + continue; + } + // Get the first TP + size_t stateIndex = indices[mini].first; + size_t materialIndex = indices[mini].second; + AmgVector(5)& stateVector = + caches[stateIndex].deltaParameters[materialIndex]; + AmgSymMatrix(5)& measuredCov = + caches[stateIndex].deltaCovariances[materialIndex]; + + // Get the second TP + size_t stateIndex2 = indices[minj].first; + size_t materialIndex2 = indices[minj].second; + + // Some values for sanity checks + ++nMerges; + isMerged[minj] = true; + + // Copy weight and first parameters as they are needed later on + const AmgVector(5) firstParameters = stateVector; + const double firstWeight = caches[stateIndex].weights[materialIndex]; + + // Update first parameters and weight + Trk::MultiComponentStateCombiner::combineParametersWithWeight( + caches[stateIndex].deltaParameters[materialIndex], + caches[stateIndex].weights[materialIndex], + caches[stateIndex2].deltaParameters[materialIndex2], + caches[stateIndex2].weights[materialIndex2]); + // Update first cov + Trk::MultiComponentStateCombiner::combineCovWithWeight( + firstParameters, + measuredCov, + firstWeight, + caches[stateIndex2].deltaParameters[materialIndex2], + caches[stateIndex2].deltaCovariances[materialIndex2], + caches[stateIndex2].weights[materialIndex2]); + + // Reset 2nd parameters values just for clarity + caches[stateIndex2].deltaParameters[materialIndex2].setZero(); + caches[stateIndex2].deltaCovariances[materialIndex2].setZero(); + } -/* ========================================== - Update with simplified material effects - ========================================== */ + for (size_t i(0); i < n; ++i) { + if (isMerged[i]) + continue; -Trk::MultiComponentState -Trk::GsfMaterialMixtureConvolution::simplifiedMaterialUpdate( - const Trk::MultiComponentState& multiComponentState, - Trk::PropDirection direction, - Trk::ParticleHypothesis particleHypothesis) const -{ - /* ------------------------------------- - Preliminary checks - ------------------------------------- */ - // Assembler Cache - MultiComponentStateAssembler::Cache cache; + // Build the TP + size_t stateIndex = indices[i].first; + size_t materialIndex = indices[i].second; + AmgVector(5)& stateVector = + caches[stateIndex].deltaParameters[materialIndex]; + AmgSymMatrix(5)& measuredCov = + caches[stateIndex].deltaCovariances[materialIndex]; + + Trk::TrackParameters* updatedTrackParameters = + inputState[stateIndex].first->associatedSurface().createTrackParameters( + stateVector[Trk::loc1], + stateVector[Trk::loc2], + stateVector[Trk::phi], + stateVector[Trk::theta], + stateVector[Trk::qOverP], + new AmgSymMatrix(5)(measuredCov)); + + double updatedWeight = caches[stateIndex].weights[materialIndex]; + + assemblerCache.multiComponentState.emplace_back(updatedTrackParameters, + updatedWeight); + assemblerCache.validWeightSum += updatedWeight; + } - // Check the multi-component state is populated - if (multiComponentState.empty()) { - ATH_MSG_DEBUG("Multi component state passed to extrapolateInsideVolume is " - "not populated... returning 0"); - return {}; + if (nMerges + assemblerCache.multiComponentState.size() != n) { + ATH_MSG_WARNING("Combining complete but merger size is incompatible: " + << n << " " << nMerges << " " + << assemblerCache.multiComponentState.size()); } - // Hardwired material effects based on approximate material distribution - std::unique_ptr<Trk::TrackParameters> combinedState = - MultiComponentStateCombiner::combine(multiComponentState); - const Amg::Vector3D& globalPosition = combinedState->position(); + // Check all weights + Trk::MultiComponentState mergedState = + MultiComponentStateAssembler::assembledState(assemblerCache); - const Trk::MaterialProperties* materialProperties = nullptr; + if (mergedState.size() > m_maximumNumberOfComponents) + ATH_MSG_ERROR("Merging failed, target size: " << m_maximumNumberOfComponents + << " final size: " + << mergedState.size()); + return mergedState; +} - // Material properties 2.5% X0 - pixels - if (globalPosition.x() >= 180. && globalPosition.x() < 350.) { - materialProperties = - new Trk::MaterialProperties(2.34, 93.6, 0.3879, 28.0855, 14, 0.00233); +bool +Trk::GsfMaterialMixtureConvolution::updateP(double& qOverP, double deltaP) const +{ + double p = 1. / std::abs(qOverP); + p += deltaP; + if (p <= 0.) { + return false; } + qOverP = qOverP > 0. ? 1. / p : -1. / p; + return true; +} - // Material properties 0.75% X0 - SCT ( total for a module = 1.5% - 2 - // measurement surfaces ) - else if (globalPosition.x() >= 350. && globalPosition.x() < 1200.) { - materialProperties = - new Trk::MaterialProperties(0.702, 93.6, 0.3879, 28.0855, 14, 0.00233); - } +std::pair<const Trk::MaterialProperties*, double> +Trk::GsfMaterialMixtureConvolution::getMaterialProperties( + const Trk::TrackParameters* trackParameters, + const Trk::Layer& layer) const +{ - if (!materialProperties) { - return std::move(*MultiComponentStateHelpers::clone(multiComponentState)); - } + const Trk::MaterialProperties* materialProperties(nullptr); + double pathCorrection(0.); - // Exclude material effects on the perigee surface - const Trk::Surface* associatedSurface = &(combinedState->associatedSurface()); - const Trk::PerigeeSurface* perigeeSurface = nullptr; - if (associatedSurface && associatedSurface->type() == Trk::Surface::Perigee) { - perigeeSurface = static_cast<const Trk::PerigeeSurface*>(associatedSurface); - } - if (perigeeSurface) { - delete materialProperties; - return std::move(*MultiComponentStateHelpers::clone(multiComponentState)); - } + // Incorporate the reference material - // Assume tracks normal to detector surface. Approximation resonable for the - // CTB - double pathLength = materialProperties->thickness(); + if (m_useReferenceMaterial) { - // Loop over all components and perform material effects update separately - Trk::MultiComponentState::const_iterator component = - multiComponentState.begin(); + // Get the surface associated with the parameters + const Trk::Surface* surface = &(trackParameters->associatedSurface()); - for (; component != multiComponentState.end(); ++component) { - Trk::MultiComponentState updatedState = - m_updator->updateState(*component, - *materialProperties, - pathLength, - direction, - particleHypothesis); + // Only utilise the reference material if an associated detector element + // exists + if (surface && surface->associatedDetectorElement()) { - if (updatedState.empty()) { - continue; - } + // Get the layer material properties + const Trk::LayerMaterialProperties* layerMaterial = + layer.layerMaterialProperties(); - bool componentAdded = MultiComponentStateAssembler::addMultiState( - cache, std::move(updatedState)); + // Assign the material properties + materialProperties = + layerMaterial ? layerMaterial->fullMaterial(trackParameters->position()) + : nullptr; - if (!componentAdded) { - ATH_MSG_WARNING( - "Component could not be added to the state in the assembler"); + // Determine the pathCorrection if the material properties exist + pathCorrection = materialProperties + ? 1. / std::abs(surface->normal().dot( + trackParameters->momentum().unit())) + : 0.; } + } - } // end loop over components - - Trk::MultiComponentState mergedState = - QuickCloseComponentsMultiStateMerger::merge( - std::move(cache.multiComponentState), m_maximumNumberOfComponents); + // Check that the material properties have been defined - if not define them + // from the layer information + materialProperties = materialProperties + ? materialProperties + : layer.fullUpdateMaterialProperties(*trackParameters); - if (mergedState.empty()) { - return {}; + // Bail out if still no material properties can be found + if (!materialProperties) { + return { nullptr, 0 }; } - // Renormalise state - MultiComponentStateHelpers::renormaliseState(mergedState); - return mergedState; + // Define the path correction + pathCorrection = + pathCorrection > 0. + ? pathCorrection + : layer.surfaceRepresentation().pathCorrection( + trackParameters->position(), trackParameters->momentum()); + + // The pathlength ( in mm ) is the path correction * the thickness of the + // material + double pathLength = pathCorrection * materialProperties->thickness(); + + return { materialProperties, pathLength }; } diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolutionLM.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolutionLM.cxx deleted file mode 100644 index 6a1e0184f32..00000000000 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolutionLM.cxx +++ /dev/null @@ -1,517 +0,0 @@ -/* - Copyright (C) 2020-2020 CERN for the benefit of the ATLAS collaboration -*/ - -/************************************************************************************* - GsfMaterialMixtureConvolutionLM.cxx - description - ------------------------------------------------- -author : amorley -email : amorley@cern.ch -decription : Implementation code for GSF material mixture convolution that uses less mem -************************************************************************************/ - -#include "TrkGaussianSumFilter/GsfMaterialMixtureConvolutionLM.h" -#include "TrkGaussianSumFilter/IMultiStateMaterialEffectsUpdator.h" -#include "TrkGaussianSumFilter/IMultiStateMaterialEffects.h" -#include "TrkGaussianSumFilter/MultiComponentStateAssembler.h" -#include "TrkGaussianSumFilter/MultiComponentStateCombiner.h" -#include "TrkGaussianSumFilter/QuickCloseComponentsMultiStateMerger.h" -#include "TrkGeometry/Layer.h" -#include "TrkGeometry/MaterialProperties.h" -#include "TrkGaussianSumFilter/AlignedDynArray.h" -#include "TrkGaussianSumFilter/KLGaussianMixtureReduction.h" - -#include "TrkMultiComponentStateOnSurface/MultiComponentState.h" -#include "TrkSurfaces/PerigeeSurface.h" - -Trk::GsfMaterialMixtureConvolutionLM::GsfMaterialMixtureConvolutionLM( - const std::string& type, - const std::string& name, - const IInterface* parent) - : AthAlgTool(type, name, parent) -{ - declareInterface<IMaterialMixtureConvolution>(this); -} - -Trk::GsfMaterialMixtureConvolutionLM::~GsfMaterialMixtureConvolutionLM() = default; - -StatusCode -Trk::GsfMaterialMixtureConvolutionLM::initialize() -{ - - ATH_CHECK( m_updator.retrieve() ); - - ATH_CHECK( m_materialEffects.retrieve() ); - - return StatusCode::SUCCESS; -} - -StatusCode -Trk::GsfMaterialMixtureConvolutionLM::finalize() -{ - return StatusCode::SUCCESS; -} - -/* ========================================== - Update with full material effects - ========================================== */ - -Trk::MultiComponentState -Trk::GsfMaterialMixtureConvolutionLM::update( - std::vector<Trk::IMultiStateMaterialEffects::Cache>& caches, - const Trk::MultiComponentState& multiComponentState, - const Trk::Layer& layer, - Trk::PropDirection direction, - Trk::ParticleHypothesis particleHypothesis) const -{ - - const Trk::MaterialProperties* materialProperties = - layer.fullUpdateMaterialProperties(*(multiComponentState.begin()->first)); - - if (!materialProperties) { - ATH_MSG_DEBUG("UPDATE but no material properties!!!"); - } - - Trk::MultiComponentState updatedMergedState = update( caches, - multiComponentState, - layer, - direction, - particleHypothesis, - Normal ); - ATH_MSG_DEBUG("UPDATE update N in: " << multiComponentState.size() <<" N out: "<< updatedMergedState.size() ); - if (updatedMergedState.empty()) { - return {}; - } - // Renormalise state - MultiComponentStateHelpers::renormaliseState(updatedMergedState); - - return updatedMergedState; -} - -/* ========================================== - Update with pre-update material effects -========================================== */ - -Trk::MultiComponentState -Trk::GsfMaterialMixtureConvolutionLM::preUpdate( - std::vector<Trk::IMultiStateMaterialEffects::Cache>& caches, - const Trk::MultiComponentState& multiComponentState, - const Trk::Layer& layer, - Trk::PropDirection direction, - Trk::ParticleHypothesis particleHypothesis) const -{ - const Trk::MaterialProperties* materialProperties = - layer.fullUpdateMaterialProperties(*(multiComponentState.begin()->first)); - if (!materialProperties) { - ATH_MSG_DEBUG("PREUPDATE but no material properties!!!"); - } - /* ------------------------------------- - Preliminary checks - ------------------------------------- */ - Trk::MultiComponentState updatedMergedState = update( caches, - multiComponentState, - layer, - direction, - particleHypothesis, - Preupdate ); - ATH_MSG_DEBUG("PREUPDATE update N in: " << multiComponentState.size() <<" N out: "<< updatedMergedState.size() ); - if (updatedMergedState.empty()) { - return {}; - } - // Renormalise state - MultiComponentStateHelpers::renormaliseState(updatedMergedState); - - return updatedMergedState; -} - -/* ========================================== - Update with post-update material effects - ========================================== */ - -Trk::MultiComponentState -Trk::GsfMaterialMixtureConvolutionLM::postUpdate( - std::vector<Trk::IMultiStateMaterialEffects::Cache>& caches, - const Trk::MultiComponentState& multiComponentState, - const Trk::Layer& layer, - Trk::PropDirection direction, - Trk::ParticleHypothesis particleHypothesis) const -{ - - const Trk::MaterialProperties* materialProperties = - layer.fullUpdateMaterialProperties(*(multiComponentState.begin()->first)); - if (!materialProperties) { - ATH_MSG_DEBUG("POSTUPDATE but no material properties!!!"); - } - /* ------------------------------------- - Preliminary checks - ------------------------------------- */ - - Trk::MultiComponentState updatedMergedState = update( caches, - multiComponentState, - layer, - direction, - particleHypothesis, - Postupdate ); - - - ATH_MSG_DEBUG("POSTUPDATE update N in: " << multiComponentState.size() <<" N out: "<< updatedMergedState.size() ); - if (updatedMergedState.empty()) { - return {}; - } - // Renormalise state - MultiComponentStateHelpers::renormaliseState(updatedMergedState); - - - return updatedMergedState; -} - - - -Trk::MultiComponentState Trk::GsfMaterialMixtureConvolutionLM::update( - std::vector<Trk::IMultiStateMaterialEffects::Cache>& caches, - const Trk::MultiComponentState& inputState, - const Trk::Layer& layer, - Trk::PropDirection direction, - Trk::ParticleHypothesis particleHypothesis, - MaterialUpdateType updateType) const -{ - - - // Check the multi-component state is populated - if (inputState.empty()) { - ATH_MSG_DEBUG("Multi component state passed to update is " - "not populated... returning 0"); - return {}; - } - - - double updateFactor(1.); - // Full method does this for each component which i don't think this is needed - if( updateType == Preupdate ){ - updateFactor = layer.preUpdateMaterialFactor(*inputState.front().first, direction); - ATH_MSG_DEBUG("Material effects update prior to propagation using layer " - "information and particle hypothesis: " - << particleHypothesis); - } else if ( updateType == Postupdate) { - updateFactor = layer.postUpdateMaterialFactor( *inputState.front().first, direction); - ATH_MSG_DEBUG("Material effects update after propagation using layer " - "information and particle hypothesis: " - << particleHypothesis); - } - - if( updateFactor < 0.01 ){ - //Bail out as factor is too small to bother about - return {}; - } - - - caches.resize( inputState.size() ); - - // Fill cache and work out how many final components there should be - size_t n(0); - for( size_t i(0) ; i < inputState.size(); ++i){ - const AmgSymMatrix(5)* measuredCov = inputState[i].first->covariance(); - //If the momentum is too dont apply material effects - if( inputState[i].first->momentum().mag() <= m_momentumCut ){ - ATH_MSG_DEBUG("Ignoring material effects... Momentum too low"); - caches[i].resetAndAddDummyValues(); - caches[i].deltaParameters[0] = inputState[i].first->parameters(); - caches[i].weights[0] = inputState[i].second; - if (measuredCov) { - caches[i].deltaCovariances[0] += *measuredCov; - } - n += caches[i].weights.size(); - continue; - } - - // Get the material effects and store them in the cache - std::pair< const Trk::MaterialProperties*, double > matPropPair = - getMaterialProperties( inputState[i].first.get(), layer ); - - if( !matPropPair.first ) { - ATH_MSG_DEBUG("No material properties .. dont apply material effects"); - caches[i].resetAndAddDummyValues(); - caches[i].deltaParameters[0] = inputState[i].first->parameters(); - caches[i].weights[0] = inputState[i].second; - if (measuredCov) { - caches[i].deltaCovariances[0] += *measuredCov; - } - n += caches[i].weights.size(); - continue; - } - - // Apply the update factor - matPropPair.second *= updateFactor; - - m_materialEffects->compute(caches[i], - inputState[i], - *matPropPair.first, - matPropPair.second, - direction, - particleHypothesis); - - // check vectors have the same size - if (caches[i].weights.size() != caches[i].deltaPs.size()) { - ATH_MSG_ERROR("Inconsistent number of components in the updator!!! no material effect will be applied"); - caches[i].resetAndAddDummyValues(); - } - - // Apply material effects to input state and store results in cache - for( size_t j(0); j < caches[i].weights.size(); ++j){ - if (measuredCov) { - caches[i].deltaCovariances[j] += *measuredCov; - } else { - caches[i].deltaCovariances[j].setZero(); - } - caches[i].deltaParameters[j] = inputState[i].first->parameters(); - // Adjust the momentum of the component's parameters vector here. Check to - // make sure update is good. - if (!updateP(caches[i].deltaParameters[j][Trk::qOverP], caches[i].deltaPs[j])) { - ATH_MSG_ERROR("Cannot update state vector momentum!!! return nullptr"); - return {}; - } - // Store component weight - caches[i].weights[j] *= inputState[i].second; - // Ensure weight of component is not too small to save us from potential FPE's - // Value chosen to be sufficiently small so that the final state will not be impacted - if( caches[i].weights[j] < 1e-12 ){ - caches[i].weights[j] = 1e-12; - } - } - n += caches[i].weights.size(); - } - - - // Fill information for to calculate which components to merge - // Inaddition scan all components for covariance matrices. If one or more component - // is missing an error matrix, component reduction is impossible. - bool componentWithoutMeasurement = false; - - GSFUtils::AlignedDynArray<GSFUtils::Component1D, GSFUtils::alignment> components(n); - size_t k(0); - std::vector< std::pair<size_t,size_t> > indices(n); - for( size_t i(0) ; i < inputState.size(); ++i){ - for( size_t j(0); j < caches[i].weights.size(); ++j ){ - const AmgSymMatrix(5)* measuredCov = inputState[i].first->covariance(); - // Fill in infomation - const double cov = - measuredCov ? caches[i].deltaCovariances[j](Trk::qOverP, Trk::qOverP) : -1.; - if( !measuredCov ){ - componentWithoutMeasurement = true; - } - - components[k].mean = caches[i].deltaParameters[j][Trk::qOverP]; - components[k].cov = cov; - components[k].invCov = cov > 0 ? 1. / cov : 1e10; - components[k].weight = caches[i].weights[j]; - indices[k] = {i,j}; - ++k; - } - } - - if(componentWithoutMeasurement){ - auto result = std::max_element(components.begin(), - components.end(), - [](const auto& a, const auto& b){ - return a.weight < b.weight; - }); - auto index = std::distance(components.begin(), result); - - // Build the first TP - size_t stateIndex = indices[index].first; - size_t materialIndex = indices[index].second; - - AmgVector(5)& updatedStateVector = caches[stateIndex].deltaParameters[materialIndex]; - const AmgSymMatrix(5)* measuredCov = inputState[stateIndex].first->covariance(); - AmgSymMatrix(5)* updatedCovariance = nullptr; - if (measuredCov && caches[stateIndex].deltaCovariances.size() > materialIndex) { - updatedCovariance = new AmgSymMatrix(5)( - caches[stateIndex].deltaCovariances[materialIndex] ); - } - Trk::TrackParameters* updatedTrackParameters = - inputState[stateIndex].first->associatedSurface().createTrackParameters( - updatedStateVector[Trk::loc1], - updatedStateVector[Trk::loc2], - updatedStateVector[Trk::phi], - updatedStateVector[Trk::theta], - updatedStateVector[Trk::qOverP], - updatedCovariance); - - Trk::ComponentParameters dummyCompParams( updatedTrackParameters, 1.); - Trk::MultiComponentState returnMultiState; - returnMultiState.push_back(std::move(dummyCompParams)); - return returnMultiState; - } - - - // Gather the merges -- order is important -- RHS is smaller than LHS - std::vector<std::pair<int32_t, int32_t>> merges; - if (n > m_maximumNumberOfComponents) - merges = findMerges(components.buffer(), n, m_maximumNumberOfComponents); - - //Merge components - MultiComponentStateAssembler::Cache assemblerCache; - int nMerges(0); - std::vector<bool> isMerged( n, false); - for (const auto& mergePair : merges) { - const int32_t mini = mergePair.first; - const int32_t minj = mergePair.second; - if( isMerged[minj] ){ - ATH_MSG_WARNING( "Component is already merged " << minj); - for (const auto& mergePair2 : merges) { - ATH_MSG_DEBUG( "Pairs that should be merged together: " << mergePair2.first << " "<< mergePair2.second ); - } - continue; - } - // Get the first TP - size_t stateIndex = indices[mini].first; - size_t materialIndex = indices[mini].second; - AmgVector(5)& stateVector = caches[stateIndex].deltaParameters[materialIndex]; - AmgSymMatrix(5)& measuredCov = caches[stateIndex].deltaCovariances[materialIndex]; - - // Get the second TP - size_t stateIndex2 = indices[minj].first; - size_t materialIndex2 = indices[minj].second; - - // Some values for sanity checks - ++nMerges; - isMerged[minj] = true; - - // Copy weight and first parameters as they are needed later on - const AmgVector(5) firstParameters = stateVector; - const double firstWeight = caches[stateIndex].weights[materialIndex]; - - // Update first parameters and weight - Trk::MultiComponentStateCombiner::combineParametersWithWeight( caches[stateIndex].deltaParameters[materialIndex], - caches[stateIndex].weights[materialIndex], - caches[stateIndex2].deltaParameters[materialIndex2], - caches[stateIndex2].weights[materialIndex2] ); - // Update first cov - Trk::MultiComponentStateCombiner::combineCovWithWeight( firstParameters, - measuredCov, - firstWeight, - caches[stateIndex2].deltaParameters[materialIndex2], - caches[stateIndex2].deltaCovariances[materialIndex2], - caches[stateIndex2].weights[materialIndex2] ); - - - // Reset 2nd parameters values just for clarity - caches[stateIndex2].deltaParameters[materialIndex2].setZero(); - caches[stateIndex2].deltaCovariances[materialIndex2].setZero(); - - } - - for( size_t i(0); i < n; ++i ){ - if( isMerged[i] ) - continue; - - // Build the TP - size_t stateIndex = indices[i].first; - size_t materialIndex = indices[i].second; - AmgVector(5)& stateVector = caches[stateIndex].deltaParameters[materialIndex]; - AmgSymMatrix(5)& measuredCov = caches[stateIndex].deltaCovariances[materialIndex]; - - Trk::TrackParameters* updatedTrackParameters = - inputState[stateIndex].first->associatedSurface().createTrackParameters( - stateVector[Trk::loc1], - stateVector[Trk::loc2], - stateVector[Trk::phi], - stateVector[Trk::theta], - stateVector[Trk::qOverP], - new AmgSymMatrix(5)( measuredCov ) ); - - double updatedWeight = caches[stateIndex].weights[materialIndex]; - - assemblerCache.multiComponentState.emplace_back( updatedTrackParameters, updatedWeight); - assemblerCache.validWeightSum += updatedWeight; - } - - if( nMerges + assemblerCache.multiComponentState.size() != n ){ - ATH_MSG_WARNING("Combining complete but merger size is incompatible: " << n << " " << nMerges << " " << assemblerCache.multiComponentState.size() ); - } - - // Check all weights - Trk::MultiComponentState mergedState = - MultiComponentStateAssembler::assembledState(assemblerCache); - - if(mergedState.size() > m_maximumNumberOfComponents) - ATH_MSG_ERROR("Merging failed, target size: " << m_maximumNumberOfComponents << " final size: " << mergedState.size()); - return mergedState; -} - - -bool Trk::GsfMaterialMixtureConvolutionLM::updateP(double& qOverP, double deltaP) const -{ - double p = 1. / std::abs(qOverP); - p += deltaP; - if (p <= 0.) { - return false; - } - qOverP = qOverP > 0. ? 1. / p : -1. / p; - return true; -} - - - -std::pair< const Trk::MaterialProperties*, double > - Trk::GsfMaterialMixtureConvolutionLM::getMaterialProperties( - const Trk::TrackParameters* trackParameters, - const Trk::Layer& layer) const -{ - - const Trk::MaterialProperties* materialProperties(nullptr); - double pathCorrection(0.); - - // Incorporate the reference material - - if (m_useReferenceMaterial) { - - // Get the surface associated with the parameters - const Trk::Surface* surface = &(trackParameters->associatedSurface()); - - // Only utilise the reference material if an associated detector element - // exists - if (surface && surface->associatedDetectorElement()) { - - // Get the layer material properties - const Trk::LayerMaterialProperties* layerMaterial = - layer.layerMaterialProperties(); - - // Assign the material properties - materialProperties = - layerMaterial ? layerMaterial->fullMaterial(trackParameters->position()) - : nullptr; - - // Determine the pathCorrection if the material properties exist - pathCorrection = - materialProperties - ? 1. / std::abs(surface->normal().dot(trackParameters->momentum().unit())) - : 0.; - } - } - - // Check that the material properties have been defined - if not define them - // from the layer information - materialProperties = materialProperties - ? materialProperties - : layer.fullUpdateMaterialProperties(*trackParameters); - - // Bail out if still no material properties can be found - if (!materialProperties) { - return {nullptr,0}; - } - - // Define the path correction - pathCorrection = - pathCorrection > 0. - ? pathCorrection - : layer.surfaceRepresentation().pathCorrection( - trackParameters->position(), trackParameters->momentum()); - - - // The pathlength ( in mm ) is the path correction * the thickness of the - // material - double pathLength = pathCorrection * materialProperties->thickness(); - - return {materialProperties,pathLength}; -} diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/components/TrkGaussianSumFilter_entries.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/components/TrkGaussianSumFilter_entries.cxx index f53ef90ca49..86bd37996bb 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/components/TrkGaussianSumFilter_entries.cxx +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/components/TrkGaussianSumFilter_entries.cxx @@ -1,4 +1,3 @@ -#include "TrkGaussianSumFilter/GsfMaterialMixtureConvolutionLM.h" #include "TrkGaussianSumFilter/GsfMaterialMixtureConvolution.h" #include "TrkGaussianSumFilter/GsfCombinedMaterialEffects.h" #include "TrkGaussianSumFilter/GsfMaterialEffectsUpdator.h" @@ -9,7 +8,6 @@ #include "TrkGaussianSumFilter/GsfExtrapolator.h" #include "TrkGaussianSumFilter/GsfSmoother.h" -DECLARE_COMPONENT( Trk::GsfMaterialMixtureConvolutionLM ) DECLARE_COMPONENT( Trk::GsfMaterialMixtureConvolution ) DECLARE_COMPONENT( Trk::GsfCombinedMaterialEffects ) DECLARE_COMPONENT( Trk::GsfMaterialEffectsUpdator ) -- GitLab From d6af157cf0ddaa20091d430bd4c002ab45bbfc4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20K=C3=B6hler?= <nicolas.koehler@cern.ch> Date: Sat, 25 Jul 2020 20:25:55 +0200 Subject: [PATCH 146/459] cleanup of MuonReadoutGeometry MM_Digitization TgcRawDataMonitoring --- .../MuonReadoutGeometry/MuonChannelDesign.h | 10 ++++----- .../MuonReadoutGeometry/sTgcReadoutElement.h | 2 +- .../src/CscReadoutElement.cxx | 6 ++--- .../src/GlobalUtilities.cxx | 4 ++-- .../src/MdtReadoutElement.cxx | 8 +++---- .../src/MuonDetectorManager.cxx | 22 +++++++++---------- .../MuonReadoutGeometry/src/MuonPadDesign.cxx | 2 +- .../MuonReadoutGeometry/src/MuonStation.cxx | 18 +++++++-------- .../MM_StripsResponseSimulation.h | 2 +- .../src/MM_ElectronicsResponseSimulation.cxx | 2 +- .../src/TgcLv1RawDataValAlg.cxx | 12 +++++----- .../src/TgcLv1RawDataValAlg_Functions.cxx | 2 +- .../TgcLv1RawDataValAlg_NumberOfTrigger.cxx | 1 - .../src/TgcLv1RawDataValAlg_ReadContainer.cxx | 2 +- .../src/TgcRawDataMonitorAlgorithm.cxx | 4 ++-- .../src/TgcRawDataValAlg_Efficiency.cxx | 2 +- .../Root/MuonResonancePlots.cxx | 2 +- 17 files changed, 50 insertions(+), 51 deletions(-) diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonChannelDesign.h b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonChannelDesign.h index 8143bce4ca6..a64d221ae21 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonChannelDesign.h +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonChannelDesign.h @@ -140,7 +140,7 @@ namespace MuonGM { //to introduce the correction for the stereo angle in the distance //Patrick Scholer March 18 2020 Amg::Vector2D chLoc( (pos.x()-pos.y()*tan(sAngle))-chPos.x() , pos.y()-chPos.y()); - if ( validMode && fabs(chLoc.x()) > 0.5*channelWidth( pos) ) { + if ( validMode && std::abs(chLoc.x()) > 0.5*channelWidth( pos) ) { MsgStream log(Athena::getMessageSvc(),"MuonChannelDesign"); if (log.level()<=MSG::INFO) log << MSG::INFO << "Problem in identification of the channel: distance to nearest channel, channel width: " << chLoc.x()<< ", " << channelWidth(pos) << " for channel number " << chNum << endmsg; @@ -270,9 +270,9 @@ namespace MuonGM { double locX = 0.; - if (fabs(locY)>0.5*(minYSize-deadS)) { + if (std::abs(locY)>0.5*(minYSize-deadS)) { - locX = 0.5*(xSize-deadO-deadI)*( 1. - (0.5*(maxYSize-deadS) -fabs(locY))/dY )+0.5*(deadI-deadO) ; + locX = 0.5*(xSize-deadO-deadI)*( 1. - (0.5*(maxYSize-deadS) -std::abs(locY))/dY )+0.5*(deadI-deadO) ; } @@ -379,9 +379,9 @@ namespace MuonGM { double gangLength = xSize-deadO-deadI ; - if (fabs(locY)>0.5*minYSize-deadS) { + if (std::abs(locY)>0.5*minYSize-deadS) { - gangLength = (0.5*maxYSize-deadS - fabs(locY))/dY * (xSize-deadI-deadO); + gangLength = (0.5*maxYSize-deadS - std::abs(locY))/dY * (xSize-deadI-deadO); } diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/sTgcReadoutElement.h b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/sTgcReadoutElement.h index c9f42c62e5c..12e869bd182 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/sTgcReadoutElement.h +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/sTgcReadoutElement.h @@ -231,7 +231,7 @@ namespace MuonGM { inline int sTgcReadoutElement::boundaryHash( const Identifier& id ) const { int iphi = manager()->stgcIdHelper()->channelType(id)!=1 ? 1:0 ; // wires and pads have locX oriented along phi - if (abs(getStationEta())<3) iphi += 2*(manager()->stgcIdHelper()->gasGap(id)-1); + if (std::abs(getStationEta())<3) iphi += 2*(manager()->stgcIdHelper()->gasGap(id)-1); return iphi; } diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/CscReadoutElement.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/CscReadoutElement.cxx index df1436262cd..1d59c4e3715 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/CscReadoutElement.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/CscReadoutElement.cxx @@ -359,7 +359,7 @@ double CscReadoutElement::stripLength(int chamberLayer, int measuresPhi, double pos = stripWidth * (stripNumber-0.5-numberOfStrips/2.0); epsilon = lengthCorrection(measuresPhi,pos); - double stripPos = fabs(pos); + double stripPos = std::abs(pos); if (measuresPhi==0) { double effectiveLength = stripWidth * numberOfStrips; @@ -399,8 +399,8 @@ double CscReadoutElement::lengthCorrection(int measuresPhi, double stripPos) con double shortLength = bigLength - (bigWidth-gslWidth)*tan(alpha)/2.; if (measuresPhi == 1) { - if ( fabs(stripPos) > (gslWidth/2.) ) - epsilon = ( fabs(stripPos)-gslWidth/2. ) * tan(alpha); + if ( std::abs(stripPos) > (gslWidth/2.) ) + epsilon = ( std::abs(stripPos)-gslWidth/2. ) * tan(alpha); } else { double z0 = shortLength-bigLength/2; diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/GlobalUtilities.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/GlobalUtilities.cxx index 1bc81f06831..24f3f61ebb0 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/GlobalUtilities.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/GlobalUtilities.cxx @@ -51,7 +51,7 @@ int stationPhiTGC(std::string stName, int fi, int zi_input, std::string geometry std::string stName3 = stName.substr(0,3); int stphi = 0; - int zi = abs(zi_input); + int zi = std::abs(zi_input); fi -= 1; // start from 0 @@ -98,7 +98,7 @@ int stationPhiTGC(std::string stName, int fi, int zi_input, std::string geometry { int nch = 3; if ( (stName).substr(2,1) == "E" ) nch=6; - int fioff = abs(zi); + int fioff = std::abs(zi); if (fioff>3 && (stName).substr(2,1) == "F") fioff = fioff-3; // minumum stPhi at phi 0 if ((stName).substr(2,1) == "F") fioff = fioff -1; diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx index 49671680b31..d618bc5b582 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx @@ -233,7 +233,7 @@ double MdtReadoutElement::distanceFromRO(Amg::Vector3D x, Identifier id) const double scalprod = c_ro.x()*x_ro.x()+c_ro.y()*x_ro.y()+c_ro.z()*x_ro.z(); double wlen = getWireLength(tubelayer, tube); if (wlen > 10.*CLHEP::mm) - scalprod = fabs(2.*scalprod/getWireLength(tubelayer, tube)); + scalprod = std::abs(2.*scalprod/getWireLength(tubelayer, tube)); else { double xx = x.x(); double xy = x.y(); @@ -1105,11 +1105,11 @@ MdtReadoutElement::posOnDefChamWire( const Amg::Vector3D& locAMDBPos, #endif double s0mdt = s0; // always I think ! - if (fabs(fixedPoint.x())>0.01) s0mdt = s0-fixedPoint.x(); + if (std::abs(fixedPoint.x())>0.01) s0mdt = s0-fixedPoint.x(); double z0mdt = z0; // unless in the D section of this station there's a dy diff. from 0 for the innermost MDT multilayer (sometimes in the barrel) - if (fabs(fixedPoint.y())>0.01) z0mdt = z0-fixedPoint.y(); + if (std::abs(fixedPoint.y())>0.01) z0mdt = z0-fixedPoint.y(); double t0mdt = t0; // unless in the D section of this station there's a dz diff. from 0 for the innermost MDT multilayer (often in barrel) - if (fabs(fixedPoint.z())>0.01) t0mdt = t0-fixedPoint.z(); + if (std::abs(fixedPoint.z())>0.01) t0mdt = t0-fixedPoint.z(); if (z0mdt<0 || t0mdt<0) { #ifndef TESTBLINES MsgStream log(Athena::getMessageSvc(),"MdtReadoutElement"); diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx index ece408a00bd..3a0d5ddde3b 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx @@ -369,11 +369,11 @@ MuonDetectorManager::muonStationKey(std::string stName, int statEtaIndex, int st std::string key; if (statEtaIndex<0) key = stName.substr(0,3) - +"_C_zi"+MuonGM::buildString(abs(statEtaIndex),2) + +"_C_zi"+MuonGM::buildString(std::abs(statEtaIndex),2) +"fi"+MuonGM::buildString(statPhiIndex,2); else key = stName.substr(0,3) - +"_A_zi"+MuonGM::buildString(abs(statEtaIndex),2) + +"_A_zi"+MuonGM::buildString(std::abs(statEtaIndex),2) +"fi"+MuonGM::buildString(statPhiIndex,2); return key; } @@ -443,18 +443,18 @@ void MuonDetectorManager::addRpcReadoutElement (RpcReadoutElement* x, Identifier // to be addressed with a dbz_index=dbZ+1 if (m_rpcIdHelper->stationNameString(m_rpcIdHelper->stationName(id)) == "BMS") { - if (abs(m_rpcIdHelper->stationEta(id)) == 2 && + if (std::abs(m_rpcIdHelper->stationEta(id)) == 2 && m_rpcIdHelper->doubletZ(id) == 3) { if (doubletPhi == 2) dbz_index++; } - else if (abs(m_rpcIdHelper->stationEta(id)) == 4 && + else if (std::abs(m_rpcIdHelper->stationEta(id)) == 4 && m_rpcIdHelper->doubletR(id) == 2 && m_rpcIdHelper->doubletZ(id) == 3) { if (doubletPhi == 2) dbz_index++; } - else if (abs(m_rpcIdHelper->stationEta(id)) == 4 && + else if (std::abs(m_rpcIdHelper->stationEta(id)) == 4 && m_rpcIdHelper->doubletR(id) == 1 && m_rpcIdHelper->doubletZ(id) == 2) { @@ -526,18 +526,18 @@ const RpcReadoutElement* MuonDetectorManager::getRpcReadoutElement (const Identi // to be addressed with a dbz_index=dbZ+1 if (m_rpcIdHelper->stationNameString(m_rpcIdHelper->stationName(id)) == "BMS") { - if (abs(m_rpcIdHelper->stationEta(id)) == 2 && + if (std::abs(m_rpcIdHelper->stationEta(id)) == 2 && m_rpcIdHelper->doubletZ(id) == 3) { if (doubletPhi == 2) dbz_index++; } - else if (abs(m_rpcIdHelper->stationEta(id)) == 4 && + else if (std::abs(m_rpcIdHelper->stationEta(id)) == 4 && m_rpcIdHelper->doubletR(id) == 2 && m_rpcIdHelper->doubletZ(id) == 3) { if (doubletPhi == 2) dbz_index++; } - else if (abs(m_rpcIdHelper->stationEta(id)) == 4 && + else if (std::abs(m_rpcIdHelper->stationEta(id)) == 4 && m_rpcIdHelper->doubletR(id) == 1 && m_rpcIdHelper->doubletZ(id) == 2) { @@ -1026,7 +1026,7 @@ const RpcReadoutElement* MuonDetectorManager::getRpcRElement_fromIdFields(int i1 int dbr = i4; int dbz = i5; - int absEta = abs(i2); + int absEta = std::abs(i2); // BMS 5/ |stEta|= 2 / dbR = 1 and 2 / dbZ = 3 @@ -1184,7 +1184,7 @@ MuonDetectorManager::initABlineContainers() id = m_cscIdHelper->elementID(stType, jzz, jff); if (log.level()<=MSG::DEBUG) log<<MSG::DEBUG<<"Filling A-line container with entry for key = "<<m_cscIdHelper->show_to_string(id)<<endmsg; } - else if (m_rpcIdHelper && stType.substr(0,3)=="BML" && abs(jzz)==7) + else if (m_rpcIdHelper && stType.substr(0,3)=="BML" && std::abs(jzz)==7) { // RPC case id = m_rpcIdHelper->elementID(stType, jzz, jff, 1); @@ -1464,7 +1464,7 @@ MuonDetectorManager::updateDeformations(const BLineMapContainer& blineData) <<BLine.en()<<")"<<endmsg; } BLine.getAmdbId(stType, jff, jzz, job); - if (stType.substr(0,1)=="T" || stType.substr(0,1)=="C" || (stType.substr(0,3)=="BML" && abs(jzz)==7) ) { + if (stType.substr(0,1)=="T" || stType.substr(0,1)=="C" || (stType.substr(0,3)=="BML" && std::abs(jzz)==7) ) { if (log.level()<=MSG::DEBUG) log<<MSG::DEBUG <<"BLinePar with AmdbId " <<stType<<" "<<jzz<<" "<<jff<<" "<<job diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonPadDesign.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonPadDesign.cxx index 3f2674987c5..dbd0527b041 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonPadDesign.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonPadDesign.cxx @@ -14,7 +14,7 @@ bool MuonPadDesign::withinSensitiveArea(const Amg::Vector2D& pos) const double bot_H2 = minSensitiveY(); double max_x = maxAbsSensitiveX(pos.y()); bool y_in_range = (pos.y() <= top_H1 and pos.y() >= bot_H2); - bool x_in_range = fabs(pos.x()) <= max_x+0.01; + bool x_in_range = std::abs(pos.x()) <= max_x+0.01; return y_in_range and x_in_range; } //---------------------------------------------------------- diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonStation.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonStation.cxx index 58d1431c8e0..c35a4cfe3a7 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonStation.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonStation.cxx @@ -76,7 +76,7 @@ void MuonStation::setNominalAmdbLRSToGlobal(HepGeom::Transform3D xf) void MuonStation::setBlineFixedPointInAmdbLRS(double s0, double z0, double t0) { #ifndef NDEBUG - if ((std::fabs(s0)+std::fabs(z0)+std::fabs(t0))>0.01) { + if ((std::abs(s0)+std::abs(z0)+std::abs(t0))>0.01) { MsgStream log(Athena::getMessageSvc(),"MuonStation"); if (log.level()<=MSG::DEBUG) log << MSG::DEBUG << "Station "<<getStationType() <<" at zi/fi "<<getEtaIndex()<<"/"<<getPhiIndex() @@ -125,7 +125,7 @@ void MuonStation::updateBlineFixedPointInAmdbLRS() // Correct for tube staggering on barrel side C double shiftInZ = -0.5 * mdtRE->tubePitch(); - // in addition, correct for 35µm glue width incorrectly applied + // in addition, correct for 35microm glue width incorrectly applied double multilayerRealSize = 0; for (int ilayer=1; ilayer<=2; ++ilayer) { double val; @@ -225,7 +225,7 @@ MuonStation::setDelta_fromAline(double tras, double traz, double trat, m_rott = rott; HepGeom::Transform3D delta_amdb = HepGeom::Transform3D::Identity; - if (std::fabs(tras)+std::fabs(traz)+std::fabs(trat)+(std::fabs(rots)+std::fabs(rotz)+std::fabs(rott))*1000. > 0.01) + if (std::abs(tras)+std::abs(traz)+std::abs(trat)+(std::abs(rots)+std::abs(rotz)+std::abs(rott))*1000. > 0.01) { // compute the delta transform in the local AMDB frame delta_amdb = HepGeom::TranslateX3D(tras)*HepGeom::TranslateY3D(traz)* @@ -337,7 +337,7 @@ MuonStation::setDelta_fromAline_forComp(int jobindex, <<getStationName()<<" at zi/fi = "<<getEtaIndex()<<"/"<<getPhiIndex()<<endmsg; return; } - if (std::fabs(tras)+std::fabs(traz)+std::fabs(trat)+(std::fabs(rots)+std::fabs(rotz)+std::fabs(rott))*1000. < 0.01) + if (std::abs(tras)+std::abs(traz)+std::abs(trat)+(std::abs(rots)+std::abs(rotz)+std::abs(rott))*1000. < 0.01) { if (log.level()<=MSG::DEBUG) log<<MSG::DEBUG <<"setDelta_fromAline_forComp: A-line ignored --- too small (translations < 10microns & rotations <10microrad)"<<endmsg; return; @@ -353,7 +353,7 @@ MuonStation::setDelta_fromAline_forComp(int jobindex, //HepGeom::Point3D<double> thisREcenter = getMuonReadoutElement(jobindex)->center(); HepGeom::Point3D<double> thisREnominalCenter=(HepGeom::Transform3D(Amg::EigenTransformToCLHEP(getMuonReadoutElement(jobindex)->defTransform())))*HepGeom::Point3D<double>(0.,0.,0.); double Rcomp = thisREnominalCenter.perp()-(getMuonReadoutElement(jobindex)->getRsize())/2.; - double DZcomp = std::fabs(thisREnominalCenter.z())-std::fabs(((*m_amdbl_to_global)*HepGeom::Point3D<double>(0.,0.,0)).z())-std::fabs((getMuonReadoutElement(jobindex)->getZsize())/2.); + double DZcomp = std::abs(thisREnominalCenter.z())-std::abs(((*m_amdbl_to_global)*HepGeom::Point3D<double>(0.,0.,0)).z())-std::abs((getMuonReadoutElement(jobindex)->getZsize())/2.); HepGeom::Transform3D childToLocAmdbComponent; HepGeom::Transform3D childToLocAmdbStation = HepGeom::Transform3D(*m_native_to_amdbl)*parentToChildT; @@ -567,8 +567,8 @@ double MuonStation::RsizeMdtStation() const } else { - if (barrel()) Rsize += std::fabs(Rpos.x()-RposFirst.x()); - else Rsize += std::fabs(Rpos.y()-RposFirst.y()); + if (barrel()) Rsize += std::abs(Rpos.x()-RposFirst.x()); + else Rsize += std::abs(Rpos.y()-RposFirst.y()); } } } @@ -609,8 +609,8 @@ double MuonStation::ZsizeMdtStation() const } else { - if (barrel()) Zsize += std::fabs(Zpos.z()-ZposFirst.z()); - else Zsize += std::fabs(Zpos.x()-ZposFirst.x()); + if (barrel()) Zsize += std::abs(Zpos.z()-ZposFirst.z()); + else Zsize += std::abs(Zpos.x()-ZposFirst.x()); } } } diff --git a/MuonSpectrometer/MuonDigitization/MM_Digitization/MM_Digitization/MM_StripsResponseSimulation.h b/MuonSpectrometer/MuonDigitization/MM_Digitization/MM_Digitization/MM_StripsResponseSimulation.h index 2163d38de5d..b879888dabe 100644 --- a/MuonSpectrometer/MuonDigitization/MM_Digitization/MM_Digitization/MM_StripsResponseSimulation.h +++ b/MuonSpectrometer/MuonDigitization/MM_Digitization/MM_Digitization/MM_StripsResponseSimulation.h @@ -112,7 +112,7 @@ private: float m_qThreshold; - /** // 0.350/10 diffusSigma=transverse diffusion (350 μm per 1cm ) for 93:7 @ 600 V/cm, according to garfield */ + /** // 0.350/10 diffusSigma=transverse diffusion (350 microm per 1cm ) for 93:7 @ 600 V/cm, according to garfield */ float m_transverseDiffusionSigma; float m_longitudinalDiffusionSigma; float m_pitch; diff --git a/MuonSpectrometer/MuonDigitization/MM_Digitization/src/MM_ElectronicsResponseSimulation.cxx b/MuonSpectrometer/MuonDigitization/MM_Digitization/src/MM_ElectronicsResponseSimulation.cxx index c3ba21bcae3..72509ec96b4 100644 --- a/MuonSpectrometer/MuonDigitization/MM_Digitization/src/MM_ElectronicsResponseSimulation.cxx +++ b/MuonSpectrometer/MuonDigitization/MM_Digitization/src/MM_ElectronicsResponseSimulation.cxx @@ -20,7 +20,7 @@ std::vector<float> shaperInputCharge; double shaperResponseFunction(double *x, double *par){ double response=0; for(size_t i=0; i<shaperInputTime.size(); i++){ - double amp = (x[0]>shaperInputTime[i])? shaperInputCharge[i]*pow((x[0]-shaperInputTime[i])/par[1],par[0])*exp(-(x[0]-shaperInputTime[i])/par[1]) :0; + double amp = (x[0]>shaperInputTime[i])? shaperInputCharge[i]*std::pow((x[0]-shaperInputTime[i])/par[1],par[0])*std::exp(-(x[0]-shaperInputTime[i])/par[1]) :0; response += amp; } return response; diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg.cxx index e6f380d37f9..d46df0c7ba3 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg.cxx @@ -408,9 +408,9 @@ TgcLv1RawDataValAlg::procHistograms(){ // Get Fractions and Errors fp=fc=fn=efp=efc=efn=0; if( tot != 0 ){ - fp= p/tot; efp = sqrt( fp*(1.-fp)/tot ); - fc= c/tot; efc = sqrt( fc*(1.-fc)/tot ); - fn= n/tot; efn = sqrt( fn*(1.-fn)/tot ); + fp= p/tot; efp = std::sqrt( fp*(1.-fp)/tot ); + fc= c/tot; efc = std::sqrt( fc*(1.-fc)/tot ); + fn= n/tot; efn = std::sqrt( fn*(1.-fn)/tot ); } // Fill Fractions into map m_tgclv1slcurrentfractionmap[ac]->SetBinContent(etabinp +1, phi48, fp); @@ -431,9 +431,9 @@ TgcLv1RawDataValAlg::procHistograms(){ // Get Fractions and Errors fp=fc=fn=efp=efc=efn=0; if( tot != 0 ){ - fp= p/tot; efp = sqrt( fp*(1.-fp)/tot ); - fc= c/tot; efc = sqrt( fc*(1.-fc)/tot ); - fn= n/tot; efn = sqrt( fn*(1.-fn)/tot ); + fp= p/tot; efp = std::sqrt( fp*(1.-fp)/tot ); + fc= c/tot; efc = std::sqrt( fc*(1.-fc)/tot ); + fn= n/tot; efn = std::sqrt( fn*(1.-fn)/tot ); } // Fill Fractions into map m_tgclv1lptcurrentfractionmap[ac]->SetBinContent(etabinp +1, phi48, fp); diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg_Functions.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg_Functions.cxx index 2338f61f3ad..2a37e9f7d74 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg_Functions.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg_Functions.cxx @@ -134,7 +134,7 @@ TgcLv1RawDataValAlg::deltaR(float eta1, float phi1, float eta2, float phi2){ float deta = eta1 - eta2; float dphi = acos(cos(phi1-phi2)); - return sqrt( deta*deta + dphi*dphi ); + return std::sqrt( deta*deta + dphi*dphi ); } /////////////////////////////////////////////////////////////////////////// diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg_NumberOfTrigger.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg_NumberOfTrigger.cxx index 2fac5209b64..ab55ab72adf 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg_NumberOfTrigger.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg_NumberOfTrigger.cxx @@ -684,7 +684,6 @@ TgcLv1RawDataValAlg::fillNumberOfTrigger(){ if(pcn==CURR){ if(t_isInner){ if(ws==0){ - //std::cout<<"bEIFI "<<b_EI0<<"/"<<b_FI0<<"/"<<b_EI1<<"/"<<b_FI1<<"/"<<b_EI2<<"/"<<b_FI2<<std::endl; if (b_EI0 == 1)m_tgclv1hptstripinlbvssecteifilumi[ac]->Fill(m_lumiblock,0); if (b_FI0 == 1)m_tgclv1hptstripinlbvssecteifilumi[ac]->Fill(m_lumiblock,1); if (b_EI1 == 1)m_tgclv1hptstripinlbvssecteifilumi[ac]->Fill(m_lumiblock,2); diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg_ReadContainer.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg_ReadContainer.cxx index df96df67e29..bfa97d2651d 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg_ReadContainer.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcLv1RawDataValAlg_ReadContainer.cxx @@ -329,7 +329,7 @@ TgcLv1RawDataValAlg::readOfflineMuonContainer(std::vector<float>* mu_pt, std::ve float deta = std::abs(mu_eta->at(itr) - eta); float dphi = std::abs(mu_phi->at(itr) - phi); if(dphi > M_PI) dphi = 2*M_PI - dphi; - if(sqrt(deta*deta + dphi*dphi) < 0.1){ + if(std::sqrt(deta*deta + dphi*dphi) < 0.1){ if(pt > mu_pt->at(itr)){ std::vector<float>::iterator ipt; ipt = mu_pt->begin(); diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcRawDataMonitorAlgorithm.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcRawDataMonitorAlgorithm.cxx index 3627fdd0649..2d0e7fbbfc1 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcRawDataMonitorAlgorithm.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcRawDataMonitorAlgorithm.cxx @@ -559,9 +559,9 @@ TgcRawDataMonitorAlgorithm::getError(const std::vector<double>& inputVec) const } const double mean = sum/nSize; for(int jj = 0; jj < nSize; jj++){ - sum2 = sum2 + pow((inputVec.at(jj)-mean),2); + sum2 = sum2 + std::pow((inputVec.at(jj)-mean),2); } - const double stdDev = sqrt(sum2/nSize); + const double stdDev = std::sqrt(sum2/nSize); return stdDev; } diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcRawDataValAlg_Efficiency.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcRawDataValAlg_Efficiency.cxx index 13fe8a63402..1b75ab83956 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcRawDataValAlg_Efficiency.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/TgcRawDataMonitoring/src/TgcRawDataValAlg_Efficiency.cxx @@ -444,7 +444,7 @@ TgcRawDataValAlg::fillEfficiency(){ // channel number +offset for wires and strips in each layer int chIds[2][9] = {{-9999,-9999,-9999,-9999,-9999,-9999,-9999,-9999,-9999,}, {-9999,-9999,-9999,-9999,-9999,-9999,-9999,-9999,-9999,}};//[ws][layer] - // Eta and Phi positions of channels (layer2 has no strips) + // Eta and Phi positions of channels (layer2 has no strips) double chEtas[2][9] = {{-99,-99,-99,-99,-99,-99,-99,-99,-99,}, {-99, -1,-99,-99,-99,-99,-99,-99,-99,}};//[ws][layer] double chPhis[2][9] = {{-99,-99,-99,-99,-99,-99,-99,-99,-99,}, diff --git a/PhysicsAnalysis/MuonID/MuonPerformanceAnalysis/MuonResonanceTools/Root/MuonResonancePlots.cxx b/PhysicsAnalysis/MuonID/MuonPerformanceAnalysis/MuonResonanceTools/Root/MuonResonancePlots.cxx index 1162e63ec1c..65367477477 100644 --- a/PhysicsAnalysis/MuonID/MuonPerformanceAnalysis/MuonResonanceTools/Root/MuonResonancePlots.cxx +++ b/PhysicsAnalysis/MuonID/MuonPerformanceAnalysis/MuonResonanceTools/Root/MuonResonancePlots.cxx @@ -344,7 +344,7 @@ float MuonResonancePlots::deltaPt(TLorentzVector v1, TLorentzVector v2){ } -// function to return Chi² / DoF +// function to return Chi^2 / DoF float MuonResonancePlots::getChiSquared(const xAOD::Muon& mu, int type){ const xAOD::TrackParticle *cb_ = mu.trackParticle(xAOD::Muon::CombinedTrackParticle); -- GitLab From 8de9ee69cd6232f5f802fd8b4ee8ce2a37ae9658 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi <averbyts@cern.ch> Date: Sun, 26 Jul 2020 13:39:55 +0200 Subject: [PATCH 147/459] Cleanup of AtlasHepMC. --- Generators/AtlasHepMC/AtlasHepMC/GenParticle.h | 3 --- Generators/AtlasHepMC/AtlasHepMC/GenVertex.h | 8 -------- 2 files changed, 11 deletions(-) diff --git a/Generators/AtlasHepMC/AtlasHepMC/GenParticle.h b/Generators/AtlasHepMC/AtlasHepMC/GenParticle.h index 1fa860d0bc2..a519f97ac98 100644 --- a/Generators/AtlasHepMC/AtlasHepMC/GenParticle.h +++ b/Generators/AtlasHepMC/AtlasHepMC/GenParticle.h @@ -16,9 +16,6 @@ typedef HepMC3::ConstGenParticlePtr ConstGenParticlePtr; inline GenParticlePtr newGenParticlePtr(const HepMC3::FourVector &mom = HepMC3::FourVector::ZERO_VECTOR(), int pid = 0, int status = 0) { return std::make_shared<HepMC3::GenParticle>(mom,pid,status); } -inline GenParticlePtr newGenParticlePtr(const HepMC3::FourVector &mom, int pid , int status , HepMC::Flow fl, HepMC::Polarization pol) { - return std::make_shared<HepMC3::GenParticle>(mom,pid,status); -} inline int barcode(GenParticlePtr p){ std::shared_ptr<HepMC3::IntAttribute> barcode=p->attribute<HepMC3::IntAttribute>("barcode"); return barcode?(barcode->value()):0; diff --git a/Generators/AtlasHepMC/AtlasHepMC/GenVertex.h b/Generators/AtlasHepMC/AtlasHepMC/GenVertex.h index e1a6cc5524e..15f53b7f031 100644 --- a/Generators/AtlasHepMC/AtlasHepMC/GenVertex.h +++ b/Generators/AtlasHepMC/AtlasHepMC/GenVertex.h @@ -34,14 +34,6 @@ inline int barcode(HepMC3::GenVertex p){ return barcode?(barcode->value()):0; } -inline std::vector<HepMC3::GenVertexPtr> DESCENDANTS(HepMC3::GenVertexPtr endvtx) -{ -return std::vector<HepMC3::GenVertexPtr>(); -} -inline std::vector<HepMC3::ConstGenVertexPtr> DESCENDANTS(HepMC3::ConstGenVertexPtr endvtx) -{ -return std::vector<HepMC3::ConstGenVertexPtr>(); -} inline void* raw_pointer(GenVertexPtr p){ return p.get();} inline const void* raw_pointer(ConstGenVertexPtr p){ return p.get();} } -- GitLab From 5582a6bfc4659c9ba0071656070f6b7915ebcb34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20K=C3=B6hler?= <nicolas.koehler@cern.ch> Date: Sun, 26 Jul 2020 14:12:08 +0200 Subject: [PATCH 148/459] fix some thread-safety warnings --- .../MuonGeoModel/DetectorElement.h | 6 ++--- .../MuonGeoModel/MuonDetectorFactory001.h | 5 +++- .../src/MuonDetectorFactory001.cxx | 24 +++++++------------ 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DetectorElement.h b/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DetectorElement.h index dfd677390fc..0b0ad8ad9cb 100755 --- a/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DetectorElement.h +++ b/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DetectorElement.h @@ -17,7 +17,7 @@ namespace MuonGM { - class ATLAS_NOT_THREAD_SAFE DetectorElement { + class DetectorElement { public: std::string name; std::string logVolName; @@ -37,7 +37,7 @@ namespace MuonGM { log << MSG::INFO << "generic detector element" << endmsg; } - virtual ~DetectorElement() {} + virtual ~DetectorElement()=default; // Static @@ -49,7 +49,7 @@ namespace MuonGM { s_matManager = &matMan; } - static const AbsMaterialManager * getMaterialManager() { + const AbsMaterialManager * getMaterialManager() const { return s_matManager; } diff --git a/MuonSpectrometer/MuonGeoModel/MuonGeoModel/MuonDetectorFactory001.h b/MuonSpectrometer/MuonGeoModel/MuonGeoModel/MuonDetectorFactory001.h index 42c9d516944..cbe058fd860 100755 --- a/MuonSpectrometer/MuonGeoModel/MuonGeoModel/MuonDetectorFactory001.h +++ b/MuonSpectrometer/MuonGeoModel/MuonGeoModel/MuonDetectorFactory001.h @@ -34,7 +34,10 @@ public: // Creates the raw geometry tree: required, virtual void create (GeoPhysVol* world); - // Get the manager. + // this function is inherited from GeoVDetectorFactory where it is declared const. + // However, the MuonDetectorManager cannot be const since it holds the pointers to the readout elements, + // and those can change with alignment. Thus, this const method will create a thread-safety warning since + // the returned object is *not* const virtual MuonDetectorManager* getDetectorManager() const; inline void setDBAtlasVersion(std::string v); diff --git a/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx b/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx index 12b0f35fea8..779ee8afbe0 100755 --- a/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx @@ -199,49 +199,43 @@ namespace MuonGM { StatusCode sc = StatusCode::SUCCESS; - const DataHandle<MdtIdHelper> mdtidh; + const MdtIdHelper* mdtidh=nullptr; sc = m_pDetStore->retrieve(mdtidh,"MDTIDHELPER"); if ( sc.isFailure()) log << MSG::ERROR << " not found MDT " << endmsg; else log << MSG::INFO << "MDTIDHELPER retrieved from DetStore" << endmsg; - m_manager->set_mdtIdHelper(mdtidh); - const DataHandle<RpcIdHelper> rpcidh; + + const RpcIdHelper* rpcidh=nullptr; sc = m_pDetStore->retrieve(rpcidh,"RPCIDHELPER"); if ( sc.isFailure() ) log << MSG::ERROR << " not found RPC " << endmsg; else log << MSG::INFO << "RPCIDHELPER retrieved from DetStore" << endmsg; - m_manager->set_rpcIdHelper(rpcidh); - const DataHandle<TgcIdHelper> tgcidh; + + const TgcIdHelper* tgcidh=nullptr; sc = m_pDetStore->retrieve(tgcidh,"TGCIDHELPER"); if ( sc.isFailure() ) log << MSG::ERROR << " not found TGC " << endmsg; else log << MSG::INFO << "TGCIDHELPER retrieved from DetStore" << endmsg; - m_manager->set_tgcIdHelper(tgcidh); + if (m_hasCSC) { - const DataHandle<CscIdHelper> cscidh; + const CscIdHelper* cscidh=nullptr; sc = m_pDetStore->retrieve(cscidh,"CSCIDHELPER"); - if ( sc.isFailure() ) log << MSG::ERROR << " not found CSC " << endmsg; else log << MSG::INFO << "CSCIDHELPER retrieved from DetStore" << endmsg; - m_manager->set_cscIdHelper(cscidh); } if (m_hasSTgc) { - const DataHandle<sTgcIdHelper> stgcidh; + const sTgcIdHelper* stgcidh=nullptr; sc = m_pDetStore->retrieve(stgcidh,"STGCIDHELPER"); - if ( sc.isFailure() ) log << MSG::ERROR << " not found sTGC " << endmsg; else log << MSG::INFO << "STGCIDHELPER retrieved from DetStore" << endmsg; - m_manager->set_stgcIdHelper(stgcidh); } if (m_hasMM) { - const DataHandle<MmIdHelper> mmidh; + const MmIdHelper* mmidh=nullptr; sc = m_pDetStore->retrieve(mmidh,"MMIDHELPER"); - if ( sc.isFailure() ) log << MSG::ERROR << " not found MicroMegas " << endmsg; else log << MSG::INFO << "MMIDHELPER retrieved from DetStore" << endmsg; - m_manager->set_mmIdHelper(mmidh); } -- GitLab From 342dc15073ab80de9f4aa2bbb175e5367d875abd Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi <averbyts@cern.ch> Date: Sun, 26 Jul 2020 14:48:41 +0200 Subject: [PATCH 149/459] Migrate FlowAfterburner --- .../FlowAfterburner/AddFlowByShifting.h | 3 ++- Generators/FlowAfterburner/src/AddFlowByShifting.cxx | 12 +++++++++++- Generators/FlowAfterburner/src/CheckFlow.cxx | 2 +- Generators/FlowAfterburner/src/CheckFlow_New.cxx | 2 +- .../FlowAfterburner/src/CheckFlow_New_Minbias.cxx | 2 +- 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Generators/FlowAfterburner/FlowAfterburner/AddFlowByShifting.h b/Generators/FlowAfterburner/FlowAfterburner/AddFlowByShifting.h index e788faa5202..e4f86d06456 100644 --- a/Generators/FlowAfterburner/FlowAfterburner/AddFlowByShifting.h +++ b/Generators/FlowAfterburner/FlowAfterburner/AddFlowByShifting.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // File: Generators/FlowAfterburnber/AddFlowByShifting.h @@ -27,6 +27,7 @@ #include <CLHEP/Random/RandomEngine.h> #include "AthenaKernel/IAtRndmGenSvc.h" #include "GeneratorObjects/McEventCollection.h" +#include "AtlasHepMC/Relatives.h" #include <gsl/gsl_errno.h> #include <gsl/gsl_math.h> diff --git a/Generators/FlowAfterburner/src/AddFlowByShifting.cxx b/Generators/FlowAfterburner/src/AddFlowByShifting.cxx index b13cd775e76..676674f4a71 100644 --- a/Generators/FlowAfterburner/src/AddFlowByShifting.cxx +++ b/Generators/FlowAfterburner/src/AddFlowByShifting.cxx @@ -245,11 +245,13 @@ StatusCode AddFlowByShifting::execute() { #ifdef HEPMC3 int particles_in_event = (*itr)->particles().size(); + m_particles_processed = 0; + for ( auto parent: mainvtx->particles_out()) { #else int particles_in_event = (*itr)->particles_size(); -#endif m_particles_processed = 0; for ( auto parent: *mainvtx) { +#endif // Process particles from main vertex CLHEP::HepLorentzVector momentum(parent->momentum().px(), @@ -350,11 +352,15 @@ void AddFlowByShifting::MoveDescendantsToParent ATH_MSG_DEBUG("Processing branch of parent particle "<< HepMC::barcode(parent)); // now rotate descendant vertices +#ifdef HEPMC3 + for (HepMC::GenVertexPtr descvtx: HepMC::descendant_vertices(endvtx)) { +#else for ( HepMC::GenVertex::vertex_iterator descvtxit = endvtx->vertices_begin(HepMC::descendants); descvtxit != endvtx->vertices_end(HepMC::descendants); ++descvtxit) { auto descvtx = (*descvtxit); +#endif ATH_MSG_DEBUG("Processing vertex " << HepMC::barcode(descvtx)); // rotate vertex @@ -368,7 +374,11 @@ void AddFlowByShifting::MoveDescendantsToParent } // now rotate their associated particles +#ifdef HEPMC3 + for (auto descpart: descvtx->particles_out()){ +#else for (auto descpart: *descvtx){ +#endif CLHEP::HepLorentzVector momentum(descpart->momentum().px(), descpart->momentum().py(), descpart->momentum().pz(), diff --git a/Generators/FlowAfterburner/src/CheckFlow.cxx b/Generators/FlowAfterburner/src/CheckFlow.cxx index cc3af1f4af0..db8292b1d17 100644 --- a/Generators/FlowAfterburner/src/CheckFlow.cxx +++ b/Generators/FlowAfterburner/src/CheckFlow.cxx @@ -203,7 +203,7 @@ StatusCode CheckFlow::execute() { // Iterate over MC particles We are using the IsGenStable predicate from // IsGenStable ifs; GenAll ifs; - MCParticleCollection particles; + std::vector<HepMC::ConstGenParticlePtr> particles; StatusCode stat = m_tesIO->getMC(particles, &ifs, m_key); if (stat.isFailure()) { msg(MSG::ERROR) << "Could not find " << m_key << endmsg; diff --git a/Generators/FlowAfterburner/src/CheckFlow_New.cxx b/Generators/FlowAfterburner/src/CheckFlow_New.cxx index 087b4188d00..a7cebbd8be5 100644 --- a/Generators/FlowAfterburner/src/CheckFlow_New.cxx +++ b/Generators/FlowAfterburner/src/CheckFlow_New.cxx @@ -279,7 +279,7 @@ StatusCode CheckFlow_New::execute() { // Iterate over all MC particles GenAll ifs; - MCParticleCollection particles; + std::vector<HepMC::ConstGenParticlePtr> particles; StatusCode stat = m_tesIO->getMC(particles, &ifs, m_key); if (stat.isFailure()) { msg(MSG::ERROR) << "Could not find " << m_key << endmsg; diff --git a/Generators/FlowAfterburner/src/CheckFlow_New_Minbias.cxx b/Generators/FlowAfterburner/src/CheckFlow_New_Minbias.cxx index daeb30c2f53..764f5ce9be0 100644 --- a/Generators/FlowAfterburner/src/CheckFlow_New_Minbias.cxx +++ b/Generators/FlowAfterburner/src/CheckFlow_New_Minbias.cxx @@ -259,7 +259,7 @@ StatusCode CheckFlow_New_Minbias::execute() { // Iterate over MC particles We are using the IsGenStable predicate from IsGenStable ifs; GenAll ifs; - MCParticleCollection particles; + std::vector<HepMC::ConstGenParticlePtr> particles; CHECK(m_tesIO->getMC(particles, &ifs, m_key)); for (auto pitr: particles) { -- GitLab From 74dc9a6dd4a797f598007543835a939dbf627139 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Sun, 26 Jul 2020 14:56:55 +0100 Subject: [PATCH 150/459] post to pre increment --- .../MagFieldElements/BFieldCache.h | 1 - .../MagFieldElements/BFieldMesh.icc | 20 +++++++++---------- .../MagFieldElements/BFieldMeshZR.icc | 4 ++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/MagneticField/MagFieldElements/MagFieldElements/BFieldCache.h b/MagneticField/MagFieldElements/MagFieldElements/BFieldCache.h index 5fc675f08b3..e42b999ef3b 100644 --- a/MagneticField/MagFieldElements/MagFieldElements/BFieldCache.h +++ b/MagneticField/MagFieldElements/MagFieldElements/BFieldCache.h @@ -30,7 +30,6 @@ public: , m_phimin(0.0) , m_phimax(-1.0) { - ; } // make this cache invalid, so that inside() will fail void invalidate() diff --git a/MagneticField/MagFieldElements/MagFieldElements/BFieldMesh.icc b/MagneticField/MagFieldElements/MagFieldElements/BFieldMesh.icc index a239bd5f5e2..810c9739fdc 100644 --- a/MagneticField/MagFieldElements/MagFieldElements/BFieldMesh.icc +++ b/MagneticField/MagFieldElements/MagFieldElements/BFieldMesh.icc @@ -53,21 +53,21 @@ BFieldMesh<T>::getCache(double z, int iz = int((z - zmin()) * m_invUnit[0]); // index to LUT iz = m_LUT[0][iz]; // tentative mesh index from LUT if (z > mz[iz + 1]) { - iz++; + ++iz; } // r const std::vector<double>& mr(m_mesh[1]); int ir = int((r - rmin()) * m_invUnit[1]); // index to LUT ir = m_LUT[1][ir]; // tentative mesh index from LUT if (r > mr[ir + 1]) { - ir++; + ++ir; } // phi const std::vector<double>& mphi(m_mesh[2]); int iphi = int((phi - phimin()) * m_invUnit[2]); // index to LUT iphi = m_LUT[2][iphi]; // tentative mesh index from LUT if (phi > mphi[iphi + 1]) { - iphi++; + ++iphi; } // store the bin edges cache.setRange( @@ -111,7 +111,7 @@ BFieldMesh<T>::getB(const double* ATH_RESTRICT xyz, if (!inside(z, r, phi)) { // no B[0] = B[1] = B[2] = 0.0; if (deriv) { - for (int i = 0; i < 9; i++) { + for (int i = 0; i < 9; ++i) { deriv[i] = 0.0; } } @@ -123,21 +123,21 @@ BFieldMesh<T>::getB(const double* ATH_RESTRICT xyz, int iz = int((z - zmin()) * m_invUnit[0]); // index to LUT iz = m_LUT[0][iz]; // tentative mesh index from LUT if (z > mz[iz + 1]) { - iz++; + ++iz; } // r const std::vector<double>& mr(m_mesh[1]); int ir = int((r - rmin()) * m_invUnit[1]); // index to LUT ir = m_LUT[1][ir]; // tentative mesh index from LUT if (r > mr[ir + 1]) { - ir++; + ++ir; } // phi const std::vector<double>& mphi(m_mesh[2]); int iphi = int((phi - phimin()) * m_invUnit[2]); // index to LUT iphi = m_LUT[2][iphi]; // tentative mesh index from LUT if (phi > mphi[iphi + 1]) { - iphi++; + ++iphi; } // get the B field at the 8 corners int im0 = iz * m_zoff + ir * m_roff + iphi; // index of the first corner @@ -159,7 +159,7 @@ BFieldMesh<T>::getB(const double* ATH_RESTRICT xyz, const double scale = m_scale; // interpolate field values in z, r, phi double Bzrphi[3]; - for (int i = 0; i < 3; i++) { // z, r, phi + for (int i = 0; i < 3; ++i) { // z, r, phi Bzrphi[i] = scale * (gz * (gr * (gphi * field[0][i] + fphi * field[1][i]) + fr * (gphi * field[2][i] + fphi * field[3][i])) + fz * (gr * (gphi * field[4][i] + fphi * field[5][i]) + @@ -177,7 +177,7 @@ BFieldMesh<T>::getB(const double* ATH_RESTRICT xyz, const double sz = m_scale / (mz[iz + 1] - mz[iz]); const double sr = m_scale / (mr[ir + 1] - mr[ir]); const double sphi = m_scale / (mphi[iphi + 1] - mphi[iphi]); - + std::array<double,3> dBdz; std::array<double,3> dBdr; std::array<double,3> dBdphi; @@ -236,7 +236,7 @@ BFieldMesh<T>::buildLUT() int n = int(width / q) + 1; q = width / (n + 0.5); m_invUnit[j] = 1.0 / q; // new unit size - n++; + ++n; int m = 0; // mesh number for (int i = 0; i < n; ++i) { // LUT index if (i * q + m_mesh[j].front() > m_mesh[j][m + 1]) { diff --git a/MagneticField/MagFieldElements/MagFieldElements/BFieldMeshZR.icc b/MagneticField/MagFieldElements/MagFieldElements/BFieldMeshZR.icc index 92807b4df87..781dbf7dc88 100644 --- a/MagneticField/MagFieldElements/MagFieldElements/BFieldMeshZR.icc +++ b/MagneticField/MagFieldElements/MagFieldElements/BFieldMeshZR.icc @@ -17,14 +17,14 @@ BFieldMeshZR::getCache(double z, int iz = int((z - zmin()) * m_invUnit[0]); // index to LUT iz = m_LUT[0][iz]; // tentative mesh index from LUT if (z > mz[iz + 1]) { - iz++; + ++iz; } // r const std::vector<double>& mr(m_mesh[1]); int ir = int((r - rmin()) * m_invUnit[1]); // index to LUT ir = m_LUT[1][ir]; // tentative mesh index from LUT if (r > mr[ir + 1]) { - ir++; + ++ir; } // store the bin edges cache.setRange(mz[iz], mz[iz + 1], mr[ir], mr[ir + 1]); -- GitLab From fecd3f8edc76cfdd867899e2597bece248543406 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Wed, 6 May 2020 16:48:57 +0200 Subject: [PATCH 151/459] FlavorTagDiscriminants: Fix warnings. - Unused typedefs. - struct/class mismatch --- .../FlavorTagDiscriminants/HbbGraphConfig.h | 2 +- .../FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/HbbGraphConfig.h b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/HbbGraphConfig.h index e6adb68f30c..863439de662 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/HbbGraphConfig.h +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/HbbGraphConfig.h @@ -14,7 +14,7 @@ #include <string> namespace lwt { - class GraphConfig; + struct GraphConfig; } namespace FlavorTagDiscriminants { diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx index 60af7d82e5c..2ff561bd42f 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx @@ -112,11 +112,6 @@ BTagJetAugmenter::BTagJetAugmenter(std::string associator, FlavorTagDiscriminant m_rnnip_pbIsValid(rnn(f) + "_pbIsValid"), m_rnnip_isDefaults(rnn(f) + "_isDefaults") { - using namespace FlavorTagDiscriminants; - typedef SG::AuxElement::Decorator<float> ADF; - typedef SG::AuxElement::Decorator<double> ADD; - typedef SG::AuxElement::Decorator<char> ADC; - typedef SG::AuxElement::Decorator<int> ADI; } BTagJetAugmenter::~BTagJetAugmenter() = default; -- GitLab From 78ce9dc8c3fc21d22e8e7de83681b67fce4de964 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Tue, 14 Jul 2020 15:57:23 +0200 Subject: [PATCH 152/459] FlavorTagDiscriminants: Fix clang 10 warning. Spurious copy in range for. --- .../JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx index 2ff561bd42f..921d8fa3734 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx @@ -413,7 +413,7 @@ void BTagJetAugmenter::augment(const xAOD::Jet &jet) { max_track_flightDirRelEta = track_flightDirRelEta; } if (secondary_jf_vtx_index >= 0) { - for (const ElementLink<xAOD::TrackParticleContainer> vertex_track_particle : (**m_jf_vertices(btag).at(secondary_jf_vtx_index)).track_links()) { + for (const ElementLink<xAOD::TrackParticleContainer>& vertex_track_particle : (**m_jf_vertices(btag).at(secondary_jf_vtx_index)).track_links()) { if (*vertex_track_particle == &track_particle) { secondaryVtx_track_number++; TLorentzVector track_fourVector; -- GitLab From 0c33e417732b9d2484f7551c2c03dab66c39da07 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Wed, 15 Jul 2020 09:37:50 -0400 Subject: [PATCH 153/459] TriggerMenuMT: Deprecation fix. `assertRaisesRegexp' is deprecated in python 3.8. Use `assertRaisesRegex' instead. --- .../TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py index be4d7604f3d..d4ed0a34863 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration from TriggerMenuMT.HLTMenuConfig.Menu.CFValidation import findViewAlgs, checkVDV from AthenaCommon.AlgSequence import AlgSequence @@ -47,10 +47,10 @@ class ViewCFTest( unittest.TestCase ): # Check misconfigured EVCA evca1.ViewNodeName = "aFakeNode" - with self.assertRaisesRegexp( RuntimeError, "no corresponding upstream EventViewCreatorAlgorithm" ): + with self.assertRaisesRegex( RuntimeError, "no corresponding upstream EventViewCreatorAlgorithm" ): checkVDV( topSequence, [topSequence.name()], {} ) evca1.ViewNodeName = "viewSequence" - with self.assertRaisesRegexp( RuntimeError, "no external data" ): + with self.assertRaisesRegex( RuntimeError, "no external data" ): checkVDV( topSequence, [topSequence.name()], {} ) evca1.RequireParentView = True checkVDV( topSequence, [topSequence.name()], {} ) @@ -65,6 +65,6 @@ class ViewCFTest( unittest.TestCase ): topSequence.makeViewSequence += evca2 checkVDV( topSequence, [topSequence.name()], {} ) evca2.ViewNodeName = "viewSequence" - with self.assertRaisesRegexp( RuntimeError, "Found duplicate view node name" ): + with self.assertRaisesRegex( RuntimeError, "Found duplicate view node name" ): checkVDV( topSequence, [topSequence.name()], {} ) -- GitLab From 58f86ded58e2623407b2d3f8af00b519504f15b4 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sat, 25 Jul 2020 16:50:50 -0400 Subject: [PATCH 154/459] D3PDMakerCoreComps: Fix for getting DVLInfo. May need to explicitly call dvlinfo() on the DV class to get the DVLInfo object registered. --- .../D3PDMakerCoreComps/src/SGDataVectorGetterTool.cxx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/PhysicsAnalysis/D3PDMaker/D3PDMakerCoreComps/src/SGDataVectorGetterTool.cxx b/PhysicsAnalysis/D3PDMaker/D3PDMakerCoreComps/src/SGDataVectorGetterTool.cxx index 4c139236a1e..a46243e5e97 100644 --- a/PhysicsAnalysis/D3PDMaker/D3PDMakerCoreComps/src/SGDataVectorGetterTool.cxx +++ b/PhysicsAnalysis/D3PDMaker/D3PDMakerCoreComps/src/SGDataVectorGetterTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // $Id: SGDataVectorGetterTool.cxx 790090 2016-12-16 05:31:29Z ssnyder $ @@ -79,6 +79,13 @@ StatusCode SGDataVectorGetterTool::initialize() meth.Execute(); m_info = getInfo (typeinfo()); } + if (!m_info) { + TClass* cls = gROOT->GetClass (m_typename.c_str()); + TMethodCall meth (cls, "dvlinfo", ""); + if (meth.IsValid()) + meth.Execute(); + m_info = getInfo (typeinfo()); + } if (!m_info) { REPORT_MESSAGE (MSG::ERROR) -- GitLab From 94a8532ca205c750d532fcc63b4f813677e011ba Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Fri, 24 Jul 2020 05:36:34 +0200 Subject: [PATCH 155/459] OutputStreamAthenaPool: python 3 fixes No need to create a subprocess to find the current directory! --- .../OutputStreamAthenaPool/python/MultipleStreamManager.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Database/AthenaPOOL/OutputStreamAthenaPool/python/MultipleStreamManager.py b/Database/AthenaPOOL/OutputStreamAthenaPool/python/MultipleStreamManager.py index 8886c039283..7fea06f370e 100644 --- a/Database/AthenaPOOL/OutputStreamAthenaPool/python/MultipleStreamManager.py +++ b/Database/AthenaPOOL/OutputStreamAthenaPool/python/MultipleStreamManager.py @@ -6,6 +6,7 @@ ## creation: David Cote (May 2008) ## ######################################################## from __future__ import print_function +import os class AugmentedStreamBase: """This class manages common methods of AugmentedPoolStream and AugmentedByteStream.""" @@ -272,9 +273,7 @@ class AugmentedByteStream( AugmentedStreamBase ): svcMgr.ToolSvc += self.bsCopyTool #default output directory - import subprocess - cmd='pwd' - (statusCode,outDir) = subprocess.getstatusoutput(cmd) + outDir = os.getcwd() outDir+="/" # BS output Svc -- GitLab From c6a4cd0d43733ebcc7081c330323ae6b24ed8602 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sat, 18 Jul 2020 13:44:28 -0400 Subject: [PATCH 156/459] xAODMetaDataCnv: Fix clang warnings. Missing override keywords. --- Event/xAOD/xAODMetaDataCnv/src/FileMetaDataMarkUpTool.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Event/xAOD/xAODMetaDataCnv/src/FileMetaDataMarkUpTool.h b/Event/xAOD/xAODMetaDataCnv/src/FileMetaDataMarkUpTool.h index d20cba2aa19..8e804b55416 100644 --- a/Event/xAOD/xAODMetaDataCnv/src/FileMetaDataMarkUpTool.h +++ b/Event/xAOD/xAODMetaDataCnv/src/FileMetaDataMarkUpTool.h @@ -74,10 +74,10 @@ namespace xAODMaker { /// @{ /// Function collecting the metadata from a new input file - virtual StatusCode beginInputFile(); + virtual StatusCode beginInputFile() override; /// Function writing the collected metadata to the output - virtual StatusCode metaDataStop(); + virtual StatusCode metaDataStop() override; /// @} -- GitLab From d9ae13f1a4b2d5fa9e3810a3e24a4cad8d29f2f9 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Thu, 18 Jun 2020 00:00:55 -0400 Subject: [PATCH 157/459] EventBoost: Fix uninitialized properties. Make sure all properties are initialized in the ctor. Otherwise genconf will write garbage for the default values. --- Generators/GenAnalysisTools/EventBoost/src/EventBoost.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Generators/GenAnalysisTools/EventBoost/src/EventBoost.cxx b/Generators/GenAnalysisTools/EventBoost/src/EventBoost.cxx index fc3cbf654d4..9fcb86b8ccf 100755 --- a/Generators/GenAnalysisTools/EventBoost/src/EventBoost.cxx +++ b/Generators/GenAnalysisTools/EventBoost/src/EventBoost.cxx @@ -36,11 +36,11 @@ EventBoost::EventBoost( const std::string& name, : AthAlgorithm(name, pSvcLocator), m_nModifiedEvent(0), m_nFailedEvent(0), m_nModifiedTotal(0), m_nFailedTotal(0), m_flat_rand_x(0.), m_flat_rand_y(0.), m_flat_rand_z(0.), m_gauss_rand_x(0.), m_gauss_rand_y(0.), m_gauss_rand_z(0.), m_pxsum(0.) { - declareProperty("BeamInclination", m_beam_inclination ); + declareProperty("BeamInclination", m_beam_inclination = 0); declareProperty("GenEvtInputKey", m_genEvtInKey ); declareProperty("GenEvtOutputKey", m_genEvtOutKey ); - declareProperty("DoGaussianVertexSmearing", m_gaussian_vertex_smearing ); - declareProperty("DoFlatVertexSmearing", m_flat_vertex_smearing ); + declareProperty("DoGaussianVertexSmearing", m_gaussian_vertex_smearing = false ); + declareProperty("DoFlatVertexSmearing", m_flat_vertex_smearing = false ); declareProperty("GaussianMean", m_gaussian_mean ); declareProperty("GaussianWidth", m_gaussian_width ); declareProperty("FlatSmearingBoundaryMin", m_flat_smearing_boundary_min ); -- GitLab From 233c116767afea15a0c1b30db432a786f0f65ced Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 19 Jul 2020 11:21:18 -0400 Subject: [PATCH 158/459] TrkEventUtils: Fix uninitialized variable warnings. Fix warnings about use of uninitialized eigen objects. --- .../TrkEventUtils/TrkEventUtils/ComparisonFunction.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Tracking/TrkEvent/TrkEventUtils/TrkEventUtils/ComparisonFunction.h b/Tracking/TrkEvent/TrkEventUtils/TrkEventUtils/ComparisonFunction.h index 56cba7fd648..d4cefcb7d8c 100755 --- a/Tracking/TrkEvent/TrkEventUtils/TrkEventUtils/ComparisonFunction.h +++ b/Tracking/TrkEvent/TrkEventUtils/TrkEventUtils/ComparisonFunction.h @@ -47,7 +47,9 @@ public: , m_line{} , m_radius{ 0 } , m_hasPointAndLine{ 1 } - {} + { + m_line.setZero(); + } /** Constructor with point and line, search with direction */ ComparisonFunction(const Amg::Vector3D& sp, const Amg::Vector3D& dir) @@ -63,7 +65,10 @@ public: , m_line{} , m_radius{ std::abs(cradius) } , m_hasPointAndLine{ 0 } - {} + { + m_point.setZero(); + m_line.setZero(); + } bool operator()(const T* one, const T* two) const { -- GitLab From 34dbb79af4e4fe606ed6aaa43742d08705cde9e9 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Fri, 10 Jul 2020 18:15:20 -0400 Subject: [PATCH 159/459] TRT_CalibTools: cmake fixes Define an interface library for exported headers. Library dependency fixes. --- .../InDetCalibTools/TRT_CalibTools/CMakeLists.txt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/InnerDetector/InDetCalibTools/TRT_CalibTools/CMakeLists.txt b/InnerDetector/InDetCalibTools/TRT_CalibTools/CMakeLists.txt index 51fc055dd0e..7a176f8badf 100644 --- a/InnerDetector/InDetCalibTools/TRT_CalibTools/CMakeLists.txt +++ b/InnerDetector/InDetCalibTools/TRT_CalibTools/CMakeLists.txt @@ -41,13 +41,17 @@ atlas_depends_on_subdirs( PUBLIC find_package( CLHEP ) find_package( ROOT COMPONENTS RIO Core Tree MathCore Hist pthread Graf Graf3d Gpad Html Postscript Gui GX11TTF GX11 ) +atlas_add_library( TRT_CalibToolsLib + TRT_CalibTools/*.h + INTERFACE + PUBLIC_HEADERS TRT_CalibTools + LINK_LIBRARIES GaudiKernel TRT_CalibData Identifier xAODEventInfo xAODTracking ) + # Component(s) in the package: atlas_add_component( TRT_CalibTools src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} Identifier GaudiKernel InDetRawData CommissionEvent AthenaBaseComps CxxUtils StoreGateLib AtlasDetDescr EventPrimitives xAODEventInfo xAODTracking TRT_ConditionsData TRT_ConditionsServicesLib InDetIdentifier InDetReadoutGeometry TRT_ReadoutGeometry InDetPrepRawData InDetRIO_OnTrack TrkEventPrimitives TrkParameters TrkPrepRawData TrkRIO_OnTrack TrkTrack TrkTrackSummary TrkToolInterfaces TRT_DriftFunctionToolLib ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} TRT_CalibToolsLib InDetRawData CommissionEvent AthenaBaseComps CxxUtils StoreGateLib AtlasDetDescr EventPrimitives TRT_ConditionsData TRT_ConditionsServicesLib InDetIdentifier InDetReadoutGeometry TRT_ReadoutGeometry InDetPrepRawData InDetRIO_OnTrack TrkEventPrimitives TrkParameters TrkPrepRawData TrkRIO_OnTrack TrkTrack TrkTrackSummary TrkToolInterfaces TRT_DriftFunctionToolLib TRT_DriftCircleToolLib ) -# Install files from the package: -atlas_install_headers( TRT_CalibTools ) -- GitLab From fea4d5a4e0df882fae54df4549b6afa8caf6cd44 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Fri, 10 Jul 2020 23:16:05 -0400 Subject: [PATCH 160/459] TrigT2CaloCommon: cmake fix Missing find_package for TBB. --- Trigger/TrigAlgorithms/TrigT2CaloCommon/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Trigger/TrigAlgorithms/TrigT2CaloCommon/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigT2CaloCommon/CMakeLists.txt index 38fcdcf5050..474bc0813b9 100644 --- a/Trigger/TrigAlgorithms/TrigT2CaloCommon/CMakeLists.txt +++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/CMakeLists.txt @@ -5,6 +5,7 @@ atlas_subdir( TrigT2CaloCommon ) # External dependencies: find_package( tdaq-common ) +find_package( TBB ) # Component(s) in the package: atlas_add_library( TrigT2CaloCommonLib -- GitLab From e22c9d7ffeb44175faa8f7d774f06a71e79da0f3 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sat, 11 Jul 2020 12:26:02 -0400 Subject: [PATCH 161/459] TrigL2MuonSA: cmake fix Remove use of EIGEN_INCLUDE_DIRS. find_package was missing, and we anyway don't have a direct dependency on Eigen. --- Trigger/TrigAlgorithms/TrigL2MuonSA/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigL2MuonSA/CMakeLists.txt index 8e9152de3d3..e565d155825 100644 --- a/Trigger/TrigAlgorithms/TrigL2MuonSA/CMakeLists.txt +++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/CMakeLists.txt @@ -13,7 +13,7 @@ find_package( tdaq-common COMPONENTS MuCalDecode circ_proc ) atlas_add_library( TrigL2MuonSALib src/*.cxx PUBLIC_HEADERS TrigL2MuonSA - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${GSL_INCLUDE_DIRS} ${TDAQ-COMMON_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${GSL_INCLUDE_DIRS} ${TDAQ-COMMON_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps AthenaMonitoringKernelLib ByteStreamCnvSvcBaseLib CscClusterizationLib GaudiKernel GeoPrimitives Identifier MdtCalibSvcLib MuonCablingData MuonCnvToolInterfacesLib MuonIdHelpersLib MuonPrepRawData MuonRDO MuonRecToolInterfaces MuonTGC_CablingLib RPC_CondCablingLib RegionSelectorLib StoreGateLib TrigInterfacesLib TrigMuonToolInterfaces TrigSteeringEvent TrigT1Interfaces TrigT1RPCRecRoiSvcLib TrigTimeAlgsLib xAODEventInfo xAODTrigMuon xAODTrigger PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GSL_LIBRARIES} ${TDAQ-COMMON_LIBRARIES} AthenaInterprocess CxxUtils EventInfo GeoModelUtilities MuonCalibEvent MuonReadoutGeometry PathResolver ) -- GitLab From b9d961138af68e233311f5198a2d6eed06d341b7 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Fri, 10 Jul 2020 18:28:59 -0400 Subject: [PATCH 162/459] TrkAlignGenAlgs: cmake fixes Library dependency fixes. --- Tracking/TrkAlignment/TrkAlignGenAlgs/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tracking/TrkAlignment/TrkAlignGenAlgs/CMakeLists.txt b/Tracking/TrkAlignment/TrkAlignGenAlgs/CMakeLists.txt index 92c48607d4f..63b6df9d80c 100644 --- a/Tracking/TrkAlignment/TrkAlignGenAlgs/CMakeLists.txt +++ b/Tracking/TrkAlignment/TrkAlignGenAlgs/CMakeLists.txt @@ -24,7 +24,7 @@ atlas_add_component( TrkAlignGenAlgs src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps GaudiKernel StoreGateLib SGtests xAODEventInfo TrkAlignEvent TrkTrack ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps GaudiKernel StoreGateLib SGtests xAODEventInfo TrkAlignEvent TrkTrack TrkAlignInterfaces ) # Install files from the package: atlas_install_headers( TrkAlignGenAlgs ) -- GitLab From 6bded0fe4273e326133e0e9f659cccc500df1133 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Fri, 10 Jul 2020 18:31:07 -0400 Subject: [PATCH 163/459] TrkAlignGenTools: cmake fixes Library dependency fixes. --- Tracking/TrkAlignment/TrkAlignGenTools/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Tracking/TrkAlignment/TrkAlignGenTools/CMakeLists.txt b/Tracking/TrkAlignment/TrkAlignGenTools/CMakeLists.txt index 62321a73853..b119cf6635f 100644 --- a/Tracking/TrkAlignment/TrkAlignGenTools/CMakeLists.txt +++ b/Tracking/TrkAlignment/TrkAlignGenTools/CMakeLists.txt @@ -62,13 +62,13 @@ atlas_add_library( TrkAlignGenToolsLib INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps AthContainers GeoPrimitives EventPrimitives xAODTracking GaudiKernel muonEvent TrkAlignEvent TrkEventPrimitives VxVertex TrkFitterUtils StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} AtlasDetDescr xAODEventInfo MuonSegment MuonRecToolInterfaces Particle TrkAlgebraUtils TrkDetElementBase TrkSurfaces TrkCompetingRIOsOnTrack TrkEventUtils TrkMaterialOnTrack TrkMeasurementBase TrkParameters TrkParticleBase TrkPseudoMeasurementOnTrack TrkRIO_OnTrack TrkTrack TrkVertexOnTrack TrkExInterfaces TrkFitterInterfaces TrkToolInterfaces TrkVertexFitterInterfaces BeamSpotConditionsData InDetTrackSelectionToolLib ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps AthContainers GeoPrimitives EventPrimitives xAODTracking GaudiKernel muonEvent TrkAlignEvent TrkEventPrimitives VxVertex TrkFitterUtils StoreGateLib SGtests TrkAlignInterfaces + PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} AtlasDetDescr xAODEventInfo MuonSegment MuonRecToolInterfaces Particle TrkAlgebraUtils TrkDetElementBase TrkSurfaces TrkCompetingRIOsOnTrack TrkEventUtils TrkMaterialOnTrack TrkMeasurementBase TrkParameters TrkParticleBase TrkPseudoMeasurementOnTrack TrkRIO_OnTrack TrkTrack TrkVertexOnTrack TrkExInterfaces TrkFitterInterfaces TrkToolInterfaces TrkVertexFitterInterfaces BeamSpotConditionsData InDetTrackSelectionToolLib InDetAlignGenToolsLib ) atlas_add_component( TrkAlignGenTools src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps AthContainers GeoPrimitives EventPrimitives xAODTracking GaudiKernel muonEvent TrkAlignEvent TrkEventPrimitives VxVertex TrkFitterUtils StoreGateLib SGtests AtlasDetDescr xAODEventInfo MuonSegment MuonRecToolInterfaces Particle TrkAlgebraUtils TrkDetElementBase TrkSurfaces TrkCompetingRIOsOnTrack TrkEventUtils TrkMaterialOnTrack TrkMeasurementBase TrkParameters TrkParticleBase TrkPseudoMeasurementOnTrack TrkRIO_OnTrack TrkTrack TrkVertexOnTrack TrkExInterfaces TrkFitterInterfaces TrkToolInterfaces TrkVertexFitterInterfaces BeamSpotConditionsData TrkAlignGenToolsLib ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps AthContainers GeoPrimitives EventPrimitives xAODTracking GaudiKernel muonEvent TrkAlignEvent TrkEventPrimitives VxVertex TrkFitterUtils StoreGateLib SGtests AtlasDetDescr xAODEventInfo MuonSegment MuonRecToolInterfaces Particle TrkAlgebraUtils TrkDetElementBase TrkSurfaces TrkCompetingRIOsOnTrack TrkEventUtils TrkMaterialOnTrack TrkMeasurementBase TrkParameters TrkParticleBase TrkPseudoMeasurementOnTrack TrkRIO_OnTrack TrkTrack TrkVertexOnTrack TrkExInterfaces TrkFitterInterfaces TrkToolInterfaces TrkVertexFitterInterfaces BeamSpotConditionsData TrkAlignGenToolsLib InDetAlignGenToolsLib InDetTrackSelectionToolLib ) # Install files from the package: atlas_install_python_modules( python/*.py ) -- GitLab From 61961b649669655180366d92bf797ec287990b94 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Fri, 10 Jul 2020 16:40:07 +0200 Subject: [PATCH 164/459] PixelDigitization: Conditions dependency fixes Don't declare dependencies on conditions objects that we won't read. (This is for the old configuration. The new-style configuration should already be ok.) --- .../PixelDigitization/python/PixelDigitizationConfig.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py index 9616e6c23a2..b28499e81e0 100644 --- a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py +++ b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py @@ -342,11 +342,13 @@ def BasicPixelDigitizationTool(name="PixelDigitizationTool", **kwargs): if not hasattr(condSeq, "PixelDCSCondStateAlg"): from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondStateAlg - condSeq += PixelDCSCondStateAlg(name="PixelDCSCondStateAlg") + condSeq += PixelDCSCondStateAlg(name="PixelDCSCondStateAlg", + ReadKeyState = '') if not hasattr(condSeq, "PixelDCSCondStatusAlg"): from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondStatusAlg - condSeq += PixelDCSCondStatusAlg(name="PixelDCSCondStatusAlg") + condSeq += PixelDCSCondStatusAlg(name="PixelDCSCondStatusAlg", + ReadKeyStatus = '') if not conddb.folderRequested("/PIXEL/DCS/HV"): conddb.addFolder("DCS_OFL", "/PIXEL/DCS/HV", className="CondAttrListCollection") @@ -395,13 +397,16 @@ def BasicPixelDigitizationTool(name="PixelDigitizationTool", **kwargs): from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelReadoutSpeedAlg condSeq += PixelReadoutSpeedAlg(name="PixelReadoutSpeedAlg") + pixelReadKey = '' if (globalflags.DataSource=='data' and conddb.dbdata == 'CONDBR2'): # for data overlay + pixelReaddKey = '/PIXEL/CablingMap' if not conddb.folderRequested("/PIXEL/CablingMap"): conddb.addFolderSplitOnline("PIXEL", "/PIXEL/Onl/CablingMap","/PIXEL/CablingMap", className="AthenaAttributeList") if not hasattr(condSeq, 'PixelCablingCondAlg'): from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelCablingCondAlg condSeq += PixelCablingCondAlg(name="PixelCablingCondAlg", + ReadKey = pixelReadKey, MappingFile=IdMappingDat, RodIDForSingleLink40=0) -- GitLab From ccab2a48e80316211cd6d18953470f39624bf7cc Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Mon, 27 Jul 2020 02:26:31 +0100 Subject: [PATCH 165/459] move to unordered set --- .../TrkFitter/TrkGaussianSumFilter/src/GsfExtrapolator.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfExtrapolator.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfExtrapolator.cxx index 251154f86a8..99417a5534f 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfExtrapolator.cxx +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfExtrapolator.cxx @@ -33,6 +33,7 @@ decription : Implementation code for GsfExtrapolator class #include "TrkTrack/TrackStateOnSurface.h" #include <utility> +#include <unordered_set> namespace { const bool useBoundaryMaterialUpdate(true); @@ -482,7 +483,7 @@ Trk::GsfExtrapolator::extrapolate( ATH_MSG_DEBUG("MultiComponentState is empty..."); return {}; } - + cache.reset(); // Set the propagator to that one corresponding to the configuration level @@ -706,7 +707,7 @@ Trk::GsfExtrapolator::extrapolateToVolumeBoundary( *navigationParameters, direction, trackingVolume); - + nextVolume = nextNavigationCell.nextVolume; if (navigationPropagatorIndex >= 1) { delete navigationParameters; @@ -961,7 +962,7 @@ Trk::GsfExtrapolator::extrapolateFromLayerToLayer( const Trk::Layer* nextLayer = currentLayer->nextLayer(currentPosition, currentDirection); - std::set<const Trk::Layer*> layersHit; + std::unordered_set<const Trk::Layer*> layersHit; layersHit.insert(currentLayer); // Begin while loop over all intermediate layers -- GitLab From 007b366b883e66ec00b55313bb031ef5318592f2 Mon Sep 17 00:00:00 2001 From: mverissi <mverissi@cern.ch> Date: Mon, 27 Jul 2020 03:40:29 +0200 Subject: [PATCH 166/459] Change the EDM keys from L2 to Fast for EMCluster, Electrons and Photons. --- .../TrigT2CaloCommon/python/CaloDef.py | 8 ++++---- .../python/TrigT2CaloEgammaMTConfig.py | 2 +- .../TrigT2CaloEgamma/src/RingerReFex.h | 2 +- .../Root/TrigEgammaMatchingToolMT.cxx | 6 +++--- .../src/TrigEgammaMatchingToolMTTest.cxx | 4 ++-- .../python/TrigCaloMonitorAlgorithm.py | 14 +++++++------- .../src/HLTCaloESD_xAODTrigEMClusters.cxx | 2 +- .../src/HLTCalo_L2CaloEMClustersMonitor.cxx | 2 +- .../src/TrigEgammaMonitorBaseAlgorithm.cxx | 6 +++--- .../TrigUpgradeTest/share/CaloRinger.py | 2 +- .../TrigEDMConfig/python/TriggerEDMRun3.py | 12 ++++++------ .../CommonSequences/CaloSequenceSetup.py | 2 +- .../HLTMenuConfig/Egamma/ElectronSequenceSetup.py | 2 +- .../HLTMenuConfig/Egamma/PhotonSequenceSetup.py | 2 +- .../HLTMenuConfig/Electron/generateElectron.py | 2 +- .../HLTMenuConfig/Photon/PhotonRecoSequences.py | 6 +++--- .../python/HLTMenuConfig/Photon/generatePhoton.py | 4 ++-- 17 files changed, 39 insertions(+), 39 deletions(-) diff --git a/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py b/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py index 73923431189..42c8d456030 100644 --- a/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py +++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py @@ -48,7 +48,7 @@ def _algoHLTTopoClusterLC(inputEDM="CellsClusters", OutputLevel=ERROR, algSuffix algo.OutputLevel=OutputLevel return algo -def _algoL2Egamma(inputEDM="",OutputLevel=ERROR,doRinger=False, ClustersName="HLT_L2CaloEMClusters", RingerKey="HLT_FastCaloRinger"): +def _algoL2Egamma(inputEDM="",OutputLevel=ERROR,doRinger=False, ClustersName="HLT_FastCaloEMClusters", RingerKey="HLT_FastCaloRinger"): if not inputEDM: from L1Decoder.L1DecoderConfig import mapThresholdToL1RoICollection inputEDM = mapThresholdToL1RoICollection("EM") @@ -57,7 +57,7 @@ def _algoL2Egamma(inputEDM="",OutputLevel=ERROR,doRinger=False, ClustersName="HL algo=T2CaloEgamma_ReFastAlgo("FastCaloL2EgammaAlg", doRinger=doRinger, RingerKey=RingerKey) algo.RoIs=inputEDM from TrigEDMConfig.TriggerEDMRun3 import recordable - algo.ClustersName=recordable("HLT_L2CaloEMClusters") + algo.ClustersName=recordable("HLT_FastCaloEMClusters") algo.OutputLevel=OutputLevel return algo @@ -66,7 +66,7 @@ def _algoL2Egamma(inputEDM="",OutputLevel=ERROR,doRinger=False, ClustersName="HL ##### SEQUENCES #################################### -def fastCaloRecoSequence(InViewRoIs, doRinger=False, ClustersName="HLT_L2CaloEMClusters", RingerKey="HLT_FastCaloRinger"): +def fastCaloRecoSequence(InViewRoIs, doRinger=False, ClustersName="HLT_FastCaloEMClusters", RingerKey="HLT_FastCaloRinger"): fastCaloAlg = _algoL2Egamma(inputEDM=InViewRoIs, doRinger=doRinger, ClustersName=ClustersName, RingerKey=RingerKey) import AthenaCommon.CfgMgr as CfgMgr @@ -97,7 +97,7 @@ def fastCaloEVCreator(): return (fastCaloViewsMaker, InViewRoIs) -def createFastCaloSequence(EMRoIDecisions, doRinger=False, ClustersName="HLT_L2CaloEMClusters", RingerKey="HLT_FastCaloRinger"): +def createFastCaloSequence(EMRoIDecisions, doRinger=False, ClustersName="HLT_FastCaloEMClusters", RingerKey="HLT_FastCaloRinger"): """Used for standalone testing""" (fastCaloViewsMaker, InViewRoIs) = fastCaloEVCreator() # connect to RoIs diff --git a/Trigger/TrigAlgorithms/TrigT2CaloEgamma/python/TrigT2CaloEgammaMTConfig.py b/Trigger/TrigAlgorithms/TrigT2CaloEgamma/python/TrigT2CaloEgammaMTConfig.py index d0251cde511..64ed98ff296 100644 --- a/Trigger/TrigAlgorithms/TrigT2CaloEgamma/python/TrigT2CaloEgammaMTConfig.py +++ b/Trigger/TrigAlgorithms/TrigT2CaloEgamma/python/TrigT2CaloEgammaMTConfig.py @@ -39,7 +39,7 @@ def fastL2EgammaClusteringAlg( flags, roisKey="EMCaloRoIs", doRinger=False): alg = CompFactory.T2CaloEgammaReFastAlgo("FastEMCaloAlgo") from TrigEDMConfig.TriggerEDMRun3 import recordable - alg.ClustersName = recordable('HLT_L2CaloEMClusters') + alg.ClustersName = recordable('HLT_FastCaloEMClusters') alg.RoIs = roisKey alg.EtaWidth = 0.2 alg.PhiWidth = 0.2 diff --git a/Trigger/TrigAlgorithms/TrigT2CaloEgamma/src/RingerReFex.h b/Trigger/TrigAlgorithms/TrigT2CaloEgamma/src/RingerReFex.h index 73437391b48..12bebf65654 100644 --- a/Trigger/TrigAlgorithms/TrigT2CaloEgamma/src/RingerReFex.h +++ b/Trigger/TrigAlgorithms/TrigT2CaloEgamma/src/RingerReFex.h @@ -92,7 +92,7 @@ class RingerReFex : public IReAlgToolCalo ToolHandle< GenericMonitoringTool > m_monTool { this, "MonTool", "", "Monitoring tool"}; SG::WriteHandleKey<xAOD::TrigRingerRingsContainer> m_ringerContainerKey {this, "RingerKey", "HLT_FastCaloRinger", "TrigRingerRings container key"}; - SG::ReadHandleKey<xAOD::TrigEMClusterContainer> m_clusterContainerKey {this, "ClustersName", "HLT_L2CaloEMClusters", "TrigEMCluster container key"}; + SG::ReadHandleKey<xAOD::TrigEMClusterContainer> m_clusterContainerKey {this, "ClustersName", "HLT_FastCaloEMClusters", "TrigEMCluster container key"}; Gaudi::Property<std::vector<float>> m_etaBins {this, "EtaBins", {}, "Eta bins range cover by the ringer reconstruction."}; Gaudi::Property<bool> m_global_center {this, "GlobalCenter", false, ""}; Gaudi::Property<bool> m_useHad {this, "UseHad", true, ""}; diff --git a/Trigger/TrigAnalysis/TrigEgammaMatchingTool/Root/TrigEgammaMatchingToolMT.cxx b/Trigger/TrigAnalysis/TrigEgammaMatchingTool/Root/TrigEgammaMatchingToolMT.cxx index f299f0a21a3..49f69d2f63e 100644 --- a/Trigger/TrigAnalysis/TrigEgammaMatchingTool/Root/TrigEgammaMatchingToolMT.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaMatchingTool/Root/TrigEgammaMatchingToolMT.cxx @@ -46,9 +46,9 @@ StatusCode TrigEgammaMatchingToolMT::initialize() m_keys[ "Photon"] = "HLT_egamma_Photons" ; m_keys[ "Track"] = ""; m_keys[ "EFCalo"] = "HLT_CaloEMClusters" ; - m_keys[ "L2Electron"] = "HLT_L2Electrons" ; - m_keys[ "L2Photon"] = "HLT_L2Photons" ; - m_keys[ "L2Calo"] = "HLT_L2CaloEMClusters" ; + m_keys[ "L2Electron"] = "HLT_FastElectrons" ; + m_keys[ "L2Photon"] = "HLT_FastPhotons" ; + m_keys[ "L2Calo"] = "HLT_FastCaloEMClusters" ; m_keys[ "L1Calo"] = "LVL1EmTauRoIs" ; return StatusCode::SUCCESS; diff --git a/Trigger/TrigAnalysis/TrigEgammaMatchingTool/src/TrigEgammaMatchingToolMTTest.cxx b/Trigger/TrigAnalysis/TrigEgammaMatchingTool/src/TrigEgammaMatchingToolMTTest.cxx index f64f79f66be..c28e384ea56 100644 --- a/Trigger/TrigAnalysis/TrigEgammaMatchingTool/src/TrigEgammaMatchingToolMTTest.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaMatchingTool/src/TrigEgammaMatchingToolMTTest.cxx @@ -101,8 +101,8 @@ void TrigEgammaMatchingToolMTTest::inspect(const std::string trigger,const xAOD: bool passedHLT = m_matchTool->ancestorPassed<xAOD::ElectronContainer> (dec, trigger , "HLT_egamma_Electrons"); bool passedEFCalo = m_matchTool->ancestorPassed<xAOD::CaloClusterContainer> (dec, trigger , "HLT_CaloEMClusters"); - bool passedL2 = m_matchTool->ancestorPassed<xAOD::TrigElectronContainer> (dec, trigger , "HLT_L2Electrons"); - bool passedL2Calo = m_matchTool->ancestorPassed<xAOD::TrigEMClusterContainer> (dec, trigger , "HLT_L2CaloEMClusters"); + bool passedL2 = m_matchTool->ancestorPassed<xAOD::TrigElectronContainer> (dec, trigger , "HLT_FastElectrons"); + bool passedL2Calo = m_matchTool->ancestorPassed<xAOD::TrigEMClusterContainer> (dec, trigger , "HLT_FastCaloEMClusters"); bool passedL1Calo = m_matchTool->ancestorPassed<TrigRoiDescriptorCollection> (dec, trigger , "initialRois"); ATH_MSG_INFO( "L1Calo passed : "<< passedL1Calo ); diff --git a/Trigger/TrigMonitoring/TrigCaloMonitoring/python/TrigCaloMonitorAlgorithm.py b/Trigger/TrigMonitoring/TrigCaloMonitoring/python/TrigCaloMonitorAlgorithm.py index e0e4f1d958d..6d0b9376328 100644 --- a/Trigger/TrigMonitoring/TrigCaloMonitoring/python/TrigCaloMonitorAlgorithm.py +++ b/Trigger/TrigMonitoring/TrigCaloMonitoring/python/TrigCaloMonitorAlgorithm.py @@ -30,17 +30,17 @@ def TrigCaloMonConfig(inputFlags): ################################ - # HLT_L2CaloEMClusters # + # HLT_FastCaloEMClusters # ################################ # Add monitor algorithm from AthenaConfiguration.ComponentFactory import CompFactory - L2CaloEMClustersMonAlg = helper.addAlgorithm(CompFactory.HLTCalo_L2CaloEMClustersMonitor, 'HLT_L2CaloEMClustersMonAlg') + L2CaloEMClustersMonAlg = helper.addAlgorithm(CompFactory.HLTCalo_L2CaloEMClustersMonitor, 'HLT_FastCaloEMClustersMonAlg') # Set properties - L2CaloEMClustersMonAlg.HLTContainer = 'HLT_L2CaloEMClusters' + L2CaloEMClustersMonAlg.HLTContainer = 'HLT_FastCaloEMClusters' L2CaloEMClustersMonAlg.OFFContainer = 'egammaClusters' L2CaloEMClustersMonAlg.MonGroupName = 'TrigCaloMonitor' L2CaloEMClustersMonAlg.OFFTypes = [] @@ -57,7 +57,7 @@ def TrigCaloMonConfig(inputFlags): ######################## # Declare HLT histograms - hist_path='HLT_L2CaloEMClusters/HLT_Clusters' + hist_path='HLT_FastCaloEMClusters/HLT_Clusters' L2CaloEMClustersMonGroup.defineHistogram('HLT_num',title='Number of HLT Clusters; Num Clusters; Entries', path=hist_path,xbins=51,xmin=-0.5,xmax=50.5) L2CaloEMClustersMonGroup.defineHistogram('HLT_eta,HLT_phi',title='Number of HLT Clusters; #eta; #phi; ', type='TH2F', @@ -94,7 +94,7 @@ def TrigCaloMonConfig(inputFlags): ######################## # Declare OFF histograms - hist_path='HLT_L2CaloEMClusters/OFF_Clusters' + hist_path='HLT_FastCaloEMClusters/OFF_Clusters' L2CaloEMClustersMonGroup.defineHistogram('OFF_num',title='Number of OFF Clusters; Num Clusters; Entries', path=hist_path,xbins=101,xmin=-1.0,xmax=201.0) L2CaloEMClustersMonGroup.defineHistogram('OFF_eta,OFF_phi',title='Number of OFF Clusters; #eta; #phi; ', type='TH2F', @@ -115,7 +115,7 @@ def TrigCaloMonConfig(inputFlags): ######################## # Declare HLT matched HLT vs. OFF cluster histograms - hist_path='HLT_L2CaloEMClusters/HLT_Matched_to_OFF' + hist_path='HLT_FastCaloEMClusters/HLT_Matched_to_OFF' L2CaloEMClustersMonGroup.defineHistogram('HLT_matched_fraction',title='Fraction of HLT clusters matched to HLT clusters; Matched fraction; Entries', path=hist_path,xbins=100,xmin=0.0,xmax=1.0) L2CaloEMClustersMonGroup.defineHistogram('HLT_vs_OFF_minimum_delta_r',title='HLT vs OFF Cluster #DeltaR; #DeltaR; Entries', @@ -170,7 +170,7 @@ def TrigCaloMonConfig(inputFlags): ######################## # Declare OFF matched HLT vs. OFF cluster histograms - hist_path='HLT_L2CaloEMClusters/OFF_Matched_to_HLT' + hist_path='HLT_FastCaloEMClusters/OFF_Matched_to_HLT' L2CaloEMClustersMonGroup.defineHistogram('OFF_matched_fraction',title='Fraction of OFF clusters matched to HLT clusters; Matched fraction; Entries', path=hist_path,xbins=100,xmin=0.0,xmax=1.0) L2CaloEMClustersMonGroup.defineHistogram('OFF_vs_HLT_minimum_delta_r',title='HLT vs OFF Cluster #DeltaR; #DeltaR; Entries', diff --git a/Trigger/TrigMonitoring/TrigCaloMonitoring/src/HLTCaloESD_xAODTrigEMClusters.cxx b/Trigger/TrigMonitoring/TrigCaloMonitoring/src/HLTCaloESD_xAODTrigEMClusters.cxx index e6495986ab9..bf96bf56d4a 100644 --- a/Trigger/TrigMonitoring/TrigCaloMonitoring/src/HLTCaloESD_xAODTrigEMClusters.cxx +++ b/Trigger/TrigMonitoring/TrigCaloMonitoring/src/HLTCaloESD_xAODTrigEMClusters.cxx @@ -16,7 +16,7 @@ HLTCaloESD_xAODTrigEMClusters::HLTCaloESD_xAODTrigEMClusters(const std::string & //m_ShowerShapeTool("egammaShowerShape/egammashowershape") { declareProperty("HLTContainerRun2", m_HLT_cont_name_run2 = "HLT_xAOD__TrigEMClusterContainer_TrigT2CaloEgamma"); - declareProperty("HLTContainerRun3", m_HLT_cont_name_run3 = "HLT_L2CaloEMClusters"); + declareProperty("HLTContainerRun3", m_HLT_cont_name_run3 = "HLT_FastCaloEMClusters"); declareProperty("OFFContainer", m_OFF_cont_name = "egammaClusters"); declareProperty("MonGroupName", m_mongroup_name = ""); diff --git a/Trigger/TrigMonitoring/TrigCaloMonitoring/src/HLTCalo_L2CaloEMClustersMonitor.cxx b/Trigger/TrigMonitoring/TrigCaloMonitoring/src/HLTCalo_L2CaloEMClustersMonitor.cxx index 95bbce37f1a..89587c4d595 100644 --- a/Trigger/TrigMonitoring/TrigCaloMonitoring/src/HLTCalo_L2CaloEMClustersMonitor.cxx +++ b/Trigger/TrigMonitoring/TrigCaloMonitoring/src/HLTCalo_L2CaloEMClustersMonitor.cxx @@ -14,7 +14,7 @@ template <typename T> struct clus_kin { HLTCalo_L2CaloEMClustersMonitor::HLTCalo_L2CaloEMClustersMonitor( const std::string& name, ISvcLocator* pSvcLocator ) : AthMonitorAlgorithm(name,pSvcLocator) { - declareProperty("HLTContainer", m_HLT_cont_key = "HLT_L2CaloEMClusters"); + declareProperty("HLTContainer", m_HLT_cont_key = "HLT_FastCaloEMClusters"); declareProperty("OFFContainer", m_OFF_cont_key = "egammaClusters"); declareProperty("MonGroupName", m_mongroup_name = "TrigCaloMonitor"); diff --git a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.cxx b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.cxx index ec025a2ece3..49532041f20 100644 --- a/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.cxx +++ b/Trigger/TrigMonitoring/TrigEgammaMonitoring/src/TrigEgammaMonitorBaseAlgorithm.cxx @@ -160,19 +160,19 @@ asg::AcceptData TrigEgammaMonitorBaseAlgorithm::setAccept( const TrigCompositeUt if(!info.trigL1){ // HLT item get full decision ATH_MSG_DEBUG("Check for active features: TrigEMCluster,CaloClusterContainer"); - passedL2Calo = match()->ancestorPassed<xAOD::TrigEMClusterContainer>(dec, trigger, "HLT_L2CaloEMClusters"); + passedL2Calo = match()->ancestorPassed<xAOD::TrigEMClusterContainer>(dec, trigger, "HLT_FastCaloEMClusters"); passedEFCalo = match()->ancestorPassed<xAOD::CaloClusterContainer>(dec, trigger, "HLT_CaloEMClusters"); if(info.trigType == "electron"){ ATH_MSG_DEBUG("Check for active features: TrigElectron, ElectronContainer, TrackParticleContainer"); - passedL2 = match()->ancestorPassed<xAOD::TrigElectronContainer>(dec, trigger, "HLT_L2Electrons"); + passedL2 = match()->ancestorPassed<xAOD::TrigElectronContainer>(dec, trigger, "HLT_FastElectrons"); passedEF = match()->ancestorPassed<xAOD::ElectronContainer>(dec, trigger, "HLT_egamma_Electrons"); passedEFTrk = true; //match()->ancestorPassed<xAOD::TrackParticleContainer>(dec); } else if(info.trigType == "photon"){ ATH_MSG_DEBUG("Check for active features: TrigPhoton, PhotonContainer"); - passedL2 = match()->ancestorPassed<xAOD::TrigPhotonContainer>(dec, trigger, "HLT_L2Photons"); + passedL2 = match()->ancestorPassed<xAOD::TrigPhotonContainer>(dec, trigger, "HLT_FastPhotons"); passedEF = match()->ancestorPassed<xAOD::PhotonContainer>(dec, trigger, "HLT_egamma_Photons"); passedEFTrk=true;// Assume true for photons } diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py b/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py index 61da85864e1..0c2dce2a065 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py @@ -50,7 +50,7 @@ if TriggerFlags.doCalo: filterL1RoIsAlg.Output = ["HLTNav_FilteredEMRoIDecisions"] filterL1RoIsAlg.Chains = [ "HLT_EMTestChain" ] (fastCaloSequence, sequenceOut) = createFastCaloSequence(filterL1RoIsAlg.Output[0], doRinger=True, - ClustersName="HLT_L2CaloEMClusters", + ClustersName="HLT_FastCaloEMClusters", RingerKey="HLT_FastCaloRinger") steps+=stepSeq("finalCaloSequence", filterL1RoIsAlg, [ fastCaloSequence ]) diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py index 7f82370ada6..e783701fa4f 100644 --- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py +++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py @@ -109,15 +109,15 @@ TriggerHLTListRun3 = [ # Egamma - ('xAOD::TrigEMClusterContainer#HLT_L2CaloEMClusters', 'BS ESD AODFULL', 'Egamma', 'inViews:EMCaloViews'), # last arg specifies in which view container the fragments are, look into the proprty of View maker alg for it - ('xAOD::TrigEMClusterAuxContainer#HLT_L2CaloEMClustersAux.', 'BS ESD AODFULL', 'Egamma'), + ('xAOD::TrigEMClusterContainer#HLT_FastCaloEMClusters', 'BS ESD AODFULL', 'Egamma', 'inViews:EMCaloViews'), # last arg specifies in which view container the fragments are, look into the proprty of View maker alg for it + ('xAOD::TrigEMClusterAuxContainer#HLT_FastCaloEMClustersAux.', 'BS ESD AODFULL', 'Egamma'), ('xAOD::TrigRingerRingsContainer#HLT_FastCaloRinger', 'BS ESD AODFULL', 'Egamma', 'inViews:EMCaloViews'), #Ringer ('xAOD::TrigRingerRingsAuxContainer#HLT_FastCaloRingerAux.', 'BS ESD AODFULL', 'Egamma'), #Ringer - ('xAOD::TrigPhotonContainer#HLT_L2Photons', 'BS ESD AODFULL', 'Egamma', 'inViews:EMPhotonViews'), - ('xAOD::TrigPhotonAuxContainer#HLT_L2PhotonsAux.', 'BS ESD AODFULL', 'Egamma'), - ('xAOD::TrigElectronContainer#HLT_L2Electrons', 'BS ESD AODFULL', 'Egamma', 'inViews:EMElectronViews'), - ('xAOD::TrigElectronAuxContainer#HLT_L2ElectronsAux.', 'BS ESD AODFULL', 'Egamma'), + ('xAOD::TrigPhotonContainer#HLT_FastPhotons', 'BS ESD AODFULL', 'Egamma', 'inViews:EMPhotonViews'), + ('xAOD::TrigPhotonAuxContainer#HLT_FastPhotonsAux.', 'BS ESD AODFULL', 'Egamma'), + ('xAOD::TrigElectronContainer#HLT_FastElectrons', 'BS ESD AODFULL', 'Egamma', 'inViews:EMElectronViews'), + ('xAOD::TrigElectronAuxContainer#HLT_FastElectronsAux.', 'BS ESD AODFULL', 'Egamma'), ('xAOD::TrackParticleContainer#HLT_IDTrack_Electron_FTF', 'BS ESD AODFULL', 'Egamma', 'inViews:EMElectronViews'), ('xAOD::TrackParticleAuxContainer#HLT_IDTrack_Electron_FTFAux.', 'BS ESD AODFULL', 'Egamma'), diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/CaloSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/CaloSequenceSetup.py index 3a99da4be12..0b47542aaf4 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/CaloSequenceSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/CaloSequenceSetup.py @@ -9,7 +9,7 @@ from TrigEDMConfig.TriggerEDMRun3 import recordable class CaloMenuDefs(object): """Static Class to collect all string manipulations in Calo sequences """ from TrigEDMConfig.TriggerEDMRun3 import recordable - L2CaloClusters= recordable("HLT_L2CaloEMClusters") + L2CaloClusters= recordable("HLT_FastCaloEMClusters") diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronSequenceSetup.py index ba95dae7fbe..5c05433350f 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronSequenceSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronSequenceSetup.py @@ -43,7 +43,7 @@ def fastElectronSequence(ConfigFlags): theElectronFex= EgammaFastElectronFex_1() theElectronFex.TrigEMClusterName = CaloMenuDefs.L2CaloClusters theElectronFex.TrackParticlesName = TrackParticlesName - theElectronFex.ElectronsName=recordable("HLT_L2Electrons") + theElectronFex.ElectronsName=recordable("HLT_FastElectrons") # EVCreator: l2ElectronViewsMaker = EventViewCreatorAlgorithm("IMl2Electron") diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/PhotonSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/PhotonSequenceSetup.py index e6345aa497f..b26abbfc3d3 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/PhotonSequenceSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/PhotonSequenceSetup.py @@ -24,7 +24,7 @@ def fastPhotonMenuSequence(): from TrigEgammaHypo.TrigEgammaFastPhotonFexMTConfig import EgammaFastPhotonFex_1 thePhotonFex= EgammaFastPhotonFex_1() thePhotonFex.TrigEMClusterName = CaloMenuDefs.L2CaloClusters - thePhotonFex.PhotonsName=recordable("HLT_L2Photons") + thePhotonFex.PhotonsName=recordable("HLT_FastPhotons") #thePhotonFex.RoIs="EMIDRoIs" l2PhotonViewsMaker = EventViewCreatorAlgorithm("IMl2Photon") diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/generateElectron.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/generateElectron.py index d07c0346fe6..afd53e4600d 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/generateElectron.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Electron/generateElectron.py @@ -32,7 +32,7 @@ def generateChains( flags, chainDict ): accCalo.merge( LumiBlockMuWriterCfg(flags) ) l2CaloHypo = l2CaloHypoCfg( flags, name = 'L2ElectronCaloHypo', - CaloClusters = recordable('HLT_L2CaloEMClusters')) + CaloClusters = recordable('HLT_FastCaloEMClusters')) accCalo.addEventAlgo(l2CaloHypo, sequenceName=stepView.getName()) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Photon/PhotonRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Photon/PhotonRecoSequences.py index 434dc6e1e50..efc54c001ba 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Photon/PhotonRecoSequences.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Photon/PhotonRecoSequences.py @@ -84,8 +84,8 @@ def l2PhotonAlgCfg( flags ): photonFex= CompFactory.TrigEgammaFastPhotonFexMT("EgammaFastPhotonFex_1") #photonFex= L2PhotonFex_1() - photonFex.TrigEMClusterName = recordable("HLT_L2CaloEMClusters") - photonFex.PhotonsName = recordable("HLT_L2Photons") + photonFex.TrigEMClusterName = recordable("HLT_FastCaloEMClusters") + photonFex.PhotonsName = recordable("HLT_FastPhotons") photonFex.RoIs = "L2PhotonRecoRoIs" return acc, photonFex @@ -94,7 +94,7 @@ def l2PhotonAlgCfg( flags ): def photonViewDataVerifierCfg(): from AthenaConfiguration.ComponentFactory import CompFactory moveClusters = CompFactory.AthViews.ViewDataVerifier("VDVFastPhoton") - moveClusters.DataObjects = [ ('xAOD::TrigEMClusterContainer','StoreGateSvc+HLT_L2CaloEMClusters'), + moveClusters.DataObjects = [ ('xAOD::TrigEMClusterContainer','StoreGateSvc+HLT_FastCaloEMClusters'), ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+L2PhotonRecoRoIs' )] result = ComponentAccumulator() diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Photon/generatePhoton.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Photon/generatePhoton.py index dcc6728f660..cc0af567ee5 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Photon/generatePhoton.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Photon/generatePhoton.py @@ -31,7 +31,7 @@ def generateChains(flags, chainDict): l2CaloHypo = l2CaloHypoCfg( flags, name = 'L2PhotonCaloHypo', - CaloClusters = recordable('HLT_L2CaloEMClusters') ) + CaloClusters = recordable('HLT_FastCaloEMClusters') ) accCalo.addEventAlgo(l2CaloHypo, sequenceName=stepView.getName()) @@ -54,7 +54,7 @@ def generateChains(flags, chainDict): accPhoton.merge(l2PhotonReco, sequenceName=stepReco.getName()) l2PhotonHypo = l2PhotonHypoCfg( flags, - Photons = 'HLT_L2Photons', + Photons = 'HLT_FastPhotons', RunInView = True ) accPhoton.addEventAlgo(l2PhotonHypo, sequenceName=stepView.getName()) -- GitLab From b5ddd016c1c27633bb7036aae3f528f25bbf38a0 Mon Sep 17 00:00:00 2001 From: Micael Verissimo De Araujo <micael.verissimo.de.araujo@cern.ch> Date: Mon, 27 Jul 2020 04:14:37 +0000 Subject: [PATCH 167/459] Update TrigT2CaloEgammaConfig.py --- .../TrigT2CaloEgamma/python/TrigT2CaloEgammaConfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigAlgorithms/TrigT2CaloEgamma/python/TrigT2CaloEgammaConfig.py b/Trigger/TrigAlgorithms/TrigT2CaloEgamma/python/TrigT2CaloEgammaConfig.py index 698e51705c0..f1cd3641d62 100644 --- a/Trigger/TrigAlgorithms/TrigT2CaloEgamma/python/TrigT2CaloEgammaConfig.py +++ b/Trigger/TrigAlgorithms/TrigT2CaloEgamma/python/TrigT2CaloEgammaConfig.py @@ -404,7 +404,7 @@ class T2CaloEgamma_Ringer (T2CaloEgamma_eGamma): class T2CaloEgamma_ReFastAlgo (CompFactory.T2CaloEgammaReFastAlgo): __slots__ = [] - def __init__ (self, name="T2CaloEgamma_ReFastAlgo", ClustersName="HLT_L2CaloEMClusters", doRinger=False, RingerKey="HLT_FastCaloRinger"): + def __init__ (self, name="T2CaloEgamma_ReFastAlgo", ClustersName="HLT_FastCaloEMClusters", doRinger=False, RingerKey="HLT_FastCaloRinger"): super(T2CaloEgamma_ReFastAlgo, self).__init__(name) # here put your customizations from AthenaCommon.AppMgr import ServiceMgr as svcMgr -- GitLab From 5285d7e954eda5ea3cfeb93aa2de56eba6a9c03f Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Fri, 24 Jul 2020 16:18:16 +0200 Subject: [PATCH 168/459] Remove setting of CoreDumpSvc.FatalHandler With athenaMT it is best to rely on the default (ROOT) signal handler in CoreDumpSvc, which uses gdb to produce the stacktrace for all threads. Setting `FatalHandler = 438` makes use of the `SealSignal` handler, which only produces one trace. For production environments where the gdb traces are not needed, one should override the setting in the transform or AMI tag as is already done today. Relates to ATEAM-629. --- .../AthenaPoolTest/share/AthenaPoolTestWrite.py | 3 --- .../IOVDbTestAlg/share/IOVDbTestAlgReadCoolFromMetaData.py | 3 --- Control/AthenaConfiguration/python/MainServicesConfig.py | 5 +---- .../PixelRawDataByteStreamCnv/share/Pixel_main.py | 6 ------ .../InDetExample/InDetRecExample/share/InDetRec_all.py | 6 ------ .../RecExCommon/share/AnalysisCommon_topOptions.py | 1 - .../RecExample/RecExCommon/share/RecExCommon_topOptions.py | 1 - .../L1TopoSimulation/share/L1Simulation_topOptions.py | 1 - 8 files changed, 1 insertion(+), 25 deletions(-) diff --git a/AtlasTest/DatabaseTest/AthenaPoolTest/share/AthenaPoolTestWrite.py b/AtlasTest/DatabaseTest/AthenaPoolTest/share/AthenaPoolTestWrite.py index 9b619d1ae39..e30900b884e 100755 --- a/AtlasTest/DatabaseTest/AthenaPoolTest/share/AthenaPoolTestWrite.py +++ b/AtlasTest/DatabaseTest/AthenaPoolTest/share/AthenaPoolTestWrite.py @@ -23,9 +23,6 @@ from AthenaCommon.AppMgr import ServiceMgr as svcMgr ## get a handle to the ApplicationManager from AthenaCommon.AppMgr import theApp -# Set handler for traceback -svcMgr.CoreDumpSvc.FatalHandler = 438 - #-------------------------------------------------------------- # Load POOL support #-------------------------------------------------------------- diff --git a/AtlasTest/DatabaseTest/IOVDbTestAlg/share/IOVDbTestAlgReadCoolFromMetaData.py b/AtlasTest/DatabaseTest/IOVDbTestAlg/share/IOVDbTestAlgReadCoolFromMetaData.py index 65ba6a330b6..b2b80b07ef4 100644 --- a/AtlasTest/DatabaseTest/IOVDbTestAlg/share/IOVDbTestAlgReadCoolFromMetaData.py +++ b/AtlasTest/DatabaseTest/IOVDbTestAlg/share/IOVDbTestAlgReadCoolFromMetaData.py @@ -28,9 +28,6 @@ from AthenaCommon.AppMgr import ServiceMgr as svcMgr ## get a handle on the ToolSvc from AthenaCommon.AppMgr import ToolSvc -# Set handler for traceback -svcMgr.CoreDumpSvc.FatalHandler = 438 - #svcMgr.EventSelector.InputCollections = [ "SimplePoolFile1.root" ] svcMgr.EventSelector.InputCollections = [ "SimpleEventPoolFile.root" ] diff --git a/Control/AthenaConfiguration/python/MainServicesConfig.py b/Control/AthenaConfiguration/python/MainServicesConfig.py index f728d8a1dff..9a9d69b62a5 100644 --- a/Control/AthenaConfiguration/python/MainServicesConfig.py +++ b/Control/AthenaConfiguration/python/MainServicesConfig.py @@ -79,10 +79,7 @@ def MainServicesCfg(cfgFlags): cfg.addService(StoreGateSvc("HistoryStore")) cfg.addService(StoreGateSvc("ConditionStore")) - CoreDumpSvc=CompFactory.CoreDumpSvc - #438 is the logical or of FATAL_ON_QUIT, FATAL_ON_INT, FATAL_DUMP_SIG, FATAL_DUMP_STACK, FATAL_DUMP_CONTEXT, FATAL_AUTO_EXIT - #as defiend in Control/AthenaServices/src/SetFatalHandler.h - cfg.addService(CoreDumpSvc(FatalHandler = 438)) + cfg.addService(CompFactory.CoreDumpSvc()) cfg.setAppProperty('InitializationLoopCheck',False) diff --git a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/share/Pixel_main.py b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/share/Pixel_main.py index 32e30a0b5a1..3d39236e4b8 100644 --- a/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/share/Pixel_main.py +++ b/InnerDetector/InDetEventCnv/PixelRawDataByteStreamCnv/share/Pixel_main.py @@ -111,12 +111,6 @@ if not ('doWriteBS' in dir() and doWriteBS): ServiceMgr.StoreGateSvc.ActivateHistory = False ServiceMgr.StoreGateSvc.Dump = False -# ------------------------------------------------------------ -# get stack dump -# ------------------------------------------------------------ - -ServiceMgr.CoreDumpSvc.FatalHandler = 438 - # ------------------------------------------------------------ # Use auditors # ------------------------------------------------------------ diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_all.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_all.py index 65477cdcb2c..aa6b3ca7b2e 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_all.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_all.py @@ -129,12 +129,6 @@ if InDetFlags.doMonitoring(): ServiceMgr.StoreGateSvc.ActivateHistory = False ServiceMgr.StoreGateSvc.Dump = False -# ------------------------------------------------------------ -# get stack dump -# ------------------------------------------------------------ - -ServiceMgr.CoreDumpSvc.FatalHandler = 438 - #-------------------------------------------------------------- # run JiveXML for Atlantis event display #-------------------------------------------------------------- diff --git a/Reconstruction/RecExample/RecExCommon/share/AnalysisCommon_topOptions.py b/Reconstruction/RecExample/RecExCommon/share/AnalysisCommon_topOptions.py index 8720819503b..32e792cb595 100644 --- a/Reconstruction/RecExample/RecExCommon/share/AnalysisCommon_topOptions.py +++ b/Reconstruction/RecExample/RecExCommon/share/AnalysisCommon_topOptions.py @@ -4,7 +4,6 @@ include.block ("RecExCommon/AnalysisCommon_topOptions.py") ## Common job preparation ## ############################ -svcMgr.CoreDumpSvc.FatalHandler = 438 import traceback from AthenaCommon.Logging import logging diff --git a/Reconstruction/RecExample/RecExCommon/share/RecExCommon_topOptions.py b/Reconstruction/RecExample/RecExCommon/share/RecExCommon_topOptions.py index 9e67abc9d9f..a9436ed959b 100644 --- a/Reconstruction/RecExample/RecExCommon/share/RecExCommon_topOptions.py +++ b/Reconstruction/RecExample/RecExCommon/share/RecExCommon_topOptions.py @@ -4,7 +4,6 @@ include.block ("RecExCommon/RecExCommon_topOptions.py") ## Common job preparation ## ############################ -svcMgr.CoreDumpSvc.FatalHandler = 438 import traceback from AthenaCommon.Logging import logging diff --git a/Trigger/TrigT1/L1Topo/L1TopoSimulation/share/L1Simulation_topOptions.py b/Trigger/TrigT1/L1Topo/L1TopoSimulation/share/L1Simulation_topOptions.py index 8fc58f1ae4c..467cfed83f9 100644 --- a/Trigger/TrigT1/L1Topo/L1TopoSimulation/share/L1Simulation_topOptions.py +++ b/Trigger/TrigT1/L1Topo/L1TopoSimulation/share/L1Simulation_topOptions.py @@ -1,6 +1,5 @@ include.block ("L1TopoSimulation/L1Simulation_topOptions.py") -svcMgr.CoreDumpSvc.FatalHandler = 438 import traceback from AthenaCommon.Logging import logging -- GitLab From 33a62b03ac44198c172a531f24512bc8b4685bad Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 10:29:25 +0200 Subject: [PATCH 169/459] CaloRec+CaloUtils: Update reference Update references after change to CoreDumpSvc.FatalHandler. --- Calorimeter/CaloRec/share/ToolConstantsCondAlg_test.ref | 1 - Calorimeter/CaloUtils/share/ToolWithConstants_test.ref | 1 - 2 files changed, 2 deletions(-) diff --git a/Calorimeter/CaloRec/share/ToolConstantsCondAlg_test.ref b/Calorimeter/CaloRec/share/ToolConstantsCondAlg_test.ref index 307513df7dc..2880871f0ec 100644 --- a/Calorimeter/CaloRec/share/ToolConstantsCondAlg_test.ref +++ b/Calorimeter/CaloRec/share/ToolConstantsCondAlg_test.ref @@ -8,7 +8,6 @@ ApplicationMgr SUCCESS running on 1fe14f8366e2 on Tue Jul 21 15:04:16 2020 ==================================================================================================================================== ApplicationMgr INFO Application Manager Configured successfully -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = 438) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 23453 CLIDRegistry entries for module ALL diff --git a/Calorimeter/CaloUtils/share/ToolWithConstants_test.ref b/Calorimeter/CaloUtils/share/ToolWithConstants_test.ref index effb93abb53..7e2e703b76a 100644 --- a/Calorimeter/CaloUtils/share/ToolWithConstants_test.ref +++ b/Calorimeter/CaloUtils/share/ToolWithConstants_test.ref @@ -8,7 +8,6 @@ ApplicationMgr SUCCESS running on 1fe14f8366e2 on Tue Jul 21 15:04:26 2020 ==================================================================================================================================== ApplicationMgr INFO Application Manager Configured successfully -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = 438) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 PyComponentMgr INFO Initializing PyComponentMgr... -- GitLab From f0aea4d08e02bb9711959e2dba7537426eec967b Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Mon, 27 Jul 2020 09:31:18 +0100 Subject: [PATCH 170/459] Fixed chain name access in the Python meu access --- .../TrigConfIO/python/HLTTriggerConfigAccess.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Trigger/TrigConfiguration/TrigConfIO/python/HLTTriggerConfigAccess.py b/Trigger/TrigConfiguration/TrigConfIO/python/HLTTriggerConfigAccess.py index daed3c4457b..6eff14b80d2 100644 --- a/Trigger/TrigConfiguration/TrigConfIO/python/HLTTriggerConfigAccess.py +++ b/Trigger/TrigConfiguration/TrigConfIO/python/HLTTriggerConfigAccess.py @@ -20,7 +20,7 @@ class HLTMenuAccess(TriggerConfigAccess): self.load() def chainNames(self): - return (x["name"] for x in self) + return self["chains"].keys() def chains(self): return iter(self) @@ -33,11 +33,18 @@ class HLTMenuAccess(TriggerConfigAccess): def printSummary(self): print("HLT menu %s" % self.name()) - print("Number of chains: %i" % len(self) ) + print("Number of chains: %i" % len(self.chains()) ) print("Number of streams: %i" % len(self.streams()) ) print("Number of sequencers: %i" % len(self.sequencers()) ) - + def printDetails(self): + import pprint + print("Chains:") + pprint.pprint(list(self.chains())) + print("Streams:") + pprint.pprint(list(self.streams())) + print("Sequencers:") + pprint.pprint(list(self.sequencers())) class HLTPrescalesSetAccess(TriggerConfigAccess): """ -- GitLab From d4b468047c0e995ff86545ca1346d4abf1c8dc11 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Mon, 27 Jul 2020 11:06:49 +0200 Subject: [PATCH 171/459] Updated all projects to atlasexternals-2.0.72. At the same time, since the new tag uses LCG_97apython3_ATLAS_1 by default for all LCG based projects, removed the overrides from the build_externals.sh scripts of all projects for forcing the usage of LCG_97a_ATLAS_1. Also updated the Athena configuration to use the TDAQ installations compatible with Python 3 instead of Python 2.7, and removed the NumPy environment setup from the project. Since with LCG_97a we don't need that anymore. --- Projects/AnalysisBase/externals.txt | 2 +- Projects/AthDataQuality/externals.txt | 2 +- Projects/AthGeneration/build_externals.sh | 2 +- Projects/AthGeneration/externals.txt | 2 +- Projects/AthSimulation/build_externals.sh | 2 +- Projects/AthSimulation/externals.txt | 2 +- Projects/Athena/CMakeLists.txt | 10 ++----- Projects/Athena/build_externals.sh | 2 +- .../Athena/cmake/NumPyEnvironmentConfig.cmake | 27 ------------------- Projects/Athena/externals.txt | 2 +- Projects/VP1Light/build_externals.sh | 2 +- Projects/VP1Light/externals.txt | 2 +- 12 files changed, 12 insertions(+), 45 deletions(-) delete mode 100644 Projects/Athena/cmake/NumPyEnvironmentConfig.cmake diff --git a/Projects/AnalysisBase/externals.txt b/Projects/AnalysisBase/externals.txt index 9d67d068baf..f40c389b87c 100644 --- a/Projects/AnalysisBase/externals.txt +++ b/Projects/AnalysisBase/externals.txt @@ -6,4 +6,4 @@ # forbidden. # The version of atlas/atlasexternals to use: -AnalysisBaseExternalsVersion = 2.0.71 +AnalysisBaseExternalsVersion = 2.0.72 diff --git a/Projects/AthDataQuality/externals.txt b/Projects/AthDataQuality/externals.txt index 17c59acee12..3fb6232f033 100644 --- a/Projects/AthDataQuality/externals.txt +++ b/Projects/AthDataQuality/externals.txt @@ -5,4 +5,4 @@ # an "origin/" prefix before it. For tags however this is explicitly # forbidden. -AtlasExternalsVersion = 2.0.71 +AtlasExternalsVersion = 2.0.72 diff --git a/Projects/AthGeneration/build_externals.sh b/Projects/AthGeneration/build_externals.sh index 26b6322843c..04f619e34bc 100755 --- a/Projects/AthGeneration/build_externals.sh +++ b/Projects/AthGeneration/build_externals.sh @@ -24,7 +24,7 @@ BUILDDIR="" BUILDTYPE="RelWithDebInfo" FORCE="" CI="" -EXTRACMAKE=(-DLCG_VERSION_NUMBER=97 -DLCG_VERSION_POSTFIX="a_ATLAS_1") +EXTRACMAKE=() while getopts ":t:b:x:fch" opt; do case $opt in t) diff --git a/Projects/AthGeneration/externals.txt b/Projects/AthGeneration/externals.txt index a02976e05e5..a5b437a06ac 100644 --- a/Projects/AthGeneration/externals.txt +++ b/Projects/AthGeneration/externals.txt @@ -6,7 +6,7 @@ # forbidden. # The version of atlas/atlasexternals to use: -AthGenerationExternalsVersion = 2.0.71 +AthGenerationExternalsVersion = 2.0.72 # The version of atlas/Gaudi to use: GaudiVersion = v33r1.004 diff --git a/Projects/AthSimulation/build_externals.sh b/Projects/AthSimulation/build_externals.sh index 640a10702ac..0463ba13158 100755 --- a/Projects/AthSimulation/build_externals.sh +++ b/Projects/AthSimulation/build_externals.sh @@ -24,7 +24,7 @@ BUILDDIR="" BUILDTYPE="RelWithDebInfo" FORCE="" CI="" -EXTRACMAKE=(-DLCG_VERSION_NUMBER=97 -DLCG_VERSION_POSTFIX="a_ATLAS_1") +EXTRACMAKE=() while getopts ":t:b:x:fch" opt; do case $opt in t) diff --git a/Projects/AthSimulation/externals.txt b/Projects/AthSimulation/externals.txt index 8ffb68a0014..234b5a04b14 100644 --- a/Projects/AthSimulation/externals.txt +++ b/Projects/AthSimulation/externals.txt @@ -6,7 +6,7 @@ # forbidden. # The version of atlas/atlasexternals to use: -AthSimulationExternalsVersion = 2.0.71 +AthSimulationExternalsVersion = 2.0.72 # The version of atlas/Gaudi to use: GaudiVersion = v33r1.004 diff --git a/Projects/Athena/CMakeLists.txt b/Projects/Athena/CMakeLists.txt index 2403fa9c719..7ac8b2dc026 100644 --- a/Projects/Athena/CMakeLists.txt +++ b/Projects/Athena/CMakeLists.txt @@ -31,9 +31,9 @@ if( LCG_NIGHTLY ) set( TDAQ_VERSION "99-00-00" CACHE STRING "The version of tdaq to use for the build" ) else() - set( TDAQ-COMMON_VERSION "04-01-01" CACHE STRING + set( TDAQ-COMMON_VERSION "04-01-00" CACHE STRING "The version of tdaq-common to use for the build" ) - set( TDAQ_VERSION "09-01-01" CACHE STRING + set( TDAQ_VERSION "09-01-00" CACHE STRING "The version of tdaq to use for the build" ) endif() @@ -74,12 +74,6 @@ set( OpenBlasEnvironment_DIR "${CMAKE_SOURCE_DIR}/cmake" mark_as_advanced( OpenBlasEnvironment_DIR ) find_package( OpenBlasEnvironment ) -# Set up the runtime environment for NumPy. -set( NumPyEnvironment_DIR "${CMAKE_SOURCE_DIR}/cmake" - CACHE PATH "Directory holding NumPyEnvironmentConfig.cmake" ) -mark_as_advanced( NumPyEnvironment_DIR ) -find_package( NumPyEnvironment ) - # Set up where to find the AthenaPoolUtilitiesTest CMake code. set( AthenaPoolUtilitiesTest_DIR "${CMAKE_SOURCE_DIR}/../../Database/AthenaPOOL/AthenaPoolUtilities/cmake" diff --git a/Projects/Athena/build_externals.sh b/Projects/Athena/build_externals.sh index 6929a21c2e7..95720fa9c00 100755 --- a/Projects/Athena/build_externals.sh +++ b/Projects/Athena/build_externals.sh @@ -24,7 +24,7 @@ BUILDDIR="" BUILDTYPE="RelWithDebInfo" FORCE="" CI="" -EXTRACMAKE=(-DLCG_VERSION_NUMBER=97 -DLCG_VERSION_POSTFIX="a_ATLAS_1") +EXTRACMAKE=() while getopts ":t:b:x:fch" opt; do case $opt in t) diff --git a/Projects/Athena/cmake/NumPyEnvironmentConfig.cmake b/Projects/Athena/cmake/NumPyEnvironmentConfig.cmake deleted file mode 100644 index 407af5d972f..00000000000 --- a/Projects/Athena/cmake/NumPyEnvironmentConfig.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -# -# Module for setting up the runtime environment for numpy from an LCG release. -# - -# Decide whether or not to pass "QUIET" to the subsequent find_package call(s). -set( _quietFlag ) -if( NumPyEnvironment_FIND_QUIETLY ) - set( _quietFlag QUIET ) -endif() - -# Find the lapack installation that's part of LCG. Note that this call finds the -# CMake configuration included in the LAPACK installation, it does *not* use -# CMake's FindLAPACK.cmake module. -find_package( lapack ${_quietFlag} ) - -# Extract the path of the library pointed to by the "lapack" imported library. -if( lapack_FOUND ) - get_target_property( _configs lapack IMPORTED_CONFIGURATIONS ) - list( GET _configs 0 _config ) - get_target_property( _libPath lapack IMPORTED_LOCATION_${_config} ) - get_filename_component( NumPyEnvironment_LIBRARY_DIRS ${_libPath} - DIRECTORY ) - unset( _configs ) - unset( _config ) - unset( _libPath ) -endif() diff --git a/Projects/Athena/externals.txt b/Projects/Athena/externals.txt index dc8b3c68f86..be57a7a38e6 100644 --- a/Projects/Athena/externals.txt +++ b/Projects/Athena/externals.txt @@ -6,7 +6,7 @@ # forbidden. # The version of atlas/atlasexternals to use: -AthenaExternalsVersion = 2.0.71 +AthenaExternalsVersion = 2.0.72 # The version of atlas/Gaudi to use: GaudiVersion = v33r1.004 diff --git a/Projects/VP1Light/build_externals.sh b/Projects/VP1Light/build_externals.sh index e2b5c3881f9..4b83f43b313 100755 --- a/Projects/VP1Light/build_externals.sh +++ b/Projects/VP1Light/build_externals.sh @@ -26,7 +26,7 @@ BUILDDIR="" BUILDTYPE="RelWithDebInfo" FORCE="" CI="" -EXTRACMAKE=(-DLCG_VERSION_NUMBER=97 -DLCG_VERSION_POSTFIX="a_ATLAS_1") +EXTRACMAKE=() while getopts ":t:b:fch" opt; do case $opt in t) diff --git a/Projects/VP1Light/externals.txt b/Projects/VP1Light/externals.txt index 46aef434d6a..bb11012d898 100644 --- a/Projects/VP1Light/externals.txt +++ b/Projects/VP1Light/externals.txt @@ -6,4 +6,4 @@ # forbidden. # The version of atlas/atlasexternals to use: -VP1LightExternalsVersion = 2.0.71 +VP1LightExternalsVersion = 2.0.72 -- GitLab From d457d8d5b0815b9e3ce79054d708784dce018707 Mon Sep 17 00:00:00 2001 From: Margherita Spalla <margherita.spalla@cern.ch> Date: Mon, 27 Jul 2020 11:11:22 +0200 Subject: [PATCH 172/459] add LArCosmicMon --- .../LArMonitoring/python/LArCosmicsMonAlg.py | 141 +++++++++ .../LArMonitoring/src/LArCosmicsMonAlg.cxx | 280 ++++++++++++++++++ .../LArMonitoring/src/LArCosmicsMonAlg.h | 107 +++++++ 3 files changed, 528 insertions(+) create mode 100644 LArCalorimeter/LArMonitoring/python/LArCosmicsMonAlg.py create mode 100755 LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.cxx create mode 100644 LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.h diff --git a/LArCalorimeter/LArMonitoring/python/LArCosmicsMonAlg.py b/LArCalorimeter/LArMonitoring/python/LArCosmicsMonAlg.py new file mode 100644 index 00000000000..5e52b031bf4 --- /dev/null +++ b/LArCalorimeter/LArMonitoring/python/LArCosmicsMonAlg.py @@ -0,0 +1,141 @@ + +# +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# + + +def LArCosmicsMonConfigOld(inputFlags): + from AthenaMonitoring.AthMonitorCfgHelper import AthMonitorCfgHelperOld + from LArMonitoring.LArMonitoringConf import LArCosmicsMonAlg + + helper = AthMonitorCfgHelperOld(inputFlags, 'LArCosmicsMonAlgOldCfg') + LArCosmicsMonConfigCore(helper, LArCosmicsMonAlg,inputFlags) + return helper.result() + +def LArCosmicsMonConfig(inputFlags): + '''Function to configures some algorithms in the monitoring system.''' + + # The following class will make a sequence, configure algorithms, and link + # them to GenericMonitoringTools + + from AthenaMonitoring.AthMonitorCfgHelper import AthMonitorCfgHelper + helper = AthMonitorCfgHelper(inputFlags,'LArCosmicsMonAlgCfg') + + from AthenaConfiguration.ComponentFactory import CompFactory + LArCosmicsMonConfigCore(helper, CompFactory.LArCosmicsMonAlg,inputFlags) + + return helper.result() + + +def LArCosmicsMonConfigCore(helper, algoinstance,inputFlags): + + + from LArMonitoring.GlobalVariables import lArDQGlobals + + larCosmicsMonAlg = helper.addAlgorithm(algoinstance,'larCosmicsMonAlg') + + larCosmicsMonAlg.CosmicsMonGroupName = 'LarCosmicsMonGroup' + larCosmicsMonAlg.MuonADCthreshold_EM_barrel = 30 + larCosmicsMonAlg.MuonADCthreshold_EM_endcap = 40 + larCosmicsMonAlg.MuonADCthreshold_HEC = 40 + larCosmicsMonAlg.MuonADCthreshold_FCAL = 40 + + # adding BadChan masker private tool + from AthenaCommon.Configurable import Configurable + if Configurable.configurableRun3Behavior : + from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator + cfg=ComponentAccumulator() + + from LArBadChannelTool.LArBadChannelConfig import LArBadChannelMaskerCfg + acc= LArBadChannelMaskerCfg(inputFlags,problemsToMask=["highNoiseHG","highNoiseMG","highNoiseLG","deadReadout","deadPhys"],ToolName="BadLArRawChannelMask") + larCosmicsMonAlg.LArBadChannelMask=acc.popPrivateTools() + cfg.merge(acc) + else : + from LArBadChannelTool.LArBadChannelToolConf import LArBadChannelMasker + theLArBadChannelsMasker=LArBadChannelMasker("BadLArRawChannelMask") + theLArBadChannelsMasker.DoMasking=True + theLArBadChannelsMasker.ProblemsToMask=["deadReadout","deadPhys","short","almostDead","highNoiseHG","highNoiseMG","highNoiseLG","sporadicBurstNoise"] + larCosmicsMonAlg.LArBadChannelMask=theLArBadChannelsMasker + pass + + #mon group + cosmicMonGroup = helper.addGroup( + larCosmicsMonAlg, + larCosmicsMonAlg.CosmicsMonGroupName, + '/LAr/', + 'run' + ) + + cosmic_path="CosmicsNewAlg/" + + EM_bins=lArDQGlobals.Cell_Variables["etaRange"]["EMEC"]["C"]["2"]+lArDQGlobals.Cell_Variables["etaRange"]["EMB"]["C"]["2"]+lArDQGlobals.Cell_Variables["etaRange"]["EMB"]["A"]["2"]+lArDQGlobals.Cell_Variables["etaRange"]["EMEC"]["A"]["2"] + cosmicMonGroup.defineHistogram('mon_eta_EM,mon_phi;Muon2DHitsECAL', + type='TH2F', + path=cosmic_path, + title='Cosmics Seeds - Digit Max > '+str(int(larCosmicsMonAlg.MuonADCthreshold_EM_barrel))+'/'+str(int(larCosmicsMonAlg.MuonADCthreshold_EM_endcap))+' [ADC] in S2 Barrel/Endcap - EM;#eta cell;#phi cell;Number of Hits', + xbins=EM_bins, + ybins=lArDQGlobals.Cell_Variables["phiRange"]["EMB"]["A"]["2"]) + + HEC_bins=lArDQGlobals.Cell_Variables["etaRange"]["HEC"]["C"]["1"]+lArDQGlobals.Cell_Variables["etaRange"]["HEC"]["A"]["1"] + cosmicMonGroup.defineHistogram('mon_eta_HEC,mon_phi;Muon2DHitsHCAL', + type='TH2F', + path=cosmic_path, + title='Cosmics Seeds - Digit Max > '+str(int(larCosmicsMonAlg.MuonADCthreshold_HEC))+' [ADC] in S1 HEC;#eta cell;#phi cell;Number of Hits', + xbins=HEC_bins, + ybins=lArDQGlobals.Cell_Variables["phiRange"]["HEC"]["A"]["1"]) + + FCal_bins=lArDQGlobals.Cell_Variables["etaRange"]["FCal"]["C"]["2"]+lArDQGlobals.Cell_Variables["etaRange"]["FCal"]["A"]["2"] + cosmicMonGroup.defineHistogram('mon_eta_FCal,mon_phi;Muon2DHitsFCAL', + type='TH2F', + path=cosmic_path, + title='Cosmics Seeds - Digit Max > '+str(int(larCosmicsMonAlg.MuonADCthreshold_FCAL))+' [ADC] in S2 FCal;#eta cell;#phi cell;Number of Hits', + xbins=FCal_bins, + ybins=lArDQGlobals.Cell_Variables["phiRange"]["FCal"]["A"]["2"]) + + + + +if __name__=='__main__': + + from AthenaConfiguration.AllConfigFlags import ConfigFlags + from AthenaCommon.Logging import log + from AthenaCommon.Constants import WARNING + from AthenaCommon.Configurable import Configurable + Configurable.configurableRun3Behavior=1 + log.setLevel(WARNING) + + + from LArMonitoring.LArMonConfigFlags import createLArMonConfigFlags + createLArMonConfigFlags() + + from AthenaConfiguration.TestDefaults import defaultTestFiles + ConfigFlags.Input.Files = defaultTestFiles.RAW + + ConfigFlags.Output.HISTFileName = 'LArCosmicsMonOutput.root' + ConfigFlags.DQ.enableLumiAccess = False + ConfigFlags.DQ.useTrigger = False + ConfigFlags.Beam.Type = 'collisions' + ConfigFlags.lock() + + from CaloRec.CaloRecoConfig import CaloRecoCfg + cfg=CaloRecoCfg(ConfigFlags) + + from LArCellRec.LArNoisyROSummaryConfig import LArNoisyROSummaryCfg + cfg.merge(LArNoisyROSummaryCfg(ConfigFlags)) + + cosm_acc = LArCosmicsMonConfig(ConfigFlags) + cfg.merge(cosm_acc) + + ConfigFlags.dump() + f=open("LArCosmicsMon.pkl","wb") + cfg.store(f) + f.close() + +# cfg.run(10,OutputLevel=WARNING) + + + + + + + diff --git a/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.cxx b/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.cxx new file mode 100755 index 00000000000..f7aa8de98ac --- /dev/null +++ b/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.cxx @@ -0,0 +1,280 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +// ******************************************************************** +// +// NAME: LArCosmicsMonAlg.cxx +// PACKAGE: LArMonitoring +// +// AUTHOR: Margherita Spalla (Migrated from original tool by Jessica Leveque) +// +// Class for monitoring : Detector Timing +// Cosmics Signal Reconstruction +// Development towards LAr Data Quality Flags +// +// ******************************************************************** + +#include "LArCosmicsMonAlg.h" + +#include "Identifier/IdentifierHash.h" + +#include <sstream> +#include <iomanip> +#include <fstream> +#include <string> +#include <vector> +#include <cstdlib> +#include <functional> +#include <map> +#include <utility> + + + + +/*---------------------------------------------------------*/ +LArCosmicsMonAlg::LArCosmicsMonAlg(const std::string& name, ISvcLocator* pSvcLocator ) + : AthMonitorAlgorithm(name, pSvcLocator), + m_LArOnlineIDHelper(0), + m_LArEM_IDHelper(0), + m_LArHEC_IDHelper(0), + m_LArFCAL_IDHelper(0), + m_badChannelMask("BadLArRawChannelMask",this) +{ + declareProperty("LArBadChannelMask",m_badChannelMask); +} + +/*---------------------------------------------------------*/ +LArCosmicsMonAlg::~LArCosmicsMonAlg() +{ +} + +/*---------------------------------------------------------*/ +StatusCode +LArCosmicsMonAlg::initialize() +{ + ATH_MSG_INFO( "Initialize LArCosmicsMonAlg" ); + + + /** Get LAr Online Id Helper*/ + if ( detStore()->retrieve( m_LArOnlineIDHelper, "LArOnlineID" ).isSuccess() ) { + ATH_MSG_DEBUG("connected non-tool: LArOnlineID" ); + } else { + ATH_MSG_FATAL( "unable to connect non-tool: LArOnlineID" ); + return StatusCode::FAILURE; + } + + + // Retrieve ID helpers + if ( detStore()->retrieve( m_LArEM_IDHelper, "LArEM_ID" ).isSuccess() ) ATH_MSG_DEBUG("connected non-tool: LArEM_ID" ); + else { + ATH_MSG_FATAL( "unable to connect non-tool: LArEM_ID" ); + return StatusCode::FAILURE; + } + + if ( detStore()->retrieve( m_LArHEC_IDHelper, "LArHEC_ID" ).isSuccess() ) ATH_MSG_DEBUG("connected non-tool: LArHEC_ID" ); + else { + ATH_MSG_FATAL( "unable to connect non-tool: LArHEC_ID" ); + return StatusCode::FAILURE; + } + + if ( detStore()->retrieve( m_LArFCAL_IDHelper, "LArFCAL_ID" ).isSuccess() ) ATH_MSG_DEBUG("connected non-tool: LArFCAL_ID" ); + else { + ATH_MSG_FATAL( "unable to connect non-tool: LArFCAL_ID" ); + return StatusCode::FAILURE; + } + + ATH_CHECK(m_cablingKey.initialize()); + ATH_CHECK(m_larPedestalKey.initialize()); + ATH_CHECK(m_LArDigitContainerKey.initialize()); + + /** Get bad-channel mask */ + StatusCode sc=m_badChannelMask.retrieve(); + if (sc.isFailure()) { + ATH_MSG_ERROR( "Could not retrieve BadChannelMask" << m_badChannelMask); + return StatusCode::FAILURE; + } + + return AthMonitorAlgorithm::initialize(); +} + +/*---------------------------------------------------------*/ +StatusCode +LArCosmicsMonAlg::fillHistograms(const EventContext& ctx) const { + ATH_MSG_DEBUG( "in fillHists()" ); + + + //monitored variables + auto mon_eta_EM = Monitored::Scalar<float>("mon_eta_EM",0); + auto mon_eta_HEC = Monitored::Scalar<float>("mon_eta_HEC",0); + auto mon_eta_FCal = Monitored::Scalar<float>("mon_eta_FCal",0); + auto mon_phi = Monitored::Scalar<float>("mon_phi",0); + + + + ///////////////////////////////// + // Work with the LArDigits // + ///////////////////////////////// + + //retrieve pedestal + SG::ReadCondHandle<ILArPedestal> pedestalHdl{m_larPedestalKey,ctx}; + const ILArPedestal* pedestals=*pedestalHdl; + + //retrieve cabling + SG::ReadCondHandle<LArOnOffIdMapping> cablingHdl{m_cablingKey,ctx}; + const LArOnOffIdMapping* cabling=*cablingHdl; + + /** retrieve det. description manager */ + const CaloDetDescrManager* ddman = nullptr; + ATH_CHECK( detStore()->retrieve (ddman, "CaloMgr") ); + + //get digit container + SG::ReadHandle<LArDigitContainer> pLArDigitContainer{m_LArDigitContainerKey,ctx}; + + /** Define iterators to loop over Digits containers*/ + LArDigitContainer::const_iterator itDig = pLArDigitContainer->begin(); + LArDigitContainer::const_iterator itDig_e= pLArDigitContainer->end(); + const LArDigit* pLArDigit; + + + for ( ; itDig!=itDig_e;++itDig) { + pLArDigit = *itDig; + HWIdentifier id = pLArDigit->hardwareID(); + Identifier offlineID = cabling->cnvToIdentifier(id); + + // Skip disconnected channels + if(!cabling->isOnlineConnected(id)) continue; + + // Get Physical Coordinates + float eta=0; + float phi=0; + const CaloDetDescrElement* caloDetElement = ddman->get_element(offlineID); + if(caloDetElement == 0 ){ + ATH_MSG_ERROR( "Cannot retrieve (eta,phi) coordinates" ); + continue; + }else{ + eta = caloDetElement->eta_raw(); + phi = caloDetElement->phi_raw(); + } + + // Fix phi range in HEC + if (m_LArOnlineIDHelper->isHECchannel(id)) phi = CaloPhiRange::fix(phi); + + // Retrieve pedestals + CaloGain::CaloGain gain = pLArDigit->gain(); + float pedestal = pedestals->pedestal(id,gain); + + // Skip channel with no pedestal ref in db + if(pedestal <= (1.0+LArElecCalib::ERRORCODE)) continue; + + // Remove problematic channels + if (m_badChannelMask->cellShouldBeMasked(id)) continue; + + // + // HEC + // + + if(m_LArOnlineIDHelper->isHECchannel(id)){ + + int sampling = m_LArHEC_IDHelper->sampling(offlineID); + const std::vector < short >& samples = pLArDigit->samples(); + + // Look for Muons Candidates in sampling 1 + if(sampling != 1) continue; + + // Get highest energy sample + float sample_max = 0.; + int nsamples = samples.size(); + for (int im = 0 ; im < nsamples; im++) { + if (samples[im] > sample_max){ + sample_max = samples[im]; + } + } + sample_max = sample_max-pedestal; + + // If energy above threshold, we found a muon in the HEC + if((sample_max) > m_muonADCthreshold_HEC){ + mon_eta_HEC=eta; + mon_phi=phi; + fill(m_CosmicsMonGroupName,mon_eta_HEC,mon_phi); + } + + } // End HEC + + + // + // FCAL - Fill coverage / conditions / pedestal maps + // + + if(m_LArOnlineIDHelper->isFCALchannel(id)){ + + int sampling = m_LArFCAL_IDHelper->module(offlineID);; + const std::vector < short > samples = pLArDigit->samples(); + + // Look for Muons Candidates in sampling 2 + if(sampling != 2) continue; + + // Get highest energy sample + float sample_max = 0.; + int nsamples = samples.size(); + for (int im = 0 ; im < nsamples; im++) { + if (samples[im] > sample_max){ + sample_max = samples[im]; + } + } + sample_max = sample_max-pedestal; + + // If energy above threshold, we found a muon in the FCAL + if( (sample_max) > m_muonADCthreshold_FCAL){ + mon_eta_FCal=eta; + mon_phi=phi; + fill(m_CosmicsMonGroupName,mon_eta_FCal,mon_phi); + } + + }//end FCAL + + // + // ECAL + // + if(m_LArOnlineIDHelper->isEMECchannel(id) || m_LArOnlineIDHelper->isEMBchannel(id) ){ + + int sampling = m_LArEM_IDHelper->sampling(offlineID); + const std::vector < short > samples = pLArDigit->samples(); + + // Look for Muons Candidates in second sampling + if(sampling != 2) continue; + + // Get highest energy sample + float sample_max = 0.; + int nsamples = samples.size(); + for (int im = 0 ; im < nsamples; im++) { + if (samples[im] > sample_max){ + sample_max = samples[im]; + } + } + sample_max = sample_max-pedestal; + + // If energy above threshold, we found a muon in the barrel + if( m_LArEM_IDHelper->is_em_barrel(offlineID) && (sample_max) > m_muonADCthreshold_EM_barrel ){ + mon_eta_EM=eta; + mon_phi=phi; + fill(m_CosmicsMonGroupName,mon_eta_EM,mon_phi); + } + + // If energy above threshold, we found a muon in the endcap + if(m_LArEM_IDHelper->is_em_endcap(offlineID) && (sample_max) > m_muonADCthreshold_EM_endcap ){ + mon_eta_EM=eta; + mon_phi=phi; + fill(m_CosmicsMonGroupName,mon_eta_EM,mon_phi); + } + + } // end EM + + }// end of LArDigits loop + + return StatusCode::SUCCESS; +} + + + + diff --git a/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.h b/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.h new file mode 100644 index 00000000000..b68db5dfd0b --- /dev/null +++ b/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.h @@ -0,0 +1,107 @@ +/* + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration +*/ + +/** + * @class LArCosmicsMonAlg + * @author Margherita Spalla <margherita.spalla@cern.ch> (migrated from LArMonTools by Jessica Leveque <jleveque@in2p3.fr>) + * + */ + +#ifndef LARMONITORING_LARCOSMICSMONALG_H +#define LARMONITORING_LARCOSMICSMONALG_H + +#include "AthenaMonitoring/AthMonitorAlgorithm.h" +#include "AthenaMonitoringKernel/Monitored.h" + +#include "Identifier/HWIdentifier.h" +#include "CaloDetDescr/CaloDetDescrManager.h" +#include "CaloDetDescr/CaloDetDescriptor.h" +#include "CaloDetDescr/CaloDetDescrElement.h" +#include "CaloGeoHelpers/CaloPhiRange.h" +#include "CaloIdentifier/CaloGain.h" +#include "CaloIdentifier/CaloCell_ID.h" +#include "CaloIdentifier/CaloIdManager.h" +#include "LArElecCalib/ILArPedestal.h" +#include "LArRawEvent/LArDigit.h" +#include "LArRawEvent/LArDigitContainer.h" +#include "LArRawEvent/LArRawChannel.h" +#include "LArRawEvent/LArRawChannelContainer.h" +#include "LArCabling/LArCablingLegacyService.h" +#include "LArIdentifier/LArOnlineID.h" +#include "LArRecConditions/ILArBadChannelMasker.h" +#include "LArCabling/LArOnOffIdMapping.h" + +#include <map> +#include <string> +#include <bitset> +#include <vector> +#include "TH1.h" +#include "TH2I.h" +#include "TH2F.h" +#include "TMath.h" +#include "TProfile2D.h" +#include "TTree.h" + +class LArEM_ID; +class LArOnlineID; +class CaloDetDescrManager; +class CaloDetDescrElement; +class StoreGateSvc; +class ITHistSvc; + +class TH1I; +class TH2I; +class TH2F; +class TProfile2D; +class TTree; + +class LArCosmicsMonAlg: public AthMonitorAlgorithm +{ + public: + LArCosmicsMonAlg( const std::string& name, ISvcLocator* pSvcLocator ); + + /** @brief Default destructor */ + virtual ~LArCosmicsMonAlg(); + + /** @brief Overwrite dummy method from AlgTool */ + StatusCode initialize() override; + + + /** Called each event */ + virtual StatusCode fillHistograms( const EventContext& ctx ) const override; + + + private: + + // services + const LArOnlineID* m_LArOnlineIDHelper; + const LArEM_ID* m_LArEM_IDHelper; + const LArHEC_ID* m_LArHEC_IDHelper; + const LArFCAL_ID* m_LArFCAL_IDHelper; + + + /** Handle to digits */ + SG::ReadHandleKey<LArDigitContainer> m_LArDigitContainerKey{this,"LArDigitContainerKey","FREE","SG key of LArDigitContainer read from Bytestream"}; + + /** Handle to pedestal */ + SG::ReadCondHandleKey<ILArPedestal> m_larPedestalKey{this,"LArPedestalKey","LArPedestal","SG key of LArPedestal CDO"}; + + //** Handle to cabling */ + SG::ReadCondHandleKey<LArOnOffIdMapping> m_cablingKey{this, "CablingKey", "LArOnOffIdMap","Cabling key"}; + + /** Handle to bad-channel mask */ + ToolHandle<ILArBadChannelMasker> m_badChannelMask; + + //properties + Gaudi::Property<float> m_muonADCthreshold_EM_barrel {this, "MuonADCthreshold_EM_barrel", 30}; + Gaudi::Property<float> m_muonADCthreshold_EM_endcap {this, "MuonADCthreshold_EM_endcap", 40}; + Gaudi::Property<float> m_muonADCthreshold_HEC {this, "MuonADCthreshold_HEC", 40}; + Gaudi::Property<float> m_muonADCthreshold_FCAL {this, "MuonADCthreshold_FCAL", 40}; + + Gaudi::Property<std::string> m_CosmicsMonGroupName {this,"CosmicsMonGroupName","CosmicsMon"}; + Gaudi::Property< std::vector<std::string> > m_SubDet {this, "SubDet", {"EM","HEC","FCal"}}; + +}; + +#endif -- GitLab From aa859d8d4839d4cf7bec1bc563ed82c32e19a401 Mon Sep 17 00:00:00 2001 From: Margherita Spalla <margherita.spalla@cern.ch> Date: Mon, 27 Jul 2020 11:11:46 +0200 Subject: [PATCH 173/459] adjust entries and main JO --- LArCalorimeter/LArMonitoring/share/LArMonitoring_jobOption.py | 2 ++ .../LArMonitoring/src/components/LArMonitoring_entries.cxx | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/LArCalorimeter/LArMonitoring/share/LArMonitoring_jobOption.py b/LArCalorimeter/LArMonitoring/share/LArMonitoring_jobOption.py index bea4e71c7c5..91eeefb774c 100644 --- a/LArCalorimeter/LArMonitoring/share/LArMonitoring_jobOption.py +++ b/LArCalorimeter/LArMonitoring/share/LArMonitoring_jobOption.py @@ -19,6 +19,8 @@ if 'ESD' not in DQMonFlags.monManEnvironment(): if 'ESD' not in DQMonFlags.monManEnvironment(): from LArMonitoring.LArNoisyROMonAlg import LArNoisyROMonConfigOld topSequence += LArNoisyROMonConfigOld(DQMonFlags) + from LArMonitoring.LArCosmicsMonAlg import LArCosmicsMonConfigOld + topSequence +=LArCosmicsMonConfigOld(DQMonFlags) if globalflags.DataSource == 'data' and 'online' not in DQMonFlags.monManEnvironment(): from LArMonitoring.LArHVCorrMonAlg import LArHVCorrMonConfigOld diff --git a/LArCalorimeter/LArMonitoring/src/components/LArMonitoring_entries.cxx b/LArCalorimeter/LArMonitoring/src/components/LArMonitoring_entries.cxx index b1bdf425cfb..e4c3c673647 100755 --- a/LArCalorimeter/LArMonitoring/src/components/LArMonitoring_entries.cxx +++ b/LArCalorimeter/LArMonitoring/src/components/LArMonitoring_entries.cxx @@ -6,6 +6,8 @@ #include "../LArCoverageAlg.h" #include "../LArNoisyROMonAlg.h" #include "../LArHVCorrectionMonAlg.h" +#include "../LArCosmicsMonAlg.h" + DECLARE_COMPONENT(LArCollisionTimeMonAlg) DECLARE_COMPONENT(LArAffectedRegionsAlg) @@ -15,4 +17,4 @@ DECLARE_COMPONENT(LArDigitMonAlg) DECLARE_COMPONENT(LArCoverageAlg) DECLARE_COMPONENT(LArNoisyROMonAlg) DECLARE_COMPONENT(LArHVCorrectionMonAlg) - +DECLARE_COMPONENT(LArCosmicsMonAlg) -- GitLab From 640f161f7eea19c4cb51400b53b2b55d15539a59 Mon Sep 17 00:00:00 2001 From: Julie Kirk <Julie.Kirk@cern.ch> Date: Mon, 27 Jul 2020 11:25:30 +0200 Subject: [PATCH 174/459] Update tau chain names for TIDV modified: Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-chains-run3.dat modified: Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_grid.py --- .../TrigInDetAnalysisUser/share/TIDAdata-chains-run3.dat | 2 ++ .../TrigInDetValidation/test/test_trigID_all_ttbar_pu80_grid.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-chains-run3.dat b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-chains-run3.dat index 82bb1275dbe..4634294863a 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-chains-run3.dat +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/share/TIDAdata-chains-run3.dat @@ -15,7 +15,9 @@ testChains = { "HLT_e5_etcut_L1EM3:HLT_IDTrack_Electron_IDTrig", "HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_TauCore_FTF", + "HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_TauCore_FTF:HLT_Roi_TauCore", "HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_TauIso_FTF", + "HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_TauIso_FTF:HLT_Roi_TauIso", "HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_Tau_FTF", "HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_Tau_IDTrig", diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_grid.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_grid.py index dcbb230d96a..c6b113f7a68 100755 --- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_grid.py +++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_grid.py @@ -145,7 +145,7 @@ test.check_steps.append(comp4) comp5=TrigInDetCompStep('CompareStep5') comp5.chains='HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_TauCore_FTF HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_Tau_IDTrig' -comp4.output_dir = 'HLT-plots-tau-IDTrig' +comp5.output_dir = 'HLT-plots-tau-IDTrig' test.check_steps.append(comp5) -- GitLab From 1611afda4d36e9e5986cca25dfe3e4c394297fe9 Mon Sep 17 00:00:00 2001 From: Dan Guest <dguest@cern.ch> Date: Fri, 24 Jul 2020 20:23:43 +0200 Subject: [PATCH 175/459] Remove 200 lines of boilerplate code --- .../FlavorTagDiscriminants/BTagJetAugmenter.h | 39 +---- .../Root/BTagJetAugmenter.cxx | 160 +++++------------- .../BTagging/BTagHighLevelAugmenterAlg.h | 45 +---- .../src/BTagHighLevelAugmenterAlg.cxx | 88 ++-------- 4 files changed, 52 insertions(+), 280 deletions(-) diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagJetAugmenter.h b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagJetAugmenter.h index f76f99de917..8bfe43ab696 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagJetAugmenter.h +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagJetAugmenter.h @@ -25,44 +25,7 @@ public: void augment(const xAOD::Jet &jet); void augment(const xAOD::Jet &jet, const xAOD::Jet &uncalibrated_jet); - std::string get_pt_uncalib_key(); - std::string get_eta_uncalib_key(); - std::string get_abs_eta_uncalib_key(); - - std::string get_ip2d_nTrks_key(); - std::string get_ip2d_isDefaults_key(); - std::string get_ip2d_cu_key(); - std::string get_ip2d_bu_key(); - std::string get_ip2d_bc_key(); - - std::string get_ip3d_nTrks_key(); - std::string get_ip3d_isDefaults_key(); - std::string get_ip3d_cu_key(); - std::string get_ip3d_bu_key(); - std::string get_ip3d_bc_key(); - - std::string get_jf_isDefaults_key(); - std::string get_jf_deltaR_key(); - - std::string get_sv1_isDefaults_key(); - - std::string get_secondaryVtx_isDefaults_key(); - std::string get_secondaryVtx_nTrks_key(); - std::string get_secondaryVtx_m_key(); - std::string get_secondaryVtx_E_key(); - std::string get_secondaryVtx_EFrac_key(); - std::string get_secondaryVtx_L3d_key(); - std::string get_secondaryVtx_Lxy_key(); - std::string get_secondaryVtx_min_trk_flightDirRelEta_key(); - std::string get_secondaryVtx_max_trk_flightDirRelEta_key(); - std::string get_secondaryVtx_avg_trk_flightDirRelEta_key(); - std::string get_min_trk_flightDirRelEta_key(); - std::string get_max_trk_flightDirRelEta_key(); - std::string get_avg_trk_flightDirRelEta_key(); - - std::string get_smt_isDefaults_key(); - - std::string get_rnnip_isDefaults_key(); + std::vector<std::string> getDecoratorKeys() const; private: bool jfIsDefaults(const xAOD::BTagging &btag); diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx index 60af7d82e5c..7005f268dac 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx @@ -122,128 +122,44 @@ BTagJetAugmenter::BTagJetAugmenter(std::string associator, FlavorTagDiscriminant BTagJetAugmenter::~BTagJetAugmenter() = default; BTagJetAugmenter::BTagJetAugmenter(BTagJetAugmenter&&) = default; -std::string BTagJetAugmenter::get_pt_uncalib_key() { - return SG::AuxTypeRegistry::instance().getName( m_pt_uncalib.auxid() ); -} - -std::string BTagJetAugmenter::get_eta_uncalib_key() { - return SG::AuxTypeRegistry::instance().getName( m_eta_uncalib.auxid() ); -} - -std::string BTagJetAugmenter:: get_abs_eta_uncalib_key() { - return SG::AuxTypeRegistry::instance().getName( m_abs_eta_uncalib.auxid() ); -} - -std::string BTagJetAugmenter::get_ip2d_nTrks_key() { - return SG::AuxTypeRegistry::instance().getName( m_ip2d_nTrks.auxid() ); -} - -std::string BTagJetAugmenter::get_ip2d_isDefaults_key() { - return SG::AuxTypeRegistry::instance().getName( m_ip2d_isDefaults.auxid() ); -} - -std::string BTagJetAugmenter::get_ip2d_cu_key() { - return SG::AuxTypeRegistry::instance().getName( m_ip2d_cu.auxid() ); -} - -std::string BTagJetAugmenter::get_ip2d_bu_key() { - return SG::AuxTypeRegistry::instance().getName( m_ip2d_bu.auxid() ); -} - -std::string BTagJetAugmenter::get_ip2d_bc_key() { - return SG::AuxTypeRegistry::instance().getName( m_ip2d_bc.auxid() ); -} - -std::string BTagJetAugmenter::get_ip3d_nTrks_key() { - return SG::AuxTypeRegistry::instance().getName( m_ip3d_nTrks.auxid() ); -} - -std::string BTagJetAugmenter::get_ip3d_isDefaults_key() { - return SG::AuxTypeRegistry::instance().getName( m_ip3d_isDefaults.auxid() ); -} - -std::string BTagJetAugmenter::get_ip3d_cu_key() { - return SG::AuxTypeRegistry::instance().getName( m_ip3d_cu.auxid() ); -} - -std::string BTagJetAugmenter::get_ip3d_bu_key() { - return SG::AuxTypeRegistry::instance().getName( m_ip3d_bu.auxid() ); -} - -std::string BTagJetAugmenter::get_ip3d_bc_key() { - return SG::AuxTypeRegistry::instance().getName( m_ip3d_bc.auxid() ); -} - -std::string BTagJetAugmenter::get_jf_isDefaults_key() { - return SG::AuxTypeRegistry::instance().getName( m_jf_isDefaults.auxid() ); -} - -std::string BTagJetAugmenter::get_jf_deltaR_key() { - return SG::AuxTypeRegistry::instance().getName( m_jf_deltaR.auxid() ); -} - -std::string BTagJetAugmenter::get_sv1_isDefaults_key() { - return SG::AuxTypeRegistry::instance().getName( m_sv1_isDefaults.auxid() ); -} - -std::string BTagJetAugmenter::get_secondaryVtx_isDefaults_key() { - return SG::AuxTypeRegistry::instance().getName( m_secondaryVtx_isDefaults.auxid() ); -} - -std::string BTagJetAugmenter::get_secondaryVtx_nTrks_key() { - return SG::AuxTypeRegistry::instance().getName( m_secondaryVtx_nTrks.auxid() ); -} - -std::string BTagJetAugmenter::get_secondaryVtx_m_key() { - return SG::AuxTypeRegistry::instance().getName( m_secondaryVtx_m.auxid() ); -} - -std::string BTagJetAugmenter::get_secondaryVtx_E_key() { - return SG::AuxTypeRegistry::instance().getName( m_secondaryVtx_E.auxid() ); -} - -std::string BTagJetAugmenter::get_secondaryVtx_EFrac_key() { - return SG::AuxTypeRegistry::instance().getName( m_secondaryVtx_EFrac.auxid() ); -} - -std::string BTagJetAugmenter::get_secondaryVtx_L3d_key() { - return SG::AuxTypeRegistry::instance().getName( m_secondaryVtx_L3d.auxid() ); -} - -std::string BTagJetAugmenter::get_secondaryVtx_Lxy_key() { - return SG::AuxTypeRegistry::instance().getName( m_secondaryVtx_Lxy.auxid() ); -} - -std::string BTagJetAugmenter::get_secondaryVtx_min_trk_flightDirRelEta_key() { - return SG::AuxTypeRegistry::instance().getName( m_secondaryVtx_min_trk_flightDirRelEta.auxid() ); -} - -std::string BTagJetAugmenter::get_secondaryVtx_max_trk_flightDirRelEta_key() { - return SG::AuxTypeRegistry::instance().getName( m_secondaryVtx_max_trk_flightDirRelEta.auxid() ); -} - -std::string BTagJetAugmenter::get_secondaryVtx_avg_trk_flightDirRelEta_key() { - return SG::AuxTypeRegistry::instance().getName( m_secondaryVtx_avg_trk_flightDirRelEta.auxid() ); -} - -std::string BTagJetAugmenter::get_min_trk_flightDirRelEta_key() { - return SG::AuxTypeRegistry::instance().getName( m_min_trk_flightDirRelEta.auxid() ); -} - -std::string BTagJetAugmenter::get_max_trk_flightDirRelEta_key() { - return SG::AuxTypeRegistry::instance().getName( m_max_trk_flightDirRelEta.auxid() ); -} - -std::string BTagJetAugmenter::get_avg_trk_flightDirRelEta_key() { - return SG::AuxTypeRegistry::instance().getName( m_avg_trk_flightDirRelEta.auxid() ); -} - -std::string BTagJetAugmenter::get_smt_isDefaults_key() { - return SG::AuxTypeRegistry::instance().getName( m_smt_isDefaults.auxid() ); -} - -std::string BTagJetAugmenter::get_rnnip_isDefaults_key() { - return SG::AuxTypeRegistry::instance().getName( m_rnnip_isDefaults.auxid() ); +std::vector<std::string> BTagJetAugmenter::getDecoratorKeys() const { + const auto& type_registry = SG::AuxTypeRegistry::instance(); + std::vector<std::string> keys; + for (const auto& auxid: { + m_pt_uncalib.auxid(), + m_eta_uncalib.auxid(), + m_abs_eta_uncalib.auxid(), + m_ip2d_nTrks.auxid(), + m_ip2d_isDefaults.auxid(), + m_ip2d_cu.auxid(), + m_ip2d_bu.auxid(), + m_ip2d_bc.auxid(), + m_ip3d_nTrks.auxid(), + m_ip3d_isDefaults.auxid(), + m_ip3d_cu.auxid(), + m_ip3d_bu.auxid(), + m_ip3d_bc.auxid(), + m_jf_isDefaults.auxid(), + m_jf_deltaR.auxid(), + m_sv1_isDefaults.auxid(), + m_secondaryVtx_isDefaults.auxid(), + m_secondaryVtx_nTrks.auxid(), + m_secondaryVtx_m.auxid(), + m_secondaryVtx_E.auxid(), + m_secondaryVtx_EFrac.auxid(), + m_secondaryVtx_L3d.auxid(), + m_secondaryVtx_Lxy.auxid(), + m_secondaryVtx_min_trk_flightDirRelEta.auxid(), + m_secondaryVtx_max_trk_flightDirRelEta.auxid(), + m_secondaryVtx_avg_trk_flightDirRelEta.auxid(), + m_min_trk_flightDirRelEta.auxid(), + m_max_trk_flightDirRelEta.auxid(), + m_avg_trk_flightDirRelEta.auxid(), + m_smt_isDefaults.auxid(), + m_rnnip_isDefaults.auxid()}) { + keys.push_back(type_registry.getName(auxid)); + } + return keys; } void BTagJetAugmenter::augment(const xAOD::Jet &jet, const xAOD::Jet &uncalibrated_jet) { diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagHighLevelAugmenterAlg.h b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagHighLevelAugmenterAlg.h index ed7eacd49dd..a9abf708adc 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagHighLevelAugmenterAlg.h +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagHighLevelAugmenterAlg.h @@ -38,49 +38,10 @@ namespace Analysis { typedef SG::AuxElement AE; - - // Decorator keys will be modified at run-time to conform to the correct container name - // For the run-time update to work, the decoration key name properties must start with a period (".") - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_pt_uncalib {this, "pt_uncalib", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_eta_uncalib {this, "eta_uncalib", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_abs_eta_uncalib {this, "abs_eta_uncalib", "", ""}; - - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_ip2d_nTrks {this, "ip2d_nTrks", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_ip2d_isDefaults {this, "ip2d_isDefaults", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_ip2d_cu {this, "ip2d_cu", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_ip2d_bu {this, "ip2d_bu", "", "" }; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_ip2d_bc {this, "ip2d_bc", "", ""}; - - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_ip3d_nTrks {this, "ip3d_nTrks", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_ip3d_isDefaults {this, "ip3d_isDefaults", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_ip3d_cu {this, "ip3d_cu", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_ip3d_bu {this, "ip3d_bu", "", "" }; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_ip3d_bc {this, "ip3d_bc", "", ""}; - - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_jf_isDefaults {this, "jf_isDefaults", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_jf_deltaR {this, "jf_deltaR", "", ""}; - - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_sv1_isDefaults {this, "sv1_isDefaults", "", ""}; - - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_secondaryVtx_isDefaults {this, "secondaryVtx_isDefaults", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_secondaryVtx_nTrks {this, "secondaryVtx_nTrks", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_secondaryVtx_m {this, "secondaryVtx_m", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_secondaryVtx_E {this, "secondaryVtx_E", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_secondaryVtx_EFrac {this, "secondaryVtx_EFrac", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_secondaryVtx_L3d {this, "secondaryVtx_L3d", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_secondaryVtx_Lxy {this, "secondaryVtx_Lxy", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_secondaryVtx_min_trk_flightDirRelEta {this, "secondaryVtx_min_trk_flightDirRelEta", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_secondaryVtx_max_trk_flightDirRelEta {this, "secondaryVtx_max_trk_flightDirRelEta", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_secondaryVtx_avg_trk_flightDirRelEta {this, "secondaryVtx_avg_trk_flightDirRelEta", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_min_trk_flightDirRelEta {this, "min_trk_flightDirRelEta", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_max_trk_flightDirRelEta {this, "max_trk_flightDirRelEta", "", ""}; - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_avg_trk_flightDirRelEta {this, "avg_trk_flightDirRelEta", "", ""}; - - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_smt_isDefaults {this, "smt_isDefaults", "", ""}; - - SG::WriteDecorHandleKey< xAOD::BTaggingContainer > m_dec_rnnip_isDefaults {this, "rnnip_isDefaults", "", ""}; + // Decorator keys will be created at run-time to conform to the + // correct container name. + std::vector<SG::WriteDecorHandleKey<xAOD::BTaggingContainer>> m_write_handles; }; } - #endif diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx index bfa4efa4afd..b8fd5622087 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx @@ -36,84 +36,16 @@ namespace Analysis { FlipTagConfig flipTagConf = FlavorTagDiscriminants::flipTagConfigFromString(m_flipTagConfig); m_aug = std::make_unique<BTagJetAugmenter>(m_acc_jet_track_links, flipTagConf); - m_dec_pt_uncalib = m_BTagCollectionName.key() + "." + m_aug->get_pt_uncalib_key(); - m_dec_eta_uncalib = m_BTagCollectionName.key() + "." + m_aug->get_eta_uncalib_key(); - m_dec_abs_eta_uncalib = m_BTagCollectionName.key() + "." + m_aug->get_abs_eta_uncalib_key(); - - m_dec_ip2d_nTrks = m_BTagCollectionName.key() + "." + m_aug->get_ip2d_nTrks_key(); - m_dec_ip2d_isDefaults = m_BTagCollectionName.key() + "." + m_aug->get_ip2d_isDefaults_key(); - m_dec_ip2d_cu = m_BTagCollectionName.key() + "." + m_aug->get_ip2d_cu_key(); - m_dec_ip2d_bu = m_BTagCollectionName.key() + "." + m_aug->get_ip2d_bu_key(); - m_dec_ip2d_bc = m_BTagCollectionName.key() + "." + m_aug->get_ip2d_bc_key(); - - m_dec_ip3d_nTrks = m_BTagCollectionName.key() + "." + m_aug->get_ip3d_nTrks_key(); - m_dec_ip3d_isDefaults = m_BTagCollectionName.key() + "." + m_aug->get_ip3d_isDefaults_key(); - m_dec_ip3d_cu = m_BTagCollectionName.key() + "." + m_aug->get_ip3d_cu_key(); - m_dec_ip3d_bu = m_BTagCollectionName.key() + "." + m_aug->get_ip2d_bu_key(); - m_dec_ip3d_bc = m_BTagCollectionName.key() + "." + m_aug->get_ip2d_bc_key(); - - m_dec_jf_isDefaults = m_BTagCollectionName.key() + "." + m_aug->get_jf_isDefaults_key(); - m_dec_jf_deltaR = m_BTagCollectionName.key() + "." + m_aug->get_jf_deltaR_key(); - - m_dec_sv1_isDefaults = m_BTagCollectionName.key() + "." + m_aug->get_sv1_isDefaults_key(); - - m_dec_secondaryVtx_isDefaults = m_BTagCollectionName.key() + "." + m_aug->get_secondaryVtx_isDefaults_key(); - m_dec_secondaryVtx_nTrks = m_BTagCollectionName.key() + "." + m_aug->get_secondaryVtx_nTrks_key(); - m_dec_secondaryVtx_m = m_BTagCollectionName.key() + "." + m_aug->get_secondaryVtx_m_key(); - m_dec_secondaryVtx_E = m_BTagCollectionName.key() + "." + m_aug->get_secondaryVtx_E_key(); - m_dec_secondaryVtx_EFrac = m_BTagCollectionName.key() + "." + m_aug->get_secondaryVtx_EFrac_key(); - m_dec_secondaryVtx_L3d = m_BTagCollectionName.key() + "." + m_aug->get_secondaryVtx_L3d_key(); - m_dec_secondaryVtx_Lxy = m_BTagCollectionName.key() + "." + m_aug->get_secondaryVtx_Lxy_key(); - m_dec_secondaryVtx_min_trk_flightDirRelEta = m_BTagCollectionName.key() + "." + m_aug->get_secondaryVtx_min_trk_flightDirRelEta_key(); - m_dec_secondaryVtx_max_trk_flightDirRelEta = m_BTagCollectionName.key() + "." + m_aug->get_secondaryVtx_max_trk_flightDirRelEta_key(); - m_dec_secondaryVtx_avg_trk_flightDirRelEta = m_BTagCollectionName.key() + "." + m_aug->get_secondaryVtx_avg_trk_flightDirRelEta_key(); - m_dec_min_trk_flightDirRelEta = m_BTagCollectionName.key() + "." + m_aug->get_min_trk_flightDirRelEta_key(); - m_dec_max_trk_flightDirRelEta = m_BTagCollectionName.key() + "." + m_aug->get_max_trk_flightDirRelEta_key(); - m_dec_avg_trk_flightDirRelEta = m_BTagCollectionName.key() + "." + m_aug->get_avg_trk_flightDirRelEta_key(); - - m_dec_smt_isDefaults = m_BTagCollectionName.key() + "." + m_aug->get_smt_isDefaults_key(); - - m_dec_rnnip_isDefaults = m_BTagCollectionName.key() + "." + m_aug->get_rnnip_isDefaults_key(); - - CHECK( m_dec_pt_uncalib.initialize() ); - CHECK( m_dec_eta_uncalib.initialize() ); - CHECK( m_dec_abs_eta_uncalib.initialize() ); - - CHECK( m_dec_ip2d_nTrks.initialize() ); - CHECK( m_dec_ip2d_isDefaults.initialize() ); - CHECK( m_dec_ip2d_cu.initialize() ); - CHECK( m_dec_ip2d_bu.initialize() ); - CHECK( m_dec_ip2d_bc.initialize() ); - - CHECK( m_dec_ip3d_nTrks.initialize() ); - CHECK( m_dec_ip3d_isDefaults.initialize() ); - CHECK( m_dec_ip3d_cu.initialize() ); - CHECK( m_dec_ip3d_bu.initialize() ); - CHECK( m_dec_ip3d_bc.initialize() ); - - CHECK( m_dec_jf_isDefaults.initialize() ); - CHECK( m_dec_jf_deltaR.initialize() ); - - CHECK( m_dec_sv1_isDefaults.initialize() ); - - CHECK( m_dec_secondaryVtx_isDefaults.initialize() ); - CHECK( m_dec_secondaryVtx_nTrks.initialize() ); - CHECK( m_dec_secondaryVtx_m.initialize() ); - CHECK( m_dec_secondaryVtx_E.initialize() ); - CHECK( m_dec_secondaryVtx_EFrac.initialize() ); - CHECK( m_dec_secondaryVtx_L3d.initialize() ); - CHECK( m_dec_secondaryVtx_Lxy.initialize() ); - CHECK( m_dec_secondaryVtx_min_trk_flightDirRelEta.initialize() ); - CHECK( m_dec_secondaryVtx_max_trk_flightDirRelEta.initialize() ); - CHECK( m_dec_secondaryVtx_avg_trk_flightDirRelEta.initialize() ); - CHECK( m_dec_min_trk_flightDirRelEta.initialize() ); - CHECK( m_dec_max_trk_flightDirRelEta.initialize() ); - CHECK( m_dec_avg_trk_flightDirRelEta.initialize() ); - - CHECK( m_dec_smt_isDefaults.initialize() ); - - CHECK( m_dec_rnnip_isDefaults.initialize() ); - + // create and initialize write handles + for (const std::string& key: m_aug->getDecoratorKeys()) { + std::string full_key = m_BTagCollectionName.key() + "." + key; + ATH_MSG_DEBUG("Adding " << full_key); + SG::WriteDecorHandleKey<xAOD::BTaggingContainer> handle{ + this, key, full_key, ""}; + m_write_handles.push_back(handle); + ATH_MSG_DEBUG("Initializing " << full_key); + ATH_CHECK(m_write_handles.back().initialize()); + } return StatusCode::SUCCESS; } -- GitLab From b6f508c6acd49ef7e086ef5f019a0484c12b9fc8 Mon Sep 17 00:00:00 2001 From: Stephen Nicholas Swatman <stephen.nicholas.swatman@cern.ch> Date: Thu, 23 Jul 2020 15:33:51 +0200 Subject: [PATCH 176/459] Refactor GX2F residual derivatives to MatrixX These were stored as a vector of vectors of doubles. That's a bit of a questionable data structure from a performance perspective and it's also just very unclear. Using an Amg::MatrixX resolves this issue. --- .../TrkGlobalChi2Fitter/GXFTrajectory.h | 4 +- .../TrkGlobalChi2Fitter/src/GXFTrajectory.cxx | 21 +-- .../src/GlobalChi2Fitter.cxx | 152 +++++++++--------- 3 files changed, 83 insertions(+), 94 deletions(-) diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h index 33b44704908..0cd72ca0703 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h @@ -78,7 +78,7 @@ namespace Trk { std::vector < double >&residuals(); std::vector < double >&errors(); - std::vector < std::vector < double >>&weightedResidualDerivatives(); + Amg::MatrixX & weightedResidualDerivatives(); double totalX0(); double totalEnergyLoss(); @@ -118,7 +118,7 @@ namespace Trk { std::vector < double >m_brems; std::vector < double >m_res; std::vector < double >m_errors; - std::vector < std::vector < double >>m_weightresderiv; + Amg::MatrixX m_weightresderiv; double m_totx0; double m_toteloss; double m_mass; diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrajectory.cxx b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrajectory.cxx index 82f3e06279b..a7039f19336 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrajectory.cxx +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrajectory.cxx @@ -437,7 +437,7 @@ namespace Trk { void GXFTrajectory::reset() { m_res.clear(); - m_weightresderiv.clear(); + m_weightresderiv.resize(0, 0); m_errors.clear(); m_scatteringangles.clear(); m_scatteringsigmas.clear(); @@ -634,19 +634,12 @@ namespace Trk { return m_errors; } - std::vector < std::vector < double >>& - GXFTrajectory::weightedResidualDerivatives() { - if (m_weightresderiv.empty()) { - m_weightresderiv.resize(numberOfBrems() + m_ndof + m_nperpars + - m_nmeasoutl); - // std::cout << "nmeas: " << 2*m_nscatterers+m_nbrems+m_ndof+m_nperpars+m_nmeasoutl << " capacity: " << - // m_resderiv.capacity() << " numberOfFitParameters: " << numberOfFitParameters() << std::endl; - int nfitpar = numberOfFitParameters(); - // std::cout << "capacity: " << m_resderiv.capacity() << " nbrems: " << numberOfBrems() << " ndof: " << m_ndof << - // " perpars: " << m_nperpars << " noutl: " << m_nmeasoutl << std::endl; - for (auto & i : m_weightresderiv) { - i.resize(nfitpar); - } + Amg::MatrixX & GXFTrajectory::weightedResidualDerivatives() { + if (m_weightresderiv.size() == 0) { + m_weightresderiv.setZero( + numberOfBrems() + m_ndof + m_nperpars + m_nmeasoutl, + numberOfFitParameters() + ); } return m_weightresderiv; } diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx index b3562ac57f2..fa75cd22bfb 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx @@ -5552,8 +5552,9 @@ namespace Trk { int nbrem = trajectory.numberOfBrems(); int nperpars = trajectory.numberOfPerigeeParameters(); int nfitpars = trajectory.numberOfFitParameters(); + std::vector < double >&res = trajectory.residuals(); - std::vector < std::vector < double >>&weightderiv = trajectory.weightedResidualDerivatives(); + Amg::MatrixX & weightderiv = trajectory.weightedResidualDerivatives(); int nidhits = trajectory.numberOfSiliconHits() + trajectory.numberOfTRTHits(); int nsihits = trajectory.numberOfSiliconHits(); int ntrthits = trajectory.numberOfTRTHits(); @@ -5825,7 +5826,7 @@ namespace Trk { } for (int i = 0; i < nfitpars; i++) { - if (weightderiv[nmeas - nbrem + bremno_maxbrempull][i] == 0) { + if (weightderiv(nmeas - nbrem + bremno_maxbrempull, i) == 0) { continue; } @@ -5833,14 +5834,13 @@ namespace Trk { a.fillSymmetric( i, j, a(i, j) - ( - weightderiv[nmeas - nbrem + bremno_maxbrempull][i] * - weightderiv[nmeas - nbrem + bremno_maxbrempull][j] * + weightderiv(nmeas - nbrem + bremno_maxbrempull, i) * + weightderiv(nmeas - nbrem + bremno_maxbrempull, j) * (1 - olderror * olderror / (newerror * newerror)) ) ); } - - weightderiv[nmeas - nbrem + bremno_maxbrempull][i] *= olderror / newerror; + weightderiv(nmeas - nbrem + bremno_maxbrempull, i) *= olderror / newerror; } lu_m = a; trajectory.setChi2(1e15); @@ -5864,10 +5864,10 @@ namespace Trk { int nbrem = trajectory.numberOfBrems(); int nperparams = trajectory.numberOfPerigeeParameters(); - std::vector < std::vector < double >>&weightderiv = trajectory.weightedResidualDerivatives(); + Amg::MatrixX & weightderiv = trajectory.weightedResidualDerivatives(); std::vector < double >&error = trajectory.errors(); - int nmeas = (int) weightderiv.size(); + int nmeas = (int) weightderiv.rows(); ParamDefsAccessor paraccessor; @@ -5907,24 +5907,12 @@ namespace Trk { } if (trajectory.numberOfPerigeeParameters() > 0) { - if (i == 0 && sinstereo != 0) { - weightderiv[measno][0] = (derivatives(0, 0) * cosstereo + sinstereo * derivatives(1, 0)) / error[measno]; - weightderiv[measno][1] = (derivatives(0, 1) * cosstereo + sinstereo * derivatives(1, 1)) / error[measno]; - weightderiv[measno][2] = (derivatives(0, 2) * cosstereo + sinstereo * derivatives(1, 2)) / error[measno]; - weightderiv[measno][3] = (derivatives(0, 3) * cosstereo + sinstereo * derivatives(1, 3)) / error[measno]; - - if (!trajectory.m_straightline) { - weightderiv[measno][4] = (derivatives(0, 4) * cosstereo + sinstereo * derivatives(1, 4)) / error[measno]; - } + int cols = trajectory.m_straightline ? 4 : 5; + + if (i == 0) { + weightderiv.row(measno).head(cols) = (derivatives.row(0).head(cols) * cosstereo + sinstereo * derivatives.row(1).head(cols)) / error[measno]; } else { - weightderiv[measno][0] = derivatives(i, 0) / error[measno]; - weightderiv[measno][1] = derivatives(i, 1) / error[measno]; - weightderiv[measno][2] = derivatives(i, 2) / error[measno]; - weightderiv[measno][3] = derivatives(i, 3) / error[measno]; - - if (!trajectory.m_straightline) { - weightderiv[measno][4] = derivatives(i, 4) / error[measno]; - } + weightderiv.row(measno).head(cols) = derivatives.row(i).head(cols) / error[measno]; } } @@ -5940,7 +5928,7 @@ namespace Trk { thisderiv = sign * derivatives(i, index); } - weightderiv[measno][index] = thisderiv / error[measno]; + weightderiv(measno, index) = thisderiv / error[measno]; if (trajectory.prefit() != 1) { index++; @@ -5951,7 +5939,7 @@ namespace Trk { thisderiv = sign * derivatives(i, index); } - weightderiv[measno][index] = thisderiv / error[measno]; + weightderiv(measno, index) = thisderiv / error[measno]; } } @@ -5965,7 +5953,7 @@ namespace Trk { thisderiv = derivatives(i, index); } - weightderiv[measno][index] = thisderiv / error[measno]; + weightderiv(measno, index) = thisderiv / error[measno]; } measno++; @@ -5995,7 +5983,7 @@ namespace Trk { double mass = .001 * trajectory.mass(); if (trajectory.numberOfPerigeeParameters() > 0) { - weightderiv[nmeas - nbrem + bremno][4] = ( + weightderiv(nmeas - nbrem + bremno, 4) = ( ( -sign / (qoverp * qoverp * sqrt(1 + mass * mass * qoverp * qoverp)) + sign2 / (qoverpbrem * qoverpbrem * sqrt(1 + mass * mass * qoverpbrem * qoverpbrem)) @@ -6004,13 +5992,13 @@ namespace Trk { } if (bremno < nbremupstream) { - weightderiv[nmeas - nbrem + bremno][nperparams + 2 * nscat + bremno] = ( + weightderiv(nmeas - nbrem + bremno, nperparams + 2 * nscat + bremno) = ( (sign / (qoverp * qoverp * sqrt(1 + mass * mass * qoverp * qoverp))) / error[nmeas - nbrem + bremno] ); for (int bremno2 = bremno + 1; bremno2 < nbremupstream; bremno2++) { - weightderiv[nmeas - nbrem + bremno][nperparams + 2 * nscat + bremno2] = ( + weightderiv(nmeas - nbrem + bremno, nperparams + 2 * nscat + bremno2) = ( -( -sign / (qoverp * qoverp * sqrt(1 + mass * mass * qoverp * qoverp)) + sign2 / (qoverpbrem * qoverpbrem * sqrt(1 + mass * mass * qoverpbrem * qoverpbrem)) @@ -6018,13 +6006,13 @@ namespace Trk { ); } } else { - weightderiv[nmeas - nbrem + bremno][nperparams + 2 * nscat + bremno] = ( + weightderiv(nmeas - nbrem + bremno, nperparams + 2 * nscat + bremno) = ( (sign2 / (qoverpbrem * qoverpbrem * sqrt(1 + mass * mass * qoverpbrem * qoverpbrem))) / error[nmeas - nbrem + bremno] ); for (int bremno2 = nbremupstream; bremno2 < bremno; bremno2++) { - weightderiv[nmeas - nbrem + bremno][nperparams + 2 * nscat + bremno2] = ( + weightderiv(nmeas - nbrem + bremno, nperparams + 2 * nscat + bremno2) = ( ( -sign / (qoverp * qoverp * sqrt(1 + mass * mass * qoverp * qoverp)) + sign2 / (qoverpbrem * qoverpbrem * sqrt(1 + mass * mass * qoverpbrem * qoverpbrem)) @@ -6089,7 +6077,7 @@ namespace Trk { int nmeas = (int) res.size(); - std::vector < std::vector < double >>&weightderiv = trajectory.weightedResidualDerivatives(); + const Amg::MatrixX & weight_deriv = trajectory.weightedResidualDerivatives(); if (doderiv) { calculateDerivatives(trajectory); @@ -6157,13 +6145,13 @@ namespace Trk { for (measno = minmeas; measno < maxmeas; measno++) { double tmp = - res[measno] * (1. / error[measno]) * weightderiv[measno][k]; + res[measno] * (1. / error[measno]) * weight_deriv(measno, k); b[k] += tmp; } if (k == 4 || k >= nperpars + scatpars) { for (measno = nmeas - nbrem; measno < nmeas; measno++) { - b[k] += res[measno] * (1. / error[measno]) * weightderiv[measno][k]; + b[k] += res[measno] * (1. / error[measno]) * weight_deriv(measno, k); } } @@ -6176,7 +6164,7 @@ namespace Trk { cache.m_firstmeasurement[l]); double tmp = 0; for (measno = minmeas; measno < maxmeas; measno++) { - tmp += weightderiv[measno][k] * weightderiv[measno][l]; + tmp += weight_deriv(measno, k) * weight_deriv(measno, l); } a.fillSymmetric(l, k, tmp); } @@ -6202,7 +6190,7 @@ namespace Trk { if (l == 5) { l = nperpars + scatpars; } - double tmp = a(l, k) + weightderiv[measno][k] * weightderiv[measno][l]; + double tmp = a(l, k) + weight_deriv(measno, k) * weight_deriv(measno, l); a.fillSymmetric(l, k, tmp); } } @@ -6297,7 +6285,7 @@ namespace Trk { for (measno = 0; measno < nmeas; measno++) { for (int k = 0; k < nfitpars; k++) { ATH_MSG_VERBOSE( - "deriv[" << measno << "][" << k << "]=" << weightderiv[measno][k] * error[measno] << + "deriv[" << measno << "][" << k << "]=" << weight_deriv(measno, k) * error[measno] << " error: " << error[measno] ); } @@ -6435,7 +6423,7 @@ namespace Trk { std::vector < GXFTrackState * >&states = trajectory.trackStates(); std::vector < double >&res = trajectory.residuals(); std::vector < double >&err = trajectory.errors(); - std::vector < std::vector < double >>&weightderiv = trajectory.weightedResidualDerivatives(); + Amg::MatrixX & weightderiv = trajectory.weightedResidualDerivatives(); int nfitpars = trajectory.numberOfFitParameters(); if (a.cols() != nfitpars) { @@ -6470,16 +6458,19 @@ namespace Trk { double olderror = errors[0]; for (int i = 0; i < nfitpars; i++) { - if (weightderiv[measno][i] == 0) { + if (weightderiv(measno, i) == 0) { continue; } - b[i] -= res[measno] * weightderiv[measno][i] / olderror; + b[i] -= res[measno] * weightderiv(measno, i) / olderror; for (int j = i; j < nfitpars; j++) { - a.fillSymmetric(i, j, a(i, j) - weightderiv[measno][i] * weightderiv[measno][j]); + a.fillSymmetric( + i, j, + a(i, j) - weightderiv(measno, i) * weightderiv(measno, j) + ); } - weightderiv[measno][i] = 0; + weightderiv(measno, i) = 0; } res[measno] = 0; @@ -6528,13 +6519,11 @@ namespace Trk { state->setMeasurement(newrot); for (int i = 0; i < nfitpars; i++) { - if (weightderiv[measno][i] == 0) { + if (weightderiv(measno, i) == 0) { continue; } - b[i] -= weightderiv[measno][i] * ( - oldres / olderror - (newres * olderror) / (newerror * newerror) - ); + b[i] -= weightderiv(measno, i) * (oldres / olderror - (newres * olderror) / (newerror * newerror)); for (int j = i; j < nfitpars; j++) { double weight = 1; @@ -6551,11 +6540,10 @@ namespace Trk { a.fillSymmetric( i, j, - a(i, j) + weightderiv[measno][i] * weightderiv[measno][j] * ((olderror * olderror) / (newerror * newerror) - 1) * weight + a(i, j) + weightderiv(measno, i) * weightderiv(measno, j) * ((olderror * olderror) / (newerror * newerror) - 1) * weight ); } - - weightderiv[measno][i] *= olderror / newerror; + weightderiv(measno, i) *= olderror / newerror; } res[measno] = newres; @@ -6612,7 +6600,7 @@ namespace Trk { std::vector < GXFTrackState * >&states = oldtrajectory->trackStates(); std::vector < double >&res = oldtrajectory->residuals(); std::vector < double >&err = oldtrajectory->errors(); - std::vector < std::vector < double >>&weightderiv = oldtrajectory->weightedResidualDerivatives(); + Amg::MatrixX & weightderiv = oldtrajectory->weightedResidualDerivatives(); int nfitpars = oldtrajectory->numberOfFitParameters(); int nhits = oldtrajectory->numberOfHits(); int nsihits = oldtrajectory->numberOfSiliconHits(); @@ -6822,21 +6810,23 @@ namespace Trk { err[measno_maxsipull] = newerror[0]; for (int i = 0; i < nfitpars; i++) { - if (weightderiv[measno_maxsipull][i] == 0) { + if (weightderiv(measno_maxsipull, i) == 0) { continue; } - b[i] -= weightderiv[measno_maxsipull][i] * (oldres1 / olderror[0] - (newres1 * olderror[0]) / (newerror[0] * newerror[0])); + b[i] -= weightderiv(measno_maxsipull, i) * (oldres1 / olderror[0] - (newres1 * olderror[0]) / (newerror[0] * newerror[0])); for (int j = i; j < nfitpars; j++) { a.fillSymmetric( i, j, - a(i, j) + weightderiv[measno_maxsipull][i] * weightderiv[measno_maxsipull][j] * - ((olderror[0] * olderror[0]) / (newerror[0] * newerror[0]) - 1) + a(i, j) + ( + weightderiv(measno_maxsipull, i) * + weightderiv(measno_maxsipull, j) * + ((olderror[0] * olderror[0]) / (newerror[0] * newerror[0]) - 1) + ) ); } - - weightderiv[measno_maxsipull][i] *= olderror[0] / newerror[0]; + weightderiv(measno_maxsipull, i) *= olderror[0] / newerror[0]; } if (hittype_maxsipull == TrackState::Pixel) { @@ -6845,21 +6835,24 @@ namespace Trk { err[measno_maxsipull + 1] = newerror[1]; for (int i = 0; i < nfitpars; i++) { - if (weightderiv[measno_maxsipull + 1][i] == 0) { + if (weightderiv(measno_maxsipull + 1, i) == 0) { continue; } - b[i] -= weightderiv[measno_maxsipull + 1][i] * (oldres2 / olderror[1] - (newres2 * olderror[1]) / (newerror[1] * newerror[1])); + b[i] -= weightderiv(measno_maxsipull + 1, i) * (oldres2 / olderror[1] - (newres2 * olderror[1]) / (newerror[1] * newerror[1])); for (int j = i; j < nfitpars; j++) { a.fillSymmetric( i, j, - a(i, j) + weightderiv[measno_maxsipull + 1][i] * weightderiv[measno_maxsipull + 1][j] * - ((olderror[1] * olderror[1]) / (newerror[1] * newerror[1]) - 1) + a(i, j) + ( + weightderiv(measno_maxsipull + 1, i) * + weightderiv(measno_maxsipull + 1, j) * + ((olderror[1] * olderror[1]) / (newerror[1] * newerror[1]) - 1) + ) ); } - weightderiv[measno_maxsipull + 1][i] *= olderror[1] / newerror[1]; + weightderiv(measno_maxsipull + 1, i) *= olderror[1] / newerror[1]; } } @@ -6902,8 +6895,7 @@ namespace Trk { } std::vector < double >&newres = newtrajectory->residuals(); - std::vector < std::vector < double >>&newweightderiv = newtrajectory->weightedResidualDerivatives(); - + Amg::MatrixX & newweightderiv = newtrajectory->weightedResidualDerivatives(); if ((measno_maxsipull < 0) or(measno_maxsipull >= (int) res.size())) { throw std::runtime_error( "'res' array index out of range in TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx:" + std::to_string(__LINE__) @@ -6914,20 +6906,22 @@ namespace Trk { newres[measno_maxsipull] = 0; for (int i = 0; i < nfitpars; i++) { - if (weightderiv[measno_maxsipull][i] == 0) { + if (weightderiv(measno_maxsipull, i) == 0) { continue; } - newb[i] -= weightderiv[measno_maxsipull][i] * oldres1 / olderror[0]; + newb[i] -= weightderiv(measno_maxsipull, i) * oldres1 / olderror[0]; for (int j = i; j < nfitpars; j++) { newa.fillSymmetric( i, j, - newa(i, j) - weightderiv[measno_maxsipull][i] * weightderiv[measno_maxsipull][j] + newa(i, j) - ( + weightderiv(measno_maxsipull, i) * + weightderiv(measno_maxsipull, j) + ) ); } - - newweightderiv[measno_maxsipull][i] = 0; + newweightderiv(measno_maxsipull, i) = 0; } if (hittype_maxsipull == TrackState::Pixel) { @@ -6935,24 +6929,26 @@ namespace Trk { newres[measno_maxsipull + 1] = 0; for (int i = 0; i < nfitpars; i++) { - if (weightderiv[measno_maxsipull + 1][i] == 0) { + if (weightderiv(measno_maxsipull + 1, i) == 0) { continue; } - newb[i] -= weightderiv[measno_maxsipull + 1][i] * oldres2 / olderror[1]; + newb[i] -= weightderiv(measno_maxsipull + 1, i) * oldres2 / olderror[1]; for (int j = i; j < nfitpars; j++) { - if (weightderiv[measno_maxsipull + 1][j] == 0) { + if (weightderiv(measno_maxsipull + 1, j) == 0) { continue; } newa.fillSymmetric( i, j, - newa(i, j) - weightderiv[measno_maxsipull + 1][i] * weightderiv[measno_maxsipull + 1][j] + newa(i, j) - ( + weightderiv(measno_maxsipull + 1, i) * + weightderiv(measno_maxsipull + 1, j) + ) ); } - - newweightderiv[measno_maxsipull + 1][i] = 0; + newweightderiv(measno_maxsipull + 1, i) = 0; } } @@ -7148,7 +7144,7 @@ namespace Trk { std::vector<GXFTrackState *> & states = oldtrajectory.trackStates(); if (m_fillderivmatrix) { - std::vector < std::vector < double >>&derivs = oldtrajectory.weightedResidualDerivatives(); + Amg::MatrixX & derivs = oldtrajectory.weightedResidualDerivatives(); std::vector < double >&errors = oldtrajectory.errors(); int nrealmeas = 0; @@ -7180,7 +7176,7 @@ namespace Trk { ) { for (int i = measindex; i < measindex + hit->numberOfMeasuredParameters(); i++) { for (int j = 0; j < oldtrajectory.numberOfFitParameters(); j++) { - cache.m_derivmat(i, j) = derivs[measindex2][j] * errors[measindex2]; + cache.m_derivmat(i, j) = derivs(measindex2, j) * errors[measindex2]; if ((j == 4 && !oldtrajectory.m_straightline) || j >= nperpars + 2 * nscat) { cache.m_derivmat(i, j) *= 1000; } -- GitLab From 4acedf7e14fbc63ad95c2ca0f648d09abb791d79 Mon Sep 17 00:00:00 2001 From: Stephen Nicholas Swatman <stephen.nicholas.swatman@cern.ch> Date: Thu, 23 Jul 2020 15:33:56 +0200 Subject: [PATCH 177/459] Migrate GX2F Jacobians from 2D array to Eigen Same as before, we take take this datastructure which is not optimal for storing matrices and replace it with an Eigen matrix. This gives us more performance and easy access to all the cool mathematical functionality that Eigen has. --- .../TrkGlobalChi2Fitter/GXFTrackState.h | 6 +- .../TrkGlobalChi2Fitter/GlobalChi2Fitter.h | 2 +- .../TrkGlobalChi2Fitter/src/GXFTrackState.cxx | 6 +- .../src/GlobalChi2Fitter.cxx | 65 ++++++++++--------- 4 files changed, 40 insertions(+), 39 deletions(-) diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrackState.h b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrackState.h index fc315640e83..19e4a05a587 100755 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrackState.h +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrackState.h @@ -47,7 +47,7 @@ namespace Trk { GXFMaterialEffects *materialEffects(); const Surface *surface(); void setJacobian(TransportJacobian *); - double (* (jacobian)())[5]; + Eigen::Matrix<double, 5, 5> & jacobian(); Amg::MatrixX & derivatives(); void setDerivatives(Amg::MatrixX &); AmgSymMatrix(5) * trackCovariance(bool takeownership = false); @@ -79,7 +79,7 @@ namespace Trk { TrackState::TrackStateType m_tsType; //!< type of track state, eg Fittable, Outlier, Scatterer, Brem, Hole const TrackParameters *m_trackpar; //!< track parameters GXFMaterialEffects *m_materialEffects; //!< Material effects on track (ie scatterer, brem) - double m_jacobian[5][5]; //!< Transport jacobian wrt previous state + Eigen::Matrix<double, 5, 5> m_jacobian; //!< Transport jacobian wrt previous state Amg::MatrixX * m_derivs; //!< Derivatives of local parameters wrt fit parameters AmgSymMatrix(5) * m_covariancematrix; //!< Covariance matrix of track parameters at this surface const FitQualityOnSurface *m_fitqual; @@ -95,7 +95,7 @@ namespace Trk { Amg::Vector3D m_globpos; }; - inline double (* (GXFTrackState::jacobian)())[5] { + inline Eigen::Matrix<double, 5, 5> & GXFTrackState::jacobian() { return m_jacobian; } diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h index 22954464ea2..2a368a7e430 100755 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h @@ -534,7 +534,7 @@ namespace Trk { bool correctAngles(double &, double &) const; void errors1( - double (*jac)[5], + Eigen::Matrix<double, 5, 5> &, AmgSymMatrix(5) & prevcov, AmgSymMatrix(5) & trackerrmat, bool onlylocal diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrackState.cxx b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrackState.cxx index 7d887de825e..0836e3b85a2 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrackState.cxx +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrackState.cxx @@ -60,7 +60,7 @@ namespace Trk { for (int i = 0; i < 5; i++) { m_measerror[i] = rhs.m_measerror[i]; for (int j = 0; j < 5; j++) { - m_jacobian[i][j] = rhs.m_jacobian[i][j]; + m_jacobian(i, j) = rhs.m_jacobian(i, j); } } } @@ -201,7 +201,7 @@ namespace Trk { for (int i = 0; i < 5; i++) { m_measerror[i] = rhs.m_measerror[i]; for (int j = 0; j < 5; j++) { - m_jacobian[i][j] = rhs.m_jacobian[i][j]; + m_jacobian(i, j) = rhs.m_jacobian(i, j); } } } @@ -252,7 +252,7 @@ namespace Trk { GXFTrackState::setJacobian(TransportJacobian * jac) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { - m_jacobian[i][j] = (*jac) (i, j); + m_jacobian(i, j) = (*jac)(i, j); } } delete jac; diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx index fa75cd22bfb..b878841861d 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx @@ -7866,14 +7866,14 @@ namespace Trk { jmax = 3; jminbrem = 4; } - double (*jac)[5] = state->jacobian(); + Eigen::Matrix<double, 5, 5> & jac = state->jacobian(); if (hitno == nstatesupstream - 1) { for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { - jacvertex(i, j) = jac[i][j]; + jacvertex(i, j) = jac(i, j); } } - jacvertex(4, 4) = jac[4][4]; + jacvertex(4, 4) = jac(4, 4); } else { for (int scatindex = nscatupstream - 1; scatindex > scatno; scatindex--) { @@ -7884,10 +7884,10 @@ namespace Trk { deltaE() == 0)) { for (int i = 0; i < 4; i++) { for (int j = jmin; j <= jmax; j++) { - jacscat[scatindex] (i, j) = jac[i][j]; + jacscat[scatindex] (i, j) = jac(i, j); } } - jacscat[scatindex] (4, 4) = jac[4][4]; + jacscat[scatindex] (4, 4) = jac(4, 4); } else { EigenRM55 & tmpjac2 = jacscat[scatindex]; EigenRM55 & tmpjac = initialjac; @@ -7898,14 +7898,14 @@ namespace Trk { double tmp = 0; myindex = j; for (int k = 0; k < maxk[j]; k++) { - tmp += jac[i][k] * myarray[myindex]; + tmp += jac(i, k) * myarray[myindex]; myindex += 5; } tmpjac(i, j) = tmp; } } jacscat[scatindex] = tmpjac; - jacscat[scatindex] (4, 4) = jac[4][4] * jacscat[scatindex] (4, 4); + jacscat[scatindex] (4, 4) = jac(4, 4) * jacscat[scatindex] (4, 4); } if (fillderivmat) { Amg::MatrixX & derivmat = state->derivatives(); @@ -7923,23 +7923,23 @@ namespace Trk { && bremindex == bremno + 1) { for (int i = 0; i < 4; i++) { for (int j = jminbrem; j <= jmaxbrem; j++) { - jacbrem[bremindex] (i, j) = jac[i][j]; + jacbrem[bremindex] (i, j) = jac(i, j); } } - jacbrem[bremindex] (4, 4) = jac[4][4]; + jacbrem[bremindex] (4, 4) = jac(4, 4); } else { EigenRM55 & tmpjac = initialjac; for (int i = 0; i < 4; i++) { for (int j = jminbrem; j <= jmaxbrem; j++) { double tmp = 0; for (int k = 0; k < maxk[j]; k++) { - tmp += jac[i][k] * jacbrem[bremindex] (k, j); + tmp += jac(i, k) * jacbrem[bremindex] (k, j); } tmpjac(i, j) = tmp; } } jacbrem[bremindex] = tmpjac; - jacbrem[bremindex] (4, 4) = jac[4][4] * jacbrem[bremindex] (4, 4); + jacbrem[bremindex] (4, 4) = jac(4, 4) * jacbrem[bremindex] (4, 4); } if (fillderivmat) { @@ -7956,13 +7956,13 @@ namespace Trk { for (int j = 0; j < 5; j++) { double tmp = 0; for (int k = 0; k < maxk[j]; k++) { - tmp += jac[i][k] * jacvertex(k, j); + tmp += jac(i, k) * jacvertex(k, j); } tmpjac(i, j) = tmp; } } jacvertex = tmpjac; - jacvertex(4, 4) = jac[4][4] * jacvertex(4, 4); + jacvertex(4, 4) = jac(4, 4) * jacvertex(4, 4); } if (fillderivmat) { @@ -8016,15 +8016,16 @@ namespace Trk { jmax = 3; jminbrem = 4; } - double (*jac)[5] = state->jacobian(); + + Eigen::Matrix<double, 5, 5> & jac = state->jacobian(); if (hitno == nstatesupstream) { for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { - jacvertex(i, j) = jac[i][j]; + jacvertex(i, j) = jac(i, j); } } - jacvertex(4, 4) = jac[4][4]; + jacvertex(4, 4) = jac(4, 4); } else { for (int scatindex = nscatupstream; scatindex < scatno; scatindex++) { if ((prevstate != nullptr) @@ -8034,10 +8035,10 @@ namespace Trk { deltaE() == 0)) { for (int i = 0; i < 4; i++) { for (int j = jmin; j <= jmax; j++) { - jacscat[scatindex] (i, j) = jac[i][j]; + jacscat[scatindex] (i, j) = jac(i, j); } } - jacscat[scatindex] (4, 4) = jac[4][4]; + jacscat[scatindex] (4, 4) = jac(4, 4); } else { EigenRM55 & tmpjac2 = jacscat[scatindex]; EigenRM55 & tmpjac = initialjac; @@ -8048,14 +8049,14 @@ namespace Trk { double tmp = 0; myindex = j; for (int k = 0; k < maxk[j]; k++) { - tmp += jac[i][k] * myarray[myindex]; + tmp += jac(i, k) * myarray[myindex]; myindex += 5; } tmpjac(i, j) = tmp; } } jacscat[scatindex] = tmpjac; - jacscat[scatindex] (4, 4) = jacscat[scatindex] (4, 4) * jac[4][4]; + jacscat[scatindex] (4, 4) = jacscat[scatindex] (4, 4) * jac(4, 4); } if (fillderivmat) { Amg::MatrixX & derivmat = state->derivatives(); @@ -8072,23 +8073,23 @@ namespace Trk { && bremindex == bremno - 1) { for (int i = 0; i < 4; i++) { for (int j = jminbrem; j <= jmaxbrem; j++) { - jacbrem[bremindex] (i, j) = jac[i][j]; + jacbrem[bremindex] (i, j) = jac(i, j); } } - jacbrem[bremindex] (4, 4) = jac[4][4]; + jacbrem[bremindex] (4, 4) = jac(4, 4); } else { EigenRM55 & tmpjac = initialjac; for (int i = 0; i < 4; i++) { for (int j = jminbrem; j <= jmaxbrem; j++) { double tmp = 0; for (int k = 0; k < maxk[j]; k++) { - tmp += jac[i][k] * jacbrem[bremindex] (k, j); + tmp += jac(i, k) * jacbrem[bremindex] (k, j); } tmpjac(i, j) = tmp; } } jacbrem[bremindex] = tmpjac; - jacbrem[bremindex] (4, 4) = jacbrem[bremindex] (4, 4) * jac[4][4]; + jacbrem[bremindex] (4, 4) = jacbrem[bremindex] (4, 4) * jac(4, 4); } if (fillderivmat) { @@ -8105,13 +8106,13 @@ namespace Trk { for (int j = 0; j < 5; j++) { double tmp = 0; for (int k = 0; k < maxk[j]; k++) { - tmp += jac[i][k] * jacvertex(k, j); + tmp += jac(i, k) * jacvertex(k, j); } tmpjac(i, j) = tmp; } } jacvertex = tmpjac; - jacvertex(4, 4) = jacvertex(4, 4) * jac[4][4]; + jacvertex(4, 4) = jacvertex(4, 4) * jac(4, 4); } if (fillderivmat) { @@ -8215,7 +8216,7 @@ namespace Trk { (prevstate->trackStateType() == TrackState::Fittable || prevstate->trackStateType() == TrackState::GeneralOutlier) && !onlylocal) { - double (*jac)[5] = state->jacobian(); + Eigen::Matrix<double, 5, 5> & jac = state->jacobian(); AmgMatrix(5, 5) & prevcov = *states[indices[stateno - 1]]->trackCovariance(); errors1(jac, prevcov, trackerrmat, onlylocal); @@ -8530,7 +8531,7 @@ namespace Trk { void - GlobalChi2Fitter::errors1(double (*jac)[5], AmgSymMatrix(5) & prevcov, + GlobalChi2Fitter::errors1(Eigen::Matrix<double, 5, 5> & jac, AmgSymMatrix(5) & prevcov, AmgSymMatrix(5) & trackerrmat, bool onlylocal) const { // propagate error from previous state to current state @@ -8545,7 +8546,7 @@ namespace Trk { tmp3 = 0; for (int j = 0; j < 5; j++) { for (int k = 0; k < 5; k++) { - tmp3 += jac[l][j] * prevcov(j, k) * jac[m][k]; + tmp3 += jac(l, j) * prevcov(j, k) * jac(m, k); } } trackerrmat(l, m) = trackerrmat(m, l) = tmp3; @@ -8553,7 +8554,7 @@ namespace Trk { tmp3 = 0; for (int k = 0; k < 5; k++) { - tmp3 += prevcov(4, k) * jac[l][k]; + tmp3 += prevcov(4, k) * jac(l, k); } trackerrmat(4, l) = trackerrmat(l, 4) = tmp3; if (!onlylocal && trackerrmat(l, l) != 0) { @@ -8562,9 +8563,9 @@ namespace Trk { tmp3 = 0; for (int j = 0; j < 5; j++) { for (int k = 0; k < j; k++) { - tmp3 += 2 * jac[l][j] * prevcov(j, k) * jac[l][k]; + tmp3 += 2 * jac(l, j) * prevcov(j, k) * jac(l, k); } - tmp3 += jac[l][j] * prevcov(j, j) * jac[l][j]; + tmp3 += jac(l, j) * prevcov(j, j) * jac(l, j); } trackerrmat(l, l) = tmp3; } -- GitLab From 0112708b28811db1d3acfb5cc453c0d09c2b1f54 Mon Sep 17 00:00:00 2001 From: Stephen Nicholas Swatman <stephen.nicholas.swatman@cern.ch> Date: Thu, 23 Jul 2020 14:24:46 +0200 Subject: [PATCH 178/459] Remove redundant function declarations I'm not sure why these function declarations are here at all, they don't seem to be used anywhere. We would do well to get rid of them for clarity. --- .../TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h index 0cd72ca0703..498da822879 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h @@ -44,8 +44,6 @@ namespace Trk { void setOutlier(int, bool isoutlier = true); void setPrevChi2(double); void setChi2(double); - void setResiduals(std::vector < double >&); - void setResidualDerivatives(std::vector < std::vector < double > >&); void setMass(double); int numberOfScatterers(); -- GitLab From 90e2b2bd4192c3832fc4a56f4ed6c7a01c778a29 Mon Sep 17 00:00:00 2001 From: Stephen Nicholas Swatman <stephen.nicholas.swatman@cern.ch> Date: Thu, 23 Jul 2020 14:49:53 +0200 Subject: [PATCH 179/459] Migrate std::vector<double> to Amg::VectorX Representing vectors as std::vector<double> makes it rather difficult to use them with Eigen vectors and matrices. Therefore, this commit changes some of the use cases of std::vector<double> for vectors with Amg::VectorX which is Eigen compatible. --- .../TrkGlobalChi2Fitter/GXFTrajectory.h | 14 +++++----- .../TrkGlobalChi2Fitter/src/GXFTrajectory.cxx | 28 ++++++++----------- .../src/GlobalChi2Fitter.cxx | 28 +++++++++---------- 3 files changed, 32 insertions(+), 38 deletions(-) diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h index 498da822879..06cd544abc5 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h @@ -36,7 +36,7 @@ namespace Trk { void setReferenceParameters(const TrackParameters *); void setScatteringAngles(std::vector < std::pair < double, double > >&); void setTrackStates(std::vector < GXFTrackState * >&); - void setBrems(std::vector < double >&); + void setBrems(std::vector<double> &); void setNumberOfPerigeeParameters(int); void setConverged(bool); void reset(); @@ -64,7 +64,7 @@ namespace Trk { std::vector < GXFTrackState * >&trackStates(); std::vector < std::pair < double, double >>&scatteringAngles(); std::vector < std::pair < double, double >>&scatteringSigmas(); - std::vector < double >&brems(); + std::vector<double> & brems(); const TrackParameters *referenceParameters(bool takeownership = false); bool converged(); @@ -74,8 +74,8 @@ namespace Trk { double prevchi2(); int nDOF(); - std::vector < double >&residuals(); - std::vector < double >&errors(); + Amg::VectorX & residuals(); + Amg::VectorX & errors(); Amg::MatrixX & weightedResidualDerivatives(); double totalX0(); @@ -113,9 +113,9 @@ namespace Trk { bool m_converged; std::vector < std::pair < double, double >>m_scatteringangles; std::vector < std::pair < double, double >>m_scatteringsigmas; - std::vector < double >m_brems; - std::vector < double >m_res; - std::vector < double >m_errors; + std::vector<double> m_brems; + Amg::VectorX m_res; + Amg::VectorX m_errors; Amg::MatrixX m_weightresderiv; double m_totx0; double m_toteloss; diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrajectory.cxx b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrajectory.cxx index a7039f19336..62f7b4c8c64 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrajectory.cxx +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrajectory.cxx @@ -436,9 +436,9 @@ namespace Trk { } void GXFTrajectory::reset() { - m_res.clear(); + m_res.resize(0); m_weightresderiv.resize(0, 0); - m_errors.clear(); + m_errors.resize(0); m_scatteringangles.clear(); m_scatteringsigmas.clear(); m_converged = false; @@ -570,7 +570,7 @@ namespace Trk { return m_scatteringsigmas; } - std::vector < double >& GXFTrajectory::brems() { + std::vector<double> & GXFTrajectory::brems() { return m_brems; } @@ -592,14 +592,14 @@ namespace Trk { } void - GXFTrajectory::setBrems(std::vector < double >&brems) { + GXFTrajectory::setBrems(std::vector<double> & brems) { // if (m_prefit==1) return; m_brems = brems; int bremno = 0; for (auto & state : m_states) { if (((*state).materialEffects() != nullptr) && (*state).materialEffects()->sigmaDeltaE() > 0) { - (*state).materialEffects()->setdelta_p(brems[bremno]); + (*state).materialEffects()->setdelta_p(m_brems[bremno]); bremno++; } } @@ -614,22 +614,16 @@ namespace Trk { m_states = states; } - std::vector < double >& GXFTrajectory::residuals() { - if (m_res.empty()) { - m_res = - std::vector < - double >( /* 2*m_nscatterers+ */ numberOfBrems() + m_ndof + - m_nperpars + m_nmeasoutl, 0); + Amg::VectorX & GXFTrajectory::residuals() { + if (m_res.size() == 0) { + m_res.setZero(numberOfBrems() + m_ndof + m_nperpars + m_nmeasoutl); } return m_res; } - std::vector < double >& GXFTrajectory::errors() { - if (m_errors.empty()) { - m_errors = - std::vector < - double >( /* 2*m_nscatterers+ */ numberOfBrems() + m_ndof + - m_nperpars + m_nmeasoutl, 0); + Amg::VectorX & GXFTrajectory::errors() { + if (m_errors.size() == 0) { + m_errors.setZero(numberOfBrems() + m_ndof + m_nperpars + m_nmeasoutl); } return m_errors; } diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx index b878841861d..f759509cc11 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx @@ -1882,7 +1882,7 @@ namespace Trk { if ( !firstismuon && trajectory.converged() && - std::abs(trajectory.residuals().back() / trajectory.errors().back()) > 10 + std::abs(trajectory.residuals().tail<1>()(0) / trajectory.errors().tail<1>()(0)) > 10 ) { return nullptr; } @@ -5553,14 +5553,14 @@ namespace Trk { int nperpars = trajectory.numberOfPerigeeParameters(); int nfitpars = trajectory.numberOfFitParameters(); - std::vector < double >&res = trajectory.residuals(); + Amg::VectorX & res = trajectory.residuals(); Amg::MatrixX & weightderiv = trajectory.weightedResidualDerivatives(); int nidhits = trajectory.numberOfSiliconHits() + trajectory.numberOfTRTHits(); int nsihits = trajectory.numberOfSiliconHits(); int ntrthits = trajectory.numberOfTRTHits(); int nhits = trajectory.numberOfHits(); int nmeas = (int) res.size(); - std::vector < double >&error = trajectory.errors(); + Amg::VectorX & error = trajectory.errors(); ParamDefsAccessor paraccessor; bool scatwasupdated = false; @@ -5568,8 +5568,6 @@ namespace Trk { int bremno_maxbrempull = 0; double maxbrempull = 0; - std::vector < double >residuals; - for (int hitno = 0; hitno < (int) states.size(); hitno++) { GXFTrackState *state = states[hitno]; const TrackParameters *currenttrackpar = state->trackParameters(); @@ -5603,6 +5601,8 @@ namespace Trk { } double *errors = state->measurementErrors(); + + std::vector<double> residuals; m_residualPullCalculator->residuals(residuals, measbase, currenttrackpar, ResidualPull::Biased, hittype); for (int i = 0; i < 5; i++) { @@ -5865,7 +5865,7 @@ namespace Trk { int nperparams = trajectory.numberOfPerigeeParameters(); Amg::MatrixX & weightderiv = trajectory.weightedResidualDerivatives(); - std::vector < double >&error = trajectory.errors(); + Amg::VectorX & error = trajectory.errors(); int nmeas = (int) weightderiv.rows(); @@ -6071,8 +6071,8 @@ namespace Trk { return FitterStatusCode::Success; } - std::vector < double >&res = trajectory.residuals(); - std::vector < double >&error = trajectory.errors(); + Amg::VectorX & res = trajectory.residuals(); + Amg::VectorX & error = trajectory.errors(); std::vector < std::pair < double, double >>&scatsigmas = trajectory.scatteringSigmas(); int nmeas = (int) res.size(); @@ -6421,8 +6421,8 @@ namespace Trk { } std::vector < GXFTrackState * >&states = trajectory.trackStates(); - std::vector < double >&res = trajectory.residuals(); - std::vector < double >&err = trajectory.errors(); + Amg::VectorX & res = trajectory.residuals(); + Amg::VectorX & err = trajectory.errors(); Amg::MatrixX & weightderiv = trajectory.weightedResidualDerivatives(); int nfitpars = trajectory.numberOfFitParameters(); @@ -6598,8 +6598,8 @@ namespace Trk { while (!trackok && oldtrajectory->nDOF() > 0) { trackok = true; std::vector < GXFTrackState * >&states = oldtrajectory->trackStates(); - std::vector < double >&res = oldtrajectory->residuals(); - std::vector < double >&err = oldtrajectory->errors(); + Amg::VectorX & res = oldtrajectory->residuals(); + Amg::VectorX & err = oldtrajectory->errors(); Amg::MatrixX & weightderiv = oldtrajectory->weightedResidualDerivatives(); int nfitpars = oldtrajectory->numberOfFitParameters(); int nhits = oldtrajectory->numberOfHits(); @@ -6894,7 +6894,7 @@ namespace Trk { ATH_MSG_ERROR("Your assumption is wrong!!!!"); } - std::vector < double >&newres = newtrajectory->residuals(); + Amg::VectorX & newres = newtrajectory->residuals(); Amg::MatrixX & newweightderiv = newtrajectory->weightedResidualDerivatives(); if ((measno_maxsipull < 0) or(measno_maxsipull >= (int) res.size())) { throw std::runtime_error( @@ -7145,7 +7145,7 @@ namespace Trk { if (m_fillderivmatrix) { Amg::MatrixX & derivs = oldtrajectory.weightedResidualDerivatives(); - std::vector < double >&errors = oldtrajectory.errors(); + Amg::VectorX & errors = oldtrajectory.errors(); int nrealmeas = 0; for (auto & hit : states) { -- GitLab From abc7d95e7c5462f0bfb5075061e00d500c2d7223 Mon Sep 17 00:00:00 2001 From: Stephen Nicholas Swatman <stephen.nicholas.swatman@cern.ch> Date: Thu, 23 Jul 2020 15:34:12 +0200 Subject: [PATCH 180/459] Deduplicate the calculateDerivative method This method was an absolute and complete mess, with strange datatypes and hundreds of duplicated lines. I think I've managed to remove a lot of it and refactor it to an equivalent but much shorter and more readable alternative. --- .../TrkGlobalChi2Fitter/GlobalChi2Fitter.h | 8 - .../src/GlobalChi2Fitter.cxx | 444 ++++++------------ 2 files changed, 148 insertions(+), 304 deletions(-) diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h index 2a368a7e430..bb1e19de3e9 100755 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h @@ -219,14 +219,6 @@ namespace Trk { int, int ) const; - void processStates( - GXFTrajectory &, - bool, - Eigen::Matrix<double, 5, 5> &, - std::vector<Eigen::Matrix<double, 5, 5>> &, - std::vector<Eigen::Matrix<double, 5, 5>> & - ) const; - Track * fitIm( const EventContext& ctx, Cache & cache, diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx index f759509cc11..c4959d5e1e8 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx @@ -1,7 +1,6 @@ /* Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ - #include "TrkFitterUtils/TrackFitInputPreparator.h" #include "TrkGlobalChi2Fitter/GlobalChi2Fitter.h" #include "TrkGlobalChi2Fitter/GXFMaterialEffects.h" @@ -72,6 +71,9 @@ #include <exception> #include <memory> +#include <Eigen/Dense> +#include <Eigen/StdVector> + using CLHEP::MeV; using CLHEP::mm; @@ -7815,331 +7817,181 @@ namespace Trk { return FitterStatusCode::Success; } - void - GlobalChi2Fitter::calculateDerivatives(GXFTrajectory & trajectory) const { - ATH_MSG_DEBUG("CalculateDerivatives"); + void GlobalChi2Fitter::calculateJac( + Eigen::Matrix<double, 5, 5> & jac, + Eigen::Matrix<double, 5, 5> & out, + int jmin, int jmax + ) const { + out = (jac * out); + + if (jmin > 0) { + out.block(0, 0, 4, jmin).setZero(); + } - std::vector < GXFTrackState * >&states = trajectory.trackStates(); - int scatno = trajectory.numberOfUpstreamScatterers() - 1; - int bremno = trajectory.numberOfUpstreamBrems() - 1; + if (jmax < 4) { + out.block(0, jmax + 1, 4, 5 - (jmax + 1)).setZero(); + } + + out(4, 4) = jac(4, 4); + } + + void GlobalChi2Fitter::calculateDerivatives(GXFTrajectory & trajectory) const { int nstatesupstream = trajectory.numberOfUpstreamStates(); int nscatupstream = trajectory.numberOfUpstreamScatterers(); int nbremupstream = trajectory.numberOfUpstreamBrems(); int nscats = trajectory.numberOfScatterers(); - int nperpars = trajectory.numberOfPerigeeParameters(); - // int nfitpars=trajectory.numberOfFitParameters(); - - // A bit of a nightmare here SMatris is Row major - // Storage in eigen is normally column major - // change stuff around so that indicies dont need to worked out; - // Intruth what follows is impossible to follow and needs to be clearly documented - - typedef Eigen::Matrix < double, 5, 5, Eigen::RowMajor > EigenRM55; - EigenRM55 initialjac; - initialjac.setZero(); - initialjac(4, 4) = 1; - EigenRM55 jacvertex(initialjac); - std::vector < EigenRM55 > jacscat(trajectory.numberOfScatterers(), - initialjac); - int maxk[5] = { - 4, 4, 4, 4, 5 - }; - std::vector < EigenRM55 > jacbrem(trajectory.numberOfBrems(), initialjac); - GXFTrackState *prevstate = nullptr; - GXFTrackState *state = nullptr; - for (int hitno = nstatesupstream - 1; hitno >= 0; hitno--) { - state = states[hitno]; - bool fillderivmat = false; - TrackState::TrackStateType tstype = state->trackStateType(); - if (tstype != TrackState::Scatterer && tstype != TrackState::Brem) { - fillderivmat = true; - } - int jmin = 0; - int jmax = 4; - int jminbrem = 0; - int jmaxbrem = 4; - if (hitno == 0) { - if (!fillderivmat) { - break; - } - jmin = 2; - jmax = 3; - jminbrem = 4; - } - Eigen::Matrix<double, 5, 5> & jac = state->jacobian(); - if (hitno == nstatesupstream - 1) { - for (int i = 0; i < 4; i++) { - for (int j = 0; j < 5; j++) { - jacvertex(i, j) = jac(i, j); - } - } - jacvertex(4, 4) = jac(4, 4); - } else { - for (int scatindex = nscatupstream - 1; scatindex > scatno; - scatindex--) { - if ((prevstate != nullptr) - && prevstate->trackStateType() == TrackState::Scatterer - && scatindex == scatno + 1 && ((trajectory.prefit() == 0) - || prevstate->materialEffects()-> - deltaE() == 0)) { - for (int i = 0; i < 4; i++) { - for (int j = jmin; j <= jmax; j++) { - jacscat[scatindex] (i, j) = jac(i, j); - } - } - jacscat[scatindex] (4, 4) = jac(4, 4); - } else { - EigenRM55 & tmpjac2 = jacscat[scatindex]; - EigenRM55 & tmpjac = initialjac; - double *myarray = tmpjac2.data(); - for (int i = 0; i < 4; i++) { - int myindex; - for (int j = jmin; j <= jmax; j++) { - double tmp = 0; - myindex = j; - for (int k = 0; k < maxk[j]; k++) { - tmp += jac(i, k) * myarray[myindex]; - myindex += 5; - } - tmpjac(i, j) = tmp; - } - } - jacscat[scatindex] = tmpjac; - jacscat[scatindex] (4, 4) = jac(4, 4) * jacscat[scatindex] (4, 4); - } - if (fillderivmat) { - Amg::MatrixX & derivmat = state->derivatives(); - int scatterPos = nperpars + 2 * scatindex; - for (int i = 0; i < 4; i++) { - derivmat(i, scatterPos) = -jacscat[scatindex] (i, 2); - derivmat(i, scatterPos + 1) = -jacscat[scatindex] (i, 3); - } - } - } - for (int bremindex = nbremupstream - 1; bremindex > bremno; - bremindex--) { - if ((prevstate != nullptr) && (prevstate->materialEffects() != nullptr) - && prevstate->materialEffects()->sigmaDeltaE() > 0 - && bremindex == bremno + 1) { - for (int i = 0; i < 4; i++) { - for (int j = jminbrem; j <= jmaxbrem; j++) { - jacbrem[bremindex] (i, j) = jac(i, j); - } - } - jacbrem[bremindex] (4, 4) = jac(4, 4); - } else { - EigenRM55 & tmpjac = initialjac; - for (int i = 0; i < 4; i++) { - for (int j = jminbrem; j <= jmaxbrem; j++) { - double tmp = 0; - for (int k = 0; k < maxk[j]; k++) { - tmp += jac(i, k) * jacbrem[bremindex] (k, j); - } - tmpjac(i, j) = tmp; - } - } - jacbrem[bremindex] = tmpjac; - jacbrem[bremindex] (4, 4) = jac(4, 4) * jacbrem[bremindex] (4, 4); - } + int nperpars = trajectory.numberOfPerigeeParameters(); + int nfitpars = trajectory.numberOfFitParameters(); - if (fillderivmat) { - Amg::MatrixX & derivmat = state->derivatives(); - int scatterPos = nperpars + 2 * nscats + bremindex; - for (int i = 0; i < 5; i++) { - derivmat(i, scatterPos) = -0.001 * jacbrem[bremindex] (i, 4); - } - } - } + typedef Eigen::Matrix<double, 5, 5> Matrix55; - EigenRM55 & tmpjac = initialjac; - for (int i = 0; i < 4; i++) { - for (int j = 0; j < 5; j++) { - double tmp = 0; - for (int k = 0; k < maxk[j]; k++) { - tmp += jac(i, k) * jacvertex(k, j); - } - tmpjac(i, j) = tmp; - } + Matrix55 initialjac; + initialjac.setZero(); + initialjac(4, 4) = 1; + + Matrix55 jacvertex(initialjac); + + std::vector<Matrix55, Eigen::aligned_allocator<Matrix55>> jacscat(trajectory.numberOfScatterers(), initialjac); + std::vector<Matrix55, Eigen::aligned_allocator<Matrix55>> jacbrem(trajectory.numberOfBrems(), initialjac); + + std::vector<GXFTrackState*> & states = trajectory.trackStates(); + GXFTrackState *prevstate = nullptr, *state = nullptr; + + int hit_begin, hit_end, scatno, bremno; + + for (bool forward : {false, true}) { + if (forward) { + hit_begin = nstatesupstream; + hit_end = (int) states.size(); + scatno = nscatupstream; + bremno = nbremupstream; + } else { + hit_begin = nstatesupstream - 1; + hit_end = 0; + scatno = trajectory.numberOfUpstreamScatterers() - 1; + bremno = trajectory.numberOfUpstreamBrems() - 1; + } + + for ( + int hitno = hit_begin; + forward ? (hitno < hit_end) : (hitno >= hit_end); + hitno += (forward ? 1 : -1) + ) { + state = states[hitno]; + + TrackState::TrackStateType tstype = state->trackStateType(); + bool fillderivmat = (tstype != TrackState::Scatterer && tstype != TrackState::Brem); + + if (fillderivmat && state->derivatives().cols() != nfitpars) { + state->derivatives().resize(5, nfitpars); + state->derivatives().setZero(); } - jacvertex = tmpjac; - jacvertex(4, 4) = jac(4, 4) * jacvertex(4, 4); - } - if (fillderivmat) { - Amg::MatrixX & derivmat = state->derivatives(); - for (int i = 0; i < 4; i++) { - for (int j = 0; j < nperpars; j++) { - derivmat(i, j) = jacvertex(i, j); - } - if (nperpars == 5) { - derivmat(i, 4) *= .001; + int jminscat = 0, jmaxscat = 4, jminbrem = 0, jmaxbrem = 4; + + if (hitno == (forward ? hit_end - 1 : 0)) { + if (!fillderivmat) { + break; } + jminscat = 2; + jmaxscat = 3; + jminbrem = 4; } - if (nperpars == 5) { - derivmat(4, 4) = .001 * jacvertex(4, 4); - } - } + + Eigen::Matrix<double, 5, 5> & jac = state->jacobian(); - if (tstype == TrackState::Scatterer && - ((trajectory.prefit() == 0) - || states[hitno]->materialEffects()->deltaE() == 0)) { - scatno--; - } - if ((states[hitno]->materialEffects() != nullptr) - && states[hitno]->materialEffects()->sigmaDeltaE() > 0) { - bremno--; - } - prevstate = states[hitno]; - } + if (hitno == nstatesupstream + (forward ? 0 : -1)) { + jacvertex.block<4, 5>(0, 0) = jac.block<4, 5>(0, 0); + jacvertex(4, 4) = jac(4, 4); + } else { + int jmin, jmax, jcnt; + int lp_bgn, lp_end; - scatno = nscatupstream; - bremno = nbremupstream; - prevstate = nullptr; + jmin = jminscat; + jmax = jmaxscat; + jcnt = jmax - jmin + 1; - for (int hitno = nstatesupstream; hitno < (int) states.size(); hitno++) { - state = states[hitno]; - bool fillderivmat = false; - TrackState::TrackStateType tstype = state->trackStateType(); - int imax = 3; - if (tstype != TrackState::Scatterer && tstype != TrackState::Brem) { - fillderivmat = true; - } - int jmin = 0; - int jmax = 4; - int jminbrem = 0; - int jmaxbrem = 4; - if (hitno == (int) states.size() - 1) { - if (!fillderivmat) { - break; - } - jmin = 2; - jmax = 3; - jminbrem = 4; - } - - Eigen::Matrix<double, 5, 5> & jac = state->jacobian(); + lp_bgn = forward ? nscatupstream : nscatupstream - 1; + lp_end = scatno; - if (hitno == nstatesupstream) { - for (int i = 0; i < 4; i++) { - for (int j = 0; j < 5; j++) { - jacvertex(i, j) = jac(i, j); - } - } - jacvertex(4, 4) = jac(4, 4); - } else { - for (int scatindex = nscatupstream; scatindex < scatno; scatindex++) { - if ((prevstate != nullptr) - && prevstate->trackStateType() == TrackState::Scatterer - && scatindex == scatno - 1 && ((trajectory.prefit() == 0) - || prevstate->materialEffects()-> - deltaE() == 0)) { - for (int i = 0; i < 4; i++) { - for (int j = jmin; j <= jmax; j++) { - jacscat[scatindex] (i, j) = jac(i, j); - } - } - jacscat[scatindex] (4, 4) = jac(4, 4); - } else { - EigenRM55 & tmpjac2 = jacscat[scatindex]; - EigenRM55 & tmpjac = initialjac; - double *myarray = tmpjac2.data(); - for (int i = 0; i < 4; i++) { - int myindex; - for (int j = jmin; j <= jmax; j++) { - double tmp = 0; - myindex = j; - for (int k = 0; k < maxk[j]; k++) { - tmp += jac(i, k) * myarray[myindex]; - myindex += 5; - } - tmpjac(i, j) = tmp; - } - } - jacscat[scatindex] = tmpjac; - jacscat[scatindex] (4, 4) = jacscat[scatindex] (4, 4) * jac(4, 4); - } - if (fillderivmat) { - Amg::MatrixX & derivmat = state->derivatives(); - int scatterPos = nperpars + 2 * scatindex; - for (int i = 0; i <= imax; i++) { - derivmat(i, scatterPos) = jacscat[scatindex] (i, 2); - derivmat(i, scatterPos + 1) = jacscat[scatindex] (i, 3); - } - } - } - for (int bremindex = nbremupstream; bremindex < bremno; bremindex++) { - if ((prevstate != nullptr) && (prevstate->materialEffects() != nullptr) - && prevstate->materialEffects()->sigmaDeltaE() > 0 - && bremindex == bremno - 1) { - for (int i = 0; i < 4; i++) { - for (int j = jminbrem; j <= jmaxbrem; j++) { - jacbrem[bremindex] (i, j) = jac(i, j); - } + for (int i = lp_bgn; forward ? (i < lp_end) : (i > lp_end); i += (forward ? 1 : -1)) { + if ( + i == scatno + (forward ? -1 : 1) && + prevstate != nullptr && + prevstate->trackStateType() == TrackState::Scatterer && + (!trajectory.prefit() || prevstate->materialEffects()->deltaE() == 0) + ) { + jacscat[i].block(0, jmin, 4, jcnt) = jac.block(0, jmin, 4, jcnt); + jacscat[i](4, 4) = jac(4, 4); + } else { + calculateJac(jac, jacscat[i], jmin, jmax); } - jacbrem[bremindex] (4, 4) = jac(4, 4); - } else { - EigenRM55 & tmpjac = initialjac; - for (int i = 0; i < 4; i++) { - for (int j = jminbrem; j <= jmaxbrem; j++) { - double tmp = 0; - for (int k = 0; k < maxk[j]; k++) { - tmp += jac(i, k) * jacbrem[bremindex] (k, j); - } - tmpjac(i, j) = tmp; - } + + if (fillderivmat) { + Eigen::MatrixXd & derivmat = state->derivatives(); + int scatterPos = nperpars + 2 * i; + + derivmat.block<4, 2>(0, scatterPos) = (forward ? 1 : -1) * jacscat[i].block<4, 2>(0, 2); } - jacbrem[bremindex] = tmpjac; - jacbrem[bremindex] (4, 4) = jacbrem[bremindex] (4, 4) * jac(4, 4); } - if (fillderivmat) { - Amg::MatrixX & derivmat = state->derivatives(); - int scatterPos = nperpars + 2 * nscats + bremindex; - for (int i = 0; i <= 4; i++) { - derivmat(i, scatterPos) = .001 * jacbrem[bremindex] (i, 4); + jmin = jminbrem; + jmax = jmaxbrem; + jcnt = jmax - jmin + 1; + + lp_bgn = forward ? nbremupstream : nbremupstream - 1; + lp_end = bremno; + + for (int i = lp_bgn; forward ? (i < lp_end) : (i > lp_end); i += (forward ? 1 : -1)) { + if ( + i == bremno + (forward ? -1 : 1) && + prevstate && + prevstate->materialEffects() && + prevstate->materialEffects()->sigmaDeltaE() > 0 + ) { + jacbrem[i].block(0, jmin, 4, jcnt) = jac.block(0, jmin, 4, jcnt); + jacbrem[i](4, 4) = jac(4, 4); + } else { + calculateJac(jac, jacbrem[i], jmin, jmax); } - } - } - EigenRM55 & tmpjac = initialjac; - for (int i = 0; i < 4; i++) { - for (int j = 0; j < 5; j++) { - double tmp = 0; - for (int k = 0; k < maxk[j]; k++) { - tmp += jac(i, k) * jacvertex(k, j); + if (fillderivmat) { + Eigen::MatrixXd & derivmat = state->derivatives(); + int scatterPos = nperpars + 2 * nscats + i; + + derivmat.block<5, 1>(0, scatterPos) = (forward ? .001 : -.001) * jacbrem[i].block<5, 1>(0, 4); } - tmpjac(i, j) = tmp; } + + calculateJac(jac, jacvertex, 0, 4); } - jacvertex = tmpjac; - jacvertex(4, 4) = jacvertex(4, 4) * jac(4, 4); - } - if (fillderivmat) { - Amg::MatrixX & derivmat = state->derivatives(); - for (int i = 0; i <= imax; i++) { - for (int j = 0; j < nperpars; j++) { - derivmat(i, j) = jacvertex(i, j); - } + if (fillderivmat) { + Eigen::MatrixXd & derivmat = state->derivatives(); + derivmat.block(0, 0, 4, nperpars) = jacvertex.block(0, 0, 4, nperpars); + if (nperpars == 5) { - derivmat(i, 4) *= .001; + derivmat.col(4).segment(0, 4) *= .001; + derivmat(4, 4) = .001 * jacvertex(4, 4); } } - if (nperpars == 5) { - derivmat(4, 4) = 0.001 * jacvertex(4, 4); - } - } - if (tstype == TrackState::Scatterer && - ((trajectory.prefit() == 0) - || states[hitno]->materialEffects()->deltaE() == 0)) { - scatno++; - } - if ((states[hitno]->materialEffects() != nullptr) - && states[hitno]->materialEffects()->sigmaDeltaE() > 0) { - bremno++; + if ( + tstype == TrackState::Scatterer && + (!trajectory.prefit() || states[hitno]->materialEffects()->deltaE() == 0) + ) { + scatno += (forward ? 1 : -1); + } + + if ( + states[hitno]->materialEffects() && + states[hitno]->materialEffects()->sigmaDeltaE() > 0 + ) { + bremno += (forward ? 1 : -1); + } + + prevstate = states[hitno]; } - prevstate = states[hitno]; } } -- GitLab From 75d6d57b7f37be4dcf0b43386e3297fa076001c3 Mon Sep 17 00:00:00 2001 From: Stephen Nicholas Swatman <stephen.nicholas.swatman@cern.ch> Date: Thu, 23 Jul 2020 15:34:17 +0200 Subject: [PATCH 181/459] Factor away the errors1 and errors2 methods These methods were both naively implemented matrix multiplications of the form A*B*A^T. We refactor both to Eigen methods, which should be a lot quicker. Also reduces code volume. --- .../TrkGlobalChi2Fitter/GlobalChi2Fitter.h | 18 --- .../src/GlobalChi2Fitter.cxx | 151 +----------------- 2 files changed, 5 insertions(+), 164 deletions(-) diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h index bb1e19de3e9..f2c7696554c 100755 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h @@ -525,24 +525,6 @@ namespace Trk { bool correctAngles(double &, double &) const; - void errors1( - Eigen::Matrix<double, 5, 5> &, - AmgSymMatrix(5) & prevcov, - AmgSymMatrix(5) & trackerrmat, - bool onlylocal - ) const; - - void errors2( - Amg::MatrixX & derivatives, - AmgSymMatrix(5) & trackerrmat, - double *myarray, - std::vector<int> *rowindices, - int &maxl, - int *minm, - bool onlylocal, - int nfitpars - ) const; - bool isMuonTrack(const Track &) const; void incrementFitStatus(enum FitterStatusType) const; diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx index c4959d5e1e8..8d348c0f490 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx @@ -8009,9 +8009,6 @@ namespace Trk { int nstatesupstream = trajectory.numberOfUpstreamStates(); int nscatupstream = trajectory.numberOfUpstreamScatterers(); int nbremupstream = trajectory.numberOfUpstreamBrems(); - int nfitpars = trajectory.numberOfFitParameters(); - int nscats = trajectory.numberOfScatterers(); - int nperpars = trajectory.numberOfPerigeeParameters(); int hitno = 0; int scatno = nscatupstream; int bremno = nbremupstream; @@ -8026,10 +8023,6 @@ namespace Trk { indices[j] = j; } } - std::vector < int >rowindices[5]; - for (auto & rowindice : rowindices) { - rowindice.reserve(nfitpars); - } for (int stateno = 0; stateno < (int) states.size(); stateno++) { if (stateno == 0 || stateno == nstatesupstream) { scatno = nscatupstream; @@ -8069,55 +8062,13 @@ namespace Trk { prevstate->trackStateType() == TrackState::GeneralOutlier) && !onlylocal) { Eigen::Matrix<double, 5, 5> & jac = state->jacobian(); - AmgMatrix(5, 5) & prevcov = - *states[indices[stateno - 1]]->trackCovariance(); - errors1(jac, prevcov, trackerrmat, onlylocal); + AmgMatrix(5, 5) & prevcov = *states[indices[stateno - 1]]->trackCovariance(); + + trackerrmat = jac * prevcov * jac.transpose(); } else { - int maxl = trajectory.m_straightline ? 3 : 4; - int minm[5] = { - 0, 0, 0, 0, 0 - }; - if (onlylocal) { - TrackState::MeasurementType hittype = state->measurementType(); - if (hittype == TrackState::Pixel || state->sinStereo() != 0) { - maxl = 1; - } else { - maxl = 0; - } - if (hittype == TrackState::Pixel) { - minm[1] = 1; - } - } Amg::MatrixX & derivatives = state->derivatives(); - // Only consider scatterers and brems which give non-zero derivatives - int scatmin = (scatno < nscatupstream) ? scatno : nscatupstream; - int scatmax = (scatno < nscatupstream) ? nscatupstream : scatno; - int bremmin = (bremno < nbremupstream) ? bremno : nbremupstream; - int bremmax = (bremno < nbremupstream) ? nbremupstream : bremno; - for (int i = 0; i < 4; i++) { - rowindices[i].clear(); - for (int j = 0; j < nperpars; j++) { - rowindices[i].push_back(j); - } - for (int j = nperpars + 2 * scatmin; j < nperpars + 2 * scatmax; - j++) { - rowindices[i].push_back(j); - } - for (int j = nperpars + 2 * nscats + bremmin; - j < nperpars + 2 * nscats + bremmax; j++) { - rowindices[i].push_back(j); - } - } - if (!trajectory.m_straightline) { - rowindices[4].clear(); - rowindices[4].push_back(4); - for (int j = nperpars + 2 * nscats + bremmin; - j < nperpars + 2 * nscats + bremmax; j++) { - rowindices[4].push_back(j); - } - } - errors2(derivatives, trackerrmat, fullcovmat.data(), rowindices, maxl, - minm, onlylocal, nfitpars); + + trackerrmat = derivatives * fullcovmat * derivatives.transpose(); } if (!onlylocal) { @@ -8381,98 +8332,6 @@ namespace Trk { return !(theta < 0 || theta > M_PI || phi < -M_PI || phi > M_PI); } - void - - GlobalChi2Fitter::errors1(Eigen::Matrix<double, 5, 5> & jac, AmgSymMatrix(5) & prevcov, - AmgSymMatrix(5) & trackerrmat, - bool onlylocal) const { - // propagate error from previous state to current state - - double tmp3 = 0; - - for (int l = 0; l < 4; l++) { - for (int m = 0; m < l; m++) { - if (!onlylocal && trackerrmat(l, m) != 0) { - continue; - } - tmp3 = 0; - for (int j = 0; j < 5; j++) { - for (int k = 0; k < 5; k++) { - tmp3 += jac(l, j) * prevcov(j, k) * jac(m, k); - } - } - trackerrmat(l, m) = trackerrmat(m, l) = tmp3; - } - - tmp3 = 0; - for (int k = 0; k < 5; k++) { - tmp3 += prevcov(4, k) * jac(l, k); - } - trackerrmat(4, l) = trackerrmat(l, 4) = tmp3; - if (!onlylocal && trackerrmat(l, l) != 0) { - continue; - } - tmp3 = 0; - for (int j = 0; j < 5; j++) { - for (int k = 0; k < j; k++) { - tmp3 += 2 * jac(l, j) * prevcov(j, k) * jac(l, k); - } - tmp3 += jac(l, j) * prevcov(j, j) * jac(l, j); - } - trackerrmat(l, l) = tmp3; - } - trackerrmat(4, 4) = prevcov(4, 4); - } - - void - - GlobalChi2Fitter::errors2(Amg::MatrixX & derivatives, - AmgSymMatrix(5) & trackerrmat, double *myarray, - std::vector < int >*rowindices, int &maxl, - int *minm, bool onlylocal, int nfitpars) const { - // Project global error matrix onto current state - - double tmp3 = 0; - int j; - int k; - int rowindex; - - for (int l = 0; l <= maxl; l++) { - for (int m = minm[l]; m < l; m++) { - if (!onlylocal && trackerrmat(l, m) != 0) { - continue; - } - tmp3 = 0; - for (int j2 = 0; j2 < (int) rowindices[l].size(); j2++) { - j = rowindices[l][j2]; - rowindex = j * nfitpars; - for (int k2 = 0; k2 < (int) rowindices[m].size(); k2++) { - k = rowindices[m][k2]; - tmp3 += - derivatives(l, j) * myarray[rowindex + k] * derivatives(m, k); - } - } - trackerrmat(l, m) = trackerrmat(m, l) = tmp3; - } - - if (!onlylocal && trackerrmat(l, l) != 0) { - continue; - } - tmp3 = 0; - for (int j2 = 0; j2 < (int) rowindices[l].size(); j2++) { - j = rowindices[l][j2]; - rowindex = j * nfitpars; - for (int k2 = 0; k2 < j2; k2++) { - k = rowindices[l][k2]; - tmp3 += - 2 * derivatives(l, j) * myarray[rowindex + k] * derivatives(l, k); - } - tmp3 += derivatives(l, j) * myarray[rowindex + j] * derivatives(l, j); - } - trackerrmat(l, l) = tmp3; - } - } - bool Trk::GlobalChi2Fitter::isMuonTrack(const Track & intrk1) const { int nmeas1 = (int) intrk1.measurementsOnTrack()->size(); -- GitLab From 4e0db628f918c0d958b31afe7412b3de222234ad Mon Sep 17 00:00:00 2001 From: Stephen Nicholas Swatman <stephen.nicholas.swatman@cern.ch> Date: Tue, 25 Feb 2020 11:33:04 +0100 Subject: [PATCH 182/459] Refactor GX2F interal track to track conversion This is the code that turns the GlobalChi2Fitter's internal track representation into the standard Trk::Track type. It was quite a monolithic function which factors nicely into several smaller parts. In the process, we also focus on memory safety by using smart pointers instead of regular pointers everywhere. --- .../TrkGlobalChi2Fitter/GXFTrajectory.h | 3 + .../TrkGlobalChi2Fitter/GlobalChi2Fitter.h | 21 +- .../TrkGlobalChi2Fitter/src/GXFTrajectory.cxx | 47 ++++ .../src/GlobalChi2Fitter.cxx | 256 +++++++++--------- 4 files changed, 203 insertions(+), 124 deletions(-) diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h index 06cd544abc5..5ee0720db43 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GXFTrajectory.h @@ -46,6 +46,9 @@ namespace Trk { void setChi2(double); void setMass(double); + std::pair<GXFTrackState *, GXFTrackState *> findFirstLastMeasurement(void); + bool hasKink(void); + int numberOfScatterers(); void setNumberOfScatterers(int); int numberOfBrems(); diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h index f2c7696554c..10af738591c 100755 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h @@ -439,7 +439,26 @@ namespace Trk { const ParticleHypothesis ) const; - Track *makeTrack( + void makeTrackFillDerivativeMatrix( + Cache &, + GXFTrajectory & + ) const; + + std::unique_ptr<const TrackParameters> makeTrackFindPerigeeParameters( + const EventContext &, + Cache &, + GXFTrajectory &, + const ParticleHypothesis + ) const; + + std::unique_ptr<const TrackStateOnSurface> makeTrackFindPerigee( + const EventContext &, + Cache &, + GXFTrajectory &, + const ParticleHypothesis + ) const; + + std::unique_ptr<Track> makeTrack( const EventContext& ctx, Cache &, GXFTrajectory &, diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrajectory.cxx b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrajectory.cxx index 62f7b4c8c64..1b20623bd4e 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrajectory.cxx +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GXFTrajectory.cxx @@ -666,4 +666,51 @@ namespace Trk { GXFTrajectory::upstreamMaterialLayers() { return m_upstreammat; } + + std::pair<GXFTrackState *, GXFTrackState *> GXFTrajectory::findFirstLastMeasurement(void) { + GXFTrackState *firstmeasstate = nullptr; + GXFTrackState *lastmeasstate = nullptr; + + for (auto & hit : trackStates()) { + if ( + hit->measurementType() == TrackState::Pseudo && + hit->trackStateType() == TrackState::GeneralOutlier + ) { + continue; + } + + if (hit->measurement(false) != nullptr) { + if (firstmeasstate == nullptr) { + firstmeasstate = hit; + } + lastmeasstate = hit; + } + } + + if (firstmeasstate == nullptr) { + throw std::logic_error("no first measurement."); + } + + return std::make_pair(firstmeasstate, lastmeasstate); + } + + bool GXFTrajectory::hasKink(void) { + for (auto & hit : trackStates()) { + if ( + hit->measurementType() == TrackState::Pseudo && + hit->trackStateType() == TrackState::GeneralOutlier + ) { + continue; + } + + if ( + (hit->materialEffects() != nullptr) && + hit->materialEffects()->isKink() + ) { + return true; + } + } + + return false; + } } diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx index 8d348c0f490..e7620d2bb50 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx @@ -5495,7 +5495,8 @@ namespace Trk { } } - Track *track = nullptr; + std::unique_ptr<Track> track = nullptr; + if (finaltrajectory->prefit() > 0) { if (finaltrajectory != &trajectory) { delete finaltrajectory; @@ -5519,8 +5520,7 @@ namespace Trk { track->fitQuality()->chiSquared() / track->fitQuality()->numberDoF() > cut ) ) { - delete track; - track = nullptr; + track.reset(nullptr); incrementFitStatus(S_HIGH_CHI2); } @@ -5532,7 +5532,7 @@ namespace Trk { delete finaltrajectory; } - return track; + return track.release(); } void GlobalChi2Fitter::fillResiduals( @@ -7135,125 +7135,68 @@ namespace Trk { return new TrackStateOnSurface(measurement, trackpar, fitQual, mateff, typePattern); } - Track *GlobalChi2Fitter::makeTrack( - const EventContext& ctx, - Cache & cache, - GXFTrajectory & oldtrajectory, - ParticleHypothesis matEffects + void GlobalChi2Fitter::makeTrackFillDerivativeMatrix( + Cache &cache, + GXFTrajectory &oldtrajectory ) const { - // Convert internal trajectory into track - DataVector<const TrackStateOnSurface> *trajectory = new DataVector<const TrackStateOnSurface>; - std::vector<GXFTrackState *> & states = oldtrajectory.trackStates(); + Amg::MatrixX & derivs = oldtrajectory.weightedResidualDerivatives(); + Amg::VectorX & errors = oldtrajectory.errors(); + int nrealmeas = 0; - if (m_fillderivmatrix) { - Amg::MatrixX & derivs = oldtrajectory.weightedResidualDerivatives(); - Amg::VectorX & errors = oldtrajectory.errors(); - int nrealmeas = 0; - - for (auto & hit : states) { - if ( - hit->trackStateType() == TrackState::Fittable && ( - (dynamic_cast<const RIO_OnTrack *>(hit->measurement()) != nullptr) || - (dynamic_cast<const CompetingRIOsOnTrack *>(hit->measurement()) != nullptr) - ) - ) { - nrealmeas += hit->numberOfMeasuredParameters(); - } - } - - cache.m_derivmat.resize(nrealmeas, oldtrajectory.numberOfFitParameters()); - cache.m_derivmat.setZero(); - - int measindex = 0; - int measindex2 = 0; - int nperpars = oldtrajectory.numberOfPerigeeParameters(); - int nscat = oldtrajectory.numberOfScatterers(); - - for (auto & hit : states) { - if ( - hit->trackStateType() == TrackState::Fittable && ( - (dynamic_cast<const RIO_OnTrack *>(hit->measurement()) != nullptr) || - (dynamic_cast<const CompetingRIOsOnTrack *>(hit->measurement()) != nullptr) - ) - ) { - for (int i = measindex; i < measindex + hit->numberOfMeasuredParameters(); i++) { - for (int j = 0; j < oldtrajectory.numberOfFitParameters(); j++) { - cache.m_derivmat(i, j) = derivs(measindex2, j) * errors[measindex2]; - if ((j == 4 && !oldtrajectory.m_straightline) || j >= nperpars + 2 * nscat) { - cache.m_derivmat(i, j) *= 1000; - } - } - - measindex2++; - } - - measindex += hit->numberOfMeasuredParameters(); - } else if (hit->materialEffects() == nullptr) { - measindex2 += hit->numberOfMeasuredParameters(); - } - } - } - - GXFTrackState *firstmeasstate = nullptr; - GXFTrackState *lastmeasstate = nullptr; - bool foundbrem = false; - - for (auto & hit : states) { + for (auto & hit : oldtrajectory.trackStates()) { if ( - hit->measurementType() == TrackState::Pseudo && - hit->trackStateType() == TrackState::GeneralOutlier + hit->trackStateType() == TrackState::Fittable && ( + (dynamic_cast<const RIO_OnTrack *>(hit->measurement()) != nullptr) || + (dynamic_cast<const CompetingRIOsOnTrack *>(hit->measurement()) != nullptr) + ) ) { - if (hit->trackCovariance() != nullptr) { - hit->setTrackCovariance(nullptr); - } - continue; + nrealmeas += hit->numberOfMeasuredParameters(); } - + } + + cache.m_derivmat.resize(nrealmeas, oldtrajectory.numberOfFitParameters()); + cache.m_derivmat.setZero(); + + int measindex = 0; + int measindex2 = 0; + int nperpars = oldtrajectory.numberOfPerigeeParameters(); + int nscat = oldtrajectory.numberOfScatterers(); + + for (auto & hit : oldtrajectory.trackStates()) { if ( - matEffects == electron && - (hit->materialEffects() != nullptr) && - hit->materialEffects()->isKink() + hit->trackStateType() == TrackState::Fittable && ( + (dynamic_cast<const RIO_OnTrack *>(hit->measurement()) != nullptr) || + (dynamic_cast<const CompetingRIOsOnTrack *>(hit->measurement()) != nullptr) + ) ) { - foundbrem = true; - } - - const TrackStateOnSurface *trackState = makeTSOS(hit, matEffects); - trajectory->push_back(trackState); - - if (trackState->measurementOnTrack() != nullptr) { - if (firstmeasstate == nullptr) { - firstmeasstate = hit; + for (int i = measindex; i < measindex + hit->numberOfMeasuredParameters(); i++) { + for (int j = 0; j < oldtrajectory.numberOfFitParameters(); j++) { + cache.m_derivmat(i, j) = derivs(measindex2, j) * errors[measindex2]; + if ((j == 4 && !oldtrajectory.m_straightline) || j >= nperpars + 2 * nscat) { + cache.m_derivmat(i, j) *= 1000; + } + } + + measindex2++; } - lastmeasstate = hit; - } - } - - const FitQuality *qual = new FitQuality(oldtrajectory.chi2(), oldtrajectory.nDOF()); - - ATH_MSG_VERBOSE("making Trk::Track..."); - - TrackInfo info; - - if (matEffects != electron) { - info = TrackInfo(TrackInfo::GlobalChi2Fitter, matEffects); - } else { - info = TrackInfo(TrackInfo::GlobalChi2Fitter, Trk::electron); - info.setTrackProperties(TrackInfo::BremFit); - if (foundbrem) { - info.setTrackProperties(TrackInfo::BremFitSuccessful); + + measindex += hit->numberOfMeasuredParameters(); + } else if (hit->materialEffects() == nullptr) { + measindex2 += hit->numberOfMeasuredParameters(); } } - - if (oldtrajectory.m_straightline) { - info.setTrackProperties(TrackInfo::StraightTrack); - } + } - if (firstmeasstate == nullptr) { - throw std::logic_error("no first measurement."); - } - + std::unique_ptr<const TrackParameters> GlobalChi2Fitter::makeTrackFindPerigeeParameters( + const EventContext & ctx, + Cache &cache, + GXFTrajectory &oldtrajectory, + const ParticleHypothesis matEffects + ) const { + GXFTrackState *firstmeasstate, *lastmeasstate; + std::tie(firstmeasstate, lastmeasstate) = oldtrajectory.findFirstLastMeasurement(); const TrackParameters *per = nullptr; - + if (cache.m_acceleration && !m_matupdator.empty()) { const TrackParameters *prevpar = firstmeasstate->trackParameters(); const TrackParameters *tmppar = firstmeasstate->trackParameters(); @@ -7376,14 +7319,9 @@ namespace Trk { } if (per == nullptr) { - delete trajectory; - delete qual; - ATH_MSG_DEBUG("Failed to extrapolate to perigee, returning 0"); - - cache.m_fittercode = FitterStatusCode::ExtrapolationFailure; - incrementFitStatus(S_PROPAGATION_FAIL); + cache.m_fittercode = FitterStatusCode::ExtrapolationFailure; return nullptr; } } else if (cache.m_acceleration && (firstmeasstate->trackParameters() != nullptr)) { @@ -7398,21 +7336,93 @@ namespace Trk { per = oldtrajectory.referenceParameters(true); } + return std::unique_ptr<const TrackParameters>(per); + } + + std::unique_ptr<const TrackStateOnSurface> GlobalChi2Fitter::makeTrackFindPerigee( + const EventContext & ctx, + Cache &cache, + GXFTrajectory &oldtrajectory, + const ParticleHypothesis matEffects + ) const { + std::unique_ptr<const TrackParameters> per = makeTrackFindPerigeeParameters(ctx, cache, oldtrajectory, matEffects); + + if (per == nullptr) { + return nullptr; + } + std::bitset<TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern; typePattern.set(TrackStateOnSurface::Perigee); - const TrackStateOnSurface *pertsos = new TrackStateOnSurface(nullptr, per, nullptr, nullptr, typePattern); + + std::unique_ptr<const TrackStateOnSurface> pertsos = std::make_unique<const TrackStateOnSurface>(nullptr, per.release(), nullptr, nullptr, typePattern); ATH_MSG_DEBUG("Final perigee: " << *per << " pos: " << per->position() << " pT: " << per->pT()); + + return pertsos; + } + + std::unique_ptr<Track> GlobalChi2Fitter::makeTrack( + const EventContext & ctx, + Cache & cache, + GXFTrajectory & oldtrajectory, + ParticleHypothesis matEffects + ) const { + // Convert internal trajectory into track + std::unique_ptr<DataVector<const TrackStateOnSurface>> trajectory = std::make_unique<DataVector<const TrackStateOnSurface>>(); - if (!cache.m_acceleration) { - trajectory->insert(trajectory->begin() + oldtrajectory.numberOfUpstreamStates(), pertsos); + if (m_fillderivmatrix) { + makeTrackFillDerivativeMatrix(cache, oldtrajectory); + } + + for (auto & hit : oldtrajectory.trackStates()) { + if ( + hit->measurementType() == TrackState::Pseudo && + hit->trackStateType() == TrackState::GeneralOutlier + ) { + if (hit->trackCovariance() != nullptr) { + hit->setTrackCovariance(nullptr); + } + continue; + } + + const TrackStateOnSurface *trackState = makeTSOS(hit, matEffects); + trajectory->push_back(trackState); + } + + std::unique_ptr<const FitQuality> qual = std::make_unique<const FitQuality>(oldtrajectory.chi2(), oldtrajectory.nDOF()); + + ATH_MSG_VERBOSE("making Trk::Track..."); + + TrackInfo info; + + if (matEffects != electron) { + info = TrackInfo(TrackInfo::GlobalChi2Fitter, matEffects); } else { - trajectory->insert(trajectory->begin(), pertsos); + info = TrackInfo(TrackInfo::GlobalChi2Fitter, Trk::electron); + info.setTrackProperties(TrackInfo::BremFit); + + if (matEffects == electron && oldtrajectory.hasKink()) { + info.setTrackProperties(TrackInfo::BremFitSuccessful); + } + } + + if (oldtrajectory.m_straightline) { + info.setTrackProperties(TrackInfo::StraightTrack); } + + std::unique_ptr<const TrackStateOnSurface> pertsos = makeTrackFindPerigee(ctx, cache, oldtrajectory, matEffects); - Track *track = new Track(info, trajectory, qual); + if (pertsos == nullptr) { + return nullptr; + } + + if (!cache.m_acceleration) { + trajectory->insert(trajectory->begin() + oldtrajectory.numberOfUpstreamStates(), pertsos.release()); + } else { + trajectory->insert(trajectory->begin(), pertsos.release()); + } - return track; + return std::make_unique<Track>(info, trajectory.release(), qual.release()); } GlobalChi2Fitter::~GlobalChi2Fitter() { -- GitLab From 67b02c7246f8cd06874075f8e8c4020ae1e2606b Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Mon, 27 Jul 2020 12:17:33 +0100 Subject: [PATCH 183/459] Addressing MR comments to clean up changes --- .../MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h | 2 -- .../MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx | 2 -- .../MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolCore.h | 2 +- .../MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h | 2 -- MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx | 2 -- 5 files changed, 1 insertion(+), 9 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h index 58d21ea185f..1ea69192d30 100644 --- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtRdoToPrepDataTool.h @@ -5,8 +5,6 @@ #ifndef MUONMdtRdoToPrepDataTool_H #define MUONMdtRdoToPrepDataTool_H -#include "CxxUtils/checker_macros.h" - #include "MdtRdoToPrepDataToolCore.h" namespace Muon diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx index 0a3dc61f317..20db990da7f 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataTool.cxx @@ -6,8 +6,6 @@ /// However the MT code uses the const cast in a single-thread /// mode by transfering the contents to a thread-safe container /// in order to prevent complex adjustments in the core decode functions -/// As such, it should not be flagged at this stage as unsafe -#include "CxxUtils/checker_macros.h" #include "RpcRdoToPrepDataTool.h" diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolCore.h b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolCore.h index e3415624061..d456a18de7f 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolCore.h +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolCore.h @@ -31,7 +31,7 @@ namespace Muon { ///////////////////////////////////////////////////////////////////////////// -class RpcRdoToPrepDataToolCore : virtual public IMuonRdoToPrepDataTool, virtual public AthAlgTool { +class RpcRdoToPrepDataToolCore : virtual public IMuonRdoToPrepDataTool, virtual public AthAlgTool { public: RpcRdoToPrepDataToolCore( const std::string&, const std::string&, const IInterface* ); diff --git a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h index 1e13f69d841..9943feee707 100755 --- a/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h +++ b/MuonSpectrometer/MuonCnv/MuonRPC_CnvTools/src/RpcRdoToPrepDataToolMT.h @@ -9,8 +9,6 @@ #include "MuonPrepRawData/MuonPrepDataCollection_Cache.h" #include "MuonTrigCoinData/MuonTrigCoinData_Cache.h" -#include "CxxUtils/checker_macros.h" - namespace Muon { class RpcRdoToPrepDataToolMT : virtual public RpcRdoToPrepDataToolCore { diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx index ea5020b2874..fb9a4405f71 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx @@ -104,7 +104,6 @@ void Muon::TgcSlbData::setBitmap(const uint16_t bcTag, if(cellAddr == PADDING_WORD) return; // get bit array - //bool *bitArray = const_cast<bool*>(getBitArray(bcTag)); bool *bitArray = getBitArrayNC(bcTag); // assign @@ -130,7 +129,6 @@ void Muon::TgcSlbData::setBit(const uint16_t bcTag, if(iBit >= BITMAP_SIZE) return; // get bit array - // bool *bitArray = const_cast<bool*>(getBitArray(bcTag)); bool *bitArray = getBitArrayNC(bcTag); *(bitArray+iBit)=true; } -- GitLab From 33365c3cfcdfdb839d7123ac64193e7e56078e14 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Fri, 24 Jul 2020 12:51:46 +0200 Subject: [PATCH 184/459] TrigValAlgs: Delete TrigCountDumper and TrigSlimValAlg Delete obsolete validation algorithms `TrigCountDumper` and `TrigSlimValAlg` (ATR-20090). --- .../TrigValidation/TrigValAlgs/CMakeLists.txt | 6 +- .../TrigValAlgs/python/TrigValAlgsConfig.py | 21 - .../TrigValAlgs/src/TrigCountDumper.cxx | 393 ------------------ .../TrigValAlgs/src/TrigCountDumper.h | 267 ------------ .../TrigValAlgs/src/TrigSlimValAlg.cxx | 285 ------------- .../TrigValAlgs/src/TrigSlimValAlg.h | 259 ------------ .../src/components/TrigValAlgs_entries.cxx | 4 - 7 files changed, 1 insertion(+), 1234 deletions(-) delete mode 100644 Trigger/TrigValidation/TrigValAlgs/src/TrigCountDumper.cxx delete mode 100644 Trigger/TrigValidation/TrigValAlgs/src/TrigCountDumper.h delete mode 100644 Trigger/TrigValidation/TrigValAlgs/src/TrigSlimValAlg.cxx delete mode 100644 Trigger/TrigValidation/TrigValAlgs/src/TrigSlimValAlg.h diff --git a/Trigger/TrigValidation/TrigValAlgs/CMakeLists.txt b/Trigger/TrigValidation/TrigValAlgs/CMakeLists.txt index cba79126cc8..9d6605ad7fa 100644 --- a/Trigger/TrigValidation/TrigValAlgs/CMakeLists.txt +++ b/Trigger/TrigValidation/TrigValAlgs/CMakeLists.txt @@ -3,15 +3,11 @@ # Declare the package name: atlas_subdir( TrigValAlgs ) -# External dependencies: -find_package( XercesC ) - # Component(s) in the package: atlas_add_component( TrigValAlgs src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${XERCESC_INCLUDE_DIRS} - LINK_LIBRARIES ${XERCESC_LIBRARIES} AnalysisTriggerEvent AthAnalysisBaseCompsLib AthContainers AthViews AthenaBaseComps AthenaKernel CxxUtils EventInfo GaudiKernel MuonCombinedToolInterfaces Particle StoreGateLib TrigCaloEvent TrigCompositeUtilsLib TrigConfHLTData TrigConfInterfaces TrigDecisionEvent TrigDecisionToolLib TrigInDetEvent TrigInDetTruthEvent TrigMissingEtEvent TrigMuonEvent TrigNavStructure TrigNavToolsLib TrigNavigationLib TrigParticle TrigRoiConversionLib TrigSteeringEvent TrigT1Interfaces VxSecVertex tauEvent xAODBTagging xAODCore xAODEgamma xAODJet xAODMuon xAODTau xAODTracking xAODTrigBphys xAODTrigCalo xAODTrigEgamma xAODTrigMinBias xAODTrigMissingET xAODTrigMuon xAODTrigger ) + LINK_LIBRARIES AnalysisTriggerEvent AthAnalysisBaseCompsLib AthContainers AthViews AthenaBaseComps AthenaKernel CxxUtils EventInfo GaudiKernel MuonCombinedToolInterfaces Particle StoreGateLib TrigCaloEvent TrigCompositeUtilsLib TrigConfHLTData TrigConfInterfaces TrigDecisionToolLib TrigInDetEvent TrigInDetTruthEvent TrigMissingEtEvent TrigMuonEvent TrigNavStructure TrigNavigationLib TrigParticle TrigRoiConversionLib TrigSteeringEvent TrigT1Interfaces VxSecVertex tauEvent xAODBTagging xAODCore xAODEgamma xAODJet xAODMuon xAODTau xAODTracking xAODTrigBphys xAODTrigCalo xAODTrigEgamma xAODTrigMinBias xAODTrigMissingET xAODTrigMuon xAODTrigger ) # Install files from the package: atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) diff --git a/Trigger/TrigValidation/TrigValAlgs/python/TrigValAlgsConfig.py b/Trigger/TrigValidation/TrigValAlgs/python/TrigValAlgsConfig.py index 9c80d6d8d48..96600fad8d3 100755 --- a/Trigger/TrigValidation/TrigValAlgs/python/TrigValAlgsConfig.py +++ b/Trigger/TrigValidation/TrigValAlgs/python/TrigValAlgsConfig.py @@ -1,17 +1,9 @@ # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -from TrigValAlgs.TrigValAlgsConf import TrigCountDumper from TrigValAlgs.TrigValAlgsConf import TrigDecisionChecker from TrigValAlgs.TrigValAlgsConf import TrigEDMChecker -from TrigValAlgs.TrigValAlgsConf import TrigSlimValAlg from TrigValAlgs.TrigValAlgsConf import TrigEDMAuxChecker import six -# TrigCountDumper configurable -# Run with TrigCountDumper configured from AOD header -class TrigCountDumper ( TrigCountDumper ): - __slots__ = [] - def __init__(self, name="TrigCountDumper"): - super( TrigCountDumper, self ).__init__( name ) # TrigDecisionChecker configurable # Run with TrigDecisionTool configured from AOD header @@ -71,19 +63,6 @@ class TrigEDMChecker ( TrigEDMChecker ): super( TrigEDMChecker, self ).__init__( name ) -# TrigSlimValAlg configurable -class TrigSlimValAlg ( TrigSlimValAlg ): - __slots__ = [] - def __init__(self, name="TrigSlimValAlg"): - super( TrigSlimValAlg, self ).__init__( name ) - - def setDefaults(self, handle): - - self.TrigDecisionTool = "Trig::TrigDecisionTool/TrigDecisionTool" - self.Navigation = "HLT::Navigation/Navigation" - self.SlimmingTool = "HLT::TrigNavigationSlimmingTool/TrigNavigationSlimmingTool" - - def getEDMAuxList(): from TrigEDMConfig.TriggerEDM import getTriggerObjList,TriggerHLTList tlist=getTriggerObjList('AODFULL',[TriggerHLTList]) diff --git a/Trigger/TrigValidation/TrigValAlgs/src/TrigCountDumper.cxx b/Trigger/TrigValidation/TrigValAlgs/src/TrigCountDumper.cxx deleted file mode 100644 index 337d131aa87..00000000000 --- a/Trigger/TrigValidation/TrigValAlgs/src/TrigCountDumper.cxx +++ /dev/null @@ -1,393 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -/* - * File: TrigCountDumper.cxx - * Author: Roger Moore <rwmoore@ualberta.ca> - * Created: 5/11/11 (Guy Fawkes Day!) - * Description: - * Source code for the methods of the TrigCountDumper Athena algorithm. - */ - -// System includes -#include <cmath> -#include <algorithm> -#include <iostream> -#include <iomanip> -#include <fstream> -#include <sstream> - -// Xerces C++ includes -#include "xercesc/util/PlatformUtils.hpp" -#include "xercesc/framework/StdOutFormatTarget.hpp" -#include "xercesc/framework/LocalFileFormatTarget.hpp" - -// Gaudi includes -#include "CxxUtils/crc64.h" - -// ATLAS Includes -#include "AthenaKernel/errorcheck.h" -#include "EventInfo/EventInfo.h" -#include "EventInfo/EventID.h" -#include "TrigCountDumper.h" -#include "TrigSteeringEvent/Lvl1Item.h" - -using namespace xercesc; -using namespace trigcount; - -// Helper class in a local namespace to convert normal strings into -// XML compatible unicode strings -namespace { - class XStr { - public: - /** Constructor taking a templated argument type. - This constructor takes a single argument of a given type. First - it uses a string stream to convert the type into a string and - then it transcodes the string into an XML unicode string which - is stored inside the class. - @param toTranscode data to transcode into XML unicode - */ - template<typename T> XStr(T toTranscode); - /** Constructor taking a const character pointer. - This constructor will transcode the string given by the pointer. - As a non-template constructor this should always take precedence over - the templated constructor. - @param toTranscode pointer to the string to stranscode - */ - XStr(const char *toTranscode); - ~XStr() { - xercesc::XMLString::release(&m_unicode); - } - const XMLCh *unicode(void) const { - return m_unicode; - } - /** Cast operator to allow this class to act as an XMLCh pointer. - This cast operator means that a class instance can be used as a - XMLCh pointer. This allows an instance to be passed as an argument - to Xerces function which require a const XMLCh pointer argument. Since - the class has a templated constructor using a string stream this means - that simple strings, integers or floats can be passed as arguments - very simply. - @return XMLCh pointer with the transcoded string - */ - operator const XMLCh *(void) const; - private : - XMLCh *m_unicode; - }; - - // Templated constructor - template<typename T> inline XStr::XStr(T toTranscode) { - std::stringstream ss; - ss << toTranscode; - m_unicode=xercesc::XMLString::transcode(ss.str().c_str()); - } - - // Constructor for const char pointers - inline XStr::XStr(const char *toTranscode) { - m_unicode=xercesc::XMLString::transcode(toTranscode); - } - - inline XStr::operator const XMLCh *(void) const { - return m_unicode; - } -} -// Use a pre-processor macro to define the conversion function because a -// function call would cause the XStr class to go out of scope -// when it returned which would release the converted string data! -//#define X(str) XStr(str).unicode() - -namespace trigcount { - - // Method implementations for the TriggerCount class - DOMElement *TriggerCount::xml(DOMDocument *doc) const { - // Create the trigger element to contain the data - DOMElement *top=doc->createElement(XStr("count")); - // Add the trigger name as an attribute - top->setAttribute(XStr("trigger"), XStr(m_name)); - // Add the prescale as an attribute - top->setAttribute(XStr("prescale"), XStr(m_prescale)); - // Add the passthrough as an attribute - top->setAttribute(XStr("passthrough"), XStr(m_passthrough)); - // Add the lower chain name as an attribute - top->setAttribute(XStr("lowerchain"), XStr(m_lower)); - // Create the trigger element to contain the raw count and put the - // value attribute to the number of counts - DOMElement *raw=doc->createElement(XStr("raw")); - raw->setAttribute(XStr("value"),XStr(m_raw)); - // Add the raw count to the top element - top->appendChild(raw); - // Create the trigger element to contain the actual count and put the - // value attribute to the number of counts - DOMElement *actual=doc->createElement(XStr("actual")); - actual->setAttribute(XStr("value"),XStr(m_count)); - // Add the actual count to the top element - top->appendChild(actual); - return top; - } - - std::iostream &TriggerCount::operator<<(std::iostream &ostr) const { - ostr << "<count trigger=\"" << m_name << "\" count=\"" - << m_count << "\" prescale=\"" << m_prescale << "\"/>" << std::endl; - return ostr; - } - - - // Method implementations for the TriggerMenu class - - DOMElement *TriggerMenu::xml(DOMDocument *doc) const { - // Create the menu element to contain the triggers - DOMElement *top=doc->createElement(XStr("menu")); - // Add the super master key, event count and mean pileup - // as attributes to the top level element - top->setAttribute(XStr("smk"), XStr(m_smk)); - top->setAttribute(XStr("nevents"), XStr(m_count)); - top->setAttribute(XStr("mu"), XStr(mu())); - // Loop over all the triggers in the menu and add elements - // for then as children of the menu element - for(TriggerMenu::const_iterator i=this->begin();i!=this->end();++i) { - top->appendChild(i->second.xml(doc)); - } - return top; - } - - std::iostream &TriggerMenu::operator<<(std::iostream &ostr) const { - ostr << "<menu smk=\"" << m_smk << "\" nevents=\"" - << m_count << "\" mu=\"" << mu() << "\">" << std::endl; - for(TriggerMenu::const_iterator i=begin();i!=end();++i) { - ostr << " "; //<< i->second; - } - ostr << "</menu>" << std::endl; - return ostr; - } - -} // end trigcount namespace - - -TrigCountDumper::TrigCountDumper(const std::string &name, ISvcLocator *pSvcLocator) - : AthAlgorithm(name, pSvcLocator), - m_trigDec("Trig::TrigDecisionTool/TrigDecisionTool"), - m_configSvc( "TrigConf::TrigConfigSvc/TrigConfigSvc", name) { - declareProperty("OutputFile",m_ofname="trigger_counts.xml","Name of the output file"); - declareProperty("Release",m_release="","Release version"); - declareProperty("Dataset",m_dataset="","Dataset name"); - declareProperty("Labels",m_labels,"Dataset labels"); - declareProperty("EventInfoName",m_eventInfoName="","The name of the EventInfo container" ); -} - -StatusCode TrigCountDumper::initialize(void) { - ATH_MSG_INFO("Initializing Trigger Count dump algorithm"); - ATH_MSG_INFO("Outputfile : " << m_ofname); - // Get the handle to the trigger configuration service - CHECK(m_configSvc.retrieve()); - // Get the handle to the trigger decision tool - CHECK(m_trigDec.retrieve()); - // Enable the expert methods for the trigger decision tool - m_trigDec->ExperimentalAndExpertMethods()->enable(); - return StatusCode::SUCCESS; -} - - -StatusCode TrigCountDumper::finalize() { - ATH_MSG_INFO("TrigCountDumper: Generating XML document"); - // Try to initialize the Xerces XML library. Details about this come - // from the Xerces C++ documentation at http://xerces.apache.org/xerces-c/ - // The basic code framework to create and fill the document was taken from - // the Xerces sample code CreateDOMDocument available here: - // http://svn.apache.org/viewvc/xerces/c/trunk/samples/src/CreateDOMDocument/ - try { - // Initialize the library. Must call terminate function once we are done - XMLPlatformUtils::Initialize(); - } catch (const XMLException& toCatch) { - // The library failed to initialize so generate an error message and exit - ATH_MSG_ERROR("TrigCountDumper: Failed to initialize Xerces XML library"); - return StatusCode::FAILURE; - } - // Get a pointer to the Xerces DOM implementation. DOM is an API to access XML - // documents in memory and so is the API suitable for generating a new XML - // document from scratch. DOM = Document Object Model - DOMImplementation *dom=DOMImplementationRegistry::getDOMImplementation(XStr("Core")); - if(!dom) { - // There was no DOM implementation found in Xerces so print an error message - // and then exit - ATH_MSG_ERROR("Unable to find a DOM XML implementation in Xerces"); - XMLPlatformUtils::Terminate(); - return StatusCode::FAILURE; - } - // Create a new XML document which we will fill with the trigger counts - DOMDocument *doc=dom->createDocument(0, // root element namespace URI - XStr("TriggerCounts"), // root element name - 0); // document type object (DTD). - // Get the root element of the document - DOMElement *rootElem=doc->getDocumentElement(); - // Create the dataset element - DOMElement *ds=doc->createElement(XStr("dataset")); - // Add a name attribute to the dataset element - ds->setAttribute(XStr("name"),XStr(m_dataset)); - // Add a release attribute to the dataset element - ds->setAttribute(XStr("release"),XStr(m_release)); - // Loop over the configured labels and add these to the dataset - for(std::vector<std::string>::const_iterator i=m_labels.begin(); - i!=m_labels.end();++i) { - // Create an element for the label - DOMElement *label=doc->createElement(XStr("label")); - // Create a text node containing the label text - DOMText *labtext=doc->createTextNode(XStr(*i)); - // Add the text node to the label - label->appendChild(labtext); - // Add the label to the dataset - ds->appendChild(label); - } - // Add the dataset element to the root - rootElem->appendChild(ds); - // Loop over all the menus found in the data so they can be added to the document - for(MenuMap_t::const_iterator i=m_menu.begin();i!=m_menu.end();++i) { - rootElem->appendChild(i->second.xml(doc)); - } - // At this point we have all the data stored in the XML document so now we - // write it out to a file...which is somewhat of an involved process! - // First we have to create a serializer from the DOM implementation - DOMLSSerializer *serializer=static_cast<DOMImplementationLS *>(dom)->createLSSerializer(); - // Make the output more human readable by inserting line feeds. - if (serializer->getDomConfig()->canSetParameter(XMLUni::fgDOMWRTFormatPrettyPrint, true)) - serializer->getDomConfig()->setParameter(XMLUni::fgDOMWRTFormatPrettyPrint, true); - // The end-of-line sequence of characters to be used in the XML being written out (UNIX standard) - serializer->setNewLine(XStr("\n")); - // Create the output target - XMLFormatTarget *target; - if(!m_ofname.empty()) - target=new LocalFileFormatTarget(XStr(m_ofname)); - else - target=new StdOutFormatTarget(); - // Create a new empty output destination object - DOMLSOutput *output=static_cast<DOMImplementationLS *>(dom)->createLSOutput(); - // Tell the output stream to use the given file, or stdout, target - output->setByteStream(target); - // Tell everyone that we are about to write the XML data out - ATH_MSG_INFO("TrigCountDumper: Writing output to " << m_ofname); - // Write the document to the output using the serializer - serializer->write(doc,output); - // Cleanup. - serializer->release(); - delete target; - output->release(); - return StatusCode::SUCCESS; -} - - -StatusCode TrigCountDumper::execute(void) { - // Get a reference to the expert interface - Trig::ExpertMethods &expert=*m_trigDec->ExperimentalAndExpertMethods(); - // Get the super master and pre-scale keys from the configuration service. - // It is not clear that we will use the prescale keys but we'll retreive - // them in case we need them in the future. - uint32_t smk = m_configSvc->masterKey(); - uint32_t l1psk = m_configSvc->lvl1PrescaleKey(); - uint32_t hltpsk = m_configSvc->hltPrescaleKey(); - // If the keys returned by the configuration service don't seem to make sense, - // use something else as the SMK. (Needed mostly for MC test jobs.) - if(((smk==0) && (l1psk==0) && (hltpsk==0)) || (static_cast<int>(smk) < 0 ) || - (static_cast<int>(l1psk) < 0 ) || (static_cast<int>(hltpsk) < 0 ) ) { - smk = CxxUtils::crc64(m_configSvc->configurationSource()) & 0xffff; - l1psk = 0; - hltpsk = 0; - } - - // At this point we now have a super master key so check whether this is one we have - // already seen or whether we need to create a new menu to count it - if(m_menu.find(smk)==m_menu.end()) { - ATH_MSG_INFO("Found new trigger menu with SMK=" << smk); - // This super master key was not found so create a new menu entry - // Note: this is inefficient in that it creates and then copies the trigger - // menu into the map. However this should only ever be performed once or twice - // per run so the overhead is minimal and it avoids have to worry about memory - // management (so call me lazy!). - m_menu[smk]=trigcount::TriggerMenu(smk); - // Get a list of all the L1 triggers in this menu configuration - std::vector<std::string> trigs=m_trigDec->getListOfTriggers("L1_.*"); - // Loop over all the L1 triggers and add them to the count menu - for(std::vector<std::string>::const_iterator i=trigs.begin();i!=trigs.end();++i) { - ATH_MSG_DEBUG("Adding L1 trigger " << *i); - const LVL1CTP::Lvl1Item *l1=expert.getItemDetails(*i); - // Check that there is a valid L1 item pointer, if not then raise an error - if(!l1) { - ATH_MSG_ERROR("No Lvl1Item class found for " << *i << ", set prescale to -1"); - m_menu[smk].addTrigger(trigcount::TriggerCount(*i,-1.,0.)); - } else { - m_menu[smk].addTrigger(trigcount::TriggerCount(*i,l1->prescaleFactor(),0.)); - } - } - // Get a list of all the HLT triggers in this menu configuration - trigs=m_trigDec->getListOfTriggers("HLT_.*"); - // Loop over all the triggers and add them to the count menu - for(std::vector<std::string>::const_iterator i=trigs.begin();i!=trigs.end();++i) { - ATH_MSG_DEBUG("Adding HLT trigger " << *i - << " with prescale " << m_trigDec->getPrescale(*i)); - const TrigConf::HLTChain *ch=expert.getChainConfigurationDetails(*i); - // Check for the expert chain interface - if(!ch) { - ATH_MSG_ERROR("No Chain class found for " << *i << ", set passthrough to -1"); - m_menu[smk].addTrigger(trigcount::TriggerCount(*i,m_trigDec->getPrescale(*i),-1.)); - } else { - m_menu[smk].addTrigger(trigcount::TriggerCount(*i,ch->prescale(),ch->pass_through())); - m_menu[smk][*i].setLower(ch->lower_chain_name()); - } - } - ATH_MSG_DEBUG("Trigger menu configured"); - } - - // Now that we know we have a trigger menu for this event get a reference to it. - // This avoids having to look it up in the map everytime we access it. - trigcount::TriggerMenu &menu=m_menu[smk]; - // Extract the event info object from store gate - const EventInfo *eventInfo; - StatusCode sc; - if (m_eventInfoName == "") { - sc=evtStore()->retrieve(eventInfo); - } else { - sc=evtStore()->retrieve(eventInfo ,m_eventInfoName); - } - // Check for a null point or failure code because the call can succeed but not - // find a valid event info object pointer - if(sc.isFailure() || !eventInfo) { - ATH_MSG_INFO("EventInfo container '" << m_eventInfoName - << "' could not be retrieved from StoreGate!"); - return StatusCode::SUCCESS; - } - - // Add an event to the menu with the given number of interactions - menu.addEvent(eventInfo->actualInteractionsPerCrossing()); - - // Loop over all the HLT triggers to find which ones passed - std::vector<std::string> trigs=m_trigDec->getListOfTriggers("HLT_.*"); - for(std::vector<std::string>::const_iterator i=trigs.begin();i!=trigs.end();++i) { - // Check to see if the trigger passed regardless of any prescale value. If it does then - // add this event to the count - if(m_trigDec->isPassed(*i,TrigDefs::allowResurrectedDecision|TrigDefs::requireDecision)) { - // Access the actual pass value, with prescale implemented. If this is true then the - // actual count will be incremented as well as the raw count - menu[*i].addEvent(m_trigDec->isPassed(*i)); - } - } - - // Loop over all the L1 triggers to find which ones passed - trigs=m_trigDec->getListOfTriggers("L1_.*"); - for(std::vector<std::string>::const_iterator i=trigs.begin();i!=trigs.end();++i) { - const LVL1CTP::Lvl1Item *l1=expert.getItemDetails(*i); - // Check that there is a valid L1 item pointer, if not then raise an error - if(!l1) { - ATH_MSG_ERROR("No Lvl1Item class found for " << *i << ", using TrigDecision data only"); - if(m_trigDec->isPassed(*i,TrigDefs::allowResurrectedDecision|TrigDefs::requireDecision)) { - // Access the actual pass value, with prescale implemented. If this is true then the - // actual count will be incremented as well as the raw count - menu[*i].addEvent(m_trigDec->isPassed(*i)); - } - } else { - // We have a Lvl1Item class so we use this to get the raw and prescaled counts - if(l1->isPassedBeforePrescale()) { - menu[*i].addEvent(l1->isPassed()); - } - } - } // end loop over L1 triggers - return StatusCode::SUCCESS; -} diff --git a/Trigger/TrigValidation/TrigValAlgs/src/TrigCountDumper.h b/Trigger/TrigValidation/TrigValAlgs/src/TrigCountDumper.h deleted file mode 100644 index 4b51218f11c..00000000000 --- a/Trigger/TrigValidation/TrigValAlgs/src/TrigCountDumper.h +++ /dev/null @@ -1,267 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -/** - Athena processor which will dump the trigger counts either to an XML file or standard out. - @author: R. Moore <rwmoore@ualberta.ca> - */ - -#ifndef TRIGVALALGS_TRIGCOUNTDUMPER_H -#define TRIGVALALGS_TRIGCOUNTDUMPER_H - -// std stuff -#include <string> -#include <map> -#include <iostream> - -// Xerces C++ Includes -#include "xercesc/util/XMLString.hpp" -#include "xercesc/dom/DOM.hpp" - -// Core ATLAS includes -#include "AthenaBaseComps/AthAlgorithm.h" - -// Trigger includes -#include "TrigDecisionTool/TrigDecisionTool.h" -#include "TrigConfInterfaces/ITrigConfigSvc.h" - -namespace trigcount { - - /** - * @class TriggerCount - * Helper class which will store the data for a single trigger count - */ - class TriggerCount { - public: - /** Constructs the count for a given trigger. - @param name name of the trigger being counted - @param prescale prescale value for the trigger - */ - TriggerCount(const std::string &name="",float prescale=1.0,float passthrough=0.); - /** Increments the raw and actual counts for this trigger. - Every call of this method will increment the raw counts for this - trigger. The actual count will only be increased if the argument - 'actual' is set to true. - @param actual flag to indicate that the actual count should be increased - */ - void addEvent(bool actual); - /// Returns the raw trigger count - uint32_t raw(void) const; - /// Returns the actual trigger count - uint32_t actual(void) const; - /// Returns the prescale factor - float prescale(void) const; - /// Returns the pass-through factor - float passthrough(void) const; - /** Returns the projected count based on the raw and prescale values. - This method will project an actual count number based on the number of - raw counts and the given prescale factor. - @return projected number of trigger counts - */ - float projected(void) const; - /** Fills an XML element structure with the count data. - This method will create an XML element structure using the given XML - document and then returns the top element of the structure. It is then up - to the calling code to attach this structure to the document in a suitable - location. - @param doc pointer to the Xerces DOM document - @return pointer to the top level element of the XML representation - */ - xercesc::DOMElement *xml(xercesc::DOMDocument *doc) const; - /// Outputs the count to a stream - std::iostream &operator<<(std::iostream &ostr) const; - /** Returns the name of the trigger. - @return name of the trigger being counted - */ - const std::string &name(void) const; - /** Returns the name of the lower chain name. - @return name of the lower chain name of this trigger - */ - const std::string &lower(void) const; - /** Sets the name of the lower chain name. - @param lower the name of the lower chain name of this trigger - */ - void setLower(const std::string &lower); - private: - /// Name of the trigger - std::string m_name; - /// Actual counts for this trigger - uint32_t m_count; - /// Raw counts for this trigger - uint32_t m_raw; - /// Prescale factor for this trigger - float m_prescale; - /// Passthrough factor for this trigger - float m_passthrough; - /// Lower chain name this trigger - std::string m_lower; - }; - - inline TriggerCount::TriggerCount(const std::string &name,float prescale,float passthrough) : - m_name(name), m_count(0), m_raw(0), m_prescale(prescale), m_passthrough(passthrough), m_lower("") { - } - - inline void TriggerCount::addEvent(bool actual) { - // Increase the raw event count - ++m_raw; - // Only increase the actual event count if the flag is set - if(actual) ++m_count; - } - - inline float TriggerCount::projected(void) const { - if(m_prescale!=0.) { - return static_cast<float>(m_raw)/m_prescale+static_cast<float>(m_raw)*m_passthrough - -static_cast<float>(m_raw)*(m_passthrough/m_prescale); - } else { - return static_cast<float>(m_raw)*m_passthrough; - } - } - - inline uint32_t TriggerCount::raw(void) const { - return m_raw; - } - - inline uint32_t TriggerCount::actual(void) const { - return m_count; - } - - inline float TriggerCount::prescale(void) const { - return m_prescale; - } - - inline float TriggerCount::passthrough(void) const { - return m_passthrough; - } - - inline const std::string &TriggerCount::name(void) const { - return m_name; - } - - inline const std::string &TriggerCount::lower(void) const { - return m_lower; - } - - inline void TriggerCount::setLower(const std::string &lower) { - m_lower=lower; - } - - - class TriggerMenu : public std::map<std::string,TriggerCount> { - public: - /** Constructs a new trigger menu class to contain counts. - @param smk super master key of the trigger list - */ - TriggerMenu(uint32_t smk=0); - /// Copy constructor - /** Adds an event with the given number of interactions to those the menu has seen. - This increments the number of events which have been triggered by this menu by - one and increases the number of interactions by the number of interactions in - the event. - @param nint number of interactions in the event, defaults to 1 - */ - void addEvent(uint32_t nint=1); - /** Adds a new trigger count to the menu. - @param tcount trigger count to add - */ - void addTrigger(const TriggerCount &tcount); - /** Returns the average number of interactions per event. - This calculates the average number of interactions in events which were triggered - by this menu. - @return the average number of interactions per event. - */ - float mu(void) const; - /** Fills an XML element structure with the menu data. - This method will create an XML element structure using the given XML - document and then returns the top element of the structure. It is then up - to the calling code to attach this structure to the document in a suitable - location. - @param doc pointer to the Xerces DOM document - @return pointer to the top level element of the XML representation - */ - xercesc::DOMElement *xml(xercesc::DOMDocument *doc) const; - /// Outputs the menu to a stream - std::iostream &operator<<(std::iostream &ostr) const; - private: - /// Super master key associated with this trigger list - uint32_t m_smk; - /// Number of events which have been run with this trigger menu - uint32_t m_count; - /// Number of interactions in this menu's events: used to calculate mu - uint32_t m_ninteractions; - }; - - inline TriggerMenu::TriggerMenu(uint32_t smk) : - std::map<std::string,TriggerCount>(), m_smk(smk), m_count(0), m_ninteractions(0) { - } - - inline void TriggerMenu::addEvent(uint32_t nint) { - m_count++; // Increment the number of events - m_ninteractions+=nint; // Add the number of interactions - } - - inline void TriggerMenu::addTrigger(const TriggerCount &tcount) { - (*this)[tcount.name()]=tcount; - } - - inline float TriggerMenu::mu(void) const { - return static_cast<float>(m_ninteractions)/static_cast<float>(m_count); - } - -} // end namespace - - -/** - * @class TrigCountDumper - * Simple Athena algorithm which will dump the trigger counts into suitable formats. - * - * @author Roger Moore <rwmoore@ualberta.ca> - University of Alberta, Canada - */ -class TrigCountDumper : public AthAlgorithm { - public: - /** Standard algorithm constructor. - */ - TrigCountDumper(const std::string &name, ISvcLocator *pSvcLocator); - /** Standard algorithm destructor. - */ - ~TrigCountDumper(void); - /** Initializes the count dump algoritm from the job options. - This method sets up the configuration options of the dump algorithm, such as the - type of output to generate and the file to store it in etc. - */ - StatusCode initialize(void); - /** Called by Athena once per event to execute the dumper on the current event. - This method is called once per event and collects the trigger counts for that single - event. These are then stored within the class instance. - */ - StatusCode execute(); - /** Called by Athena once all the events have been processed to output the stored counts. - This method is executed at the end of a run and will write out the stored counts using the - configured format to the configured location. - */ - StatusCode finalize(); - private: - /// Handle to access the trigger decision tool - ToolHandle<Trig::TrigDecisionTool> m_trigDec; - /// The trigger configuration service to get the information from - ServiceHandle< TrigConf::ITrigConfigSvc > m_configSvc; - /// Type definition for the menu map - typedef std::map<uint32_t,trigcount::TriggerMenu> MenuMap_t; - /// Map of super master keys to trigger menus - MenuMap_t m_menu; - /// Name of output file - std::string m_ofname; - /// Name of event info - std::string m_eventInfoName; - /// Release name - std::string m_release; - /// Dataset name - std::string m_dataset; - /// Dataset labels - std::vector<std::string> m_labels; -}; - -inline TrigCountDumper::~TrigCountDumper(void) { -} - -#endif diff --git a/Trigger/TrigValidation/TrigValAlgs/src/TrigSlimValAlg.cxx b/Trigger/TrigValidation/TrigValAlgs/src/TrigSlimValAlg.cxx deleted file mode 100644 index 258d116d900..00000000000 --- a/Trigger/TrigValidation/TrigValAlgs/src/TrigSlimValAlg.cxx +++ /dev/null @@ -1,285 +0,0 @@ -/* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrigNavigation/Navigation.h" - -#include "TrigSlimValAlg.h" -#include "TrigNavTools/getFeatureOccurrences.h" - -TrigSlimValAlg::TrigSlimValAlg(const std::string& name, ISvcLocator *pSvcLocator) : - AthAlgorithm(name, pSvcLocator), - m_trigDecisionTool("Trig::TrigDecisionTool/TrigDecisionTool"), - m_eventSeen(0) -{ - - declareProperty("TrigDecisionTool", m_trigDecisionTool); - -} - -StatusCode TrigSlimValAlg::initialize() { - - // load the trig decision tool - if( !m_trigDecisionTool.empty() ) { - ATH_CHECK( m_trigDecisionTool.retrieve() ); - } - else { - ATH_MSG_ERROR ("Could not retrive the TrigDecisionTool as it was not specified!" ); - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; - -} - -StatusCode TrigSlimValAlg::clear() { - - return StatusCode::SUCCESS; - -} - -StatusCode TrigSlimValAlg::execute() { - - if(!m_eventSeen) { - // cache groups and streams - m_configuredGroups = m_trigDecisionTool->getListOfGroups(); - m_configuredStreams = m_trigDecisionTool->getListOfStreams(); - m_eventSeen = 1; - } - - // grab the navigation - Trig::ExpertMethods *navAccess = m_trigDecisionTool->ExperimentalAndExpertMethods(); - navAccess->enable(); - const HLT::NavigationCore *cnav = navAccess->getNavigation(); - HLT::NavigationCore *navigation = const_cast<HLT::NavigationCore*>(cnav); - - if(navigation == 0) { - ATH_MSG_WARNING ("Could not get navigation from Trigger Decision Tool" ); - ATH_MSG_WARNING ("Navigation will not be slimmed in this event" ); - return StatusCode::SUCCESS; - } - - // print the TrigSlimValidation header - ATH_MSG_INFO ("REGTEST " << "======== START of TrigSlimValidation DUMP ========" ); - - // store some needed information from the navigation structure - std::map<std::string, int> featureOccurrences = HLT::TrigNavTools::getFeatureOccurrences(navigation); - TrigSlimValAlg::elementSet *allTriggerElements = this->getAllTriggerElements(navigation); - - // Print the aggregate navigation structure information - - // build the counters - NumberCounter *numberCounter = new NumberCounter(navigation); - IntermediateCounter *intermediateCounter = new IntermediateCounter(navigation); - FeaturelessCounter *featurelessCounter = new FeaturelessCounter(navigation); - GhostCounter *ghostCounter = new GhostCounter(navigation); - RoICounter *roICounter = new RoICounter(navigation); - SeedsRelationCounter *seedsRelationCounter = new SeedsRelationCounter(navigation); - SeededByRelationCounter *seededByRelationCounter = new SeededByRelationCounter(navigation); - SameRoIRelationCounter *sameRoIRelationCounter = new SameRoIRelationCounter(navigation); - FeatureCounter *featureCounter = new FeatureCounter(navigation); - - // build the updaters - SumUpdate *sumUpdate = new SumUpdate(); - MaxUpdate *maxUpdate = new MaxUpdate(); - MinUpdate *minUpdate = new MinUpdate(); - - ATH_MSG_INFO ("REGTEST " << "Number of trigger elements: " - << recursiveCount( navigation, numberCounter, sumUpdate ) ); - ATH_MSG_INFO ("REGTEST " << "Number of distinct features: " - << featureOccurrences.size() ); - ATH_MSG_INFO ("REGTEST " << "Number of intermediate trigger elements: " - << recursiveCount( navigation, intermediateCounter, sumUpdate ) ); - ATH_MSG_INFO ("REGTEST " << "Number of featureless trigger elements: " - << recursiveCount( navigation, featurelessCounter, sumUpdate ) ); - ATH_MSG_INFO ("REGTEST " << "Number of ghost trigger elements: " - << recursiveCount( navigation, ghostCounter, sumUpdate ) ); - ATH_MSG_INFO ("REGTEST " << "Number of RoIs: " - << recursiveCount( navigation, roICounter, sumUpdate ) ); - ATH_MSG_INFO ("REGTEST " << "Longest chain: " - << recursiveCount( navigation, numberCounter, maxUpdate ) ); - ATH_MSG_INFO ("REGTEST " << "Shortest chain: " - << recursiveCount( navigation, numberCounter, minUpdate ) ); - ATH_MSG_INFO ("REGTEST " << "Number of feature links: " - << recursiveCount( navigation, featureCounter, sumUpdate ) ); - ATH_MSG_INFO ("REGTEST " << "Number of seeds relations: " - << recursiveCount( navigation, seedsRelationCounter, sumUpdate ) ); - ATH_MSG_INFO ("REGTEST " << "Number of seeded by relations: " - << recursiveCount( navigation, seededByRelationCounter, sumUpdate ) ); - ATH_MSG_INFO ("REGTEST " << "Number of same RoI relations: " - << recursiveCount( navigation, sameRoIRelationCounter, sumUpdate ) ); - - // delete counters - delete numberCounter; numberCounter = 0; - delete intermediateCounter; intermediateCounter = 0; - delete featurelessCounter; featurelessCounter = 0; - delete ghostCounter; ghostCounter = 0; - delete roICounter; roICounter = 0; - delete seedsRelationCounter; seedsRelationCounter = 0; - delete seededByRelationCounter; seededByRelationCounter = 0; - delete sameRoIRelationCounter; sameRoIRelationCounter = 0; - - // delete the updaters - delete sumUpdate; sumUpdate = 0; - delete maxUpdate; maxUpdate = 0; - delete minUpdate; minUpdate = 0; - - - // print the feature information - for(std::map<std::string, int>::const_iterator iter = featureOccurrences.begin(); - iter != featureOccurrences.end(); ++iter) - ATH_MSG_INFO ("REGTEST " << "Occurrences of feature " << (*iter).first - << ": " << (*iter).second ); - - // print the stream information - - // store elements unassociated with any stream. Note that by changing - // the TriggerElementLessThan class in the headerfile, we can change - // exactly what we mean by "unassociated" - TrigSlimValAlg::elementSet associatedElements; - for(std::vector<std::string>::const_iterator streamIter = m_configuredStreams.begin(); - streamIter != m_configuredStreams.end(); ++streamIter) { - // collect all the elements associated with the stream - TrigSlimValAlg::elementSet *streamElements = - this->getTEsFromChainGroup(m_trigDecisionTool->getChainGroup(std::string("STREAM_") + *streamIter)); - associatedElements.insert(streamElements->begin(), streamElements->end()); - - ATH_MSG_INFO ("REGTEST " << "Elements associated with stream " << *streamIter - << ": " << streamElements->size() ); - - delete streamElements; - - } - - ATH_MSG_INFO ("REGTEST " << "Elements unassociated with any stream: " - << allTriggerElements->size() - associatedElements.size() ); - - // print the group information - // store elements unassociated with any group. Note that by changing - // the TriggerElementLessThan class in the headerfile, we can change - // exactly what we mean by "unassociated" - associatedElements.clear(); - for(std::vector<std::string>::const_iterator groupIter = m_configuredGroups.begin(); - groupIter != m_configuredGroups.end(); ++groupIter) { - // collect all the elements associated with the group - TrigSlimValAlg::elementSet *groupElements = - this->getTEsFromChainGroup(m_trigDecisionTool->getChainGroup(std::string("GROUP_") + *groupIter)); - associatedElements.insert(groupElements->begin(), groupElements->end()); - - ATH_MSG_INFO ("REGTEST " << "Elements associated with group " << (*groupIter) - << ": " << groupElements->size() ); - - delete groupElements; - - } - - ATH_MSG_INFO ("REGTEST " << "Elements unassociated with any group: " - << allTriggerElements->size() - associatedElements.size() ); - - // clean up and finish - delete allTriggerElements; allTriggerElements = 0; - - // print the TrigSlimValidation footer - ATH_MSG_INFO ("REGTEST " << "======== END of TrigSlimValidation DUMP ========" ); - - return StatusCode::SUCCESS; - -} - -StatusCode TrigSlimValAlg::finalize() { - - return StatusCode::SUCCESS; - -} - -int TrigSlimValAlg::recursiveCount(HLT::NavigationCore *navigation, - TrigSlimValAlg::ElementCounter *ec, - TrigSlimValAlg::CountUpdate *cu, - HLT::TriggerElement *te) { - - if(!ec) - return 0; - - if(!cu) - return 0; - - if(!navigation) - return 0; - - if(!te) - te = navigation->getInitialNode(); - - if(!te) - return 0; - - int count = -1; - for(std::vector<HLT::TriggerElement*>::const_iterator iter = - te->getRelated(HLT::TriggerElement::seedsRelation).begin(); - iter != te->getRelated(HLT::TriggerElement::seedsRelation).end(); ++iter) { - // note we have to be clever to avoid double counting as a node can have more - // than one seeded by relation. To avoid this, ignore the daughter node unless - // you are the first mother node - std::vector<HLT::TriggerElement*> mothers = (*iter)->getRelated(HLT::TriggerElement::seededByRelation); - if(mothers.size() > 0 && mothers[0] == te) - count = cu->update(count, this->recursiveCount( navigation, ec, cu, *iter )); - } - - if(count < 0) - count = 0; - - return count + ec->count(te); - -} - -TrigSlimValAlg::elementSet *TrigSlimValAlg::getAllTriggerElements(HLT::NavigationCore *navigation, HLT::TriggerElement *te) { - - if(!navigation) - return 0; - - if(!te) - te = navigation->getInitialNode(); - - if(!te) - return 0; - - - TrigSlimValAlg::elementSet *tes = new TrigSlimValAlg::elementSet; - - tes->insert(te); - - std::vector<HLT::TriggerElement*> children = te->getRelated(HLT::TriggerElement::seedsRelation); - std::vector<HLT::TriggerElement*>::iterator iter; - for(iter = children.begin(); iter != children.end(); ++iter) { - TrigSlimValAlg::elementSet* tesChildren = this->getAllTriggerElements( navigation, *iter ); - if(!tesChildren) - continue; - // merge the sets - TrigSlimValAlg::elementSet temp; - std::set_union(tes->begin(), tes->end(), - tesChildren->begin(), tesChildren->end(), - std::inserter(temp, temp.begin())); - tes->swap(temp); - - delete tesChildren; tesChildren = 0; - } - - return tes; - -} - -TrigSlimValAlg::elementSet *TrigSlimValAlg::getTEsFromChainGroup(const Trig::ChainGroup *cg) { - - TrigSlimValAlg::elementSet *tes = new TrigSlimValAlg::elementSet; - - std::vector<Trig::Combination> combinations = m_trigDecisionTool->features(cg).getCombinations(); - - for(std::vector<Trig::Combination>::const_iterator iter = combinations.begin(); - iter != combinations.end(); ++iter) { - std::vector<const HLT::TriggerElement*> combTEs = iter->tes(); - tes->insert(combTEs.begin(), combTEs.end()); - } - - return tes; - -} - diff --git a/Trigger/TrigValidation/TrigValAlgs/src/TrigSlimValAlg.h b/Trigger/TrigValidation/TrigValAlgs/src/TrigSlimValAlg.h deleted file mode 100644 index 32504f99fe7..00000000000 --- a/Trigger/TrigValidation/TrigValAlgs/src/TrigSlimValAlg.h +++ /dev/null @@ -1,259 +0,0 @@ -/* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef CLASS_TRIG_SLIM_VALIDATION_H -#define CLASS_TRIG_SLIM_VALIDATION_H - -#include "AthenaBaseComps/AthAlgorithm.h" -#include "GaudiKernel/ToolHandle.h" - -#include "TrigDecisionTool/TrigDecisionTool.h" -#include "TrigNavigation/TriggerElement.h" -#include "AthenaBaseComps/AthAlgorithm.h" -#include <iostream> - -/** - * @brief The TrigSlimValAlg is used in validating the TrigNavigationSlimming - * tools. - * @author Ben Smith <bcsmith@fas.harvard.edu> - Harvard University - * - * This algorithm allows validation of the trigger navigation slimming tools - * in the TrigEvent/TrigNavTools package. The basic idea is to print many of - * the aggregate prorperties of the navigation structure, and compare them to - * the expected results before and after slimming. For example, when removing - * a feature, the other features should be remain unchanged. - * - * In practice, the log files are parsed by a python script: trigslimval.py which - * can be found in the TrigValTools package in the bin directory - */ - -class TrigSlimValAlg : public AthAlgorithm { - - public: - TrigSlimValAlg(const std::string& name, ISvcLocator *pSvcLocator); - ~TrigSlimValAlg() { ; }; - - StatusCode initialize(); - StatusCode clear(); - StatusCode execute(); - StatusCode finalize(); - - /** - * @brief Abstract base class for TriggerElement function objects. - * These are used to count various attributes of the trigger elements - * in the navigation structure - */ - class ElementCounter { - public: - ElementCounter(HLT::NavigationCore* nav) { m_nav = nav; }; - virtual ~ElementCounter() {;}; - virtual int count(const HLT::TriggerElement* /* te */) const = 0; - protected: - HLT::NavigationCore* m_nav; - }; - - /** - * @brief Simply counts the number of elements in the tree - */ - class NumberCounter : public ElementCounter { - public: - NumberCounter(HLT::NavigationCore* nav) : ElementCounter(nav) {;}; - virtual int count(const HLT::TriggerElement* /* te */) const { return 1; }; - }; - - /** - * @brief Counts only intermediate (non-RoI, terminal, or inital) elements - */ - class IntermediateCounter : public ElementCounter { - public: - IntermediateCounter(HLT::NavigationCore* nav) : ElementCounter(nav) {;}; - virtual int count(const HLT::TriggerElement *te) const { - return ( te && m_nav ? !(m_nav->isInitialNode(te) || - m_nav->isRoINode(te) || m_nav->isTerminalNode(te)) : 0 ); - } - - }; - - /** - * @brief Counts only elements with no feature links - */ - class FeaturelessCounter : public ElementCounter { - public: - FeaturelessCounter(HLT::NavigationCore* nav) : ElementCounter(nav) {;}; - int count(const HLT::TriggerElement *te) const { - return ( te ? te->getFeatureAccessHelpers().size() == 0 : 0 ); - } - }; - - /** - * @brief Counts only elements which are marked as ghosts - */ - class GhostCounter : public ElementCounter { - public: - GhostCounter(HLT::NavigationCore* nav) : ElementCounter(nav) {;}; - int count(const HLT::TriggerElement *te) const { - return ( te ? te->ghost() : 0 ); - } - }; - - /** - * @brief Counts only elements which are RoI elements - */ - class RoICounter : public ElementCounter { - public: - RoICounter(HLT::NavigationCore* nav) : ElementCounter(nav) {;}; - int count(const HLT::TriggerElement *te) const { - return ( te && m_nav ? m_nav->isRoINode(te) : 0 ); - } - }; - - /** - * @brief Counts the number of seeds relations in all the elements - */ - class SeedsRelationCounter : public ElementCounter { - public: - SeedsRelationCounter(HLT::NavigationCore* nav) : ElementCounter(nav) {;}; - int count(const HLT::TriggerElement *te) const { - return ( te ? te->getRelated( HLT::TriggerElement::seedsRelation ).size() : 0 ); - } - }; - - /** - * @brief Counts the number of seededBy relations in all the elements - */ - class SeededByRelationCounter : public ElementCounter { - public: - SeededByRelationCounter(HLT::NavigationCore* nav) : ElementCounter(nav) {;}; - int count(const HLT::TriggerElement *te) const { - return ( te ? te->getRelated( HLT::TriggerElement::seededByRelation ).size() : 0 ); - } - }; - - /** - * @brief Counts the number of same RoI relations in all the elements - */ - class SameRoIRelationCounter : public ElementCounter { - public: - SameRoIRelationCounter(HLT::NavigationCore* nav) : ElementCounter(nav) {;}; - int count(const HLT::TriggerElement *te) const { - return ( te ? te->getRelated( HLT::TriggerElement::sameRoIRelation ).size() : 0 ); - } - }; - - /** - * @brief Counts the number of feature links in all the elements - */ - class FeatureCounter : public ElementCounter { - public: - FeatureCounter(HLT::NavigationCore* nav) : ElementCounter(nav) {;}; - int count(const HLT::TriggerElement *te) const { - return ( te ? te->getFeatureAccessHelpers().size() : 0 ); - } - }; - - /** - * @brief Update function objects - used by the recursive counting program. By cominging - * these with the ElementCounter objects, you can count whatever you want in the tree - */ - class CountUpdate { - public: - CountUpdate() {;}; - virtual ~CountUpdate() {;}; - virtual int update(const int orig, const int val) const = 0; - }; - - /** - * @brief The SumUpdate class is used when you wish to compile the sum of all occurrences. - * For example: when counting all the trigger elements in the structure. - */ - class SumUpdate : public CountUpdate { - public: - SumUpdate() : CountUpdate() {;}; - int update(const int orig, const int val) const { - return ( orig < 0 ? val : orig + val ); - } - }; - - /** - * @brief The MinUpdate class is used when you wish to find the minimum value of something - * in the tree. For example, when generating the shrtest branch. - */ - class MinUpdate : public CountUpdate { - public: - MinUpdate() : CountUpdate() {;}; - int update(const int orig, const int val) const { - return ( orig <= 0 || val < orig ? val : orig ); - } - }; - - /** - * @brief The MaxUpdate class is used when you wish to find the maximum value of something - * in the tree. For example, when generating the longest branch. - */ - class MaxUpdate : public CountUpdate { - public: - MaxUpdate() : CountUpdate() {;}; - int update(const int orig, const int val) const { - return ( val > orig ? val : orig ); - } - }; - - /** - * @brief Defines equivalence of Trigger Elements. When they have the same id, they - * represent the same threshold in the trigger decision chain (but possibly in - * different RoI's, etc.) - */ - class TriggerElementCompare { - public: - TriggerElementCompare(unsigned int id) : m_id(id) { ; }; - bool operator()(const HLT::TriggerElement *te) { - return te && te->getId() == m_id; - } - private: - unsigned int m_id; - }; - - /** - * @brief defines ordering of Trigger Elements to be used for set ordering. - */ - class TriggerElementLessThan { - public: - TriggerElementLessThan() {;}; - bool operator()(const HLT::TriggerElement *te1, const HLT::TriggerElement *te2) const { - return te1 < te2; - } - }; - - typedef std::set< const HLT::TriggerElement*, TrigSlimValAlg::TriggerElementLessThan > elementSet; - - private: - - // private functions - /** - * @brief Basic counting function. This recursively searches the tree and computes - * the value of the Elementcount on each trigger element in the tree. To combine - * two values, it uses the CountUpdate function object. - */ - int recursiveCount(HLT::NavigationCore *nav, ElementCounter *ec, CountUpdate *cu, HLT::TriggerElement *te = 0); - - /** - * @brief Returns a set of all the trigger elements in the navigation structure. - */ - TrigSlimValAlg::elementSet *getAllTriggerElements(HLT::NavigationCore* nav, HLT::TriggerElement *te = 0); - - /** - * @brief Returns a set of the trigger elements associated with the chain group - */ - TrigSlimValAlg::elementSet *getTEsFromChainGroup(const Trig::ChainGroup* cg); - - // tools - ToolHandle<Trig::TrigDecisionTool> m_trigDecisionTool; //<! TrigDecisionTool - - // internal data - std::vector<std::string> m_configuredGroups; //<! cache group->chain map - std::vector<std::string> m_configuredStreams;//<! cache stream->chain map - int m_eventSeen; //<! used to initialize variables that need to have an event loaded -}; - -#endif diff --git a/Trigger/TrigValidation/TrigValAlgs/src/components/TrigValAlgs_entries.cxx b/Trigger/TrigValidation/TrigValAlgs/src/components/TrigValAlgs_entries.cxx index d7cf34d443b..60fc95a7014 100644 --- a/Trigger/TrigValidation/TrigValAlgs/src/components/TrigValAlgs_entries.cxx +++ b/Trigger/TrigValidation/TrigValAlgs/src/components/TrigValAlgs_entries.cxx @@ -1,11 +1,7 @@ -#include "../TrigCountDumper.h" #include "../TrigDecisionChecker.h" #include "../TrigEDMChecker.h" #include "../TrigEDMAuxChecker.h" -#include "../TrigSlimValAlg.h" -DECLARE_COMPONENT( TrigCountDumper ) DECLARE_COMPONENT( TrigDecisionChecker ) DECLARE_COMPONENT( TrigEDMChecker ) DECLARE_COMPONENT( TrigEDMAuxChecker ) -DECLARE_COMPONENT( TrigSlimValAlg ) -- GitLab From f68fbd8eab98845e726f9a17fd98fb56b187b327 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Fri, 24 Jul 2020 12:59:26 +0200 Subject: [PATCH 185/459] TrigP1Test: cmake cleanup, change flake8 config Cleanup cmake configuration and use the default flake8 configuration for checking. Add missing copyrights to ART tests. --- Trigger/TrigValidation/TrigP1Test/CMakeLists.txt | 15 +++------------ .../TrigP1Test/test/test_trigP1_ALFA_build.py | 1 + .../test/test_trigP1_ALFA_forkAndMT_build.py | 1 + .../TrigP1Test/test/test_trigP1_BeamSpot_build.py | 1 + .../TrigP1Test/test/test_trigP1_CalibPeb_build.py | 1 + .../test/test_trigP1_CalibPeb_concurrent_build.py | 1 + .../test/test_trigP1_CalibPeb_concurrent_grid.py | 1 + .../test_trigP1_CalibPeb_highForkAndMT_build.py | 1 + .../test/test_trigP1_EmptyMenu_build.py | 1 + .../test/test_trigP1_EmptyMenu_forkAndMT_build.py | 1 + .../test_trigP1_HelloWorld_OHMonitoring_build.py | 1 + .../test/test_trigP1_HelloWorld_build.py | 1 + .../test_trigP1_HelloWorld_forkAndMT_build.py | 1 + .../test_trigP1_HelloWorld_runStopRun_build.py | 1 + .../TrigP1Test/test/test_trigP1_PEB_DS_build.py | 1 + .../TrigP1Test/test/test_trigP1_timeout_build.py | 1 + .../test/test_trigP1_v1Cosmic_ID_build.py | 1 + .../TrigP1Test/test/test_trigP1_v1Cosmic_build.py | 1 + .../test/test_trigP1_v1Cosmic_muons_build.py | 1 + .../TrigP1Test/test/test_trigP1_v1Dev_build.py | 1 + .../test_trigP1_v1Dev_configConsistency_build.py | 1 + .../test/test_trigP1_v1Dev_decodeBS_build.py | 1 + .../test/test_trigP1_v1Dev_decodeBS_grid.py | 1 + .../test/test_trigP1_v1Dev_dumpConfig_build.py | 1 + .../test/test_trigP1_v1Dev_fork_build.py | 1 + .../TrigP1Test/test/test_trigP1_v1Dev_grid.py | 1 + .../test/test_trigP1_v1Dev_missingROBs_build.py | 1 + .../test/test_trigP1_v1Dev_preload_build.py | 1 + .../test/test_trigP1_v1PhysP1_T0MonTrf_build.py | 1 + .../test/test_trigP1_v1PhysP1_T0Mon_build.py | 1 + .../test/test_trigP1_v1PhysP1_T0Mon_grid.py | 1 + .../TrigP1Test/test/test_trigP1_v1PhysP1_build.py | 1 + .../test/test_trigP1_v1PhysP1_dumpConfig_build.py | 1 + .../TrigP1Test/test/test_trigP1_v1PhysP1_grid.py | 1 + .../test_trigP1_v1PhysP1_magFieldToggle_build.py | 1 + .../test/test_trigP1_v1PhysP1_preload_build.py | 1 + .../test_trigP1_v1PhysP1_runRuleBook_build.py | 1 + .../test/test_trigP1_v1PhysP1_runStopRun_build.py | 1 + .../test/test_trigP1_v1Phys_ROSRate_build.py | 1 + 39 files changed, 41 insertions(+), 12 deletions(-) diff --git a/Trigger/TrigValidation/TrigP1Test/CMakeLists.txt b/Trigger/TrigValidation/TrigP1Test/CMakeLists.txt index f3d41bf2b51..ad965b2259c 100644 --- a/Trigger/TrigValidation/TrigP1Test/CMakeLists.txt +++ b/Trigger/TrigValidation/TrigP1Test/CMakeLists.txt @@ -1,26 +1,17 @@ -################################################################################ -# Package: TrigP1Test -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( TrigP1Test ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Trigger/TrigValidation/TrigValTools ) - # Install files from the package: atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) +atlas_install_scripts( bin/*.py test/test*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) +atlas_install_scripts( bin/*.sh test/test*.sh ) atlas_install_joboptions( share/*.py ) atlas_install_data( share/*.ref ) atlas_install_runtime( Testing/*.trans Testing/*.conf ) -atlas_install_scripts( bin/*.py bin/*.sh test/test*.sh test/test*.py) # Unit tests: -atlas_add_test( flake8_test_dir - SCRIPT flake8 --select=ATL,F,E7,E9,W6 --enable-extension=ATL900,ATL901 ${CMAKE_CURRENT_SOURCE_DIR}/test - POST_EXEC_SCRIPT nopost.sh ) - atlas_add_test( TrigValSteeringUT SCRIPT trigvalsteering-unit-tester.py ${CMAKE_CURRENT_SOURCE_DIR}/test PROPERTIES TIMEOUT 300 diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_ALFA_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_ALFA_build.py index a7bcf00bd13..68f5bb00d04 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_ALFA_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_ALFA_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Test running on ALFACalib data with ALFA ROB Monitor enabled # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_ALFA_forkAndMT_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_ALFA_forkAndMT_build.py index 423434064b1..37bc980259a 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_ALFA_forkAndMT_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_ALFA_forkAndMT_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Test running on ALFACalib data with ALFA ROB Monitor enabled, 2 forks, 3 slots, 6 threads # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_BeamSpot_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_BeamSpot_build.py index c284f534bde..6db723a9fdb 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_BeamSpot_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_BeamSpot_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # # art-description: BeamSpot update test using athenaHLT # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_build.py index 5b0ccc15fa8..ef2f68566de 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Events processed by hardcoded chains with data requests, accepted randomly and sent to Full Event build, PEB and DS streams in athenaHLT # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_concurrent_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_concurrent_build.py index 1043e78e28a..bcdf27af205 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_concurrent_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_concurrent_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: CalibPeb test where chains are executed in parallel doing concurrent ROB requests # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_concurrent_grid.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_concurrent_grid.py index ffa5df4a1f5..4a009eb72b4 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_concurrent_grid.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_concurrent_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: CalibPeb test where chains are executed in parallel doing concurrent ROB requests # art-type: grid diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_highForkAndMT_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_highForkAndMT_build.py index 37815facdd1..772cec10d01 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_highForkAndMT_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_CalibPeb_highForkAndMT_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: CalibPeb test with forks=4, threads=6, concurrent_events=3 # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_build.py index 2f5ef52bb2e..9395ca795e5 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Same as empty_menu test from TrigUpgradeTest, but with athenaHLT # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_forkAndMT_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_forkAndMT_build.py index 05063ed8a01..c4b661afc69 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_forkAndMT_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_EmptyMenu_forkAndMT_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: EmptyMenu test with forks=2, threads=2, concurrent_events=2 # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_OHMonitoring_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_OHMonitoring_build.py index ae8a5a6cf96..9b9c52b2d91 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_OHMonitoring_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_OHMonitoring_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: HelloWorld in athenaHLT with OH monitoring # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_build.py index 784570e5278..fbf9e99b5db 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: HelloWorld in athenaHLT # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_forkAndMT_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_forkAndMT_build.py index de7ca294faf..0d034bd2bc6 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_forkAndMT_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_forkAndMT_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: HelloWorld test with forks=2, threads=2, concurrent_events=2 # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_runStopRun_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_runStopRun_build.py index b6a0761e32d..3fe241d111b 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_runStopRun_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_HelloWorld_runStopRun_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: HelloWorld test with start/stop/start transition # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_PEB_DS_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_PEB_DS_build.py index 680afeaccb3..354111f9957 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_PEB_DS_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_PEB_DS_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: athenaHLT test of partial event building and data scouting # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_timeout_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_timeout_build.py index afe5645fac6..027e3ce34ab 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_timeout_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_timeout_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: athenaHLT test of timeout handling # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_ID_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_ID_build.py index 932a2cb0181..ba8e9591fe2 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_ID_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_ID_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger athenaHLT test of the Cosmic_run3_v1 menu on physics_IDCosmic stream from a cosmic run # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_build.py index ea41f1ea2cd..92b63a80980 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger athenaHLT test of the Cosmic_run3_v1 menu on physics_Main stream from a cosmic run # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_muons_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_muons_build.py index da9d465200d..9f049ba31de 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_muons_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Cosmic_muons_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger athenaHLT test of the Cosmic_run3_v1 menu on physics_CosmicMuons stream from a cosmic run # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_build.py index 776d92bb742..1754feb1a22 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: athenaHLT test of the Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_configConsistency_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_configConsistency_build.py index 92fc4e3b767..76a5355a30c 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_configConsistency_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_configConsistency_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Compare athenaHLT configuration with Dev_pp_run3_v1 menu and different threads/slots/forks settings # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_build.py index 4489ac5f200..f197cf8f7c2 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Runs athenaHLT writing BS output and then runs BS decoding # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_grid.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_grid.py index f1f9c485be5..d8fab1bab1d 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_grid.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_decodeBS_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Runs athenaHLT writing BS output and then runs BS decoding # art-type: grid diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_dumpConfig_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_dumpConfig_build.py index cce0421fa70..3dd78793426 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_dumpConfig_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_dumpConfig_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: athenaHLT test of the Dev_pp_run3_v1 menu only dumping options for SMK generation # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_fork_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_fork_build.py index 7083b85e813..fa8e5a4a335 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_fork_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_fork_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: athenaHLT test of the Dev_pp_run3_v1 menu with multiple forks # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_grid.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_grid.py index 0089fd13468..14b4dbf01e7 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_grid.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: athenaHLT test of the Dev_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_missingROBs_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_missingROBs_build.py index b29909a313c..5445f3cf2fd 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_missingROBs_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_missingROBs_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: athenaHLT test of the Dev_pp_run3_v1 menu with detector ROBs removed # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_preload_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_preload_build.py index b4e2ff56647..77d05c959d5 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_preload_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Dev_preload_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # # art-description: athenaHLT test of the Dev_pp_run3_v1 menu imitating partition with preloaded data at P1 # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0MonTrf_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0MonTrf_build.py index 04016eb6d23..a854bae5cc8 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0MonTrf_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0MonTrf_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: transform test of BSRDOtoRAW + T0Reco + T0Mon, using v1PhysP1 menu # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_build.py index 3476762f7c1..b0c9cd51279 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Test of P1+Tier0 workflow, runs athenaHLT with PhysicsP1_pp_run3_v1 menu followed by offline reco and monitoring # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_grid.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_grid.py index 8f25ae29f4c..f45e1fb9c57 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_grid.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_T0Mon_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Test of P1+Tier0 workflow, runs athenaHLT with PhysicsP1_pp_run3_v1 menu followed by offline reco and monitoring # art-type: grid diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_build.py index 913e30b28de..65786fd79c0 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger athenaHLT test of the PhysicsP1_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_dumpConfig_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_dumpConfig_build.py index 7dc69273f86..45c3acf50a0 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_dumpConfig_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_dumpConfig_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: PhysicsP1_pp_run3_v1 menu test only dumping options for SMK generation # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_grid.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_grid.py index 6ab24f94c87..fd50eeff1f3 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_grid.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger athenaHLT test of the PhysicsP1_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_magFieldToggle_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_magFieldToggle_build.py index 4b0cc5549ac..30ab6489c34 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_magFieldToggle_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_magFieldToggle_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: magnetic field toggle (on->off->on) test with PhysicsP1_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_preload_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_preload_build.py index 1a95bd463b3..ec9ac29df00 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_preload_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_preload_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # # art-description: PhysicsP1_pp_run3_v1 menu athenaHLT test imitating partition with preloaded data at P1 # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_runRuleBook_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_runRuleBook_build.py index 18eaf7c6489..c4219558974 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_runRuleBook_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_runRuleBook_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: PhysicsP1_pp_run3_v1 menu test only dumping options for SMK generation and running RuleBook to create prescales # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_runStopRun_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_runStopRun_build.py index e587b630172..e8d225401a3 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_runStopRun_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1PhysP1_runStopRun_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: start/stop/start transition test with PhysicsP1_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Phys_ROSRate_build.py b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Phys_ROSRate_build.py index 0498ee8d70a..f16bee8fc79 100755 --- a/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Phys_ROSRate_build.py +++ b/Trigger/TrigValidation/TrigP1Test/test/test_trigP1_v1Phys_ROSRate_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger athenaHLT test for ROS rates estimate with the Physics_pp_run3_v1 menu # art-type: build -- GitLab From a435b2ff5757359c572c89f33498aed3a6eb4c9a Mon Sep 17 00:00:00 2001 From: Dan Guest <dguest@cern.ch> Date: Mon, 27 Jul 2020 13:31:18 +0200 Subject: [PATCH 186/459] Use unique_ptr<T> rather than T in write handle vector --- .../python/FtagRun3DerivationConfig.py | 4 +++- .../BTagging/BTagging/BTagHighLevelAugmenterAlg.h | 6 +++++- .../JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx | 8 ++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/FtagRun3DerivationConfig.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/FtagRun3DerivationConfig.py index f8c51c52203..de597894057 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/FtagRun3DerivationConfig.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/FtagRun3DerivationConfig.py @@ -3,11 +3,12 @@ from AthenaCommon.CFElements import findAllAlgorithms from AthenaCommon.AthenaCommonFlags import jobproperties as jps +from GaudiKernel.Configurable import WARNING -def FtagJetCollection(jetcol, seq): +def FtagJetCollection(jetcol, seq, OutputLevel=WARNING): jetcol_name_without_Jets = jetcol.replace('Jets','') @@ -99,6 +100,7 @@ def FtagJetCollection(jetcol, seq): options['JetLinkName'] = options['BTaggingCollectionName'] + '.jetLink' options['BTagTrackToJetAssociatorName'] = 'BTagTrackToJetAssociator' options['name'] = ( 'BTagging_'+jetcol_name_without_Jets+ '_Augment').lower() + options['OutputLevel'] = OutputLevel acc.addEventAlgo(Analysis__BTagHighLevelAugmenterAlg(**options)) diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagHighLevelAugmenterAlg.h b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagHighLevelAugmenterAlg.h index a9abf708adc..1b1d75a873a 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagHighLevelAugmenterAlg.h +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/BTagging/BTagHighLevelAugmenterAlg.h @@ -41,7 +41,11 @@ namespace Analysis { // Decorator keys will be created at run-time to conform to the // correct container name. - std::vector<SG::WriteDecorHandleKey<xAOD::BTaggingContainer>> m_write_handles; + std::vector< + std::unique_ptr< + SG::WriteDecorHandleKey<xAOD::BTaggingContainer> + > + > m_write_handles; }; } #endif diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx index b8fd5622087..7f51c85f144 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagHighLevelAugmenterAlg.cxx @@ -40,11 +40,11 @@ namespace Analysis { for (const std::string& key: m_aug->getDecoratorKeys()) { std::string full_key = m_BTagCollectionName.key() + "." + key; ATH_MSG_DEBUG("Adding " << full_key); - SG::WriteDecorHandleKey<xAOD::BTaggingContainer> handle{ - this, key, full_key, ""}; - m_write_handles.push_back(handle); + m_write_handles.emplace_back( + std::make_unique<SG::WriteDecorHandleKey<xAOD::BTaggingContainer>>( + this, key, full_key, "")); ATH_MSG_DEBUG("Initializing " << full_key); - ATH_CHECK(m_write_handles.back().initialize()); + ATH_CHECK(m_write_handles.back()->initialize()); } return StatusCode::SUCCESS; } -- GitLab From 0c430110f9c3cb578f818fb080f810ef63105ca9 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Fri, 24 Jul 2020 14:25:31 +0200 Subject: [PATCH 187/459] TriggerTest: Some cleanup - move checklogTriggerTest.conf to share/ (ATR-20090) - add copyrights - use default flake8 configuration --- Trigger/TrigValidation/TriggerTest/CMakeLists.txt | 13 ++++--------- .../{Testing => share}/checklogTriggerTest.conf | 0 .../TriggerTest/test/test_trig_data_newJO_build.py | 1 + .../test/test_trig_data_v1Cosmic_build.py | 1 + .../test/test_trig_data_v1Cosmic_grid.py | 1 + .../test/test_trig_data_v1Dev_MT_build.py | 1 + .../TriggerTest/test/test_trig_data_v1Dev_build.py | 1 + .../test/test_trig_data_v1Dev_emptyMenu_build.py | 1 + .../TriggerTest/test/test_trig_data_v1Dev_grid.py | 1 + .../test/test_trig_data_v1Dev_reverseViews_build.py | 1 + .../test/test_trig_data_v1Dev_slice_bjet_build.py | 1 + .../test_trig_data_v1Dev_slice_bphysics_build.py | 1 + .../test/test_trig_data_v1Dev_slice_egamma_build.py | 1 + .../test/test_trig_data_v1Dev_slice_jet_build.py | 1 + .../test/test_trig_data_v1Dev_slice_met_build.py | 1 + .../test/test_trig_data_v1Dev_slice_muon_build.py | 1 + .../test/test_trig_data_v1Dev_slice_tau_build.py | 1 + .../test/test_trig_data_v1Dev_writeBS_build.py | 1 + .../test/test_trig_data_v1Dev_writeBS_grid.py | 1 + .../TriggerTest/test/test_trig_data_v1MC_build.py | 1 + .../TriggerTest/test/test_trig_data_v1MC_grid.py | 1 + .../test/test_trig_data_v7Primaries_build.py | 1 + .../test/test_trig_data_v7Primaries_grid.py | 1 + .../TriggerTest/test/test_trig_mc_hi_v4MC_build.py | 1 + .../TriggerTest/test/test_trig_mc_hi_v4MC_grid.py | 1 + .../test/test_trig_mc_hi_v4Phys_build.py | 1 + .../TriggerTest/test/test_trig_mc_hi_v4Phys_grid.py | 1 + .../TriggerTest/test/test_trig_mc_v1Cosmic_build.py | 1 + .../TriggerTest/test/test_trig_mc_v1Cosmic_grid.py | 1 + .../test/test_trig_mc_v1Dev_L1SimOnly_build.py | 1 + .../test_trig_mc_v1Dev_L1SimOnly_phase1_build.py | 1 + .../TriggerTest/test/test_trig_mc_v1Dev_MT_build.py | 1 + .../TriggerTest/test/test_trig_mc_v1Dev_build.py | 1 + .../test/test_trig_mc_v1Dev_deps_build.py | 1 + .../TriggerTest/test/test_trig_mc_v1Dev_grid.py | 1 + .../test/test_trig_mc_v1Dev_pu80_build.py | 1 + .../test/test_trig_mc_v1Dev_pu80_grid.py | 1 + .../test/test_trig_mc_v1Dev_slice_bjet_build.py | 1 + .../test/test_trig_mc_v1Dev_slice_bjet_grid.py | 1 + .../test/test_trig_mc_v1Dev_slice_bphysics_build.py | 1 + .../test/test_trig_mc_v1Dev_slice_bphysics_grid.py | 1 + .../test_trig_mc_v1Dev_slice_bphysicsexo_build.py | 1 + .../test_trig_mc_v1Dev_slice_bphysicsexo_grid.py | 1 + .../test/test_trig_mc_v1Dev_slice_egamma_build.py | 1 + .../test/test_trig_mc_v1Dev_slice_egamma_grid.py | 1 + .../test/test_trig_mc_v1Dev_slice_jet_build.py | 1 + .../test/test_trig_mc_v1Dev_slice_jet_grid.py | 1 + .../test/test_trig_mc_v1Dev_slice_met_build.py | 1 + .../test/test_trig_mc_v1Dev_slice_met_grid.py | 1 + .../test/test_trig_mc_v1Dev_slice_minbias_build.py | 1 + .../test/test_trig_mc_v1Dev_slice_minbias_grid.py | 1 + .../test/test_trig_mc_v1Dev_slice_muonNSW_build.py | 1 + .../test/test_trig_mc_v1Dev_slice_muonNSW_grid.py | 1 + .../test/test_trig_mc_v1Dev_slice_muon_build.py | 1 + .../test/test_trig_mc_v1Dev_slice_muon_grid.py | 1 + ...est_trig_mc_v1Dev_slice_reproducibility_build.py | 1 + .../test/test_trig_mc_v1Dev_slice_tau_build.py | 1 + .../test/test_trig_mc_v1Dev_slice_tau_grid.py | 1 + .../test/test_trig_mc_v1Dev_writeBS_build.py | 1 + .../test/test_trig_mc_v1Dev_writeBS_grid.py | 1 + .../TriggerTest/test/test_trig_mc_v1MC_build.py | 1 + .../TriggerTest/test/test_trig_mc_v1MC_grid.py | 1 + .../TriggerTest/test/test_trig_mc_v1PhysP1_build.py | 1 + .../TriggerTest/test/test_trig_mc_v1PhysP1_grid.py | 1 + .../TriggerTest/test/test_trig_mc_v1Phys_build.py | 1 + .../TriggerTest/test/test_trig_mc_v1Phys_grid.py | 1 + .../test/test_trig_mc_v7Primaries_aod_grid.py | 1 + .../test/test_trig_mc_v7Primaries_build.py | 1 + .../test/test_trig_mc_v7Primaries_grid.py | 1 + 69 files changed, 71 insertions(+), 9 deletions(-) rename Trigger/TrigValidation/TriggerTest/{Testing => share}/checklogTriggerTest.conf (100%) diff --git a/Trigger/TrigValidation/TriggerTest/CMakeLists.txt b/Trigger/TrigValidation/TriggerTest/CMakeLists.txt index 0413d4b6df2..247e21f06c0 100644 --- a/Trigger/TrigValidation/TriggerTest/CMakeLists.txt +++ b/Trigger/TrigValidation/TriggerTest/CMakeLists.txt @@ -1,21 +1,16 @@ -################################################################################ -# Package: TriggerTest -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( TriggerTest ) # Install files from the package: -atlas_install_joboptions( share/*.py ) -atlas_install_runtime( share/*.cxx Testing/*.conf ) +atlas_install_scripts( test/test*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) atlas_install_scripts( test/exec*.sh test/test*.sh test/test*.py ) +atlas_install_joboptions( share/*.py ) +atlas_install_runtime( share/*.conf ) atlas_install_data( share/*.ref ) # Unit tests: -atlas_add_test( flake8_test_dir - SCRIPT flake8 --select=ATL,F,E7,E9,W6 --enable-extension=ATL900,ATL901 ${CMAKE_CURRENT_SOURCE_DIR}/test - POST_EXEC_SCRIPT nopost.sh ) - atlas_add_test( TrigValSteeringUT SCRIPT trigvalsteering-unit-tester.py ${CMAKE_CURRENT_SOURCE_DIR}/test PROPERTIES TIMEOUT 300 diff --git a/Trigger/TrigValidation/TriggerTest/Testing/checklogTriggerTest.conf b/Trigger/TrigValidation/TriggerTest/share/checklogTriggerTest.conf similarity index 100% rename from Trigger/TrigValidation/TriggerTest/Testing/checklogTriggerTest.conf rename to Trigger/TrigValidation/TriggerTest/share/checklogTriggerTest.conf diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_newJO_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_newJO_build.py index 0b927d288a0..3004d1fe59e 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_newJO_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_newJO_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger AthenaMT test running new-style job options # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_build.py index 33cd7d2f283..d4ecb7b4238 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger BS->RDO_TRIG athena test of the Cosmic_run3_v1 menu on physics_Main stream from a cosmic run # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_grid.py index 0722a3d5e3b..a2dc68ddfab 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Cosmic_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger BS->RDO_TRIG athena test of the Cosmic_run3_v1 menu on physics_Main stream from a cosmic run # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_MT_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_MT_build.py index 7aaeba65e3b..ca120bbcdcc 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_MT_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_MT_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger BS->RDO_TRIG athena test of the Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_build.py index 294ddd65343..04ba3739ca8 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger BS->RDO_TRIG athena test of the Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_emptyMenu_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_emptyMenu_build.py index 6615674ef96..23b89521676 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_emptyMenu_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_emptyMenu_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger BS->RDO_TRIG athena test without any HLT chains # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_grid.py index 67ddf05b75d..4db9cb3fe55 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger BS->RDO_TRIG athena test of the Dev_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_reverseViews_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_reverseViews_build.py index 107fea469e8..5742c5c1662 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_reverseViews_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_reverseViews_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Test with reversed order of views to check their independence # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bjet_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bjet_build.py index 345f6483cb3..5aea0fddc7c 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bjet_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bjet_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the b-jet slice in Dev_pp_run3_v1 menu, data input # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bphysics_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bphysics_build.py index bdec5316229..be43cce591f 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bphysics_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bphysics_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the b-physics slice in Dev_pp_run3_v1 menu (data input) # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_egamma_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_egamma_build.py index e8e023dd237..80895d00b2e 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_egamma_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_egamma_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the egamma slice in Dev_pp_run3_v1 menu, data input # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_jet_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_jet_build.py index 7147773b19b..3b71e790574 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_jet_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_jet_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the jet slice in Dev_pp_run3_v1 menu, data input # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_met_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_met_build.py index b7c22402aab..7f30c9970cd 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_met_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_met_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the MET slice in Dev_pp_run3_v1 menu, data input # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_muon_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_muon_build.py index 297e391b43e..923e2f4eed5 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_muon_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_muon_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the muon slice in Dev_pp_run3_v1 menu, data input # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_tau_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_tau_build.py index aa96db56ab5..b256e2aa2bd 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_tau_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_tau_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the tau slice in Dev_pp_run3_v1 menu, data input # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_build.py index c121c72fa44..c300374251c 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger BS->BS athena test of the Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_grid.py index a680494e22d..9ab96a83a24 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_writeBS_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger BS->BS athena test of the Dev_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1MC_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1MC_build.py index 4e6af714592..b75978ececb 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1MC_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1MC_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger BS->RDO_TRIG athena test of the MC_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1MC_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1MC_grid.py index d0966c5dacf..38848c12a6a 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1MC_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1MC_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger BS->RDO_TRIG athena test of the MC_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v7Primaries_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v7Primaries_build.py index 49a68912b96..aaacfd11801 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v7Primaries_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v7Primaries_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Legacy trigger test on data with v7 primaries menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v7Primaries_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v7Primaries_grid.py index 018769d95c5..769b57c5fdf 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v7Primaries_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v7Primaries_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Legacy trigger test on data with v7 primaries menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4MC_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4MC_build.py index cf69dce44b7..153b62c5ea6 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4MC_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4MC_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Legacy trigger test on MC with MC_HI_v4 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4MC_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4MC_grid.py index 03753b3ce78..d0fa95b998d 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4MC_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4MC_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Legacy trigger test on MC with MC_HI_v4 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4Phys_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4Phys_build.py index aa88b2d26b2..82d433952bb 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4Phys_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4Phys_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Legacy trigger test on MC with Physics_HI_v4 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4Phys_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4Phys_grid.py index 1dc33451874..9713e31b029 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4Phys_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_hi_v4Phys_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Legacy trigger test on MC with Physics_HI_v4 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Cosmic_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Cosmic_build.py index 1559309e94b..c3992337170 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Cosmic_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Cosmic_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the Cosmic_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Cosmic_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Cosmic_grid.py index 21bc55c94bd..5a6e11c5361 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Cosmic_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Cosmic_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the Cosmic_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_L1SimOnly_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_L1SimOnly_build.py index d83dfb3691d..9c2ab05e847 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_L1SimOnly_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_L1SimOnly_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test with L1 simulation but without any HLT chains # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_L1SimOnly_phase1_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_L1SimOnly_phase1_build.py index 5a54df9da1d..6acd4e74a86 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_L1SimOnly_phase1_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_L1SimOnly_phase1_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test with L1 simulation with Phase-I path enabled but without any HLT chains # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_MT_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_MT_build.py index a9c95bb8d9c..4ba4e1c2541 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_MT_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_MT_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the Dev_pp_run3_v1 menu with 2 slots and 2 threads # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_build.py index 92d4f2b0bec..0f15010d825 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_deps_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_deps_build.py index 2075544fbae..7e12a14d96b 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_deps_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_deps_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Test with SGInputLoader.FailIfNoProxy=True to check for unmet data dependencies # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_grid.py index 75b567c2cf6..09ef8b0814b 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the Dev_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_pu80_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_pu80_build.py index a37a863fde4..e13bc174a6d 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_pu80_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_pu80_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the Dev_pp_run3_v1 menu with pileup80 ttbar sample # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_pu80_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_pu80_grid.py index d303cf558c6..5c23d0b3f25 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_pu80_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_pu80_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the Dev_pp_run3_v1 menu with pileup80 ttbar sample # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_build.py index d6fca0ae3d6..92c6ac2d765 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the b-jet slice in Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_grid.py index 0001a04c178..763b49ffd07 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the b-jet slice in Dev_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_build.py index 93c54b07d4c..53608efaad3 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the b-physics slice in Dev_pp_run3_v1 menu (Jpsimu6mu6 input) # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_grid.py index 582191dfe89..19500b94eb8 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysics_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the b-physics slice in Dev_pp_run3_v1 menu (Jpsimu6mu6 input) # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_build.py index 7773d8ae810..2046b7f6156 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the b-physics slice in Dev_pp_run3_v1 menu (Wtaunu_3mu input) # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_grid.py index 53b504576d2..7c54eed39c3 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bphysicsexo_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the b-physics slice in Dev_pp_run3_v1 menu (Wtaunu_3mu input) # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_build.py index 2e3e91888e5..4378d00c93c 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the egamma slice in Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_grid.py index 8bc82cd63d8..1731aef42d2 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_egamma_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the egamma slice in Dev_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_build.py index a55912a125c..e93cf030840 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the jet slice in Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_grid.py index ee300d17b55..0e9ca17a8bc 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_jet_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the jet slice in Dev_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_build.py index ce79b125d92..81b7626e7ee 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the MET slice in Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_grid.py index 0efaa639aa6..b43b20cfc03 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_met_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the MET slice in Dev_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_minbias_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_minbias_build.py index 44926072ee5..5c107f173f5 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_minbias_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_minbias_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the minbias slice in Dev_pp_run3_v1 menu (minbias input) # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_minbias_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_minbias_grid.py index 2f888dcfb97..0338530846d 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_minbias_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_minbias_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the b-physics slice in Dev_pp_run3_v1 menu (Jpsimu6mu6 input) # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muonNSW_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muonNSW_build.py index 08a9b826af0..75208ad4195 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muonNSW_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muonNSW_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the muon slice in Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muonNSW_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muonNSW_grid.py index 8a323d77cd4..3427e2366d6 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muonNSW_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muonNSW_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the muon slice in Dev_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_build.py index 7579bdf1286..6856903ba54 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the muon slice in Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_grid.py index f6fbd04348c..2756dc38efb 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_muon_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the muon slice in Dev_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_reproducibility_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_reproducibility_build.py index bb591f83fd2..9c71a5e7bec 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_reproducibility_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_reproducibility_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Compares results of a slice chains when running in full menu and when running alone # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_build.py index 6903a4818a0..58e91c287d6 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the tau slice in Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_grid.py index 55e2533abd0..f87107fb839 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_tau_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the tau slice in Dev_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_build.py index ddadc08033a..43207e7b4cc 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->BS athena test of the Dev_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_grid.py index a80afdf45ec..c8b478b740b 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_writeBS_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->BS athena test of the Dev_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_build.py index 5f49e42321c..8507a24f53f 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the MC_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_grid.py index a90597ef126..07af8bc468f 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1MC_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the MC_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_build.py index fa358776cca..8d2841e78f6 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the PhysicsP1_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_grid.py index 22214f3facf..a950aa8984a 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1PhysP1_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the PhysicsP1_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_build.py index 0ab72dab239..f5b081e4f82 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the Physics_pp_run3_v1 menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_grid.py index dae59693a66..732a19a4b13 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Phys_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Trigger RDO->RDO_TRIG athena test of the Physics_pp_run3_v1 menu # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v7Primaries_aod_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v7Primaries_aod_grid.py index 8375b464b83..68b67f18236 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v7Primaries_aod_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v7Primaries_aod_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Legacy trigger test on MC with v7 primaries menu producing AOD # art-type: grid diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v7Primaries_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v7Primaries_build.py index 62525e42768..4a9469b8ec0 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v7Primaries_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v7Primaries_build.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Legacy trigger test on MC with v7 primaries menu # art-type: build diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v7Primaries_grid.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v7Primaries_grid.py index 5e7bcff7383..673bff72c04 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v7Primaries_grid.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v7Primaries_grid.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # art-description: Legacy trigger test on MC with v7 primaries menu # art-type: grid -- GitLab From 5ecafea2c0876cbf4e957496246ca6f72a95db85 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Mon, 27 Jul 2020 12:33:44 +0100 Subject: [PATCH 188/459] Allow unversioned Aux containers (shallow copied container in particular) --- .../TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx index 0a5bb889663..ad9b631f1e5 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx @@ -98,7 +98,7 @@ StatusCode TriggerEDMSerialiserTool::addCollectionToSerialise(const std::string& ATH_MSG_ERROR( "Can not find CLID for " << transientType << " that is needed for serialisation " << key ); return StatusCode::FAILURE; } - + ATH_MSG_VERBOSE("Decoded transient type: " << transientType << " with the CLID " << clid ); if ( transientType == configuredType ) { std::string realTypeName; if( m_clidSvc->getTypeInfoNameOfID( clid, realTypeName ).isFailure() ) { @@ -106,12 +106,12 @@ StatusCode TriggerEDMSerialiserTool::addCollectionToSerialise(const std::string& return StatusCode::FAILURE; } persistentType = transientType + version( realTypeName ); + ATH_MSG_VERBOSE(transientType << " = "<< configuredType << " thus obtained real type name from clid svc " << realTypeName << " forming persistent type name "<< persistentType ); } else { persistentType = configuredType; } ATH_MSG_DEBUG( "Persistent type: " << persistentType ); - ATH_CHECK( persistentType.find("_") != std::string::npos ); RootType classDesc = RootType::ByNameNoQuiet( persistentType ); if ( ! classDesc.IsComplete() ) { @@ -523,5 +523,7 @@ std::string TriggerEDMSerialiserTool::version( const std::string& name ) const { size_t start = name.find("_"); return name.substr( start, name.find(">") - start ); } - return name.substr( name.find("_") ); + if ( name.find("_") != std::string::npos ) + return name.substr( name.find("_") ); + return ""; } -- GitLab From fb3b999e47a9774513bdaaa09145d300bb656428 Mon Sep 17 00:00:00 2001 From: Julie Kirk <Julie.Kirk@cern.ch> Date: Mon, 27 Jul 2020 14:18:11 +0200 Subject: [PATCH 189/459] quick fix modified: Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_AODtoTrkNtuple.py --- .../share/TrigInDetValidation_AODtoTrkNtuple.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_AODtoTrkNtuple.py b/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_AODtoTrkNtuple.py index cdccd5e14d4..e1fc8bfc1ec 100644 --- a/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_AODtoTrkNtuple.py +++ b/Trigger/TrigValidation/TrigInDetValidation/share/TrigInDetValidation_AODtoTrkNtuple.py @@ -162,8 +162,8 @@ if ( True ) : "HLT_tau.*_idperf.*:HLT_IDTrack_TauCore_FTF", "HLT_tau.*_idperf.*:HLT_IDTrack_TauIso_FTF", - "HLT_tau.*_idperf.*:HLT_IDTrack_TauCore_FTF:HLT_Roi_TauCore", - "HLT_tau.*_idperf.*:HLT_IDTrack_TauIso_FTF:HLT_Roi_TauIso", + "HLT_tau.*_idperf.*:HLT_IDTrack_TauCore_FTF:roi=HLT_Roi_TauCore", + "HLT_tau.*_idperf.*:HLT_IDTrack_TauIso_FTF:roi=HLT_Roi_TauIso", "HLT_tau.*_idperf.*:HLT_IDTrack_Tau_IDTrig", "HLT_tau.*_idperf.*:HLT_IDTrack_Tau_FTF" -- GitLab From 060af3b3ecbc7412c089d1f3a5390336e6bdc045 Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Mon, 27 Jul 2020 14:21:04 +0200 Subject: [PATCH 190/459] Update TaskIterator class to the correct python3 syntax Should fix ATLASSIM-4667. --- Simulation/Digitization/python/RunDependentMCTaskIterator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Simulation/Digitization/python/RunDependentMCTaskIterator.py b/Simulation/Digitization/python/RunDependentMCTaskIterator.py index acebe118557..1b120b71a87 100644 --- a/Simulation/Digitization/python/RunDependentMCTaskIterator.py +++ b/Simulation/Digitization/python/RunDependentMCTaskIterator.py @@ -82,7 +82,7 @@ def getFragment(jobnumber,task,maxEvents): try: tIter = findPlaceInTask(jobnumber,task,maxEvents) except StopIteration: raise IndexError('There are only %i jobs in this task (not %i).' % (len([1 for i in taskIterator(task,maxEvents)]) + 1,jobnumber + 1)) - try: tIter.next() + try: tIter.__next__() except StopIteration: pass return tIter.donejob @@ -128,7 +128,7 @@ class taskIterator(object): def __repr__(self): return "offset=%i; row=%i,%i" % (self.offset,self.current.get('run',0),self.current.get('lb',0)) - def next(self): + def __next__(self): self.donejob = [] if (self.current is None): self.current = next(self.taskit) to_do = self.step -- GitLab From 589103cf0524b474773a0f4cc84dfb5310567047 Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Mon, 27 Jul 2020 14:21:45 +0200 Subject: [PATCH 191/459] Add a test for MC16e (2018) digitization This test also uses jobNumber=568, to catch issues like the one reported in ATLASSIM-4667 in the future. Existing tests all used jobNumber=1. --- .../test/test_Digi_tf_mc16e_ttbar.sh | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100755 Simulation/Tests/DigitizationTests/test/test_Digi_tf_mc16e_ttbar.sh diff --git a/Simulation/Tests/DigitizationTests/test/test_Digi_tf_mc16e_ttbar.sh b/Simulation/Tests/DigitizationTests/test/test_Digi_tf_mc16e_ttbar.sh new file mode 100755 index 00000000000..7f7edce02f2 --- /dev/null +++ b/Simulation/Tests/DigitizationTests/test/test_Digi_tf_mc16e_ttbar.sh @@ -0,0 +1,87 @@ +#!/bin/sh +# +# art-description: Run digitization of an mc16e ttbar sample with 2018 geometry and conditions, 25ns pile-up +# art-type: grid +# art-include: 21.0/Athena +# art-include: 21.3/Athena +# art-include: 21.9/Athena +# art-include: master/Athena +# art-output: mc16e_ttbar.RDO.pool.root + +DigiOutFileName="mc16e_ttbar.RDO.pool.root" + + + + +HighPtMinbiasHitsFiles="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/mc16_13TeV.361239.Pythia8EvtGen_A3NNPDF23LO_minbias_inelastic_high.merge.HITS.e4981_s3087_s3089/*" +LowPtMinbiasHitsFiles="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/mc16_13TeV.361238.Pythia8EvtGen_A3NNPDF23LO_minbias_inelastic_low.merge.HITS.e4981_s3087_s3089/*" + + + +#--digiSteeringConf "StandardSignalOnlyTruth" + +Digi_tf.py \ +--inputHITSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/Tier0ChainTests/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.simul.HITS.e4993_s3091/HITS.10504490._000425.pool.root.1 \ +--conditionsTag default:OFLCOND-MC16-SDR-20 \ +--digiSeedOffset1 170 --digiSeedOffset2 170 \ +--geometryVersion default:ATLAS-R2-2016-01-00-01 \ +--inputHighPtMinbiasHitsFile ${HighPtMinbiasHitsFiles} \ +--inputLowPtMinbiasHitsFile ${LowPtMinbiasHitsFiles} \ +--jobNumber 568 \ +--maxEvents 25 \ +--numberOfCavernBkg 0 \ +--numberOfHighPtMinBias 0.2099789464 \ +--numberOfLowPtMinBias 80.290021063135 \ +--outputRDOFile ${DigiOutFileName} \ +--digiSteeringConf "StandardSignalOnlyTruth" \ +--postExec 'all:CfgMgr.MessageSvc().setError+=["HepMcParticleLink"]' 'condSeq.LArAutoCorrTotalCondAlg.deltaBunch=1' \ +--postInclude 'default:PyJobTransforms/UseFrontier.py' \ +--pileupFinalBunch 6 \ +--preExec 'all:from AthenaCommon.BeamFlags import jobproperties;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(20.0);from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False)' \ +--preInclude 'HITtoRDO:Digitization/ForceUseOfPileUpTools.py,SimulationJobOptions/preInlcude.PileUpBunchTrainsMC16c_2017_Config1.py,RunDependentSimData/configLumi_run310000.py' \ +--skipEvents 0 + +rc=$? +echo "art-result: $rc Digi_tf.py" +rc1=-9999 +rc2=-9999 +rc3=-9999 +rc4=-9999 + +# get reference directory +source DigitizationCheckReferenceLocation.sh +echo "Reference set being used: " ${DigitizationTestsVersion} + +if [ $rc -eq 0 ] +then + # Do reference comparisons + art-diff.py ./$DigiOutFileName /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/DigitizationTests/ReferenceFiles/$DigitizationTestsVersion/$CMTCONFIG/$DigiOutFileName + rc1=$? +fi +echo "art-result: $rc1 diff-pool" +# +# +# +if [ $rc -eq 0 ] +then + art-diff.py ./$DigiOutFileName /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/DigitizationTests/ReferenceFiles/$DigitizationTestsVersion/$CMTCONFIG/$DigiOutFileName --diff-type=diff-root --mode=semi-detailed + rc2=$? +fi +echo "art-result: $rc2 diff-root" +# +if [ $rc -eq 0 ] +then + checkFile ./$DigiOutFileName + rc3=$? +fi +echo "art-result: $rc3 checkFile" +# +# +if [ $rc -eq 0 ] +then + ArtPackage=$1 + ArtJobName=$2 + art.py compare grid --entries 10 ${ArtPackage} ${ArtJobName} --mode=semi-detailed + rc4=$? +fi +echo "art-result: $rc4 art-compare" -- GitLab From 199d9251fe06b7daef31ac12aff538dddcc4ae07 Mon Sep 17 00:00:00 2001 From: Oana Vickey Boeriu <oana.boeriu@cern.ch> Date: Fri, 12 Jun 2020 12:23:56 +0000 Subject: [PATCH 192/459] Merge branch 'add-ghost-labels' into '21.2' Add HadronGhostTruthLabelID and HadronGhostExtendedTruthLabelID See merge request atlas/athena!33501 --- .../ParticleJetDeltaRLabelTool.h | 4 +- .../ParticleJetGhostLabelTool.h | 41 ++++++ .../ParticleJetTools/ParticleJetLabelCommon.h | 37 +++++ .../ParticleJetTools/ParticleJetToolsDict.h | 1 + .../Root/ParticleJetDeltaRLabelTool.cxx | 123 ++-------------- .../Root/ParticleJetGhostLabelTool.cxx | 77 ++++++++++ .../Root/ParticleJetLabelCommon.cxx | 134 ++++++++++++++++++ .../components/ParticleJetTools_entries.cxx | 2 + ...30Rmax4Rmin02TrackGhostTagJetsCPContent.py | 2 +- ...AntiKtVR30Rmax4Rmin02TrackJetsCPContent.py | 2 +- ...Rmin02TrackJets_BTagging201810CPContent.py | 2 +- ...ackJets_BTagging201810GhostTagCPContent.py | 2 +- ...Rmin02TrackJets_BTagging201903CPContent.py | 2 +- .../python/HbbCommon.py | 12 +- 14 files changed, 320 insertions(+), 121 deletions(-) create mode 100644 PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetGhostLabelTool.h create mode 100644 PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetLabelCommon.h create mode 100644 PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetGhostLabelTool.cxx create mode 100644 PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetLabelCommon.cxx diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetDeltaRLabelTool.h b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetDeltaRLabelTool.h index 638796283e1..3238fdf1246 100644 --- a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetDeltaRLabelTool.h +++ b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetDeltaRLabelTool.h @@ -10,6 +10,7 @@ #include "xAODTruth/TruthParticle.h" #include "xAODTruth/TruthParticleContainer.h" +#include "ParticleJetTools/ParticleJetLabelCommon.h" class ParticleJetDeltaRLabelTool : public asg::AsgTool, public IJetModifier { ASG_TOOL_CLASS(ParticleJetDeltaRLabelTool, IJetModifier) @@ -30,8 +31,7 @@ public: protected: /// Name of jet label attributes - std::string m_labelname; - std::string m_doublelabelname; + ParticleJetTools::LabelNames m_labelnames; std::string m_taulabelname; std::string m_bottomlabelname; std::string m_charmlabelname; diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetGhostLabelTool.h b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetGhostLabelTool.h new file mode 100644 index 00000000000..f174d1d594a --- /dev/null +++ b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetGhostLabelTool.h @@ -0,0 +1,41 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef PARTICLEJETGHOSTLABELTOOL_H +#define PARTICLEJETGHOSTLABELTOOL_H + +#include "AsgTools/AsgTool.h" +#include "JetInterface/IJetModifier.h" +#include "xAODTruth/TruthParticle.h" +#include "xAODTruth/TruthParticleContainer.h" + +#include "ParticleJetTools/ParticleJetLabelCommon.h" + +class ParticleJetGhostLabelTool : public asg::AsgTool, public IJetModifier { +ASG_TOOL_CLASS(ParticleJetGhostLabelTool, IJetModifier) +public: + + /// Constructor + ParticleJetGhostLabelTool(const std::string& name); + + int modify(xAOD::JetContainer& jets) const; + +protected: + + std::vector<const xAOD::TruthParticle*> match( + const xAOD::Jet&, const std::string& ghostname + ) const; + + /// Name of jet label attributes + ParticleJetTools::LabelNames m_labelnames; + std::string m_ghosttauname; + std::string m_ghostcname; + std::string m_ghostbname; + + /// Minimum pT for particle selection (in MeV) + double m_partptmin; +}; + + +#endif diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetLabelCommon.h b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetLabelCommon.h new file mode 100644 index 00000000000..ba019c4c76a --- /dev/null +++ b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetLabelCommon.h @@ -0,0 +1,37 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + + +#ifndef PARTICLE_JET_LABEL_COMMON_H +#define PARTICLE_JET_LABEL_COMMON_H + +#include "xAODTruth/TruthParticle.h" +#include "xAODJet/Jet.h" + +#include <vector> + +namespace ParticleJetTools { + + struct LabelNames { + std::string singleint; + std::string doubleint; + }; + + struct PartonCounts { + size_t b; + size_t c; + size_t tau; + }; + + void setJetLabels(xAOD::Jet& jet, + const PartonCounts& counts, + const LabelNames& names); + + void childrenRemoved + ( const std::vector<const xAOD::TruthParticle*>& parents + , std::vector<const xAOD::TruthParticle*>& children + ); +} + +#endif diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetToolsDict.h b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetToolsDict.h index 13acc2a9894..8d8f0084c94 100644 --- a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetToolsDict.h +++ b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetToolsDict.h @@ -11,6 +11,7 @@ #include "ParticleJetTools/CopyFlavorLabelTruthParticles.h" #include "ParticleJetTools/CopyTruthJetParticles.h" #include "ParticleJetTools/ParticleJetDeltaRLabelTool.h" +#include "ParticleJetTools/ParticleJetGhostLabelTool.h" #include "ParticleJetTools/JetParticleAssociation.h" #include "ParticleJetTools/JetParticleCenterOfMassAssociation.h" #include "ParticleJetTools/JetParticleShrinkingConeAssociation.h" diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetDeltaRLabelTool.cxx b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetDeltaRLabelTool.cxx index 3ed484a63c6..4c5f4598a1f 100644 --- a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetDeltaRLabelTool.cxx +++ b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetDeltaRLabelTool.cxx @@ -3,6 +3,7 @@ */ #include "ParticleJetTools/ParticleJetDeltaRLabelTool.h" +#include "ParticleJetTools/ParticleJetLabelCommon.h" #include "xAODJet/JetContainer.h" #include "AsgTools/Check.h" @@ -11,8 +12,8 @@ using namespace xAOD; ParticleJetDeltaRLabelTool::ParticleJetDeltaRLabelTool(const std::string& name) : AsgTool(name) { - declareProperty("LabelName", m_labelname="", "Name of the jet label attribute to be added."); - declareProperty("DoubleLabelName", m_doublelabelname="", "Name of the jet label attribute to be added (with the possibility of up to 2 matched hadrons)."); + declareProperty("LabelName", m_labelnames.singleint="", "Name of the jet label attribute to be added."); + declareProperty("DoubleLabelName", m_labelnames.doubleint="", "Name of the jet label attribute to be added (with the possibility of up to 2 matched hadrons)."); declareProperty("BLabelName", m_bottomlabelname="", "Name of the attribute to be added for matched B hadrons."); declareProperty("CLabelName", m_charmlabelname="", "Name of the attribute to be added for matched C hadrons."); declareProperty("TauLabelName", m_taulabelname="", "Name of the attribute to be added for matched taus."); @@ -25,83 +26,6 @@ ParticleJetDeltaRLabelTool::ParticleJetDeltaRLabelTool(const std::string& name) namespace { - // TODO - // can we do better by only looking at hadrons? - inline bool isChild - ( const TruthParticle* p - , const TruthParticle* c - ) { - - if (p->barcode() == c->barcode()) - return false; - - - for (size_t iC = 0; iC < p->nChildren(); iC++) { - const TruthParticle* cc = p->child(iC); - if(!cc) continue; - - if (cc->barcode() == c->barcode()) { - return true; - } - - if (isChild(cc, c)) { - return true; - } - } - - return false; - } - - - inline void childrenRemoved - ( const vector<const TruthParticle*>& parents - , vector<const TruthParticle*>& children - ) { - - // TODO - // this is probably very inefficient, - // but it's simple. - - // for instance: if we remove a child from info on one parent, - // we still loop over the child again for the next parent. - - // also, we're passing around vectors rather than their - // references. - - // for each of the parents - for ( size_t ip = 0 - ; ip != parents.size() - ; ip++ ) { - - const TruthParticle* p = parents[ip]; - if(!p) continue; - - // the current child index - size_t ic = 0; - - // (x) each of the potential children - while (ic != children.size()) { - - const TruthParticle* c = children[ic]; - if (!c) continue; - - // if citer is (recursively) a child of piter - // remove it. - if (isChild(p, c)) { - children.erase(children.begin() + ic); - // do not increment ic: we just removed a child. - continue; - - } else { - // increment ic: we did *not* remove a child. - ic++; - continue; - } - } - } - - return; - } } @@ -146,6 +70,7 @@ StatusCode ParticleJetDeltaRLabelTool::modify(JetContainer& jets) const { // don't care about double tau jets // so leave them for now. + using ParticleJetTools::childrenRemoved; childrenRemoved(jetlabelpartsb[iJet], jetlabelpartsb[iJet]); childrenRemoved(jetlabelpartsb[iJet], jetlabelpartsc[iJet]); childrenRemoved(jetlabelpartsc[iJet], jetlabelpartsc[iJet]); @@ -158,44 +83,18 @@ StatusCode ParticleJetDeltaRLabelTool::modify(JetContainer& jets) const { // set truth label to -99 for jets below pt threshold if (jet.pt() < m_jetptmin) { - jet.setAttribute<int>(m_labelname, -99); - jet.setAttribute<int>(m_doublelabelname, -99); + jet.setAttribute<int>(m_labelnames.singleint, -99); + jet.setAttribute<int>(m_labelnames.doubleint, -99); continue; } // set truth label for jets above pt threshold // hierarchy: b > c > tau > light - if (jetlabelpartsb.at(iJet).size()) - jet.setAttribute<int>(m_labelname, 5); - else if (jetlabelpartsc.at(iJet).size()) - jet.setAttribute<int>(m_labelname, 4); - else if (jetlabelpartstau.at(iJet).size()) - jet.setAttribute<int>(m_labelname, 15); - else - jet.setAttribute<int>(m_labelname, 0); - - if (jetlabelpartsb.at(iJet).size()) { - if (jetlabelpartsb.at(iJet).size() >= 2) - jet.setAttribute<int>(m_doublelabelname, 55); - - else if (jetlabelpartsc.at(iJet).size()) - jet.setAttribute<int>(m_doublelabelname, 54); - - else - jet.setAttribute<int>(m_doublelabelname, 5); - - } else if (jetlabelpartsc.at(iJet).size()) { - if (jetlabelpartsc.at(iJet).size() >= 2) - jet.setAttribute<int>(m_doublelabelname, 44); - - else - jet.setAttribute<int>(m_doublelabelname, 4); - - } else if (jetlabelpartstau.at(iJet).size()) - jet.setAttribute<int>(m_doublelabelname, 15); - - else - jet.setAttribute<int>(m_doublelabelname, 0); + ParticleJetTools::PartonCounts counts; + counts.b = jetlabelpartsb.at(iJet).size(); + counts.c = jetlabelpartsc.at(iJet).size(); + counts.tau = jetlabelpartstau.at(iJet).size(); + ParticleJetTools::setJetLabels(jet, counts, m_labelnames); } return StatusCode::SUCCESS; diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetGhostLabelTool.cxx b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetGhostLabelTool.cxx new file mode 100644 index 00000000000..450eff4cef2 --- /dev/null +++ b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetGhostLabelTool.cxx @@ -0,0 +1,77 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +#include "ParticleJetTools/ParticleJetGhostLabelTool.h" +#include "ParticleJetTools/ParticleJetLabelCommon.h" +#include "xAODJet/JetContainer.h" +#include "AsgTools/Check.h" + +using namespace std; +using namespace xAOD; + +ParticleJetGhostLabelTool::ParticleJetGhostLabelTool(const std::string& name) + : AsgTool(name) { + declareProperty("LabelName", m_labelnames.singleint="HadronGhostTruthLabelID", "Name of the jet label attribute to be added."); + declareProperty("DoubleLabelName", m_labelnames.doubleint="HadronGhostExtendedTruthLabelID", "Name of the jet label attribute to be added (with the possibility of up to 2 matched hadrons)."); + declareProperty("GhostBName", m_ghostbname="GhostBHadronsFinal", "Name of attribute for matched B hadrons."); + declareProperty("GhostCName", m_ghostcname="GhostCHadronsFinal", "Name of attribute for matched C hadrons."); + declareProperty("GhostTauName", m_ghosttauname="GhostTausFinal", "Name of attribute for matched Taus."); + declareProperty("PartPtMin", m_partptmin=5000, "Minimum pT of particles for labeling (MeV)"); +} + + +int ParticleJetGhostLabelTool::modify(JetContainer& jets) const { + + using namespace std; + using namespace xAOD; + + ATH_MSG_VERBOSE("In " << name() << "::modify()"); + + for (xAOD::Jet* jetptr: jets) { + + Jet& jet = *jetptr; + vector<const TruthParticle*> jetlabelpartsb = match(jet, m_ghostbname); + vector<const TruthParticle*> jetlabelpartsc = match(jet, m_ghostcname); + vector<const TruthParticle*> jetlabelpartstau = match(jet, m_ghosttauname); + + // remove children whose parent hadrons are also in the jet. + // don't care about double tau jets + // so leave them for now. + + using ParticleJetTools::childrenRemoved; + childrenRemoved(jetlabelpartsb, jetlabelpartsb); + childrenRemoved(jetlabelpartsb, jetlabelpartsc); + childrenRemoved(jetlabelpartsc, jetlabelpartsc); + + // set truth label for jets above pt threshold + // hierarchy: b > c > tau > light + ParticleJetTools::PartonCounts counts; + counts.b = jetlabelpartsb.size(); + counts.c = jetlabelpartsc.size(); + counts.tau = jetlabelpartstau.size(); + ParticleJetTools::setJetLabels(jet, counts, m_labelnames); + } + + return 0; +} + + +std::vector<const TruthParticle*> +ParticleJetGhostLabelTool::match( + const xAOD::Jet& jet, const std::string& ghostname) const { + + ATH_MSG_VERBOSE("In " << name() << "::match()"); + + std::vector<const xAOD::TruthParticle*> parton_links + = jet.getAssociatedObjects<const xAOD::TruthParticle>(ghostname); + + std::vector<const xAOD::TruthParticle*> selected_partons; + for (const xAOD::TruthParticle* part: parton_links) { + if (part->pt() > m_partptmin) { + selected_partons.push_back(part); + } + } + return selected_partons; +} + diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetLabelCommon.cxx b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetLabelCommon.cxx new file mode 100644 index 00000000000..e523fe4d3c4 --- /dev/null +++ b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetLabelCommon.cxx @@ -0,0 +1,134 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +#include "ParticleJetTools/ParticleJetLabelCommon.h" + +namespace ParticleJetTools { + + // the code below is taken from ParticleJetDeltaRLabelTool with + // minimal modification + // -------------------------------------------------------------- + + // TODO + // can we do better by only looking at hadrons? + inline bool isChild + ( const xAOD::TruthParticle* p + , const xAOD::TruthParticle* c + ) { + + if (p->barcode() == c->barcode()) + return false; + + + for (size_t iC = 0; iC < p->nChildren(); iC++) { + const xAOD::TruthParticle* cc = p->child(iC); + if(!cc) continue; + + if (cc->barcode() == c->barcode()) { + return true; + } + + if (isChild(cc, c)) { + return true; + } + } + + return false; + } + + + void childrenRemoved + ( const std::vector<const xAOD::TruthParticle*>& parents + , std::vector<const xAOD::TruthParticle*>& children + ) { + + // TODO + // this is probably very inefficient, + // but it's simple. + + // for instance: if we remove a child from info on one parent, + // we still loop over the child again for the next parent. + + // also, we're passing around vectors rather than their + // references. + + // for each of the parents + for ( size_t ip = 0 + ; ip != parents.size() + ; ip++ ) { + + const xAOD::TruthParticle* p = parents[ip]; + if(!p) continue; + + // the current child index + size_t ic = 0; + + // (x) each of the potential children + while (ic != children.size()) { + + const xAOD::TruthParticle* c = children[ic]; + if (!c) continue; + + // if citer is (recursively) a child of piter + // remove it. + if (isChild(p, c)) { + children.erase(children.begin() + ic); + // do not increment ic: we just removed a child. + continue; + + } else { + // increment ic: we did *not* remove a child. + ic++; + continue; + } + } + } + + return; + } + + + // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + // End of code copied from ParticleJetDeltaRLabelTool + + void setJetLabels(xAOD::Jet& jet, + const PartonCounts& counts, + const LabelNames& names) { + // set truth label for jets above pt threshold + // hierarchy: b > c > tau > light + if (counts.b) + jet.setAttribute<int>(names.singleint, 5); + else if (counts.c) + jet.setAttribute<int>(names.singleint, 4); + else if (counts.tau) + jet.setAttribute<int>(names.singleint, 15); + else + jet.setAttribute<int>(names.singleint, 0); + + if (counts.b) { + if (counts.b >= 2) + jet.setAttribute<int>(names.doubleint, 55); + + else if (counts.c) + jet.setAttribute<int>(names.doubleint, 54); + + else + jet.setAttribute<int>(names.doubleint, 5); + + } else if (counts.c) { + if (counts.c >= 2) + jet.setAttribute<int>(names.doubleint, 44); + + else + jet.setAttribute<int>(names.doubleint, 4); + + } else if (counts.tau) + jet.setAttribute<int>(names.doubleint, 15); + + else + jet.setAttribute<int>(names.doubleint, 0); + + } + +} diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/src/components/ParticleJetTools_entries.cxx b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/src/components/ParticleJetTools_entries.cxx index bcbf4b7bae1..c5a837f609f 100644 --- a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/src/components/ParticleJetTools_entries.cxx +++ b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/src/components/ParticleJetTools_entries.cxx @@ -11,6 +11,7 @@ #include "ParticleJetTools/CopyTruthJetParticles.h" #include "ParticleJetTools/ParticleJetDeltaRLabelTool.h" #include "ParticleJetTools/JetParticleAssociationAlg.h" +#include "ParticleJetTools/ParticleJetGhostLabelTool.h" #include "ParticleJetTools/JetParticleShrinkingConeAssociation.h" #include "ParticleJetTools/JetParticleCenterOfMassAssociation.h" #include "ParticleJetTools/JetTruthLabelingTool.h" @@ -30,6 +31,7 @@ DECLARE_COMPONENT( CopyBosonTopLabelTruthParticles ) DECLARE_COMPONENT( CopyTruthPartons ) DECLARE_COMPONENT( CopyTruthJetParticles ) DECLARE_COMPONENT( ParticleJetDeltaRLabelTool ) +DECLARE_COMPONENT( ParticleJetGhostLabelTool ) DECLARE_COMPONENT( JetParticleShrinkingConeAssociation ) DECLARE_COMPONENT( JetParticleCenterOfMassAssociation ) DECLARE_COMPONENT( JetTruthLabelingTool ) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackGhostTagJetsCPContent.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackGhostTagJetsCPContent.py index c78a63b8935..fa8a28188ef 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackGhostTagJetsCPContent.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackGhostTagJetsCPContent.py @@ -4,5 +4,5 @@ from JetFlavorGhostLabels import getJetFlavorGhostLabels AntiKtVR30Rmax4Rmin02TrackGhostTagJetsCPContent = [ "AntiKtVR30Rmax4Rmin02TrackGhostTagJets", -"AntiKtVR30Rmax4Rmin02TrackGhostTagJetsAux.pt.eta.phi.m.HadronConeExclExtendedTruthLabelID.HadronConeExclTruthLabelID." + getJetFlavorGhostLabels(), +"AntiKtVR30Rmax4Rmin02TrackGhostTagJetsAux.pt.eta.phi.m.HadronConeExclExtendedTruthLabelID.HadronConeExclTruthLabelID.HadronGhostTruthLabelID.HadronGhostExtendedTruthLabelID." + getJetFlavorGhostLabels(), ] diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJetsCPContent.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJetsCPContent.py index 0dc0a6129aa..5358ebd53c9 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJetsCPContent.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJetsCPContent.py @@ -4,5 +4,5 @@ from JetFlavorGhostLabels import getJetFlavorGhostLabels AntiKtVR30Rmax4Rmin02TrackJetsCPContent = [ "AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810", -"AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810Aux.pt.eta.phi.m.HadronConeExclExtendedTruthLabelID.HadronConeExclTruthLabelID.", +"AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810Aux.pt.eta.phi.m.HadronConeExclExtendedTruthLabelID.HadronConeExclTruthLabelID.has_ATLASRECTS_5027_bug.relativeDeltaRToVRJet.HadronGhostTruthLabelID.HadronGhostExtendedTruthLabelID.", ] diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810CPContent.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810CPContent.py index fb91da66a56..3a1d0e6c1ab 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810CPContent.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810CPContent.py @@ -2,5 +2,5 @@ AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810CPContent = [ "AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810", -"AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810Aux.pt.eta.phi.m.HadronConeExclExtendedTruthLabelID.HadronConeExclTruthLabelID.", +"AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810Aux.pt.eta.phi.m.HadronConeExclExtendedTruthLabelID.HadronConeExclTruthLabelID.has_ATLASRECTS_5027_bug.relativeDeltaRToVRJet.HadronGhostTruthLabelID.HadronGhostExtendedTruthLabelID.", ] diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810GhostTagCPContent.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810GhostTagCPContent.py index 8b8e1aea2e1..3d90da501f5 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810GhostTagCPContent.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810GhostTagCPContent.py @@ -2,5 +2,5 @@ AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810GhostTagCPContent = [ "AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810GhostTag", -"AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810GhostTagAux.pt.eta.phi.m.HadronConeExclExtendedTruthLabelID.HadronConeExclTruthLabelID.", +"AntiKtVR30Rmax4Rmin02TrackJets_BTagging201810GhostTagAux.pt.eta.phi.m.HadronConeExclExtendedTruthLabelID.HadronConeExclTruthLabelID.has_ATLASRECTS_5027_bug.relativeDeltaRToVRJet.HadronGhostTruthLabelID.HadronGhostExtendedTruthLabelID.", ] diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903CPContent.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903CPContent.py index be8d1a03f44..b5c88278880 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903CPContent.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903CPContent.py @@ -4,5 +4,5 @@ from JetFlavorGhostLabels import getJetFlavorGhostLabels AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903CPContent = [ "AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903", -"AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903Aux.pt.eta.phi.m.HadronConeExclExtendedTruthLabelID.HadronConeExclTruthLabelID.", +"AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903Aux.pt.eta.phi.m.HadronConeExclExtendedTruthLabelID.HadronConeExclTruthLabelID.has_ATLASRECTS_5027_bug.relativeDeltaRToVRJet.HadronGhostTruthLabelID.HadronGhostExtendedTruthLabelID.", ] diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/HbbCommon.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/HbbCommon.py index be17685dfa8..aa6eaf63774 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/HbbCommon.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/HbbCommon.py @@ -10,7 +10,7 @@ from DerivationFrameworkJetEtMiss.JetCommon import DFJetAlgs from BTagging.BTaggingConfiguration import getConfiguration ConfInst=getConfiguration() -from GaudiKernel.Configurable import WARNING +from GaudiKernel.Configurable import WARNING, VERBOSE # Import star stuff (it was like that when I got here) from DerivationFrameworkJetEtMiss.JetCommon import * @@ -307,6 +307,13 @@ def buildVRJets(sequence, do_ghost, logger = None, doFlipTagger=False, training= TrackAssociatorName="GhostTrack" if do_ghost else "MatchedTracks", ) + # add Ghost label id + from ParticleJetTools.ParticleJetToolsConf import ( + ParticleJetGhostLabelTool as GhostLabelTool) + gl_tool = GhostLabelTool( + name=VRJetRecToolName + "_GhostLabeling") + ToolSvc += gl_tool + from BTagging.BTaggingConfiguration import defaultTrackAssoc, defaultMuonAssoc # Slice the array - this forces a copy so that if we modify it we don't also @@ -335,7 +342,8 @@ def buildVRJets(sequence, do_ghost, logger = None, doFlipTagger=False, training= logger.info("Create JetRecTool %s" % VRJetRecToolName) #can only run trackjetdrlabeler with truth labels, so MC only - mods = [defaultTrackAssoc, defaultMuonAssoc, btag_vrjets] + mods = [defaultTrackAssoc, defaultMuonAssoc, btag_vrjets, + gl_tool] if globalflags.DataSource()!='data': mods.append(jtm.trackjetdrlabeler) -- GitLab From 90e8e96635c08b5263d0f457979725661904ffd5 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Mon, 27 Jul 2020 15:25:16 +0200 Subject: [PATCH 193/459] Almost working self-inclusion test --- Control/AthenaCommon/python/CFElements.py | 51 ++++++++++++++++------- 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/Control/AthenaCommon/python/CFElements.py b/Control/AthenaCommon/python/CFElements.py index c7996cbdc32..9097d8a4c57 100755 --- a/Control/AthenaCommon/python/CFElements.py +++ b/Control/AthenaCommon/python/CFElements.py @@ -82,21 +82,25 @@ def getAllSequenceNames(seq, depth=0): return seqNameList def checkSequenceConsistency( seq ): - """ Enforce rules for sequence graph - identical items can only appear at same depth """ - seqNameList = getAllSequenceNames(seq) - names = [sNL[0] for sNL in seqNameList] - - for item, count in collections.Counter(names).items(): - if count > 1: - depths = set() - for (name, depth) in seqNameList: - if name == item: - depths.add(depth) - if len(depths) > 1: - if names[0] == name: - raise RuntimeError("Sequence %s contains sub-sequence %s" %(name, name) ) - else: - raise RuntimeError("Sequence %s contains sub-sequence %s at different depths" %(names[0], item,) ) + """ Enforce rules for sequence graph - identical items can not be added to itself (even indirectly) """ + + def __noSubSequenceOfName( s, n ): + for c in getSequenceChildren( s ): + if isSequence( c ): + print("here", compName(c), n) + if compName(c) == n: + raise RuntimeError("Sequence {} contains sub-sequence of the same name".format(n) ) + try: + __noSubSequenceOfName( c, compName(c) ) # check each sequence for repetition as well + except RecursionError: + raise RuntimeError("Sequence {} contains itself".format(compName(c)) ) + try: + __noSubSequenceOfName( c, n ) + except RecursionError: + raise RuntimeError("Sequence {} contains itself".format(n) ) + + __noSubSequenceOfName( seq, compName(seq) ) + def stepSeq(name, filterAlg, rest): @@ -352,3 +356,20 @@ class TestConf2CF( unittest.TestCase, TestCF ): nest2.Members += [__mkAlg("SomeAlg2")] nest2.Members += [__mkAlg("SomeAlg3")] self.top = top + +class TestNest( unittest.TestCase ): + def test( self ): + Configurable.configurableRun3Behavior=1 + top = parOR("top") + nest1 = parOR("nest1") + nest2 = seqAND("nest2") + top.Members += [nest1, nest2] + + deep_nest1 = seqAND("deep_nest1") + nest1.Members += [deep_nest1] + + nest2.Members += [nest1] # that one is ok + checkSequenceConsistency( top ) + deep_nest1.Members += [nest1] # introducing an issue + self.assertRaises( RuntimeError, checkSequenceConsistency, top ) + -- GitLab From f4a1d0f862c952f9828db105d4be724ebd6226ca Mon Sep 17 00:00:00 2001 From: Dan Guest <dguest@cern.ch> Date: Mon, 27 Jul 2020 15:39:38 +0200 Subject: [PATCH 194/459] Fix conflicts merging to 22 --- .../ParticleJetTools/ParticleJetGhostLabelTool.h | 2 +- .../ParticleJetTools/Root/ParticleJetGhostLabelTool.cxx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetGhostLabelTool.h b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetGhostLabelTool.h index f174d1d594a..b0d8749b152 100644 --- a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetGhostLabelTool.h +++ b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/ParticleJetTools/ParticleJetGhostLabelTool.h @@ -19,7 +19,7 @@ public: /// Constructor ParticleJetGhostLabelTool(const std::string& name); - int modify(xAOD::JetContainer& jets) const; + StatusCode modify(xAOD::JetContainer& jets) const; protected: diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetGhostLabelTool.cxx b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetGhostLabelTool.cxx index 450eff4cef2..2a022fd3f80 100644 --- a/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetGhostLabelTool.cxx +++ b/PhysicsAnalysis/AnalysisCommon/ParticleJetTools/Root/ParticleJetGhostLabelTool.cxx @@ -21,7 +21,7 @@ ParticleJetGhostLabelTool::ParticleJetGhostLabelTool(const std::string& name) } -int ParticleJetGhostLabelTool::modify(JetContainer& jets) const { +StatusCode ParticleJetGhostLabelTool::modify(JetContainer& jets) const { using namespace std; using namespace xAOD; @@ -53,7 +53,7 @@ int ParticleJetGhostLabelTool::modify(JetContainer& jets) const { ParticleJetTools::setJetLabels(jet, counts, m_labelnames); } - return 0; + return StatusCode::SUCCESS; } -- GitLab From aa8acfa89f808296f81bc28733c1a8bd9eb8dc1d Mon Sep 17 00:00:00 2001 From: Dan Guest <dguest@cern.ch> Date: Mon, 15 Jun 2020 12:10:56 +0200 Subject: [PATCH 195/459] Don't require truth info in data :) --- .../python/HbbCommon.py | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/HbbCommon.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/HbbCommon.py index aa6eaf63774..d00ab7adeea 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/HbbCommon.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/HbbCommon.py @@ -6,6 +6,9 @@ from __future__ import print_function # import Common Algs from DerivationFrameworkJetEtMiss.JetCommon import DFJetAlgs +from DerivationFrameworkCore.DerivationFrameworkMaster import ( + DerivationFrameworkIsMonteCarlo as isMC) + # I wish we didn't need this from BTagging.BTaggingConfiguration import getConfiguration ConfInst=getConfiguration() @@ -48,7 +51,7 @@ def buildExclusiveSubjets(ToolSvc, JetCollectionName, subjet_mode, nsubjet, doGh subjetlabel = "Ex%s%i%sSubJets" % (subjet_mode, nsubjet, talabel) # removing truth labels if runining on data - if globalflags.DataSource()=='data': ExGhostLabels = ["GhostTrack"] + if not isMC: ExGhostLabels = ["GhostTrack"] SubjetContainerName = "%sEx%s%i%sSubJets" % (JetCollectionName.replace("Jets", ""), subjet_mode, nsubjet, talabel) ExKtbbTagToolName = str( "Ex%s%sbbTagTool%i_%s" % (subjet_mode, talabel, nsubjet, JetCollectionName) ) @@ -169,7 +172,7 @@ def addExKtCoM(sequence, ToolSvc, JetCollectionExCoM, nSubjets, doTrackSubJet, d from BTagging.BTaggingConfiguration import comTrackAssoc, comMuonAssoc, defaultTrackAssoc, defaultMuonAssoc mods = [defaultTrackAssoc, defaultMuonAssoc, btag_excom] if(subjetAlgName=="CoM"): mods = [comTrackAssoc, comMuonAssoc, btag_excom] - if globalflags.DataSource()!='data': + if isMC: mods.append(jtm.jetdrlabeler) jetrec_btagging = JetRecTool( name = excomJetRecBTagToolName, @@ -342,11 +345,10 @@ def buildVRJets(sequence, do_ghost, logger = None, doFlipTagger=False, training= logger.info("Create JetRecTool %s" % VRJetRecToolName) #can only run trackjetdrlabeler with truth labels, so MC only - mods = [defaultTrackAssoc, defaultMuonAssoc, btag_vrjets, - gl_tool] + mods = [defaultTrackAssoc, defaultMuonAssoc, btag_vrjets] - if globalflags.DataSource()!='data': - mods.append(jtm.trackjetdrlabeler) + if isMC: + mods += [jtm.trackjetdrlabeler, gl_tool] jtm.addJetFinder( VRJetRecToolName, @@ -392,7 +394,7 @@ def buildVRJets(sequence, do_ghost, logger = None, doFlipTagger=False, training= # Build variable-R calorimeter jets ################################################################## def addVRCaloJets(sequence,outputlist,dotruth=True,writeUngroomed=False): - if DerivationFrameworkIsMonteCarlo and dotruth: + if isMC and dotruth: addTrimmedJets('AntiKt', 1.0, 'Truth', rclus=0.2, ptfrac=0.05, variableRMassScale=600000, variableRMinRadius=0.2, mods="truth_groomed", algseq=sequence, outputGroup=outputlist, writeUngroomed=writeUngroomed) addTrimmedJets('AntiKt', 1.0, 'PV0Track', rclus=0.2, ptfrac=0.05, variableRMassScale=600000, variableRMinRadius=0.2, mods="groomed", @@ -562,7 +564,7 @@ def addHbbTagger( logger = Logging.logging.getLogger('HbbTaggerLog') fat_calibrator_name = get_unique_name(["HbbCalibrator", jet_collection]) - is_data = not DerivationFrameworkIsMonteCarlo + is_data = not isMC if not hasattr(ToolSvc, fat_calibrator_name): fatCalib = CfgMgr.JetCalibrationTool( fat_calibrator_name, @@ -630,8 +632,7 @@ xbbTaggerExtraVariables = [ #==================================================================== # Large-R RC jets w/ ExKt 2 & 3 subjets #=================================================================== -def addExKtDoubleTaggerRCJets(sequence, ToolSvc):#, ExKtJetCollection__FatJetConfigs, ExKtJetCollection__FatJet, ExKtJetCollection__SubJet):#, jetToolName, algoName): - DFisMC = (globalflags.DataSource()=='geant4') +def addExKtDoubleTaggerRCJets(sequence, ToolSvc): jetToolName = "DFReclustertingTool" algoName = "DFJetReclusteringAlgo" @@ -647,7 +648,7 @@ def addExKtDoubleTaggerRCJets(sequence, ToolSvc):#, ExKtJetCollection__FatJetCon getattr(ToolSvc,jetToolName).DoArea = False getattr(ToolSvc,jetToolName).GhostTracksInputContainer = "InDetTrackParticles" getattr(ToolSvc,jetToolName).GhostTracksVertexAssociationName = "JetTrackVtxAssoc" - if(DFisMC): + if isMC: getattr(ToolSvc,jetToolName).GhostTruthBHadronsInputContainer = "BHadronsFinal" getattr(ToolSvc,jetToolName).GhostTruthCHadronsInputContainer = "CHadronsFinal" @@ -656,7 +657,7 @@ def addExKtDoubleTaggerRCJets(sequence, ToolSvc):#, ExKtJetCollection__FatJetCon # build subjets GhostLabels = ["GhostTrack"] - if(DFisMC): + if isMC: GhostLabels += ["GhostBHadronsFinal"] GhostLabels += ["GhostCHadronsFinal"] # N=2 subjets -- GitLab From 5ad60204dfa21f23175fdf0e56bd2cd25366b743 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Mon, 27 Jul 2020 16:42:12 +0200 Subject: [PATCH 196/459] Removed the usage of xAODMaker::ROOTHeaderLoaderSvc from the trigger jobs. With Scott's changes in DataVector<T>, these hacks are no longer necessary. --- .../TriggerCommon/TriggerJobOpts/share/decodeBS.py | 12 ------------ .../TriggerJobOpts/share/runHLT_standalone.py | 11 ----------- 2 files changed, 23 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/decodeBS.py b/Trigger/TriggerCommon/TriggerJobOpts/share/decodeBS.py index dbcd0275982..1478eb45848 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/share/decodeBS.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/share/decodeBS.py @@ -76,15 +76,3 @@ if len(ItemList) == 0: ItemList += [ 'xAOD::TrigCompositeAuxContainer#*' ] StreamESD.ItemList = list(set(ItemList)) outSequence += StreamESD - -# Set up a temporary workaround for ROOT-10940 / ATR-21753. -from AthenaCommon.AppMgr import theApp, ServiceMgr as svcMgr -from xAODCoreCnv.xAODCoreCnvConf import xAODMaker__ROOTHeaderLoaderSvc -svcMgr += xAODMaker__ROOTHeaderLoaderSvc( 'ROOTHeaderLoaderSvc', - HeaderNames = [ 'xAODEgamma/PhotonContainer.h', - 'xAODTrigEgamma/TrigPhotonContainer.h', - 'xAODMuon/MuonContainer.h', - 'xAODTrigMuon/L2StandAloneMuonContainer.h', - 'xAODJet/JetContainer.h', - 'xAODTau/TauJetContainer.h' ] ) -theApp.CreateSvc += [ 'xAODMaker::ROOTHeaderLoaderSvc/ROOTHeaderLoaderSvc' ] diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py index 90c6ec69357..dceb2933951 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py @@ -425,17 +425,6 @@ elif globalflags.InputFormat.is_bytestream() and not ConfigFlags.Trigger.Online. from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg CAtoGlobalWrapper(ByteStreamReadCfg, ConfigFlags) -# Set up a temporary workaround for ROOT-10940 / ATR-21753. -from xAODCoreCnv.xAODCoreCnvConf import xAODMaker__ROOTHeaderLoaderSvc -svcMgr += xAODMaker__ROOTHeaderLoaderSvc( 'ROOTHeaderLoaderSvc', - HeaderNames = [ 'xAODEgamma/PhotonContainer.h', - 'xAODTrigEgamma/TrigPhotonContainer.h', - 'xAODMuon/MuonContainer.h', - 'xAODTrigMuon/L2StandAloneMuonContainer.h', - 'xAODJet/JetContainer.h', - 'xAODTau/TauJetContainer.h' ] ) -theApp.CreateSvc += [ 'xAODMaker::ROOTHeaderLoaderSvc/ROOTHeaderLoaderSvc' ] - # --------------------------------------------------------------- # Trigger config # --------------------------------------------------------------- -- GitLab From b61a64f65e0658575cd1abe0b3f39092b4251a86 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Mon, 27 Jul 2020 16:46:10 +0200 Subject: [PATCH 197/459] Undid the hack introduced for ROOT-10663. As discussed in https://sft.its.cern.ch/jira/browse/ROOT-10663, ROOT 6.20/06 (included in LCG_97a) fixed this issue. --- .../RootStorageSvc/src/RootTreeContainer.cpp | 121 +++++++++--------- 1 file changed, 60 insertions(+), 61 deletions(-) diff --git a/Database/APR/RootStorageSvc/src/RootTreeContainer.cpp b/Database/APR/RootStorageSvc/src/RootTreeContainer.cpp index ef29476bcdd..694dec0587e 100755 --- a/Database/APR/RootStorageSvc/src/RootTreeContainer.cpp +++ b/Database/APR/RootStorageSvc/src/RootTreeContainer.cpp @@ -125,7 +125,7 @@ static IntDbArray s_int_Blob; RootTreeContainer::RootTreeContainer() -: m_tree(nullptr), m_type(0), m_dbH(POOL_StorageType), +: m_tree(nullptr), m_type(0), m_dbH(POOL_StorageType), m_rootDb(nullptr), m_branchName(), m_ioBytes(0), m_treeFillMode(false), m_isDirty(false) { @@ -148,7 +148,7 @@ long long int RootTreeContainer::size() { TBranch * pBranch = m_tree->GetBranch(m_branchName.c_str()); if (pBranch == nullptr) return 0; s += pBranch->GetEntries(); - } else { + } else { s += m_tree->GetEntries(); } return s; @@ -189,7 +189,7 @@ DbStatus RootTreeContainer::writeObject( ActionList::value_type& action ) auto *store = reinterpret_cast<SG::IAuxStoreIO*>( (char*)dsc.object + dsc.aux_iostore_IFoffset ); // cout << "--- store object= " <<hex << store <<dec << " in " << dsc.branch->GetName() <<endl; // cout << " obj=" << hex << dsc.object << dec << " offset=" << dsc.aux_iostore_IFoffset << endl; - const SG::auxid_set_t selection = store->getSelectedAuxIDs(); + const SG::auxid_set_t selection = store->getSelectedAuxIDs(); log << DbPrintLvl::Debug << " Attributes= " << selection.size() << DbPrint::endmsg; for(SG::auxid_t id : selection) { BranchDesc& newBrDsc( m_auxBranchMap[id] ); @@ -243,8 +243,8 @@ DbStatus RootTreeContainer::writeObject( ActionList::value_type& action ) } if ( nullptr == p.ptr ) { DbPrint err( m_name); - err << DbPrintLvl::Error - << "[RootTreeContainer] Could not write an object" + err << DbPrintLvl::Error + << "[RootTreeContainer] Could not write an object" << DbPrint::endmsg; return Error; } @@ -269,13 +269,13 @@ DbStatus RootTreeContainer::writeObject( ActionList::value_type& action ) } } } - + if( !isBranchContainer() ) { // Single Container per TTree - just Fill it now num_bytes = m_tree->Fill(); } else if( m_treeFillMode ) { // Multiple containers per TTree - mark TTree for later Fill at commit - // cout << "----- " << m_name << " : TTree=" << m_tree->GetName() << " : marking DIRTY " << endl; + // cout << "----- " << m_name << " : TTree=" << m_tree->GetName() << " : marking DIRTY " << endl; if( m_isDirty ) { DbPrint log(m_name); log << DbPrintLvl::Error << "Attempt to write to a Branch Container twice in the same transaction! " @@ -290,7 +290,7 @@ DbStatus RootTreeContainer::writeObject( ActionList::value_type& action ) } // else (branch container NOT in tree fill mode) // do nothing, the branch was filled in the previous block already - + for(k=m_branches.begin(); k !=m_branches.end(); ++k) { switch ( (*k).column->typeID() ) { case DbColumn::BLOB: @@ -306,8 +306,8 @@ DbStatus RootTreeContainer::writeObject( ActionList::value_type& action ) return Success; } DbPrint err( m_name); - err << DbPrintLvl::Error - << "[RootTreeContainer] Could not write an object" + err << DbPrintLvl::Error + << "[RootTreeContainer] Could not write an object" << DbPrint::endmsg; m_ioBytes = -1; return Error; @@ -324,7 +324,7 @@ DbStatus RootTreeContainer::fetch(DbSelect& sel) { sel.link().second++; return DbContainerImp::fetch(sel.link(), sel.link()); } - DbSelect::Ptr<TTreeFormula>* stmt = + DbSelect::Ptr<TTreeFormula>* stmt = dynamic_cast<DbSelect::Ptr<TTreeFormula>* >(sel.statement()); if ( stmt ) { TTreeFormula* selStmt = stmt->m_ptr; @@ -362,7 +362,7 @@ DbStatus RootTreeContainer::fetch(DbSelect& sel) { #include <iostream> using namespace std; -DbStatus +DbStatus RootTreeContainer::loadObject(void** obj_p, ShapeH /*shape*/, Token::OID_t& oid) { long long evt_id = oid.second; @@ -384,7 +384,7 @@ RootTreeContainer::loadObject(void** obj_p, ShapeH /*shape*/, Token::OID_t& oid) case DbColumn::TOKEN: // set data pointer to the object data member for this branch p = *obj_p; - p.c_str += dsc.column->offset(); + p.c_str += dsc.column->offset(); break; case DbColumn::BLOB: dsc.object = &s_char_Blob; @@ -467,12 +467,12 @@ RootTreeContainer::loadObject(void** obj_p, ShapeH /*shape*/, Token::OID_t& oid) catch (...) { DbPrint err(m_name); err << DbPrintLvl::Fatal << "[RootTreeContainer] " - << "Unknown exception occurred. Cannot give more details." + << "Unknown exception occurred. Cannot give more details." << DbPrint::endmsg; } DbPrint log(m_name); - log << DbPrintLvl::Info << "Cannot load entry No." << evt_id << "..." - << (m_branchName.empty() ? " Tree has " : " Branch has " ) + log << DbPrintLvl::Info << "Cannot load entry No." << evt_id << "..." + << (m_branchName.empty() ? " Tree has " : " Branch has " ) << size() << " Entries in total." << DbPrint::endmsg; m_ioBytes = -1; return Error; @@ -498,7 +498,7 @@ DbStatus RootTreeContainer::close() { // This somehow fails for templates. dsc.clazz->Destructor(dsc.buffer); } - } + } m_branches.clear(); m_auxBranchMap.clear(); m_rootDb = nullptr; @@ -507,12 +507,11 @@ DbStatus RootTreeContainer::close() { } -DbStatus RootTreeContainer::open( const DbDatabase& dbH, - const std::string& nam, - const DbTypeInfo* info, - DbAccessMode mode) +DbStatus RootTreeContainer::open( const DbDatabase& dbH, + const std::string& nam, + const DbTypeInfo* info, + DbAccessMode mode) { - TClass::GetClass("DataLink_p2"); DbPrint log(nam); m_branches.clear(); m_name = nam; @@ -546,8 +545,8 @@ DbStatus RootTreeContainer::open( const DbDatabase& dbH, if (m_rootDb) m_tree = (TTree*)m_rootDb->file()->Get(treeName.c_str()); - bool hasBeenCreated = (m_branchName.empty() - ? m_tree != nullptr + bool hasBeenCreated = (m_branchName.empty() + ? m_tree != nullptr : (m_tree && m_tree->GetBranch(m_branchName.c_str()) != nullptr)); if ( hasBeenCreated && (mode&pool::READ || mode&pool::UPDATE) ) { int count; @@ -627,7 +626,7 @@ DbStatus RootTreeContainer::open( const DbDatabase& dbH, } } else { - log << DbPrintLvl::Warning << "Branch with name:" << colnam + log << DbPrintLvl::Warning << "Branch with name:" << colnam << " not present in container:" << m_name << " of type " << ROOTTREE_StorageType.storageName() << DbPrint::endmsg; @@ -644,7 +643,7 @@ DbStatus RootTreeContainer::open( const DbDatabase& dbH, return Success; } else if ( !hasBeenCreated && mode&pool::CREATE ) { - int count, defSplitLevel=99, + int count, defSplitLevel=99, defAutoSave=16*1024*1024, defBufferSize=16*1024, branchOffsetTabLen=0, containerSplitLevel=defSplitLevel, auxSplitLevel=defSplitLevel; DbStatus res = Success; @@ -709,7 +708,7 @@ DbStatus RootTreeContainer::open( const DbDatabase& dbH, case DbColumn::LONG_STRING: case DbColumn::NTCHAR: case DbColumn::LONG_NTCHAR: - case DbColumn::TOKEN: + case DbColumn::TOKEN: iret=addBranch(*i,dsc,"/C"); break; case DbColumn::BLOB: @@ -717,7 +716,7 @@ DbStatus RootTreeContainer::open( const DbDatabase& dbH, break; case DbColumn::ANY: case DbColumn::POINTER: - iret=addObject(*i, dsc, (*i)->typeName(), containerSplitLevel, defBufferSize, branchOffsetTabLen); + iret=addObject(*i, dsc, (*i)->typeName(), containerSplitLevel, defBufferSize, branchOffsetTabLen); break; default: return Error; @@ -744,14 +743,14 @@ DbStatus RootTreeContainer::open( const DbDatabase& dbH, } catch (...) { DbPrint err( m_name); - err << DbPrintLvl::Fatal << "Unknown exception occurred. Cannot give more details." + err << DbPrintLvl::Fatal << "Unknown exception occurred. Cannot give more details." << DbPrint::endmsg; debugBreak(nam, "Cannot open ROOT container(Tree/Branch)"); res = Error; } } } - log << DbPrintLvl::Error << "Cannot open container '" << nam << "', invalid Database handle." + log << DbPrintLvl::Error << "Cannot open container '" << nam << "', invalid Database handle." << DbPrint::endmsg; return Error; } @@ -780,7 +779,7 @@ DbStatus RootTreeContainer::select(DbSelect& sel) { DbStatus RootTreeContainer::addObject(const DbColumn* col, BranchDesc& dsc, const std::string& typ, - int defSplitLevel, + int defSplitLevel, int defBufferSize, int branchOffsetTabLen) { @@ -805,7 +804,7 @@ DbStatus RootTreeContainer::addObject(const DbColumn* col, if ( dsc.branch ) { dsc.leaf = dsc.branch->GetLeaf(nam.c_str()); dsc.branch->SetAutoDelete(kFALSE); - // AUTO-DELETE is now OFF. + // AUTO-DELETE is now OFF. // This ensures, that all objects can be deleted // by the framework. Keep the created object in the // branch descriptor to allow selections @@ -817,7 +816,7 @@ DbStatus RootTreeContainer::addObject(const DbColumn* col, TClass *storeTClass = dsc.clazz->GetBaseClass("SG::IAuxStoreIO"); if( storeTClass ) { // This is a class implementing SG::IAuxStoreIO - dsc.aux_iostore_IFoffset = dsc.clazz->GetBaseClassOffset( storeTClass ); + dsc.aux_iostore_IFoffset = dsc.clazz->GetBaseClassOffset( storeTClass ); } } return Success; @@ -830,7 +829,7 @@ DbStatus RootTreeContainer::addObject(const DbColumn* col, } catch (...) { DbPrint err( m_name); - err << DbPrintLvl::Fatal << "Unknown exception occurred. Cannot give more details." + err << DbPrintLvl::Fatal << "Unknown exception occurred. Cannot give more details." << DbPrint::endmsg; debugBreak(m_name, "Cannot attach ROOT object branch.", true); } @@ -847,11 +846,11 @@ DbStatus RootTreeContainer::addObject(const DbColumn* col, void RootTreeContainer::createBasicAuxBranch(const std::string& branchname, const std::string& leafname, BranchDesc& dsc) { - DbPrint log( m_name); + DbPrint log( m_name); log << DbPrintLvl::Debug << "createBasicAuxBranch: " << branchname << ", leaf:" << leafname << DbPrint::endmsg; dsc.is_basic_type = true; - dsc.branch = m_tree->Branch(branchname.c_str(), dsc.buffer, leafname.c_str(), 2048); -// if( dsc.branch ) dsc.leaf = dsc.branch->GetLeaf(bnam); + dsc.branch = m_tree->Branch(branchname.c_str(), dsc.buffer, leafname.c_str(), 2048); +// if( dsc.branch ) dsc.leaf = dsc.branch->GetLeaf(bnam); } @@ -864,29 +863,29 @@ DbStatus RootTreeContainer::addAuxBranch(const std::string& attribute, string branch_name = RootAuxDynIO::auxBranchName(attribute, m_branchName); dsc.branch = nullptr; try { - if( *typeinfo == typeid(UInt_t) ) + if( *typeinfo == typeid(UInt_t) ) createBasicAuxBranch(branch_name, attribute + "/i", dsc); else if( *typeinfo == typeid(Int_t) ) createBasicAuxBranch(branch_name, attribute + "/I", dsc); - else if( *typeinfo == typeid(Double_t) ) + else if( *typeinfo == typeid(Double_t) ) createBasicAuxBranch(branch_name, attribute + "/D", dsc); - else if( *typeinfo == typeid(Float_t) ) + else if( *typeinfo == typeid(Float_t) ) createBasicAuxBranch(branch_name, attribute + "/F", dsc); - else if( *typeinfo == typeid(Long64_t) ) + else if( *typeinfo == typeid(Long64_t) ) createBasicAuxBranch(branch_name, attribute + "/L", dsc); - else if( *typeinfo == typeid(ULong64_t) ) + else if( *typeinfo == typeid(ULong64_t) ) createBasicAuxBranch(branch_name, attribute + "/l", dsc); - else if( *typeinfo == typeid(Short_t) ) + else if( *typeinfo == typeid(Short_t) ) createBasicAuxBranch(branch_name, attribute + "/S", dsc); - else if( *typeinfo == typeid(UShort_t) ) + else if( *typeinfo == typeid(UShort_t) ) createBasicAuxBranch(branch_name, attribute + "/s", dsc); - else if( *typeinfo == typeid(Char_t) ) + else if( *typeinfo == typeid(Char_t) ) createBasicAuxBranch(branch_name, attribute + "/B", dsc); - else if( *typeinfo == typeid(UChar_t) ) + else if( *typeinfo == typeid(UChar_t) ) createBasicAuxBranch(branch_name, attribute + "/b", dsc); - else if( *typeinfo == typeid(bool) ) + else if( *typeinfo == typeid(bool) ) createBasicAuxBranch(branch_name, attribute + "/O", dsc); - else if( *typeinfo == typeid(char*) || *typeinfo == typeid(unsigned char*) ) + else if( *typeinfo == typeid(char*) || *typeinfo == typeid(unsigned char*) ) createBasicAuxBranch(branch_name, attribute + "/C", dsc); else { TClass* cl = TClass::GetClass(typenam.c_str()); @@ -912,14 +911,14 @@ DbStatus RootTreeContainer::addAuxBranch(const std::string& attribute, } catch (...) { DbPrint err( branch_name ); - err << DbPrintLvl::Fatal << "Unknown exception occurred. Cannot give more details." + err << DbPrintLvl::Fatal << "Unknown exception occurred. Cannot give more details." << DbPrint::endmsg; debugBreak(branch_name, "Cannot attach ROOT branch for AUX attribute.", true); } if( dsc.branch ) { dsc.branch->SetAutoDelete(kFALSE); - // AUTO-DELETE is now OFF. + // AUTO-DELETE is now OFF. // This ensures, that all objects can be deleted // by the framework. Keep the created object in the // branch descriptor to allow selections @@ -927,7 +926,7 @@ DbStatus RootTreeContainer::addAuxBranch(const std::string& attribute, //setBranchOffsetTabLen( dsc.branch, branchOffsetTabLen ); return Success; } - + DbPrint log("RootStorageSvc::addAuxBranch"); log << DbPrintLvl::Error << "Failed to create Auxiliary branch '" << branch_name << "'." << " Class " << typenam << error_type << DbPrint::endmsg; @@ -937,7 +936,7 @@ DbStatus RootTreeContainer::addAuxBranch(const std::string& attribute, -DbStatus +DbStatus RootTreeContainer::addBranch(const DbColumn* col,BranchDesc& dsc,const std::string& desc) { const char* nam = (m_branchName.empty() ? col->name().c_str() : m_branchName.c_str()); std::string coldesc = col->name() + desc; @@ -960,11 +959,11 @@ void RootTreeContainer::setBranchOffsetTabLen(TBranch* b, int offsettab_len) { if( offsettab_len > 0 ) { if( b->GetEntryOffsetLen() > 0 ) - b->SetEntryOffsetLen( offsettab_len ); + b->SetEntryOffsetLen( offsettab_len ); TIter biter( b->GetListOfBranches() ); TBranch* subbranch(nullptr); while( (subbranch = (TBranch*)biter.Next()) ) { - setBranchOffsetTabLen( subbranch, offsettab_len ); + setBranchOffsetTabLen( subbranch, offsettab_len ); } } } @@ -972,7 +971,7 @@ void RootTreeContainer::setBranchOffsetTabLen(TBranch* b, int offsettab_len) /// Access options -DbStatus RootTreeContainer::getOption(DbOption& opt) const { +DbStatus RootTreeContainer::getOption(DbOption& opt) const { if ( m_tree ) { const char* n = opt.name().c_str(); if ( !strcasecmp(n,"BYTES_IO") ) { @@ -981,7 +980,7 @@ DbStatus RootTreeContainer::getOption(DbOption& opt) const { const_cast<RootTreeContainer*>(this)->m_ioBytes += branch.aux_reader->getBytesRead(); branch.aux_reader->resetBytesRead(); } - } + } return opt._setValue((int)m_ioBytes); } else if ( !strcasecmp(n,"BRANCH") ) { @@ -1097,11 +1096,11 @@ DbStatus RootTreeContainer::getOption(DbOption& opt) const { } } } - return Error; + return Error; } /// Set options -DbStatus RootTreeContainer::setOption(const DbOption& opt) { +DbStatus RootTreeContainer::setOption(const DbOption& opt) { if ( m_tree ) { const char* n = opt.name().c_str(); if ( ::toupper(n[0]) == 'B' ) { @@ -1184,12 +1183,12 @@ DbStatus RootTreeContainer::setOption(const DbOption& opt) { } } } - return Error; + return Error; } /// Execute transaction action -DbStatus RootTreeContainer::transAct(Transaction::Action action) +DbStatus RootTreeContainer::transAct(Transaction::Action action) { // execure action on the base class first DbStatus status = DbContainerImp::transAct(action); @@ -1222,7 +1221,7 @@ DbStatus RootTreeContainer::transAct(Transaction::Action action) m_tree->AutoSave(); } else if (branchEntries < treeEntries) { DbPrint log(m_name); - log << DbPrintLvl::Error << "Every branch must have the same number of entries." + log << DbPrintLvl::Error << "Every branch must have the same number of entries." << DbPrint::endmsg; return Error; } -- GitLab From 5207aafdc32572b2f3e54839dedea2880ad3f4e4 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 16:39:09 +0200 Subject: [PATCH 198/459] InDetTrigToolInterfaces: Add missing interface library --- .../InDetTrigToolInterfaces/CMakeLists.txt | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/InnerDetector/InDetTrigRecTools/InDetTrigToolInterfaces/CMakeLists.txt b/InnerDetector/InDetTrigRecTools/InDetTrigToolInterfaces/CMakeLists.txt index 1e1f1a8e468..a6222582b30 100644 --- a/InnerDetector/InDetTrigRecTools/InDetTrigToolInterfaces/CMakeLists.txt +++ b/InnerDetector/InDetTrigRecTools/InDetTrigToolInterfaces/CMakeLists.txt @@ -1,16 +1,11 @@ -################################################################################ -# Package: InDetTrigToolInterfaces -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( InDetTrigToolInterfaces ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/Identifier - GaudiKernel - InnerDetector/InDetRecEvent/InDetPrepRawData ) - -# Install files from the package: -atlas_install_headers( InDetTrigToolInterfaces ) - +# Component(s) in the package: +atlas_add_library( InDetTrigToolInterfacesLib + InDetTrigToolInterfaces/*.h + INTERFACE + PUBLIC_HEADERS InDetTrigToolInterfaces + LINK_LIBRARIES GaudiKernel Identifier InDetPrepRawData ) -- GitLab From d77b3d19c77d49eeb6057f3d2ae212a24c8cd2e0 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 17:11:19 +0200 Subject: [PATCH 199/459] TrigT1NSW: Replace deprecated RegionSelector_jobOptions.py --- Trigger/TrigT1/TrigT1NSW/share/NSWL1.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Trigger/TrigT1/TrigT1NSW/share/NSWL1.py b/Trigger/TrigT1/TrigT1NSW/share/NSWL1.py index b0ab258ac19..783e98551bd 100755 --- a/Trigger/TrigT1/TrigT1NSW/share/NSWL1.py +++ b/Trigger/TrigT1/TrigT1NSW/share/NSWL1.py @@ -39,7 +39,9 @@ GeoModelSvc.DetectorTools += [ MuonDetectorTool(HasCSC=MuonGeometryFlags.hasCSC( ####################################### # now the trigger related things ####################################### -include('RegionSelector/RegionSelector_jobOptions.py') +from RegionSelector.RegSelSvcDefault import RegSelSvcDefault +svcMgr += RegSelSvcDefault() + include('TrigT1NSW/TrigT1NSW_jobOptions.py') #Switch on and off trigger simulaton components sTGC / MicroMegas -- GitLab From edf472d1e1e07afc501619741643dfee34ffca27 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 17:12:20 +0200 Subject: [PATCH 200/459] RegionSelector: cmake cleanup, thread checker Cleanup cmake configuration and delete deprecated RegionSelector_jobOptions.py. --- .../RegionSelector/CMakeLists.txt | 31 ++++--------------- .../RegionSelector/ATLAS_CHECK_THREAD_SAFETY | 1 + .../RegionSelector/doc/packagedoc.h | 4 +-- .../share/RegionSelector_jobOptions.py | 7 ----- .../RegionSelector/src/RegSelSvc.h | 5 +-- 5 files changed, 11 insertions(+), 37 deletions(-) create mode 100644 DetectorDescription/RegionSelector/RegionSelector/ATLAS_CHECK_THREAD_SAFETY delete mode 100755 DetectorDescription/RegionSelector/share/RegionSelector_jobOptions.py diff --git a/DetectorDescription/RegionSelector/CMakeLists.txt b/DetectorDescription/RegionSelector/CMakeLists.txt index 5697b57639a..7e0e34584e5 100644 --- a/DetectorDescription/RegionSelector/CMakeLists.txt +++ b/DetectorDescription/RegionSelector/CMakeLists.txt @@ -1,42 +1,23 @@ -################################################################################ -# Package: RegionSelector -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( RegionSelector ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaKernel - DetectorDescription/IRegionSelector - DetectorDescription/Identifier - GaudiKernel - PRIVATE - Control/AthenaBaseComps - Control/StoreGate - Database/AthenaPOOL/AthenaPoolUtilities - DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/RegSelLUT - InnerDetector/InDetConditions/InDetConditionsSummaryService - InnerDetector/InDetDetDescr/SCT_Cabling - Tools/PathResolver ) - # Component(s) in the package: atlas_add_library( RegionSelectorLib src/*.cxx PUBLIC_HEADERS RegionSelector - LINK_LIBRARIES AthenaKernel IRegionSelector Identifier GaudiKernel StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES AthenaBaseComps AthenaPoolUtilities RegSelLUT PathResolver SCT_CablingLib GeoModelInterfaces InDetConditionsSummaryService ) + LINK_LIBRARIES AthenaBaseComps AthenaKernel GaudiKernel GeoModelInterfaces IRegionSelector Identifier RegSelLUT SCT_CablingLib + PRIVATE_LINK_LIBRARIES AthenaPoolUtilities CxxUtils InDetConditionsSummaryService PathResolver StoreGateLib ) atlas_add_component( RegionSelector src/components/*.cxx - LINK_LIBRARIES AthenaKernel IRegionSelector Identifier GaudiKernel AthenaBaseComps StoreGateLib SGtests AthenaPoolUtilities RegSelLUT PathResolver RegionSelectorLib SCT_CablingLib GeoModelInterfaces ) + LINK_LIBRARIES RegionSelectorLib ) # Install files from the package: -atlas_install_python_modules( python/*.py ) -atlas_install_joboptions( share/*.py ) - +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) +# Tests in the package: atlas_add_test( RegSelConfigTest SCRIPT python -m RegionSelector.RegSelConfig PROPERTIES TIMEOUT 300 diff --git a/DetectorDescription/RegionSelector/RegionSelector/ATLAS_CHECK_THREAD_SAFETY b/DetectorDescription/RegionSelector/RegionSelector/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..b85eb00edef --- /dev/null +++ b/DetectorDescription/RegionSelector/RegionSelector/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +DetectorDescription/RegionSelector diff --git a/DetectorDescription/RegionSelector/doc/packagedoc.h b/DetectorDescription/RegionSelector/doc/packagedoc.h index eefd738513c..bd61d78dea5 100644 --- a/DetectorDescription/RegionSelector/doc/packagedoc.h +++ b/DetectorDescription/RegionSelector/doc/packagedoc.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /** @@ -96,8 +96,6 @@ RegionSelector is configured by the RegSelSvcDefault configurable. Declaring the ServiceHandle as shown above should generate the configuration you need automatically. -For backward compatability it can be imported, instantiated and added to the ServiceMgr by including the file "RegionSelector/RegionSelector_jobOptions.py". - RegionSelector has the following properties: - @c @b RegionType (@c @b string): not used; diff --git a/DetectorDescription/RegionSelector/share/RegionSelector_jobOptions.py b/DetectorDescription/RegionSelector/share/RegionSelector_jobOptions.py deleted file mode 100755 index 9ee192b130a..00000000000 --- a/DetectorDescription/RegionSelector/share/RegionSelector_jobOptions.py +++ /dev/null @@ -1,7 +0,0 @@ -# Joboptions fragement for backward compatability; -# please import configurables yourself instead. -from RegionSelector.RegSelSvcDefault import RegSelSvcDefault -from AthenaCommon.AppMgr import ServiceMgr -theRegSelSvc = RegSelSvcDefault() -ServiceMgr += theRegSelSvc - diff --git a/DetectorDescription/RegionSelector/src/RegSelSvc.h b/DetectorDescription/RegionSelector/src/RegSelSvc.h index 2a4a2b5bb55..aa10fb208b6 100755 --- a/DetectorDescription/RegionSelector/src/RegSelSvc.h +++ b/DetectorDescription/RegionSelector/src/RegSelSvc.h @@ -18,6 +18,7 @@ #include "IRegionSelector/RegSelEnums.h" #include "RegionSelector/RegSelectorMap.h" #include "RegionSelector/RegSelectorHashMap.h" +#include "CxxUtils/checker_macros.h" #include "GaudiKernel/ToolHandle.h" #include "GaudiKernel/ServiceHandle.h" @@ -47,12 +48,12 @@ class StoreGateSvc; GaudiSvc/.../src/ToolSvc/ToolSvc.cpp GaudiSvc/.../src/ToolSvc/ToolSvc.h - It still needs to be made thread-safe. + This service is deprecated. @author Simon George */ -class RegSelSvc: public extends2<AthService, IRegSelSvc, IIncidentListener> +class ATLAS_NOT_THREAD_SAFE RegSelSvc: public extends2<AthService, IRegSelSvc, IIncidentListener> { public: /** @c Standard constructor for Gaudi services. -- GitLab From be00b050a5e823ffc4f5a682061c8039625594ef Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 17:16:07 +0200 Subject: [PATCH 201/459] RegSelLUT: cmake cleanup --- DetectorDescription/RegSelLUT/CMakeLists.txt | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/DetectorDescription/RegSelLUT/CMakeLists.txt b/DetectorDescription/RegSelLUT/CMakeLists.txt index d61cd8c5836..d9fe6499ee0 100644 --- a/DetectorDescription/RegSelLUT/CMakeLists.txt +++ b/DetectorDescription/RegSelLUT/CMakeLists.txt @@ -1,20 +1,10 @@ -################################################################################ -# Package: RegSelLUT -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( RegSelLUT ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaKernel - DetectorDescription/Identifier - DetectorDescription/IRegionSelector - GaudiKernel ) - # Component(s) in the package: atlas_add_library( RegSelLUT src/*.cxx PUBLIC_HEADERS RegSelLUT LINK_LIBRARIES AthenaKernel Identifier GaudiKernel IRegionSelector ) - -- GitLab From 4c648db036d8a8a9895d052ca87de56973977cff Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 17:16:24 +0200 Subject: [PATCH 202/459] RegSelSvcTest: cmake cleanup, enable thread checker --- .../RegSelSvcTest/ATLAS_CHECK_THREAD_SAFETY | 1 + DetectorDescription/RegSelSvcTest/CMakeLists.txt | 12 +----------- 2 files changed, 2 insertions(+), 11 deletions(-) create mode 100644 DetectorDescription/RegSelSvcTest/ATLAS_CHECK_THREAD_SAFETY diff --git a/DetectorDescription/RegSelSvcTest/ATLAS_CHECK_THREAD_SAFETY b/DetectorDescription/RegSelSvcTest/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..5677ecac312 --- /dev/null +++ b/DetectorDescription/RegSelSvcTest/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +DetectorDescription/RegSelSvcTest diff --git a/DetectorDescription/RegSelSvcTest/CMakeLists.txt b/DetectorDescription/RegSelSvcTest/CMakeLists.txt index d012927d7ae..002f6167d5c 100644 --- a/DetectorDescription/RegSelSvcTest/CMakeLists.txt +++ b/DetectorDescription/RegSelSvcTest/CMakeLists.txt @@ -1,18 +1,8 @@ -################################################################################ -# Package: RegSelSvcTest -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( RegSelSvcTest ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - GaudiKernel - DetectorDescription/IRegionSelector - Control/AthenaBaseComps - Trigger/TrigEvent/TrigSteeringEvent - AtlasTest/TestTools ) - # Component(s) in the package: atlas_add_component( RegSelSvcTest src/*.cxx src/components/*.cxx -- GitLab From c17493344394580ffb170e52b7282ed5077d8268 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 17:18:08 +0200 Subject: [PATCH 203/459] RoiDescriptor: cmake cleanup, thread checker Cleanup configuration, remove unused ROOT and boost dependency. --- .../RoiDescriptor/CMakeLists.txt | 21 +++---------------- .../RoiDescriptor/ATLAS_CHECK_THREAD_SAFETY | 1 + .../RoiDescriptor/Root/RoiDescriptor.cxx | 4 ++-- 3 files changed, 6 insertions(+), 20 deletions(-) create mode 100644 DetectorDescription/RoiDescriptor/RoiDescriptor/ATLAS_CHECK_THREAD_SAFETY diff --git a/DetectorDescription/RoiDescriptor/CMakeLists.txt b/DetectorDescription/RoiDescriptor/CMakeLists.txt index 48042153f84..79747489870 100644 --- a/DetectorDescription/RoiDescriptor/CMakeLists.txt +++ b/DetectorDescription/RoiDescriptor/CMakeLists.txt @@ -1,31 +1,16 @@ -################################################################################ -# Package: RoiDescriptor -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( RoiDescriptor ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/IRegionSelector ) - -# External dependencies: -find_package( Boost COMPONENTS program_options regex ) -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - # Component(s) in the package: atlas_add_library( RoiDescriptor Root/RoiDescriptor.cxx Root/RoiUtil.cxx PUBLIC_HEADERS RoiDescriptor - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES IRegionSelector ${Boost_LIBRARIES} - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ) + LINK_LIBRARIES IRegionSelector ) atlas_add_dictionary( RoiDescriptorDict RoiDescriptor/RoiDescriptorDict.h RoiDescriptor/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} IRegionSelector RoiDescriptor ) - + LINK_LIBRARIES RoiDescriptor ) diff --git a/DetectorDescription/RoiDescriptor/RoiDescriptor/ATLAS_CHECK_THREAD_SAFETY b/DetectorDescription/RoiDescriptor/RoiDescriptor/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..b3b7f99649b --- /dev/null +++ b/DetectorDescription/RoiDescriptor/RoiDescriptor/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +DetectorDescription/RoiDescriptor diff --git a/DetectorDescription/RoiDescriptor/Root/RoiDescriptor.cxx b/DetectorDescription/RoiDescriptor/Root/RoiDescriptor.cxx index a938b74912b..79147111cab 100644 --- a/DetectorDescription/RoiDescriptor/Root/RoiDescriptor.cxx +++ b/DetectorDescription/RoiDescriptor/Root/RoiDescriptor.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /************************************************************************** @@ -33,7 +33,7 @@ static const float M_PIF = float(M_PI); /// overall configuration - perhaps by an RoiBuilder class const double RoiDescriptor::s_zedWidthDefault = 225; -static int RoiVersion = 4; +static const int RoiVersion = 4; RoiDescriptor::RoiDescriptor( bool fullscan ) : m_phi(0), m_eta(0), m_zed(0), -- GitLab From 2e69a93c9eedea383c7d93d37d58f25a969c00a8 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Mon, 27 Jul 2020 16:39:48 +0100 Subject: [PATCH 204/459] Fxied test --- Control/AthenaCommon/python/CFElements.py | 1 - .../python/ComponentAccumulatorTest.py | 17 ++++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Control/AthenaCommon/python/CFElements.py b/Control/AthenaCommon/python/CFElements.py index 9097d8a4c57..c38f5de86c4 100755 --- a/Control/AthenaCommon/python/CFElements.py +++ b/Control/AthenaCommon/python/CFElements.py @@ -87,7 +87,6 @@ def checkSequenceConsistency( seq ): def __noSubSequenceOfName( s, n ): for c in getSequenceChildren( s ): if isSequence( c ): - print("here", compName(c), n) if compName(c) == n: raise RuntimeError("Sequence {} contains sub-sequence of the same name".format(n) ) try: diff --git a/Control/AthenaConfiguration/python/ComponentAccumulatorTest.py b/Control/AthenaConfiguration/python/ComponentAccumulatorTest.py index 286ad3ac1b0..49e1531a915 100644 --- a/Control/AthenaConfiguration/python/ComponentAccumulatorTest.py +++ b/Control/AthenaConfiguration/python/ComponentAccumulatorTest.py @@ -192,6 +192,7 @@ class ForbidRecursiveSequences( unittest.TestCase ): # \__ AthAlgSeq (seq: PAR AND) # \__ seq1 (seq: SEQ AND) # \__ seq1 (seq: SEQ AND) + print("") def selfSequence(): from AthenaCommon.CFElements import seqAND accTop = ComponentAccumulator() @@ -228,13 +229,14 @@ class ForbidRecursiveSequences( unittest.TestCase ): def selfGrandParentSequence(): from AthenaCommon.CFElements import seqAND accTop = ComponentAccumulator() + accTop.wasMerged() seq1 = seqAND("seq1") seq2 = seqAND("seq2") seq1_again = seqAND("seq1") accTop.addSequence(seq1) accTop.addSequence(seq2, parentName = "seq1") accTop.addSequence(seq1_again, parentName = "seq2") - accTop.wasMerged() + #Can't merge sequences with the same name two steps below itself, e.g. # \__ AthAlgSeq (seq: PAR AND) @@ -246,15 +248,24 @@ class ForbidRecursiveSequences( unittest.TestCase ): acc1=ComponentAccumulator() acc1.wasMerged() acc1.addSequence(seqAND("seq1")) + acc2=ComponentAccumulator() acc2.wasMerged() acc2.addSequence(seqAND("seq2")) - acc2.addSequence(seqAND("seq1"), "seq2") - acc1.merge(acc2) + acc2.addSequence(seqAND("seq1"), parentName = "seq2") + acc1.merge(acc2, sequenceName="seq1") + print("selfSequence") self.assertRaises(RuntimeError, selfSequence ) + print("selfSequence done") + + print("selfGrandParentSequence") self.assertRaises(RuntimeError, selfGrandParentSequence ) + print("selfGrandParentSequence done") + + print("selfMergedGrandParentSequence") self.assertRaises(RuntimeError, selfMergedGrandParentSequence ) + print("selfMergedGrandParentSequence done") class FailedMerging( unittest.TestCase ): def runTest( self ): -- GitLab From 2bf5745fdf6c454998e9bec6d1c9d11d71aa21e1 Mon Sep 17 00:00:00 2001 From: Margherita Spalla <margherita.spalla@cern.ch> Date: Mon, 27 Jul 2020 17:44:59 +0200 Subject: [PATCH 205/459] cosmics must run on data only --- .../LArMonitoring/share/LArMonitoring_jobOption.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/LArCalorimeter/LArMonitoring/share/LArMonitoring_jobOption.py b/LArCalorimeter/LArMonitoring/share/LArMonitoring_jobOption.py index 91eeefb774c..0daa56fa714 100644 --- a/LArCalorimeter/LArMonitoring/share/LArMonitoring_jobOption.py +++ b/LArCalorimeter/LArMonitoring/share/LArMonitoring_jobOption.py @@ -19,8 +19,6 @@ if 'ESD' not in DQMonFlags.monManEnvironment(): if 'ESD' not in DQMonFlags.monManEnvironment(): from LArMonitoring.LArNoisyROMonAlg import LArNoisyROMonConfigOld topSequence += LArNoisyROMonConfigOld(DQMonFlags) - from LArMonitoring.LArCosmicsMonAlg import LArCosmicsMonConfigOld - topSequence +=LArCosmicsMonConfigOld(DQMonFlags) if globalflags.DataSource == 'data' and 'online' not in DQMonFlags.monManEnvironment(): from LArMonitoring.LArHVCorrMonAlg import LArHVCorrMonConfigOld @@ -39,3 +37,6 @@ if 'ESD' not in DQMonFlags.monManEnvironment() and globalflags.DataSource == 'da from LArMonitoring.LArCoverageAlg import LArCoverageConfigOld topSequence +=LArCoverageConfigOld(DQMonFlags) + from LArMonitoring.LArCosmicsMonAlg import LArCosmicsMonConfigOld + topSequence +=LArCosmicsMonConfigOld(DQMonFlags) + -- GitLab From ce5f2303aa46f7c15ff0ec40730fc6bb609de0b4 Mon Sep 17 00:00:00 2001 From: Alaettin Serhan Mete <alaettin.serhan.mete@cern.ch> Date: Mon, 27 Jul 2020 16:29:42 +0000 Subject: [PATCH 206/459] PerfMonVTune: Python3 fix for importing VTuneProfilerService --- .../PerformanceMonitoring/PerfMonVTune/python/JobOptCfg.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Control/PerformanceMonitoring/PerfMonVTune/python/JobOptCfg.py b/Control/PerformanceMonitoring/PerfMonVTune/python/JobOptCfg.py index 8a4799668a8..a11dfffed8f 100644 --- a/Control/PerformanceMonitoring/PerfMonVTune/python/JobOptCfg.py +++ b/Control/PerformanceMonitoring/PerfMonVTune/python/JobOptCfg.py @@ -1,6 +1,6 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -from PerfMonVTuneConf import VTuneProfilerService as _VTuneProfilerService +from PerfMonVTune.PerfMonVTuneConf import VTuneProfilerService as _VTuneProfilerService class VTuneProfilerService( _VTuneProfilerService ): -- GitLab From 1f18eb0fd7e87311795207c0cd433c276b1b258f Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi <andrii.verbytskyi@cern.ch> Date: Mon, 27 Jul 2020 16:48:54 +0000 Subject: [PATCH 207/459] Migration of the last portion of GeneratorFilters to HepMC3 --- .../GeneratorFilters/DstD0K3piFilter.h | 4 +- .../GeneratorFilters/src/DstD0K3piFilter.cxx | 95 +++++++++++++++- .../src/TTbarBoostCatFilter.cxx | 94 ++++++++++++---- .../src/TTbarPlusHeavyFlavorFilter.cxx | 73 ++++++++++++- .../src/TTbarWToLeptonFilter.cxx | 69 +++++++++--- .../GeneratorFilters/src/TopCKMFilter.cxx | 2 +- .../GeneratorFilters/src/WZtoLeptonFilter.cxx | 101 +++++++++++++++++- 7 files changed, 393 insertions(+), 45 deletions(-) diff --git a/Generators/GeneratorFilters/GeneratorFilters/DstD0K3piFilter.h b/Generators/GeneratorFilters/GeneratorFilters/DstD0K3piFilter.h index 84adc3da8d6..a5076dfee08 100644 --- a/Generators/GeneratorFilters/GeneratorFilters/DstD0K3piFilter.h +++ b/Generators/GeneratorFilters/GeneratorFilters/DstD0K3piFilter.h @@ -37,8 +37,8 @@ public: private: - bool CheckChildLundId(HepMC::GenParticlePtr mcpart, unsigned int nth, int chLundId); // Check lundId of Nth(0 or 1) children from mcpart... - bool IsCandidate(std::vector<float>& lundIds, std::vector<HepMC::GenParticlePtr>& genParticles); // Is Candidate among 6 intermediate state?? + bool CheckChildLundId(HepMC::ConstGenParticlePtr mcpart, unsigned int nth, int chLundId); // Check lundId of Nth(0 or 1) children from mcpart... + bool IsCandidate(std::vector<float>& lundIds, std::vector<HepMC::ConstGenParticlePtr>& genParticles); // Is Candidate among 6 intermediate state?? double m_Ptmin; double m_EtaRange; diff --git a/Generators/GeneratorFilters/src/DstD0K3piFilter.cxx b/Generators/GeneratorFilters/src/DstD0K3piFilter.cxx index 4c086ac70e3..8a9e571ce06 100644 --- a/Generators/GeneratorFilters/src/DstD0K3piFilter.cxx +++ b/Generators/GeneratorFilters/src/DstD0K3piFilter.cxx @@ -15,7 +15,16 @@ DstD0K3piFilter::DstD0K3piFilter(const std::string& name, ISvcLocator* pSvcLocat // If mcpart first child lundId equals chLundId, return true /// @todo No need for this to be a member function... useful in a HepMC utils library? -bool DstD0K3piFilter::CheckChildLundId(HepMC::GenParticlePtr mcpart, unsigned int nth, int chLundId) { +bool DstD0K3piFilter::CheckChildLundId(HepMC::ConstGenParticlePtr mcpart, unsigned int nth, int chLundId) { +#ifdef HEPMC3 + auto DecayVtx = mcpart->end_vertex(); + if (!DecayVtx) return false; + auto children=DecayVtx->particles_out(); + if (children.size() < 2) return false; + if (children.size() < nth) return false; + if (std::abs(children.at(nth)->pdg_id()) == chLundId) return true; + return false; +#else int nChild = 0; const HepMC::GenVertex* DecayVtx = mcpart->end_vertex(); if (DecayVtx != 0) nChild = DecayVtx->particles_out_size(); @@ -33,11 +42,59 @@ bool DstD0K3piFilter::CheckChildLundId(HepMC::GenParticlePtr mcpart, unsigned in if (std::abs(child_mcpart->pdg_id()) == chLundId) return true; } return false; +#endif } /// @todo No need for this to be a member function -bool DstD0K3piFilter::IsCandidate(std::vector<float>& lundIds, std::vector<HepMC::GenParticlePtr>& genParticles) { +bool DstD0K3piFilter::IsCandidate(std::vector<float>& lundIds, std::vector<HepMC::ConstGenParticlePtr>& genParticles) { +#ifdef HEPMC3 + unsigned int nDecay = lundIds.size(); + if (nDecay == 2) { + unsigned int id0 = std::abs( static_cast<int>(lundIds[0]) ); + unsigned int id1 = std::abs( static_cast<int>(lundIds[1]) ); + // 10323 211 k_1+ CLHEP::pi- + if ( id0 == 10323 && id1 == 211 ) { // // K_1+ CLHEP::pi- + if ( CheckChildLundId(genParticles[0], 0, 313) ) { // K*0 pi+ + int nChild = 0; + auto DecayVtx = genParticles[0]->end_vertex(); + if ( !DecayVtx) return false; + auto children=DecayVtx->particles_out(); + if ( children.size() != 2 ) return false; + if ( CheckChildLundId(children[0], 0, 321) ) return true; + } else if ( CheckChildLundId(genParticles[0], 0, 321) ) { // K+ rho0 or K+ CLHEP::pi CLHEP::pi + if ( CheckChildLundId(genParticles[0], 1, 113) || CheckChildLundId(genParticles[0], 1, 211) ) return true; + } + } else if (id0 == 313 && id1 == 113) { // // K^*0 rho0 + if ( CheckChildLundId(genParticles[0], 0, 321) ) // rho0 decays to CLHEP::pi+CLHEP::pi- 100% in decay.dec + return true; + } else if (id0 == 321 && id1 == 20213) { // // K+ a_1+ + if ( CheckChildLundId(genParticles[1], 0, 113) ) // a_1+ -> rho0 (113) CLHEP::pi+ + return true; + } + + } else if ( nDecay == 3 ) { + unsigned int id0 = std::abs( static_cast<int>(lundIds[0]) ); + unsigned int id1 = std::abs( static_cast<int>(lundIds[1]) ); + unsigned int id2 = std::abs( static_cast<int>(lundIds[2]) ); + if (id0 == 321 && id1 == 211 && id2 == 113) { // K+ CLHEP::pi- rho0 + return true; // rho0 decays to CLHEP::pi+CLHEP::pi- 100% in decay.dec + } + if (id0 == 313 && id1 == 211 && id2 == 211 ) { // K^*+ CLHEP::pi- CLHEP::pi+ + if ( CheckChildLundId(genParticles[0], 0, 321) ) return true; + } + + } else if (nDecay ==4) { // K CLHEP::pi CLHEP::pi CLHEP::pi non-resonant + unsigned int id0 = std::abs( static_cast<int>(lundIds[0]) ); + unsigned int id1 = std::abs( static_cast<int>(lundIds[1]) ); + unsigned int id2 = std::abs( static_cast<int>(lundIds[2]) ); + unsigned int id3 = std::abs( static_cast<int>(lundIds[3]) ); + if (id0 == 321 && id1 == 211 && id2 == 211 && id3 == 211) { + return true; + } + } + return false; +#else unsigned int nDecay = lundIds.size(); if (nDecay == 2) { unsigned int id0 = std::abs( static_cast<int>(lundIds[0]) ); @@ -85,6 +142,7 @@ bool DstD0K3piFilter::IsCandidate(std::vector<float>& lundIds, std::vector<HepMC } } return false; +#endif } @@ -92,6 +150,36 @@ StatusCode DstD0K3piFilter::filterEvent() { McEventCollection::const_iterator itr; for (itr = events()->begin(); itr != events()->end(); ++itr) { // Loop to select D* const HepMC::GenEvent* genEvt = *itr; +#ifdef HEPMC3 + for (auto pitr: *genEvt) { + if (std::abs(pitr->pdg_id()) != 413) continue; // D*+ + if (pitr->momentum().perp() < m_Ptmin) continue; + if (std::abs(pitr->momentum().pseudoRapidity()) > m_EtaRange) continue; + auto DstDecayVtx = pitr->end_vertex(); + if (!DstDecayVtx) continue; // Check that we got a valid pointer and retrieve the number of daughters + auto DstChild = DstDecayVtx->particles_out(); + ATH_MSG_DEBUG("D*+- meson found with Nchild = " << DstChild.size() << " and PDG ID = " << pitr->pdg_id()); + if (DstChild.size() != 2) continue; + for ( auto mcpartD0: DstChild ) { + if (std::abs(mcpartD0->pdg_id()) != 421) continue; // D0 + auto D0DecayVtx = mcpartD0->end_vertex(); + if (!D0DecayVtx) continue; // Check that we got a valid pointer and retrieve the number of daughters + auto D0Child = D0DecayVtx->particles_out(); + if (D0Child.size() > 4) continue; // For this analysis we are only interested in D*->D0 pi+ + ATH_MSG_DEBUG("D0 meson found with Nchild = " << D0Child.size() << " and PDF ID = " << mcpartD0->pdg_id()); + + std::vector<float> lundIds; + std::vector<HepMC::ConstGenParticlePtr> genParticles; + for (auto grandchild: *D0DecayVtx){ + genParticles.push_back(grandchild); + lundIds.push_back(grandchild->pdg_id()); + } + if (IsCandidate(lundIds, genParticles)) { + return StatusCode::SUCCESS; + } + } + } +#else for (HepMC::GenEvent::particle_const_iterator pitr=genEvt->particles_begin(); pitr!=genEvt->particles_end(); ++pitr) { // Work only with D* if (std::abs((*pitr)->pdg_id()) != 413) continue; // D*+ @@ -123,7 +211,7 @@ StatusCode DstD0K3piFilter::filterEvent() { ATH_MSG_DEBUG("D0 meson found with Nchild = " << nD0Child << " and PDF ID = " << child_mcpart->pdg_id()); std::vector<float> lundIds; - std::vector<HepMC::GenParticle*> genParticles; + std::vector<const HepMC::GenParticle*> genParticles; if (D0DecayVtx) { HepMC::GenVertex::particles_in_const_iterator grandchild_mcpartItr = D0DecayVtx->particles_out_const_begin(); @@ -146,6 +234,7 @@ StatusCode DstD0K3piFilter::filterEvent() { } } } +#endif } setFilterPassed(false); return StatusCode::SUCCESS; diff --git a/Generators/GeneratorFilters/src/TTbarBoostCatFilter.cxx b/Generators/GeneratorFilters/src/TTbarBoostCatFilter.cxx index 7f3b3c9322f..50e14e42b34 100644 --- a/Generators/GeneratorFilters/src/TTbarBoostCatFilter.cxx +++ b/Generators/GeneratorFilters/src/TTbarBoostCatFilter.cxx @@ -61,13 +61,72 @@ StatusCode TTbarBoostCatFilter::filterEvent() { if(m_LepPtmin*m_LepPtmax <0 && m_LepPtmin < 0 ) m_LepPtmin = 0.; if(m_LepPtmin*m_LepPtmax <0 && m_LepPtmax < 0 ) m_LepPtmax = 14000000.; // 14 TeV - std::vector<HepMC::GenParticlePtr> tops; - std::vector<HepMC::GenParticlePtr> ws; // W from top decay (from tops) - std::vector<HepMC::GenParticlePtr> leps; // e, mu, tau from W decay (from ws) - std::vector<HepMC::GenParticlePtr> nus; // nutrino from W decay (from ws) + std::vector<HepMC::ConstGenParticlePtr> tops; + std::vector<HepMC::ConstGenParticlePtr> ws; // W from top decay (from tops) + std::vector<HepMC::ConstGenParticlePtr> leps; // e, mu, tau from W decay (from ws) + std::vector<HepMC::ConstGenParticlePtr> nus; // nutrino from W decay (from ws) for (McEventCollection::const_iterator itr = events()->begin(); itr!=events()->end(); ++itr) { const HepMC::GenEvent* genEvt = (*itr); +#ifdef HEPMC3 + for (auto pitr: *genEvt) { + if (std::abs(pitr->pdg_id()) != 6) continue; + if ( pitr->pdg_id() == 6 ) N_quark_t_all++; + if ( pitr->pdg_id() == -6 ) N_quark_tbar_all++; + auto decayVtx = pitr->end_vertex(); + // Verify if we got a valid pointer and retrieve the number of daughters + if (!decayVtx) continue; + // For this analysis we are not interested in t->t MC structures, only in decays + for (auto child_mcpart: *decayVtx ) { + // Implicitly assume that tops always decay to W X + if (std::abs(child_mcpart->pdg_id()) == 24) { + if ( pitr->pdg_id() == 6 ){ + N_quark_t++; + tops.push_back(pitr); + ws.push_back(child_mcpart); + } + if ( pitr->pdg_id() == -6 ){ + N_quark_tbar++; + tops.push_back(pitr); + ws.push_back(child_mcpart); + } + bool useNextVertex = false; + auto w_decayVtx = child_mcpart->end_vertex(); + + while (w_decayVtx) { + useNextVertex = false; + for (auto grandchild_mcpart: *w_decayVtx) { + int grandchild_pid = grandchild_mcpart->pdg_id(); + ATH_MSG_DEBUG("W (t/tbar) has " << w_decayVtx->particles_out().size() << " children and the pdg_id of the next is " << grandchild_pid); + // Check if the W's child is W again. If yes, then move to its next decay vertex in a decay tree + if (std::abs(grandchild_pid) == 24) { + w_decayVtx = grandchild_mcpart->end_vertex(); + + // If something wrong comes from truth... + if (!w_decayVtx) { + ATH_MSG_ERROR("A stable W is found... "); + break; + } + useNextVertex = true; + break; + } + if (std::abs(grandchild_pid) == 11 || std::abs(grandchild_pid) == 13 || std::abs(grandchild_pid) == 15) { + leps.push_back(grandchild_mcpart); + if (grandchild_mcpart->momentum().perp() >= m_Ptmin) N_pt_above_cut++; + // W decay lepton is found. Break loop over the decay product particles + // break; + } + if (abs(grandchild_pid) == 12 || abs(grandchild_pid) == 14 || abs(grandchild_pid) == 16) { + nus.push_back(grandchild_mcpart); + } + } + // If investigation of W's next decay vertex is not required then finish looking for leptons + if (!useNextVertex) break; + } + } + } + } +#else for (HepMC::GenEvent::particle_const_iterator pitr = genEvt->particles_begin(); pitr != genEvt->particles_end(); ++pitr) { if (std::abs((*pitr)->pdg_id()) == 6) { if ( (*pitr)->pdg_id() == 6 ) N_quark_t_all++; @@ -154,6 +213,7 @@ StatusCode TTbarBoostCatFilter::filterEvent() { } } } +#endif } if(tops.size()==2){ @@ -231,29 +291,21 @@ StatusCode TTbarBoostCatFilter::filterEvent() { for (McEventCollection::const_iterator itr = events()->begin(); itr!=events()->end(); ++itr) { event++; const HepMC::GenEvent* genEvt = (*itr); - HepMC::GenEvent::particle_const_iterator mcpartItr = genEvt->particles_begin(); - HepMC::GenEvent::particle_const_iterator mcpartItrE = genEvt->particles_end(); - int part ( 0 ); - for (; mcpartItr != mcpartItrE; ++mcpartItr) { + int part=0; + for (auto mcpart: *genEvt ) { part++; - HepMC::GenParticle * mcpart = (*mcpartItr); int pid = mcpart->pdg_id(); ATH_MSG_ERROR("In event (from MC collection) " << event << " particle number " << part << " has pdg_id = " << pid); // retrieve decay vertex - const HepMC::GenVertex * decayVtx = mcpart->end_vertex(); - + auto decayVtx = mcpart->end_vertex(); // verify if we got a valid pointer - if ( decayVtx != 0 ) { - HepMC::GenVertex::particles_in_const_iterator child_mcpartItr = decayVtx->particles_out_const_begin(); - HepMC::GenVertex::particles_in_const_iterator child_mcpartItrE = decayVtx->particles_out_const_end(); - int part_child ( 0 ); - for (; child_mcpartItr != child_mcpartItrE; ++child_mcpartItr) { - part_child++; - HepMC::GenParticle * child_mcpart = (*child_mcpartItr); - int child_pid = child_mcpart->pdg_id(); - ATH_MSG_ERROR(" child " << part_child << " with pdg_id = " << child_pid); - } + if ( !decayVtx) continue; + int part_child =0 ; + for ( auto child_mcpart: *decayVtx) { + part_child++; + int child_pid = child_mcpart->pdg_id(); + ATH_MSG_ERROR(" child " << part_child << " with pdg_id = " << child_pid); } } } diff --git a/Generators/GeneratorFilters/src/TTbarPlusHeavyFlavorFilter.cxx b/Generators/GeneratorFilters/src/TTbarPlusHeavyFlavorFilter.cxx index 5092d2403ce..11f46f22778 100644 --- a/Generators/GeneratorFilters/src/TTbarPlusHeavyFlavorFilter.cxx +++ b/Generators/GeneratorFilters/src/TTbarPlusHeavyFlavorFilter.cxx @@ -3,7 +3,7 @@ */ #include "GeneratorFilters/TTbarPlusHeavyFlavorFilter.h" - +#include "AtlasHepMC/Relatives.h" #include "GaudiKernel/MsgStream.h" //-------------------------------------------------------------------------- @@ -226,6 +226,15 @@ bool TTbarPlusHeavyFlavorFilter::isInitialHadron(HepMC::ConstGenParticlePtr part auto prod = part->production_vertex(); if(prod){ int type = hadronType(part->pdg_id()); +#ifdef HEPMC3 + for(auto firstParent: prod->particles_in()){ + if( HepMC::barcode(part) < HepMC::barcode(firstParent) ) continue; /// protection for sherpa + int mothertype = hadronType( firstParent->pdg_id() ); + if( mothertype == type ){ + return false; + } + } +#else HepMC::GenVertex::particle_iterator firstParent = prod->particles_begin(HepMC::parents); HepMC::GenVertex::particle_iterator endParent = prod->particles_end(HepMC::parents); for(;firstParent!=endParent; ++firstParent){ @@ -235,6 +244,7 @@ bool TTbarPlusHeavyFlavorFilter::isInitialHadron(HepMC::ConstGenParticlePtr part return false; } } +#endif } @@ -247,6 +257,15 @@ bool TTbarPlusHeavyFlavorFilter::isFinalHadron(HepMC::ConstGenParticlePtr part) auto end = part->end_vertex(); if(end){ int type = hadronType(part->pdg_id()); +#ifdef HEPMC3 + for(auto firstChild: end->particles_in()){ + if( HepMC::barcode(part) > HepMC::barcode(firstChild) ) continue; /// protection for sherpa + int childtype = hadronType( firstChild->pdg_id() ); + if( childtype == type ){ + return false; + } + } +#else HepMC::GenVertex::particle_iterator firstChild = end->particles_begin(HepMC::children); HepMC::GenVertex::particle_iterator endChild = end->particles_end(HepMC::children); for(;firstChild!=endChild; ++firstChild){ @@ -256,6 +275,7 @@ bool TTbarPlusHeavyFlavorFilter::isFinalHadron(HepMC::ConstGenParticlePtr part) return false; } } +#endif } @@ -269,6 +289,15 @@ bool TTbarPlusHeavyFlavorFilter::isQuarkFromHadron(HepMC::ConstGenParticlePtr pa auto prod = part->production_vertex(); if(prod){ +#ifdef HEPMC3 + for(auto firstParent: HepMC::ancestor_particles(prod)){ + if( HepMC::barcode(part) < HepMC::barcode(firstParent) ) continue; /// protection for sherpa + int mothertype = hadronType( firstParent->pdg_id() ); + if( 4 == mothertype || 5 == mothertype ){ + return true; + } + } +#else HepMC::GenVertex::particle_iterator firstParent = prod->particles_begin(HepMC::ancestors); HepMC::GenVertex::particle_iterator endParent = prod->particles_end(HepMC::ancestors); for(;firstParent!=endParent; ++firstParent){ @@ -278,6 +307,7 @@ bool TTbarPlusHeavyFlavorFilter::isQuarkFromHadron(HepMC::ConstGenParticlePtr pa return true; } } +#endif } @@ -291,6 +321,14 @@ bool TTbarPlusHeavyFlavorFilter::isCHadronFromB(HepMC::ConstGenParticlePtr part) auto prod = part->production_vertex(); if(prod){ +#ifdef HEPMC3 + for(auto firstParent:HepMC::ancestor_particles(prod)){ + if( HepMC::barcode(part) < HepMC::barcode(firstParent) ) continue; /// protection for sherpa + if( isBHadron(firstParent) ){ + return true; + } + } +#else HepMC::GenVertex::particle_iterator firstParent = prod->particles_begin(HepMC::ancestors); HepMC::GenVertex::particle_iterator endParent = prod->particles_end(HepMC::ancestors); for(;firstParent!=endParent; ++firstParent){ @@ -299,6 +337,7 @@ bool TTbarPlusHeavyFlavorFilter::isCHadronFromB(HepMC::ConstGenParticlePtr part) return true; } } +#endif } @@ -314,12 +353,19 @@ bool TTbarPlusHeavyFlavorFilter::isLooping(HepMC::ConstGenParticlePtr part, std: init_part.insert(part); +#ifdef HEPMC3 + for(auto firstParent: prod->particles_in()){ + if( init_part.find(firstParent) != init_part.end() ) return true; + if( isLooping(firstParent, init_part) ) return true; + } +#else HepMC::GenVertex::particle_iterator firstParent = prod->particles_begin(HepMC::parents); HepMC::GenVertex::particle_iterator endParent = prod->particles_end(HepMC::parents); for(;firstParent!=endParent; ++firstParent){ if( init_part.find(*firstParent) != init_part.end() ) return true; if( isLooping(*firstParent, init_part) ) return true; } +#endif return false; @@ -333,6 +379,14 @@ HepMC::ConstGenParticlePtr TTbarPlusHeavyFlavorFilter::findInitial(HepMC::Const if(!prod) return part; +#ifdef HEPMC3 + for(auto firstParent: prod->particles_in()){ + if( HepMC::barcode(part) < HepMC::barcode(firstParent) && looping) continue; /// protection for sherpa + if( part->pdg_id() == firstParent->pdg_id() ){ + return findInitial(firstParent, looping); + } + } +#else HepMC::GenVertex::particle_iterator firstParent = prod->particles_begin(HepMC::parents); HepMC::GenVertex::particle_iterator endParent = prod->particles_end(HepMC::parents); for(;firstParent!=endParent; ++firstParent){ @@ -341,6 +395,7 @@ HepMC::ConstGenParticlePtr TTbarPlusHeavyFlavorFilter::findInitial(HepMC::Const return findInitial(*firstParent, looping); } } +#endif return part; @@ -359,12 +414,19 @@ bool TTbarPlusHeavyFlavorFilter::isDirectlyFromTop(HepMC::ConstGenParticlePtr pa if(!prod) return false; +#ifdef HEPMC3 + for( auto firstParent: prod->particles_in()){ + if( HepMC::barcode(part) < HepMC::barcode(firstParent) && looping ) continue; /// protection for sherpa + if( std::abs( firstParent->pdg_id() ) == 6 ) return true; + } +#else HepMC::GenVertex::particle_iterator firstParent = prod->particles_begin(HepMC::parents); HepMC::GenVertex::particle_iterator endParent = prod->particles_end(HepMC::parents); for(;firstParent!=endParent; ++firstParent){ if( part->barcode() < (*firstParent)->barcode() && looping ) continue; /// protection for sherpa if( abs( (*firstParent)->pdg_id() ) == 6 ) return true; } +#endif return false; } @@ -377,6 +439,14 @@ bool TTbarPlusHeavyFlavorFilter::isDirectlyFromWTop(HepMC::ConstGenParticlePtr p if(!prod) return false; +#ifdef HEPMC3 + for(auto firstParent: prod->particles_in()){ + if( HepMC::barcode(part) < HepMC::barcode(firstParent) && looping ) continue; /// protection for sherpa + if( abs( firstParent->pdg_id() ) == 24 ){ + if( isFromTop(firstParent, looping) ) return true; + } + } +#else HepMC::GenVertex::particle_iterator firstParent = prod->particles_begin(HepMC::parents); HepMC::GenVertex::particle_iterator endParent = prod->particles_end(HepMC::parents); for(;firstParent!=endParent; ++firstParent){ @@ -385,6 +455,7 @@ bool TTbarPlusHeavyFlavorFilter::isDirectlyFromWTop(HepMC::ConstGenParticlePtr p if( isFromTop(*firstParent, looping) ) return true; } } +#endif return false; diff --git a/Generators/GeneratorFilters/src/TTbarWToLeptonFilter.cxx b/Generators/GeneratorFilters/src/TTbarWToLeptonFilter.cxx index f23134a46c1..0276a6e5a59 100644 --- a/Generators/GeneratorFilters/src/TTbarWToLeptonFilter.cxx +++ b/Generators/GeneratorFilters/src/TTbarWToLeptonFilter.cxx @@ -21,6 +21,53 @@ StatusCode TTbarWToLeptonFilter::filterEvent() { for (McEventCollection::const_iterator itr = events()->begin(); itr!=events()->end(); ++itr) { const HepMC::GenEvent* genEvt = (*itr); +#ifdef HEPMC3 + for (auto pitr: *genEvt) { + if (std::abs(pitr->pdg_id()) != 6) continue; + if ( pitr->pdg_id() == 6 ) N_quark_t_all++; + if ( pitr->pdg_id() == -6 ) N_quark_tbar_all++; + auto decayVtx = pitr->end_vertex(); + // Verify if we got a valid pointer and retrieve the number of daughters + if (!decayVtx) continue; + // For this analysis we are not interested in t->t MC structures, only in decays + if (decayVtx->particles_out().size() < 2) continue; + for (auto child_mcpart: decayVtx->particles_out()) { + // Implicitly assume that tops always decay to W X + if (std::abs(child_mcpart->pdg_id()) != 24) continue; + if ( pitr->pdg_id() == 6 ) N_quark_t++; + if ( pitr->pdg_id() == -6 ) N_quark_tbar++; + + bool useNextVertex = false; + auto w_decayVtx = child_mcpart->end_vertex(); + while (w_decayVtx) { + useNextVertex = false; + for (auto grandchild_mcpart: *w_decayVtx) { + int grandchild_pid = grandchild_mcpart->pdg_id(); + ATH_MSG_DEBUG("W (t/tbar) has " << w_decayVtx->particles_out().size() << " children and the pdg_id of the next is " << grandchild_pid); + // Check if the W's child is W again. If yes, then move to its next decay vertex in a decay tree + if (std::abs(grandchild_pid) == 24) { + w_decayVtx = grandchild_mcpart->end_vertex(); + // If something wrong comes from truth... + if (!w_decayVtx) { + ATH_MSG_ERROR("A stable W is found... "); + break; + } + useNextVertex = true; + break; + } + + if (std::abs(grandchild_pid) == 11 || std::abs(grandchild_pid) == 13 || abs(grandchild_pid) == 15) { + if (grandchild_mcpart->momentum().perp() >= m_Ptmin) N_pt_above_cut++; + // W decay lepton is found. Break loop over the decay product particles + break; + } + } + // If investigation of W's next decay vertex is not required then finish looking for leptons + if (!useNextVertex) break; + } + } + } +#else for (HepMC::GenEvent::particle_const_iterator pitr = genEvt->particles_begin(); pitr != genEvt->particles_end(); ++pitr) { if (std::abs((*pitr)->pdg_id()) == 6) { if ( (*pitr)->pdg_id() == 6 ) N_quark_t_all++; @@ -93,6 +140,7 @@ StatusCode TTbarWToLeptonFilter::filterEvent() { } } } +#endif } ATH_MSG_INFO("Found " << N_quark_t_all << " t quarks in event record"); @@ -113,30 +161,21 @@ StatusCode TTbarWToLeptonFilter::filterEvent() { for (McEventCollection::const_iterator itr = events()->begin(); itr!=events()->end(); ++itr) { event++; const HepMC::GenEvent* genEvt = (*itr); - HepMC::GenEvent::particle_const_iterator mcpartItr = genEvt->particles_begin(); - HepMC::GenEvent::particle_const_iterator mcpartItrE = genEvt->particles_end(); - int part ( 0 ); - for (; mcpartItr != mcpartItrE; ++mcpartItr) { + int part=0 ; + for (auto mcpart: *genEvt) { part++; - HepMC::GenParticle * mcpart = (*mcpartItr); int pid = mcpart->pdg_id(); ATH_MSG_ERROR("In event (from MC collection) " << event << " particle number " << part << " has pdg_id = " << pid); - // retrieve decay vertex - const HepMC::GenVertex * decayVtx = mcpart->end_vertex(); - + auto decayVtx = mcpart->end_vertex(); // verify if we got a valid pointer - if ( decayVtx != 0 ) { - HepMC::GenVertex::particles_in_const_iterator child_mcpartItr = decayVtx->particles_out_const_begin(); - HepMC::GenVertex::particles_in_const_iterator child_mcpartItrE = decayVtx->particles_out_const_end(); - int part_child ( 0 ); - for (; child_mcpartItr != child_mcpartItrE; ++child_mcpartItr) { + if ( !decayVtx ) continue; + int part_child=0; + for ( auto child_mcpart: *decayVtx) { part_child++; - HepMC::GenParticle * child_mcpart = (*child_mcpartItr); int child_pid = child_mcpart->pdg_id(); ATH_MSG_ERROR(" child " << part_child << " with pdg_id = " << child_pid); } - } } } setFilterPassed(false); diff --git a/Generators/GeneratorFilters/src/TopCKMFilter.cxx b/Generators/GeneratorFilters/src/TopCKMFilter.cxx index 6363fc2b8b3..deec55083eb 100644 --- a/Generators/GeneratorFilters/src/TopCKMFilter.cxx +++ b/Generators/GeneratorFilters/src/TopCKMFilter.cxx @@ -51,7 +51,7 @@ StatusCode TopCKMFilter::filterEvent() { { Wbosons[i]=Child->pdg_id(); if (!Child->end_vertex()) continue; - for (auto gChild: *(Child->end_vertex()) if (std::abs(gChild->pdg_id()) == 15) isTau[i] = true; + for (auto gChild: *(Child->end_vertex())) if (std::abs(gChild->pdg_id()) == 15) isTau[i] = true; } } } diff --git a/Generators/GeneratorFilters/src/WZtoLeptonFilter.cxx b/Generators/GeneratorFilters/src/WZtoLeptonFilter.cxx index c91f1f2002f..a93729e6880 100644 --- a/Generators/GeneratorFilters/src/WZtoLeptonFilter.cxx +++ b/Generators/GeneratorFilters/src/WZtoLeptonFilter.cxx @@ -8,6 +8,7 @@ #include "McParticleEvent/TruthParticleContainer.h" #include "CLHEP/Vector/LorentzVector.h" #include "GaudiKernel/ObjectList.h" +#include "AtlasHepMC/Relatives.h" WZtoLeptonFilter::WZtoLeptonFilter(const std::string& name, ISvcLocator* pSvcLocator) : GenFilter( name,pSvcLocator ), @@ -203,8 +204,6 @@ StatusCode WZtoLeptonFilter::filterFinalize() { StatusCode WZtoLeptonFilter::filterEvent() { - HepMC::GenVertexPtr LePrdVrt; - HepMC::GenVertexPtr TauPrdVrt; // Momentum of the products of the tau decay CLHEP::HepLorentzVector mom_hadrons; @@ -244,6 +243,103 @@ StatusCode WZtoLeptonFilter::filterEvent() { if (wgtsC.size() > 0) wght = wgtsC[0]; m_tot_wghts += wght; +#ifdef HEPMC3 +HepMC::ConstGenVertexPtr LePrdVrt; +HepMC::ConstGenVertexPtr TauPrdVrt; + for ( auto pitr: *genEvt) { + LePrdVrt = 0; + TauPrdVrt = 0; + lepid = pitr->pdg_id(); + abslepid = std::abs( lepid ); + + if ((abslepid != 11 && abslepid != 13) || pitr->status() != 1) continue; + double leppt = pitr->momentum().perp(); + double lepeta = std::abs( pitr->momentum().pseudoRapidity() ); + + LePrdVrt = pitr->production_vertex(); + int anceWZ = 0; + int momWZ = 0; + int taufromWZ = 0; + + if (LePrdVrt != NULL) { + int ancecnt = 0; + for (auto lepanc: HepMC::ancestor_particles(LePrdVrt) ) { + int ancepid = lepanc->pdg_id(); + int ancestatus = lepanc->status(); + if ( m_tesit == 1 ) { + ATH_MSG_DEBUG("lepton=" << lepid << " " << ancecnt << + "'th ancestors=" << ancepid << " status =" << ancestatus); + } + if ( std::abs(ancepid) == 24 || std::abs(ancepid) == 23 ) anceWZ ++; + ancecnt ++; + } // end of lepton ancestors( mother, grandmother ... ) test + + + int momcnt = 0; + taufromWZ = 0; + for (auto lepanc: LePrdVrt->particles_in() ) { + int mompid = lepanc->pdg_id(); + int momstatus = lepanc->status(); + if ( m_tesit == 1 ) { + ATH_MSG_DEBUG(momcnt << "'th mom with pid= " << mompid << " mom status = " << momstatus); + } + if ( std::abs(mompid) ==15 ) { + TauPrdVrt = lepanc->production_vertex(); + for (auto taumom: TauPrdVrt->particles_in() ) { + int wzpdg = taumom->pdg_id(); + if (abs(wzpdg) == 24 || abs(wzpdg) == 23 || (wzpdg == mompid && anceWZ > 0)) taufromWZ++; + if ( m_tesit == 1 ) ATH_MSG_DEBUG("tau mother =" << wzpdg); + } + } + + if (abs(mompid)==24 || abs(mompid)==23 || (anceWZ > 0 && mompid==lepid) || (abs(mompid) == 15 && taufromWZ > 0)) momWZ++; + } // end of lepton mother test loop + + if ( momWZ > 0 && anceWZ > 0 ) iWL++; + else iBL++; + + if ( ( abslepid == 11 && leppt >= m_Pt_e && lepeta <= m_Eta_e ) ||( abslepid == 13 && leppt >= m_Pt_mu && lepeta <= m_Eta_mu ) ) { + if ( m_tesit == 1 ) ATH_MSG_DEBUG("Phase space OK"); + if ( momWZ > 0 && anceWZ > 0 ) { + iwl++; + if (m_signal != 1) iwls++; + if ( taufromWZ > 0 ) taulep++; + else { + if ( abslepid == 11 ) etronCT++; else muonCT++; + } + } else { + ibl++; + if ( m_signal != 1 ) { + if ( abslepid == 11 ) etronCT ++; + else muonCT ++; + } + } + if ( lepid > 0 ) posilep ++; + else negalep ++; + } + + if (m_tesit == 1) { + ATH_MSG_DEBUG("iWL=" << iWL << " iwl=" << iwl << " iBL=" << iBL << " ibl=" << ibl); + if ( iWL == 0 && iBL == 0 ) ATH_MSG_WARNING("Check !!! Unexpected filter LEAKAGE !"); + } + } else { // I've prayed for the upstream generators to give less chaos/duplications + nullvertex ++; + if ( m_tesit == 1 ) ATH_MSG_DEBUG(" NULL production vertex is met !"); + if ( m_signal != 1 ) { + if ( ( abslepid == 11 && leppt >= m_Pt_e && lepeta <= m_Eta_e ) ||( abslepid == 13 && leppt >= m_Pt_mu && lepeta <= m_Eta_mu ) ) { + if ( m_tesit == 1 ) ATH_MSG_DEBUG("Phase space OK, NULL prod-vertex"); + if ( abslepid == 11 ) etronCT ++; + else muonCT ++; + + if ( lepid > 0 ) posilep ++; + else negalep ++; + } // anyway need for kinematical requirements + } // only work for conservation for backgrounds + } // End if for muon/electron mom vertex test + } // end of all mc_particles +#else + HepMC::GenVertex* LePrdVrt; + HepMC::GenVertex* TauPrdVrt; for ( HepMC::GenEvent::particle_const_iterator pitr = genEvt->particles_begin(); pitr != genEvt->particles_end(); ++pitr) { LePrdVrt = 0; TauPrdVrt = 0; @@ -346,6 +442,7 @@ StatusCode WZtoLeptonFilter::filterEvent() { } // End if for muon/electron mom vertex test } // end of leptonic pid } // end of all mc_particles +#endif leps = (m_signal == 1) ? etronCT + muonCT : etronCT + muonCT + taulep; -- GitLab From f696071b24ba6eb3f5a3701dcaf8816b80004fad Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Mon, 27 Jul 2020 18:55:15 +0200 Subject: [PATCH 208/459] Remove duplicated line --- .../TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py index 4c4b2d7d642..6b24b4c0736 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py @@ -182,7 +182,6 @@ def makeHLTTree(newJO=False, triggerConfigHLT = None): Configurable.configurableRun3Behavior=1 monAcc, monAlg = triggerMonitoringCfg( ConfigFlags, hypos, filters, l1decoder ) - edmAlg = triggerMergeViewsAndAddMissingEDMCfg(['AOD', 'ESD'], hypos, viewMakers, decObj, decObjHypoOut) Configurable.configurableRun3Behavior=0 hltEndSeq += conf2toConfigurable( monAlg ) appendCAtoAthena( monAcc ) -- GitLab From 42d6369b9069595a3634621364931ab300f4f528 Mon Sep 17 00:00:00 2001 From: Tim Martin <Tim.Martin@cern.ch> Date: Mon, 27 Jul 2020 19:04:56 +0200 Subject: [PATCH 209/459] Use full type name to locate CLID --- .../TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx index 0a5bb889663..0ad0be5faf8 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx @@ -205,10 +205,10 @@ StatusCode TriggerEDMSerialiserTool::serialiseDynAux( DataObject* dObj, const Ad for (SG::auxid_t auxVarID : selected ) { - const std::string typeName = SG::AuxTypeRegistry::instance().getVecTypeName(auxVarID); const std::string decorationName = SG::AuxTypeRegistry::instance().getName(auxVarID); const std::type_info* tinfo = auxStoreIO->getIOType (auxVarID); - + const std::string typeName = SG::AuxTypeRegistry::instance().getVecTypeName(auxVarID); + const std::string fullTypeName = System::typeinfoName( *tinfo ); ATH_CHECK( tinfo != nullptr ); TClass* cls = TClass::GetClass (*tinfo); @@ -217,10 +217,7 @@ StatusCode TriggerEDMSerialiserTool::serialiseDynAux( DataObject* dObj, const Ad ATH_MSG_DEBUG( "Streaming " << decorationName << " of type " << typeName << " aux ID " << auxVarID << " class " << cls->GetName() ); CLID clid; - if ( m_clidSvc->getIDOfTypeName(typeName, clid).isFailure() ) { - ATH_MSG_ERROR( "Can not obtain CLID of: " << typeName ); - return StatusCode::FAILURE; - } + ATH_CHECK( m_clidSvc->getIDOfTypeInfoName(fullTypeName, clid) ); ATH_MSG_DEBUG( "CLID " << clid ); RootType classDesc = RootType::ByNameNoQuiet( cls->GetName() ); -- GitLab From 37c06ac1b718113662c48610bca1b9d3b18f176f Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Mon, 27 Jul 2020 18:14:37 +0100 Subject: [PATCH 210/459] remove _v1 --- .../xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h | 4 ++-- Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h | 4 ++-- Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h | 4 ++-- Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h | 4 ++-- .../xAODTracking/NeutralParticleContainerFwd.h | 7 +++---- .../xAODTracking/xAODTracking/TrackParticleContainerFwd.h | 4 ++-- 6 files changed, 13 insertions(+), 14 deletions(-) diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h index 5e17d9da0a2..75bf82dcff5 100644 --- a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h +++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h @@ -11,11 +11,11 @@ #include "xAODCaloEvent/CaloClusterFwd.h" #include "xAODBase/IParticleContainer.h" -DATAVECTOR_BASE_FWD( xAOD::CaloCluster_v1, xAOD::IParticle ); +DATAVECTOR_BASE_FWD( xAOD::CaloCluster, xAOD::IParticle ); namespace xAOD { /// Define the cluster container as a simple DataVector - typedef DataVector< CaloCluster_v1 > CaloClusterContainer_v1; + typedef DataVector< CaloCluster > CaloClusterContainer_v1; } diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h b/Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h index 4d9502b3f8b..78a05f6ea76 100644 --- a/Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h +++ b/Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h @@ -12,10 +12,10 @@ #include "xAODBase/IParticleContainer.h" #include "xAODEgamma/EgammaFwd.h" -DATAVECTOR_BASE_FWD( xAOD::Egamma_v1, xAOD::IParticle); +DATAVECTOR_BASE_FWD( xAOD::Egamma, xAOD::IParticle); namespace xAOD { /// Definition of the current "egamma container version" - typedef DataVector<Egamma_v1> EgammaContainer; + typedef DataVector<Egamma> EgammaContainer; } #endif // XAODEGAMMA_EGAMMACONTAINERFWD_H diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h b/Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h index 600e208470e..b04a179edfa 100644 --- a/Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h +++ b/Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h @@ -11,10 +11,10 @@ #include "xAODEgamma/ElectronFwd.h" #include "xAODEgamma/EgammaContainerFwd.h" -DATAVECTOR_BASE_FWD( xAOD::Electron_v1, xAOD::Egamma ); +DATAVECTOR_BASE_FWD( xAOD::Electron, xAOD::Egamma ); namespace xAOD { /// The container is a simple typedef for now - typedef DataVector< xAOD::Electron_v1> ElectronContainer; + typedef DataVector< xAOD::Electron> ElectronContainer; } diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h b/Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h index 36ac8444b74..ff0d5cfec83 100644 --- a/Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h +++ b/Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h @@ -11,10 +11,10 @@ #include "xAODEgamma/PhotonFwd.h" #include "xAODEgamma/EgammaContainerFwd.h" -DATAVECTOR_BASE_FWD( xAOD::Photon_v1, xAOD::Egamma ); +DATAVECTOR_BASE_FWD( xAOD::Photon, xAOD::Egamma ); namespace xAOD { /// The container is a simple typedef for now - typedef DataVector< xAOD::Photon_v1 > PhotonContainer; + typedef DataVector< xAOD::Photon > PhotonContainer; } diff --git a/Event/xAOD/xAODTracking/xAODTracking/NeutralParticleContainerFwd.h b/Event/xAOD/xAODTracking/xAODTracking/NeutralParticleContainerFwd.h index e56d9bd5072..f74a98a5ac4 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/NeutralParticleContainerFwd.h +++ b/Event/xAOD/xAODTracking/xAODTracking/NeutralParticleContainerFwd.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id$ #ifndef XAODTRACKING_NEUTRALPARTICLECONTAINERFWD_H #define XAODTRACKING_NEUTRALPARTICLECONTAINERFWD_H @@ -18,10 +17,10 @@ #include "xAODTracking/NeutralParticleFwd.h" // Declare that this is a vector of IParticle-derived objects -DATAVECTOR_BASE_FWD( xAOD::NeutralParticle_v1, xAOD::IParticle ); +DATAVECTOR_BASE_FWD( xAOD::NeutralParticle, xAOD::IParticle ); namespace xAOD { /// Provide a forward declaration for NeutralParticleContainer - typedef DataVector< NeutralParticle_v1> NeutralParticleContainer; + typedef DataVector< NeutralParticle> NeutralParticleContainer; } #endif // XAODTRACKING_NEUTRALPARTICLECONTAINERFWD_H diff --git a/Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainerFwd.h b/Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainerFwd.h index ff2ff11be21..cc05041629c 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainerFwd.h +++ b/Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainerFwd.h @@ -19,10 +19,10 @@ // Declare that this is a vector of IParticle-derived objects -DATAVECTOR_BASE_FWD( xAOD::TrackParticle_v1, xAOD::IParticle ); +DATAVECTOR_BASE_FWD( xAOD::TrackParticle, xAOD::IParticle ); namespace xAOD { /// Provide a forward declaration for TrackParticleContainer - typedef DataVector< TrackParticle_v1> TrackParticleContainer; + typedef DataVector< TrackParticle> TrackParticleContainer; } #endif // XAODTRACKING_TRACKPARTICLECONTAINERFWD_H -- GitLab From 54114f84029329cb85a8ff5ea38a3be89504ae2e Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Mon, 27 Jul 2020 18:16:25 +0100 Subject: [PATCH 211/459] remove _v1 also for the CaloClustercontainer typedef --- .../xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h index 75bf82dcff5..bd13ba74f56 100644 --- a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h +++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h @@ -15,7 +15,7 @@ DATAVECTOR_BASE_FWD( xAOD::CaloCluster, xAOD::IParticle ); namespace xAOD { /// Define the cluster container as a simple DataVector - typedef DataVector< CaloCluster > CaloClusterContainer_v1; + typedef DataVector< CaloCluster > CaloClusterContainer; } -- GitLab From cd70cc7df56db793ea9a2b263b8580ddea53885d Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Mon, 27 Jul 2020 19:48:36 +0200 Subject: [PATCH 212/459] Fix OutputTrigRoIs setting --- Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py b/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py index a6bb8b23b29..a8de4937f68 100644 --- a/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py +++ b/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py @@ -127,9 +127,10 @@ class L1Decoder(CompFactory.L1Decoder) : ctpUnpacker = CompFactory.CTPUnpackingTool() self.ctpUnpacker = ctpUnpacker + from TrigEDMConfig.TriggerEDMRun3 import recordable self.roiUnpackers += [ CompFactory.FSRoIsUnpackingTool("FSRoIsUnpackingTool", Decisions=mapThresholdToL1DecisionCollection("FSNOSEED"), - OutputTrigRoIs = mapThresholdToL1RoICollection("FSNOSEED") ) ] + OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("FSNOSEED") )) ] # EM unpacker if TriggerFlags.doID() or TriggerFlags.doCalo(): unpackers, rerunUnpackers = createCaloRoIUnpackers() @@ -174,8 +175,9 @@ def L1DecoderCfg(flags, seqName = None): decoderAlg.ExtraInputs += [transTypeKey] - - decoderAlg.roiUnpackers += [ CompFactory.FSRoIsUnpackingTool("FSRoIsUnpackingTool", Decisions=mapThresholdToL1DecisionCollection("FSNOSEED") ) ] + from TrigEDMConfig.TriggerEDMRun3 import recordable + decoderAlg.roiUnpackers += [ CompFactory.FSRoIsUnpackingTool("FSRoIsUnpackingTool", Decisions=mapThresholdToL1DecisionCollection("FSNOSEED"), + OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("FSNOSEED")) ) ] unpackers, rerunUnpackers = createCaloRoIUnpackers() decoderAlg.roiUnpackers += unpackers -- GitLab From 4d26890c14980c236cf3d7d5c1683d7e93615025 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Fri, 17 Jul 2020 13:49:25 -0400 Subject: [PATCH 213/459] xAODCoreAthenaPool: Update shallow container to use ThinningInfo. Update xAODShallowAuxContainerCnv::createPersistentWithKey() to use ThinningInfo information to select variables to write. --- .../xAODCoreAthenaPool/src/xAODShallowAuxContainerCnv.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Event/xAOD/xAODCoreAthenaPool/src/xAODShallowAuxContainerCnv.cxx b/Event/xAOD/xAODCoreAthenaPool/src/xAODShallowAuxContainerCnv.cxx index b90f821fa84..12082d97ac4 100644 --- a/Event/xAOD/xAODCoreAthenaPool/src/xAODShallowAuxContainerCnv.cxx +++ b/Event/xAOD/xAODCoreAthenaPool/src/xAODShallowAuxContainerCnv.cxx @@ -30,7 +30,8 @@ xAODShallowAuxContainerCnv::createPersistentWithKey( xAOD::ShallowAuxContainer* { key2.erase (key2.size()-4, 4); } - const SG::ThinningDecisionBase* dec = SG::getThinningDecision (key2); + const SG::ThinningInfo* info = SG::getThinningInfo (key2); + const SG::ThinningDecisionBase* dec = info ? info->m_decision : nullptr; if (dec) { nremaining = dec->thinnedSize(); } @@ -53,6 +54,7 @@ xAODShallowAuxContainerCnv::createPersistentWithKey( xAOD::ShallowAuxContainer* // Skip null auxids (happens if we don't have the dictionary) if(auxid == SG::null_auxid) continue; // Skip non-selected dynamic variables. + if (info && info->vetoed (auxid)) continue; if (sel_auxids.count(auxid) == 0) continue; // Create the target variable: void* dst = newcont->getStore()->getData (auxid, nremaining, nremaining); //use store's getData directly, not the container's getData ... saves on a copy! -- GitLab From 960929b3d60315946fad69d2f11543ab089de05c Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Mon, 27 Jul 2020 16:56:00 +0200 Subject: [PATCH 214/459] AthenaConfiguration: Fix for python 2 compatibility. Code should work with both py2 and py3 as long as we're doing a py2 build. --- .../python/new_confTool.py | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Control/AthenaConfiguration/python/new_confTool.py b/Control/AthenaConfiguration/python/new_confTool.py index 8f893b9fab8..710c8ada2cd 100644 --- a/Control/AthenaConfiguration/python/new_confTool.py +++ b/Control/AthenaConfiguration/python/new_confTool.py @@ -104,11 +104,11 @@ def _compareCollection(ref_collection, chk_collection, args): chk = _findByName(name, chk_collection) if not ref: print( - f"\n\033[91m Component {name} \033[94m exists only in Chk \033[0m \033[0m \n" + "\n\033[91m Component %s \033[94m exists only in Chk \033[0m \033[0m \n" % name ) elif not chk: print( - f"\n\033[91m Component {name} \033[92m exists only in Ref \033[0m \033[0m \n" + "\n\033[91m Component %s \033[92m exists only in Ref \033[0m \033[0m \n" % name ) elif not _equalComponent(ref, chk): _compareComponent(ref, chk, args) @@ -118,15 +118,15 @@ def _compareCollection(ref_collection, chk_collection, args): for key in all_keys: if key not in ref_collection: print( - f"{key} = {chk_collection[key]}: \033[94m exists only in Chk \033[0m \033[91m<< !!!\033[0m" + "%s= %s: \033[94m exists only in Chk \033[0m \033[91m<< !!!\033[0m" % (key, chk_collection[key]) ) elif key not in chk_collection: print( - f"{key} = {ref_collection[key]}: \033[92m exists only in Ref \033[0m \033[91m<< !!!\033[0m" + "%s= %s: \033[92m exists only in Ref \033[0m \033[91m<< !!!\033[0m" % (key, ref_collection[key]) ) elif ref_collection[key] != chk_collection[key]: print( - f"{key} : \033[92m {str(ref_collection[key])} \033[0m vs \033[94m {str(chk_collection[key])} \033[0m \033[91m<< !!!\033[0m" + "%s : \033[92m %s \033[0m vs \033[94m %s \033[0m \033[91m<< !!!\033[0m" % (key, str(ref_collection[key]), str(chk_collection[key])) ) @@ -140,13 +140,13 @@ def _compareComponent(compRef, compChk, args, level=0): for prop in all_descriptors: if prop not in ref_keys: print( - f"{prop} = {compChk[prop]}: \033[94m exists only in Chk \033[0m \033[91m<< !!!\033[0m" + "%s = %s: \033[94m exists only in Chk \033[0m \033[91m<< !!!\033[0m" % (prop, compChk[prop]) ) continue if prop not in chk_keys: print( - f"{prop} = {compRef[prop]}: \033[92m exists only in Ref \033[0m \033[91m<< !!!\033[0m" + "%s = %s: \033[92m exists only in Ref \033[0m \033[91m<< !!!\033[0m" % (prop, compRef[prop]) ) continue @@ -161,11 +161,11 @@ def _compareComponent(compRef, compChk, args, level=0): diffmarker = " \033[91m<< !!!\033[0m" print( - f"{'>> '*level}{prop} : \033[92m {str(ref_val)} \033[0m vs \033[94m {str(chk_val)} \033[0m {diffmarker}" + "%s%s : \033[92m %s \033[0m vs \033[94m %s \033[0m %s" % ('>> '*level, prop, str(ref_val), str(chk_val), diffmarker) ) if isinstance(ref_val, Configurable): - print(f"vvv") + print("vvv") _compareComponent(ref_val, chk_val, args, level + 1) @@ -210,15 +210,15 @@ def _getFlattenedProperties(obj): if isinstance(val, Configurable): propstr += "({0}:{1})".format(key, _getFlattenedProperties(val)) elif isinstance(val, str): - propstr += f"({val})" + propstr += "(%s)" % val elif hasattr(val, "__iter__"): for th in val: if isinstance(th, Configurable): propstr += "({0}:{1})".format(th.name, _getFlattenedProperties(th)) elif isinstance(th, str) and "{" in th: # parse dict saved as a string - propstr += f"({str(sorted(json.loads(th).items()))})" + propstr += "(%s)" % str(sorted(json.loads(th).items())) else: - propstr += f"({th})" + propstr += "(%s)" % th else: propstr += "({0}:{1})".format(key, str(val)) return propstr -- GitLab From f558b763c8e02b67b01ae2ebbd24d5c04c716e04 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Mon, 27 Jul 2020 19:31:03 +0200 Subject: [PATCH 215/459] HLTUtils: Fix for python 2 compatibility. Make sure getoutput() is in the subprocess module. We still have a python 2 build, so we want thigs to work with both py2 and py3. --- HLT/HLTUtils/share/make_hlt_rep.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/HLT/HLTUtils/share/make_hlt_rep.py b/HLT/HLTUtils/share/make_hlt_rep.py index ab74742d0fa..1d4ece4677e 100755 --- a/HLT/HLTUtils/share/make_hlt_rep.py +++ b/HLT/HLTUtils/share/make_hlt_rep.py @@ -1,9 +1,13 @@ #!/usr/bin/env python -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration import optparse import os +# Make sure getoutput() is in the subprocess module. +from future import standard_library +standard_library.install_aliases() + import pm.project import pm.common -- GitLab From 39f1c2fac115233058426d7c0df447b897f2c655 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 12 Jul 2020 00:27:39 -0400 Subject: [PATCH 216/459] AnalysisTriggerAlgs: cmake fixes Library dependency fixes. --- .../AnalysisTrigger/AnalysisTriggerAlgs/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/CMakeLists.txt b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/CMakeLists.txt index bf57ddffe52..5b7229064f6 100644 --- a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/CMakeLists.txt +++ b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/CMakeLists.txt @@ -35,7 +35,7 @@ atlas_add_component( AnalysisTriggerAlgs LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps AthenaKernel StoreGateLib EventInfo xAODTrigL1Calo xAODTrigger GaudiKernel AnalysisTriggerEvent TrigConfL1Data TrigT1CaloEventLib TrigT1CaloToolInterfaces TrigT1Interfaces - TrigT1Result ) + TrigT1Result TrigConfInterfaces ) # Install files from the package: atlas_install_python_modules( python/*.py ) -- GitLab From 2df55d55c292d8e97605d4584bf848d40fb30f71 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 12 Jul 2020 00:18:31 -0400 Subject: [PATCH 217/459] SCT_RawDataByteStreamCnv: cmake fixes Define an interface library for exported headers. --- .../SCT_RawDataByteStreamCnv/CMakeLists.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/CMakeLists.txt b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/CMakeLists.txt index 8ef12ddaab7..70feff1e74e 100644 --- a/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/CMakeLists.txt +++ b/InnerDetector/InDetEventCnv/SCT_RawDataByteStreamCnv/CMakeLists.txt @@ -29,12 +29,18 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( tdaq-common COMPONENTS eformat_write DataWriter ) +atlas_add_library( SCT_RawDataByteStreamCnvLib + SCT_RawDataByteStreamCnv/*.h + INTERFACE + PUBLIC_HEADERS SCT_RawDataByteStreamCnv + LINK_LIBRARIES GaudiKernel InDetRawData ByteStreamCnvSvcBaseLib ByteStreamData InDetByteStreamErrors ) + # Component(s) in the package: atlas_add_component( SCT_RawDataByteStreamCnv src/*.cxx src/components/*.cxx INCLUDE_DIRS ${TDAQ-COMMON_INCLUDE_DIRS} - LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} ByteStreamCnvSvcBaseLib ByteStreamData ByteStreamData_test GaudiKernel InDetRawData InDetByteStreamErrors AthenaBaseComps AthenaKernel StoreGateLib SGtests Identifier xAODEventInfo InDetIdentifier InDetReadoutGeometry SCT_ReadoutGeometry SCT_CablingLib TrigSteeringEvent SCT_ConditionsData SCT_ConditionsToolsLib ) + LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} SCT_RawDataByteStreamCnvLib ByteStreamData_test AthenaBaseComps AthenaKernel StoreGateLib SGtests Identifier xAODEventInfo InDetIdentifier InDetReadoutGeometry SCT_ReadoutGeometry SCT_CablingLib TrigSteeringEvent SCT_ConditionsData SCT_ConditionsToolsLib ) # Run tests: atlas_add_test( TestSCTDecode @@ -50,5 +56,4 @@ atlas_add_test( TestSCTEncode ENVIRONMENT THREADS=1 ) # Install files from the package: -atlas_install_headers( SCT_RawDataByteStreamCnv ) atlas_install_joboptions( share/*.py ) -- GitLab From 59a157a5258d53357833077663a4bbb42b1aca3e Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 12 Jul 2020 00:20:13 -0400 Subject: [PATCH 218/459] TRT_RawDataByteStreamCnv: cmake fixes Define an interface library for exported headers. --- .../TRT_RawDataByteStreamCnv/CMakeLists.txt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/CMakeLists.txt b/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/CMakeLists.txt index 635ed7f1468..add2b83c793 100644 --- a/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/CMakeLists.txt +++ b/InnerDetector/InDetEventCnv/TRT_RawDataByteStreamCnv/CMakeLists.txt @@ -34,12 +34,18 @@ find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) find_package( tdaq-common COMPONENTS eformat_write DataWriter ) +atlas_add_library( TRT_RawDataByteStreamCnvLib + TRT_RawDataByteStreamCnv/*.h + INTERFACE + PUBLIC_HEADERS TRT_RawDataByteStreamCnv + LINK_LIBRARIES AthenaBaseComps ByteStreamData InDetRawData Identifier InDetIdentifier TRT_CablingLib ) + # Component(s) in the package: atlas_add_component( TRT_RawDataByteStreamCnv src/*.cxx src/components/*.cxx INCLUDE_DIRS ${CORAL_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${COOL_INCLUDE_DIRS} ${TDAQ-COMMON_INCLUDE_DIRS} - LINK_LIBRARIES ${CORAL_LIBRARIES} ${ROOT_LIBRARIES} ${COOL_LIBRARIES} ${TDAQ-COMMON_LIBRARIES} AthenaBaseComps Identifier ByteStreamData ByteStreamData_test InDetRawData AthenaKernel CxxUtils StoreGateLib SGtests AthenaPoolUtilities ByteStreamCnvSvcBaseLib GaudiKernel TRT_ConditionsServicesLib InDetIdentifier InDetReadoutGeometry TRT_ReadoutGeometry PathResolver IRegionSelector TrigSteeringEvent TRT_CablingLib InDetByteStreamErrors ) + LINK_LIBRARIES ${CORAL_LIBRARIES} ${ROOT_LIBRARIES} ${COOL_LIBRARIES} ${TDAQ-COMMON_LIBRARIES} TRT_RawDataByteStreamCnvLib ByteStreamData_test AthenaKernel CxxUtils + StoreGateLib SGtests AthenaPoolUtilities ByteStreamCnvSvcBaseLib GaudiKernel TRT_ConditionsServicesLib InDetReadoutGeometry TRT_ReadoutGeometry PathResolver IRegionSelector TrigSteeringEvent InDetByteStreamErrors ) # Install files from the package: -atlas_install_headers( TRT_RawDataByteStreamCnv ) -- GitLab From 5028082b391a15ad823b6112a18e371e0211ed5b Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 12 Jul 2020 00:21:10 -0400 Subject: [PATCH 219/459] TrkValTools: cmake fixes Define an interface library for exported headers. --- Tracking/TrkValidation/TrkValTools/CMakeLists.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Tracking/TrkValidation/TrkValTools/CMakeLists.txt b/Tracking/TrkValidation/TrkValTools/CMakeLists.txt index 21a199390fb..acc3736bdd8 100644 --- a/Tracking/TrkValidation/TrkValTools/CMakeLists.txt +++ b/Tracking/TrkValidation/TrkValTools/CMakeLists.txt @@ -59,13 +59,17 @@ find_package( Eigen ) find_package( XercesC ) find_package( Boost ) +atlas_add_library( TrkValToolsLib + TrkValTools/*.h + INTERFACE + INCLUDE_DIRS ${HEPPDT_INCLUDE_DIRS} + PUBLIC_HEADERS TrkValTools + LINK_LIBRARIES GaudiKernel AthenaBaseComps TrkValInterfaces StoreGateLib xAODEventInfo TrkParameters TrkValEvent AtlasHepMCLib TrkEventPrimitives TrkTrack AthContainers ) + # Component(s) in the package: atlas_add_component( TrkValTools src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${HEPPDT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${HEPPDT_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib AthenaBaseComps AthContainers AthenaKernel xAODTracking GaudiKernel TrkEventPrimitives TrkParameters TrkTrack TrkToolInterfaces TrkValEvent TrkValInterfaces CommissionEvent AtlasDetDescr EventInfo EventPrimitives GeneratorObjects TrkSurfaces TrkCompetingRIOsOnTrack TrkEventUtils TrkMaterialOnTrack TrkMeasurementBase TrkParticleBase TrkRIO_OnTrack TrkTrackSummary TrkTruthData TrkExInterfaces TrkFitterUtils xAODTruth xAODJet xAODPFlow xAODCaloEvent xAODCore xAODEventInfo AsgTools AthenaKernel AthenaMonitoringLib) - -# Install files from the package: -atlas_install_headers( TrkValTools ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${HEPPDT_LIBRARIES} ${CLHEP_LIBRARIES} TrkValToolsLib AthenaKernel xAODTracking TrkToolInterfaces CommissionEvent AtlasDetDescr EventInfo EventPrimitives GeneratorObjects TrkSurfaces TrkCompetingRIOsOnTrack TrkEventUtils TrkMaterialOnTrack TrkMeasurementBase TrkParticleBase TrkRIO_OnTrack TrkTrackSummary TrkTruthData TrkExInterfaces TrkFitterUtils xAODTruth xAODJet xAODPFlow xAODCaloEvent xAODCore AsgTools AthenaKernel AthenaMonitoringLib) -- GitLab From 23da85ca58c98a5ff327cb43f53b9837662ae8af Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 18:50:33 +0200 Subject: [PATCH 220/459] IdDict[DetDescr]: remove atlas_depends_on_subdirs --- DetectorDescription/IdDict/CMakeLists.txt | 9 +-------- DetectorDescription/IdDictDetDescr/CMakeLists.txt | 11 +---------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/DetectorDescription/IdDict/CMakeLists.txt b/DetectorDescription/IdDict/CMakeLists.txt index 30002ee5b03..fb4386437b8 100644 --- a/DetectorDescription/IdDict/CMakeLists.txt +++ b/DetectorDescription/IdDict/CMakeLists.txt @@ -1,14 +1,8 @@ -################################################################################ -# Package: IdDict -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( IdDict ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/Identifier ) - # Component(s) in the package: atlas_add_library( IdDict src/IdDictMgr.cxx @@ -16,7 +10,6 @@ atlas_add_library( IdDict PUBLIC_HEADERS IdDict LINK_LIBRARIES Identifier ) - # Code in this file makes heavy use of eigen and runs orders of magnitude # more slowly without optimization. So force this to be optimized even # in debug builds. If you need to debug it you might want to change this. diff --git a/DetectorDescription/IdDictDetDescr/CMakeLists.txt b/DetectorDescription/IdDictDetDescr/CMakeLists.txt index 0ab2617d32f..e306411bdf8 100644 --- a/DetectorDescription/IdDictDetDescr/CMakeLists.txt +++ b/DetectorDescription/IdDictDetDescr/CMakeLists.txt @@ -1,17 +1,8 @@ -################################################################################ -# Package: IdDictDetDescr -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( IdDictDetDescr ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaKernel - DetectorDescription/IdDict - PRIVATE - DetectorDescription/Identifier ) - # Component(s) in the package: atlas_add_library( IdDictDetDescr src/IdDictManager.cxx -- GitLab From a3b4ced745b0adb2cd5de0999453740de3c96fec Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 18:51:33 +0200 Subject: [PATCH 221/459] Identifier: remove atlas_depends_on_subdirs --- DetectorDescription/Identifier/CMakeLists.txt | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/DetectorDescription/Identifier/CMakeLists.txt b/DetectorDescription/Identifier/CMakeLists.txt index 7f3640b14a6..9e5611a25ed 100644 --- a/DetectorDescription/Identifier/CMakeLists.txt +++ b/DetectorDescription/Identifier/CMakeLists.txt @@ -1,13 +1,8 @@ -################################################################################ -# Package: Identifier -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( Identifier ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC GaudiKernel ) - # External dependencies: find_package( Boost ) -- GitLab From 4946c7e5cbb0ed04c35167d70aabdd729fc769e7 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 18:53:51 +0200 Subject: [PATCH 222/459] IdDictDetDescrCnv: Cleanup cmake/package Remove unused CORAL/Boost dependencies. Cleanup cmake configuration and delete unused `Load_IdDictCnvTest_joboptions.py`. Enable thread checker. --- .../IdDictDetDescr/ATLAS_CHECK_THREAD_SAFETY | 1 + .../IdDictDetDescrCnv/CMakeLists.txt | 26 +----------- .../share/Load_IdDictCnvTest_joboptions.py | 41 ------------------- 3 files changed, 3 insertions(+), 65 deletions(-) create mode 100644 DetectorDescription/IdDictDetDescr/IdDictDetDescr/ATLAS_CHECK_THREAD_SAFETY delete mode 100755 DetectorDescription/IdDictDetDescrCnv/share/Load_IdDictCnvTest_joboptions.py diff --git a/DetectorDescription/IdDictDetDescr/IdDictDetDescr/ATLAS_CHECK_THREAD_SAFETY b/DetectorDescription/IdDictDetDescr/IdDictDetDescr/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..250ccf9d0ef --- /dev/null +++ b/DetectorDescription/IdDictDetDescr/IdDictDetDescr/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +DetectorDescription/IdDictDetDescr diff --git a/DetectorDescription/IdDictDetDescrCnv/CMakeLists.txt b/DetectorDescription/IdDictDetDescrCnv/CMakeLists.txt index 01cc2ba353e..22bfe74b920 100644 --- a/DetectorDescription/IdDictDetDescrCnv/CMakeLists.txt +++ b/DetectorDescription/IdDictDetDescrCnv/CMakeLists.txt @@ -1,34 +1,12 @@ -################################################################################ -# Package: IdDictDetDescrCnv -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( IdDictDetDescrCnv ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel - Control/StoreGate - Database/RDBAccessSvc - DetectorDescription/AtlasDetDescr - DetectorDescription/DetDescrCnvSvc - DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelUtilities - DetectorDescription/IdDictDetDescr - DetectorDescription/IdDictParser - DetectorDescription/Identifier - GaudiKernel ) - -# External dependencies: -find_package( Boost COMPONENTS filesystem thread system ) -find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) - # Component(s) in the package: atlas_add_component( IdDictDetDescrCnv src/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel StoreGateLib SGtests AtlasDetDescr DetDescrCnvSvcLib GeoModelUtilities IdDictDetDescr IdDictParser Identifier GaudiKernel RDBAccessSvcLib ) + LINK_LIBRARIES AthenaBaseComps AthenaKernel AtlasDetDescr DetDescrCnvSvcLib GaudiKernel GeoModelInterfaces GeoModelUtilities IdDictDetDescr IdDictParser Identifier RDBAccessSvcLib StoreGateLib ) # Install files from the package: atlas_install_joboptions( share/*.py ) diff --git a/DetectorDescription/IdDictDetDescrCnv/share/Load_IdDictCnvTest_joboptions.py b/DetectorDescription/IdDictDetDescrCnv/share/Load_IdDictCnvTest_joboptions.py deleted file mode 100755 index 3cd94169d33..00000000000 --- a/DetectorDescription/IdDictDetDescrCnv/share/Load_IdDictCnvTest_joboptions.py +++ /dev/null @@ -1,41 +0,0 @@ -# Test joboptions for the loading of the IdDictCnvTest -# -# For MC EventSelector: -theApp.setup( MONTECARLO ) - -# For ZebraTDR EventSelector -##include "AthenaCommon/Atlas_ZebraTDR.UnixStandardJob.txt" -include( "IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.py" ) - -# Turn on the reading of the dictionary -DetDescrCnvSvc = Service( "DetDescrCnvSvc" ) -DetDescrCnvSvc.DecodeIdDict = TRUE -# Algs -theApp.TopAlg += [ "IdDictCnvTest" ] -# Set xml file to read in for each system -# - only needed if default is not ok -#DetDescrCnvSvc.AtlasIDFileName = "IdDictATLAS.xml"; -#DetDescrCnvSvc.InDetIDFileName = "IdDictInnerDetector.xml"; -#DetDescrCnvSvc.LArIDFileName = "IdDictLArCalorimeter.xml"; -#DetDescrCnvSvc.TileIDFileName = "IdDictTileCalorimeter.xml"; -#DetDescrCnvSvc.LVL1IDFileName = "IdDictLVL1Calorimeter.xml"; -DetDescrCnvSvc.MuonIDFileName = "IdDictMuonSpectrometer_P.03.xml"; -# One may turn off the read of one of more system iddict files -#DetDescrCnvSvc.InDetIDFileName = "NULL"; -#DetDescrCnvSvc.LArIDFileName = "NULL"; -#DetDescrCnvSvc.TileIDFileName = "NULL"; -#DetDescrCnvSvc.LVL1IDFileName = "NULL"; -#DetDescrCnvSvc.MuonIDFileName = "NULL"; -#-------------------------------------------------------------- -# Set output level threshold (1=VERBOSE, 2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -#-------------------------------------------------------------- -MessageSvc = Service( "MessageSvc" ) -MessageSvc.OutputLevel = 2 -# Provide dictionary file -#DetDescrCnvSvc.IdDictName = "ATLAS_IDS.xml"; -# Number of events to be processed (default is 10) -theApp.EvtMax = 2 -# Provide a first/last range or a list -#EventSelector.runs = {1, 100000}; -#EventSelector.firstRun = 1; -#EventSelector.lastRun = 100000; -- GitLab From ea60d5f3dd2b22b5d8c480d15ced267af3eeb753 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 18:56:41 +0200 Subject: [PATCH 223/459] IdDictParser: cmake cleanup --- .../IdDictParser/CMakeLists.txt | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/DetectorDescription/IdDictParser/CMakeLists.txt b/DetectorDescription/IdDictParser/CMakeLists.txt index df9dc06412f..1f36b437d4c 100644 --- a/DetectorDescription/IdDictParser/CMakeLists.txt +++ b/DetectorDescription/IdDictParser/CMakeLists.txt @@ -1,31 +1,21 @@ -################################################################################ -# Package: IdDictParser -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( IdDictParser ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/IdDict - Tools/XMLCoreParser - PRIVATE - DetectorDescription/Identifier ) - # Component(s) in the package: atlas_add_library( IdDictParser src/IdDictParser.cxx PUBLIC_HEADERS IdDictParser - LINK_LIBRARIES IdDict XMLCoreParser - PRIVATE_LINK_LIBRARIES Identifier ) + LINK_LIBRARIES IdDict XMLCoreParser ) atlas_add_executable( tid test/tid.cxx - LINK_LIBRARIES IdDict XMLCoreParser Identifier IdDictParser ) + LINK_LIBRARIES IdDictParser Identifier ) atlas_add_executable( test_det_id test/test_indet_id.cxx - LINK_LIBRARIES IdDict XMLCoreParser Identifier IdDictParser ) + LINK_LIBRARIES IdDictParser Identifier ) atlas_add_dictionary( IdDictParserDict IdDictParser/IdDictParserDict.h -- GitLab From 571c496122210882163fa8f9e06f68ba3556a8f9 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 18:58:15 +0200 Subject: [PATCH 224/459] AtlasDetDescr: cmake fixes - remove atlas_depends_on_subdirs - remove unused ROOT dependency --- .../AtlasDetDescr/CMakeLists.txt | 22 +++---------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/DetectorDescription/AtlasDetDescr/CMakeLists.txt b/DetectorDescription/AtlasDetDescr/CMakeLists.txt index 56b098975ce..1d31be5baf9 100644 --- a/DetectorDescription/AtlasDetDescr/CMakeLists.txt +++ b/DetectorDescription/AtlasDetDescr/CMakeLists.txt @@ -1,34 +1,18 @@ -################################################################################ -# Package: AtlasDetDescr -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AtlasDetDescr ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaKernel - DetectorDescription/IdDict - DetectorDescription/Identifier - PRIVATE - GaudiKernel ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - # Component(s) in the package: atlas_add_library( AtlasDetDescr src/AtlasDetectorID.cxx src/AtlasDetectorIDHelper.cxx src/AtlasRegionHelper.cxx PUBLIC_HEADERS AtlasDetDescr - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} IdDict Identifier AthenaKernel + LINK_LIBRARIES IdDict Identifier AthenaKernel PRIVATE_LINK_LIBRARIES GaudiKernel ) atlas_add_dictionary( AtlasDetDescrDict AtlasDetDescr/AtlasDetDescrDict.h AtlasDetDescr/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} IdDict Identifier GaudiKernel AtlasDetDescr ) - + LINK_LIBRARIES AtlasDetDescr ) -- GitLab From 4004b3ad55ce07e72aa29b10e55a4579fe85e0df Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 19:02:03 +0200 Subject: [PATCH 225/459] DetDescrCnvSvc: cmake/package cleanup - cmake cleanup - enable flake8 - delete obsolete `DetStore.py` job options --- .../DetDescrCnvSvc/CMakeLists.txt | 17 ++++------- .../DetDescrCnvSvc/python/DetStoreConfig.py | 5 ++-- .../DetDescrCnvSvc/share/DetStore.py | 30 ------------------- 3 files changed, 7 insertions(+), 45 deletions(-) delete mode 100755 DetectorDescription/DetDescrCnvSvc/share/DetStore.py diff --git a/DetectorDescription/DetDescrCnvSvc/CMakeLists.txt b/DetectorDescription/DetDescrCnvSvc/CMakeLists.txt index 4c554ff2279..6aa54891959 100644 --- a/DetectorDescription/DetDescrCnvSvc/CMakeLists.txt +++ b/DetectorDescription/DetDescrCnvSvc/CMakeLists.txt @@ -1,27 +1,20 @@ -################################################################################ -# Package: DetDescrCnvSvc -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DetDescrCnvSvc ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - GaudiKernel - PRIVATE - Control/StoreGate ) - # Component(s) in the package: atlas_add_library( DetDescrCnvSvcLib src/*.cxx PUBLIC_HEADERS DetDescrCnvSvc - LINK_LIBRARIES GaudiKernel StoreGateLib SGtests ) + LINK_LIBRARIES GaudiKernel + PRIVATE_LINK_LIBRARIES StoreGateLib ) atlas_add_component( DetDescrCnvSvc src/components/*.cxx - LINK_LIBRARIES GaudiKernel StoreGateLib SGtests DetDescrCnvSvcLib ) + LINK_LIBRARIES DetDescrCnvSvcLib ) # Install files from the package: -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) atlas_install_joboptions( share/*.py ) diff --git a/DetectorDescription/DetDescrCnvSvc/python/DetStoreConfig.py b/DetectorDescription/DetDescrCnvSvc/python/DetStoreConfig.py index e14007180aa..a4b0ec6b8b2 100755 --- a/DetectorDescription/DetDescrCnvSvc/python/DetStoreConfig.py +++ b/DetectorDescription/DetDescrCnvSvc/python/DetStoreConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # # Joboptions for bootstrapping the loading of the DetectorStore with @@ -6,11 +6,10 @@ # def _setupDetStoreConfig(): - from AthenaCommon.AppMgr import theApp from AthenaCommon.AppMgr import ServiceMgr as svcMgr # first, make sure we create a DetectorStore - import AthenaCommon.AtlasUnixStandardJob + import AthenaCommon.AtlasUnixStandardJob # noqa: F401 #theApp.CreateSvc += [ svcMgr.DetectorStore.getFullName() ] # now configure the Detector Description converter service diff --git a/DetectorDescription/DetDescrCnvSvc/share/DetStore.py b/DetectorDescription/DetDescrCnvSvc/share/DetStore.py deleted file mode 100755 index 2a82ceb54d7..00000000000 --- a/DetectorDescription/DetDescrCnvSvc/share/DetStore.py +++ /dev/null @@ -1,30 +0,0 @@ -# -# Joboptions for bootstrapping the loading of the DetectorStore with -# the DetDescrCnvSvc -# - -# Adds and instantiates the DetDescrCnvSvc service. It is assumed that -# a view of the application manager is available as 'theApp' - - -from AthenaCommon.AppMgr import theApp -theApp.Dlls += [ 'DetDescrCnvSvc' ] -theApp.ExtSvc += [ 'DetDescrCnvSvc' ] - -# Create service and add to list of conversion services -# -# NOTE: the following does not yet work for the detector store -# theApp.ExtSvc += { "DetPersistencySvc/DetectorPersistencySvc", -# "DetDescrCnvSvc" }; -#DetectorPersistencySvc.CnvServices += { "DetDescrCnvSvc" }; -DetDescrCnvSvc = Service( "DetDescrCnvSvc" ) -EventPersistencySvc.CnvServices = [ "DetDescrCnvSvc" ] - -# Specify primary Identifier dictionary to be used -DetDescrCnvSvc.IdDictName = "IdDictParser/ATLAS_IDS.xml"; - -# Specify whether CSC/sTgc/MM muon chambers are part of the detector -from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags -DetDescrCnvSvc.HasCSC = MuonGeometryFlags.hasCSC() -DetDescrCnvSvc.HasSTgc = MuonGeometryFlags.hasSTGC() -DetDescrCnvSvc.HasMM = MuonGeometryFlags.hasMM() -- GitLab From 05bcf505c08cede48b5153b7f926c7c9352f124b Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Mon, 27 Jul 2020 19:04:02 +0200 Subject: [PATCH 226/459] DetDescrDictionary: cmake cleanup, enable thread checker - remove unused ROOT dependency - no need to install dictionary header - enable thread checker --- .../DetDescrDictionary/CMakeLists.txt | 19 ++----------------- .../ATLAS_CHECK_THREAD_SAFETY | 1 + 2 files changed, 3 insertions(+), 17 deletions(-) create mode 100644 DetectorDescription/DetDescrDictionary/DetDescrDictionary/ATLAS_CHECK_THREAD_SAFETY diff --git a/DetectorDescription/DetDescrDictionary/CMakeLists.txt b/DetectorDescription/DetDescrDictionary/CMakeLists.txt index 63ac02076dc..7c4f3ce790e 100644 --- a/DetectorDescription/DetDescrDictionary/CMakeLists.txt +++ b/DetectorDescription/DetDescrDictionary/CMakeLists.txt @@ -1,25 +1,10 @@ -################################################################################ -# Package: DetDescrDictionary -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DetDescrDictionary ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - Control/AthContainers - DetectorDescription/Identifier ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - # Component(s) in the package: atlas_add_dictionary( DetDescrDict DetDescrDictionary/DetDescrDictionaryDict.h DetDescrDictionary/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers Identifier ) - -# Install files from the package: -atlas_install_headers( DetDescrDictionary ) - + LINK_LIBRARIES AthContainers Identifier ) diff --git a/DetectorDescription/DetDescrDictionary/DetDescrDictionary/ATLAS_CHECK_THREAD_SAFETY b/DetectorDescription/DetDescrDictionary/DetDescrDictionary/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..94f6ecbef52 --- /dev/null +++ b/DetectorDescription/DetDescrDictionary/DetDescrDictionary/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +DetectorDescription/DetDescrDictionary -- GitLab From ab3556430794321d98e852f142038ca7001e7dd6 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 12 Jul 2020 23:39:26 -0400 Subject: [PATCH 227/459] DataQualityUtils: cmake fixes Remove references to unused files. --- DataQuality/DataQualityUtils/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/DataQuality/DataQualityUtils/CMakeLists.txt b/DataQuality/DataQualityUtils/CMakeLists.txt index de9d784c782..56571376467 100644 --- a/DataQuality/DataQualityUtils/CMakeLists.txt +++ b/DataQuality/DataQualityUtils/CMakeLists.txt @@ -83,13 +83,12 @@ atlas_add_executable( han-results-print atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} --extend-select E11,E402,W1 --extend-ignore E731 ) -atlas_install_scripts( scripts/CreateDB.py scripts/CreateDB_Histo.py scripts/DQHistogramMerge.py scripts/DQHistogramPrintStatistics.py scripts/DQWebDisplay.py scripts/hancool_histo.py scripts/hancool.py scripts/handi.py scripts/DQFileMove.py scripts/CreateMDTConfig_algos.sh scripts/CreateMDTConfig_chambers.sh scripts/CreateMDTConfig_config.sh scripts/CreateMDTConfig_files.sh scripts/CreateMDTConfig_readme.sh scripts/DQM_Tier0Wrapper_trf.py scripts/DQM_Tier0Wrapper_tf.py scripts/DQHistogramMergeRegExp.py scripts/dq_make_web_display.py scripts/ScanHistFile.py scripts/physval_make_web_display.py ) +atlas_install_scripts( scripts/DQHistogramMerge.py scripts/DQHistogramPrintStatistics.py scripts/DQWebDisplay.py scripts/hancool_histo.py scripts/hancool.py scripts/handi.py scripts/DQFileMove.py scripts/CreateMDTConfig_algos.sh scripts/CreateMDTConfig_chambers.sh scripts/CreateMDTConfig_config.sh scripts/CreateMDTConfig_files.sh scripts/CreateMDTConfig_readme.sh scripts/DQM_Tier0Wrapper_trf.py scripts/DQM_Tier0Wrapper_tf.py scripts/DQHistogramMergeRegExp.py scripts/dq_make_web_display.py scripts/ScanHistFile.py scripts/physval_make_web_display.py ) # Aliases: atlas_add_alias( DQHistogramPrintStatistics "DQHistogramPrintStatistics.py" ) atlas_add_alias( CreateMDTConfig_files "CreateMDTConfig_files.sh" ) atlas_add_alias( CreateMDTConfig_algos "CreateMDTConfig_algos.sh" ) -atlas_add_alias( CreateDB_Histo "CreateDB_Histo.py" ) atlas_add_alias( hancool "hancool.py" ) atlas_add_alias( handi "handi.py" ) atlas_add_alias( CreateMDTConfig_config "CreateMDTConfig_config.sh" ) -- GitLab From c1f1fc6b6b29f64af7f43cbb86db361429670d01 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Tue, 28 Jul 2020 01:20:32 +0100 Subject: [PATCH 228/459] Add ATH_ENABLE_FUNCTION_VECTORIZATION , break lines in the conditional on compilers --- Control/CxxUtils/CxxUtils/features.h | 44 +++++++++++++-------------- Control/CxxUtils/CxxUtils/vectorize.h | 29 +++++++++++++----- 2 files changed, 44 insertions(+), 29 deletions(-) diff --git a/Control/CxxUtils/CxxUtils/features.h b/Control/CxxUtils/CxxUtils/features.h index 94d4e915e0e..0bbfb8aa82e 100644 --- a/Control/CxxUtils/CxxUtils/features.h +++ b/Control/CxxUtils/CxxUtils/features.h @@ -11,33 +11,34 @@ * @brief Some additional feature test macros. */ - #ifndef CXXUTILS_FEATURES_H #define CXXUTILS_FEATURES_H - -/// Do we have function multiversioning GCC and Clang > 7 support __attribute__ target -#if defined(__ELF__) && defined(__GNUC__) && !defined(__CLING__) && !defined(__ICC) && !defined(__COVERITY__) && !defined(__CUDACC__) -# define HAVE_FUNCTION_MULTIVERSIONING 1 +/// Do we have function multiversioning? GCC and clang > 7 support +/// the target attribute +#if defined(__ELF__) && defined(__GNUC__) && !defined(__CLING__) && !defined(__ICC) && \ + !defined(__COVERITY__) && !defined(__CUDACC__) +#define HAVE_FUNCTION_MULTIVERSIONING 1 #else -# define HAVE_FUNCTION_MULTIVERSIONING 0 +#define HAVE_FUNCTION_MULTIVERSIONING 0 #endif -/// Do we have the target_clones attribute? Clang 9 does not. -#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__COVERITY__) && !defined(__CUDACC__) -# define HAVE_TARGET_CLONES 1 +/// Do we have the target_clones attribute? clang does not support it +#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__COVERITY__) && \ + !defined(__CUDACC__) +#define HAVE_TARGET_CLONES 1 #else -# define HAVE_TARGET_CLONES 0 +#define HAVE_TARGET_CLONES 0 #endif -/// Do we have function multiversioning supporting all GCC extensions -#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__COVERITY__) && !defined(__CUDACC__) -# define HAVE_GCC_INTRINSICS 1 +/// Do we have support for all GCC intrinsics? +#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__COVERITY__) && \ + !defined(__CUDACC__) +#define HAVE_GCC_INTRINSICS 1 #else -# define HAVE_GCC_INTRINSICS 0 +#define HAVE_GCC_INTRINSICS 0 #endif - /// Do we have the bit-counting intrinsics? // __builtin_ctz // __builtin_ctzl @@ -49,19 +50,18 @@ // __builtin_popcountl // __builtin_popcountll #if defined(__GNUC__) || defined(__clang__) -# define HAVE_BITCOUNT_INTRINSICS 1 +#define HAVE_BITCOUNT_INTRINSICS 1 #else -# define HAVE_BITCOUNT_INTRINSICS 0 +#define HAVE_BITCOUNT_INTRINSICS 0 #endif - // Do we have the vector_size attribute for writing explicitly // vectorized code? -#if (defined(__GNUC__) || defined(__clang__)) && !defined(__ICC) && !defined(__COVERITY__) && !defined(__CUDACC__) -# define HAVE_VECTOR_SIZE_ATTRIBUTE 1 +#if (defined(__GNUC__) || defined(__clang__)) && !defined(__ICC) && !defined(__COVERITY__) && \ + !defined(__CUDACC__) +#define HAVE_VECTOR_SIZE_ATTRIBUTE 1 #else -# define HAVE_VECTOR_SIZE_ATTRIBUTE 0 +#define HAVE_VECTOR_SIZE_ATTRIBUTE 0 #endif - #endif // not CXXUTILS_FEATURES_H diff --git a/Control/CxxUtils/CxxUtils/vectorize.h b/Control/CxxUtils/CxxUtils/vectorize.h index eb32777845e..8e5f112f00a 100644 --- a/Control/CxxUtils/CxxUtils/vectorize.h +++ b/Control/CxxUtils/CxxUtils/vectorize.h @@ -9,20 +9,35 @@ * @brief Helper to enable auto-vectorization. * * Athena is usually built with -O2, which doesn't fully enable - * autovectorization. Add ATH_ENABLE_VECTORIZATION; at the start - * of a compilation unit to enable it for this file.. + * autovectorization in gcc (it does in clang). + * + * Add + * ATH_ENABLE_VECTORIZATION; + * at the start of a compilation unit + * to enable it for this file. + * + * Add + * ATH_ENABLE_FUNCTION_VECTORIZATION + * before a function to enable it for just + * this function */ - #ifndef CXXUTILS_VECTORIZE_H #define CXXUTILS_VECTORIZE_H +#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__COVERITY__) && \ + !defined(__CUDACC__) +#define ATH_ENABLE_VECTORIZATION \ + _Pragma("GCC optimize (\"tree-vectorize\")") class ATH_ENABLE_VECTORIZATION_SWALLOW_SEMICOLON +#else +#define ATH_ENABLE_VECTORIZATION class ATH_ENABLE_VECTORIZATION_SWALLOW_SEMICOLON +#endif -#if defined(__GNUC__) && !defined(__clang__) -# define ATH_ENABLE_VECTORIZATION _Pragma ("GCC optimize (\"tree-vectorize\")") \ - class ATH_ENABLE_VECTORIZATION_SWALLOW_SEMICOLON +#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__COVERITY__) && \ + !defined(__CUDACC__) +#define ATH_ENABLE_FUNCTION_VECTORIZATION __attribute__((optimize("tree-vectorize"))) #else -# define ATH_ENABLE_VECTORIZATION class ATH_ENABLE_VECTORIZATION_SWALLOW_SEMICOLON +#define ATH_ENABLE_FUNCTION_VECTORIZATION #endif #endif // not CXXUTILS_VECTORIZE_H -- GitLab From 071817ebe07ee25c8c0c7b033cab2d8196997bf7 Mon Sep 17 00:00:00 2001 From: Nils Erik Krumnack <nils.erik.krumnack@cern.ch> Date: Mon, 27 Jul 2020 16:47:52 +0000 Subject: [PATCH 229/459] Merge branch 'analysis/IClassificationTool' into '21.2' Add CP::IClassificationTool + CP::AsgClassificationDecorationAlg See merge request atlas/athena!34893 (cherry picked from commit 31f39fba96cdc0b90a17cafd6dba4b8bd33841b1) 060f439e Add CP::IClassificationTool interface bd02da17 Add CP::AsgClassificationDecorationAlg --- .../AsgAnalysisAlgorithmsDict.h | 1 + .../AsgClassificationDecorationAlg.h | 63 +++++++++++++++++++ .../AsgAnalysisAlgorithms/selection.xml | 1 + .../Root/AsgClassificationDecorationAlg.cxx | 61 ++++++++++++++++++ .../AsgAnalysisAlgorithms_entries.cxx | 2 + .../AsgAnalysisInterfacesDict.h | 3 +- .../IClassificationTool.h | 33 ++++++++++ .../AsgAnalysisInterfaces/selection.xml | 1 + 8 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithms/AsgClassificationDecorationAlg.h create mode 100644 PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/Root/AsgClassificationDecorationAlg.cxx create mode 100644 PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/AsgAnalysisInterfaces/IClassificationTool.h diff --git a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithmsDict.h b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithmsDict.h index 4a4318995cb..5cc55b7b67b 100644 --- a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithmsDict.h +++ b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithmsDict.h @@ -10,6 +10,7 @@ #include <AsgAnalysisAlgorithms/AsgFlagSelectionTool.h> #include <AsgAnalysisAlgorithms/AsgPtEtaSelectionTool.h> +#include <AsgAnalysisAlgorithms/AsgClassificationDecorationAlg.h> #include <AsgAnalysisAlgorithms/AsgCutBookkeeperAlg.h> #include <AsgAnalysisAlgorithms/AsgEventScaleFactorAlg.h> #include <AsgAnalysisAlgorithms/AsgLeptonTrackSelectionAlg.h> diff --git a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithms/AsgClassificationDecorationAlg.h b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithms/AsgClassificationDecorationAlg.h new file mode 100644 index 00000000000..069d942c101 --- /dev/null +++ b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithms/AsgClassificationDecorationAlg.h @@ -0,0 +1,63 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +/// @author Tadej Novak <tadej@cern.ch> + +#ifndef ASG_ANALYSIS_ALGORITHMS__ASG_CLASSIFICATION_DECORATION_ALG_H +#define ASG_ANALYSIS_ALGORITHMS__ASG_CLASSIFICATION_DECORATION_ALG_H + +#include <AnaAlgorithm/AnaAlgorithm.h> +#include <SystematicsHandles/SysCopyHandle.h> +#include <SystematicsHandles/SysListHandle.h> +#include <xAODBase/IParticle.h> +#include <xAODBase/IParticleContainer.h> + +#include <AsgAnalysisInterfaces/IClassificationTool.h> + + +namespace CP +{ + +/// \brief an algorithm for decorating classification using a tool based +/// on the \ref CP::IClassificationTool +class AsgClassificationDecorationAlg final : public EL::AnaAlgorithm +{ + /// \brief the standard constructor +public: + AsgClassificationDecorationAlg(const std::string& name, + ISvcLocator* pSvcLocator); + + +public: + virtual StatusCode initialize() override; + +public: + virtual StatusCode execute() override; + + + /// \brief truth classifier tool handle +private: + ToolHandle<IClassificationTool> m_tool; + + /// \brief the systematics list we run +private: + CP::SysListHandle m_systematicsList {this}; + + /// \brief particles container handle +private: + CP::SysCopyHandle<xAOD::IParticleContainer> m_particlesHandle { + this, "particles", "", "the container to use"}; + + /// \brief the decoration for the truth classification +private: + std::string m_classificationDecoration {}; + + /// \brief the accessor for \ref m_truthClassificationDecoration +private: + std::unique_ptr<const SG::AuxElement::Accessor<unsigned int> > m_classificationAccessor {}; +}; + +} // namespace CP + +#endif diff --git a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithms/selection.xml b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithms/selection.xml index bd289588534..879b8badc84 100644 --- a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithms/selection.xml +++ b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/AsgAnalysisAlgorithms/selection.xml @@ -3,6 +3,7 @@ <class name="CP::AsgFlagSelectionTool" /> <class name="CP::AsgPtEtaSelectionTool" /> + <class name="CP::AsgClassificationDecorationAlg" /> <class name="CP::AsgCutBookkeeperAlg" /> <class name="CP::AsgEventScaleFactorAlg" /> <class name="CP::AsgLeptonTrackSelectionAlg" /> diff --git a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/Root/AsgClassificationDecorationAlg.cxx b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/Root/AsgClassificationDecorationAlg.cxx new file mode 100644 index 00000000000..15cbf9f1dff --- /dev/null +++ b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/Root/AsgClassificationDecorationAlg.cxx @@ -0,0 +1,61 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +/// @author Tadej Novak <tadej@cern.ch> + + +#include <AsgAnalysisAlgorithms/AsgClassificationDecorationAlg.h> + + +namespace CP +{ + +AsgClassificationDecorationAlg::AsgClassificationDecorationAlg(const std::string &name, + ISvcLocator *pSvcLocator) + : AnaAlgorithm(name, pSvcLocator) +{ + declareProperty ("decoration", m_classificationDecoration, "the decoration for classification"); + declareProperty ("tool", m_tool, "classification tool"); +} + + + +StatusCode AsgClassificationDecorationAlg::initialize() +{ + if (m_classificationDecoration.empty()) + { + ANA_MSG_ERROR ("Classification decoration name should not be empty."); + return StatusCode::FAILURE; + } + + m_classificationAccessor = std::make_unique<SG::AuxElement::Accessor<unsigned int> > (m_classificationDecoration); + + m_systematicsList.addHandle(m_particlesHandle); + ANA_CHECK(m_systematicsList.initialize()); + + ANA_CHECK(m_tool->initialize()); + + return StatusCode::SUCCESS; +} + + + +StatusCode AsgClassificationDecorationAlg::execute() +{ + return m_systematicsList.foreach ([&](const CP::SystematicSet &sys) -> StatusCode + { + xAOD::IParticleContainer *particles{}; + ANA_CHECK(m_particlesHandle.getCopy(particles, sys)); + + for (xAOD::IParticle *particle : *particles) { + unsigned int classification{}; + ANA_CHECK(m_tool->classify(*particle, classification)); + (*m_classificationAccessor)(*particle) = classification; + } + + return StatusCode::SUCCESS; + }); +} + +} // namespace CP diff --git a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/src/components/AsgAnalysisAlgorithms_entries.cxx b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/src/components/AsgAnalysisAlgorithms_entries.cxx index 14e40a32afa..687cf050077 100644 --- a/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/src/components/AsgAnalysisAlgorithms_entries.cxx +++ b/PhysicsAnalysis/Algorithms/AsgAnalysisAlgorithms/src/components/AsgAnalysisAlgorithms_entries.cxx @@ -10,6 +10,7 @@ #include <AsgAnalysisAlgorithms/AsgFlagSelectionTool.h> #include <AsgAnalysisAlgorithms/AsgPtEtaSelectionTool.h> #include <AsgAnalysisAlgorithms/AsgCutBookkeeperAlg.h> +#include <AsgAnalysisAlgorithms/AsgCutBookkeeperAlg.h> #include <AsgAnalysisAlgorithms/AsgEventScaleFactorAlg.h> #include <AsgAnalysisAlgorithms/AsgLeptonTrackSelectionAlg.h> #include <AsgAnalysisAlgorithms/AsgOriginalObjectLinkAlg.h> @@ -32,6 +33,7 @@ DECLARE_NAMESPACE_TOOL_FACTORY (CP, AsgFlagSelectionTool) DECLARE_NAMESPACE_TOOL_FACTORY (CP, AsgPtEtaSelectionTool) DECLARE_NAMESPACE_ALGORITHM_FACTORY (CP, AsgCutBookkeeperAlg) +DECLARE_NAMESPACE_ALGORITHM_FACTORY (CP, AsgCutBookkeeperAlg) DECLARE_NAMESPACE_ALGORITHM_FACTORY (CP, AsgEventScaleFactorAlg) DECLARE_NAMESPACE_ALGORITHM_FACTORY (CP, AsgLeptonTrackSelectionAlg) DECLARE_NAMESPACE_ALGORITHM_FACTORY (CP, AsgOriginalObjectLinkAlg) diff --git a/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/AsgAnalysisInterfaces/AsgAnalysisInterfacesDict.h b/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/AsgAnalysisInterfaces/AsgAnalysisInterfacesDict.h index a330524dcf0..441fcfa14dc 100644 --- a/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/AsgAnalysisInterfaces/AsgAnalysisInterfacesDict.h +++ b/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/AsgAnalysisInterfaces/AsgAnalysisInterfacesDict.h @@ -1,7 +1,7 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // $Id: AsgAnalysisInterfacesDict.h 790193 2016-12-16 16:36:15Z krasznaa $ @@ -9,6 +9,7 @@ #define ASGANALYSISINTERFACES_ASGANALYSISINTERFACESDICT_H // Local include(s): +#include "AsgAnalysisInterfaces/IClassificationTool.h" #include "AsgAnalysisInterfaces/IEfficiencyScaleFactorTool.h" #include "AsgAnalysisInterfaces/ISelectionTool.h" #include "AsgAnalysisInterfaces/IGoodRunsListSelectionTool.h" diff --git a/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/AsgAnalysisInterfaces/IClassificationTool.h b/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/AsgAnalysisInterfaces/IClassificationTool.h new file mode 100644 index 00000000000..b50b5b0d00b --- /dev/null +++ b/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/AsgAnalysisInterfaces/IClassificationTool.h @@ -0,0 +1,33 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +/// @author Tadej Novak <tadej@cern.ch> + + +#ifndef ICLASSIFICATIONTOOL_H_ +#define ICLASSIFICATIONTOOL_H_ + +#include <AsgTools/IAsgTool.h> +#include <xAODBase/IParticle.h> + +namespace CP +{ + +/// \brief a tool interface to classify particles into multiple categories +/// by assigning them an unsigned integer +class IClassificationTool : virtual public asg::IAsgTool +{ + ASG_TOOL_INTERFACE(IClassificationTool) + +public: + virtual ~IClassificationTool() = default; + + /// \brief classify a particle and pass the classification as an integer + virtual StatusCode classify(const xAOD::IParticle &particle, + unsigned int &classification) const = 0; +}; + +} // namespace CP + +#endif // ICLASSIFICATIONTOOL_H_ diff --git a/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/AsgAnalysisInterfaces/selection.xml b/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/AsgAnalysisInterfaces/selection.xml index e7c871181fd..dd85df09070 100644 --- a/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/AsgAnalysisInterfaces/selection.xml +++ b/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/AsgAnalysisInterfaces/selection.xml @@ -1,6 +1,7 @@ <!-- $Id: selection.xml 790193 2016-12-16 16:36:15Z krasznaa $ --> <lcgdict> <namespace name="CP"/> + <class name="CP::IClassificationTool" /> <class name="CP::IEfficiencyScaleFactorTool" /> <class name="CP::ISelectionTool" /> <class name="CP::IPileupReweightingTool" /> -- GitLab From 433b6a2faff5c67fa83ddfc925159a69fb24287a Mon Sep 17 00:00:00 2001 From: Xiaozhong Huang <xiaozhong.huang@cern.ch> Date: Tue, 28 Jul 2020 10:46:09 +0800 Subject: [PATCH 230/459] tauRecTools: change unique_ptr to shared_ptr --- .../tauRecTools/Root/TauWPDecorator.cxx | 45 ++++++++++--------- .../tauRecTools/tauRecTools/TauWPDecorator.h | 8 ++-- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx b/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx index 242875f0ce7..f8ed0b3bc30 100644 --- a/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx +++ b/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx @@ -44,18 +44,18 @@ TauWPDecorator::~TauWPDecorator() { StatusCode TauWPDecorator::retrieveHistos(int nProng) { // Find and open file std::string fileName; - std::vector<m_pair_t>* histArray = nullptr; + std::shared_ptr<std::vector<m_pair_t>> histArray = nullptr; if (nProng == 0) { fileName = m_file0p; - histArray = m_hists0p.get(); + histArray = m_hists0p; } else if (nProng == 1) { fileName = m_file1p; - histArray = m_hists1p.get(); + histArray = m_hists1p; } else { fileName = m_file3p; - histArray = m_hists3p.get(); + histArray = m_hists3p; } std::string fullPath = find_file(fileName); @@ -77,11 +77,16 @@ StatusCode TauWPDecorator::retrieveHistos(int nProng) { continue; } graph->SetDirectory(0); - std::unique_ptr<TH2> uniqueGraph(graph); - histArray->push_back(m_pair_t(float(i)/100., std::move(uniqueGraph))); + std::shared_ptr<TH2> sharedGraph(graph); + histArray->push_back(m_pair_t(float(i)/100., std::move(sharedGraph))); } file->Close(); + + if (histArray->size() == 0) { + ATH_MSG_ERROR("There is no histograms for " << nProng << "-prong taus"); + return StatusCode::FAILURE; + } return StatusCode::SUCCESS; } @@ -89,18 +94,18 @@ StatusCode TauWPDecorator::retrieveHistos(int nProng) { StatusCode TauWPDecorator::storeLimits(int nProng) { - std::vector<m_pair_t>* histArray = nullptr; + std::shared_ptr<std::vector<m_pair_t>> histArray = nullptr; if (nProng == 0) { - histArray = m_hists0p.get(); + histArray = m_hists0p; } else if (nProng == 1) { - histArray = m_hists1p.get(); + histArray = m_hists1p; } else { - histArray = m_hists3p.get(); + histArray = m_hists3p; } - TH2* firstHist = histArray->at(0).second.get(); + std::shared_ptr<TH2> firstHist = histArray->at(0).second; m_xMin[nProng] = firstHist->GetXaxis()->GetXmin(); m_xMax[nProng] = firstHist->GetXaxis()->GetBinCenter(firstHist->GetNbinsX()); m_yMin[nProng] = firstHist->GetYaxis()->GetXmin(); @@ -108,7 +113,7 @@ StatusCode TauWPDecorator::storeLimits(int nProng) { // Check all the histograms have the same limits for (size_t i = 1; i < histArray->size(); ++i) { - TH2* hist = histArray->at(i).second.get(); + std::shared_ptr<TH2> hist = histArray->at(i).second; double xMin = hist->GetXaxis()->GetXmin(); double xMax = hist->GetXaxis()->GetBinCenter(firstHist->GetNbinsX()); @@ -140,7 +145,7 @@ StatusCode TauWPDecorator::initialize() { // 0p is for trigger only if (!m_file0p.empty()) { - m_hists0p = std::make_unique<std::vector<m_pair_t>>(); + m_hists0p = std::make_shared<std::vector<m_pair_t>>(); ATH_CHECK(retrieveHistos(0)); ATH_CHECK(storeLimits(0)); } @@ -151,11 +156,11 @@ StatusCode TauWPDecorator::initialize() { return StatusCode::FAILURE; } - m_hists1p = std::make_unique<std::vector<m_pair_t>>(); + m_hists1p = std::make_shared<std::vector<m_pair_t>>(); ATH_CHECK(retrieveHistos(1)); ATH_CHECK(storeLimits(1)); - m_hists3p = std::make_unique<std::vector<m_pair_t>>(); + m_hists3p = std::make_shared<std::vector<m_pair_t>>(); ATH_CHECK(retrieveHistos(3)); ATH_CHECK(storeLimits(3)); @@ -222,10 +227,10 @@ StatusCode TauWPDecorator::execute(xAOD::TauJet& pTau) const { ATH_MSG_DEBUG("final mu:\t" << yVariable); } - std::vector<m_pair_t>* histArray = nullptr; - if (nProng == 0) histArray = m_hists0p.get(); - else if (nProng == 1) histArray = m_hists1p.get(); - else histArray = m_hists3p.get(); + std::shared_ptr<std::vector<m_pair_t>> histArray = nullptr; + if (nProng == 0) histArray = m_hists0p; + else if (nProng == 1) histArray = m_hists1p; + else histArray = m_hists3p; std::array<double, 2> cuts = {-1.01, 1.01}; // lower and upper bounday of the score std::array<double, 2> effs = {1.0, 0.0}; // efficiency corresponding to the score cut @@ -237,7 +242,7 @@ StatusCode TauWPDecorator::execute(xAOD::TauJet& pTau) const { // Loop over all histograms to find the lower and upper bounary of the score and corresponding efficiency for (unsigned int i = 0; i < histArray->size(); ++i) { - TH2* myHist = histArray->at(i).second.get(); + std::shared_ptr<TH2> myHist = histArray->at(i).second; double myCut = myHist->Interpolate(xVariable, yVariable); if (myCut <= score && ((!gotLow) || std::abs(myCut-score) < std::abs(cuts[0]-score))) { diff --git a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h index 417a5a76876..52c37b71b32 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h @@ -95,11 +95,11 @@ class TauWPDecorator : public TauRecToolBase { SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo{this,"Key_eventInfo", "EventInfo", "EventInfo key"}; - typedef std::pair<double, std::unique_ptr<TH2> > m_pair_t; + typedef std::pair<double, std::shared_ptr<TH2> > m_pair_t; - std::unique_ptr<std::vector<m_pair_t>> m_hists0p; //!< Efficiency and corresponding score distributions of 0-prong taus - std::unique_ptr<std::vector<m_pair_t>> m_hists1p; //!< Efficiency and corresponding score distributions of 1-prong taus - std::unique_ptr<std::vector<m_pair_t>> m_hists3p; //!< Efficiency and corresponding score distributions of 3-prong taus + std::shared_ptr<std::vector<m_pair_t>> m_hists0p; //!< Efficiency and corresponding score distributions of 0-prong taus + std::shared_ptr<std::vector<m_pair_t>> m_hists1p; //!< Efficiency and corresponding score distributions of 1-prong taus + std::shared_ptr<std::vector<m_pair_t>> m_hists3p; //!< Efficiency and corresponding score distributions of 3-prong taus std::map<int, double> m_xMin; //!< Map of n-prong and the minimum value of x variables std::map<int, double> m_yMin; //!< Map of n-prong and the minimum value of y variables -- GitLab From 65d6624ae24c44081df4d7b8122ac7b2d8fdf4a4 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Tue, 28 Jul 2020 04:37:15 +0100 Subject: [PATCH 231/459] KLGaussianMixtureReduction: Small clean-up --- .../src/KLGaussianMixtureReduction.cxx | 57 +++++++++---------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx index 294223d8bf1..6bffd720356 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx @@ -24,7 +24,6 @@ * Implementation of KLGaussianMixtureReduction * */ - /// This enables -ftree-vectorize in gcc (we compile with O2) ATH_ENABLE_VECTORIZATION; @@ -36,7 +35,7 @@ using namespace GSFUtils; * Based on * https://www.sciencedirect.com/science/article/pii/089812218990103X * equation (16) - * or + * or * https://arxiv.org/pdf/2001.00727.pdf * equation (10) * but not accounting for weights @@ -84,9 +83,9 @@ combine(GSFUtils::Component1D& updated, GSFUtils::Component1D& removed) // large numbers to enter the multiplications/sums // make distance large - removed.mean = 1e10; - removed.cov = 1e10; - removed.invCov = 1e10; + removed.mean = std::numeric_limits<float>::max(); + removed.cov = std::numeric_limits<float>::max(); + removed.invCov = std::numeric_limits<float>::max(); removed.weight = -1; } @@ -108,33 +107,29 @@ recalculateDistances(const Component1D* componentsIn, const int32_t j = mini; const int32_t indexConst = (j - 1) * j / 2; - //This is the component that has been updated - //so we calculate distances wrt. + // This is the component that has been updated + // so we calculate distances wrt. const Component1D componentJ = components[j]; - + // Rows for (int32_t i = 0; i < j; ++i) { const Component1D componentI = components[i]; const int32_t index = indexConst + i; - //This component has been merged to/removed - //so keep the distance wrt to it max always - if (componentI.weight < 0) { - distances[index] = std::numeric_limits<float>::max(); - continue; - } - distances[index] = symmetricKL(componentI, componentJ); + // if the component has been merged already + // so keep the distance wrt to it max always + distances[index] = componentI.weight < 0 + ? std::numeric_limits<float>::max() + : symmetricKL(componentI, componentJ); } // Columns for (int32_t i = j + 1; i < n; ++i) { const Component1D componentI = components[i]; const int32_t index = (i - 1) * i / 2 + j; - //This component has been merged to/removed - //so keep the distance wrt to it max always - if (componentI.weight < 0) { - distances[index] = std::numeric_limits<float>::max(); - continue; - } - distances[index] = symmetricKL(componentI, componentJ); + // This component has been merged to/removed + // so keep the distance wrt to it max always + distances[index] = componentI.weight < 0 + ? std::numeric_limits<float>::max() + : symmetricKL(componentI, componentJ); } } @@ -165,11 +160,10 @@ calculateAllDistances(const Component1D* componentsIn, * Reset the distances wrt to a mini index */ void -resetDistances(float* distancesIn, - const int32_t minj, - const int32_t n) +resetDistances(float* distancesIn, const int32_t minj, const int32_t n) { - float* distances = (float*)__builtin_assume_aligned(distancesIn, alignment); + float* distances = + static_cast<float*>(__builtin_assume_aligned(distancesIn, alignment)); const int32_t j = minj; const int32_t indexConst = (j - 1) * j / 2; // Rows @@ -203,6 +197,7 @@ findMerges(Component1D* componentsIn, // Create a trianular mapping for the pairwise distances std::vector<triangularToIJ> convert; convert.reserve(nn); + for (int32_t i = 1; i < n; ++i) { const int indexConst = (i - 1) * i / 2; for (int32_t j = 0; j < i; ++j) { @@ -403,7 +398,7 @@ findMinimumIndex(const float* distancesIn, const int n) } /* * SSE2 does not have a blend/select instruction. - * To create one + * To create one * We AND & * - a with the NOT of the mask * - b with the mask @@ -442,8 +437,8 @@ findMinimumIndex(const float* distancesIn, const int n) minindices2 = SSE2_mm_blendv_epi8(minindices2, indices2, lt2); minvalues2 = _mm_min_ps(values2, minvalues2); } - - // Compare //1 with //2 + + // Compare //1 with //2 __m128i lt = _mm_castps_si128(_mm_cmplt_ps(minvalues1, minvalues2)); minindices1 = SSE2_mm_blendv_epi8(minindices2, minindices1, lt); minvalues1 = _mm_min_ps(minvalues2, minvalues1); @@ -462,11 +457,11 @@ findMinimumIndex(const float* distancesIn, const int n) minDistance = distances[i]; } } - + return { minIndex, minDistance }; } #endif // end of x86_64 versions -//Always fall back to a simple default version with no intrinsics +// Always fall back to a simple default version with no intrinsics __attribute__((target("default"))) #endif // HAVE_FUNCTION_MULTIVERSIONING std::pair<int32_t, float> -- GitLab From a2b17c2731e04316819ad14a1dfabd98bf1ac666 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Tue, 28 Jul 2020 04:40:21 +0100 Subject: [PATCH 232/459] KLGaussianMixtureReduction: Small clean-up --- .../TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx index 6bffd720356..0591a87b449 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx @@ -116,7 +116,7 @@ recalculateDistances(const Component1D* componentsIn, const Component1D componentI = components[i]; const int32_t index = indexConst + i; // if the component has been merged already - // so keep the distance wrt to it max always + // keep the distance wrt to it max always distances[index] = componentI.weight < 0 ? std::numeric_limits<float>::max() : symmetricKL(componentI, componentJ); @@ -125,8 +125,8 @@ recalculateDistances(const Component1D* componentsIn, for (int32_t i = j + 1; i < n; ++i) { const Component1D componentI = components[i]; const int32_t index = (i - 1) * i / 2 + j; - // This component has been merged to/removed - // so keep the distance wrt to it max always + // if the component has been merged already + // keep the distance wrt to it max always distances[index] = componentI.weight < 0 ? std::numeric_limits<float>::max() : symmetricKL(componentI, componentJ); -- GitLab From abc7d17272e210b9886e603f3918e5ed821d3702 Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Tue, 28 Jul 2020 08:19:12 +0200 Subject: [PATCH 233/459] Cone cleanup in IsolationCorrections * Dropped the dependency of IsolationCorrectionTool on reading in-file metadata * Removed atlas_depends_on_subdirs() from CMakeLists.txt --- .../IsolationCorrections/CMakeLists.txt | 19 --- .../IsolationCorrectionTool.h | 8 +- .../Root/IsolationCorrectionTool.cxx | 133 +----------------- 3 files changed, 3 insertions(+), 157 deletions(-) diff --git a/PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/CMakeLists.txt b/PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/CMakeLists.txt index e49760cf866..9c3f87eda59 100644 --- a/PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/CMakeLists.txt +++ b/PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/CMakeLists.txt @@ -6,30 +6,11 @@ atlas_subdir( IsolationCorrections ) # Extra dependencies, based on the environment: -set( extra_deps ) set( extra_libs ) if( NOT XAOD_STANDALONE ) - set( extra_deps GaudiKernel - Control/AthenaBaseComps - Control/AthAnalysisBaseComps) set( extra_libs AthAnalysisBaseCompsLib ) endif() -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/AthToolSupport/AsgTools - Event/xAOD/xAODEgamma - Event/xAOD/xAODEventInfo - Event/xAOD/xAODPrimitives - Event/xAOD/xAODTracking - Event/xAOD/xAODMetaData - PhysicsAnalysis/AnalysisCommon/PATInterfaces - PhysicsAnalysis/AnalysisCommon/PATCore - PRIVATE - Tools/PathResolver - ${extra_deps} ) - # External dependencies: find_package( ROOT COMPONENTS Core Hist RIO ) find_package( Boost ) diff --git a/PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/IsolationCorrections/IsolationCorrectionTool.h b/PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/IsolationCorrections/IsolationCorrectionTool.h index f23159fcd01..97db502c9e0 100644 --- a/PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/IsolationCorrections/IsolationCorrectionTool.h +++ b/PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/IsolationCorrections/IsolationCorrectionTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef ISOLATIONCORRECTION_ISOLATIONCORRECTIONTOOL_H @@ -30,10 +30,6 @@ class IsolationCorrectionTool : virtual public IIsolationCorrectionTool, #endif ; - virtual StatusCode beginInputFile() override; - virtual StatusCode beginEvent() override; - virtual StatusCode endInputFile() override; - // Apply correction to a modifyable Egamma object virtual CP::CorrectionCode applyCorrection(xAOD::Egamma&) override; @@ -67,7 +63,6 @@ class IsolationCorrectionTool : virtual public IIsolationCorrectionTool, std::string m_corr_ddsmearing_file; IsolationCorrection* m_isol_corr; std::string m_tool_ver_str; - bool m_usemetadata; bool m_is_mc; bool m_AFII_corr; std::string m_ddVersion; @@ -75,7 +70,6 @@ class IsolationCorrectionTool : virtual public IIsolationCorrectionTool, bool m_apply_ddDefault; bool m_correct_etcone; bool m_trouble_categories; - bool m_metadata_retrieved; // For systematcis CP::SystematicVariation m_systDDonoff; diff --git a/PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/Root/IsolationCorrectionTool.cxx b/PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/Root/IsolationCorrectionTool.cxx index 529767df8d6..3a45f2f7851 100644 --- a/PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/Root/IsolationCorrectionTool.cxx +++ b/PhysicsAnalysis/ElectronPhotonID/IsolationCorrections/Root/IsolationCorrectionTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "IsolationCorrections/IsolationCorrectionTool.h" @@ -20,14 +20,13 @@ namespace CP { IsolationCorrectionTool::IsolationCorrectionTool( const std::string &name ) - : asg::AsgMetadataTool(name), m_apply_dd(false), m_metadata_retrieved(false), m_systDDonoff("PH_Iso_DDonoff") { + : asg::AsgMetadataTool(name), m_apply_dd(false), m_systDDonoff("PH_Iso_DDonoff") { declareProperty("CorrFile", m_corr_file = "IsolationCorrections/v1/isolation_ptcorrections_rel20_2.root"); declareProperty("CorrFile_ddshift_2015", m_corr_ddshift_2015_file = "IsolationCorrections/v1/isolation_ddcorrection_shift_2015_v3.root"); declareProperty("CorrFile_ddshift", m_corr_ddshift_file = "IsolationCorrections/v1/isolation_ddcorrection_shift.root"); declareProperty("CorrFile_ddsmearing", m_corr_ddsmearing_file = "IsolationCorrections/v1/isolation_ddcorrection_smearing.root"); declareProperty("ToolVer", m_tool_ver_str = "REL20_2"); declareProperty("DataDrivenVer", m_ddVersion = "2015"); - declareProperty("UseMetadata", m_usemetadata = false); declareProperty("AFII_corr", m_AFII_corr = false); declareProperty("IsMC", m_is_mc = true); declareProperty("Correct_etcone", m_correct_etcone = false); @@ -65,8 +64,6 @@ namespace CP { CP::IsolationCorrection::Version tool_ver; - m_metadata_retrieved = false; - if (m_tool_ver_str == "REL20_2") tool_ver = CP::IsolationCorrection::REL20_2; else if (m_tool_ver_str == "REL20") tool_ver = CP::IsolationCorrection::REL20; else if (m_tool_ver_str == "REL17_2") tool_ver = CP::IsolationCorrection::REL17_2; @@ -101,11 +98,8 @@ namespace CP { m_apply_dd = false; } - //If we do not want to use metadata - if(!m_usemetadata) { m_isol_corr->SetAFII(m_AFII_corr); m_isol_corr->SetDataMC(m_is_mc); - } return m_isol_corr->initialize(); } @@ -115,129 +109,6 @@ namespace CP { return m_isol_corr->finalize(); } - StatusCode IsolationCorrectionTool::get_simflavour_from_metadata(PATCore::ParticleDataType::DataType& result){ - //When we can not retrieve metadata Failure will be returned from this method - - //default result - result = PATCore::ParticleDataType::Data; - // - std::string simType(""); - -#ifndef ROOTCORE - //Athena environent - std::string dataType(""); - if( AthAnalysisHelper::retrieveMetadata( "/TagInfo", "project_name" , dataType, inputMetaStore() ).isFailure() ) { - //In case we can not retrieve the metatada - return StatusCode::FAILURE; - } - // - //We got the dataType is it data - if(dataType != "IS_SIMULATION") { - ATH_MSG_DEBUG("NOT IS_SIMULATION aka Data"); - return StatusCode::SUCCESS; - } - // - //if not data determine Fast/FullSim - ATH_MSG_DEBUG("IS_SIMULATION"); - if( AthAnalysisHelper::retrieveMetadata("/Simulation/Parameters", "SimulationFlavour", simType, inputMetaStore()).isFailure() ) { - return StatusCode::FAILURE; - } - else{ - boost::to_upper(simType); - result = (simType.find("ATLFASTII")==std::string::npos) ? PATCore::ParticleDataType::Full : PATCore::ParticleDataType::Fast; - return StatusCode::SUCCESS; - } -#endif - - //Here is the RootCore or to be dual use , assumes we have not returned before for Athena - std::string simulationType(""); - if (!inputMetaStore()->contains<xAOD::FileMetaData>("FileMetaData")) { - return StatusCode::FAILURE; - } - const xAOD::FileMetaData* fmd = 0; - ATH_CHECK(inputMetaStore()->retrieve(fmd, "FileMetaData")); - // - const bool s = fmd->value(xAOD::FileMetaData::simFlavour, simulationType); - if (!s) { - ATH_MSG_DEBUG("no sim flavour from metadata: must be data"); - return StatusCode::FAILURE; - } - - boost::to_upper(simType); - result = (simType.find("ATLFASTII")==std::string::npos) ? PATCore::ParticleDataType::Full : PATCore::ParticleDataType::Fast; - return StatusCode::SUCCESS; - - } - - StatusCode IsolationCorrectionTool::beginInputFile() { - // If we do not want to use metadata - if(!m_usemetadata) { - return StatusCode::SUCCESS; - } - // - PATCore::ParticleDataType::DataType result; - const StatusCode status = get_simflavour_from_metadata(result); - if (status == StatusCode::SUCCESS) { - ATH_MSG_DEBUG("We have metadata"); - - if (result == PATCore::ParticleDataType::Fast) { - m_is_mc = true; - m_AFII_corr = true; - ATH_MSG_DEBUG("Fast sim"); - } - else if (result == PATCore::ParticleDataType::Full) { - m_is_mc = true; - m_AFII_corr = false; - ATH_MSG_DEBUG("Full sim"); - }else { - m_is_mc = false; - m_AFII_corr = false; - ATH_MSG_DEBUG("Data "); - } - ATH_MSG_INFO("is MC = " << m_is_mc); - ATH_MSG_INFO("use AFII = " << m_AFII_corr); - ATH_MSG_DEBUG("metadata from new file: " << (result == PATCore::ParticleDataType::Data ? "data" : - (result == PATCore::ParticleDataType::Full ? "full simulation" : "fast simulation"))); - } - else { - ATH_MSG_WARNING("Not possible to retrieve metadata in the begin Input File"); - m_metadata_retrieved = false; - m_is_mc = false; - m_AFII_corr = false; - } - m_isol_corr->SetAFII(m_AFII_corr); - m_isol_corr->SetDataMC(m_is_mc); - // - return StatusCode::SUCCESS; - } - - StatusCode IsolationCorrectionTool::endInputFile() { - // If we do not want to use metadata - if(!m_usemetadata) { - return StatusCode::SUCCESS; - } - m_metadata_retrieved = false; - return StatusCode::SUCCESS; - } - - StatusCode IsolationCorrectionTool::beginEvent() { - // If we do not want to use metadata, or we retrieved them already - if((!m_usemetadata) || m_metadata_retrieved) { - return StatusCode::SUCCESS; - } - // - //If not metadata have been available and want to use them go via event info - const xAOD::EventInfo* evtInfo(0); - if( (evtStore()->retrieve(evtInfo, "")).isFailure()){ - ATH_MSG_WARNING(" No default Event Info collection found") ; - return StatusCode::SUCCESS; - } - m_is_mc = evtInfo->eventType(xAOD::EventInfo::IS_SIMULATION); - m_metadata_retrieved = true; - m_isol_corr->SetDataMC(m_is_mc); - return StatusCode::SUCCESS; - } - CP::CorrectionCode IsolationCorrectionTool::CorrectLeakage(xAOD::Egamma & eg) { static std::vector<xAOD::Iso::IsolationType> topoisolation_types = {xAOD::Iso::topoetcone20, -- GitLab From fe2c5008662d0519e5a7d305ee9dfb2e81914f61 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Tue, 28 Jul 2020 08:25:49 +0100 Subject: [PATCH 234/459] Dropped spuruious HERE message from TrigConfigSvc py fragment --- .../TrigConfigSvc/python/TrigConfigSvcCfg.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/python/TrigConfigSvcCfg.py b/Trigger/TrigConfiguration/TrigConfigSvc/python/TrigConfigSvcCfg.py index a1603a63f1b..43495573eda 100644 --- a/Trigger/TrigConfiguration/TrigConfigSvc/python/TrigConfigSvcCfg.py +++ b/Trigger/TrigConfiguration/TrigConfigSvc/python/TrigConfigSvcCfg.py @@ -174,15 +174,12 @@ def getL1ConfigSvc( flags = None ): log = logging.getLogger('TrigConfigSvcCfg') from AthenaCommon.Logging import log from TriggerJobOpts.TriggerFlags import TriggerFlags - from AthenaCommon.Configurable import Configurable - print("HERE importing as {}".format(Configurable.configurableRun3Behavior)) # generate menu file generatedFile = generateL1Menu( flags=flags ) # configure config svc - TrigConf__LVL1ConfigSvc = CompFactory.getComp("TrigConf::LVL1ConfigSvc") - l1ConfigSvc = TrigConf__LVL1ConfigSvc( "LVL1ConfigSvc" ) + l1ConfigSvc = CompFactory.TrigConf.LVL1ConfigSvc("LVL1ConfigSvc") l1ConfigSvc.ConfigSource = "XML" l1XMLFile = TriggerFlags.inputLVL1configFile() if flags is None else flags.Trigger.LVL1ConfigFile @@ -213,8 +210,7 @@ def getL1ConfigSvc( flags = None ): @memoize def getHLTConfigSvc( flags = None ): log = logging.getLogger('TrigConfigSvcCfg') - HLTConfigSvc = CompFactory.getComp("TrigConf::HLTConfigSvc") - hltConfigSvc = HLTConfigSvc("HLTConfigSvc") + hltConfigSvc = CompFactory.TrigConf.HLTConfigSvc("HLTConfigSvc") hltXMLFile = "None" hltConfigSvc.ConfigSource = "None" @@ -234,8 +230,7 @@ def getHLTConfigSvc( flags = None ): @memoize def setupHLTPrescaleCondAlg( flags = None ): log = logging.getLogger('TrigConfigSvcCfg') - TrigConf__HLTPrescaleCondAlg = CompFactory.getComp("TrigConf::HLTPrescaleCondAlg") - hltPrescaleCondAlg = TrigConf__HLTPrescaleCondAlg( "HLTPrescaleCondAlg" ) + hltPrescaleCondAlg = CompFactory.TrigConf.HLTPrescaleCondAlg("HLTPrescaleCondAlg") tc = getTrigConfigFromFlag( flags ) hltPrescaleCondAlg.Source = tc["source"] -- GitLab From 0a2be9afd2bf9bf6f527142749041802e3e28bd2 Mon Sep 17 00:00:00 2001 From: Tadej Novak <tadej.novak@cern.ch> Date: Tue, 28 Jul 2020 09:33:45 +0200 Subject: [PATCH 235/459] Fix build --- .../Interfaces/AsgAnalysisInterfaces/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/CMakeLists.txt b/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/CMakeLists.txt index 350dc8a1edf..0c0de6de450 100644 --- a/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/CMakeLists.txt +++ b/PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces/CMakeLists.txt @@ -7,6 +7,7 @@ atlas_subdir( AsgAnalysisInterfaces ) atlas_depends_on_subdirs( PUBLIC Control/AthToolSupport/AsgTools + Event/xAOD/xAODBase Event/xAOD/xAODEventInfo PhysicsAnalysis/AnalysisCommon/PATInterfaces ) @@ -19,7 +20,7 @@ atlas_add_library( AsgAnalysisInterfaces INTERFACE PUBLIC_HEADERS AsgAnalysisInterfaces INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AsgTools xAODEventInfo PATInterfaces ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AsgTools xAODBase xAODEventInfo PATInterfaces ) atlas_add_dictionary( AsgAnalysisInterfacesDict AsgAnalysisInterfaces/AsgAnalysisInterfacesDict.h -- GitLab From 8a49851fb3e573ac024fbef686e77b97e555adbf Mon Sep 17 00:00:00 2001 From: Dan Guest <dguest@cern.ch> Date: Mon, 27 Jul 2020 21:24:23 +0200 Subject: [PATCH 236/459] Add JFvertices when there are no tracks --- .../JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx index 358cd14cad5..7da42f7ca7a 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx @@ -415,6 +415,9 @@ namespace Analysis { std::vector< ElementLink< xAOD::TrackParticleContainer > > tracksAtPVlinks; (*btagIter)->setVariable<std::vector< ElementLink< xAOD::TrackParticleContainer > > >(basename, "tracksAtPVlinks", tracksAtPVlinks); (*btagIter)->setDynTPELName(basename, "tracksAtPVlinks"); + std::vector<ElementLink<xAOD::BTagVertexContainer>> jfvtx; + (*btagIter)->setVariable(basename, "JFvertices", jfvtx); + (*btagIter)->setDynBTagVxELName(basename, "JFvertices"); } } @@ -452,4 +455,4 @@ namespace Analysis { return StatusCode::SUCCESS; } -} // namespace \ No newline at end of file +} // namespace -- GitLab From 5a43b4cb61cd9aa890ac3f6522328ad41aa4ccd8 Mon Sep 17 00:00:00 2001 From: Dan Guest <dguest@cern.ch> Date: Mon, 27 Jul 2020 21:24:40 +0200 Subject: [PATCH 237/459] enable debugging --- .../JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py | 2 ++ .../JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py | 3 +++ 2 files changed, 5 insertions(+) diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py index 99c496d8d23..149c394957c 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py @@ -7,6 +7,7 @@ from JetTagTools.JetFitterVariablesFactoryConfig import JetFitterVariablesFactor Analysis__BTagLightSecVertexing=CompFactory.Analysis.BTagLightSecVertexing +from GaudiKernel.Configurable import DEBUG def BTagLightSecVtxToolCfg(flags, Name, JetCollection, PrimaryVertexCollectionName="", SVandAssoc = {""}, TimeStamp = "", **options): """Adds a SecVtxTool instance and registers it. @@ -52,6 +53,7 @@ def BTagLightSecVtxToolCfg(flags, Name, JetCollection, PrimaryVertexCollectionNa options['JetJFVtxLinkName'] = jetcol + '.' + OutputFilesJFVxname #options.setdefault('MSVVariableFactory', varFactory) options['name'] = Name+TimeStamp + options['OutputLevel'] = DEBUG tool = Analysis__BTagLightSecVertexing(**options) diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py index f828e2587fe..13da2c71e86 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py @@ -4,6 +4,8 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory from BTagging.MSVVariablesFactoryConfig import MSVVariablesFactoryCfg +from GaudiKernel.Configurable import DEBUG + Analysis__JetSecVertexingAlg=CompFactory.Analysis.JetSecVertexingAlg def JetSecVertexingAlgCfg(ConfigFlags, JetCollection, PrimaryVertexCollectionName="", SVFinder="", Associator="", **options): @@ -40,6 +42,7 @@ def JetSecVertexingAlgCfg(ConfigFlags, JetCollection, PrimaryVertexCollectionNam options['JetSecVtxLinkName'] = options['JetCollectionName'] + '.' + JetSVLink options.setdefault('MSVVariableFactory', varFactory) options['name'] = (jetcol + '_' + SVFinder + '_secvtx').lower() + options['OutputLevel'] = DEBUG # -- create the association algorithm acc.addEventAlgo(Analysis__JetSecVertexingAlg(**options)) -- GitLab From dca33ba3b0ff1297e01184b8715b4fe115935755 Mon Sep 17 00:00:00 2001 From: Dan Guest <dguest@cern.ch> Date: Tue, 28 Jul 2020 09:37:44 +0200 Subject: [PATCH 238/459] Many fixes for jetfitter --- .../BTagging/src/BTagLightSecVertexing.cxx | 130 +++++++++--------- 1 file changed, 68 insertions(+), 62 deletions(-) diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx index 7da42f7ca7a..ad75d21c487 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx @@ -218,80 +218,90 @@ namespace Analysis { ATH_MSG_ERROR( " cannot retrieve vertex container EL decoration with key " << m_jetJFVtxLinkName.key() ); return StatusCode::FAILURE; } - const std::vector< ElementLink< xAOD::BTagVertexContainer > > JFVerticesLinks = h_jetJFVtxLinkName(myJet); - - //twotrackVerticesInJet - const Trk::TwoTrackVerticesInJet* TwoTrkVtxInJet = myVertexInfoJetFitter->getTwoTrackVerticesInJet(); - - const std::vector< const xAOD::Vertex*> vecTwoTrkVtx = TwoTrkVtxInJet->getTwoTrackVertice(); + std::vector< ElementLink< xAOD::BTagVertexContainer > > JFVerticesLinks; + + //twotrackVerticesInJet + std::vector< const xAOD::Vertex*> vecTwoTrkVtx; + if (myVertexInfoJetFitter) { + const Trk::TwoTrackVerticesInJet* TwoTrkVtxInJet = myVertexInfoJetFitter->getTwoTrackVerticesInJet(); + vecTwoTrkVtx = TwoTrkVtxInJet->getTwoTrackVertice(); + JFVerticesLinks = h_jetJFVtxLinkName(myJet); + } int N2TrkVtx = vecTwoTrkVtx.size(); if("JetFitter" == basename){ - newBTag->setTaggerInfo(N2TrkVtx, xAOD::BTagInfo::JetFitter_N2Tpair); + ATH_CHECK(newBTag->setTaggerInfo(N2TrkVtx, xAOD::BTagInfo::JetFitter_N2Tpair)); } else{ newBTag->setVariable<int>(basename, "N2Tpair", N2TrkVtx); } - + //list of JFvertices - const std::vector<Trk::VxJetCandidate*> JFvertices = myVertexInfoJetFitter->verticesJF(); - + std::vector<Trk::VxJetCandidate*> JFvertices; + if (myVertexInfoJetFitter) JFvertices = myVertexInfoJetFitter->verticesJF(); + int nVtx = 0; + Trk::VxJetCandidate* vxjetcand = nullptr; + std::vector<Trk::VxVertexOnJetAxis*> Vtxonjetaxes; if (JFvertices.size() > 0) { - Trk::VxJetCandidate* vxjetcand = dynamic_cast< Trk::VxJetCandidate*>(JFvertices[0]); + vxjetcand = dynamic_cast< Trk::VxJetCandidate*>(JFvertices[0]); if (!vxjetcand) { ATH_MSG_WARNING("#BTAG# bad VxCandidate is not a VxJetCandidate"); return StatusCode::SUCCESS; } //vtx on jet axis - const std::vector<Trk::VxVertexOnJetAxis*> Vtxonjetaxes = vxjetcand->getVerticesOnJetAxis(); - - nVtx = Vtxonjetaxes.size(); - typedef std::vector<ElementLink<xAOD::BTagVertexContainer> > BTagVertices; - ATH_MSG_DEBUG("#BTAGJF# filling vertices for basename: " << basename); - newBTag->setVariable<std::vector<ElementLink<xAOD::BTagVertexContainer> > >(basename, "JFvertices", JFVerticesLinks); - newBTag->setDynBTagVxELName(basename, "JFvertices"); - ATH_MSG_DEBUG("#BTAGJF# n vertices: " << newBTag->auxdata<BTagVertices>(basename + "_JFvertices").size()); + Vtxonjetaxes = vxjetcand->getVerticesOnJetAxis(); + } + nVtx = Vtxonjetaxes.size(); + typedef std::vector<ElementLink<xAOD::BTagVertexContainer> > BTagVertices; + ATH_MSG_DEBUG("#BTAGJF# filling vertices for basename: " << basename); + newBTag->setVariable<std::vector<ElementLink<xAOD::BTagVertexContainer> > >(basename, "JFvertices", JFVerticesLinks); + newBTag->setDynBTagVxELName(basename, "JFvertices"); + ATH_MSG_DEBUG("#BTAGJF# n vertices: " << newBTag->auxdata<BTagVertices>(basename + "_JFvertices").size()); + Amg::VectorX& vtxPositions(5); + Amg::MatrixX& vtxCovMatrix(5,5); + if (nVtx > 0){ const Trk::RecVertexPositions& recVtxposition = vxjetcand->getRecVertexPositions(); - const Amg::VectorX& vtxPositions = recVtxposition.position(); - const Amg::MatrixX& vtxCovMatrix = recVtxposition.covariancePosition(); + vtxPositions = recVtxposition.position(); + vtxCovMatrix = recVtxposition.covariancePosition(); ATH_MSG_DEBUG("#BTAGJF# size vtxPosition "<<vtxPositions.size()); - std::vector< float > fittedPosition = std::vector<float>(nVtx+5,-1); - std::vector< float > fittedCov = std::vector<float>(nVtx+5,-1); //only store the diagonal terms - if(vtxPositions.rows()>4 ) { - fittedPosition[0] = vtxPositions[Trk::jet_xv]; //position x,y,z of PV - fittedPosition[1] = vtxPositions[Trk::jet_yv]; - fittedPosition[2] = vtxPositions[Trk::jet_zv]; - fittedPosition[3] = vtxPositions[Trk::jet_phi]; // direction of the jet axis - fittedPosition[4] = vtxPositions[Trk::jet_theta]; - - fittedCov[0] = vtxCovMatrix(0,0); - fittedCov[1] = vtxCovMatrix(1,1); - fittedCov[2] = vtxCovMatrix(2,2); - fittedCov[3] = vtxCovMatrix(3,3); - fittedCov[4] = vtxCovMatrix(4,4); - - } + } + std::vector< float > fittedPosition = std::vector<float>(nVtx+5,-1); + std::vector< float > fittedCov = std::vector<float>(nVtx+5,-1); //only store the diagonal terms + if(vtxPositions.rows()>4 ) { + fittedPosition[0] = vtxPositions[Trk::jet_xv]; //position x,y,z of PV + fittedPosition[1] = vtxPositions[Trk::jet_yv]; + fittedPosition[2] = vtxPositions[Trk::jet_zv]; + fittedPosition[3] = vtxPositions[Trk::jet_phi]; // direction of the jet axis + fittedPosition[4] = vtxPositions[Trk::jet_theta]; + + fittedCov[0] = vtxCovMatrix(0,0); + fittedCov[1] = vtxCovMatrix(1,1); + fittedCov[2] = vtxCovMatrix(2,2); + fittedCov[3] = vtxCovMatrix(3,3); + fittedCov[4] = vtxCovMatrix(4,4); + } - for(int i=0; i<nVtx; ++i){ - fittedPosition[i+5] = vtxPositions[i+5]; //dist of vtxi on jet axis from PV - fittedCov[i+5] = vtxCovMatrix(i+5,i+5); - } - - newBTag->setVariable<std::vector< float > >(basename, "fittedPosition", fittedPosition); - newBTag->setVariable<std::vector< float > >(basename, "fittedCov", fittedCov); - - //trks at PV - const std::vector<Trk::VxTrackAtVertex*> & trackatPV = vxjetcand->getPrimaryVertex()->getTracksAtVertex(); + for(int i=0; i<nVtx; ++i){ + fittedPosition[i+5] = vtxPositions[i+5]; //dist of vtxi on jet axis from PV + fittedCov[i+5] = vtxCovMatrix(i+5,i+5); + } + + newBTag->setVariable<std::vector< float > >(basename, "fittedPosition", fittedPosition); + newBTag->setVariable<std::vector< float > >(basename, "fittedCov", fittedCov); + + //trks at PV + std::vector<Trk::VxTrackAtVertex*> trackatPV; + std::vector< float > tracksAtPVchi2; + std::vector< float > tracksAtPVndf; + std::vector< ElementLink< xAOD::TrackParticleContainer > > tracksAtPVlinks; + if (vxjetcand) { + trackatPV = vxjetcand->getPrimaryVertex()->getTracksAtVertex(); std::vector<Trk::VxTrackAtVertex*>::const_iterator irBegin = trackatPV.begin(); std::vector<Trk::VxTrackAtVertex*>::const_iterator irEnd = trackatPV.end(); - std::vector< float > tracksAtPVchi2; - std::vector< float > tracksAtPVndf; - std::vector< ElementLink< xAOD::TrackParticleContainer > > tracksAtPVlinks; - for (std::vector<Trk::VxTrackAtVertex*>::const_iterator it=irBegin; it!=irEnd; ++it) { const Trk::FitQuality& trkquality = (*it)->trackQuality(); double tmpchi2 = trkquality.chiSquared(); @@ -310,18 +320,13 @@ namespace Analysis { tpel.toContainedElement(*theTrackParticleContainer, myTrklink); tracksAtPVlinks.push_back(tpel); } - - newBTag->setVariable<std::vector< float > >(basename, "tracksAtPVchi2", tracksAtPVchi2); - newBTag->setVariable<std::vector< float > >(basename, "tracksAtPVndf", tracksAtPVndf); - newBTag->setVariable<std::vector< ElementLink< xAOD::TrackParticleContainer > > >(basename, "tracksAtPVlinks", tracksAtPVlinks); - newBTag->setDynTPELName(basename, "tracksAtPVlinks"); - - - } - else { //No JF vertices - ATH_MSG_ERROR("#BTAG# No JF vertices. Minimum 1"); } + newBTag->setVariable<std::vector< float > >(basename, "tracksAtPVchi2", tracksAtPVchi2); + newBTag->setVariable<std::vector< float > >(basename, "tracksAtPVndf", tracksAtPVndf); + newBTag->setVariable<std::vector< ElementLink< xAOD::TrackParticleContainer > > >(basename, "tracksAtPVlinks", tracksAtPVlinks); + newBTag->setDynTPELName(basename, "tracksAtPVlinks"); + StatusCode sc = m_JFvarFactory->fillJetFitterVariables(myJet, newBTag, myVertexInfoJetFitter, basename); if(sc.isFailure()){ ATH_MSG_ERROR("#BTAG# error filling variables in JetFitterVariablesFactory" ); @@ -434,7 +439,8 @@ namespace Analysis { ATH_MSG_ERROR("#BTAG# error filling variables from VxSecVKalVertexInfo for " << basename); return sc; } - } else if (const Trk::VxJetFitterVertexInfo* myVertexInfoJetFitter = dynamic_cast<const Trk::VxJetFitterVertexInfo*>(&myVertexInfo)) { + } else if (basename == "JetFitter") { + const Trk::VxJetFitterVertexInfo* myVertexInfoJetFitter = dynamic_cast<const Trk::VxJetFitterVertexInfo*>(&myVertexInfo); ATH_MSG_DEBUG("#BTAG# Found valid VxJetFitterVertexInfo information: " << infoCont.key()); StatusCode sc = fillJFVariables(jetToTag, *btagIter, myVertexInfoJetFitter, theTrackParticleContainer, basename); if(sc.isFailure()){ -- GitLab From bdba0b48a3d86c73a4c96bdc28c4a447aad8bedd Mon Sep 17 00:00:00 2001 From: schaffer <R.D.Schaffer@cern.ch> Date: Tue, 28 Jul 2020 09:51:37 +0200 Subject: [PATCH 239/459] removing a few unneeded comments --- .../G4AtlasServices/python/G4AtlasFieldServices.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py index ee81ddc5392..9a4ca5784b3 100644 --- a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py +++ b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py @@ -3,7 +3,6 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory StandardFieldSvc=CompFactory.StandardFieldSvc -# from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg #to prevent unit tests failing when just running over simulation import os if "AthSimulation_DIR" not in os.environ: @@ -12,23 +11,12 @@ if "AthSimulation_DIR" not in os.environ: def StandardFieldSvcCfg(ConfigFlags,name="StandardField", **kwargs): result = ComponentAccumulator() - # #setup the field and add the magneticfield service - # acc = MagneticFieldSvcCfg(ConfigFlags) - # result.merge(acc) - - # kwargs.setdefault("MagneticFieldSvc", result.getService("AtlasFieldSvc")) # TODO This should probably be based on simFlags.MagneticField? - # #kwargs.setdefault("FieldOn", True) - result.addService(StandardFieldSvc(name, **kwargs)) return result def ForwardFieldSvcCfg(ConfigFlags, name="ForwardField", **kwargs): result = ComponentAccumulator() - # #setup the field and add the magneticfield service - # acc = MagneticFieldSvcCfg(ConfigFlags) - # result.merge(acc) - # #FIXME Once it exists this version should use the new MagField Service defined in ForwardRegionMgField # kwargs.setdefault("MagneticFieldSvc", result.getService("AtlasFieldSvc")) # #kwargs.setdefault("FieldOn", True) -- GitLab From a48621eba239a59a5024712a59feda12cc3501be Mon Sep 17 00:00:00 2001 From: Dan Guest <dguest@cern.ch> Date: Tue, 28 Jul 2020 10:45:25 +0200 Subject: [PATCH 240/459] Got this running, still throws some FPEs --- .../BTagging/src/BTagLightSecVertexing.cxx | 71 +++++++++---------- .../src/JetFitterVariablesFactory.cxx | 6 +- 2 files changed, 36 insertions(+), 41 deletions(-) diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx index ad75d21c487..9745e21a64b 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx @@ -114,25 +114,23 @@ namespace Analysis { SG::ReadDecorHandle<xAOD::JetContainer, std::vector<ElementLink< xAOD::VertexContainer> > > h_jetSVLinkName (m_jetSVLinkName); - if (!h_jetSVLinkName.isAvailable()) { - ATH_MSG_ERROR( " cannot retrieve vertex container EL decoration with key " << m_jetSVLinkName.key() ); - return StatusCode::FAILURE; + std::vector< ElementLink< xAOD::VertexContainer > > SVertexLinks; + if (myVertexInfoVKal) { + if (!h_jetSVLinkName.isAvailable()) { + ATH_MSG_ERROR( " cannot retrieve vertex container EL decoration with key " << m_jetSVLinkName.key() ); + return StatusCode::FAILURE; + } + SVertexLinks = h_jetSVLinkName(myJet); } - const std::vector< ElementLink< xAOD::VertexContainer > > SVertexLinks = h_jetSVLinkName(myJet); - - std::vector<xAOD::Vertex*>::const_iterator verticesBegin = myVertexInfoVKal->vertices().begin(); - std::vector<xAOD::Vertex*>::const_iterator verticesEnd = myVertexInfoVKal->vertices().end(); + std::vector<xAOD::Vertex*> vertices; std::vector<ElementLink<xAOD::TrackParticleContainer> > TrkList; - float mass = -1., energyfrc = -1., energyTrk=-1, dsttomatlayer = -1; - int n2trk = -1, npsec = -1; //npprm = -1; - - if(myVertexInfoVKal->vertices().size()){ - npsec=0; - } - + float mass = 0, energyfrc = NAN, energyTrk = 0, dsttomatlayer = NAN; + int n2trk = 0, npsec = 0; + if(basename.find("MSV") != 0){ - for (std::vector<xAOD::Vertex*>::const_iterator verticesIter=verticesBegin; verticesIter!=verticesEnd;++verticesIter) { + for (std::vector<xAOD::Vertex*>::const_iterator verticesIter = vertices.begin(); + verticesIter!=vertices.end();++verticesIter) { std::vector<ElementLink<xAOD::TrackParticleContainer> > theseTracks = (*verticesIter)->trackParticleLinks(); npsec += theseTracks.size(); for (std::vector<ElementLink<xAOD::TrackParticleContainer> >::iterator itr=theseTracks.begin();itr!=theseTracks.end();itr++){ @@ -140,7 +138,7 @@ namespace Analysis { } } - ATH_MSG_DEBUG("#BTAG# Size of the sec vertex linked to the BTagging: " << SVertexLinks.size()); + ATH_MSG_DEBUG("#BTAG# Size of the sec vertex linked to the BTagging: " << SVertexLinks.size()); newBTag->setVariable<std::vector<ElementLink<xAOD::VertexContainer> > >(basename, "vertices", SVertexLinks); newBTag->setDynVxELName(basename, "vertices"); @@ -152,13 +150,10 @@ namespace Analysis { dsttomatlayer= myVertexInfoVKal->dstToMatLay(); } - - newBTag->setVariable<float>(basename, "energyTrkInJet", energyTrk); newBTag->setVariable<float>(basename, "dstToMatLay", dsttomatlayer); if("SV1" == basename){ - //newBTag->setTaggerInfo(npprm, xAOD::BTagInfo::SV0_NGTinJet); newBTag->setTaggerInfo(mass, xAOD::BTagInfo::SV1_masssvx); newBTag->setTaggerInfo(energyfrc, xAOD::BTagInfo::SV1_efracsvx); newBTag->setTaggerInfo(n2trk, xAOD::BTagInfo::SV1_N2Tpair); @@ -171,8 +166,7 @@ namespace Analysis { newBTag->setTaggerInfo(n2trk, xAOD::BTagInfo::SV0_N2Tpair); newBTag->setTaggerInfo(npsec, xAOD::BTagInfo::SV0_NGTinSvx); newBTag->setSV0_TrackParticleLinks(TrkList); - } - else{ + } else{ newBTag->setVariable<float>(basename, "masssvx", mass); newBTag->setVariable<float>(basename, "efracsvx", energyfrc); newBTag->setVariable<int>(basename, "N2Tpair", n2trk); @@ -181,8 +175,8 @@ namespace Analysis { newBTag->setDynTPELName(basename, "TrackParticleLinks"); } }//no msv - if(theTrackParticleContainer){ - std::vector<ElementLink<xAOD::TrackParticleContainer> > badtrackEL; + std::vector<ElementLink<xAOD::TrackParticleContainer> > badtrackEL; + if(theTrackParticleContainer && myVertexInfoVKal){ std::vector<const xAOD::IParticle*> btip = myVertexInfoVKal->badTracksIP(); std::vector<const xAOD::IParticle*>::iterator ipBegin = btip.begin(); @@ -197,11 +191,9 @@ namespace Analysis { tpel.toContainedElement(*theTrackParticleContainer, tp); badtrackEL.push_back(tpel); } - newBTag->setVariable<std::vector<ElementLink<xAOD::TrackParticleContainer> > >(basename, "badTracksIP", badtrackEL); - newBTag->setDynTPELName(basename, "badTracksIP"); - } else { - ATH_MSG_WARNING("#BTAG# pointer to track particle container not available -> can't create EL to bad tracks IP"); } + newBTag->setVariable<std::vector<ElementLink<xAOD::TrackParticleContainer> > >(basename, "badTracksIP", badtrackEL); + newBTag->setDynTPELName(basename, "badTracksIP"); return StatusCode::SUCCESS; @@ -214,10 +206,6 @@ namespace Analysis { std::string basename) const { SG::ReadDecorHandle<xAOD::JetContainer, std::vector<ElementLink< xAOD::BTagVertexContainer> > > h_jetJFVtxLinkName (m_jetJFVtxLinkName); - if (!h_jetJFVtxLinkName.isAvailable()) { - ATH_MSG_ERROR( " cannot retrieve vertex container EL decoration with key " << m_jetJFVtxLinkName.key() ); - return StatusCode::FAILURE; - } std::vector< ElementLink< xAOD::BTagVertexContainer > > JFVerticesLinks; //twotrackVerticesInJet @@ -225,12 +213,16 @@ namespace Analysis { if (myVertexInfoJetFitter) { const Trk::TwoTrackVerticesInJet* TwoTrkVtxInJet = myVertexInfoJetFitter->getTwoTrackVerticesInJet(); vecTwoTrkVtx = TwoTrkVtxInJet->getTwoTrackVertice(); + if (!h_jetJFVtxLinkName.isAvailable()) { + ATH_MSG_ERROR( " cannot retrieve vertex container EL decoration with key " << m_jetJFVtxLinkName.key() ); + return StatusCode::FAILURE; + } JFVerticesLinks = h_jetJFVtxLinkName(myJet); } int N2TrkVtx = vecTwoTrkVtx.size(); if("JetFitter" == basename){ - ATH_CHECK(newBTag->setTaggerInfo(N2TrkVtx, xAOD::BTagInfo::JetFitter_N2Tpair)); + newBTag->setTaggerInfo(N2TrkVtx, xAOD::BTagInfo::JetFitter_N2Tpair); } else{ newBTag->setVariable<int>(basename, "N2Tpair", N2TrkVtx); @@ -261,8 +253,8 @@ namespace Analysis { newBTag->setDynBTagVxELName(basename, "JFvertices"); ATH_MSG_DEBUG("#BTAGJF# n vertices: " << newBTag->auxdata<BTagVertices>(basename + "_JFvertices").size()); - Amg::VectorX& vtxPositions(5); - Amg::MatrixX& vtxCovMatrix(5,5); + Amg::VectorX vtxPositions(5); + Amg::MatrixX vtxCovMatrix(5,5); if (nVtx > 0){ const Trk::RecVertexPositions& recVtxposition = vxjetcand->getRecVertexPositions(); vtxPositions = recVtxposition.position(); @@ -385,7 +377,7 @@ namespace Analysis { const xAOD::Jet& jetToTag = **jetIter; const Trk::VxSecVertexInfo& myVertexInfo = **infoSVIter; - const xAOD::TrackParticleContainer* theTrackParticleContainer = 0; + const xAOD::TrackParticleContainer* theTrackParticleContainer = nullptr; std::string trackname = m_secVertexFinderTrackNameList[nameiter]; std::string basename = m_secVertexFinderBaseNameList[nameiter]; @@ -420,9 +412,9 @@ namespace Analysis { std::vector< ElementLink< xAOD::TrackParticleContainer > > tracksAtPVlinks; (*btagIter)->setVariable<std::vector< ElementLink< xAOD::TrackParticleContainer > > >(basename, "tracksAtPVlinks", tracksAtPVlinks); (*btagIter)->setDynTPELName(basename, "tracksAtPVlinks"); - std::vector<ElementLink<xAOD::BTagVertexContainer>> jfvtx; - (*btagIter)->setVariable(basename, "JFvertices", jfvtx); - (*btagIter)->setDynBTagVxELName(basename, "JFvertices"); + // std::vector<ElementLink<xAOD::BTagVertexContainer>> jfvtx; + // (*btagIter)->setVariable(basename, "JFvertices", jfvtx); + // (*btagIter)->setDynBTagVxELName(basename, "JFvertices"); } } @@ -432,7 +424,8 @@ namespace Analysis { theTrackParticleContainer = (*itEL).getStorableObjectPointer(); } - if (const Trk::VxSecVKalVertexInfo* myVertexInfoVKal = dynamic_cast<const Trk::VxSecVKalVertexInfo*>(&myVertexInfo)) { + if (basename == "SV1") { + const Trk::VxSecVKalVertexInfo* myVertexInfoVKal = dynamic_cast<const Trk::VxSecVKalVertexInfo*>(&myVertexInfo); ATH_MSG_DEBUG("#BTAG# Found valid VKalVertexInfo information: " << infoCont.key()); StatusCode sc = fillVkalVariables(**jetIter, *btagIter, myVertexInfoVKal, theTrackParticleContainer, basename); if(sc.isFailure()){ diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/src/JetFitterVariablesFactory.cxx b/PhysicsAnalysis/JetTagging/JetTagTools/src/JetFitterVariablesFactory.cxx index 4d964b10b60..cd0b49e9cdc 100644 --- a/PhysicsAnalysis/JetTagging/JetTagTools/src/JetFitterVariablesFactory.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagTools/src/JetFitterVariablesFactory.cxx @@ -95,13 +95,15 @@ StatusCode JetFitterVariablesFactory::finalize() { int ndof(0); float deltaRFlightDir(0.); - const std::vector<Trk::VxJetCandidate*>& myVertices = myJetFitterInfo->verticesJF(); + std::vector<Trk::VxJetCandidate*> myVertices; + Trk::VxJetCandidate* myVxJetCandidate = nullptr; + if (myJetFitterInfo) myVertices = myJetFitterInfo->verticesJF(); if(myVertices.size() == 0){ ATH_MSG_WARNING("#BTAG# Trk::VxJetCandidate not found for jet fitter "); fill(BTag, basename, mass_uncorr, nVTX, nSingleTracks, nTracksAtVtx, mass, energyFraction, significance3d, deltaeta, deltaphi, chi2, ndof, deltaRFlightDir); return StatusCode::SUCCESS; } - const Trk::VxJetCandidate* myVxJetCandidate=dynamic_cast<Trk::VxJetCandidate*>(myVertices[0]); + if(myVertices.size() > 0) myVxJetCandidate=dynamic_cast<Trk::VxJetCandidate*>(myVertices[0]); if (myVxJetCandidate==0) { ATH_MSG_WARNING("#BTAG# No correct VxJetCandidate could be retrieved." ); fill(BTag, basename, mass_uncorr, nVTX, nSingleTracks, nTracksAtVtx, mass, energyFraction, significance3d, deltaeta, deltaphi, chi2, ndof, deltaRFlightDir); -- GitLab From 6df5dc5a275944b883a29ad75a1940ffee013b9a Mon Sep 17 00:00:00 2001 From: Denis Damazio <damazio@mail.cern.ch> Date: Tue, 28 Jul 2020 11:30:36 +0200 Subject: [PATCH 241/459] Clean up configuration files --- Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py b/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py index 73923431189..0c229e2c12b 100644 --- a/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py +++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py @@ -74,12 +74,6 @@ def fastCaloRecoSequence(InViewRoIs, doRinger=False, ClustersName="HLT_L2CaloEMC fastCaloVDV.DataObjects = [( 'CaloBCIDAverage' , 'StoreGateSvc+CaloBCIDAverage' ), ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+EMCaloRoIs' )] - # Make sure BCID average still available at whole-event level - from AthenaCommon.AlgSequence import AlgSequence - topSequence = AlgSequence() - if not hasattr( topSequence, "CaloBCIDAvgAlg" ): - topSequence.SGInputLoader.Load += [( 'CaloBCIDAverage' , 'StoreGateSvc+CaloBCIDAverage' )] - fastCaloInViewSequence = seqAND( 'fastCaloInViewSequence', [fastCaloVDV, fastCaloAlg] ) sequenceOut = fastCaloAlg.ClustersName return (fastCaloInViewSequence, sequenceOut) @@ -151,8 +145,6 @@ def HLTRoITopoRecoSequence(RoIs): from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() topSequence.SGInputLoader.Load += [( 'ILArHVScaleCorr' , 'ConditionStore+LArHVScaleCorrRecomputed' )] - if not hasattr( topSequence, "CaloBCIDAvgAlg" ): - topSequence.SGInputLoader.Load += [( 'CaloBCIDAverage' , 'StoreGateSvc+CaloBCIDAverage' )] cellMaker = HLTCellMaker(RoIs, algSuffix="RoI") topoClusterMaker = _algoHLTTopoCluster(inputEDM = cellMaker.CellsName, algSuffix="RoI") -- GitLab From 0c9aa817d41a756916b6eb522df31dc5f1a9d40f Mon Sep 17 00:00:00 2001 From: Dan Guest <dguest@cern.ch> Date: Tue, 28 Jul 2020 11:33:07 +0200 Subject: [PATCH 242/459] Fix FPEs --- .../FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx | 10 ++++++---- .../JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx | 6 +++--- .../JetTagTools/src/JetFitterVariablesFactory.cxx | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx index 0ee651f02d9..9fbda3003a8 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/BTagJetAugmenter.cxx @@ -313,12 +313,14 @@ void BTagJetAugmenter::augment(const xAOD::Jet &jet) { track_number++; track_E_total += track_particle.e(); - TVector3 track_flightDirRelVect = track_particle.p4().Vect(); - track_flightDirRelVect.SetTheta(track_flightDirRelVect.Angle(flightDir)); double track_flightDirRelEta = NAN; - if (track_flightDirRelVect.Perp() != 0) { - track_flightDirRelEta = track_flightDirRelVect.PseudoRapidity(); + if (!std::isnan(jf_phi)) { + TVector3 track_flightDirRelVect = track_particle.p4().Vect(); + if (track_flightDirRelVect.Perp()) { + track_flightDirRelVect.SetTheta(track_flightDirRelVect.Angle(flightDir)); + track_flightDirRelEta = track_flightDirRelVect.PseudoRapidity(); + } } track_flightDirRelEta_total += track_flightDirRelEta; diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx index 9745e21a64b..6d60595b488 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx @@ -253,8 +253,8 @@ namespace Analysis { newBTag->setDynBTagVxELName(basename, "JFvertices"); ATH_MSG_DEBUG("#BTAGJF# n vertices: " << newBTag->auxdata<BTagVertices>(basename + "_JFvertices").size()); - Amg::VectorX vtxPositions(5); - Amg::MatrixX vtxCovMatrix(5,5); + Amg::VectorX vtxPositions = Amg::VectorX::Zero(5); + Amg::MatrixX vtxCovMatrix = Amg::MatrixX::Zero(5,5); if (nVtx > 0){ const Trk::RecVertexPositions& recVtxposition = vxjetcand->getRecVertexPositions(); vtxPositions = recVtxposition.position(); @@ -267,7 +267,7 @@ namespace Analysis { fittedPosition[0] = vtxPositions[Trk::jet_xv]; //position x,y,z of PV fittedPosition[1] = vtxPositions[Trk::jet_yv]; fittedPosition[2] = vtxPositions[Trk::jet_zv]; - fittedPosition[3] = vtxPositions[Trk::jet_phi]; // direction of the jet axis + fittedPosition[3] = nVtx > 0 ? vtxPositions[Trk::jet_phi] : NAN; // direction of the jet axis fittedPosition[4] = vtxPositions[Trk::jet_theta]; fittedCov[0] = vtxCovMatrix(0,0); diff --git a/PhysicsAnalysis/JetTagging/JetTagTools/src/JetFitterVariablesFactory.cxx b/PhysicsAnalysis/JetTagging/JetTagTools/src/JetFitterVariablesFactory.cxx index cd0b49e9cdc..74c2cc58c72 100644 --- a/PhysicsAnalysis/JetTagging/JetTagTools/src/JetFitterVariablesFactory.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagTools/src/JetFitterVariablesFactory.cxx @@ -99,7 +99,7 @@ StatusCode JetFitterVariablesFactory::finalize() { Trk::VxJetCandidate* myVxJetCandidate = nullptr; if (myJetFitterInfo) myVertices = myJetFitterInfo->verticesJF(); if(myVertices.size() == 0){ - ATH_MSG_WARNING("#BTAG# Trk::VxJetCandidate not found for jet fitter "); + ATH_MSG_DEBUG("#BTAG# Trk::VxJetCandidate not found for jet fitter "); fill(BTag, basename, mass_uncorr, nVTX, nSingleTracks, nTracksAtVtx, mass, energyFraction, significance3d, deltaeta, deltaphi, chi2, ndof, deltaRFlightDir); return StatusCode::SUCCESS; } -- GitLab From fa6aeed100bf36733440f857b3e729f736989614 Mon Sep 17 00:00:00 2001 From: Dan Guest <dguest@cern.ch> Date: Tue, 28 Jul 2020 11:35:25 +0200 Subject: [PATCH 243/459] Revert "enable debugging" This reverts commit 5a43b4cb61cd9aa890ac3f6522328ad41aa4ccd8. --- .../JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py | 2 -- .../JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py | 3 --- 2 files changed, 5 deletions(-) diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py index 149c394957c..99c496d8d23 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagLightSecVertexingConfig.py @@ -7,7 +7,6 @@ from JetTagTools.JetFitterVariablesFactoryConfig import JetFitterVariablesFactor Analysis__BTagLightSecVertexing=CompFactory.Analysis.BTagLightSecVertexing -from GaudiKernel.Configurable import DEBUG def BTagLightSecVtxToolCfg(flags, Name, JetCollection, PrimaryVertexCollectionName="", SVandAssoc = {""}, TimeStamp = "", **options): """Adds a SecVtxTool instance and registers it. @@ -53,7 +52,6 @@ def BTagLightSecVtxToolCfg(flags, Name, JetCollection, PrimaryVertexCollectionNa options['JetJFVtxLinkName'] = jetcol + '.' + OutputFilesJFVxname #options.setdefault('MSVVariableFactory', varFactory) options['name'] = Name+TimeStamp - options['OutputLevel'] = DEBUG tool = Analysis__BTagLightSecVertexing(**options) diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py index 13da2c71e86..f828e2587fe 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetSecVertexingAlgConfig.py @@ -4,8 +4,6 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory from BTagging.MSVVariablesFactoryConfig import MSVVariablesFactoryCfg -from GaudiKernel.Configurable import DEBUG - Analysis__JetSecVertexingAlg=CompFactory.Analysis.JetSecVertexingAlg def JetSecVertexingAlgCfg(ConfigFlags, JetCollection, PrimaryVertexCollectionName="", SVFinder="", Associator="", **options): @@ -42,7 +40,6 @@ def JetSecVertexingAlgCfg(ConfigFlags, JetCollection, PrimaryVertexCollectionNam options['JetSecVtxLinkName'] = options['JetCollectionName'] + '.' + JetSVLink options.setdefault('MSVVariableFactory', varFactory) options['name'] = (jetcol + '_' + SVFinder + '_secvtx').lower() - options['OutputLevel'] = DEBUG # -- create the association algorithm acc.addEventAlgo(Analysis__JetSecVertexingAlg(**options)) -- GitLab From 40f57ed56cfdcd7a8db85ffea5827f24396c607d Mon Sep 17 00:00:00 2001 From: Dan Guest <dguest@cern.ch> Date: Tue, 28 Jul 2020 11:54:45 +0200 Subject: [PATCH 244/459] Cleanup in BTagLightSecVertexing --- .../JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx index 6d60595b488..9892d62b156 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx @@ -268,7 +268,7 @@ namespace Analysis { fittedPosition[1] = vtxPositions[Trk::jet_yv]; fittedPosition[2] = vtxPositions[Trk::jet_zv]; fittedPosition[3] = nVtx > 0 ? vtxPositions[Trk::jet_phi] : NAN; // direction of the jet axis - fittedPosition[4] = vtxPositions[Trk::jet_theta]; + fittedPosition[4] = nVtx > 0 ? vtxPositions[Trk::jet_theta] : NAN; fittedCov[0] = vtxCovMatrix(0,0); fittedCov[1] = vtxCovMatrix(1,1); @@ -410,14 +410,11 @@ namespace Analysis { } else if("JetFitter" == basename) { std::vector< ElementLink< xAOD::TrackParticleContainer > > tracksAtPVlinks; - (*btagIter)->setVariable<std::vector< ElementLink< xAOD::TrackParticleContainer > > >(basename, "tracksAtPVlinks", tracksAtPVlinks); + (*btagIter)->setVariable<std::vector< ElementLink< xAOD::TrackParticleContainer > > >(basename, "tracksAtPVlinks", tracksAtPVlinks); (*btagIter)->setDynTPELName(basename, "tracksAtPVlinks"); - // std::vector<ElementLink<xAOD::BTagVertexContainer>> jfvtx; - // (*btagIter)->setVariable(basename, "JFvertices", jfvtx); - // (*btagIter)->setDynBTagVxELName(basename, "JFvertices"); } } - + for ( ; itEL != itELend; ++itEL ) { /// warning -> will not work if at some point we decide to associate to several track collections at the same time (in the same assoc object) -- GitLab From 05c4b5616039d44aab108fbcfb0d96ff89333e95 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 12:04:09 +0200 Subject: [PATCH 245/459] AthenaKernel: cmake cleanup Remove `atlas_depends_on_subdirs` and unused ROOT dependency. Plus a few minor link dependency fixes. --- Control/AthenaKernel/CMakeLists.txt | 34 +++++++---------------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/Control/AthenaKernel/CMakeLists.txt b/Control/AthenaKernel/CMakeLists.txt index 0c39c970293..e170a93a179 100644 --- a/Control/AthenaKernel/CMakeLists.txt +++ b/Control/AthenaKernel/CMakeLists.txt @@ -1,26 +1,12 @@ -################################################################################ -# Package: AthenaKernel -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaKernel ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/CxxUtils - Control/DataModelRoot - Control/RootUtils - GaudiKernel - PRIVATE - AtlasTest/TestTools - ) - # External dependencies: find_package( Boost COMPONENTS program_options regex filesystem thread ) -find_package( ROOT COMPONENTS Core ) find_package( UUID ) -find_package(CLHEP) +find_package( CLHEP ) find_package( TBB ) # Only link agains the RT library if it's available. find_library( RT_LIBRARY rt ) @@ -33,12 +19,9 @@ atlas_add_library( AthenaKernel AthenaKernel/*.h AthenaKernel/*.icc src/*.cxx PUBLIC_HEADERS AthenaKernel INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${UUID_LIBRARIES} CxxUtils DataModelRoot - RootUtils - GaudiKernel ${RT_LIBRARY} - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} - ${CMAKE_DL_LIBS} ) + PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${UUID_LIBRARIES} ${RT_LIBRARY} CxxUtils DataModelRoot GaudiKernel + PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${CMAKE_DL_LIBS} RootUtils ) atlas_add_dictionary( AthenaKernelDict AthenaKernel/AthenaKernelDict.h @@ -120,10 +103,9 @@ atlas_add_test( SlotSpecificObj_test ENVIRONMENT "JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/share" ) atlas_add_test( DataBucket_test - SOURCES - test/DataBucket_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils GaudiKernel TestTools ) + SOURCES + test/DataBucket_test.cxx + LINK_LIBRARIES AthenaKernel TestTools ) atlas_add_test( RCUUpdater_test SOURCES test/RCUUpdater_test.cxx -- GitLab From 5c7411deb2e8a3780cc8c2eed43ba78a6c382670 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 12:08:02 +0200 Subject: [PATCH 246/459] AthenaServices: cmake cleanup --- Control/AthenaServices/CMakeLists.txt | 30 ++------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/Control/AthenaServices/CMakeLists.txt b/Control/AthenaServices/CMakeLists.txt index f4db16f2b54..0ff3c5f1a5f 100644 --- a/Control/AthenaServices/CMakeLists.txt +++ b/Control/AthenaServices/CMakeLists.txt @@ -1,34 +1,8 @@ -################################################################################ -# Package: AthenaServices -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaServices ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PRIVATE - Control/AthToolSupport/AsgTools - AtlasTest/TestTools - Control/AthContainersInterfaces - Control/AthenaBaseComps - Control/AthenaKernel - Control/RootUtils - Control/CxxUtils - Control/AthContainers - Control/DataModelRoot - Control/Navigation - Control/PerformanceMonitoring/PerfMonEvent - Control/PerformanceMonitoring/PerfMonKernel - Control/RngComps - Control/SGTools - Control/StoreGate - Database/PersistentDataModel - Event/EventInfo - Event/xAOD/xAODEventInfo - Event/EventInfoUtils - GaudiKernel ) - # External dependencies: find_package( Boost COMPONENTS thread ) find_package( CLHEP ) @@ -41,7 +15,7 @@ atlas_add_component( AthenaServices src/*.cxx src/components/*.cxx ${CLHEP_INCLUDE_DIRS} ${YAMPL_INCLUDE_DIRS} LINK_LIBRARIES ${Boost_LIBRARIES} ${Python_LIBRARIES} ${YAMPL_LIBRARIES} ${CLHEP_LIBRARIES} z TestTools AsgTools AthenaBaseComps AthenaKernel RootUtils CxxUtils - AthContainers DataModelRoot Navigation PerfMonEvent PerfMonKernel SGTools + AthContainers AthContainersInterfaces DataModelRoot Navigation PerfMonEvent PerfMonKernel SGTools StoreGateLib SGtests PersistentDataModel EventInfo xAODEventInfo EventInfoUtils GaudiKernel ) # Test library checking the ability to build T/P converters: -- GitLab From c944650b76d6efdbcef058a7144f54d27cd5d727 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 12:22:25 +0200 Subject: [PATCH 247/459] AthenaAuditors: cmake cleanup - remove atlas_depends_on_subdirs - remove unused ZLIB and ROOT dependency --- Control/AthenaAuditors/CMakeLists.txt | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/Control/AthenaAuditors/CMakeLists.txt b/Control/AthenaAuditors/CMakeLists.txt index bb03d508109..539333a3929 100644 --- a/Control/AthenaAuditors/CMakeLists.txt +++ b/Control/AthenaAuditors/CMakeLists.txt @@ -1,30 +1,17 @@ -################################################################################ -# Package: AthenaAuditors -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaAuditors ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PRIVATE - Control/AthenaBaseComps - Control/CoWTools - Control/AthenaKernel - Control/CxxUtils - GaudiKernel ) - # External dependencies: find_package( Boost ) -find_package( ROOT COMPONENTS Core Tree ) find_package( gdb ) find_package( gperftools ) find_package( libunwind ) -find_package( ZLIB ) # Skip building the package if an external is not available. -if( ( NOT Boost_FOUND ) OR ( NOT ROOT_FOUND ) OR ( NOT GDB_FOUND ) OR - ( NOT GPERFTOOLS_FOUND ) OR ( NOT LIBUNWIND_FOUND ) OR ( NOT ZLIB_FOUND ) ) +if( ( NOT Boost_FOUND ) OR ( NOT GDB_FOUND ) OR + ( NOT GPERFTOOLS_FOUND ) OR ( NOT LIBUNWIND_FOUND ) ) message( WARNING "Not all externals available, not building AthenaAuditors." ) return() endif() @@ -32,8 +19,6 @@ endif() # Component(s) in the package: atlas_add_component( AthenaAuditors src/*.h src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${GDB_INCLUDE_DIRS} - ${LIBUNWIND_INCLUDE_DIRS} ${GPERFTOOLS_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} ${GDB_LIBRARIES} - ${LIBUNWIND_LIBRARIES} ${ZLIB_LIBRARIES} ${CMAKE_DL_LIBS} - AthenaBaseComps CoWTools GaudiKernel ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${GDB_INCLUDE_DIRS} ${LIBUNWIND_INCLUDE_DIRS} ${GPERFTOOLS_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${GDB_LIBRARIES} ${LIBUNWIND_LIBRARIES} ${CMAKE_DL_LIBS} + AthenaBaseComps AthenaKernel CxxUtils GaudiKernel ) -- GitLab From 6009afbf5ed9a22967b5b751c0ae6c7f2e6e7993 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 12:25:05 +0200 Subject: [PATCH 248/459] AthenaIPCTools: remove atlas_depends_on_subdirs --- Control/AthenaIPCTools/CMakeLists.txt | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/Control/AthenaIPCTools/CMakeLists.txt b/Control/AthenaIPCTools/CMakeLists.txt index 8908d562d51..08ef40fb3c3 100644 --- a/Control/AthenaIPCTools/CMakeLists.txt +++ b/Control/AthenaIPCTools/CMakeLists.txt @@ -1,16 +1,8 @@ -################################################################################ -# Package: AthenaIPCTools -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaIPCTools ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel - GaudiKernel ) - # External dependencies: find_package( Boost ) find_package( yampl ) -- GitLab From 3995a6f9ab4407fa1292a8efffa7b465221a502d Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 12:28:36 +0200 Subject: [PATCH 249/459] AthenaMP: remove ROOT and Threads dependency, cmake cleanup --- Control/AthenaMP/CMakeLists.txt | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/Control/AthenaMP/CMakeLists.txt b/Control/AthenaMP/CMakeLists.txt index ff837a4c6d7..34973fe9d02 100644 --- a/Control/AthenaMP/CMakeLists.txt +++ b/Control/AthenaMP/CMakeLists.txt @@ -1,36 +1,22 @@ -################################################################################ -# Package: AthenaMP -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaMP ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - Control/AthenaBaseComps - Control/AthenaInterprocess - Control/AthenaMPTools - Control/StoreGate - GaudiKernel ) - # External dependencies: -find_package( Boost COMPONENTS filesystem thread system ) -find_package( ROOT COMPONENTS Core PyROOT Tree MathCore Hist RIO pthread ) -find_package( Threads ) +find_package( Boost COMPONENTS filesystem ) # Component(s) in the package: atlas_add_component( AthenaMP src/*.cxx src/components/*.cxx src/memory-profiler/getPss.cc - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaBaseComps AthenaInterprocess StoreGateLib SGtests AthenaMPToolsLib GaudiKernel ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} AthenaBaseComps AthenaInterprocess AthenaMPToolsLib GaudiKernel StoreGateLib ) atlas_add_executable( getSharedMemory src/memory-profiler/getSharedMemory.cc - src/memory-profiler/getPss.cc - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaBaseComps AthenaInterprocess StoreGateLib SGtests GaudiKernel ) + src/memory-profiler/getPss.cc ) # Install files from the package: atlas_install_python_modules( python/*.py python/tests/*.py ) -- GitLab From f8dc35af4773d6ada64440f3f77c2de132c35141 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 12:34:27 +0200 Subject: [PATCH 250/459] CLIDComps: cmake cleanup, add missing CxxUtils --- Control/CLIDComps/CMakeLists.txt | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/Control/CLIDComps/CMakeLists.txt b/Control/CLIDComps/CMakeLists.txt index 9c9dd0d9b7d..4fde0c3de3c 100644 --- a/Control/CLIDComps/CMakeLists.txt +++ b/Control/CLIDComps/CMakeLists.txt @@ -1,17 +1,8 @@ -################################################################################ -# Package: CLIDComps -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( CLIDComps ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PRIVATE - Control/AthenaKernel - AtlasTest/TestTools - GaudiKernel ) - # External dependencies: find_package( Boost COMPONENTS program_options ) @@ -20,7 +11,7 @@ atlas_add_component( CLIDComps src/*.h src/*.cxx src/components/*.cxx NOCLIDDB INCLUDE_DIRS ${Boost_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} AthenaKernel GaudiKernel ) + LINK_LIBRARIES ${Boost_LIBRARIES} AthenaKernel CxxUtils GaudiKernel ) # Executable(s) in the package: atlas_add_executable( genCLIDDB -- GitLab From db0b4b46c414c9e5650cc38d04e9e16606eb883c Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 12:34:46 +0200 Subject: [PATCH 251/459] GaudiSequencer: remove atlas_depends_on_subdirs --- Control/GaudiSequencer/CMakeLists.txt | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/Control/GaudiSequencer/CMakeLists.txt b/Control/GaudiSequencer/CMakeLists.txt index c8eb9219bd5..6c63ec9c46b 100644 --- a/Control/GaudiSequencer/CMakeLists.txt +++ b/Control/GaudiSequencer/CMakeLists.txt @@ -1,17 +1,8 @@ -################################################################################ -# Package: GaudiSequencer -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( GaudiSequencer ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel - Control/CxxUtils - GaudiKernel ) - # External dependencies: find_package( valgrind ) -- GitLab From ec543b9e85acb51508853c33c51056c3d033dbe4 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 12:37:01 +0200 Subject: [PATCH 252/459] RngComps: cmake cleanup, add TBB dependency --- Control/RngComps/CMakeLists.txt | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/Control/RngComps/CMakeLists.txt b/Control/RngComps/CMakeLists.txt index 5637fe4f087..b45cb27210e 100644 --- a/Control/RngComps/CMakeLists.txt +++ b/Control/RngComps/CMakeLists.txt @@ -1,23 +1,12 @@ -################################################################################ -# Package: RngComps -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( RngComps ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PRIVATE - AtlasTest/TestTools - Control/AthenaBaseComps - Control/AthenaKernel - Control/StoreGate - GaudiKernel - Simulation/Tools/AtlasCLHEP_RandomGenerators ) - # External dependencies: find_package( Boost ) find_package( CLHEP ) +find_package( TBB ) # Component(s) in the package: atlas_add_component( RngComps src/*.h src/*.cxx src/components/*.cxx @@ -61,8 +50,7 @@ atlas_add_test( TestSeedRunEvent atlas_add_test( RNGWrapper_test SOURCES test/RNGWrapper_test.cxx INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} TestTools AthenaKernel StoreGateLib - GaudiKernel AtlasCLHEP_RandomGenerators ) + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${TBB_LIBRARIES} AthenaKernel AtlasCLHEP_RandomGenerators TestTools ) atlas_add_test( RandomServices_test SCRIPT test/RandomServices_test.py ) -- GitLab From 718173eadec9ea3b766e5c68cb4219d5bbf3ecf1 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 12:41:25 +0200 Subject: [PATCH 253/459] SGComps: cmake cleanup --- Control/SGComps/CMakeLists.txt | 35 ++++++++-------------------------- 1 file changed, 8 insertions(+), 27 deletions(-) diff --git a/Control/SGComps/CMakeLists.txt b/Control/SGComps/CMakeLists.txt index ccd063bec78..cc3482fed37 100644 --- a/Control/SGComps/CMakeLists.txt +++ b/Control/SGComps/CMakeLists.txt @@ -1,53 +1,34 @@ -################################################################################ -# Package: SGComps -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( SGComps ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PRIVATE - AtlasTest/TestTools - Control/AthenaBaseComps - Control/AthenaKernel - Control/SGTools - Control/StoreGate - Control/AthLinks - Control/AthContainersInterfaces - Control/AthContainers - GaudiKernel ) - # External dependencies: find_package( Boost ) find_package( ROOT COMPONENTS Core ) # Component(s) in the package: -atlas_add_component( SGComps src/*.h src/*.cxx src/components/*.cxx +atlas_add_component( SGComps + src/*.h src/*.cxx src/components/*.cxx INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} TestTools AthenaBaseComps AthenaKernel - SGTools StoreGateLib SGtests GaudiKernel AthLinks AthContainers ) + LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthContainers AthContainersInterfaces AthLinks AthenaBaseComps AthenaKernel CxxUtils GaudiKernel SGTools StoreGateLib ) -atlas_install_python_modules( python/*.py - POST_BUILD_CMD ${ATLAS_FLAKE8} ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) # Declare the test(s) of the package: atlas_add_test( SGFolder_test SOURCES test/SGFolder_test.cxx src/SGFolder.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} - LINK_LIBRARIES TestTools GaudiKernel SGTools AthenaKernel AthenaBaseComps AthLinks + LINK_LIBRARIES AthenaBaseComps AthenaKernel GaudiKernel SGTools TestTools ENVIRONMENT "JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/share" ) atlas_add_test( ProxyProviderSvc_test SOURCES test/ProxyProviderSvc_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} - LINK_LIBRARIES TestTools GaudiKernel SGTools AthenaKernel AthenaBaseComps AthLinks + LINK_LIBRARIES AthenaKernel GaudiKernel SGTools TestTools ENVIRONMENT "JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/share" ) atlas_add_test( AddressRemappingSvc_test SOURCES test/AddressRemappingSvc_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} - LINK_LIBRARIES TestTools GaudiKernel SGTools AthenaKernel AthenaBaseComps AthLinks + LINK_LIBRARIES AthContainersInterfaces AthenaBaseComps AthenaKernel GaudiKernel SGTools TestTools ENVIRONMENT "JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/share" ) atlas_add_test( AddressRemappingConfig_test -- GitLab From 1fbf4afe74fc42ac5e8288d8a3bf915141db14ec Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 12:42:03 +0200 Subject: [PATCH 254/459] Valkyrie: remove atlas_depends_on_subdirs --- Control/Valkyrie/CMakeLists.txt | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/Control/Valkyrie/CMakeLists.txt b/Control/Valkyrie/CMakeLists.txt index a3e523e618c..a6b3ba8e657 100644 --- a/Control/Valkyrie/CMakeLists.txt +++ b/Control/Valkyrie/CMakeLists.txt @@ -1,18 +1,8 @@ -################################################################################ -# Package: Valkyrie -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( Valkyrie ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaCommon - PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel - GaudiKernel ) - # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) find_package( valgrind ) -- GitLab From ed98d5fcf88b6d290797f74ba21cdbb3a3859e90 Mon Sep 17 00:00:00 2001 From: Savanna Marie Shaw <savanna.marie.shaw@cern.ch> Date: Tue, 28 Jul 2020 12:42:43 +0200 Subject: [PATCH 255/459] Update muon trigger names used in monitoring Adding the Run 3 trigger names used for monitoring isolation to the muon trigger offline monitoirng. Fixes the missing chains in the monitoring reported in ATR-21764. --- .../TrigMuonMonitoring/src/CommonMon.cxx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Trigger/TrigMonitoring/TrigMuonMonitoring/src/CommonMon.cxx b/Trigger/TrigMonitoring/TrigMuonMonitoring/src/CommonMon.cxx index a36468add57..1e054c510fc 100644 --- a/Trigger/TrigMonitoring/TrigMuonMonitoring/src/CommonMon.cxx +++ b/Trigger/TrigMonitoring/TrigMuonMonitoring/src/CommonMon.cxx @@ -1409,10 +1409,18 @@ StatusCode HLTMuonMonTool::fillCommonDQA() } std::vector<std::string> vs_ESnoniso; - vs_ESnoniso.push_back("HLT_mu8"); // for HI, but HI does not use iso - vs_ESnoniso.push_back("HLT_mu14"); // for EnhancedBias - vs_ESnoniso.push_back("HLT_mu26"); - vs_ESnoniso.push_back("HLT_mu24"); + if (getTDT()->getNavigationFormat() == "TriggerElement") { + vs_ESnoniso.push_back("HLT_mu8"); // for HI, but HI does not use iso + vs_ESnoniso.push_back("HLT_mu14"); // for EnhancedBias + vs_ESnoniso.push_back("HLT_mu26"); + vs_ESnoniso.push_back("HLT_mu24"); + } + else{ + vs_ESnoniso.push_back("HLT_mu8_L1MU6"); + vs_ESnoniso.push_back("HLT_mu14_L1MU10"); + vs_ESnoniso.push_back("HLT_mu26_L1MU20"); + vs_ESnoniso.push_back("HLT_mu24_L1MU20"); + } std::vector<std::string> vs_EStag; //vs_EStag.push_back("HLT_mu24_muCombTag_NoEF_tight"); // pp v4 -- GitLab From ba6310840a028a6b1d7d1ed0f08432ae1deca685 Mon Sep 17 00:00:00 2001 From: Rafal Bielski <rafal.bielski@cern.ch> Date: Tue, 28 Jul 2020 12:56:23 +0200 Subject: [PATCH 256/459] Use physics_Main data in b-phys and b-jet slice tests --- .../TrigValidation/TrigValTools/share/TrigValInputs.json | 7 +++++++ .../test/test_trig_data_v1Dev_slice_bjet_build.py | 2 +- .../test/test_trig_data_v1Dev_slice_bphysics_build.py | 6 +++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Trigger/TrigValidation/TrigValTools/share/TrigValInputs.json b/Trigger/TrigValidation/TrigValTools/share/TrigValInputs.json index 370d8ba36c5..a0c441349b5 100644 --- a/Trigger/TrigValidation/TrigValTools/share/TrigValInputs.json +++ b/Trigger/TrigValidation/TrigValTools/share/TrigValInputs.json @@ -6,6 +6,13 @@ "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data18_13TeV.00360026.physics_EnhancedBias.merge.RAW._lb0151._SFO-1._0001.1" ] }, + "data_Main": { + "source": "data", + "format": "BS", + "paths": [ + "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data18_13TeV.00360026.physics_Main.daq.RAW._lb0100._SFO-1._0001.data" + ] + }, "data_run1": { "source": "data", "format": "BS", diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bjet_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bjet_build.py index 345f6483cb3..4abab12e19b 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bjet_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bjet_build.py @@ -11,7 +11,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps ex = ExecStep.ExecStep() ex.type = 'athena' ex.job_options = 'TriggerJobOpts/runHLT_standalone.py' -ex.input = 'data' +ex.input = 'data_Main' ex.max_events = 500 ex.threads = 1 # LS2_v1 soon to be renamed to Dev_pp_run3_v1 diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bphysics_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bphysics_build.py index bdec5316229..b5be23f3ef4 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bphysics_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_v1Dev_slice_bphysics_build.py @@ -11,11 +11,11 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps ex = ExecStep.ExecStep() ex.type = 'athena' ex.job_options = 'TriggerJobOpts/runHLT_standalone.py' -ex.input = 'data' -ex.max_events = 500 +ex.input = 'data_Main' +ex.max_events = 1000 ex.threads = 1 # LS2_v1 soon to be renamed to Dev_pp_run3_v1 -ex.args = '-c "setMenu=\'LS2_v1\';doEmptyMenu=True;doBphysicsSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"' +ex.args = '-c "setMenu=\'LS2_v1\';doEmptyMenu=True;doBphysicsSlice=True;forceEnableAllChains=True;doWriteBS=False;doWriteRDOTrigger=True;"' test = Test.Test() test.art_type = 'build' -- GitLab From 9d06c2fe53c613e256262873f0a312b780cff58b Mon Sep 17 00:00:00 2001 From: amete <serhanmete@gmail.com> Date: Tue, 28 Jul 2020 13:03:49 +0200 Subject: [PATCH 257/459] cmake fix --- Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt b/Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt index efa4b530d8c..7799e4af239 100644 --- a/Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt +++ b/Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt @@ -25,6 +25,7 @@ find_package( Boost ) find_package( Python COMPONENTS Development ) find_package( ROOT COMPONENTS Core PyROOT ) find_package( nlohmann_json ) +find_package( psutil ) # Component(s) in the package: atlas_add_component( PerfMonComps -- GitLab From b26a27fd54cdbf7b5a7853b3ee2a4e886d296e47 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 13:07:58 +0200 Subject: [PATCH 258/459] AthenaMonitoring: move private headers to src Move private header files to the src directory. Also fix execute permission on source files. --- .../AthenaMonitoring/AthenaMonManager.h | 0 .../AthenaMonitoring/IMonitorToolBase.h | 0 .../AthenaMonitoring/ITriggerTranslatorTool.h | 0 .../AthenaMonitoring/LogFileMsgStream.h | 0 .../AthenaMonitoring/ManagedMonitorToolBase.h | 0 .../AthenaMonitoring/ManagedMonitorToolTest.h | 0 .../AthenaMonitoring/MonitorToolBase.h | 0 Control/AthenaMonitoring/src/AthenaMon.cxx | 2 +- .../{AthenaMonitoring => src}/AthenaMon.h | 0 Control/AthenaMonitoring/src/AthenaMonManager.cxx | 0 Control/AthenaMonitoring/src/DQBadLBFilterAlg.cxx | 2 +- .../{AthenaMonitoring => src}/DQBadLBFilterAlg.h | 0 Control/AthenaMonitoring/src/DQDummyFilterTool.cxx | 2 +- .../{AthenaMonitoring => src}/DQDummyFilterTool.h | 0 .../AthenaMonitoring/src/DQEventFlagFilterTool.cxx | 2 +- .../DQEventFlagFilterTool.h | 0 .../src/DQFilledBunchFilterTool.cxx | 2 +- .../DQFilledBunchFilterTool.h | 0 .../src/ExampleMonitorAlgorithm.cxx | 2 +- .../ExampleMonitorAlgorithm.h | 0 .../AthenaMonitoring/src/FastPhysMonToolBase.cxx | 2 +- .../FastPhysMonToolBase.h | 0 .../src/ManagedMonitorToolBase.cxx | 0 .../src/ManagedMonitorToolTest.cxx | 0 Control/AthenaMonitoring/src/MonitorToolBase.cxx | 0 .../src/TriggerTranslatorSimple.cxx | 2 +- .../TriggerTranslatorSimple.h | 0 .../src/components/AthenaMonitoring_entries.cxx | 14 +++++++------- 28 files changed, 15 insertions(+), 15 deletions(-) mode change 100755 => 100644 Control/AthenaMonitoring/AthenaMonitoring/AthenaMonManager.h mode change 100755 => 100644 Control/AthenaMonitoring/AthenaMonitoring/IMonitorToolBase.h mode change 100755 => 100644 Control/AthenaMonitoring/AthenaMonitoring/ITriggerTranslatorTool.h mode change 100755 => 100644 Control/AthenaMonitoring/AthenaMonitoring/LogFileMsgStream.h mode change 100755 => 100644 Control/AthenaMonitoring/AthenaMonitoring/ManagedMonitorToolBase.h mode change 100755 => 100644 Control/AthenaMonitoring/AthenaMonitoring/ManagedMonitorToolTest.h mode change 100755 => 100644 Control/AthenaMonitoring/AthenaMonitoring/MonitorToolBase.h mode change 100755 => 100644 Control/AthenaMonitoring/src/AthenaMon.cxx rename Control/AthenaMonitoring/{AthenaMonitoring => src}/AthenaMon.h (100%) mode change 100755 => 100644 mode change 100755 => 100644 Control/AthenaMonitoring/src/AthenaMonManager.cxx rename Control/AthenaMonitoring/{AthenaMonitoring => src}/DQBadLBFilterAlg.h (100%) rename Control/AthenaMonitoring/{AthenaMonitoring => src}/DQDummyFilterTool.h (100%) rename Control/AthenaMonitoring/{AthenaMonitoring => src}/DQEventFlagFilterTool.h (100%) rename Control/AthenaMonitoring/{AthenaMonitoring => src}/DQFilledBunchFilterTool.h (100%) rename Control/AthenaMonitoring/{AthenaMonitoring => src}/ExampleMonitorAlgorithm.h (100%) rename Control/AthenaMonitoring/{AthenaMonitoring => src}/FastPhysMonToolBase.h (100%) mode change 100755 => 100644 Control/AthenaMonitoring/src/ManagedMonitorToolBase.cxx mode change 100755 => 100644 Control/AthenaMonitoring/src/ManagedMonitorToolTest.cxx mode change 100755 => 100644 Control/AthenaMonitoring/src/MonitorToolBase.cxx rename Control/AthenaMonitoring/{AthenaMonitoring => src}/TriggerTranslatorSimple.h (100%) mode change 100755 => 100644 diff --git a/Control/AthenaMonitoring/AthenaMonitoring/AthenaMonManager.h b/Control/AthenaMonitoring/AthenaMonitoring/AthenaMonManager.h old mode 100755 new mode 100644 diff --git a/Control/AthenaMonitoring/AthenaMonitoring/IMonitorToolBase.h b/Control/AthenaMonitoring/AthenaMonitoring/IMonitorToolBase.h old mode 100755 new mode 100644 diff --git a/Control/AthenaMonitoring/AthenaMonitoring/ITriggerTranslatorTool.h b/Control/AthenaMonitoring/AthenaMonitoring/ITriggerTranslatorTool.h old mode 100755 new mode 100644 diff --git a/Control/AthenaMonitoring/AthenaMonitoring/LogFileMsgStream.h b/Control/AthenaMonitoring/AthenaMonitoring/LogFileMsgStream.h old mode 100755 new mode 100644 diff --git a/Control/AthenaMonitoring/AthenaMonitoring/ManagedMonitorToolBase.h b/Control/AthenaMonitoring/AthenaMonitoring/ManagedMonitorToolBase.h old mode 100755 new mode 100644 diff --git a/Control/AthenaMonitoring/AthenaMonitoring/ManagedMonitorToolTest.h b/Control/AthenaMonitoring/AthenaMonitoring/ManagedMonitorToolTest.h old mode 100755 new mode 100644 diff --git a/Control/AthenaMonitoring/AthenaMonitoring/MonitorToolBase.h b/Control/AthenaMonitoring/AthenaMonitoring/MonitorToolBase.h old mode 100755 new mode 100644 diff --git a/Control/AthenaMonitoring/src/AthenaMon.cxx b/Control/AthenaMonitoring/src/AthenaMon.cxx old mode 100755 new mode 100644 index fde82b4bd63..8de2e1e099c --- a/Control/AthenaMonitoring/src/AthenaMon.cxx +++ b/Control/AthenaMonitoring/src/AthenaMon.cxx @@ -17,7 +17,7 @@ #include "GaudiKernel/StatusCode.h" #include "GaudiKernel/ListItem.h" -#include "AthenaMonitoring/AthenaMon.h" +#include "AthenaMon.h" class ISvcLocator; // class AlgFactory; diff --git a/Control/AthenaMonitoring/AthenaMonitoring/AthenaMon.h b/Control/AthenaMonitoring/src/AthenaMon.h old mode 100755 new mode 100644 similarity index 100% rename from Control/AthenaMonitoring/AthenaMonitoring/AthenaMon.h rename to Control/AthenaMonitoring/src/AthenaMon.h diff --git a/Control/AthenaMonitoring/src/AthenaMonManager.cxx b/Control/AthenaMonitoring/src/AthenaMonManager.cxx old mode 100755 new mode 100644 diff --git a/Control/AthenaMonitoring/src/DQBadLBFilterAlg.cxx b/Control/AthenaMonitoring/src/DQBadLBFilterAlg.cxx index 71a1063f174..431e0c3f112 100644 --- a/Control/AthenaMonitoring/src/DQBadLBFilterAlg.cxx +++ b/Control/AthenaMonitoring/src/DQBadLBFilterAlg.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#include "AthenaMonitoring/DQBadLBFilterAlg.h" +#include "DQBadLBFilterAlg.h" #include "AthenaPoolUtilities/AthenaAttributeList.h" #include "AthenaPoolUtilities/AthenaAttributeListSpecification.h" #include "AthenaPoolUtilities/CondAttrListCollection.h" diff --git a/Control/AthenaMonitoring/AthenaMonitoring/DQBadLBFilterAlg.h b/Control/AthenaMonitoring/src/DQBadLBFilterAlg.h similarity index 100% rename from Control/AthenaMonitoring/AthenaMonitoring/DQBadLBFilterAlg.h rename to Control/AthenaMonitoring/src/DQBadLBFilterAlg.h diff --git a/Control/AthenaMonitoring/src/DQDummyFilterTool.cxx b/Control/AthenaMonitoring/src/DQDummyFilterTool.cxx index bdd06bf69fe..83cd5f688dd 100644 --- a/Control/AthenaMonitoring/src/DQDummyFilterTool.cxx +++ b/Control/AthenaMonitoring/src/DQDummyFilterTool.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#include "AthenaMonitoring/DQDummyFilterTool.h" +#include "DQDummyFilterTool.h" DQDummyFilterTool::DQDummyFilterTool(const std::string& type,const std::string& name,const IInterface* parent) : AthAlgTool( type, name, parent ) diff --git a/Control/AthenaMonitoring/AthenaMonitoring/DQDummyFilterTool.h b/Control/AthenaMonitoring/src/DQDummyFilterTool.h similarity index 100% rename from Control/AthenaMonitoring/AthenaMonitoring/DQDummyFilterTool.h rename to Control/AthenaMonitoring/src/DQDummyFilterTool.h diff --git a/Control/AthenaMonitoring/src/DQEventFlagFilterTool.cxx b/Control/AthenaMonitoring/src/DQEventFlagFilterTool.cxx index 03c9b000b62..1a0efb76407 100644 --- a/Control/AthenaMonitoring/src/DQEventFlagFilterTool.cxx +++ b/Control/AthenaMonitoring/src/DQEventFlagFilterTool.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#include "AthenaMonitoring/DQEventFlagFilterTool.h" +#include "DQEventFlagFilterTool.h" #include "AthenaKernel/errorcheck.h" DQEventFlagFilterTool::DQEventFlagFilterTool(const std::string& type,const std::string& name,const IInterface* parent) diff --git a/Control/AthenaMonitoring/AthenaMonitoring/DQEventFlagFilterTool.h b/Control/AthenaMonitoring/src/DQEventFlagFilterTool.h similarity index 100% rename from Control/AthenaMonitoring/AthenaMonitoring/DQEventFlagFilterTool.h rename to Control/AthenaMonitoring/src/DQEventFlagFilterTool.h diff --git a/Control/AthenaMonitoring/src/DQFilledBunchFilterTool.cxx b/Control/AthenaMonitoring/src/DQFilledBunchFilterTool.cxx index ac43549272b..533b8d022b8 100644 --- a/Control/AthenaMonitoring/src/DQFilledBunchFilterTool.cxx +++ b/Control/AthenaMonitoring/src/DQFilledBunchFilterTool.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#include "AthenaMonitoring/DQFilledBunchFilterTool.h" +#include "DQFilledBunchFilterTool.h" #include "AthenaKernel/errorcheck.h" #include "EventInfo/EventInfo.h" #include "EventInfo/EventID.h" diff --git a/Control/AthenaMonitoring/AthenaMonitoring/DQFilledBunchFilterTool.h b/Control/AthenaMonitoring/src/DQFilledBunchFilterTool.h similarity index 100% rename from Control/AthenaMonitoring/AthenaMonitoring/DQFilledBunchFilterTool.h rename to Control/AthenaMonitoring/src/DQFilledBunchFilterTool.h diff --git a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx index dbd137d5141..bb5f2a98b66 100644 --- a/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx +++ b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#include "AthenaMonitoring/ExampleMonitorAlgorithm.h" +#include "ExampleMonitorAlgorithm.h" ExampleMonitorAlgorithm::ExampleMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator ) :AthMonitorAlgorithm(name,pSvcLocator) diff --git a/Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h b/Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.h similarity index 100% rename from Control/AthenaMonitoring/AthenaMonitoring/ExampleMonitorAlgorithm.h rename to Control/AthenaMonitoring/src/ExampleMonitorAlgorithm.h diff --git a/Control/AthenaMonitoring/src/FastPhysMonToolBase.cxx b/Control/AthenaMonitoring/src/FastPhysMonToolBase.cxx index 37c591ef1e6..5a301c3015e 100644 --- a/Control/AthenaMonitoring/src/FastPhysMonToolBase.cxx +++ b/Control/AthenaMonitoring/src/FastPhysMonToolBase.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#include "AthenaMonitoring/FastPhysMonToolBase.h" +#include "FastPhysMonToolBase.h" #include "GaudiKernel/IIncidentSvc.h" #include "GaudiKernel/ServiceHandle.h" #include "EventInfo/EventInfo.h" diff --git a/Control/AthenaMonitoring/AthenaMonitoring/FastPhysMonToolBase.h b/Control/AthenaMonitoring/src/FastPhysMonToolBase.h similarity index 100% rename from Control/AthenaMonitoring/AthenaMonitoring/FastPhysMonToolBase.h rename to Control/AthenaMonitoring/src/FastPhysMonToolBase.h diff --git a/Control/AthenaMonitoring/src/ManagedMonitorToolBase.cxx b/Control/AthenaMonitoring/src/ManagedMonitorToolBase.cxx old mode 100755 new mode 100644 diff --git a/Control/AthenaMonitoring/src/ManagedMonitorToolTest.cxx b/Control/AthenaMonitoring/src/ManagedMonitorToolTest.cxx old mode 100755 new mode 100644 diff --git a/Control/AthenaMonitoring/src/MonitorToolBase.cxx b/Control/AthenaMonitoring/src/MonitorToolBase.cxx old mode 100755 new mode 100644 diff --git a/Control/AthenaMonitoring/src/TriggerTranslatorSimple.cxx b/Control/AthenaMonitoring/src/TriggerTranslatorSimple.cxx index 547bc2c877c..89b316b6019 100644 --- a/Control/AthenaMonitoring/src/TriggerTranslatorSimple.cxx +++ b/Control/AthenaMonitoring/src/TriggerTranslatorSimple.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -#include "AthenaMonitoring/TriggerTranslatorSimple.h" +#include "TriggerTranslatorSimple.h" #include "boost/algorithm/string/split.hpp" #include "boost/algorithm/string/classification.hpp" diff --git a/Control/AthenaMonitoring/AthenaMonitoring/TriggerTranslatorSimple.h b/Control/AthenaMonitoring/src/TriggerTranslatorSimple.h old mode 100755 new mode 100644 similarity index 100% rename from Control/AthenaMonitoring/AthenaMonitoring/TriggerTranslatorSimple.h rename to Control/AthenaMonitoring/src/TriggerTranslatorSimple.h diff --git a/Control/AthenaMonitoring/src/components/AthenaMonitoring_entries.cxx b/Control/AthenaMonitoring/src/components/AthenaMonitoring_entries.cxx index a8158c190fa..e56d94b5564 100644 --- a/Control/AthenaMonitoring/src/components/AthenaMonitoring_entries.cxx +++ b/Control/AthenaMonitoring/src/components/AthenaMonitoring_entries.cxx @@ -2,17 +2,17 @@ Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ -#include "AthenaMonitoring/AthenaMon.h" +#include "../AthenaMon.h" #include "AthenaMonitoring/AthenaMonManager.h" #include "AthenaMonitoring/ManagedMonitorToolTest.h" #include "AthenaMonitoring/DQAtlasReadyFilterTool.h" -#include "AthenaMonitoring/DQFilledBunchFilterTool.h" -#include "AthenaMonitoring/DQEventFlagFilterTool.h" -#include "AthenaMonitoring/DQDummyFilterTool.h" +#include "../DQFilledBunchFilterTool.h" +#include "../DQEventFlagFilterTool.h" +#include "../DQDummyFilterTool.h" #include "AthenaMonitoring/DQBadLBFilterTool.h" -#include "AthenaMonitoring/DQBadLBFilterAlg.h" -#include "AthenaMonitoring/TriggerTranslatorSimple.h" -#include "AthenaMonitoring/ExampleMonitorAlgorithm.h" +#include "../DQBadLBFilterAlg.h" +#include "../TriggerTranslatorSimple.h" +#include "../ExampleMonitorAlgorithm.h" #include "../ForceIDConditionsAlg.h" #include "../ForceMSConditionsAlg.h" -- GitLab From f0964f051ce4fcfd0cb2086815b03edaa04fbc6a Mon Sep 17 00:00:00 2001 From: Denis Damazio <damazio@mail.cern.ch> Date: Tue, 28 Jul 2020 13:10:37 +0200 Subject: [PATCH 259/459] also cleaning up for taus within TriggerMenuMT, as suggested by @rbielski --- .../python/HLTMenuConfig/Tau/TauRecoSequences.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py index ad14be735ea..b452f12dea0 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Tau/TauRecoSequences.py @@ -152,8 +152,6 @@ def tauCaloSequence(ConfigFlags): from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() topSequence.SGInputLoader.Load += [( 'ILArHVScaleCorr' , 'ConditionStore+LArHVScaleCorrRecomputed' )] - if not hasattr( topSequence, "CaloBCIDAvgAlg" ): - topSequence.SGInputLoader.Load += [( 'CaloBCIDAverage' , 'StoreGateSvc+CaloBCIDAverage' )] tauCaloSequence = seqAND("tauCaloSequence", [tauCaloViewsMaker, tauCaloInViewSequence ]) return (tauCaloSequence, tauCaloViewsMaker, sequenceOut) @@ -186,8 +184,6 @@ def tauCaloMVASequence(ConfigFlags): from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() topSequence.SGInputLoader.Load += [( 'ILArHVScaleCorr' , 'ConditionStore+LArHVScaleCorrRecomputed' )] - if not hasattr( topSequence, "CaloBCIDAvgAlg" ): - topSequence.SGInputLoader.Load += [( 'CaloBCIDAverage' , 'StoreGateSvc+CaloBCIDAverage' )] tauCaloMVASequence = seqAND("tauCaloMVASequence", [tauCaloMVAViewsMaker, tauCaloMVAInViewSequence ]) return (tauCaloMVASequence, tauCaloMVAViewsMaker, sequenceOut) -- GitLab From eb74d8dc412b884e511b38493432fac5a1ac4078 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 13:17:40 +0200 Subject: [PATCH 260/459] AthenaMonitoring: cmake fixes - remove atlas_depends_on_subdirs - fix private/public link dependencies --- Control/AthenaMonitoring/CMakeLists.txt | 38 ++++++------------------- 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/Control/AthenaMonitoring/CMakeLists.txt b/Control/AthenaMonitoring/CMakeLists.txt index 0b0be0bfc78..2be46e86971 100644 --- a/Control/AthenaMonitoring/CMakeLists.txt +++ b/Control/AthenaMonitoring/CMakeLists.txt @@ -1,30 +1,8 @@ -################################################################################ -# Package: AthenaMonitoring -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaMonitoring ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/AthenaBaseComps - Control/AthenaMonitoringKernel - LumiBlock/LumiBlockComps - LumiBlock/LumiBlockData - Trigger/TrigEvent/TrigDecisionInterface - Trigger/TrigAnalysis/TrigDecisionTool - PRIVATE - AtlasTest/TestTools - Control/AthenaKernel - Control/SGMon/SGAudCore - Database/AthenaPOOL/AthenaPoolUtilities - Event/EventInfo - Tools/LWHists - Trigger/TrigAnalysis/TrigAnalysisInterfaces - MuonSpectrometer/MuonAlignment/MuonAlignmentData -) - # External dependencies: find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) find_package( ROOT COMPONENTS Core Hist ) @@ -42,23 +20,28 @@ atlas_add_library( ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} LINK_LIBRARIES - ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaBaseComps AthenaMonitoringKernelLib GaudiKernel - LumiBlockCompsLib LumiBlockData - TrigDecisionToolLib TrigAnalysisInterfaces + TrigDecisionInterface + TrigDecisionToolLib PRIVATE_LINK_LIBRARIES + ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaKernel + CxxUtils SGAudCore + StoreGateLib AthenaPoolUtilities EventInfo LWHists MuonAlignmentData + InDetReadoutGeometry + MuonAlignmentData + TRT_ReadoutGeometry ) atlas_add_component( @@ -68,11 +51,8 @@ atlas_add_component( ${CORAL_INCLUDE_DIRS} LINK_LIBRARIES AthenaMonitoringLib - AthenaMonitoringKernelLib - LumiBlockData LWHists SGAudCore - TrigDecisionToolLib MuonAlignmentData ) -- GitLab From dfc0060600677ce889d765524c296d6f5beda710 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Tue, 28 Jul 2020 13:35:38 +0100 Subject: [PATCH 261/459] Adding some minor changes to function calls --- .../MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx | 6 +++--- MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx index fb9a4405f71..993f22a7bd4 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.cxx @@ -72,7 +72,7 @@ const bool* Muon::TgcSlbData::getBitArray(const uint16_t bcTag) const } // This function avoids using const cast internally -bool* Muon::TgcSlbData::getBitArrayNC(const uint16_t bcTag) +bool* Muon::TgcSlbData::getBitArray(const uint16_t bcTag) { bool* bitArray = 0; switch (bcTag) @@ -104,7 +104,7 @@ void Muon::TgcSlbData::setBitmap(const uint16_t bcTag, if(cellAddr == PADDING_WORD) return; // get bit array - bool *bitArray = getBitArrayNC(bcTag); + bool *bitArray = getBitArray(bcTag); // assign int indexMap = BITMAP_SIZE - CELL_SIZE*(cellAddr+1); @@ -129,7 +129,7 @@ void Muon::TgcSlbData::setBit(const uint16_t bcTag, if(iBit >= BITMAP_SIZE) return; // get bit array - bool *bitArray = getBitArrayNC(bcTag); + bool *bitArray = getBitArray(bcTag); *(bitArray+iBit)=true; } diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.h index 90183d14204..d22a9c5306b 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.h +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcSlbData.h @@ -126,7 +126,7 @@ namespace Muon /** Get bitArray for a BC tag. */ // Non-const version which is used in this class only - bool * getBitArrayNC(const uint16_t bcTag); + bool * getBitArray(const uint16_t bcTag); uint16_t m_bcId; uint32_t m_l1Id; -- GitLab From d450e4acde14deec1e6731ab42dbb53287ffe80d Mon Sep 17 00:00:00 2001 From: sutt <sutt@cern.ch> Date: Tue, 28 Jul 2020 14:59:44 +0200 Subject: [PATCH 262/459] Allow the comparitor to set individual components from the config Chain remapping can be done using components in the configuration files, but thay also override the histogram and panel settings. These changes allow the chain remapping components to be used and still use the default setting for the histograms if the histograms are not in the config file. --- .../Analysis/src/comparitor.cxx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/comparitor.cxx b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/comparitor.cxx index 221d5f3bff1..176d7de2272 100644 --- a/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/comparitor.cxx +++ b/Trigger/TrigAnalysis/TrigInDetAnalysisUser/Analysis/src/comparitor.cxx @@ -1036,12 +1036,13 @@ int main(int argc, char** argv) { std::cout << "\n" << argv[0] << "\tconfigfile: " << configfile << std::endl; + bool use_file_config = false; if ( configfile!="" ) { if ( exists(configfile) ) { - std::cout << argv[0] << ":\treading histogram configuration from file " << configfile << std::endl; + std::cout << argv[0] << ":\treading configuration file " << configfile << std::endl; ReadCards rc(configfile); @@ -1050,6 +1051,10 @@ int main(int argc, char** argv) { if ( rc.isTagDefined( "histos" ) ) { + std::cout << argv[0] << ":\treading histogram configuration from file " << configfile << std::endl; + + use_file_config = true; + std::vector<std::string> raw_input = rc.GetStringVector( "histos" ); for ( size_t iraw=0 ; iraw<raw_input.size() ; iraw += 6) { @@ -1067,6 +1072,10 @@ int main(int argc, char** argv) { if ( rc.isTagDefined( "panels" ) ) { + std::cout << argv[0] << ":\treading histogram panel configuration from file " << configfile << std::endl; + + use_file_config = true; + std::vector<std::string> panel_config = rc.GetStringVector( "panels" ); for ( size_t ipanel=panel_config.size() ; ipanel-- ; ) { @@ -1118,7 +1127,8 @@ int main(int argc, char** argv) { } } - else { + + if ( !use_file_config ) { std::cout << "using default panels" << std::endl; -- GitLab From a26854a01d47035cd8a4e93b67e789c961ca3a8a Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Tue, 28 Jul 2020 15:31:25 +0200 Subject: [PATCH 263/459] Load GeoModel category of ConfigFlags dynamically In this way it will only be loaded when required improving making it easier to use ComponentAccumulator in the AthGeneration project. --- .../AthenaConfiguration/python/AllConfigFlags.py | 15 ++++++--------- .../python/GeoModelConfigFlags.py | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 9 deletions(-) create mode 100644 Control/AthenaConfiguration/python/GeoModelConfigFlags.py diff --git a/Control/AthenaConfiguration/python/AllConfigFlags.py b/Control/AthenaConfiguration/python/AllConfigFlags.py index 0bd90c5e1a8..a4b9b4cf06b 100644 --- a/Control/AthenaConfiguration/python/AllConfigFlags.py +++ b/Control/AthenaConfiguration/python/AllConfigFlags.py @@ -1,10 +1,10 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration from __future__ import print_function from AthenaConfiguration.AthConfigFlags import AthConfigFlags from AthenaCommon.SystemOfUnits import TeV -from AthenaConfiguration.AutoConfigFlags import GetFileMD, GetDetDescrInfo +from AthenaConfiguration.AutoConfigFlags import GetFileMD from PyUtils.moduleExists import moduleExists @@ -123,13 +123,10 @@ def _createCfgFlags(): _addFlagsCategory(acf, "Overlay", __overlay, 'OverlayConfiguration' ) #Geo Model Flags: - acf.addFlag('GeoModel.Layout', 'atlas') # replaces global.GeoLayout - acf.addFlag("GeoModel.AtlasVersion", lambda prevFlags : GetFileMD(prevFlags.Input.Files).get("GeoAtlas",None) or "ATLAS-R2-2016-01-00-01") # - acf.addFlag("GeoModel.Align.Dynamic", lambda prevFlags : (not prevFlags.Detector.Simulate and not prevFlags.Input.isMC)) - acf.addFlag("GeoModel.StripGeoType", lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('StripGeoType',"GMX")) # Based on CommonGeometryFlags.StripGeoType - acf.addFlag("GeoModel.Run", lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('Run',"RUN2")) # Based on CommonGeometryFlags.Run (InDetGeometryFlags.isSLHC replaced by GeoModel.Run=="RUN4") - acf.addFlag("GeoModel.Type", lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('GeoType',"UNDEFINED")) # Geometry type in {ITKLoI, ITkLoI-VF, etc...} - acf.addFlag("GeoModel.IBLLayout", lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('IBLlayout',"UNDEFINED")) # IBL layer layout in {"planar", "3D", "noIBL", "UNDEFINED"} + def __geomodel(): + from AthenaConfiguration.GeoModelConfigFlags import createGeoModelConfigFlags + return createGeoModelConfigFlags() + acf.addFlagsCategory( "GeoModel", __geomodel ) #IOVDbSvc Flags: acf.addFlag("IOVDb.GlobalTag",lambda prevFlags : GetFileMD(prevFlags.Input.Files).get("IOVDbGlobalTag",None) or "CONDBR2-BLKPA-2017-05") diff --git a/Control/AthenaConfiguration/python/GeoModelConfigFlags.py b/Control/AthenaConfiguration/python/GeoModelConfigFlags.py new file mode 100644 index 00000000000..53fea8c5945 --- /dev/null +++ b/Control/AthenaConfiguration/python/GeoModelConfigFlags.py @@ -0,0 +1,15 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +from AthenaConfiguration.AthConfigFlags import AthConfigFlags +from AthenaConfiguration.AutoConfigFlags import GetFileMD, GetDetDescrInfo + +def createGeoModelConfigFlags(): + gcf=AthConfigFlags() + gcf.addFlag('GeoModel.Layout', 'atlas') # replaces global.GeoLayout + gcf.addFlag("GeoModel.AtlasVersion", lambda prevFlags : GetFileMD(prevFlags.Input.Files).get("GeoAtlas",None) or "ATLAS-R2-2016-01-00-01") # + gcf.addFlag("GeoModel.Align.Dynamic", lambda prevFlags : (not prevFlags.Detector.Simulate and not prevFlags.Input.isMC)) + gcf.addFlag("GeoModel.StripGeoType", lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('StripGeoType',"GMX")) # Based on CommonGeometryFlags.StripGeoType + gcf.addFlag("GeoModel.Run", lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('Run',"RUN2")) # Based on CommonGeometryFlags.Run (InDetGeometryFlags.isSLHC replaced by GeoModel.Run=="RUN4") + gcf.addFlag("GeoModel.Type", lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('GeoType',"UNDEFINED")) # Geometry type in {ITKLoI, ITkLoI-VF, etc...} + gcf.addFlag("GeoModel.IBLLayout", lambda prevFlags : GetDetDescrInfo(prevFlags.GeoModel.AtlasVersion).get('IBLlayout',"UNDEFINED")) # IBL layer layout in {"planar", "3D", "noIBL", "UNDEFINED"} + return gcf -- GitLab From 77b8c3c830f9f4e249da289bf9423fc69c134de4 Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Tue, 28 Jul 2020 15:39:48 +0200 Subject: [PATCH 264/459] Activate the testAllConfigFlags_EVNT unit test for the AthGeneration project After adding some additional protections, the `testAllConfigFlags_EVNT` unit test should now also pass in the AthGeneration project. --- Control/AthenaConfiguration/CMakeLists.txt | 8 ++++---- .../python/testAllConfigFlags_EVNT.py | 11 +++++++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Control/AthenaConfiguration/CMakeLists.txt b/Control/AthenaConfiguration/CMakeLists.txt index d8903a3aa1e..79d9249c519 100644 --- a/Control/AthenaConfiguration/CMakeLists.txt +++ b/Control/AthenaConfiguration/CMakeLists.txt @@ -25,11 +25,11 @@ atlas_add_test( AthConfigFlagsTest SCRIPT python -m unittest AthenaConfiguration.AthConfigFlags POST_EXEC_SCRIPT nopost.sh ) -if( NOT GENERATIONBASE ) - atlas_add_test( AllConfigFlagsTest_EVNT_test - SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/python/testAllConfigFlags_EVNT.py - PROPERTIES TIMEOUT 300 ) +atlas_add_test( AllConfigFlagsTest_EVNT_test + SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/python/testAllConfigFlags_EVNT.py + PROPERTIES TIMEOUT 300 ) +if( NOT GENERATIONBASE ) atlas_add_test( AllConfigFlagsTest_HITS_test SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/python/testAllConfigFlags_HITS.py PROPERTIES TIMEOUT 300 ) diff --git a/Control/AthenaConfiguration/python/testAllConfigFlags_EVNT.py b/Control/AthenaConfiguration/python/testAllConfigFlags_EVNT.py index f1be0c50076..b9bd346b502 100755 --- a/Control/AthenaConfiguration/python/testAllConfigFlags_EVNT.py +++ b/Control/AthenaConfiguration/python/testAllConfigFlags_EVNT.py @@ -1,10 +1,17 @@ #!/usr/bin/env python -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration from __future__ import print_function from AthenaConfiguration.AllConfigFlags import ConfigFlags from AthenaConfiguration.TestDefaults import defaultTestFiles ConfigFlags.Input.Files = defaultTestFiles.EVNT -ConfigFlags._loadDynaFlags("Detector") + +havedet = True +try: + import DetDescrCnvSvc # noqa: F401 +except ImportError: + havedet = False +if havedet: + ConfigFlags._loadDynaFlags("Detector") # Don't fail just because G4AtlasApps isn't present in this build. havesim = True -- GitLab From a8cfbf7ba310ba06f0d05309d7e0b013e63f92e8 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:36 +0200 Subject: [PATCH 265/459] DerivationFrameworkART: remove atlas_depends_on_subdirs --- .../DerivationFrameworkART/CMakeLists.txt | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkART/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkART/CMakeLists.txt index 2e95b9950ad..91222d839a2 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkART/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkART/CMakeLists.txt @@ -1,13 +1,7 @@ -################################################################################ -# Package: DerivationFrameworkART -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkART ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - TestPolicy ) - # Install files from the package: atlas_install_scripts( */test/*.sh */test/*.py ) -- GitLab From 91848829071ca7c72f04af093c7595d876cb18ca Mon Sep 17 00:00:00 2001 From: Rafal Bielski <rafal.bielski@cern.ch> Date: Tue, 28 Jul 2020 16:20:28 +0200 Subject: [PATCH 266/459] TriggerMenuMT: Drop UserList inheritance from StreamInfo --- .../python/HLTMenuConfig/Menu/StreamInfo.py | 45 +++++++++++-------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py index f275bb3bbfe..49cdb71088d 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py @@ -1,26 +1,32 @@ # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -from six.moves import UserList - from AthenaCommon.Logging import logging log = logging.getLogger( __name__ ) -class StreamInfo(UserList): +class StreamInfo(object): def __init__(self, name, streamType, obeysLumiBlock, forceFullEventBuilding): - self.data = [name, streamType, obeysLumiBlock, forceFullEventBuilding] + assert type(name) == str, "name has to be str" + assert type(streamType) == str, "streamType has to be str" + assert type(obeysLumiBlock) == bool, "obeysLumiBlock has to be bool" + assert type(forceFullEventBuilding) == bool, "forceFullEventBuilding has to be bool" + self.__data = [name, streamType, obeysLumiBlock, forceFullEventBuilding] + + def __str__(self): + return '({}, obeysLumiBlock={}, forceFullEventBuilding={})'.format( + self.typeName(), self.obeysLumiBlock(), self.forceFullEventBuilding()) def name(self): - return self.data[0] + return self.__data[0] def type(self): - return self.data[1] + return self.__data[1] def obeysLumiBlock(self): - return self.data[2] + return self.__data[2] def forceFullEventBuilding(self): - return self.data[3] + return self.__data[3] def typeName(self): return '{:s}_{:s}'.format(self.type(), self.name()) @@ -29,27 +35,28 @@ class StreamInfo(UserList): _all_streams = [ # PHYSICS STREAMS StreamInfo('Main', 'physics', True, True), - StreamInfo('CosmicMuons','physics',True,True), - StreamInfo('CosmicCalo','physics',True,True), - StreamInfo('IDCosmic','physics',True,True), + StreamInfo('CosmicMuons', 'physics', True, True), + StreamInfo('CosmicCalo', 'physics', True, True), + StreamInfo('IDCosmic', 'physics', True, True), + StreamInfo('ZeroBias', 'physics', True, True), # EXPRESS STREAM StreamInfo('express', 'express', True, True), - # MONITORING STREAM - StreamInfo('IDMonitoring','monitoring', True, True), + # MONITORING STREAMS + StreamInfo('IDMonitoring', 'monitoring', True, True), # CALIBRATION STREAMS StreamInfo('BeamSpot', 'calibration', True, False), StreamInfo('LArCells', 'calibration', False, False), StreamInfo('RPCSecondaryReadout', 'calibration', False, False), - StreamInfo('CostMonitoring','calibration', False, False), - StreamInfo('SCTNoise','calibration',False,False), - StreamInfo('Tile','calibration',False,False), - StreamInfo('ALFACalib','calibration',False,False), + StreamInfo('CostMonitoring', 'calibration', False, False), + StreamInfo('SCTNoise', 'calibration', False, False), + StreamInfo('Tile', 'calibration', False, False), + StreamInfo('ALFACalib', 'calibration', False, False), # HI STREAMS StreamInfo('HardProbes', 'physics', True, True), StreamInfo('MinBias', 'physics', True, True), # Special stream to be used only for special chains rejecting all events like timeburner - StreamInfo('DISCARD', 'unknown', False, False), - StreamInfo('ZeroBias', 'physics', True, True) + StreamInfo('DISCARD', 'unknown', False, False) + # Add new streams grouped by type as above, not at the end of the list ] -- GitLab From a877a0666008ea9f710ed224d3ffc88e888adb42 Mon Sep 17 00:00:00 2001 From: Julie Kirk <Julie.Kirk@cern.ch> Date: Tue, 28 Jul 2020 16:37:12 +0200 Subject: [PATCH 267/459] Changes to TIDV for art jobs Renaming some tests and directories renamed: Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_grid.py -> Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py renamed: Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt_grid.py -> Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py new file: Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40.py renamed: Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_grid.py -> Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40.py modified: Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build.py --- ..._grid.py => test_trigID_all_ttbar_pu80.py} | 14 +- ...id.py => test_trigID_all_ttbar_pu80_mt.py} | 32 ++++- .../test/test_trigID_bjet_pu40.py | 135 ++++++++++++++++++ ...0_grid.py => test_trigID_mu_zmumu_pu40.py} | 8 +- .../test/test_trigID_mu_zmumu_pu40_build.py | 8 +- 5 files changed, 178 insertions(+), 19 deletions(-) rename Trigger/TrigValidation/TrigInDetValidation/test/{test_trigID_all_ttbar_pu80_grid.py => test_trigID_all_ttbar_pu80.py} (91%) rename Trigger/TrigValidation/TrigInDetValidation/test/{test_trigID_all_ttbar_pu80_mt_grid.py => test_trigID_all_ttbar_pu80_mt.py} (72%) create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40.py rename Trigger/TrigValidation/TrigInDetValidation/test/{test_trigID_mu_zmumu_pu40_grid.py => test_trigID_mu_zmumu_pu40.py} (93%) diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_grid.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py similarity index 91% rename from Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_grid.py rename to Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py index dcbb230d96a..a769494683e 100755 --- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_grid.py +++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py @@ -123,29 +123,29 @@ if ((not exclude) or postproc ): # Now the comparitor steps comp=TrigInDetCompStep('CompareStep1') -comp.chains = 'HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF' -comp.output_dir = 'HLT-plots-muon-FTF' +comp.chains = 'HLT_mu24_idperf_L1MU20:HLT_IDTrack_Muon_FTF' +comp.output_dir = 'HLTL2-plots-muon' test.check_steps.append(comp) comp2=TrigInDetCompStep('CompareStep2') -comp2.chains='HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_IDTrig' -comp2.output_dir = 'HLT-plots-muon-IDTrig' +comp2.chains='HLT_mu24_idperf_L1MU20:HLT_IDTrack_Muon_FTF HLT_mu24_idperf_L1MU20:HLT_IDTrack_Muon_IDTrig' +comp2.output_dir = 'HLTEF-plots-muon' test.check_steps.append(comp2) comp3=TrigInDetCompStep('CompareStep3') comp3.chains='HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20:HLT_IDTrack_Bjet_FTF HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20:HLT_IDTrack_Bjet_IDTrig' -comp3.output_dir = 'HLT-plots-bjet-IDTrig' +comp3.output_dir = 'HLTEF-plots-bjet' test.check_steps.append(comp3) comp4=TrigInDetCompStep('CompareStep4') comp4.chains='HLT_e5_etcut_L1EM3:HLT_IDTrack_Electron_FTF HLT_e5_etcut_L1EM3:HLT_IDTrack_Electron_IDTrig' -comp4.output_dir = 'HLT-plots-el-IDTrig' +comp4.output_dir = 'HLTEF-plots-electron' test.check_steps.append(comp4) comp5=TrigInDetCompStep('CompareStep5') comp5.chains='HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_TauCore_FTF HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_Tau_IDTrig' -comp4.output_dir = 'HLT-plots-tau-IDTrig' +comp4.output_dir = 'HLTEF-plots-tau' test.check_steps.append(comp5) diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt_grid.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py similarity index 72% rename from Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt_grid.py rename to Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py index 56571d8086a..85cc39d0828 100755 --- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt_grid.py +++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py @@ -113,16 +113,40 @@ test.check_steps.append(TrigInDetdictStep()) # Now the comparitor steps comp=TrigInDetCompStep('CompareStep1') -comp.chains = 'HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF' -comp.output_dir = 'HLT-plots-FTF' +comp.chains = 'HLT_mu24_idperf_L1MU20:HLT_IDTrack_Muon_FTF' +comp.output_dir = 'HLTL2-plots-muon' test.check_steps.append(comp) comp2=TrigInDetCompStep('CompareStep2') -comp2.chains='HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_IDTrig' -comp2.output_dir = 'HLT-plots-IDTrig' +comp2.chains='HLT_mu24_idperf_L1MU20:HLT_IDTrack_Muon_FTF HLT_mu24_idperf_L1MU20:HLT_IDTrack_Muon_IDTrig' +comp2.output_dir = 'HLTEF-plots-muon' test.check_steps.append(comp2) +comp3=TrigInDetCompStep('CompareStep3') +comp3.chains='HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20:HLT_IDTrack_Bjet_FTF HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20:HLT_IDTrack_Bjet_IDTrig' +comp3.output_dir = 'HLTEF-plots-bjet' +test.check_steps.append(comp3) + +comp4=TrigInDetCompStep('CompareStep4') +comp4.chains='HLT_e5_etcut_L1EM3:HLT_IDTrack_Electron_FTF HLT_e5_etcut_L1EM3:HLT_IDTrack_Electron_IDTrig' +comp4.output_dir = 'HLTEF-plots-electron' +test.check_steps.append(comp4) + +comp5=TrigInDetCompStep('CompareStep5') +comp5.chains='HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_TauCore_FTF HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_Tau_IDTrig' +comp4.output_dir = 'HLTEF-plots-tau' +test.check_steps.append(comp5) + + +cpucost=TrigInDetCpuCostStep('CpuCostStep1') +test.check_steps.append(cpucost) + +cpucost2=TrigInDetCpuCostStep('CpuCostStep2') +cpucost2.args += ' -p FastTrack' +cpucost2.output_dir = 'times-FTF' +test.check_steps.append(cpucost2) + import sys sys.exit(test.run()) diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40.py new file mode 100755 index 00000000000..f7dfc28ec53 --- /dev/null +++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_pu40.py @@ -0,0 +1,135 @@ +#!/usr/bin/env python + +# art-description: art job for all_ttbar_pu80_grid +# art-type: grid +# art-include: master/Athena +# art-input-nfiles: 3 +# art-athena-mt: 4 +# art-output: *.txt +# art-output: *.log +# art-output: log.* +# art-output: *.out +# art-output: *.err +# art-output: *.log.tar.gz +# art-output: *.new +# art-output: *.json +# art-output: *.root +# art-output: *.check* +# art-output: HLT* +# art-output: times* +# art-output: cost-perCall +# art-output: cost-perEvent +# art-output: cost-perCall-chain +# art-output: cost-perEvent-chain +# art-output: *.dat + + +from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps +from TrigInDetValidation.TrigInDetArtSteps import TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep + + +import sys,getopt + +try: + opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"]) +except getopt.GetoptError: + print("Usage: ") + print("-l(--local) run locally with input file from art eos grid-input") + print("-x don't run athena or post post-processing, only plotting") + print("-p run post-processing, even if -x is set") + + +local=False +exclude=False +postproc=False +for opt,arg in opts: + if opt in ("-l", "--local"): + local=True + if opt=="-x": + exclude=True + if opt=="-p": + postproc=True + + +chains = [ + 'HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20' +] + +preexec_trig = ';'.join([ + 'doEmptyMenu=True', + 'doBjetSlice=True', + 'selectChains='+str(chains) +]) + + +preexec_reco = ';'.join([ + 'from RecExConfig.RecFlags import rec', + 'rec.doForwardDet=False', + 'rec.doEgamma=False', + 'rec.doMuonCombined=False', + 'rec.doJetMissingETTag=False', + 'rec.doTau=False' +]) + +preexec_aod = ';'.join([ + preexec_reco, + 'from ParticleBuilderOptions.AODFlags import AODFlags', + 'AODFlags.ThinGeantTruth.set_Value_and_Lock(False)', + 'AODFlags.ThinNegativeEnergyCaloClusters.set_Value_and_Lock(False)', + 'AODFlags.ThinNegativeEnergyNeutralPFOs.set_Value_and_Lock(False)', + 'AODFlags.ThinInDetForwardTrackParticles.set_Value_and_Lock(False)' +]) + + + +preexec_all = ';'.join([ + 'from TriggerJobOpts.TriggerFlags import TriggerFlags', + 'TriggerFlags.AODEDMSet.set_Value_and_Lock(\\\"AODFULL\\\")', +]) + +rdo2aod = ExecStep.ExecStep() +rdo2aod.type = 'Reco_tf' +rdo2aod.max_events = 1000 # TODO: 2000 events +rdo2aod.threads = 1 # TODO: change to 4 +rdo2aod.concurrent_events = 1 # TODO: change to 4 +rdo2aod.perfmon = False +rdo2aod.timeout = 18*3600 +rdo2aod.args = '--outputAODFile=AOD.pool.root --steering="doRDO_TRIG" ' +rdo2aod.input = 'ttbar' + +rdo2aod.args += ' --preExec "RDOtoRDOTrigger:{:s};" "all:{:s};" "RAWtoESD:{:s};" "ESDtoAOD:{:s};"'.format( + preexec_trig, preexec_all, preexec_reco, preexec_aod) + +test = Test.Test() +test.art_type = 'grid' +if (not exclude): + test.exec_steps = [rdo2aod] + test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple + test.check_steps = CheckSteps.default_check_steps(test) + +# Run Tidardict +if ((not exclude) or postproc ): + rdict = TrigInDetdictStep() + rdict.args='TIDAdata-run3.dat -f data-hists.root -b Test_bin.dat ' + test.check_steps.append(rdict) + + +# Now the comparitor steps +comp1=TrigInDetCompStep('CompareStep1') +comp1.chains='HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20:HLT_IDTrack_Bjet_FTF HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20:HLT_IDTrack_Bjet_IDTrig' +comp1.output_dir = 'HLTEF-plots-bjet' +test.check_steps.append(comp1) + + + +cpucost=TrigInDetCpuCostStep('CpuCostStep1') +test.check_steps.append(cpucost) + +cpucost2=TrigInDetCpuCostStep('CpuCostStep2') +cpucost2.args += ' -p FastTrack' +cpucost2.output_dir = 'times-FTF' +test.check_steps.append(cpucost2) + + +import sys +sys.exit(test.run()) diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_grid.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40.py similarity index 93% rename from Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_grid.py rename to Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40.py index f725eeab715..0ca7281291a 100755 --- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_grid.py +++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40.py @@ -123,14 +123,14 @@ if ((not exclude) or postproc ): # Now the comparitor steps comp=TrigInDetCompStep('CompareStep1') -comp.chains = 'HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF' -comp.output_dir = 'HLT-plots-FTF' +comp.chains = 'HLT_mu24_idperf:HLT_IDTrack_Muon_FTF' +comp.output_dir = 'HLTL2-plots-muon' test.check_steps.append(comp) comp2=TrigInDetCompStep('CompareStep2') -comp2.chains='HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_IDTrig' -comp2.output_dir = 'HLT-plots-IDTrig' +comp2.chains='HLT_mu24_idperf:HLT_IDTrack_Muon_FTF HLT_mu24_idperf:HLT_IDTrack_Muon_IDTrig' +comp2.output_dir = 'HLTEF-plots-muon' test.check_steps.append(comp2) diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build.py index 46b519195f9..04186e37888 100755 --- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build.py +++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_mu_zmumu_pu40_build.py @@ -88,14 +88,14 @@ if ((not exclude) or postproc ): # Now the comparitor steps comp=TrigInDetCompStep('CompareStep1') -comp.chains = 'HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF' -comp.output_dir = 'HLT-plots-FTF' +comp.chains = 'HLT_mu24_idperf:HLT_IDTrack_Muon_FTF' +comp.output_dir = 'HLTL2-plots-muon' test.check_steps.append(comp) comp2=TrigInDetCompStep('CompareStep2') -comp2.chains='HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_FTF HLT_mu24_idperf_InDetTrigTrackingxAODCnv_Muon_IDTrig' -comp2.output_dir = 'HLT-plots-IDTrig' +comp2.chains='HLT_mu24_idperf:HLT_IDTrack_Muon_FTF HLT_mu24_idperf:HLT_IDTrack_Muon_IDTrig' +comp2.output_dir = 'HLTEF-plots-muon' test.check_steps.append(comp2) cpucost=TrigInDetCpuCostStep('CpuCostStep1') -- GitLab From 4df3f6261d172be4887cd425c81695c9f5993414 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 16:41:09 +0200 Subject: [PATCH 268/459] CppUnitExample: delete package --- AtlasTest/CppUnitExample/CMakeLists.txt | 14 ----- .../CppUnitExample/ComplexNumber.h | 31 --------- .../test/ComplexNumberTest_CppUnit.cxx | 63 ------------------- 3 files changed, 108 deletions(-) delete mode 100644 AtlasTest/CppUnitExample/CMakeLists.txt delete mode 100755 AtlasTest/CppUnitExample/CppUnitExample/ComplexNumber.h delete mode 100755 AtlasTest/CppUnitExample/test/ComplexNumberTest_CppUnit.cxx diff --git a/AtlasTest/CppUnitExample/CMakeLists.txt b/AtlasTest/CppUnitExample/CMakeLists.txt deleted file mode 100644 index bb0acf6dd59..00000000000 --- a/AtlasTest/CppUnitExample/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -################################################################################ -# Package: CppUnitExample -################################################################################ - -# Declare the package name: -atlas_subdir( CppUnitExample ) - -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - AtlasTest/TestTools ) - -# Install files from the package: -atlas_install_headers( CppUnitExample ) - diff --git a/AtlasTest/CppUnitExample/CppUnitExample/ComplexNumber.h b/AtlasTest/CppUnitExample/CppUnitExample/ComplexNumber.h deleted file mode 100755 index 4f649efc865..00000000000 --- a/AtlasTest/CppUnitExample/CppUnitExample/ComplexNumber.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef CPPUNITEXAMPLE_COMPLEXNUMBER_H -#define CPPUNITEXAMPLE_COMPLEXNUMBER_H -/// Example standalone class to test with CppUnit -/// borrowed from http://CppUnit.sourceforge.net/cppunit_cookbook.html - -class ComplexNumber { - friend bool operator ==(const ComplexNumber& a, const ComplexNumber& b); - friend ComplexNumber operator +(const ComplexNumber& a, const ComplexNumber& b); - double real, imaginary; - public: - ComplexNumber( double r, double i = 0 ) - : real(r) - , imaginary(i) - { - } - }; - - bool operator ==( const ComplexNumber &a, const ComplexNumber &b ) - { - return a.real == b.real && a.imaginary == b.imaginary; - } - ComplexNumber operator +( const ComplexNumber &a, const ComplexNumber &b ) - { - return ComplexNumber(a.real+b.real,a.imaginary+b.imaginary); - } -#endif // CPPUNITEXAMPLE_COMPLEXNUMBER_H - diff --git a/AtlasTest/CppUnitExample/test/ComplexNumberTest_CppUnit.cxx b/AtlasTest/CppUnitExample/test/ComplexNumberTest_CppUnit.cxx deleted file mode 100755 index b74bd12452b..00000000000 --- a/AtlasTest/CppUnitExample/test/ComplexNumberTest_CppUnit.cxx +++ /dev/null @@ -1,63 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include"CppUnitExample/ComplexNumber.h" -#include<cppunit/extensions/HelperMacros.h> -#include<cppunit/Exception.h> -#include<iostream> -/** Class to test the "ComplexNumber.h" class -* -* Use the HelperMacros.h header file to establish in a easy -* way the "ComplexNumberTest" test suite in which you can -* place all the tests ("testEquality", "testAddition"... ) -* concerning the tested class "ComplexNumber.h" -*/ -class ComplexNumberTest : public CppUnit::TestFixture -{ -/// Definition of the unit test suite "ComplexNumberTest" - CPPUNIT_TEST_SUITE( ComplexNumberTest ); - CPPUNIT_TEST( testEquality ); - CPPUNIT_TEST( testAddition ); - CPPUNIT_TEST_SUITE_END(); - private: - ComplexNumber *m_10_1, *m_1_1, *m_11_2; - public: - void setUp() - { - m_10_1 = new ComplexNumber(10,1); - m_1_1 = new ComplexNumber(1,1); - m_11_2 = new ComplexNumber(11,2); - } - void tearDown() - { - delete m_10_1; - delete m_1_1; - delete m_11_2; - } -/// the first test - void testEquality() - { - std::cout << " " << std::endl; - std::cout << "================================================================" << std::endl; - std::cout << "This is a simple CppUnit test of class ComplexNumber." << std::endl; - std::cout << "Other CppUnit tests can be included in ATLAS nightlies." << std::endl; - std::cout << "Details in http://atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/" << std::endl; - std::cout << "OO/dist/nightlies/nicoswww/cppunit_testing.html" << std::endl; - std::cout << "================================================================" << std::endl; - CPPUNIT_ASSERT( (*m_10_1 == *m_10_1) ); - CPPUNIT_ASSERT_MESSAGE( "This test fails intentionally", *m_10_1 == *m_1_1 ); - } -/// the second test - void testAddition() - { - CPPUNIT_ASSERT( *m_10_1 + *m_1_1 == *m_11_2 ); - } -}; -/// Registration of the test suite "ComplexNumberTest", so it -/// will be recognized by the main test program which drives the -/// different tests. -CPPUNIT_TEST_SUITE_REGISTRATION(ComplexNumberTest); -/// CppUnit test-driver common for all the cppunit test classes. -#include <TestTools/CppUnit_testdriver.cxx> - -- GitLab From 241fb7a1a7b8304819091532347e74bc05791814 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 16:41:46 +0200 Subject: [PATCH 269/459] CppUnitSGServiceExample: delete package --- .../CppUnitSGServiceExample/CMakeLists.txt | 18 ---- .../SimpleDataVector.h | 45 ---------- .../share/dummy_options.txt | 1 - .../test/SimpleDataVectorTest_CppUnit.cxx | 90 ------------------- 4 files changed, 154 deletions(-) delete mode 100644 AtlasTest/CppUnitSGServiceExample/CMakeLists.txt delete mode 100755 AtlasTest/CppUnitSGServiceExample/CppUnitSGServiceExample/SimpleDataVector.h delete mode 100644 AtlasTest/CppUnitSGServiceExample/share/dummy_options.txt delete mode 100755 AtlasTest/CppUnitSGServiceExample/test/SimpleDataVectorTest_CppUnit.cxx diff --git a/AtlasTest/CppUnitSGServiceExample/CMakeLists.txt b/AtlasTest/CppUnitSGServiceExample/CMakeLists.txt deleted file mode 100644 index 951da83d5ec..00000000000 --- a/AtlasTest/CppUnitSGServiceExample/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -################################################################################ -# Package: CppUnitSGServiceExample -################################################################################ - -# Declare the package name: -atlas_subdir( CppUnitSGServiceExample ) - -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - AtlasTest/TestTools - Control/AthenaKernel - Control/AthContainers - Control/StoreGate - GaudiKernel ) - -# Install files from the package: -atlas_install_headers( CppUnitSGServiceExample ) - diff --git a/AtlasTest/CppUnitSGServiceExample/CppUnitSGServiceExample/SimpleDataVector.h b/AtlasTest/CppUnitSGServiceExample/CppUnitSGServiceExample/SimpleDataVector.h deleted file mode 100755 index 6f6734ced27..00000000000 --- a/AtlasTest/CppUnitSGServiceExample/CppUnitSGServiceExample/SimpleDataVector.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include <cassert> -#include <iostream> -#include <string> -#include <vector> -#include "AthContainers/DataVector.h" -#include "StoreGate/StoreGateSvc.h" -#include "AthenaKernel/getMessageSvc.h" -#include "GaudiKernel/MsgStream.h" - -using namespace std; - -struct SimpleTestStruct { - int m_int; - float m_float; - string m_string; - virtual ~SimpleTestStruct() - { - // cout << " ----> Destructor of SimpleTestStruct called for " << this << endl; - } - SimpleTestStruct() : m_int(1), m_float(2.), m_string("SimpleString") { } - SimpleTestStruct(int j) : m_int(j), m_float(2.), m_string("SimpleString") { } - SimpleTestStruct(const SimpleTestStruct& aaa) : - m_int(aaa.m_int), m_float(2.), - m_string("SimpleString") { } - void foo() { /* cout << "foo called" << m_int << endl; */} - void fooMessageSvc() { - MsgStream log( Athena::getMessageSvc(), "SimpleDataVector" ); - log << MSG::INFO - << "In SimpleDataVector Gaudi message service is called -" << endl - << "and it prints the value of integer data member:" << m_int - << endmsg; - } -}; - -class SimpleTestContainer : public DataVector<SimpleTestStruct> -{ - public: - SimpleTestContainer() : DataVector<SimpleTestStruct>() { }; - virtual ~SimpleTestContainer() {} -}; - diff --git a/AtlasTest/CppUnitSGServiceExample/share/dummy_options.txt b/AtlasTest/CppUnitSGServiceExample/share/dummy_options.txt deleted file mode 100644 index d39a83bdbe2..00000000000 --- a/AtlasTest/CppUnitSGServiceExample/share/dummy_options.txt +++ /dev/null @@ -1 +0,0 @@ -#empty file diff --git a/AtlasTest/CppUnitSGServiceExample/test/SimpleDataVectorTest_CppUnit.cxx b/AtlasTest/CppUnitSGServiceExample/test/SimpleDataVectorTest_CppUnit.cxx deleted file mode 100755 index 3947743fe56..00000000000 --- a/AtlasTest/CppUnitSGServiceExample/test/SimpleDataVectorTest_CppUnit.cxx +++ /dev/null @@ -1,90 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include"CppUnitSGServiceExample/SimpleDataVector.h" -#include<cppunit/extensions/HelperMacros.h> -#include<cppunit/Exception.h> -#include<iostream> -/** Class to test the "SimpleDataVector.h" class -* StoreGate service required -* -* Use the HelperMacros.h header file to establish in a easy -* way the "SimpleDataVectorTest" test suite in which you can -* place all the tests concerning the tested class -*/ -class SimpleDataVectorTest : public CppUnit::TestFixture -{ -/// Definition of the unit test suite "SimpleDataVectorTest" - CPPUNIT_TEST_SUITE( SimpleDataVectorTest ); - CPPUNIT_TEST( testSDV ); - CPPUNIT_TEST( testSDV_false_negative ); - CPPUNIT_TEST_SUITE_END(); - private: - - public: - void setUp() - { - } - void tearDown() - { - } -/// the test - void testSDV() - { - std::cout << " " << std::endl; - std::cout << "================================================================" << std::endl; - std::cout << "This is a simple CppUnit test of class SimpleDataVector." << std::endl; - std::cout << "The CppUnit test driver with StoreGate service is used." << std::endl; - std::cout << "CppUnit tests can be included in ATLAS nightlies." << std::endl; - std::cout << "Details in http://atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/" << std::endl; - std::cout << "OO/dist/nightlies/nicoswww/cppunit_testing.html" << std::endl; - std::cout << "================================================================" << std::endl; - - typedef DataVector<int> IntVector; - IntVector intV; - CPPUNIT_ASSERT(intV.empty()); - intV.reserve(10); - CPPUNIT_ASSERT(intV.capacity() == 10); - unsigned int i; - const unsigned int IFILL(3); - for (i=0; i<IFILL; ++i) intV.push_back(new int(i)); - CPPUNIT_ASSERT (IFILL == intV.size()); - CPPUNIT_ASSERT(distance(intV.begin(), intV.end()) == (int)IFILL); - CPPUNIT_ASSERT(*(intV.front()) == 0); - CPPUNIT_ASSERT(2 == *(intV.back())); - intV.front() = new int(7); - CPPUNIT_ASSERT(7 == *(intV.front())); - *(intV.back()) = 3; - - DataVector<SimpleTestStruct>* aa = new DataVector<SimpleTestStruct>(); - aa->push_back(new SimpleTestStruct()); - aa->push_back(new SimpleTestStruct(9)); - - CPPUNIT_ASSERT(2 == aa->size()); - - DataVector<SimpleTestStruct>::iterator iter = aa->begin(); - int n = 0; - for (; iter != aa->end(); iter++) { - (*iter)->foo(); - (*iter)->fooMessageSvc(); - n++; - } - CPPUNIT_ASSERT(2 == n); - - delete aa; - } -void testSDV_false_negative() - { - DataVector<SimpleTestStruct>* aa = new DataVector<SimpleTestStruct>(); - aa->push_back(new SimpleTestStruct(9)); - CPPUNIT_ASSERT_MESSAGE( "This test fails intentionally", 2 == aa->size()); - delete aa; - } -}; -/// Registration of the test suite "SimpleDataVectorTest", so it -/// will be recognized by the main test program which drives the -/// different tests. -CPPUNIT_TEST_SUITE_REGISTRATION(SimpleDataVectorTest); -/// CppUnit test-driver common for all the cppunit test classes. -#include <TestTools/CppUnit_SGtestdriver.cxx> -- GitLab From 902a03deb8096b95bb02af1ee0ff856f062b04fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20K=C3=B6hler?= <nicolas.koehler@cern.ch> Date: Tue, 28 Jul 2020 16:46:32 +0200 Subject: [PATCH 270/459] add hasHPTDC function to MuonIdHelper --- .../MuonIdHelpers/MuonIdHelpers/IMuonIdHelperSvc.h | 3 +++ .../MuonIdHelpers/MuonIdHelpers/MuonIdHelperSvc.h | 3 +++ .../MuonIdHelpers/src/MuonIdHelperSvc.cxx | 12 ++++++++++++ 3 files changed, 18 insertions(+) diff --git a/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/IMuonIdHelperSvc.h b/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/IMuonIdHelperSvc.h index c531fd182a8..a91e286db8b 100644 --- a/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/IMuonIdHelperSvc.h +++ b/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/IMuonIdHelperSvc.h @@ -75,6 +75,9 @@ namespace Muon { /** @brief returns whether this is a sTGC Identifier or not */ virtual bool issTgc( const Identifier& id ) const = 0; + /** @brief returns whether this Identifier belongs to an MDT with HPTDC or not */ + virtual bool hasHPTDC( const Identifier& id ) const = 0; + /** @brief returns whether channel measures phi or not */ virtual bool measuresPhi( const Identifier& id ) const = 0; diff --git a/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/MuonIdHelperSvc.h b/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/MuonIdHelperSvc.h index b399d108ece..55630f0a213 100644 --- a/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/MuonIdHelperSvc.h +++ b/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/MuonIdHelperSvc.h @@ -77,6 +77,9 @@ namespace Muon { /** @brief returns whether this is a sTGC Identifier or not */ virtual bool issTgc( const Identifier& id ) const override; + /** @brief returns whether this Identifier belongs to an MDT with HPTDC or not */ + virtual bool hasHPTDC( const Identifier& id ) const override; + /** @brief returns whether channel measures phi or not */ virtual bool measuresPhi( const Identifier& id ) const override; diff --git a/MuonSpectrometer/MuonIdHelpers/src/MuonIdHelperSvc.cxx b/MuonSpectrometer/MuonIdHelpers/src/MuonIdHelperSvc.cxx index 4eb6527c9d1..946e5b55a5f 100644 --- a/MuonSpectrometer/MuonIdHelpers/src/MuonIdHelperSvc.cxx +++ b/MuonSpectrometer/MuonIdHelpers/src/MuonIdHelperSvc.cxx @@ -199,6 +199,18 @@ namespace Muon { return m_stgcIdHelper->is_stgc(id); } + bool MuonIdHelperSvc::hasHPTDC( const Identifier& id ) const { + if (!isMdt(id)) return false; + else if (!m_rpcIdHelper) return false; // there must be RPCs in the layout + else if (m_mdtIdHelper->isBMG(id)) return true; // all BMG sMDTs have an HPTDC + else if (m_mdtIdHelper->isEndcap(id)) return false; // there are no HPTDCs in the endcaps + else if (m_mdtIdHelper->stationNameString(stationName(id)).find("BI")!=0) return false; // outside the inner barrel layer there are no HPTDCs + // now try to retrieve RPC identifier with the same station name/eta/phi and check if it is valid + bool isValid = false; + m_rpcIdHelper->elementID(stationName(id), stationEta(id), stationPhi(id), 1, true, &isValid); // last 3 arguments are: doubletR, check, isValid + if (isValid) return true; // there is a BI RPC in the same station, thus, this station was already upgraded and the sMDT must have an HPTDC + return false; + } bool MuonIdHelperSvc::measuresPhi( const Identifier& id ) const { if( isRpc(id) ) { -- GitLab From 47eea890477afbb9efbcd4c585a4995e23c35869 Mon Sep 17 00:00:00 2001 From: lbazzano <lisandro.tomas.bazzano.hurrell@cern.ch> Date: Tue, 28 Jul 2020 16:48:53 +0200 Subject: [PATCH 271/459] Changed the binning for better resolution --- Reconstruction/Jet/JetRecTools/python/OnlineMon.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Reconstruction/Jet/JetRecTools/python/OnlineMon.py b/Reconstruction/Jet/JetRecTools/python/OnlineMon.py index 9824dac3d98..2a4ee3d95e1 100644 --- a/Reconstruction/Jet/JetRecTools/python/OnlineMon.py +++ b/Reconstruction/Jet/JetRecTools/python/OnlineMon.py @@ -6,7 +6,7 @@ def getMonTool_Algorithm(path): monTool.HistPath = path monTool.defineHistogram( 'TIME_execute', path='EXPERT', type='TH1F', title='Counts', - xbins=100, xmin=0, xmax=1000 ) + xbins=400, xmin=0, xmax=200 ) monTool.defineHistogram( 'TIME_subtract', path='EXPERT', type='TH1F', title='Counts', - xbins=100, xmin=0, xmax=1000 ) + xbins=400, xmin=0, xmax=200 ) return monTool -- GitLab From 4fdf70a6458ee0bbced73f92a6b6586ab86c44c6 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 17:07:08 +0200 Subject: [PATCH 272/459] AthenaDBTestRec: cmake cleanup, do not install headers --- .../AthenaDBTestRec/CMakeLists.txt | 45 +++++-------------- 1 file changed, 11 insertions(+), 34 deletions(-) diff --git a/AtlasTest/DatabaseTest/AthenaDBTestRec/CMakeLists.txt b/AtlasTest/DatabaseTest/AthenaDBTestRec/CMakeLists.txt index 85cc80bc408..704ee3d8a81 100644 --- a/AtlasTest/DatabaseTest/AthenaDBTestRec/CMakeLists.txt +++ b/AtlasTest/DatabaseTest/AthenaDBTestRec/CMakeLists.txt @@ -1,66 +1,43 @@ -################################################################################ -# Package: AthenaDBTestRec -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaDBTestRec ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Control/AthenaKernel - Control/StoreGate - Database/AthenaPOOL/AthenaPoolUtilities - GaudiKernel - PRIVATE - Database/APR/CollectionBase - Database/APR/CollectionUtilities - Database/APR/PersistencySvc - Database/APR/StorageSvc - Database/APR/FileCatalog - Database/AthenaPOOL/AthenaPoolCnvSvc - Database/CoraCool - Database/PersistentDataModel - Event/EventInfo ) - # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) find_package( COOL COMPONENTS CoolKernel CoolApplication ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) include_directories(src) # Component(s) in the package: atlas_add_library( AthenaDBTestRecLib src/lib/*.cxx - PUBLIC_HEADERS AthenaDBTestRec - PRIVATE_INCLUDE_DIRS ${COOL_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES AthenaBaseComps AthenaKernel AthenaPoolUtilities GaudiKernel StoreGateLib SGtests AthenaPoolCnvSvcLib - PRIVATE_LINK_LIBRARIES ${COOL_LIBRARIES} ${Boost_LIBRARIES} ${ROOT_LIBRARIES} ${CORAL_LIBRARIES} CollectionBase CollectionUtilities PersistencySvc StorageSvc CoraCool PersistentDataModel EventInfo ) + NO_PUBLIC_HEADERS + PRIVATE_INCLUDE_DIRS ${CORAL_INCLUDE_DIRS} + LINK_LIBRARIES AthenaBaseComps AthenaKernel AthenaPoolUtilities GaudiKernel StoreGateLib + PRIVATE_LINK_LIBRARIES ${CORAL_LIBRARIES} ) atlas_add_component( AthenaDBTestRec src/components/*.cxx - INCLUDE_DIRS ${COOL_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${COOL_LIBRARIES} ${Boost_LIBRARIES} ${ROOT_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel StoreGateLib SGtests AthenaPoolUtilities GaudiKernel CollectionBase CollectionUtilities PersistencySvc StorageSvc AthenaPoolCnvSvcLib CoraCool PersistentDataModel EventInfo AthenaDBTestRecLib ) + LINK_LIBRARIES AthenaDBTestRecLib ) atlas_add_poolcnv_library( AthenaDBTestRecPoolCnv src/*.cxx FILES AthenaDBTestRec/TestCoolRecPoolData.h AthenaDBTestRec/TestCoolRecPoolDataColl.h MULT_CHAN_TYPES TestCoolRecPoolDataColl - INCLUDE_DIRS ${COOL_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${COOL_LIBRARIES} ${Boost_LIBRARIES} ${ROOT_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel StoreGateLib SGtests AthenaPoolUtilities GaudiKernel CollectionBase CollectionUtilities PersistencySvc StorageSvc AthenaPoolCnvSvcLib CoraCool PersistentDataModel EventInfo AthenaDBTestRecLib ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${COOL_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${COOL_LIBRARIES} ${CORAL_LIBRARIES} AthenaDBTestRecLib AthenaPoolCnvSvcLib CoraCool PersistentDataModel ) atlas_add_dictionary( AthenaDBTestRecDataDict AthenaDBTestRec/AthenaDBTestRecDataDict.h AthenaDBTestRec/selection.xml - INCLUDE_DIRS ${COOL_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${COOL_LIBRARIES} ${Boost_LIBRARIES} ${ROOT_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel StoreGateLib SGtests AthenaPoolUtilities GaudiKernel CollectionBase CollectionUtilities PersistencySvc StorageSvc AthenaPoolCnvSvcLib CoraCool PersistentDataModel EventInfo AthenaDBTestRecLib ) + LINK_LIBRARIES AthenaDBTestRecLib ) atlas_add_executable( TestCoolRecWriter src/app/*.cxx - INCLUDE_DIRS ${COOL_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${COOL_LIBRARIES} ${Boost_LIBRARIES} ${ROOT_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel StoreGateLib SGtests AthenaPoolUtilities GaudiKernel CollectionBase CollectionUtilities PersistencySvc StorageSvc AthenaPoolCnvSvcLib CoraCool PersistentDataModel EventInfo AthenaDBTestRecLib ) + INCLUDE_DIRS ${COOL_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} + LINK_LIBRARIES ${COOL_LIBRARIES} ${CORAL_LIBRARIES} AthenaDBTestRecLib CoraCool FileCatalog PersistencySvc PersistentDataModel StorageSvc ) # Install files from the package: atlas_install_joboptions( share/*.py ) -- GitLab From df19b1549eb02bec5886b9dd96489d33b7f563aa Mon Sep 17 00:00:00 2001 From: Tim Martin <Tim.Martin@cern.ch> Date: Tue, 28 Jul 2020 17:10:25 +0200 Subject: [PATCH 273/459] Updates to unit tests --- Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt | 2 +- Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMCLIDs.h | 5 +++++ .../TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx | 2 +- .../TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx | 3 ++- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt b/Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt index 568ab360049..e4139cad5b1 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt +++ b/Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt @@ -13,7 +13,7 @@ atlas_add_library( TrigOutputHandlingLib src/*.cxx PUBLIC_HEADERS TrigOutputHandling INCLUDE_DIRS ${TDAQ-COMMON_INCLUDE_DIRS} - LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} GaudiKernel AthViews AthenaBaseComps RootUtils TrigSteeringEvent TrigSerializeResultLib TrigConfData xAODTrigCalo xAODTrigRinger xAODTrigEgamma xAODEgamma xAODBTagging xAODTrigger xAODTracking xAODTrigMuon xAODMuon xAODTau xAODTrigBphys xAODTrigMissingET DecisionHandlingLib AthenaMonitoringKernelLib TrigPartialEventBuildingLib TrigSerializeTPLib AthContainersRoot TrigCompositeUtilsLib TrigCostMonitorMTLib ) + LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} GaudiKernel AthViews AthenaBaseComps RootUtils TrigSteeringEvent TrigSerializeResultLib TrigConfData xAODTrigCalo xAODTrigRinger xAODTrigEgamma xAODEgamma xAODBTagging xAODTrigger xAODTracking xAODTrigMuon xAODMuon xAODTau xAODTrigBphys xAODTrigMissingET DecisionHandlingLib AthenaMonitoringKernelLib TrigPartialEventBuildingLib TrigSerializeTPLib AthContainersRoot AthContainers TrigCompositeUtilsLib TrigCostMonitorMTLib ) atlas_add_component( TrigOutputHandling src/components/*.cxx diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMCLIDs.h b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMCLIDs.h index 044ed571c4a..3e7baf5b287 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMCLIDs.h +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMCLIDs.h @@ -8,12 +8,14 @@ #include "AthLinks/ElementLink.h" #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h" + #include "xAODBTagging/BTaggingContainer.h" #include "xAODTracking/TrackParticleContainer.h" #include "xAODJet/JetContainer.h" #include "xAODTracking/VertexContainer.h" #include "xAODBTagging/BTagVertexContainer.h" +#include "AthContainers/PackedContainer.h" /** * @File TriggerEDMCLIDs.h @@ -22,10 +24,13 @@ **/ CLASS_DEF( std::vector<ElementLink<TrigRoiDescriptorCollection> >, 78044011, 1 ) + CLASS_DEF( std::vector<ElementLink<xAOD::BTaggingContainer>>, 1289383075, 1 ) CLASS_DEF( std::vector<std::vector<ElementLink<xAOD::TrackParticleContainer>>>, 1188795373, 1 ) CLASS_DEF( std::vector<ElementLink<xAOD::JetContainer>>, 1210667800, 1 ) CLASS_DEF( std::vector<std::vector<ElementLink<xAOD::VertexContainer>>>, 1164463855, 1 ) CLASS_DEF( std::vector<std::vector<ElementLink<xAOD::BTagVertexContainer>>>, 1289535397, 1 ) +CLASS_DEF( SG::PackedContainer<float>, 1180188747, 1 ) + #endif //> !TRIGOUTPUTHANDLING_TRIGGEREDMCLIDS_H diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx index d1f06281dd9..5d481acfb5e 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx @@ -149,7 +149,7 @@ StatusCode TriggerEDMDeserialiserAlg::deserialise( const Payload* dataptr ) c } const bool isxAODInterfaceContainer = transientTypeName.find("xAOD") != std::string::npos and transientTypeName.find("Aux") == std::string::npos; const bool isxAODAuxContainer = transientTypeName.find("xAOD") != std::string::npos and transientTypeName.find("Aux") != std::string::npos; - const bool isxAODDecoration = transientTypeName.find("vector") != std::string::npos; + const bool isxAODDecoration = transientTypeName.find("vector") != std::string::npos or transientTypeName.find("SG::PackedContainer") != std::string::npos; const bool isTPContainer = persistentTypeName.find("_p") != std::string::npos; ATH_CHECK( checkSanity( transientTypeName, isxAODInterfaceContainer, isxAODAuxContainer, isxAODDecoration, isTPContainer ) ); diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx index 0ad0be5faf8..54d579acccf 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx @@ -214,7 +214,8 @@ StatusCode TriggerEDMSerialiserTool::serialiseDynAux( DataObject* dObj, const Ad TClass* cls = TClass::GetClass (*tinfo); ATH_CHECK( cls != nullptr ); ATH_MSG_DEBUG( "" ); - ATH_MSG_DEBUG( "Streaming " << decorationName << " of type " << typeName << " aux ID " << auxVarID << " class " << cls->GetName() ); + ATH_MSG_ALWAYS( "Streaming '" << decorationName << "' of type '" << typeName + << "' fulltype '" << fullTypeName << "' aux ID '" << auxVarID << "' class '" << cls->GetName() ); CLID clid; ATH_CHECK( m_clidSvc->getIDOfTypeInfoName(fullTypeName, clid) ); -- GitLab From 7100a7f4d16db57e96aabf21167a929ab7dae22c Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Tue, 28 Jul 2020 17:26:37 +0200 Subject: [PATCH 274/459] Fix L1ConfigSvc and HLTPrescale setup to work in old and new JO --- Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py | 8 +++++--- .../TriggerJobOpts/share/runHLT_standalone.py | 9 ++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py b/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py index a8de4937f68..0ca6148175b 100644 --- a/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py +++ b/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py @@ -202,6 +202,11 @@ def L1DecoderCfg(flags, seqName = None): if flags.Trigger.enableL1Phase1: acc.addEventAlgo( getL1TriggerResultMaker(), sequenceName = seqName ) + from TrigConfigSvc.TrigConfigSvcCfg import TrigConfigSvcCfg, HLTPrescaleCondAlgCfg + acc.merge( TrigConfigSvcCfg( flags ) ) + acc.merge( HLTPrescaleCondAlgCfg( flags ) ) + + Configurable.configurableRun3Behavior -= 1 return acc @@ -215,9 +220,6 @@ if __name__ == "__main__": ConfigFlags.Input.Files= ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1",] ConfigFlags.lock() acc = L1DecoderCfg( ConfigFlags ) - from TrigConfigSvc.TrigConfigSvcCfg import TrigConfigSvcCfg, HLTPrescaleCondAlgCfg - acc.merge( TrigConfigSvcCfg( ConfigFlags ) ) - acc.merge( HLTPrescaleCondAlgCfg( ConfigFlags ) ) from MuonConfig.MuonCablingConfig import RPCCablingConfigCfg, TGCCablingConfigCfg acc.merge( TGCCablingConfigCfg( ConfigFlags ) ) acc.merge( RPCCablingConfigCfg( ConfigFlags ) ) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py index f7498e5a071..070163c02bb 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py @@ -446,11 +446,11 @@ TriggerFlags.readLVL1configFromXML = True TriggerFlags.outputLVL1configFile = None from TrigConfigSvc.TrigConfigSvcCfg import generateL1Menu, createL1PrescalesFileFromMenu -generateL1Menu() -createL1PrescalesFileFromMenu() +generateL1Menu(ConfigFlags) +createL1PrescalesFileFromMenu(ConfigFlags) from TrigConfigSvc.TrigConfigSvcCfg import L1ConfigSvcCfg -CAtoGlobalWrapper(L1ConfigSvcCfg,None) +CAtoGlobalWrapper(L1ConfigSvcCfg,ConfigFlags) # --------------------------------------------------------------- # HLT prep: RoIBResult and L1Decoder @@ -517,9 +517,8 @@ svcMgr.MessageSvc.infoLimit=10000 -from TrigConfigSvc.TrigConfigSvcCfg import getHLTConfigSvc, setupHLTPrescaleCondAlg +from TrigConfigSvc.TrigConfigSvcCfg import getHLTConfigSvc svcMgr += conf2toConfigurable( getHLTConfigSvc() ) -setupHLTPrescaleCondAlg() if not opt.createHLTMenuExternally: # the generation of the prescale set file from the menu (with all prescales set to 1) -- GitLab From c50fcae9c1b94320f2c96e5d283486474d9309f7 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 17:27:21 +0200 Subject: [PATCH 275/459] AthenaPoolTest: cmake cleanup, remove Eigen dependency --- .../AthenaPoolTest/CMakeLists.txt | 41 +------------------ 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/AtlasTest/DatabaseTest/AthenaPoolTest/CMakeLists.txt b/AtlasTest/DatabaseTest/AthenaPoolTest/CMakeLists.txt index 12f3ebb13d5..7b8b914ac8a 100644 --- a/AtlasTest/DatabaseTest/AthenaPoolTest/CMakeLists.txt +++ b/AtlasTest/DatabaseTest/AthenaPoolTest/CMakeLists.txt @@ -1,44 +1,8 @@ -################################################################################ -# Package: AthenaPoolTest -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaPoolTest ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - AtlasTest/DatabaseTest/AthenaPoolTestData - Calorimeter/CaloDetDescr - Calorimeter/CaloEvent - Calorimeter/CaloIdentifier - Control/AthenaBaseComps - Control/AthenaKernel - Control/StoreGate - Database/AthenaPOOL/AthenaPoolUtilities - DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoPrimitives - DetectorDescription/Identifier - Event/EventInfo - Event/EventInfoMgt - GaudiKernel - InnerDetector/InDetDetDescr/InDetIdentifier - InnerDetector/InDetDetDescr/InDetReadoutGeometry - InnerDetector/InDetRawEvent/InDetRawData - InnerDetector/InDetRecEvent/InDetCompetingRIOsOnTrack - InnerDetector/InDetRecEvent/InDetPrepRawData - InnerDetector/InDetRecEvent/InDetRIO_OnTrack - LArCalorimeter/LArRecEvent - Tracking/TrkDetDescr/TrkSurfaces - Tracking/TrkEvent/TrkCompetingRIOsOnTrack - Tracking/TrkEvent/TrkEventPrimitives - Tracking/TrkEvent/TrkMaterialOnTrack - Tracking/TrkEvent/TrkParameters - Tracking/TrkEvent/TrkTrack - Tracking/TrkEvent/TrkVertexOnTrack ) - -# External dependencies: -find_package( Eigen ) - # Component(s) in the package: atlas_add_component( AthenaPoolTest src/AthenaPoolTestDataReader.cxx @@ -58,8 +22,7 @@ atlas_add_component( AthenaPoolTest src/FakeTrackBuilder.cxx src/RDOReaderDoubleSelector.cxx src/components/*.cxx - INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} AthenaPoolTestData CaloDetDescrLib CaloEvent CaloIdentifier AthenaBaseComps AthenaKernel StoreGateLib SGtests AthenaPoolUtilities GeoPrimitives Identifier EventInfo GaudiKernel InDetIdentifier InDetReadoutGeometry InDetRawData InDetCompetingRIOsOnTrack InDetPrepRawData InDetRIO_OnTrack LArRecEvent TrkSurfaces TrkCompetingRIOsOnTrack TrkEventPrimitives TrkMaterialOnTrack TrkParameters TrkTrack TrkVertexOnTrack EventInfoMgtLib ) + LINK_LIBRARIES AthenaPoolTestData CaloDetDescrLib CaloEvent CaloIdentifier AthenaBaseComps AthenaKernel StoreGateLib SGtests AthenaPoolUtilities GeoPrimitives Identifier EventInfo GaudiKernel InDetIdentifier InDetReadoutGeometry InDetRawData InDetCompetingRIOsOnTrack InDetPrepRawData InDetRIO_OnTrack LArRecEvent TrkSurfaces TrkCompetingRIOsOnTrack TrkEventPrimitives TrkMaterialOnTrack TrkParameters TrkTrack TrkVertexOnTrack EventInfoMgtLib ) # Install files from the package: atlas_install_joboptions( share/*.py ) -- GitLab From 6e131ba347cdfd6f54f3134e73162a15c70278e7 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 17:28:59 +0200 Subject: [PATCH 276/459] CoraCoolTest: cmake cleanup, remove ROOT dependency --- AtlasTest/DatabaseTest/CoraCoolTest/CMakeLists.txt | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/AtlasTest/DatabaseTest/CoraCoolTest/CMakeLists.txt b/AtlasTest/DatabaseTest/CoraCoolTest/CMakeLists.txt index 19c22704b13..7c5e75b5882 100644 --- a/AtlasTest/DatabaseTest/CoraCoolTest/CMakeLists.txt +++ b/AtlasTest/DatabaseTest/CoraCoolTest/CMakeLists.txt @@ -1,24 +1,16 @@ -################################################################################ -# Package: CoraCoolTest -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( CoraCoolTest ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - Database/CoraCool ) - # External dependencies: find_package( COOL COMPONENTS CoolKernel ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) # Component(s) in the package: atlas_add_executable( CoraCoolExample src/CoraCoolExample.cxx - INCLUDE_DIRS ${COOL_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${COOL_LIBRARIES} ${ROOT_LIBRARIES} ${CORAL_LIBRARIES} CoraCool ) - + INCLUDE_DIRS ${COOL_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} + LINK_LIBRARIES ${COOL_LIBRARIES} ${CORAL_LIBRARIES} CoraCool ) atlas_install_scripts( share/CoraCoolExample_SQLite.sh ) -- GitLab From f6803e4baa18ee1f56b5c6fcdd4017210c71e6b5 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 17:30:27 +0200 Subject: [PATCH 277/459] AthenaPoolTestAthenaPool: cmake cleanup - remove ROOT dependency - remove atlas_depends_on_subdirs - update link dependencies --- .../AthenaPoolTestAthenaPool/CMakeLists.txt | 26 +++---------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/AtlasTest/DatabaseTest/AthenaPoolTestAthenaPool/CMakeLists.txt b/AtlasTest/DatabaseTest/AthenaPoolTestAthenaPool/CMakeLists.txt index 388f80c985d..d1019322bde 100644 --- a/AtlasTest/DatabaseTest/AthenaPoolTestAthenaPool/CMakeLists.txt +++ b/AtlasTest/DatabaseTest/AthenaPoolTestAthenaPool/CMakeLists.txt @@ -1,35 +1,15 @@ -################################################################################ -# Package: AthenaPoolTestAthenaPool -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaPoolTestAthenaPool ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/DataModelAthenaPool - PRIVATE - AtlasTest/DatabaseTest/AthenaPoolTestData - Database/AthenaPOOL/AthenaPoolCnvSvc - Database/AthenaPOOL/AthenaPoolUtilities - Database/AtlasSealCLHEP ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - # Component(s) in the package: atlas_add_poolcnv_library( AthenaPoolTestAthenaPoolPoolCnv src/*.cxx FILES AthenaPoolTestData/IAthenaPoolTestCollection.h AthenaPoolTestData/AthenaPoolTestMatrix.h AthenaPoolTestData/AthenaPoolTestMap.h AthenaPoolTestData/FauxTriggerMap.h AthenaPoolTestData/dummy_A.h AthenaPoolTestData/dummy_E.h AthenaPoolTestData/TrigPath.h AthenaPoolTestData/TestGaudiProperty.h AthenaPoolTestData/PixelRDOElemLinkVec.h - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} DataModelAthenaPoolLib AthenaPoolTestData AthenaPoolCnvSvcLib AthenaPoolUtilities AtlasSealCLHEP ) + LINK_LIBRARIES AthenaPoolCnvSvcLib AthenaPoolTestData DataModelAthenaPoolLib ) atlas_add_dictionary( AthenaPoolTestAthenaPoolCnvDict AthenaPoolTestAthenaPool/AthenaPoolTestAthenaPoolDict.h AthenaPoolTestAthenaPool/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} DataModelAthenaPoolLib AthenaPoolTestData AthenaPoolCnvSvcLib AthenaPoolUtilities AtlasSealCLHEP ) - -# Install files from the package: -atlas_install_headers( AthenaPoolTestAthenaPool ) - + LINK_LIBRARIES DataModelAthenaPoolLib AthenaPoolTestData AthenaPoolCnvSvcLib AthenaPoolUtilities ) -- GitLab From e1a59101af3811dfa6e2bd2e6f0d551a3b3225b4 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 17:39:44 +0200 Subject: [PATCH 278/459] DatabaseTest: cmake cleanup - remove atlas_depends_on_subdirs - update link and external dependencies --- .../AthenaPoolMultiTest/CMakeLists.txt | 26 ++----------------- .../AthenaPoolTestData/CMakeLists.txt | 12 +-------- .../DatabaseTest/IOVDbTestAlg/CMakeLists.txt | 19 ++------------ .../IOVDbTestAthenaPool/CMakeLists.txt | 15 ++--------- .../IOVDbTestConditions/CMakeLists.txt | 18 +++---------- 5 files changed, 10 insertions(+), 80 deletions(-) diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/CMakeLists.txt b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/CMakeLists.txt index de5c3546a8e..a7fb457b335 100644 --- a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/CMakeLists.txt +++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/CMakeLists.txt @@ -1,28 +1,8 @@ -################################################################################ -# Package: AthenaPoolMultiTest -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaPoolMultiTest ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - AtlasTest/DatabaseTest/AthenaPoolTestData - Control/AthenaBaseComps - Control/SGTools - Control/StoreGate - DataQuality/GoodRunsLists - Database/APR/CollectionBase - Database/APR/CollectionUtilities - Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleData - Database/AthenaPOOL/AthenaPoolUtilities - Database/PersistentDataModel - Database/AthenaPOOL/DBDataModel - Event/ByteStreamCnvSvc - Event/ByteStreamData - Event/xAOD/xAODEventInfo - GaudiKernel ) - # External dependencies: find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) @@ -31,12 +11,11 @@ atlas_add_component( AthenaPoolMultiTest src/*.cxx src/components/*.cxx INCLUDE_DIRS ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${CORAL_LIBRARIES} AthenaPoolTestData AthenaBaseComps SGTools StoreGateLib SGtests GoodRunsListsLib CollectionBase CollectionUtilities AthenaPoolExampleData AthenaPoolUtilities PersistentDataModel DBDataModel ByteStreamData ByteStreamData_test xAODEventInfo GaudiKernel ) + LINK_LIBRARIES ${CORAL_LIBRARIES} AthenaBaseComps AthenaPoolExampleData AthenaPoolTestData AthenaPoolUtilities DBDataModel GaudiKernel GoodRunsListsLib PersistentDataModel SGTools StoreGateLib xAODEventInfo ) # Install files from the package: atlas_install_joboptions( share/*.py ) - function (athenapoolmultitest_run_test testName jo postScript) cmake_parse_arguments( ARG "" "DEPENDS" "" ${ARGN} ) @@ -54,7 +33,6 @@ function (athenapoolmultitest_run_test testName jo postScript) endif() endfunction (athenapoolmultitest_run_test) - athenapoolmultitest_run_test( AthenaPoolMultiTestBuildInput SplittableData_jo post_check_bi ) athenapoolmultitest_run_test( AthenaPoolMultiTestEventSplit EventSplit_jo diff --git a/AtlasTest/DatabaseTest/AthenaPoolTestData/CMakeLists.txt b/AtlasTest/DatabaseTest/AthenaPoolTestData/CMakeLists.txt index 777af433891..07aaa0a93b5 100644 --- a/AtlasTest/DatabaseTest/AthenaPoolTestData/CMakeLists.txt +++ b/AtlasTest/DatabaseTest/AthenaPoolTestData/CMakeLists.txt @@ -1,18 +1,8 @@ -################################################################################ -# Package: AthenaPoolTestData -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaPoolTestData ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaKernel - Control/AthLinks - Control/AthContainers - GaudiKernel - InnerDetector/InDetRawEvent/InDetRawData ) - # External dependencies: find_package( CLHEP ) find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) diff --git a/AtlasTest/DatabaseTest/IOVDbTestAlg/CMakeLists.txt b/AtlasTest/DatabaseTest/IOVDbTestAlg/CMakeLists.txt index c15c4eadde7..e5c89134876 100644 --- a/AtlasTest/DatabaseTest/IOVDbTestAlg/CMakeLists.txt +++ b/AtlasTest/DatabaseTest/IOVDbTestAlg/CMakeLists.txt @@ -1,22 +1,8 @@ -################################################################################ -# Package: IOVDbTestAlg -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( IOVDbTestAlg ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - AtlasTest/DatabaseTest/IOVDbTestConditions - Control/AthenaBaseComps - Control/AthenaKernel - Control/StoreGate - GaudiKernel - PRIVATE - Database/AthenaPOOL/AthenaPoolUtilities - Database/RegistrationServices - Event/EventInfo ) - # External dependencies: find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) @@ -26,7 +12,7 @@ atlas_add_component( IOVDbTestAlg src/IOVDbTestCoolDCS.cxx src/IOVDbTestAlg_entries.cxx INCLUDE_DIRS ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${CORAL_LIBRARIES} IOVDbTestConditions AthenaBaseComps AthenaKernel StoreGateLib SGtests GaudiKernel AthenaPoolUtilities EventInfo RegistrationServicesLib ) + LINK_LIBRARIES ${CORAL_LIBRARIES} IOVDbTestConditions AthenaBaseComps AthenaKernel StoreGateLib GaudiKernel AthenaPoolUtilities RegistrationServicesLib ) # Install files from the package: atlas_install_joboptions( share/*.py ) @@ -46,7 +32,6 @@ function (iovdbtestalg_run_test testName jo) endif() endfunction (iovdbtestalg_run_test) - # Write out some simple objects and register them in IOVDb - COOL version: iovdbtestalg_run_test( IOVDbTestWriteCool IOVDbTestAlgWriteCool ) # Read back the object using IOVDb - COOL version: diff --git a/AtlasTest/DatabaseTest/IOVDbTestAthenaPool/CMakeLists.txt b/AtlasTest/DatabaseTest/IOVDbTestAthenaPool/CMakeLists.txt index a88fd759f00..afb51a7008d 100644 --- a/AtlasTest/DatabaseTest/IOVDbTestAthenaPool/CMakeLists.txt +++ b/AtlasTest/DatabaseTest/IOVDbTestAthenaPool/CMakeLists.txt @@ -1,22 +1,11 @@ -################################################################################ -# Package: IOVDbTestAthenaPool -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( IOVDbTestAthenaPool ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Database/AthenaPOOL/AthenaPoolUtilities - Database/AtlasSealCLHEP - PRIVATE - AtlasTest/DatabaseTest/IOVDbTestConditions - Database/AthenaPOOL/AthenaPoolCnvSvc ) - # Component(s) in the package: atlas_add_poolcnv_library( IOVDbTestAthenaPoolPoolCnv src/*.cxx FILES IOVDbTestConditions/IOVDbTestAmdbCorrection.h IOVDbTestConditions/IOVDbTestMDTEleMap.h IOVDbTestConditions/IOVDbTestMDTEleMapColl.h MULT_CHAN_TYPES IOVDbTestMDTEleMapColl - LINK_LIBRARIES AthenaPoolUtilities AtlasSealCLHEP IOVDbTestConditions AthenaPoolCnvSvcLib ) - + LINK_LIBRARIES AthenaPoolUtilities IOVDbTestConditions AthenaPoolCnvSvcLib ) diff --git a/AtlasTest/DatabaseTest/IOVDbTestConditions/CMakeLists.txt b/AtlasTest/DatabaseTest/IOVDbTestConditions/CMakeLists.txt index f27f17e594a..05f06a18d6c 100644 --- a/AtlasTest/DatabaseTest/IOVDbTestConditions/CMakeLists.txt +++ b/AtlasTest/DatabaseTest/IOVDbTestConditions/CMakeLists.txt @@ -1,18 +1,10 @@ -################################################################################ -# Package: IOVDbTestConditions -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( IOVDbTestConditions ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaKernel - Database/AthenaPOOL/AthenaPoolUtilities ) - # External dependencies: find_package( CLHEP ) -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) # Component(s) in the package: atlas_add_library( IOVDbTestConditions @@ -20,14 +12,10 @@ atlas_add_library( IOVDbTestConditions src/IOVDbTestMDTEleMap.cxx PUBLIC_HEADERS IOVDbTestConditions INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaKernel AthenaPoolUtilities - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ) + LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaKernel AthenaPoolUtilities ) atlas_add_dictionary( IOVDbTestConditionsDict IOVDbTestConditions/IOVDbTestConditionsDict.h IOVDbTestConditions/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel AthenaPoolUtilities IOVDbTestConditions ) - + LINK_LIBRARIES IOVDbTestConditions ) -- GitLab From 2a297c6d47aa9504e38e0cb0d717b9b75bc70cb3 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 17:40:41 +0200 Subject: [PATCH 279/459] Remove atlas_depends_on_subdir in cmake configuration --- AtlasTest/ControlTest/CMakeLists.txt | 20 +------------------- AtlasTest/GoogleTestTools/CMakeLists.txt | 18 ++---------------- AtlasTest/PyAthenaTests/CMakeLists.txt | 10 +--------- AtlasTest/TestTools/CMakeLists.txt | 9 +-------- 4 files changed, 5 insertions(+), 52 deletions(-) diff --git a/AtlasTest/ControlTest/CMakeLists.txt b/AtlasTest/ControlTest/CMakeLists.txt index 0e02c5462df..3ed03426383 100644 --- a/AtlasTest/ControlTest/CMakeLists.txt +++ b/AtlasTest/ControlTest/CMakeLists.txt @@ -1,26 +1,8 @@ -################################################################################ -# Package: ControlTest -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ControlTest ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - AtlasTest/TestTools - Control/AthenaExamples/AthExFortranAlgorithm - Control/AthenaExamples/AthExStoreGateExample - Control/AthenaPython - PRIVATE - Control/AthContainers - Control/AthLinks - Control/AthenaExamples/ToyConversion - Control/AthenaKernel - Control/SGTools - Control/StoreGate - GaudiKernel ) - # Helper variable(s): set( _jobOPath "${CMAKE_CURRENT_SOURCE_DIR}/share:${CMAKE_JOBOPT_OUTPUT_DIRECTORY}" ) diff --git a/AtlasTest/GoogleTestTools/CMakeLists.txt b/AtlasTest/GoogleTestTools/CMakeLists.txt index f67739b77ba..33da7bfd397 100644 --- a/AtlasTest/GoogleTestTools/CMakeLists.txt +++ b/AtlasTest/GoogleTestTools/CMakeLists.txt @@ -1,18 +1,9 @@ -# $Id: CMakeLists.txt 744649 2016-05-03 19:33:39Z krasznaa $ -################################################################################ -# Package: GoogleTestTools -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( GoogleTestTools ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/AthenaCommon - PRIVATE - GaudiKernel ) - +# External package dependencies: find_package( GMock ) # In standalone mode we just use the headers from the package. While in @@ -36,8 +27,3 @@ atlas_add_test( GoogleTestToolsTests SOURCES test/gt_GoogleTestTools.cxx INCLUDE_DIRS ${GMOCK_INCLUDE_DIRS} LINK_LIBRARIES ${GMOCK_LIBRARIES} GaudiKernel GoogleTestTools ) - -# Install files from the package: -# atlas_install_python_modules( python/*.py ) -# atlas_install_joboptions( share/*.py ) -# atlas_install_scripts( share/runUnitTests.sh share/post.sh ) diff --git a/AtlasTest/PyAthenaTests/CMakeLists.txt b/AtlasTest/PyAthenaTests/CMakeLists.txt index f03389e3b58..da55f3a3473 100644 --- a/AtlasTest/PyAthenaTests/CMakeLists.txt +++ b/AtlasTest/PyAthenaTests/CMakeLists.txt @@ -1,18 +1,10 @@ -################################################################################ -# Package: PyAthenaTests -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( PyAthenaTests ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaExamples/AthExThinning - Control/AthenaPython ) - # Install files from the package: atlas_install_python_modules( python/*.py ) atlas_install_joboptions( share/*.py ) atlas_install_runtime( test/*.ref ) atlas_install_scripts( test/*.py ) - diff --git a/AtlasTest/TestTools/CMakeLists.txt b/AtlasTest/TestTools/CMakeLists.txt index aae7a855606..e65e1bfc7b3 100644 --- a/AtlasTest/TestTools/CMakeLists.txt +++ b/AtlasTest/TestTools/CMakeLists.txt @@ -1,15 +1,8 @@ -################################################################################ -# Package: TestTools -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( TestTools ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PRIVATE - GaudiKernel ) - # In standalone mode we just use the headers from the package. While in # offline mode we build a proper library. if( XAOD_STANDALONE ) -- GitLab From 074d9d3a48d6d8f2d6daffaa686c7c1096e33912 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 17:53:11 +0200 Subject: [PATCH 280/459] TrigCostMonitor: cmake fix Add link dependency on ROOT's XML libraries. --- Trigger/TrigMonitoring/TrigCostMonitor/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigMonitoring/TrigCostMonitor/CMakeLists.txt b/Trigger/TrigMonitoring/TrigCostMonitor/CMakeLists.txt index 8316f55af58..ca2f03988a2 100644 --- a/Trigger/TrigMonitoring/TrigCostMonitor/CMakeLists.txt +++ b/Trigger/TrigMonitoring/TrigCostMonitor/CMakeLists.txt @@ -6,7 +6,7 @@ atlas_subdir( TrigCostMonitor ) # External dependencies: find_package( COOL COMPONENTS CoolKernel CoolApplication ) find_package( CORAL COMPONENTS CoralBase CoralKernel ) -find_package( ROOT COMPONENTS Core Tree ) +find_package( ROOT COMPONENTS Core Tree XMLIO XMLParser ) find_package( tdaq-common COMPONENTS CTPfragment ) # Component(s) in the package: -- GitLab From 9406a2cb3ab8ce608ce95886356b29820898b97d Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 17:57:51 +0200 Subject: [PATCH 281/459] AFP_Monitoring: cmake fixes - do not install headers (not used outside this package) - update link dependencies - remove atlas_depends_on_subdirs --- .../AFP/AFP_Monitoring/CMakeLists.txt | 25 +++---------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/ForwardDetectors/AFP/AFP_Monitoring/CMakeLists.txt b/ForwardDetectors/AFP/AFP_Monitoring/CMakeLists.txt index 4547f9c73a4..997328fabc6 100644 --- a/ForwardDetectors/AFP/AFP_Monitoring/CMakeLists.txt +++ b/ForwardDetectors/AFP/AFP_Monitoring/CMakeLists.txt @@ -1,33 +1,16 @@ -# $Id: CMakeLists.txt 766963 2016-08-08 20:07:09Z ggach $ -################################################################################ -# Package: AFP_Monitoring -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AFP_Monitoring ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaMonitoring - Event/xAOD/xAODForward - ForwardDetectors/AFP/AFP_RawEv - PRIVATE - Tools/LWHists - Event/xAOD/xAODEventInfo - ) - # External dependencies: - -find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) - +find_package( ROOT COMPONENTS Hist ) # Component(s) in the package: atlas_add_component( AFP_Monitoring src/*.cxx src/components/*.cxx - PUBLIC_HEADERS AFP_Monitoring - INCLUDE_DIRS ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES AthenaMonitoringLib LWHists xAODForward xAODEventInfo AFP_RawEv) + LINK_LIBRARIES ${ROOT_LIBRARIES} AFP_RawEv AthenaBaseComps AthenaMonitoringLib GaudiKernel LWHists LumiBlockCompsLib xAODEventInfo xAODForward ) -atlas_install_headers( AFP_Monitoring ) +# Install files from the package: atlas_install_joboptions( share/*.py ) -- GitLab From 6bf6d1665adfb734941fa85d2b3d214efa28e66d Mon Sep 17 00:00:00 2001 From: Savanna Marie Shaw <savanna.marie.shaw@cern.ch> Date: Tue, 28 Jul 2020 18:08:06 +0200 Subject: [PATCH 282/459] Fix muon view data verifier in trigger new JO test Removing some data from the view data verifier because it is produced by algorithms already running in the view. --- .../TriggerTest/test/test_trig_data_newJO_build.py | 6 ++++-- .../TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py | 6 ------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_newJO_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_newJO_build.py index 0b927d288a0..8953371ba4e 100755 --- a/Trigger/TrigValidation/TriggerTest/test/test_trig_data_newJO_build.py +++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_data_newJO_build.py @@ -6,7 +6,7 @@ # Skipping art-output which has no effect for build tests. # If you create a grid version, check art-output in existing grid tests. -from TrigValTools.TrigValSteering import Test, Step, ExecStep #, CheckSteps +from TrigValTools.TrigValSteering import Test, Step, ExecStep, CheckSteps # Copy the job options to the working directory copy_jo = ExecStep.ExecStep('CopyJO') @@ -39,7 +39,9 @@ test.art_type = 'build' #test.exec_steps = [copy_jo, pickle, run_athena] #test.check_steps = CheckSteps.default_check_steps(test) test.exec_steps = [copy_jo, pickle] -test.check_steps = [] +check_log = CheckSteps.CheckLogStep('CheckLog') +check_log.log_file = pickle.get_log_file_name() +test.check_steps = [check_log] # Change RegTest pattern #regtest = test.get_step('RegTest') diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py index 9434ac72914..e3b0f409302 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py @@ -35,17 +35,11 @@ def MuFastViewDataVerifier(): alg = CompFactory.AthViews.ViewDataVerifier( name = "VDVMuFast", DataObjects = [( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ), ( 'RpcPad_Cache' , 'StoreGateSvc+RpcRdoCache' ), - ( 'RpcPadContainer' , 'StoreGateSvc+RPCPAD' ), ( 'RpcCoinDataCollection_Cache' , 'StoreGateSvc+RpcCoinCache' ), ( 'RpcPrepDataCollection_Cache' , 'StoreGateSvc+RpcPrdCache' ), ( 'TgcRdo_Cache' , 'StoreGateSvc+TgcRdoCache' ), - ( 'TgcRdoContainer' , 'StoreGateSvc+TGCRDO' ), ( 'MdtCsm_Cache' , 'StoreGateSvc+MdtCsmRdoCache' ), - ( 'MdtCsmContainer' , 'StoreGateSvc+MDTCSM' ), ( 'CscRawDataCollection_Cache' , 'StoreGateSvc+CscRdoCache' ), - ( 'CscRawDataContainer' , 'StoreGateSvc+CSCRDO' ), - ( 'Muon::CscStripPrepDataContainer' , 'StoreGateSvc+CSC_Measurements' ), - ( 'Muon::MdtPrepDataContainer' , 'StoreGateSvc+MDT_DriftCircles' ), ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+L2MuFastRecoRoIs' ), ( 'DataVector< LVL1::RecMuonRoI >' , 'StoreGateSvc+HLT_RecMURoIs' ) ] ) -- GitLab From 034517c6d5f3fdd8efebb6a3b8d0c2feb7a300a1 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi <andrii.verbytskyi@cern.ch> Date: Tue, 28 Jul 2020 17:19:44 +0000 Subject: [PATCH 283/459] Migrate Pythia8, HepMCanalysis, MCTester to HepMC3 in last LCG --- Generators/HepMCAnalysis_i/CMakeLists.txt | 8 ++++++++ .../src/PrepareHepMCAnalysisGenEvent.cxx | 15 +++++++++++++++ Generators/MCTester_i/CMakeLists.txt | 13 +++++++++++-- Generators/MCTester_i/MCTester_i/MCTesterAlg.h | 6 ++++++ Generators/Pythia8_i/CMakeLists.txt | 10 +++++++--- Generators/Pythia8_i/Pythia8_i/Pythia8_i.h | 2 +- 6 files changed, 48 insertions(+), 6 deletions(-) diff --git a/Generators/HepMCAnalysis_i/CMakeLists.txt b/Generators/HepMCAnalysis_i/CMakeLists.txt index abbed775bb5..b970fb62fa6 100644 --- a/Generators/HepMCAnalysis_i/CMakeLists.txt +++ b/Generators/HepMCAnalysis_i/CMakeLists.txt @@ -24,6 +24,13 @@ find_package( HepMCAnalysis ) find_package( ROOT COMPONENTS Core MathCore Hist RIO ) find_package( FastJet ) find_package( HepMC ) +if (HEPMC3_USE) +set( HEPMC_HepMCAnalysis_INTERFACE_DIR ${HEPMC3_INCLUDE_DIR}/../share/HepMC3/interfaces/HepMCCompatibility/include ) +else() +set( HEPMC_HepMCAnalysis_INTERFACE_DIR ) +endif() + + # Component(s) in the package: atlas_add_component( HepMCAnalysis_i @@ -32,6 +39,7 @@ atlas_add_component( HepMCAnalysis_i ${HEPUTILS_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${FASTJET_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} + ${HEPMC_HepMCAnalysis_INTERFACE_DIR} LINK_LIBRARIES ${ROOT_LIBRARIES} ${HEPMCANALYSIS_LIBRARIES} ${HEPUTILS_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib ${FASTJET_LIBRARIES} AthenaBaseComps GaudiKernel StoreGateLib EventInfo diff --git a/Generators/HepMCAnalysis_i/src/PrepareHepMCAnalysisGenEvent.cxx b/Generators/HepMCAnalysis_i/src/PrepareHepMCAnalysisGenEvent.cxx index 63f688bb128..f1d257a78dd 100644 --- a/Generators/HepMCAnalysis_i/src/PrepareHepMCAnalysisGenEvent.cxx +++ b/Generators/HepMCAnalysis_i/src/PrepareHepMCAnalysisGenEvent.cxx @@ -8,6 +8,20 @@ #include <vector> #include "HepMC/GenEvent.h" //This tricky convention is needed for usage with HepMC3. +#ifdef HEPMC3 +#include "HepMC3/GenEvent.h" +#include "HepMCCompatibility.h" +HepMC::GenEvent* PrepareHepMCAnalysisGenEvent(const HepMC3::GenEvent* cevent) +{ +HepMC::GenEvent* event = ConvertHepMCGenEvent_3to2(*cevent); + for (auto p = event->particles_begin(); p != event->particles_end(); ++p) { + auto fv=(*p)->momentum(); + fv.set(fv.x()*0.001,fv.y()*0.001,fv.z()*0.001,fv.e()*0.001); + (*p)->set_momentum(fv); + } + return event; +} +#else using HepMCAnalysisGenEvent=HepMC::GenEvent; HepMC::GenEvent* PrepareHepMCAnalysisGenEvent(const HepMC::GenEvent* cevent) { @@ -20,3 +34,4 @@ HepMC::GenEvent* event = new HepMC::GenEvent(*cevent); } return event; } +#endif diff --git a/Generators/MCTester_i/CMakeLists.txt b/Generators/MCTester_i/CMakeLists.txt index fa681d6d06c..4df0bcb72e4 100644 --- a/Generators/MCTester_i/CMakeLists.txt +++ b/Generators/MCTester_i/CMakeLists.txt @@ -18,12 +18,21 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( MCTester ) find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread MathMore Minuit Minuit2 Matrix Physics HistPainter Rint Graf Graf3d Gpad Html Postscript Gui GX11TTF GX11 ) +if (HEPMC3_USE) +set( MCTester_sources src/MCTesterAlg.cxx + ${HEPMC3_INCLUDE_DIR}/../share/HepMC3/interfaces/mc-tester/src/HepMC3Particle.cxx + ${HEPMC3_INCLUDE_DIR}/../share/HepMC3/interfaces/mc-tester/src/HepMC3Event.cxx) +set( HEPMC_MCTester_INTERFACE_DIR ${HEPMC3_INCLUDE_DIR}/../share/HepMC3/interfaces/mc-tester/include) +else() +set( MCTester_sources src/MCTesterAlg.cxx) +set( HEPMC_MCTester_INTERFACE_DIR ${MCTESTER_INCLUDE_DIRS}) +endif() # Component(s) in the package: atlas_add_component( MCTester_i - src/*.cxx + ${MCTester_sources} src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${MCTESTER_INCLUDE_DIRS} + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${MCTESTER_INCLUDE_DIRS} ${HEPMC_MCTester_INTERFACE_DIR} LINK_LIBRARIES ${ROOT_LIBRARIES} ${MCTESTER_LIBRARIES} AtlasHepMCLib AthenaBaseComps GaudiKernel StoreGateLib SGtests EventInfo GeneratorObjects ) # Install files from the package: diff --git a/Generators/MCTester_i/MCTester_i/MCTesterAlg.h b/Generators/MCTester_i/MCTester_i/MCTesterAlg.h index 50a5ef1bdd6..07d17074e77 100644 --- a/Generators/MCTester_i/MCTester_i/MCTesterAlg.h +++ b/Generators/MCTester_i/MCTester_i/MCTesterAlg.h @@ -10,7 +10,13 @@ #include "AthenaBaseComps/AthAlgorithm.h" //external MC-TESTER headers +#ifdef HEPMC3 +#include "HepMC3Event.h" +using HepMCEvent=HepMC3Event; +using HepMCParticle=HepMC3Particle; +#else #include "HepMCEvent.H" +#endif #include "Generate.h" #include "Setup.H" diff --git a/Generators/Pythia8_i/CMakeLists.txt b/Generators/Pythia8_i/CMakeLists.txt index f192a8c97b0..23528794ad7 100644 --- a/Generators/Pythia8_i/CMakeLists.txt +++ b/Generators/Pythia8_i/CMakeLists.txt @@ -26,7 +26,11 @@ add_definitions(-DPY8INCLUDE_DIR=\"${PYTHIA8_INCLUDE_DIR}\") # Remove the --as-needed linker flags: atlas_disable_as_needed() - +if (HEPMC3_USE) +set( HEPMC_PYTHIA8_INTERFACE_DIR ${HEPMC3_INCLUDE_DIR}/../share/HepMC3/interfaces/pythia8/include/Pythia8) +else() +set( HEPMC_PYTHIA8_INTERFACE_DIR ${PYTHIA8_INCLUDE_DIRS}) +endif() # Component(s) in the package: atlas_add_library( Pythia8_iLib src/Pythia8_i.cxx @@ -55,14 +59,14 @@ atlas_add_library( Pythia8_iLib src/UserResonances/ResonanceExcitedCI.cxx src/UserResonances/ResonanceLQ.cxx PUBLIC_HEADERS Pythia8_i - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${PYTHIA8_INCLUDE_DIRS} + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${PYTHIA8_INCLUDE_DIRS} ${HEPMC_PYTHIA8_INTERFACE_DIR} DEFINITIONS ${CLHEP_DEFINITIONS} LINK_LIBRARIES ${Boost_LIBRARIES} ${LHAPDF_LIBRARIES} ${CLHEP_LIBRARIES} ${PYTHIA8_LIBRARIES} AthenaKernel GeneratorModulesLib PRIVATE_LINK_LIBRARIES GaudiKernel GeneratorObjects PathResolver ) atlas_add_component( Pythia8_i src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${PYTHIA8_INCLUDE_DIRS} + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${LHAPDF_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${PYTHIA8_INCLUDE_DIRS} ${HEPMC_PYTHIA8_INTERFACE_DIR} LINK_LIBRARIES ${Boost_LIBRARIES} ${LHAPDF_LIBRARIES} ${CLHEP_LIBRARIES} ${PYTHIA8_LIBRARIES} AthenaKernel GeneratorModulesLib GaudiKernel GeneratorObjects PathResolver Pythia8_iLib ) # Install files from the package: diff --git a/Generators/Pythia8_i/Pythia8_i/Pythia8_i.h b/Generators/Pythia8_i/Pythia8_i/Pythia8_i.h index 742ad9c74e9..a5f8ac5c417 100644 --- a/Generators/Pythia8_i/Pythia8_i/Pythia8_i.h +++ b/Generators/Pythia8_i/Pythia8_i/Pythia8_i.h @@ -10,7 +10,7 @@ #include "Pythia8/Pythia.h" //#include "Pythia8/../Pythia8Plugins/HepMC2.h" #ifdef HEPMC3 -#include "AtlasHepMC/Pythia8ToHepMC3.h" +#include "Pythia8ToHepMC3.h" namespace HepMC { typedef HepMC3::Pythia8ToHepMC3 Pythia8ToHepMC; } -- GitLab From 7533058d9e09ea6055aac1c99fd5dc80a5dd5e54 Mon Sep 17 00:00:00 2001 From: Nicolas Koehler <nicolas.koehler@cern.ch> Date: Tue, 28 Jul 2020 17:25:19 +0000 Subject: [PATCH 284/459] Fix thread-safety warnings in MuonRefitTool --- .../src/MuonChamberHoleRecoveryTool.cxx | 39 +-- .../src/MuonChamberHoleRecoveryTool.h | 54 ++-- .../src/MuonErrorOptimisationTool.cxx | 9 +- .../src/MuonErrorOptimisationTool.h | 18 +- .../src/MuonRefitTool.cxx | 251 ++++-------------- .../MuonTrackFinderTools/src/MuonRefitTool.h | 162 +++++------ .../src/MuonSeededSegmentFinder.cxx | 3 - .../src/MuonSeededSegmentFinder.h | 4 +- .../src/MuonSegmentRegionRecoveryTool.cxx | 2 - .../src/MuonTrackExtrapolationTool.cxx | 19 +- .../src/MuonTrackExtrapolationTool.h | 21 +- .../src/MuonTrackScoringTool.cxx | 27 +- .../src/MuonTrackScoringTool.h | 24 +- .../src/MuonTrackSelectorTool.cxx | 8 +- .../src/MuonTrackSelectorTool.h | 9 +- .../src/MuonTrackToSegmentTool.cxx | 18 +- .../src/MuonTrackToSegmentTool.h | 7 +- 17 files changed, 187 insertions(+), 488 deletions(-) diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonChamberHoleRecoveryTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonChamberHoleRecoveryTool.cxx index 5fe1fe550e5..270031fe0f6 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonChamberHoleRecoveryTool.cxx +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonChamberHoleRecoveryTool.cxx @@ -8,9 +8,6 @@ #include "MuonTrackMakerUtils/SortMeasurementsByPosition.h" #include "MuonTrackMakerUtils/MuonTSOSHelper.h" -#include "MuonStationIntersectSvc/MuonStationIntersectSvc.h" -#include "MuonStationIntersectSvc/MuonStationIntersect.h" - #include "MuonReadoutGeometry/MdtReadoutElement.h" #include "MuonReadoutGeometry/MuonDetectorManager.h" @@ -18,7 +15,6 @@ #include "MuonRIO_OnTrack/CscClusterOnTrack.h" #include "MuonRIO_OnTrack/RpcClusterOnTrack.h" #include "MuonRIO_OnTrack/TgcClusterOnTrack.h" -// New Small Wheel #include "MuonRIO_OnTrack/sTgcClusterOnTrack.h" #include "MuonRIO_OnTrack/MMClusterOnTrack.h" @@ -36,44 +32,17 @@ #include "EventPrimitives/EventPrimitivesHelpers.h" #include "GeoPrimitives/GeoPrimitivesToStringConverter.h" -#include "StoreGate/StoreGateSvc.h" - #include <map> namespace Muon { MuonChamberHoleRecoveryTool::MuonChamberHoleRecoveryTool(const std::string& ty,const std::string& na,const IInterface* pa) - : AthAlgTool(ty,na,pa), - m_intersectSvc("MuonStationIntersectSvc",name()), - m_extrapolator("Trk::Extrapolator/MuonExtrapolator"), - m_mdtRotCreator("Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator"), - m_cscRotCreator("Muon::CscClusterOnTrackCreator/CscClusterOnTrackCreator", this), - m_clusRotCreator("Muon::MuonClusterOnTrackCreator/MuonClusterOnTrackCreator"), - m_pullCalculator("Trk::ResidualPullCalculator/ResidualPullCalculator"), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool") + : AthAlgTool(ty,na,pa) { declareInterface<IMuonHoleRecoveryTool>(this); declareInterface<MuonChamberHoleRecoveryTool>(this); - - declareProperty("MuonStationIntersectSvc", m_intersectSvc); - declareProperty("Extrapolator", m_extrapolator); - declareProperty("MdtRotCreator", m_mdtRotCreator); - declareProperty("CscRotCreator", m_cscRotCreator); - declareProperty("ClusterRotCreator", m_clusRotCreator); - declareProperty("PullCalculator", m_pullCalculator); - declareProperty("EDMPrinter", m_printer); - - declareProperty("AddMeasurements", m_addMeasurements = true); - declareProperty("AssociationPullCutEta", m_associationPullCutEta = 3. ); - declareProperty("AssociationPullCutPhi", m_associationPullCutPhi = 10. ); - declareProperty("DetectBadSorting", m_detectBadSort = false ); - declareProperty("AdcCut", m_adcCut = 50 ); } - - MuonChamberHoleRecoveryTool::~MuonChamberHoleRecoveryTool() {} - - StatusCode MuonChamberHoleRecoveryTool::initialize() { @@ -105,11 +74,7 @@ namespace Muon { return StatusCode::SUCCESS; } - StatusCode MuonChamberHoleRecoveryTool::finalize() - { - return StatusCode::SUCCESS; - } - + Trk::Track* MuonChamberHoleRecoveryTool::recover( const Trk::Track& track ) const { // call actual recovery routine diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonChamberHoleRecoveryTool.h b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonChamberHoleRecoveryTool.h index 9c87104514e..6bc3e84a13d 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonChamberHoleRecoveryTool.h +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonChamberHoleRecoveryTool.h @@ -5,26 +5,25 @@ #ifndef MUON_MUONCHAMBERHOLERECOVERYTOOL_H #define MUON_MUONCHAMBERHOLERECOVERYTOOL_H +#include "MuonRecToolInterfaces/IMuonHoleRecoveryTool.h" #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ServiceHandle.h" #include "GaudiKernel/ToolHandle.h" + #include "TrkParameters/TrackParameters.h" #include "TrkToolInterfaces/ITrackSelectorTool.h" #include "MuonRecHelperTools/IMuonEDMHelperSvc.h" - #include "MuonIdHelpers/IMuonIdHelperSvc.h" -#include "MuonRecToolInterfaces/IMuonHoleRecoveryTool.h" #include "TrkToolInterfaces/IResidualPullCalculator.h" #include "TrkExInterfaces/IExtrapolator.h" #include "MuonRecToolInterfaces/IMdtDriftCircleOnTrackCreator.h" #include "MuonRecToolInterfaces/IMuonClusterOnTrackCreator.h" #include "MuonRecHelperTools/MuonEDMPrinterTool.h" - #include "MuonCondData/MdtCondDbData.h" #include "TrkTrack/Track.h" - #include "MuonPrepRawData/MuonPrepDataContainer.h" #include "MuonReadoutGeometry/MuonDetectorManager.h" +#include "MuonStationIntersectSvc/MuonStationIntersectSvc.h" #include <string> #include <set> @@ -32,15 +31,8 @@ static const InterfaceID IID_MuonChamberHoleRecoveryTool("Muon::MuonChamberHoleRecoveryTool",1,0); -class MsgStream; -class StoreGateSvc; - -class MdtCondDbData; -class MuonStationIntersectSvc; - namespace Trk { class Track; - class MagneticFieldProperties; } namespace Muon { @@ -56,17 +48,10 @@ namespace Muon { typedef std::vector< std::pair<int,int> > LayerHoleVec; public: - /** @brief constructor */ MuonChamberHoleRecoveryTool(const std::string&,const std::string&,const IInterface*); - - /** @brief destructor */ - virtual ~MuonChamberHoleRecoveryTool (); + virtual ~MuonChamberHoleRecoveryTool()=default; - /** @brief AlgTool initialize */ StatusCode initialize(); - - /** @brief AlgTool finalize */ - StatusCode finalize(); /** @brief access to tool interface */ static const InterfaceID& interfaceID() { return IID_MuonChamberHoleRecoveryTool; } @@ -161,23 +146,20 @@ namespace Muon { const CscPrepDataCollection* findCscPrdCollection( const Identifier& detElId ) const; const TgcPrepDataCollection* findTgcPrdCollection( const Identifier& detElId ) const; const RpcPrepDataCollection* findRpcPrdCollection( const Identifier& detElId ) const; - // New Small Wheel const sTgcPrepDataCollection* findStgcPrdCollection( const Identifier& detElId ) const; const MMPrepDataCollection* findMmPrdCollection( const Identifier& detElId ) const; - ServiceHandle<MuonStationIntersectSvc> m_intersectSvc; //<! pointer to hole search service - ToolHandle<Trk::IExtrapolator> m_extrapolator; //!< extrapolator - ToolHandle<Muon::IMdtDriftCircleOnTrackCreator> m_mdtRotCreator; //!< IMdtDriftCircleOnTrackCreator full calibration - ToolHandle<Muon::IMuonClusterOnTrackCreator> m_cscRotCreator; //!< IMuonClusterOnTrackCreator for cscs - ToolHandle<Muon::IMuonClusterOnTrackCreator> m_clusRotCreator; //!< IMuonClusterOnTrackCreator for trigger hits - - ToolHandle<Trk::IResidualPullCalculator> m_pullCalculator; //!< residual pull calculator + ServiceHandle<MuonStationIntersectSvc> m_intersectSvc {this, "MuonStationIntersectSvc", "MuonStationIntersectSvc", "pointer to hole search service"}; ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; - ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", - "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", - "Handle to the service providing the IMuonEDMHelperSvc interface" }; //!< EDM Helper tool - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; //!< EDM printer tool + ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", "Handle to the service providing the IMuonEDMHelperSvc interface" }; + + ToolHandle<Muon::MuonEDMPrinterTool> m_printer {this, "EDMPrinter", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"}; + ToolHandle<Trk::IExtrapolator> m_extrapolator {this, "Extrapolator", "Trk::Extrapolator/MuonExtrapolator"}; + ToolHandle<Muon::IMdtDriftCircleOnTrackCreator> m_mdtRotCreator {this, "MdtRotCreator", "Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator", "IMdtDriftCircleOnTrackCreator full calibration"}; + ToolHandle<Muon::IMuonClusterOnTrackCreator> m_cscRotCreator {this, "CscRotCreator", "Muon::CscClusterOnTrackCreator/CscClusterOnTrackCreator", "IMuonClusterOnTrackCreator for cscs"}; + ToolHandle<Muon::IMuonClusterOnTrackCreator> m_clusRotCreator {this, "ClusterRotCreator", "Muon::MuonClusterOnTrackCreator/MuonClusterOnTrackCreator", "IMuonClusterOnTrackCreator for trigger hits"}; + ToolHandle<Trk::IResidualPullCalculator> m_pullCalculator {this, "PullCalculator", "Trk::ResidualPullCalculator/ResidualPullCalculator"}; SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> m_DetectorManagerKey {this, "DetectorManagerKey", "MuonDetectorManager", @@ -191,12 +173,12 @@ namespace Muon { SG::ReadHandleKey<Muon::MMPrepDataContainer> m_key_mm{this,"MMPrepDataContainer","MM_Measurements","MM PRDs"}; SG::ReadCondHandleKey<MdtCondDbData> m_condKey{this, "MdtCondKey", "MdtCondDbData", "Key of MdtCondDbData"}; - bool m_addMeasurements; - double m_associationPullCutEta; - double m_associationPullCutPhi; - bool m_detectBadSort; + Gaudi::Property<bool> m_addMeasurements {this, "AddMeasurements", true}; + Gaudi::Property<bool> m_detectBadSort {this, "DetectBadSorting", false}; - double m_adcCut; + Gaudi::Property<double> m_associationPullCutEta {this, "AssociationPullCutEta", 3}; + Gaudi::Property<double> m_associationPullCutPhi {this, "AssociationPullCutPhi", 10}; + Gaudi::Property<double> m_adcCut {this, "AdcCut", 50}; }; } diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonErrorOptimisationTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonErrorOptimisationTool.cxx index 76c9d27b78e..100e3a5bb43 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonErrorOptimisationTool.cxx +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonErrorOptimisationTool.cxx @@ -15,15 +15,8 @@ namespace Muon { MuonErrorOptimisationTool::MuonErrorOptimisationTool( const std::string& ty,const std::string& na,const IInterface* pa) : - AthAlgTool(ty,na,pa), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"), - m_trackSummaryTool("Muon::MuonTrackSummaryHelperTool/MuonTrackSummaryHelperTool"), - m_refitTool("Muon::MuonRefitTool/MuonRefitTool") + AthAlgTool(ty,na,pa) { - declareProperty("Printer", m_printer ); - declareProperty("TrackSummaryTool", m_trackSummaryTool ); - declareProperty("RefitTool",m_refitTool ); - declareProperty("PrepareForFit", m_refitSettings.prepareForFit = true ); declareProperty("RecreateStartingParameters",m_refitSettings.recreateStartingParameters = true ); declareProperty("UpdateErrors", m_refitSettings.updateErrors = true ); diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonErrorOptimisationTool.h b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonErrorOptimisationTool.h index 134a2aa1956..e144fa27f12 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonErrorOptimisationTool.h +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonErrorOptimisationTool.h @@ -5,10 +5,11 @@ #ifndef MUONERROROPTIMISATIONTOOL_H #define MUONERROROPTIMISATIONTOOL_H +#include "MuonRecToolInterfaces/IMuonErrorOptimisationTool.h" #include "AthenaBaseComps/AthAlgTool.h" -#include "GaudiKernel/ToolHandle.h" #include "GaudiKernel/ServiceHandle.h" -#include "MuonRecToolInterfaces/IMuonErrorOptimisationTool.h" +#include "GaudiKernel/ToolHandle.h" + #include "MuonRecHelperTools/MuonEDMPrinterTool.h" #include "MuonRecHelperTools/IMuonEDMHelperSvc.h" #include "MuonRecToolInterfaces/IMuonRefitTool.h" @@ -31,15 +32,12 @@ namespace Muon { /** optimise the error strategy used for the track */ virtual Trk::Track* optimiseErrors( Trk::Track& track ) const override; - protected: - + private: + ServiceHandle<IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", "Handle to the service providing the IMuonEDMHelperSvc interface" }; - ToolHandle<MuonEDMPrinterTool> m_printer; //<! helper to nicely print out tracks - ServiceHandle<IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", - "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", - "Handle to the service providing the IMuonEDMHelperSvc interface" }; //<! muon EDM helper - ToolHandle<Trk::ITrackSummaryHelperTool> m_trackSummaryTool; //<! muon id helper - ToolHandle<IMuonRefitTool> m_refitTool; + ToolHandle<MuonEDMPrinterTool> m_printer {this, "EDMPrinter", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool", "helper to nicely print out tracks"}; + ToolHandle<Trk::ITrackSummaryHelperTool> m_trackSummaryTool {this, "TrackSummaryTool", "Muon::MuonTrackSummaryHelperTool/MuonTrackSummaryHelperTool"}; + ToolHandle<IMuonRefitTool> m_refitTool {this, "RefitTool", "Muon::MuonRefitTool/MuonRefitTool"}; Gaudi::Property<double> m_chi2NdofCutRefit {this, "Chi2NDofCutRefit", 5.}; Gaudi::Property<double> m_lowPtThreshold {this, "LowPtThreshold", 5000.}; diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonRefitTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonRefitTool.cxx index 2dfde4fe0f9..b8a0c7e8d8b 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonRefitTool.cxx +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonRefitTool.cxx @@ -2,14 +2,8 @@ Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// STL includes -#include <algorithm> -#include <iostream> - -// FrameWork includes -#include "AthenaKernel/errorcheck.h" +#include "MuonRefitTool.h" -//Collections #include "TrkMeasurementBase/MeasurementBase.h" #include "TrkEventPrimitives/LocalDirection.h" #include "TrkParameters/TrackParameters.h" @@ -19,47 +13,21 @@ #include "TrkSurfaces/PlaneSurface.h" #include "TrkSurfaces/Surface.h" #include "TrkTrack/AlignmentEffectsOnTrack.h" -//Actual Class -#include "MuonRefitTool.h" - #include "MuonReadoutGeometry/MdtReadoutElement.h" -#include "MuonSegmentMakerInterfaces/IDCSLFitProvider.h" - - -#include "MuonRecHelperTools/MuonEDMPrinterTool.h" -#include "MuonRecToolInterfaces/IMuonTrackExtrapolationTool.h" -#include "MuonRecToolInterfaces/IMdtDriftCircleOnTrackCreator.h" -#include "MuonRecToolInterfaces/IMuonCompetingClustersOnTrackCreator.h" -#include "TrkFitterInterfaces/ITrackFitter.h" -#include "TrkExInterfaces/IExtrapolator.h" #include "MuonRIO_OnTrack/MdtDriftCircleOnTrack.h" #include "TrkPseudoMeasurementOnTrack/PseudoMeasurementOnTrack.h" - #include "MuonSegmentMakerUtils/MuonSegmentKey.h" #include "MuonSegmentMakerUtils/CompareMuonSegmentKeys.h" #include "MuonTrackMakerUtils/MuonTSOSHelper.h" - #include "EventPrimitives/EventPrimitives.h" #include "EventPrimitives/EventPrimitivesHelpers.h" - #include "MuonAlignErrorBase/AlignmentTranslationDeviation.h" #include "MuonAlignErrorBase/AlignmentRotationDeviation.h" -#include "TrkToolInterfaces/ITrkAlignmentDeviationTool.h" - namespace Muon { - MuonRefitTool::MuonRefitTool( const std::string& ty,const std::string& na,const IInterface* pa) : + MuonRefitTool::MuonRefitTool(const std::string& ty, const std::string& na, const IInterface* pa) : AthAlgTool(ty,na,pa), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"), - m_alignErrorTool("MuonAlign::AlignmentErrorTool"), - m_trackFitter("Trk::GlobalChi2Fitter/MCTBFitterMaterialFromTrack"), - m_extrapolator("Trk::Extrapolator/AtlasExtrapolator"), - m_muonExtrapolator("Trk::Extrapolator/MuonExtrapolator"), - m_mdtRotCreator("Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator"), - m_compClusterCreator("Muon::TriggerChamberClusterOnTrackCreator/TriggerChamberClusterOnTrackCreator"), - m_t0Fitter(""), - m_muonEntryTrackExtrapolator("Muon::MuonTrackExtrapolationTool/MuonTrackExtrapolationTool"), m_errorStrategyBEE(MuonDriftCircleErrorStrategyInput()), m_errorStrategyEE(MuonDriftCircleErrorStrategyInput()), m_errorStrategyBIS78(MuonDriftCircleErrorStrategyInput()), @@ -70,67 +38,14 @@ namespace Muon { m_errorStrategyTwoStations(MuonDriftCircleErrorStrategyInput()), m_errorStrategy(MuonDriftCircleErrorStrategyInput()), m_muonErrorStrategy(MuonDriftCircleErrorStrategyInput()), - m_finder(5.,3.,false), - m_finderCleaning(5.,3.,false), m_nrefits(0), m_ngoodRefits(0), - m_failedErrorUpdateOutlierRemoval(0), m_failedOutlierRemoval(0), m_failedErrorUpdate(0), m_failedRefit(0), - m_failedExtrapolationMuonEntry(0), - m_nbackExtrapolations(0), - m_ngoodBackExtrapolations(0), - m_failedExtrapolationIP(0), - m_nupdates(0), - m_ngoodUpdates(0), - m_failedUpdates(0), - m_alignmentDelta(0.), - m_alignmentAngle(0.), - m_alignmentDeltaError(0.1), - m_alignmentAngleError(0.001), - m_alignmentErrors(false), - m_simpleAEOTs(false), - m_addAll(false), - m_addInner(false), - m_addMiddle(true), - m_addTwo(false) + m_failedExtrapolationMuonEntry(0) { declareInterface<IMuonRefitTool>(this); - declareProperty("FinderDebugLevel",m_finderDebugLevel = -1 ); - declareProperty("Fitter",m_trackFitter); - declareProperty("T0Fitter",m_t0Fitter); - declareProperty("MinMuonMom",m_minMuonMomentum = 4000.); - declareProperty("UsedFixedError",m_fixedError = 1. ); - declareProperty("FlagT0FitRange",m_flagT0FitRange = 0.00005 ); - declareProperty("Printer", m_printer ); - declareProperty("AlignmentErrorTool", m_alignErrorTool); - declareProperty("Extrapolator", m_extrapolator ); - declareProperty("MuonExtrapolator", m_muonExtrapolator ); - declareProperty("MuonEntryExtrapolationTool", m_muonEntryTrackExtrapolator ); - declareProperty("MdtRotCreator",m_mdtRotCreator); - declareProperty("DeweightBEE", m_deweightBEE = false ); - declareProperty("DeweightEE", m_deweightEE = false ); - declareProperty("DeweightBIS78", m_deweightBIS78 = true ); - declareProperty("DeweightBME", m_deweightBME = true ); - declareProperty("DeweightBOE", m_deweightBOE = true ); - declareProperty("DeweightEEL1C05", m_deweightEEL1C05 = false ); - declareProperty("DeweightTwoStationTracks", m_deweightTwoStationTracks = false ); - declareProperty("AlignmentDelta", m_alignmentDelta = 0.); - declareProperty("AlignmentAngle", m_alignmentAngle = 0.); - declareProperty("AlignmentDeltaError", m_alignmentDeltaError = 0.1); - declareProperty("AlignmentAngleError", m_alignmentAngleError = 0.001); - declareProperty("AlignmentErrors", m_alignmentErrors = false); - declareProperty("SimpleAEOTs", m_simpleAEOTs = false); - declareProperty("AddAll", m_addAll = false); - declareProperty("AddInner", m_addInner = false); - declareProperty("AddMiddle", m_addMiddle = false); - declareProperty("AddTwo", m_addTwo = false); - } - - MuonRefitTool::~MuonRefitTool() - { - } StatusCode MuonRefitTool::initialize() @@ -154,13 +69,8 @@ namespace Muon { if( !m_t0Fitter.empty() ){ ATH_CHECK( m_t0Fitter.retrieve() ); ATH_MSG_INFO("Retrieved " << m_t0Fitter ); - m_finder.setFitter(m_t0Fitter->getFitter()); } - m_finder.debugLevel(m_finderDebugLevel); - m_finder.setRecoverMDT(false); - m_finderCleaning.debugLevel(m_finderDebugLevel); - ATH_CHECK( m_muonEntryTrackExtrapolator.retrieve() ); MuonDriftCircleErrorStrategyInput bits; @@ -216,47 +126,30 @@ namespace Muon { m_muonErrorStrategy.setParameter(MuonDriftCircleErrorStrategy::ScaledError,true); m_muonErrorStrategy.setParameter(MuonDriftCircleErrorStrategy::BroadError,false); - - msg(MSG::INFO) << MSG::INFO << " Options: "; - if( m_deweightBEE ) msg(MSG::INFO) << MSG::INFO << " Deweight BEE"; - if( m_deweightEE ) msg(MSG::INFO) << MSG::INFO << " Deweight EE"; - if( m_deweightBIS78 ) msg(MSG::INFO) << MSG::INFO << " Deweight BIS78"; - if( m_deweightBME ) msg(MSG::INFO) << MSG::INFO << " Deweight BME"; - if( m_deweightBOE ) msg(MSG::INFO) << MSG::INFO << " Deweight BOE"; - if( m_deweightEEL1C05 ) msg(MSG::INFO) << MSG::INFO << " Deweight EEL1C05"; - if( m_deweightTwoStationTracks ) msg(MSG::INFO) << MSG::INFO << " Deweight Two stations"; - msg(MSG::INFO) << endmsg; - + ATH_MSG_INFO("Options:"); + if( m_deweightBEE ) ATH_MSG_INFO(" Deweight BEE"); + if( m_deweightEE ) ATH_MSG_INFO(" Deweight EE"); + if( m_deweightBIS78 ) ATH_MSG_INFO(" Deweight BIS78"); + if( m_deweightBME ) ATH_MSG_INFO(" Deweight BME"); + if( m_deweightBOE ) ATH_MSG_INFO(" Deweight BOE"); + if( m_deweightEEL1C05 ) ATH_MSG_INFO(" Deweight EEL1C05"); + if( m_deweightTwoStationTracks ) ATH_MSG_INFO(" Deweight Two stations"); return StatusCode::SUCCESS; } - StatusCode MuonRefitTool::finalize() { double scaleRefit = m_nrefits != 0 ? 1./(double)m_nrefits : 1.; - double scaleExtr = m_nbackExtrapolations != 0 ? 1./(double)m_nbackExtrapolations : 1.; - double scaleUp = m_nupdates != 0 ? 1./(double)m_nupdates : 1.; - ATH_MSG_INFO( "Number of refits " << m_nrefits << endmsg - << "Good " << scaleRefit*m_ngoodRefits << endmsg - << "Failed Error update in outlier removal " << scaleRefit*m_failedErrorUpdateOutlierRemoval << endmsg - << "Failed Outlier removal " << scaleRefit*m_failedOutlierRemoval << endmsg - << "Failed Error Update " << scaleRefit*m_failedErrorUpdate << endmsg - << "Failed Refit " << scaleRefit*m_failedRefit << endmsg + ATH_MSG_INFO( + "Number of refits " << m_nrefits << std::endl + << "Good " << scaleRefit*m_ngoodRefits << std::endl + << "Failed Outlier removal " << scaleRefit*m_failedOutlierRemoval << std::endl + << "Failed Error Update " << scaleRefit*m_failedErrorUpdate << std::endl + << "Failed Refit " << scaleRefit*m_failedRefit << std::endl << "Failed Extrapolation to Muon Entry " << scaleRefit*m_failedExtrapolationMuonEntry); - ATH_MSG_INFO( "Number of extrapolations to IP " << m_nbackExtrapolations << endmsg - << "Good " << scaleExtr*m_ngoodBackExtrapolations << endmsg - << "Failed Extrapolation to IP " << scaleExtr*m_failedExtrapolationIP); - - ATH_MSG_INFO( "Number of updated tracks " << m_nupdates << endmsg - << "Good " << scaleUp*m_ngoodUpdates << endmsg - << "Failed updates " << scaleUp*m_failedUpdates); - return StatusCode::SUCCESS; } - - - const Trk::Track* MuonRefitTool::refit( const Trk::Track& track, const IMuonRefitTool::Settings* set ) const { const IMuonRefitTool::Settings& settings = set ? *set : m_defaultSettings; @@ -393,7 +286,7 @@ namespace Muon { isBarrel = false; if( dynamic_cast<MuonAlign::AlignmentTranslationDeviation*>(it) ) { - translationError = sqrt(it->getCovariance(0,0)); + translationError = std::sqrt(it->getCovariance(0,0)); // vector to store hit id std::vector<Identifier> hitids; std::vector<const Trk::RIO_OnTrack*> vec_riowithdev; @@ -425,7 +318,7 @@ namespace Muon { if( dynamic_cast<MuonAlign::AlignmentRotationDeviation*>(itRot) ) { if( itRot->hasValidHashOfHits() && it->hasValidHashOfHits() ) { if( itRot->getHashOfHits() == it->getHashOfHits() ){ - angleError = sqrt(itRot->getCovariance(0,0)); + angleError = std::sqrt(itRot->getCovariance(0,0)); matchFound = true; usedRotations.push_back(iRot); } @@ -489,7 +382,7 @@ namespace Muon { } double translationError = 0.; - double angleError = sqrt(itRot->getCovariance(0,0)); + double angleError = std::sqrt(itRot->getCovariance(0,0)); iok++; alignerrmap.insert( std::pair < std::vector<Identifier>, std::pair < double, double > > ( hitids, std::pair < double, double > (translationError,angleError) ) ); @@ -573,8 +466,6 @@ namespace Muon { trackStateOnSurfaces->push_back(tsosAEOTs[i]); } } -// skip outliers -// if( (*tsit)->type(Trk::TrackStateOnSurface::Outlier) ) continue; // Skip AEOTs that are already present, as they will be added above already if((*tsit)->alignmentEffectsOnTrack()){ @@ -588,14 +479,6 @@ namespace Muon { Trk::Track* newTrack = new Trk::Track( track.info(), trackStateOnSurfaces, track.fitQuality() ? track.fitQuality()->clone():0 ); -// dump it -// const DataVector<const Trk::TrackStateOnSurface>* trackStateOnSurfacesNew = newTrack->trackStateOnSurfaces(); -// tsit = trackStateOnSurfacesNew->begin(); -// tsit_end = trackStateOnSurfacesNew->end(); -// for( ; tsit!=tsit_end ; ++tsit ){ -// if((*tsit)->alignmentEffectsOnTrack()) std::cout << " Peter alignmentEffectsOnTrack found with track pars " << (*tsit)->trackParameters() << std::endl; -// } - ATH_MSG_DEBUG(m_printer->print(*newTrack)); ATH_MSG_DEBUG(m_printer->printMeasurements(*newTrack)); @@ -834,10 +717,10 @@ namespace Muon { std::map<int,std::set<MuonStationIndex::StIndex> >::iterator stit_end = stationsPerSector.end(); for( ;stit!=stit_end;++stit ){ if( msgLvl(MSG::VERBOSE) ){ - msg(MSG::VERBOSE) << " sector " << stit->first; + ATH_MSG_VERBOSE(" sector " << stit->first); for( std::set<MuonStationIndex::StIndex>::iterator ssit = stit->second.begin(); ssit != stit->second.end(); ++ssit ){ - msg(MSG::VERBOSE) << " " << MuonStationIndex::stName(*ssit); + ATH_MSG_VERBOSE(" " << MuonStationIndex::stName(*ssit)); } } if( stit->second.size() > nmaxStations ) { @@ -883,14 +766,13 @@ namespace Muon { barrelEndcap = true; } if( msgLvl(MSG::DEBUG) ){ - msg() << MSG::DEBUG << " Selected sector " << selectedSector << " nstations " << nmaxStations - << " barrel " << nbarrel << " endcap " << nendcap; + ATH_MSG_DEBUG(" Selected sector " << selectedSector << " nstations " << nmaxStations + << " barrel " << nbarrel << " endcap " << nendcap); if( barrelEndcap ) { - msg() << " barrel/endcap overlap " << endmsg; - if(deweightEndcap) msg() << " deweight endcap " << endmsg; - if(deweightBarrel) msg() << " deweight barrel " << endmsg; + ATH_MSG_DEBUG(" barrel/endcap overlap "); + if(deweightEndcap) ATH_MSG_DEBUG(" deweight endcap "); + if(deweightBarrel) ATH_MSG_DEBUG(" deweight barrel "); } - msg() << MSG::DEBUG << endmsg; } unsigned int deweightHits = 0; @@ -977,12 +859,7 @@ namespace Muon { } bool hasT0Fit = false; - MdtDriftCircleOnTrack* cmdt = const_cast<MdtDriftCircleOnTrack*>(mdt); - if( !cmdt ){ - ATH_MSG_WARNING(" Failed to const_cast MdtDriftCircleOnTrack "); - }else{ - if( cmdt->errorStrategy().creationParameter(Muon::MuonDriftCircleErrorStrategy::T0Refit)) hasT0Fit = true; - } + if( mdt->errorStrategy().creationParameter(Muon::MuonDriftCircleErrorStrategy::T0Refit)) hasT0Fit = true; const Trk::RIO_OnTrack* rot = 0; int sector = m_idHelperSvc->sector(id); @@ -1066,14 +943,13 @@ namespace Muon { if( msgLvl(MSG::DEBUG) ){ - msg() << m_idHelperSvc->toString(newMdt->identify()) << " radius " << newMdt->driftRadius() + ATH_MSG_DEBUG(m_idHelperSvc->toString(newMdt->identify()) << " radius " << newMdt->driftRadius() << " new err " << Amg::error(newMdt->localCovariance(),Trk::locR) - << " old err " << Amg::error(mdt->localCovariance(),Trk::locR); - if( hasT0Fit ) msg() << " HasT0"; - else msg() << " No T0"; - if( type == Trk::TrackStateOnSurface::Outlier ) msg() << " Outlier"; - if( fabs(newMdt->driftRadius() - mdt->driftRadius() ) > 0.1 ) msg() << " Bad recalibration: old r " << mdt->driftRadius(); - msg() << endmsg; + << " old err " << Amg::error(mdt->localCovariance(),Trk::locR)); + if( hasT0Fit ) ATH_MSG_DEBUG(" HasT0"); + else ATH_MSG_DEBUG(" No T0"); + if( type == Trk::TrackStateOnSurface::Outlier ) ATH_MSG_DEBUG(" Outlier"); + if( std::abs(newMdt->driftRadius() - mdt->driftRadius() ) > 0.1 ) ATH_MSG_DEBUG(" Bad recalibration: old r " << mdt->driftRadius()); } Trk::TrackStateOnSurface* tsos = MuonTSOSHelper::createMeasTSOSWithUpdate( **tsit, newMdt, pars->clone(), type ); @@ -1294,12 +1170,7 @@ namespace Muon { } bool hasT0Fit = false; - MdtDriftCircleOnTrack* cmdt = const_cast<MdtDriftCircleOnTrack*>(mdt); - if( !cmdt ){ - ATH_MSG_WARNING(" Failed to const_cast MdtDriftCircleOnTrack "); - }else{ - if( cmdt->errorStrategy().creationParameter(Muon::MuonDriftCircleErrorStrategy::T0Refit)) hasT0Fit = true; - } + if( mdt->errorStrategy().creationParameter(Muon::MuonDriftCircleErrorStrategy::T0Refit)) hasT0Fit = true; const Trk::RIO_OnTrack* rot = 0; Trk::TrackStateOnSurface::TrackStateOnSurfaceType type = (*tsit)->type(Trk::TrackStateOnSurface::Outlier) ? @@ -1324,14 +1195,13 @@ namespace Muon { if( msgLvl(MSG::DEBUG) ){ - msg() << " updateMdtErrors " << m_idHelperSvc->toString(newMdt->identify()) << " radius " << newMdt->driftRadius() + ATH_MSG_DEBUG(" updateMdtErrors " << m_idHelperSvc->toString(newMdt->identify()) << " radius " << newMdt->driftRadius() << " new err " << Amg::error(newMdt->localCovariance(),Trk::locR) - << " old err " << Amg::error(mdt->localCovariance(),Trk::locR); - if( hasT0Fit ) msg() << " HasT0"; - else msg() << " No T0"; - if( type == Trk::TrackStateOnSurface::Outlier ) msg() << " Outlier"; - if( fabs(newMdt->driftRadius() - mdt->driftRadius() ) > 0.1 ) msg() << " Bad recalibration: old r " << mdt->driftRadius(); - msg() << endmsg; + << " old err " << Amg::error(mdt->localCovariance(),Trk::locR)); + if( hasT0Fit ) ATH_MSG_DEBUG(" HasT0"); + else ATH_MSG_DEBUG(" No T0"); + if( type == Trk::TrackStateOnSurface::Outlier ) ATH_MSG_DEBUG(" Outlier"); + if( std::abs(newMdt->driftRadius() - mdt->driftRadius() ) > 0.1 ) ATH_MSG_DEBUG(" Bad recalibration: old r " << mdt->driftRadius()); } Trk::TrackStateOnSurface* tsos = MuonTSOSHelper::createMeasTSOSWithUpdate( **tsit, newMdt, pars->clone(), type ); @@ -1545,9 +1415,14 @@ namespace Muon { // set to get Identifiers of chambers with hits std::vector< std::pair<Identifier,bool> > indexIdMap; indexIdMap.reserve( hits.size() ); - - + TrkDriftCircleMath::DCSLFitter dcslFitter; + TrkDriftCircleMath::SegmentFinder segFinder(5.,3.,false); + if( !m_t0Fitter.empty() ){ + segFinder.setFitter(m_t0Fitter->getFitter()); + } + segFinder.debugLevel(m_finderDebugLevel); + segFinder.setRecoverMDT(false); unsigned index = 0; std::vector<const MdtDriftCircleOnTrack*>::const_iterator it = hits.begin(); @@ -1573,7 +1448,7 @@ namespace Muon { Amg::Vector3D locPos = gToStation*mdt->prepRawData()->globalPosition(); TrkDriftCircleMath::LocPos lpos(locPos.y(),locPos.z()); - double r = fabs(mdt->localParameters()[Trk::locR]); + double r = std::abs(mdt->localParameters()[Trk::locR]); double dr = Amg::error(mdt->localCovariance(),Trk::locR); ATH_MSG_VERBOSE("New MDT " << m_idHelperSvc->toString(id) << " r " << mdt->localParameters()[Trk::locR] << " dr " << dr << " (original) " << Amg::error(mdt->localCovariance(),Trk::locR) ); @@ -1626,11 +1501,11 @@ namespace Muon { ATH_MSG_DEBUG("Seeding angles " << track_angleYZ << " from surf " << angleYZ << " ch angle " << chamber_angleYZ << " pos " << segPos); - m_finder.setPhiRoad(track_angleYZ,chamber_angleYZ,0.14); + segFinder.setPhiRoad(track_angleYZ,chamber_angleYZ,0.14); if( msgLvl(MSG::VERBOSE) ){ TrkDriftCircleMath::Segment segment(TrkDriftCircleMath::Line(0.,0.,0.), TrkDriftCircleMath::DCOnTrackVec()); - if(m_fitter.fit(segment, segPars, dcsOnTrack)){ + if(dcslFitter.fit(segment, segPars, dcsOnTrack)){ segment.hitsOnTrack(dcsOnTrack.size()); ATH_MSG_DEBUG(" segment after fit " << segment.chi2() << " ndof " << segment.ndof() << " local parameters " << segment.line().x0() << " " << segment.line().y0() << " phi " << segment.line().phi() ); @@ -1639,7 +1514,7 @@ namespace Muon { } } - TrkDriftCircleMath::SegVec segments = m_finder.findSegments(dcs); + TrkDriftCircleMath::SegVec segments = segFinder.findSegments(dcs); if( !segments.empty() ){ ATH_MSG_DEBUG("Found segments " << segments.size() ); } @@ -1654,7 +1529,7 @@ namespace Muon { TrkDriftCircleMath::SegIt sit_end = segments.end(); for( ;sit!=sit_end;++sit,++index ) { - double dtheta = fabs(sit->line().phi() - track_angleYZ); + double dtheta = std::abs(sit->line().phi() - track_angleYZ); if( dtheta < dthetaBest ){ dthetaBest = dtheta; indexBest = index; @@ -1679,24 +1554,6 @@ namespace Muon { if( settings.discardNotCleanedTracks && !segment.hasT0Shift() ) return false; if( segment.hasT0Shift() || segment.hitsOnTrack() > 5 ) { - // it = hits.begin(); - // it_end = hits.end(); - // for( ;it!=it_end;++it){ - - // const Trk::ErrorMatrix& localErrorMatrix = (*it)->localErrorMatrix(); - // double error = 1.99; - - // double scaledError2 = error*error; - // Trk::CovarianceMatrix* covPtr = const_cast<Trk::CovarianceMatrix*>(localErrorMatrix.covariancePointer()); - // Trk::WeightMatrix* weightPtr = const_cast<Trk::WeightMatrix*>(localErrorMatrix.weightPointer()); - // if( covPtr ) { - // (*covPtr)[Trk::locR][Trk::locR] = scaledError2; - // } - // if( weightPtr ) { - // (*weightPtr)[Trk::locR][Trk::locR] = 1./scaledError2; - // } - // } - ATH_MSG_DEBUG("Segment with t0 shift " << segment.t0Shift() ); } @@ -1718,7 +1575,7 @@ namespace Muon { for( TrkDriftCircleMath::DCOnTrackCit dcit = matchedDCs.begin();dcit!=matchedDCs.end();++dcit ){ if( dcit->state() == TrkDriftCircleMath::DCOnTrack::OnTrack ) { - if( fabs(dcit->r()) - fabs(dcit->rot()->driftRadius()) > 0.1 ){ + if( std::abs(dcit->r()) - std::abs(dcit->rot()->driftRadius()) > 0.1 ){ ATH_MSG_DEBUG("Large change in drift radius: r_old " << dcit->rot()->driftRadius() << " r_new " << dcit->r() ); diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonRefitTool.h b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonRefitTool.h index 792507a087f..bc6c2a819d1 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonRefitTool.h +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonRefitTool.h @@ -1,66 +1,50 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONREFITTOOL_H #define MUONREFITTOOL_H -// STL includes -#include <string> -#include <vector> -#include <set> - -// FrameWork includes +#include "MuonRecToolInterfaces/IMuonRefitTool.h" #include "AthenaBaseComps/AthAlgTool.h" -#include "GaudiKernel/ToolHandle.h" #include "GaudiKernel/ServiceHandle.h" -#include "MuonRecHelperTools/IMuonEDMHelperSvc.h" -#include "MuonRecToolInterfaces/IMuonRefitTool.h" +#include "GaudiKernel/ToolHandle.h" +#include "MuonRecHelperTools/IMuonEDMHelperSvc.h" +#include "MuonRecHelperTools/MuonEDMPrinterTool.h" #include "TrkDriftCircleMath/DCSLFitter.h" #include "TrkDriftCircleMath/SegmentFinder.h" #include "TrkParameters/TrackParameters.h" #include "MuonRIO_OnTrack/MuonDriftCircleErrorStrategy.h" #include "MuonIdHelpers/IMuonIdHelperSvc.h" +#include "MuonRecToolInterfaces/IMuonTrackExtrapolationTool.h" +#include "MuonRecToolInterfaces/IMdtDriftCircleOnTrackCreator.h" +#include "MuonRecToolInterfaces/IMuonCompetingClustersOnTrackCreator.h" +#include "TrkFitterInterfaces/ITrackFitter.h" +#include "TrkExInterfaces/IExtrapolator.h" +#include "MuonSegmentMakerInterfaces/IDCSLFitProvider.h" +#include "TrkToolInterfaces/ITrkAlignmentDeviationTool.h" -namespace Muon { - class MuonEDMPrinterTool; - class IMdtDriftCircleOnTrackCreator; - class IMuonCompetingClustersOnTrackCreator; - class IMuonTrackExtrapolationTool; - class MdtDriftCircleOnTrack; - class IDCSLFitProvider; -} -class MuonESDAnalysisHelperTool; - -namespace Trk { - class Track; - class ITrackFitter; - class IExtrapolator; - class MeasurementBase; - class ITrkAlignmentDeviationTool; -} +#include <string> +#include <vector> +#include <set> +#include <atomic> namespace Muon { class MuonRefitTool : virtual public IMuonRefitTool, public AthAlgTool { public: - /** Constructor with parameters: */ - MuonRefitTool( const std::string& ty,const std::string& na,const IInterface* pa); - - /** Destructor: */ - virtual ~MuonRefitTool(); - - virtual StatusCode initialize(); - virtual StatusCode finalize(); - + MuonRefitTool(const std::string& ty, const std::string& na, const IInterface* pa); + virtual ~MuonRefitTool()=default; + virtual StatusCode initialize() override; + virtual StatusCode finalize() override; /** refit a track */ - const Trk::Track* refit( const Trk::Track& track, const Settings* settings = 0 ) const; + const Trk::Track* refit( const Trk::Track& track, const Settings* settings = 0 ) const override; /** refit and back extrapolate a vector of track pairs */ - std::vector<const Trk::Track*> refit( const std::vector<const Trk::Track*>& tracks, const Settings* settings = 0 ) const; + std::vector<const Trk::Track*> refit( const std::vector<const Trk::Track*>& tracks, const Settings* settings = 0 ) const override; protected: @@ -80,13 +64,6 @@ namespace Muon { bool removeMdtOutliers( const Trk::TrackParameters& pars, const std::vector<const MdtDriftCircleOnTrack*>& hits, std::set<Identifier>& removedIdentifiers, const Settings& settings ) const; - ToolHandle<MuonEDMPrinterTool> m_printer; //<! helper to nicely print out tracks - ServiceHandle<IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", - "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", - "Handle to the service providing the IMuonEDMHelperSvc interface" }; //<! muon EDM helper - ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; - ToolHandle<Trk::ITrkAlignmentDeviationTool> m_alignErrorTool; //<! alignment error tool - struct State { State() : originalState(0), newState(0), copyOriginal(true) {} const Trk::TrackStateOnSurface* originalState; @@ -94,13 +71,44 @@ namespace Muon { bool copyOriginal; }; - ToolHandle<Trk::ITrackFitter> m_trackFitter; - ToolHandle<Trk::IExtrapolator> m_extrapolator; - ToolHandle<Trk::IExtrapolator> m_muonExtrapolator; - ToolHandle<IMdtDriftCircleOnTrackCreator> m_mdtRotCreator; - ToolHandle<IMuonCompetingClustersOnTrackCreator> m_compClusterCreator; - ToolHandle<IDCSLFitProvider> m_t0Fitter; - ToolHandle<Muon::IMuonTrackExtrapolationTool> m_muonEntryTrackExtrapolator; + private: + ServiceHandle<IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", "Handle to the service providing the IMuonEDMHelperSvc interface" }; + ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; + + ToolHandle<Trk::ITrkAlignmentDeviationTool> m_alignErrorTool {this, "AlignmentErrorTool", "MuonAlign::AlignmentErrorTool"}; + ToolHandle<MuonEDMPrinterTool> m_printer {this, "Printer", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"}; + ToolHandle<Trk::ITrackFitter> m_trackFitter {this, "Fitter", "Trk::GlobalChi2Fitter/MCTBFitterMaterialFromTrack"}; + ToolHandle<Trk::IExtrapolator> m_extrapolator {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"}; + ToolHandle<Trk::IExtrapolator> m_muonExtrapolator {this, "MuonExtrapolator", "Trk::Extrapolator/MuonExtrapolator"}; + ToolHandle<IMdtDriftCircleOnTrackCreator> m_mdtRotCreator {this, "MdtRotCreator", "Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator"}; + ToolHandle<IMuonCompetingClustersOnTrackCreator> m_compClusterCreator {this, "CompClusterCreator", "Muon::TriggerChamberClusterOnTrackCreator/TriggerChamberClusterOnTrackCreator"}; + ToolHandle<IDCSLFitProvider> m_t0Fitter {this, "T0Fitter", ""}; + ToolHandle<Muon::IMuonTrackExtrapolationTool> m_muonEntryTrackExtrapolator {this, "MuonEntryExtrapolationTool", "Muon::MuonTrackExtrapolationTool/MuonTrackExtrapolationTool"}; + + Gaudi::Property<int> m_finderDebugLevel {this, "FinderDebugLevel", -1}; + + Gaudi::Property<double> m_minMuonMomentum {this, "MinMuonMom", 4000}; + Gaudi::Property<double> m_fixedError {this, "UsedFixedError", 1}; + Gaudi::Property<double> m_flagT0FitRange {this, "FlagT0FitRange", 0.00005}; + + Gaudi::Property<float> m_alignmentDelta {this, "AlignmentDelta", 0}; + Gaudi::Property<float> m_alignmentAngle {this, "AlignmentAngle", 0}; + Gaudi::Property<float> m_alignmentDeltaError {this, "AlignmentDeltaError", 0.1}; + Gaudi::Property<float> m_alignmentAngleError {this, "AlignmentAngleError", 0.001}; + + Gaudi::Property<bool> m_alignmentErrors {this, "AlignmentErrors", false}; + Gaudi::Property<bool> m_simpleAEOTs {this, "SimpleAEOTs", false}; + Gaudi::Property<bool> m_addAll {this, "AddAll", false}; + Gaudi::Property<bool> m_addInner {this, "AddInner", false}; + Gaudi::Property<bool> m_addMiddle {this, "AddMiddle", false}; + Gaudi::Property<bool> m_addTwo {this, "AddTwo", false}; + Gaudi::Property<bool> m_deweightBEE {this, "DeweightBEE", false}; + Gaudi::Property<bool> m_deweightEE {this, "DeweightEE", false}; + Gaudi::Property<bool> m_deweightBIS78 {this, "DeweightBIS78", true}; + Gaudi::Property<bool> m_deweightBME {this, "DeweightBME", true}; + Gaudi::Property<bool> m_deweightBOE {this, "DeweightBOE", true}; + Gaudi::Property<bool> m_deweightEEL1C05 {this, "DeweightEEL1C05", false}; + Gaudi::Property<bool> m_deweightTwoStationTracks {this, "DeweightTwoStationTracks", false}; MuonDriftCircleErrorStrategy m_errorStrategyBEE; MuonDriftCircleErrorStrategy m_errorStrategyEE; @@ -113,53 +121,15 @@ namespace Muon { MuonDriftCircleErrorStrategy m_errorStrategy; MuonDriftCircleErrorStrategy m_muonErrorStrategy; - mutable TrkDriftCircleMath::DCSLFitter m_fitter; - mutable TrkDriftCircleMath::SegmentFinder m_finder; - mutable TrkDriftCircleMath::SegmentFinder m_finderCleaning; - - int m_finderDebugLevel; - Settings m_defaultSettings; - mutable unsigned int m_nrefits; - mutable unsigned int m_ngoodRefits; - mutable unsigned int m_failedErrorUpdateOutlierRemoval; - mutable unsigned int m_failedOutlierRemoval; - mutable unsigned int m_failedErrorUpdate; - mutable unsigned int m_failedRefit; - mutable unsigned int m_failedExtrapolationMuonEntry; - - mutable unsigned int m_nbackExtrapolations; - mutable unsigned int m_ngoodBackExtrapolations; - mutable unsigned int m_failedExtrapolationIP; - - mutable unsigned int m_nupdates; - mutable unsigned int m_ngoodUpdates; - mutable unsigned int m_failedUpdates; - - float m_alignmentDelta; - float m_alignmentAngle; - float m_alignmentDeltaError; - float m_alignmentAngleError; - bool m_alignmentErrors; - bool m_simpleAEOTs; - bool m_addAll; - bool m_addInner; - bool m_addMiddle; - bool m_addTwo; - - double m_minMuonMomentum; - double m_fixedError; - double m_flagT0FitRange; - bool m_deweightBEE; - bool m_deweightEE; - bool m_deweightBIS78; - bool m_deweightBME; - bool m_deweightBOE; - bool m_deweightEEL1C05; - bool m_deweightTwoStationTracks; + mutable std::atomic<unsigned int> m_nrefits; + mutable std::atomic<unsigned int> m_ngoodRefits; + mutable std::atomic<unsigned int> m_failedOutlierRemoval; + mutable std::atomic<unsigned int> m_failedErrorUpdate; + mutable std::atomic<unsigned int> m_failedRefit; + mutable std::atomic<unsigned int> m_failedExtrapolationMuonEntry; - private: std::unique_ptr<const Trk::Perigee> createPerigee( const Trk::TrackParameters& pars ) const; }; } diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSeededSegmentFinder.cxx b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSeededSegmentFinder.cxx index 057ca04b3b9..2198a0e2e33 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSeededSegmentFinder.cxx +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSeededSegmentFinder.cxx @@ -29,9 +29,6 @@ namespace Muon { m_magFieldProperties(Trk::NoField) { declareInterface<IMuonSeededSegmentFinder>(this); - - declareProperty("AdcCut", m_adcCut = 50 ); - declareProperty("MdtSigmaFromTrack",m_maxSigma = 3); } StatusCode MuonSeededSegmentFinder::initialize() diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSeededSegmentFinder.h b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSeededSegmentFinder.h index 6e73d0fe70e..83e1e6630cd 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSeededSegmentFinder.h +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSeededSegmentFinder.h @@ -116,8 +116,8 @@ private: SG::ReadHandleKey<Muon::sTgcPrepDataContainer> m_key_stgc{this,"sTgcPrepDataContainer","STGC_Measurements","sTGC PRDs"}; SG::ReadHandleKey<Muon::MMPrepDataContainer> m_key_mm{this,"MMPrepDataContainer","MM_Measurements","MM PRDs"}; - double m_adcCut; - double m_maxSigma; + Gaudi::Property<double> m_adcCut {this, "AdcCut", 50}; + Gaudi::Property<double> m_maxSigma {this, "MdtSigmaFromTrack", 3}; }; } diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSegmentRegionRecoveryTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSegmentRegionRecoveryTool.cxx index 25e9f71b172..be24f750b19 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSegmentRegionRecoveryTool.cxx +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSegmentRegionRecoveryTool.cxx @@ -17,7 +17,6 @@ #include "MuonPrepRawData/RpcPrepDataCollection.h" #include "MuonPrepRawData/TgcPrepDataCollection.h" #include "MuonPrepRawData/CscPrepDataCollection.h" -// New Small Wheel #include "MuonPrepRawData/sTgcPrepDataCollection.h" #include "MuonPrepRawData/MMPrepDataCollection.h" @@ -25,7 +24,6 @@ #include "MuonRIO_OnTrack/RpcClusterOnTrack.h" #include "MuonRIO_OnTrack/TgcClusterOnTrack.h" #include "MuonRIO_OnTrack/CscClusterOnTrack.h" -// New Small Wheel #include "MuonRIO_OnTrack/sTgcClusterOnTrack.h" #include "MuonRIO_OnTrack/MMClusterOnTrack.h" diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackExtrapolationTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackExtrapolationTool.cxx index 573b70df37c..37f5ba4f9d1 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackExtrapolationTool.cxx +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackExtrapolationTool.cxx @@ -28,21 +28,9 @@ namespace Muon { MuonTrackExtrapolationTool::MuonTrackExtrapolationTool(const std::string& ty,const std::string& na,const IInterface* pa) - : AthAlgTool(ty,na,pa), - m_atlasExtrapolator("Trk::Extrapolator/AtlasExtrapolator"), - m_muonExtrapolator("Trk::Extrapolator/MuonExtrapolator"), - m_muonExtrapolator2("Trk::Extrapolator/MuonExtrapolator"), - m_trackingGeometrySvc("TrackingGeometrySvc/AtlasTrackingGeometrySvc",na), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool") + : AthAlgTool(ty,na,pa) { declareInterface<IMuonTrackExtrapolationTool>(this); - declareProperty( "TrackingGeometrySvc", m_trackingGeometrySvc); - declareProperty( "MuonExtrapolator", m_muonExtrapolator); - declareProperty( "MuonExtrapolator2", m_muonExtrapolator2); - declareProperty( "AtlasExtrapolator", m_atlasExtrapolator); - declareProperty( "Cosmics", m_cosmics = false); - declareProperty( "KeepInitialPerigee", m_keepOldPerigee = true); - declareProperty( "MuonSystemEntranceName", m_msEntranceName = "MuonSpectrometerEntrance" ); } StatusCode MuonTrackExtrapolationTool::initialize() @@ -70,7 +58,7 @@ namespace Muon { ATH_MSG_WARNING(" " << m_trackingGeometrySvc << " has no valid trackingGeometry pointer" ); return nullptr; } - const Trk::TrackingVolume* msEntrance = m_trackingGeometrySvc->trackingGeometry()->trackingVolume(m_msEntranceName.c_str()); + const Trk::TrackingVolume* msEntrance = m_trackingGeometrySvc->trackingGeometry()->trackingVolume(m_msEntranceName); if( !msEntrance ) { ATH_MSG_WARNING(" MS entrance not found" ); return nullptr; @@ -113,7 +101,6 @@ namespace Muon { << " pos " << pars.position() << " dir " << pars.momentum().unit(); if( propDir == Trk::alongMomentum ) msg() << " going along momentum" << endmsg; else if( propDir == Trk::oppositeMomentum ) msg() << " going opposite momentum" << endmsg; -// else msg() << " unknown direction" << endmsg; } // for cosmics try both directions @@ -134,7 +121,7 @@ namespace Muon { const Trk::TrackParameters* MuonTrackExtrapolationTool::findClosestParametersToMuonEntry( const Trk::Track& track ) const { - const Trk::TrackingVolume* msEntrance = m_trackingGeometrySvc->trackingGeometry()->trackingVolume(m_msEntranceName.c_str()); + const Trk::TrackingVolume* msEntrance = m_trackingGeometrySvc->trackingGeometry()->trackingVolume(m_msEntranceName); if( !msEntrance ) { ATH_MSG_WARNING("Failed to obtain muon entry volume"); return nullptr; diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackExtrapolationTool.h b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackExtrapolationTool.h index 2c67bd9fddc..abf94b68ea1 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackExtrapolationTool.h +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackExtrapolationTool.h @@ -75,25 +75,22 @@ namespace Muon { const Trk::Perigee* createPerigee( const Trk::TrackParameters& pars ) const; - ToolHandle<Trk::IExtrapolator> m_atlasExtrapolator; - ToolHandle<Trk::IExtrapolator> m_muonExtrapolator; - ToolHandle<Trk::IExtrapolator> m_muonExtrapolator2; // Moved from MuonEDMHelperSvc, not sure if it should be private/separate from m_muonExtrapolator - // Read handle for conditions object to get the field cache SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}; - ServiceHandle<Trk::ITrackingGeometrySvc> m_trackingGeometrySvc; - ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", - "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", - "Handle to the service providing the IMuonEDMHelperSvc interface" }; - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; + ServiceHandle<Trk::ITrackingGeometrySvc> m_trackingGeometrySvc {this, "TrackingGeometrySvc", "TrackingGeometrySvc/AtlasTrackingGeometrySvc"}; + ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", "Handle to the service providing the IMuonEDMHelperSvc interface"}; ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; - bool m_cosmics; - bool m_keepOldPerigee; + ToolHandle<Muon::MuonEDMPrinterTool> m_printer {this, "EDMPrinter", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool", "helper to nicely print out tracks"}; + ToolHandle<Trk::IExtrapolator> m_atlasExtrapolator {this, "AtlasExtrapolator", "Trk::Extrapolator/AtlasExtrapolator"}; + ToolHandle<Trk::IExtrapolator> m_muonExtrapolator {this, "MuonExtrapolator", "Trk::Extrapolator/MuonExtrapolator"}; + ToolHandle<Trk::IExtrapolator> m_muonExtrapolator2 {this, "MuonExtrapolator2", "Trk::Extrapolator/MuonExtrapolator"}; - std::string m_msEntranceName; + Gaudi::Property<bool> m_cosmics {this, "Cosmics", false}; + Gaudi::Property<bool> m_keepOldPerigee {this, "KeepInitialPerigee", true}; + Gaudi::Property<std::string> m_msEntranceName {this, "MuonSystemEntranceName", "MuonSpectrometerEntrance"}; }; } diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackScoringTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackScoringTool.cxx index 94fa65cf224..93f4cfc40f6 100755 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackScoringTool.cxx +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackScoringTool.cxx @@ -1,36 +1,24 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ +#include "MuonTrackScoringTool.h" -#include "TrkToolInterfaces/ITrackSummaryTool.h" #include "TrkTrackSummary/TrackSummary.h" -#include "MuonTrackScoringTool.h" #include "TrkDetElementBase/TrkDetElementBase.h" #include "TrkTrack/Track.h" #include "TrkEventPrimitives/FitQuality.h" #include "TrkRIO_OnTrack/RIO_OnTrack.h" -#include "MuonRecHelperTools/MuonEDMPrinterTool.h" - -#include "GaudiKernel/MsgStream.h" -//#include "CLHEP/GenericFunctions/CumulativeChiSquare.hh" #include <cassert> -#include <vector> namespace Muon { - MuonTrackScoringTool::MuonTrackScoringTool(const std::string& t, - const std::string& n, - const IInterface* p ) - : + MuonTrackScoringTool::MuonTrackScoringTool(const std::string& t, const std::string& n, const IInterface* p) : AthAlgTool(t,n,p), - m_trkSummaryTool("Trk::TrackSummaryTool"), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"), m_summaryTypeScore(Trk::numberOfTrackSummaryTypes) { declareInterface<Trk::ITrackScoringTool>(this); - declareProperty("SumHelpTool", m_trkSummaryTool); //set some test values m_summaryTypeScore[Trk::numberOfPixelHits] = 20; @@ -64,10 +52,6 @@ namespace Muon { m_summaryTypeScore[Trk::numberOfMmHits] = 5; } - MuonTrackScoringTool::~MuonTrackScoringTool() - { - } - StatusCode MuonTrackScoringTool::initialize() { @@ -77,11 +61,6 @@ namespace Muon { return StatusCode::SUCCESS; } - StatusCode MuonTrackScoringTool::finalize() - { - return StatusCode::SUCCESS; - } - Trk::TrackScore MuonTrackScoringTool::score( const Trk::Track& track, const bool /*suppressHoleSearch*/ ) const { Trk::TrackScore score; diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackScoringTool.h b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackScoringTool.h index cb7c09b8304..cebc5256dfb 100755 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackScoringTool.h +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackScoringTool.h @@ -1,39 +1,37 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ - #ifndef MUONTRACKSCORINGTOOL_H #define MUONTRACKSCORINGTOOL_H +#include "TrkToolInterfaces/ITrackScoringTool.h" #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ToolHandle.h" + #include "TrkEventPrimitives/TrackScore.h" -#include "TrkToolInterfaces/ITrackScoringTool.h" +#include "MuonRecHelperTools/MuonEDMPrinterTool.h" +#include "TrkToolInterfaces/ITrackSummaryTool.h" + +#include <string> #include <vector> namespace Trk { class Track; - class ITrackSummaryTool; class TrackSummary; } -class MsgStream; - namespace Muon { - class MuonEDMPrinterTool; - - /**Concrete implementation of the ITrackScoringTool pABC*/ class MuonTrackScoringTool : virtual public Trk::ITrackScoringTool, public AthAlgTool { public: MuonTrackScoringTool(const std::string&,const std::string&,const IInterface*); - virtual ~MuonTrackScoringTool (); + virtual ~MuonTrackScoringTool()=default; virtual StatusCode initialize() override; - virtual StatusCode finalize () override; + /** create a score based on how good the passed track is*/ virtual Trk::TrackScore score( const Trk::Track& track, const bool suppressHoleSearch ) const override; @@ -45,8 +43,8 @@ namespace Muon { private: /**\todo make this const, once createSummary method is const*/ - ToolHandle<Trk::ITrackSummaryTool> m_trkSummaryTool; - ToolHandle<MuonEDMPrinterTool> m_printer; + ToolHandle<Trk::ITrackSummaryTool> m_trkSummaryTool {this, "SumHelpTool", "Trk::TrackSummaryTool"}; + ToolHandle<MuonEDMPrinterTool> m_printer {this, "EDMPrinter", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool", "helper to nicely print out tracks"}; /**holds the scores assigned to each Trk::SummaryType from the track's Trk::TrackSummary*/ std::vector<Trk::TrackScore> m_summaryTypeScore; diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackSelectorTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackSelectorTool.cxx index 8c8f2b36447..cf0ee994ecc 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackSelectorTool.cxx +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackSelectorTool.cxx @@ -4,27 +4,21 @@ #include "MuonTrackSelectorTool.h" -#include "TrkToolInterfaces/ITrackSummaryHelperTool.h" - #include "MuonRIO_OnTrack/MdtDriftCircleOnTrack.h" #include "MuonRIO_OnTrack/RpcClusterOnTrack.h" #include "MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrack.h" - #include "TrkMeasurementBase/MeasurementBase.h" - #include "TrkTrack/Track.h" #include "TrkParameters/TrackParameters.h" - #include "TrkTrackSummary/TrackSummary.h" #include "TrkTrackSummary/MuonTrackSummary.h" + #include <map> namespace Muon { MuonTrackSelectorTool::MuonTrackSelectorTool(const std::string& ty,const std::string& na,const IInterface* pa) : AthAlgTool(ty,na,pa), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"), - m_trackSummaryTool("Muon::MuonTrackSummaryHelperTool/MuonTrackSummaryHelperTool"), m_ntotalTracks(0), m_failedChi2NDofCut(0), m_failedSingleStationCut(0), diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackSelectorTool.h b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackSelectorTool.h index a411a2f333f..3bae5316b8d 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackSelectorTool.h +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackSelectorTool.h @@ -12,7 +12,7 @@ #include "MuonRecHelperTools/IMuonEDMHelperSvc.h" #include "MuonRecHelperTools/MuonEDMPrinterTool.h" #include "MuonIdHelpers/IMuonIdHelperSvc.h" - +#include "TrkToolInterfaces/ITrackSummaryHelperTool.h" #include "TrkParameters/TrackParameters.h" #include <atomic> @@ -24,7 +24,6 @@ static const InterfaceID IID_MuonTrackSelectorTool("Muon::MuonTrackSelectorTool" namespace Trk { class Track; - class ITrackSummaryHelperTool; } namespace Muon { @@ -69,11 +68,11 @@ namespace Muon { private: ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; - ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", + ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", "Handle to the service providing the IMuonEDMHelperSvc interface" }; //!< EDM Helper tool - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; //!< EDM printer tool - ToolHandle<Trk::ITrackSummaryHelperTool> m_trackSummaryTool; //<! muon id helper + ToolHandle<Muon::MuonEDMPrinterTool> m_printer {this, "EDMPrinter", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool", "helper to nicely print out tracks"}; + ToolHandle<Trk::ITrackSummaryHelperTool> m_trackSummaryTool {this, "TrackSummaryHelperTool", "Muon::MuonTrackSummaryHelperTool/MuonTrackSummaryHelperTool"}; double m_holeHitRatioCutPerStation; double m_chi2NDofCut; diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackToSegmentTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackToSegmentTool.cxx index cc63d201d68..78cb83fc01b 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackToSegmentTool.cxx +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackToSegmentTool.cxx @@ -5,40 +5,24 @@ #include "MuonTrackToSegmentTool.h" #include "MuonSegment/MuonSegment.h" - #include "MuonSegment/MuonSegmentQuality.h" #include "MuonRIO_OnTrack/MdtDriftCircleOnTrack.h" #include "MuonRIO_OnTrack/CscClusterOnTrack.h" #include "MuonRIO_OnTrack/MMClusterOnTrack.h" - #include "MuonReadoutGeometry/MdtReadoutElement.h" - #include "TrkTrack/Track.h" #include "TrkEventPrimitives/LocalDirection.h" #include "TrkEventPrimitives/JacobianPhiThetaLocalAngles.h" - #include "TrkGeometry/MagneticFieldProperties.h" - #include "EventPrimitives/EventPrimitivesHelpers.h" #include <set> namespace Muon { - - MuonTrackToSegmentTool::MuonTrackToSegmentTool(const std::string& t,const std::string& n,const IInterface* p) : - AthAlgTool(t,n,p), - m_intersectSvc("MuonStationIntersectSvc", name()), - m_propagator("Trk::RungeKuttaPropagator/AtlasRungeKuttaPropagator"), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool") + AthAlgTool(t,n,p) { - declareInterface<IMuonTrackToSegmentTool>(this); - - declareProperty("MuonStationIntersectSvc", m_intersectSvc); - declareProperty("Propagator", m_propagator); - declareProperty("EDMPrinter", m_printer); - } StatusCode MuonTrackToSegmentTool::initialize() { diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackToSegmentTool.h b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackToSegmentTool.h index 704357d567b..0747cbcdc8f 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackToSegmentTool.h +++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackToSegmentTool.h @@ -70,13 +70,14 @@ namespace Muon { "MuonDetectorManager", "Key of input MuonDetectorManager condition data"}; - ServiceHandle<MuonStationIntersectSvc> m_intersectSvc; //<! pointer to hole search service - ToolHandle<Trk::IPropagator> m_propagator; //<! propagator + ServiceHandle<MuonStationIntersectSvc> m_intersectSvc {this, "MuonStationIntersectSvc", "MuonStationIntersectSvc", "pointer to hole search service"}; ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; ServiceHandle<IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", "Handle to the service providing the IMuonEDMHelperSvc interface" }; //<! multipurpose helper tool - ToolHandle<MuonEDMPrinterTool> m_printer; //<! tool to print out EDM objects + + ToolHandle<MuonEDMPrinterTool> m_printer {this, "EDMPrinter", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool", "helper to nicely print out tracks"}; + ToolHandle<Trk::IPropagator> m_propagator {this, "Propagator", "Trk::RungeKuttaPropagator/AtlasRungeKuttaPropagator"}; SG::ReadCondHandleKey<MdtCondDbData> m_condKey{this, "MdtCondKey", "MdtCondDbData", "Key of MdtCondDbData"}; -- GitLab From 88d053652de942ef891bd2aae7c6b2c184be1510 Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <stewart.martin-haugh@cern.ch> Date: Tue, 28 Jul 2020 17:40:12 +0000 Subject: [PATCH 285/459] Revert "Remove interface left over from removal of TrigTRT_DriftCircleProvider" This reverts commit 550103b0e83e6951eace36318e562a718588c5c0. --- .../ATLAS_CHECK_THREAD_SAFETY | 1 - .../TrigSecVtxFinder/CMakeLists.txt | 13 - .../python/TrigSecVtxFinderConfig.py | 88 --- .../python/TrigSecVtxFinderMonitoring.py | 36 - .../TrigSecVtxFinder/src/TrigSecVtxFinder.cxx | 424 ----------- .../TrigSecVtxFinder/src/TrigSecVtxFinder.h | 72 -- .../components/TrigSecVtxFinder_entries.cxx | 3 - .../ITrigInDetVxInJetTool.h | 41 - .../ATLAS_CHECK_THREAD_SAFETY | 1 - .../TrigInDetVxInJetTool/CMakeLists.txt | 14 - .../TrigInDetVxInJetTool/src/CutTrk.cxx | 120 --- .../src/TrigInDetVxInJetTool.cxx | 170 ----- .../src/TrigInDetVxInJetTool.h | 193 ----- .../TrigInDetVxInJetTool/src/TrigVrtSec.cxx | 715 ------------------ .../TrigInDetVxInJetTool/src/Utilities.cxx | 252 ------ .../TrigInDetVxInJetTool_entries.cxx | 3 - .../TrigTools/TrigVKalFitter/CMakeLists.txt | 20 - .../TrigVKalFitter/ATLAS_CHECK_THREAD_SAFETY | 1 - .../TrigVKalFitter/TrigVKalFitter.h | 261 ------- .../TrigVKalFitter/VKalVrtAtlas.h | 38 - .../TrigTools/TrigVKalFitter/doc/packagedoc.h | 30 - .../TrigVKalFitter/src/CvtTrigTrack.cxx | 216 ------ .../TrigVKalFitter/src/SetFitOptions.cxx | 172 ----- .../TrigVKalFitter/src/TVKalFitter.cxx | 523 ------------- .../TrigVKalFitter/src/TVKalFitterFast.cxx | 65 -- .../TrigVKalFitter/src/TVKalGetImpact.cxx | 69 -- .../TrigVKalFitter/src/TVKalMagFld.cxx | 62 -- .../src/components/TrigVKalFitter_entries.cxx | 3 - 28 files changed, 3606 deletions(-) delete mode 100644 Trigger/TrigAlgorithms/TrigSecVtxFinder/ATLAS_CHECK_THREAD_SAFETY delete mode 100644 Trigger/TrigAlgorithms/TrigSecVtxFinder/CMakeLists.txt delete mode 100644 Trigger/TrigAlgorithms/TrigSecVtxFinder/python/TrigSecVtxFinderConfig.py delete mode 100755 Trigger/TrigAlgorithms/TrigSecVtxFinder/python/TrigSecVtxFinderMonitoring.py delete mode 100644 Trigger/TrigAlgorithms/TrigSecVtxFinder/src/TrigSecVtxFinder.cxx delete mode 100644 Trigger/TrigAlgorithms/TrigSecVtxFinder/src/TrigSecVtxFinder.h delete mode 100644 Trigger/TrigAlgorithms/TrigSecVtxFinder/src/components/TrigSecVtxFinder_entries.cxx delete mode 100755 Trigger/TrigTools/TrigInDetToolInterfaces/TrigInDetToolInterfaces/ITrigInDetVxInJetTool.h delete mode 100644 Trigger/TrigTools/TrigInDetVxInJetTool/ATLAS_CHECK_THREAD_SAFETY delete mode 100644 Trigger/TrigTools/TrigInDetVxInJetTool/CMakeLists.txt delete mode 100755 Trigger/TrigTools/TrigInDetVxInJetTool/src/CutTrk.cxx delete mode 100755 Trigger/TrigTools/TrigInDetVxInJetTool/src/TrigInDetVxInJetTool.cxx delete mode 100644 Trigger/TrigTools/TrigInDetVxInJetTool/src/TrigInDetVxInJetTool.h delete mode 100755 Trigger/TrigTools/TrigInDetVxInJetTool/src/TrigVrtSec.cxx delete mode 100755 Trigger/TrigTools/TrigInDetVxInJetTool/src/Utilities.cxx delete mode 100644 Trigger/TrigTools/TrigInDetVxInJetTool/src/components/TrigInDetVxInJetTool_entries.cxx delete mode 100644 Trigger/TrigTools/TrigVKalFitter/CMakeLists.txt delete mode 100644 Trigger/TrigTools/TrigVKalFitter/TrigVKalFitter/ATLAS_CHECK_THREAD_SAFETY delete mode 100755 Trigger/TrigTools/TrigVKalFitter/TrigVKalFitter/TrigVKalFitter.h delete mode 100755 Trigger/TrigTools/TrigVKalFitter/TrigVKalFitter/VKalVrtAtlas.h delete mode 100644 Trigger/TrigTools/TrigVKalFitter/doc/packagedoc.h delete mode 100755 Trigger/TrigTools/TrigVKalFitter/src/CvtTrigTrack.cxx delete mode 100755 Trigger/TrigTools/TrigVKalFitter/src/SetFitOptions.cxx delete mode 100755 Trigger/TrigTools/TrigVKalFitter/src/TVKalFitter.cxx delete mode 100755 Trigger/TrigTools/TrigVKalFitter/src/TVKalFitterFast.cxx delete mode 100755 Trigger/TrigTools/TrigVKalFitter/src/TVKalGetImpact.cxx delete mode 100755 Trigger/TrigTools/TrigVKalFitter/src/TVKalMagFld.cxx delete mode 100644 Trigger/TrigTools/TrigVKalFitter/src/components/TrigVKalFitter_entries.cxx diff --git a/Trigger/TrigAlgorithms/TrigSecVtxFinder/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigSecVtxFinder/ATLAS_CHECK_THREAD_SAFETY deleted file mode 100644 index 51a8ff02b2b..00000000000 --- a/Trigger/TrigAlgorithms/TrigSecVtxFinder/ATLAS_CHECK_THREAD_SAFETY +++ /dev/null @@ -1 +0,0 @@ -Trigger/TrigAlgorithms/TrigSecVtxFinder diff --git a/Trigger/TrigAlgorithms/TrigSecVtxFinder/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigSecVtxFinder/CMakeLists.txt deleted file mode 100644 index 9857e4598fb..00000000000 --- a/Trigger/TrigAlgorithms/TrigSecVtxFinder/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -# Declare the package name: -atlas_subdir( TrigSecVtxFinder ) - -# Component(s) in the package: -atlas_add_component( TrigSecVtxFinder - src/*.cxx - src/components/*.cxx - LINK_LIBRARIES BeamSpotConditionsData CxxUtils GaudiKernel GeoPrimitives TrigInDetEvent TrigInDetToolInterfacesLib TrigInterfacesLib TrigSteeringEvent TrigTimeAlgsLib ) - -# Install files from the package: -atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) diff --git a/Trigger/TrigAlgorithms/TrigSecVtxFinder/python/TrigSecVtxFinderConfig.py b/Trigger/TrigAlgorithms/TrigSecVtxFinder/python/TrigSecVtxFinderConfig.py deleted file mode 100644 index 0972d270387..00000000000 --- a/Trigger/TrigAlgorithms/TrigSecVtxFinder/python/TrigSecVtxFinderConfig.py +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -from TrigSecVtxFinder.TrigSecVtxFinderConf import TrigSecVtxFinder - -class L2SecVtxFinder (TrigSecVtxFinder): - __slots__ = [] - def __init__(self, name="L2SecVtxFinder"): - super( L2SecVtxFinder, self ).__init__( name ) - - from AthenaCommon.AppMgr import ToolSvc - - from TrigInDetVxInJetTool.TrigInDetVxInJetToolConf import TrigInDetVxInJetTool - TrigInDetVxInJetTool = TrigInDetVxInJetTool(name = "TrigInDetVxInJetTool", - getNegativeTail = False, # True for SV0 ; False for SV1 - ) - - #TrigInDetVxInJetTool.OutputLevel=2 - - ToolSvc += TrigInDetVxInJetTool - - self.UseBeamSpotFlag = False - self.TrackJetTrkSelExt = False - self.UseJetDirection = 1 - - from TrigSecVtxFinder.TrigSecVtxFinderMonitoring import TrigSecVtxFinderValidationMonitoring, TrigSecVtxFinderOnlineMonitoring - validation = TrigSecVtxFinderValidationMonitoring() - online = TrigSecVtxFinderOnlineMonitoring() - - from TrigTimeMonitor.TrigTimeHistToolConfig import TrigTimeHistToolConfig - time = TrigTimeHistToolConfig("TimeHistogramForTrigSecVtxFinder") - time.TimerHistLimits = [0,10] - - self.AthenaMonTools = [ time, validation, online ] - - - -class L2SecVtx (L2SecVtxFinder): - __slots__ = [] - def __init__(self, name="L2SecVtx"): - super( L2SecVtx, self ).__init__( name ) - - self.AlgoId = 1 - - - -class L2SecVtx_IDScan (L2SecVtxFinder): - __slots__ = [] - def __init__(self, name="L2SecVtx_IDScan"): - super( L2SecVtx_IDScan, self ).__init__( name ) - - self.AlgoId = 2 - - - -class L2SecVtx_JetA (L2SecVtxFinder): - __slots__ = [] - def __init__(self, name="L2SecVtx_JetA"): - super( L2SecVtx_JetA, self ).__init__( name ) - - self.AlgoId = 5 - - - -class L2SecVtx_JetB (L2SecVtxFinder): - __slots__ = [] - def __init__(self, name="L2SecVtx_JetB"): - super( L2SecVtx_JetB, self ).__init__( name ) - - self.AlgoId = 6 - - - -class L2SecVtx_JetF (L2SecVtxFinder): - __slots__ = [] - def __init__(self, name="L2SecVtx_JetF"): - super( L2SecVtx_JetF, self ).__init__( name ) - - self.AlgoId = 8 - - - -class L2SecVtx_JetFR (L2SecVtxFinder): - __slots__ = [] - def __init__(self, name="L2SecVtx_JetFR"): - super( L2SecVtx_JetFR, self ).__init__( name ) - - self.AlgoId = 13 - diff --git a/Trigger/TrigAlgorithms/TrigSecVtxFinder/python/TrigSecVtxFinderMonitoring.py b/Trigger/TrigAlgorithms/TrigSecVtxFinder/python/TrigSecVtxFinderMonitoring.py deleted file mode 100755 index f1dcc0013f1..00000000000 --- a/Trigger/TrigAlgorithms/TrigSecVtxFinder/python/TrigSecVtxFinderMonitoring.py +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -from TrigMonitorBase.TrigGenericMonitoringToolConfig import defineHistogram, TrigGenericMonitoringToolConfig - -class TrigSecVtxFinderMonitoring(TrigGenericMonitoringToolConfig): - def __init__ (self, name="TrigSecVtxFinderMonitoring"): - super(TrigSecVtxFinderMonitoring, self).__init__(name) - - self.Histograms += [ defineHistogram('SecVtx_Num', type='TH1F', title="Number of reconstructed secondary vertices per RoI", - xbins=2, xmin=0.0, xmax=2.0) ] - self.Histograms += [ defineHistogram('SecVtx_Mass', type='TH1F', title="Mass of the reconstructed secondary vertex [MeV]", - xbins=40, xmin=0.0, xmax=6000.0) ] - self.Histograms += [ defineHistogram('SecVtx_TwoTrk', type='TH1F', title="Number of 2-track vertices", - xbins=15, xmin=0.0, xmax=15.0) ] - self.Histograms += [ defineHistogram('SecVtx_NumTrk', type='TH1F', title="Number of tracks associated to the reconstructed secondary vertex", - xbins=15, xmin=0.0, xmax=15.0) ] - self.Histograms += [ defineHistogram('SecVtx_Energy', type='TH1F', title="Energy fraction of the reconstructed secondary vertex E(SecVtx)/E(Jet)", - xbins=25, xmin=0.0, xmax=1.0) ] - self.Histograms += [ defineHistogram('SecVtx_DecayLength', type='TH1F', title="Decay length of the reconstructed secondary vertex [mm]", - xbins=25, xmin=0.0, xmax=25.0) ] - self.Histograms += [ defineHistogram('SecVtx_DecayLengthSig', type='TH1F', title="Decay length significance of the reconstructed secondary vertex", - xbins=25, xmin=0.0, xmax=25.0) ] - - -class TrigSecVtxFinderValidationMonitoring(TrigSecVtxFinderMonitoring): - def __init__ (self, name="TrigSecVtxFinderValidationMonitoring"): - super(TrigSecVtxFinderValidationMonitoring, self).__init__(name) - - self.defineTarget("Validation") - - -class TrigSecVtxFinderOnlineMonitoring(TrigSecVtxFinderMonitoring): - def __init__ (self, name="TrigSecVtxFinderOnlineMonitoring"): - super(TrigSecVtxFinderOnlineMonitoring, self).__init__(name) - - self.defineTarget("Online") diff --git a/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/TrigSecVtxFinder.cxx b/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/TrigSecVtxFinder.cxx deleted file mode 100644 index 901f2869229..00000000000 --- a/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/TrigSecVtxFinder.cxx +++ /dev/null @@ -1,424 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrigSecVtxFinder.h" -#include "GaudiKernel/MsgStream.h" - -#include "TrigSteeringEvent/TrigRoiDescriptor.h" -#include "TrigTimeAlgs/TrigTimerSvc.h" -#include "TrigInDetEvent/TrigVertexCollection.h" -#include "TrigInDetEvent/TrigInDetTrackCollection.h" - -#include "GeoPrimitives/GeoPrimitives.h" - -#include <sstream> - -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; // legacy trigger code - -TrigSecVtxFinder::TrigSecVtxFinder(const std::string &name, ISvcLocator *pSvcLocator): - HLT::FexAlgo(name, pSvcLocator), - m_algo(6), - m_useBeamSpotFlag(false), - m_trackJetTrkSelExt(false), - m_secVtx_num(0), - m_secVtx_numTrk(0), - m_secVtx_twoTrk(0), - m_secVtx_mass(0), - m_secVtx_energy(0), - m_secVtx_dl(0), - m_secVtx_dls(0), - m_trackJetFinderTool("TrigTrackJetFinderTool",this), - m_secvtxFinderTool("TrigInDetVxInJetTool",this) -{ - declareProperty ("AlgoId", m_algo, "Which track reconstruction algo at L2 to use"); - declareProperty ("SecVtxTool", m_secvtxFinderTool); - declareProperty ("UseBeamSpotFlag", m_useBeamSpotFlag = false); - declareProperty ("TrackJetTrkSelExt", m_trackJetTrkSelExt = false); - declareProperty ("UseJetDirection", m_useJetDirection); - - declareMonitoredVariable("SecVtx_Num", m_secVtx_num, AutoClear); - declareMonitoredVariable("SecVtx_NumTrk", m_secVtx_numTrk, AutoClear); - declareMonitoredVariable("SecVtx_TwoTrk", m_secVtx_twoTrk, AutoClear); - declareMonitoredVariable("SecVtx_Mass", m_secVtx_mass, AutoClear); - declareMonitoredVariable("SecVtx_Energy", m_secVtx_energy, AutoClear); - declareMonitoredVariable("SecVtx_DecayLength", m_secVtx_dl, AutoClear); - declareMonitoredVariable("SecVtx_DecayLengthSig", m_secVtx_dls, AutoClear); -} - -TrigSecVtxFinder::~TrigSecVtxFinder() { -} - -HLT::ErrorCode TrigSecVtxFinder::hltInitialize() { - - ATH_MSG_INFO( "TrigSecVtxFinder::initialize()" ); - - //* Retrieve TrigTrackJetFinder tool *// - StatusCode sc = m_trackJetFinderTool.retrieve(); - if(sc.isFailure()) { - ATH_MSG_FATAL( "Failed to locate tool " << m_trackJetFinderTool ); - return HLT::BAD_JOB_SETUP; - } else - ATH_MSG_INFO( "Retrieved tool " << m_trackJetFinderTool ); - - sc = m_secvtxFinderTool.retrieve(); - if ( sc.isFailure() ){ - ATH_MSG_FATAL( "Unable to retrieve TrigInDetVxInJetTool " << m_secvtxFinderTool ); - return HLT::BAD_JOB_SETUP; - } - else - ATH_MSG_INFO( "Retrieved tool " << m_secvtxFinderTool ); - - if(m_beamSpotKey.initialize().isFailure()) return HLT::BAD_JOB_SETUP; - - //* declareProperty overview *// - if (msgLvl() <= MSG::DEBUG) { - ATH_MSG_DEBUG( "declareProperty review:" ); - ATH_MSG_DEBUG( " AlgoId = " << m_algo ); - ATH_MSG_DEBUG( " UseBeamSpotFlag = " << m_useBeamSpotFlag ); - ATH_MSG_DEBUG( " TrackJetTrkSelExt = " << m_trackJetTrkSelExt ); - ATH_MSG_DEBUG( " UseJetDirection = " << m_useJetDirection ); - } - - return HLT::OK; -} - -HLT::ErrorCode TrigSecVtxFinder::hltExecute(const HLT::TriggerElement* inputTE, HLT::TriggerElement* outputTE) { - - // ====== get RoI descriptor ========= - const TrigRoiDescriptor* roiDescriptor = 0; - if ((getFeature(inputTE, roiDescriptor) == HLT::OK) && roiDescriptor) { - ATH_MSG_DEBUG( "Using inputTE: " - << "RoI id " << roiDescriptor->roiId() - << ", Phi = " << roiDescriptor->phi() - << ", Eta = " << roiDescriptor->eta() ); - } else { - ATH_MSG_DEBUG( "No RoI for this Trigger Element" ); - - return HLT::NAV_ERROR; - } - - // ====== get the necessary ingredients ========= - HLT::ErrorCode sc; - Trk::RecVertex prmVtx; - if ((sc = getPrmVtxForFit(prmVtx,outputTE)) != HLT::OK) { - - ATH_MSG_DEBUG( "REGTEST: RoI " << roiDescriptor->roiId() << ", Phi = " << roiDescriptor->phi() << ", Eta = " << roiDescriptor->eta() ); - ATH_MSG_DEBUG( "REGTEST: No Secondary vertex reconstructed (primary vertex not available)" ); - - return sc; - } - - if(prmVtx.fitQuality().chiSquared() == -9) { - - ATH_MSG_DEBUG( "REGTEST: RoI " << roiDescriptor->roiId() << ", Phi = " << roiDescriptor->phi() << ", Eta = " << roiDescriptor->eta() ); - ATH_MSG_DEBUG( "REGTEST: No Secondary vertex reconstructed (default primary vertex: -200 +/- -200)" ); - - return HLT::OK; - } - - if(prmVtx.fitQuality().chiSquared() == -99) { - - ATH_MSG_DEBUG( "REGTEST: RoI " << roiDescriptor->roiId() << ", Phi = " << roiDescriptor->phi() << ", Eta = " << roiDescriptor->eta() ); - ATH_MSG_DEBUG( "REGTEST: No Secondary vertex reconstructed (beam spot status not meeting requirement)" ); - - return HLT::OK; - } - - std::vector<const TrigInDetTrack*> tracks; - if ((sc = getSelectedTracks(tracks,outputTE)) != HLT::OK) return sc; - if (tracks.size() < 2) { - - ATH_MSG_DEBUG( "REGTEST: RoI " << roiDescriptor->roiId() << ", Phi = " << roiDescriptor->phi() << ", Eta = " << roiDescriptor->eta() ); - ATH_MSG_DEBUG( "REGTEST: No Secondary vertex reconstructed (less than 2 tracks)" ); - - return HLT::OK; - } - - CLHEP::HepLorentzVector jetDirection; - if ((sc = getJetDirection(jetDirection, tracks, prmVtx.position().z(), inputTE)) != HLT::OK) return sc; - - // ====== turn the crank of the algorithm ========== - const TrigVertex* secVertex = m_secvtxFinderTool->findSecVertex(prmVtx,jetDirection,tracks); - - - // ====== store the result ========== - ATH_MSG_DEBUG( "REGTEST: RoI " << roiDescriptor->roiId() << ", Phi = " << roiDescriptor->phi() << ", Eta = " << roiDescriptor->eta() ); - - if (!secVertex) { - - ATH_MSG_DEBUG( "REGTEST: No sec vtx reconstructed (not found by tool)" ); - - return HLT::OK; - - } else { - - ATH_MSG_DEBUG( "REGTEST: Sec vtx reconstructed: mass: " << secVertex->mass() - << " dl/sigma(dl): " << secVertex->decayLengthSignificance() ); - - TrackInVertexList* trackInVtx = secVertex->tracks(); - - m_secVtx_num++; - m_secVtx_mass = secVertex->mass(); - m_secVtx_twoTrk = secVertex->nTwoTracksSecVtx(); - m_secVtx_numTrk = trackInVtx->size(); - m_secVtx_energy = secVertex->energyFraction(); - m_secVtx_dl = secVertex->decayLength(); - m_secVtx_dls = secVertex->decayLengthSignificance(); - - } - - TrigVertexCollection* secVrtContainer = new TrigVertexCollection(); - secVrtContainer->push_back(const_cast<TrigVertex*>(secVertex)); - - if ((sc = attachFeature(outputTE, secVrtContainer, "secVrt")) != HLT::OK) - { - ATH_MSG_DEBUG( "Cannot attach feature to TE!" ); - return sc; - } - - - return HLT::OK; -} - -HLT::ErrorCode TrigSecVtxFinder::hltFinalize() { - - ATH_MSG_INFO( "TrigSecVtxFinder::finalize()" ); - return HLT::OK; -} - -HLT::ErrorCode TrigSecVtxFinder::getPrmVtxForFit(Trk::RecVertex& vertex, - const HLT::TriggerElement* outputTE) { - float x, y, z, exx, exy, exz, eyy, eyz, ezz; - exy = eyz = exz = 0; // cross-correlation 0 for now - - //* Retrieve primary vertex information *// - std::vector<const TrigVertexCollection*> vectorOfL2PrmVtxCollections; - const TrigVertexCollection* prmVtxColl = NULL; - if (getFeatures(outputTE, vectorOfL2PrmVtxCollections, "") != HLT::OK) { - ATH_MSG_ERROR( "Failed to get TrigVertexCollection from the trigger element" ); - return HLT::NAV_ERROR; - } - - for (int i = 0; i < (int) vectorOfL2PrmVtxCollections.size(); i++) - { - if (!vectorOfL2PrmVtxCollections[i] || vectorOfL2PrmVtxCollections[i]->size() == 0) - continue; - if (((m_algo == 1 || m_algo == 6) && vectorOfL2PrmVtxCollections[i]->front()->algorithmId() == 3) || - ((m_algo == 2 || m_algo == 5) && vectorOfL2PrmVtxCollections[i]->front()->algorithmId() == 10) || - ((m_algo == 8) && vectorOfL2PrmVtxCollections[i]->front()->algorithmId() == 19) || - ((m_algo == 13) && vectorOfL2PrmVtxCollections[i]->front()->algorithmId() == 23) ) { - prmVtxColl = vectorOfL2PrmVtxCollections[i]; - ATH_MSG_DEBUG( "Retrieved prm vertex collection with algo_id " << prmVtxColl->front()->algorithmId() ); - break; - } - } - if (!prmVtxColl || prmVtxColl->size() == 0) - { - ATH_MSG_ERROR( "Failed to get TrigVertexCollection from the trigger element" ); - return HLT::MISSING_FEATURE; - } - - z = prmVtxColl->at(0)->z(); - ezz = prmVtxColl->at(0)->cov()[5]; - - if ( z ==-200 && ezz==-200 ) { - vertex = Trk::RecVertex(Amg::Vector3D(0.,0.,0.),0,-9); - return HLT::OK; - } - - //* Retrieve beamspot information *// - SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey }; - - if (!beamSpotHandle.isValid()) { - ATH_MSG_WARNING( "Could not retrieve Beam Conditions Service. " ); - return HLT::ERROR; - } - - const Amg::Vector3D &beamSpot = beamSpotHandle->beamPos(); - - int beamSpotBitMap = beamSpotHandle->beamStatus(); - - //* Check if beam spot is from online algorithms *// - int beamSpotStatus = ((beamSpotBitMap & 0x4) == 0x4); - - //* Check if beam spot fit converged *// - if (beamSpotStatus) - beamSpotStatus = ((beamSpotBitMap & 0x3) == 0x3); - - ATH_MSG_DEBUG( "Beam spot from service: x=" << beamSpot.x() << ", y=" << beamSpot.y() << ", z=" << beamSpot.z() - << ", tiltXZ=" << beamSpotHandle->beamTilt(0) << ", tiltYZ=" << beamSpotHandle->beamTilt(1) - << ", sigmaX=" << beamSpotHandle->beamSigma(0) << ", sigmaY=" << beamSpotHandle->beamSigma(1) << ", sigmaZ=" << beamSpotHandle->beamSigma(2) - << ", status=" << beamSpotStatus ); - - if (m_useBeamSpotFlag && !beamSpotStatus) { - ATH_MSG_DEBUG( "Beam spot status not meeting requirement." ); - vertex = Trk::RecVertex(Amg::Vector3D(0.,0.,0.),0,-99); - return HLT::OK; - } - - x = beamSpot.x(); - y = beamSpot.y(); - - //* Apply beam spot correction for tilt *// - x = x + tan(beamSpotHandle->beamTilt(0)) * (z - beamSpot.z()); - y = y + tan(beamSpotHandle->beamTilt(1)) * (z - beamSpot.z()); - - exx = beamSpotHandle->beamSigma(0); - eyy = beamSpotHandle->beamSigma(1); - - AmgSymMatrix(3) err; - err(1,1) = exx; - err(2,2) = eyy; - err(3,3) = ezz; - err(1,2) = err(2,1) = exy; - err(1,3) = err(3,1) = exz; - err(2,3) = err(3,2) = eyz; - - AmgSymMatrix(3) cov = err; - vertex = Trk::RecVertex(Amg::Vector3D(x,y,z), cov, - prmVtxColl->at(0)->ndof(), prmVtxColl->at(0)->chi2()); - return HLT::OK; -} - -HLT::ErrorCode TrigSecVtxFinder::getSelectedTracks(std::vector<const TrigInDetTrack*>& tracks, - const HLT::TriggerElement* outputTE) { - tracks.clear(); - std::vector<const TrigInDetTrackCollection*> vectorOfL2TrackCollections; - - if (getFeatures(outputTE, vectorOfL2TrackCollections, "") != HLT::OK) { - ATH_MSG_ERROR( "Failed to get InDetTrackCollection from the trigger element" ); - } else - ATH_MSG_DEBUG( "Got " << vectorOfL2TrackCollections.size() << " InDetTrackCollection" ); - - std::vector<const TrigInDetTrackCollection*>::iterator trackCollection = vectorOfL2TrackCollections.begin(); - std::vector<const TrigInDetTrackCollection*>::iterator lastTrackColl = vectorOfL2TrackCollections.end(); - - for ( ; trackCollection != lastTrackColl; trackCollection++) { - if ((*trackCollection)->size() != 0) { - if ((*trackCollection)->front()->algorithmId() == m_algo) { - if (m_algo == 1) - ATH_MSG_DEBUG( "Selected collection with SiTrack label" ); - else if (m_algo == 2) - ATH_MSG_DEBUG( "Selected collection with IdScan label" ); - else if (m_algo == 5) - ATH_MSG_DEBUG( "Selected collection with L2Star label (strategy A)" ); - else if (m_algo == 6) - ATH_MSG_DEBUG( "Selected collection with L2Star label (strategy B)" ); - else if (m_algo == 8) - ATH_MSG_DEBUG( "Selected collection with L2Star label (strategy F)" ); - break; - } - } - } - - if (trackCollection == lastTrackColl) - { - ATH_MSG_DEBUG( "No track collection found or colletion empty" ); - return HLT::OK; - } - - for (int i = 0; i < (int) (*trackCollection)->size(); i++) - tracks.push_back((*trackCollection)->at(i)); - - // TODO do track selection before calling trackJetFinder? - ATH_MSG_DEBUG( "Selected " << tracks.size() << " tracks." ); - - return HLT::OK; -} - -HLT::ErrorCode TrigSecVtxFinder::getJetDirection(CLHEP::HepLorentzVector& jetDirection, - std::vector<const TrigInDetTrack*>& tracks, - float prmVtx_z, - const HLT::TriggerElement* inputTE) { - - float etaRoI=0, phiRoI=0; - float etaJet=0, phiJet=0; - float etaTrkJet=0, phiTrkJet=0; - - //* Get the updated RoI descriptor *// - const TrigRoiDescriptor* roiDescriptor = 0; - if ((getFeature(inputTE, roiDescriptor) == HLT::OK) && roiDescriptor) { - ATH_MSG_DEBUG( "Using inputTE: " << "RoI id " << roiDescriptor->roiId() - << ", Phi = " << roiDescriptor->phi() << ", Eta = " << roiDescriptor->eta() ); - - etaJet=roiDescriptor->eta(); - phiJet=roiDescriptor->phi(); - - } else { - ATH_MSG_DEBUG( "No RoI for this Trigger Element" ); - - return HLT::NAV_ERROR; - } - - //* Get the initial RoI descriptor *// - const TrigRoiDescriptor* initialRoI = 0; - if (getFeature(inputTE, initialRoI, "initialRoI") == HLT::OK) { - if (initialRoI) { - ATH_MSG_DEBUG( "Using initialRoI: " << "RoI id " << initialRoI->roiId() - << ", Phi = " << initialRoI->phi() << ", Eta = " << initialRoI->eta() ); - } else { - initialRoI=roiDescriptor; // L1.5 Jets... - } - - etaRoI=initialRoI->eta(); - phiRoI=initialRoI->phi(); - - } else { - ATH_MSG_DEBUG( "No RoI for this Trigger Element" ); - - return HLT::NAV_ERROR; - } - - m_trackJetFinderTool->clear(); - m_trackJetFinderTool->inputPrimaryVertexZ(prmVtx_z); - - ATH_MSG_DEBUG( "getJetDirection() using Ext track sel = " << m_trackJetTrkSelExt ); - if(m_trackJetTrkSelExt) m_trackJetFinderTool->setExtTrackSel(true); - - for (unsigned int i = 0; i < (unsigned int) tracks.size(); i++) { - const TrigInDetTrack* trk = tracks[i]; - m_trackJetFinderTool->addTrack(trk,i); - } - - std::vector<int> tracksTrackJet; - - m_trackJetFinderTool->findJet(tracksTrackJet, etaTrkJet, phiTrkJet); - - if (etaTrkJet == -99 || phiTrkJet == -99) { - etaTrkJet = etaRoI; - phiTrkJet = phiRoI; - } - - ATH_MSG_DEBUG( "eta RoI " << etaRoI << " phiRoI " << phiRoI - << "; eta TrkJet " << etaTrkJet << " phi TrkJet " << phiTrkJet - << "; eta Jet " << etaJet << " phi Jet " << phiJet ); - - if (m_useJetDirection == 1) { - - ATH_MSG_DEBUG( "Using the LVL2 jet direction as input" ); - - jetDirection.setX(cos(phiJet)); - jetDirection.setY(sin(phiJet)); - jetDirection.setZ(sinh(etaJet)); - - } else if (m_useJetDirection == 2) { - - ATH_MSG_DEBUG( "Using the LVL2 track-jet direction as input" ); - - jetDirection.setX(cos(phiTrkJet)); - jetDirection.setY(sin(phiTrkJet)); - jetDirection.setZ(sinh(etaTrkJet)); - - } else if (m_useJetDirection == 3) { - - ATH_MSG_DEBUG( "Using the LVL1 RoI jet direction as input" ); - - jetDirection.setX(cos(phiRoI)); - jetDirection.setY(sin(phiRoI)); - jetDirection.setZ(sinh(etaRoI)); - - } - - return HLT::OK; -} diff --git a/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/TrigSecVtxFinder.h b/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/TrigSecVtxFinder.h deleted file mode 100644 index 690818ce0da..00000000000 --- a/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/TrigSecVtxFinder.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -*/ - -// ************************************************ -// -// NAME: TrigSecVtxFinder.h -// PACKAGE: Trigger/TrigAlgorithms/TrigSecVtxFinder -// -// AUTHOR: Xinlu Huang -// EMAIL: xinlu.huang@cern.ch -// -// ************************************************ - -#ifndef TRIGSECVTXFINDER_H -#define TRIGSECVTXFINDER_H - -#include "GaudiKernel/ToolHandle.h" -#include "TrigTimeAlgs/TrigTimer.h" -#include "TrigInterfaces/FexAlgo.h" - -#include "TrigInDetToolInterfaces/ITrigTrackJetFinderTool.h" -#include "TrigInDetToolInterfaces/ITrigInDetVxInJetTool.h" -#include "BeamSpotConditionsData/BeamSpotData.h" - -#include "CxxUtils/checker_macros.h" -ATLAS_NO_CHECK_FILE_THREAD_SAFETY; // legacy trigger code - -namespace CLHEP { - class HepLorentzVector; -} - - -class ISecVertexInJetFinder; - -class TrigSecVtxFinder: public HLT::FexAlgo { - -public: - TrigSecVtxFinder(const std::string& name, ISvcLocator* pSvcLocator); - virtual ~TrigSecVtxFinder(); - HLT::ErrorCode hltInitialize(); - HLT::ErrorCode hltExecute(const HLT::TriggerElement*, HLT::TriggerElement* outputTE); - HLT::ErrorCode hltFinalize(); - -private: - - int m_algo; - bool m_useBeamSpotFlag; - bool m_trackJetTrkSelExt; - unsigned int m_useJetDirection; - - unsigned int m_secVtx_num; - unsigned int m_secVtx_numTrk; - unsigned int m_secVtx_twoTrk; - float m_secVtx_mass; - float m_secVtx_energy; - float m_secVtx_dl; - float m_secVtx_dls; - - /** @brief TrigTrackJetFinder tool. */ - ToolHandle<ITrigTrackJetFinderTool> m_trackJetFinderTool; - /** @brief SV algo tool. */ - ToolHandle<ITrigInDetVxInJetTool> m_secvtxFinderTool; - - HLT::ErrorCode getPrmVtxForFit(Trk::RecVertex&, const HLT::TriggerElement*); - HLT::ErrorCode getSelectedTracks(std::vector<const TrigInDetTrack*>&, const HLT::TriggerElement*); - HLT::ErrorCode getJetDirection(CLHEP::HepLorentzVector&, std::vector<const TrigInDetTrack*>&, float, const HLT::TriggerElement*); - SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }; - -}; - -#endif diff --git a/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/components/TrigSecVtxFinder_entries.cxx b/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/components/TrigSecVtxFinder_entries.cxx deleted file mode 100644 index 5784170c6fb..00000000000 --- a/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/components/TrigSecVtxFinder_entries.cxx +++ /dev/null @@ -1,3 +0,0 @@ -#include "../TrigSecVtxFinder.h" - -DECLARE_COMPONENT( TrigSecVtxFinder ) diff --git a/Trigger/TrigTools/TrigInDetToolInterfaces/TrigInDetToolInterfaces/ITrigInDetVxInJetTool.h b/Trigger/TrigTools/TrigInDetToolInterfaces/TrigInDetToolInterfaces/ITrigInDetVxInJetTool.h deleted file mode 100755 index e6f7fa08df9..00000000000 --- a/Trigger/TrigTools/TrigInDetToolInterfaces/TrigInDetToolInterfaces/ITrigInDetVxInJetTool.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -*/ - -// ************************************************** -// -// NAME: ITrigInDetVxInJetTool.h -// -// AUTHOR: Andrea Coccaro -// MAIL: Andrea.Coccaro AT cern.ch -// -// ************************************************** - -#ifndef ITRIGINDETVXINJETTOOL_H -#define ITRIGINDETVXINJETTOOL_H - -#include "GaudiKernel/IAlgTool.h" - - - -class TrigInDetTrack; -class TrigVertex; -namespace CLHEP { class HepLorentzVector; } -namespace Trk { class RecVertex; } - - -static const InterfaceID IID_ITrigInDetVxInJetTool("ITrigInDetVxInJetTool", 1, 0); - -class ITrigInDetVxInJetTool : virtual public IAlgTool { - - public: - - static const InterfaceID& interfaceID() { return IID_ITrigInDetVxInJetTool;} - - virtual const TrigVertex* findSecVertex(const Trk::RecVertex&, - const CLHEP::HepLorentzVector&, - const std::vector<const TrigInDetTrack*>&) =0; - -}; - -#endif diff --git a/Trigger/TrigTools/TrigInDetVxInJetTool/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigTools/TrigInDetVxInJetTool/ATLAS_CHECK_THREAD_SAFETY deleted file mode 100644 index fbcc2841acc..00000000000 --- a/Trigger/TrigTools/TrigInDetVxInJetTool/ATLAS_CHECK_THREAD_SAFETY +++ /dev/null @@ -1 +0,0 @@ -Trigger/TrigTools/TrigInDetVxInJetTool diff --git a/Trigger/TrigTools/TrigInDetVxInJetTool/CMakeLists.txt b/Trigger/TrigTools/TrigInDetVxInJetTool/CMakeLists.txt deleted file mode 100644 index 0a7d573ac34..00000000000 --- a/Trigger/TrigTools/TrigInDetVxInJetTool/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -# Declare the package name: -atlas_subdir( TrigInDetVxInJetTool ) - -# External dependencies: -find_package( ROOT COMPONENTS Core MathCore Hist ) - -# Component(s) in the package: -atlas_add_component( TrigInDetVxInJetTool - src/*.cxx - src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AnalysisUtilsLib AthenaBaseComps GaudiKernel GeoPrimitives TrigInDetEvent TrigInDetToolInterfacesLib TrigInterfacesLib TrigVKalFitterLib VxVertex ) diff --git a/Trigger/TrigTools/TrigInDetVxInJetTool/src/CutTrk.cxx b/Trigger/TrigTools/TrigInDetVxInJetTool/src/CutTrk.cxx deleted file mode 100755 index 677ae61f76d..00000000000 --- a/Trigger/TrigTools/TrigInDetVxInJetTool/src/CutTrk.cxx +++ /dev/null @@ -1,120 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Header include -#include "TrigInDetVxInJetTool.h" -#include "TrigInDetEvent/TrigInDetTrack.h" -#include "AnalysisUtils/AnalysisMisc.h" -#include <iostream> -#include "TMath.h" - - -int TrigInDetVxInJetTool::SelGoodTrigTrack( const std::vector<const TrigInDetTrack*>& InpTrk, - const Trk::RecVertex & PrimVrt, - const CLHEP::HepLorentzVector & JetDir, - std::vector<const TrigInDetTrack*>& SelectedTracks) { - - std::vector<const TrigInDetTrack*>::const_iterator i_ntrk = InpTrk.begin(); - const TrigInDetTrackFitPar* mPer=0; - std::vector<double> Impact,ImpactError; - double ImpactSignif=0; - int NPrimTrk=0; - - for (unsigned int j=0; i_ntrk < InpTrk.end(); ++i_ntrk, ++j) { - - mPer=(*i_ntrk)->param(); - - if (mPer->ea0() > m_A0TrkErrorCut) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " not selected: ea0=" << mPer->ea0() << " > " << m_A0TrkErrorCut << endmsg; - continue; - } - - if (mPer->ez0() > m_ZTrkErrorCut) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " not selected: ez0=" << mPer->ez0() << " > " << m_ZTrkErrorCut << endmsg; - continue; - } - - double adeta = JetDir.pseudoRapidity() - mPer->eta(); - double adphi = fabs(JetDir.phi() - mPer->phi0()); - - if (adphi < -TMath::Pi()) adphi += 2*TMath::Pi(); - if (adphi > TMath::Pi()) adphi -= 2*TMath::Pi(); - - double dist = sqrt(adphi*adphi + adeta*adeta); - - if(dist > m_ConeForTag) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " not selected: jetDistance=" << dist << " > " << m_ConeForTag << endmsg; - continue; - } - - long int PixelHits = 3; - long int SctHits = 9; - long int SharedHits = 0; //Always 0 now - long int BLayHits = 1; - - PixelHits = (long int)(*i_ntrk)->NPixelSpacePoints(); - SctHits = (long int)(*i_ntrk)->NSCT_SpacePoints(); - BLayHits = 0; - if ((*i_ntrk)->HitPattern()) BLayHits = ((*i_ntrk)->HitPattern() & 0x1) ? 1 : 0; - if(PixelHits < 0 ) PixelHits=0; - if(SctHits < 0 ) SctHits=0; - //if(BLayHits < 0 ) BLayHits=0; - ImpactSignif = m_fitSvc->VKalGetImpact((*i_ntrk), PrimVrt.position(), 1, Impact, ImpactError); - if (ImpactSignif == -9999.0) continue; - double ImpactA0=Impact[0]; - double ImpactZ=Impact[1]; - - //Using CutChi2Ndof instead of CutProbChi2 - //double trkProbChi2=TMath::Prob((*i_ntrk)->chi2(),(PixelHits+SctHits)*3-5); - double Dof = ((PixelHits+SctHits)*3-5)==0?-0.1:(PixelHits+SctHits)*3-5; - double trkChi2Ndof = (*i_ntrk)->chi2()/Dof; - - double ThetaVert = 2.0*atan(exp(-mPer->eta())); - if( !std::isfinite(ThetaVert) ) continue; - - if(fabs(mPer->pT()) < m_CutPt) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " not selected: pT=" << mPer->pT() << " < " << m_CutPt << endmsg; - continue; - } - if(fabs(ImpactZ) > m_CutZVrt/sin(ThetaVert)) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " not selected: impactZ=" << fabs(ImpactZ) << " > " << m_CutZVrt/sin(ThetaVert) << endmsg; - continue; - } - if(trkChi2Ndof > m_CutChi2Ndof) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " not selected: Chi2/Ndof=" << trkChi2Ndof << " > " << m_CutChi2Ndof << endmsg; - continue; - } - if(fabs(ImpactA0) > m_CutA0) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " not selected: impactA0=" << fabs(ImpactA0) << " > " << m_CutA0 << endmsg; - continue; - } - if(PixelHits < m_CutPixelHits) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " not selected: pixelHits=" << PixelHits << " < " << m_CutPixelHits << endmsg; - continue; - } - if(SctHits < m_CutSctHits) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " not selected: sctHits=" << SctHits << " < " << m_CutSctHits << endmsg; - continue; - } - if((PixelHits+SctHits) < m_CutSiHits) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " not selected: siHits=" << PixelHits+SctHits << " < " << m_CutSiHits << endmsg; - continue; - } - if(BLayHits < m_CutBLayHits) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " not selected: bLayer=" << BLayHits << " < " << m_CutBLayHits << endmsg; - continue; - } - if(SharedHits > m_CutSharedHits) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " not selected: sharedHits=" << SharedHits << " < " << m_CutSharedHits << endmsg; - continue; - } - - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " track # " << j+1 << " selected" << endmsg; - - if(ImpactSignif < 3.)NPrimTrk += 1; - SelectedTracks.push_back(*i_ntrk); - } - return NPrimTrk; -} - diff --git a/Trigger/TrigTools/TrigInDetVxInJetTool/src/TrigInDetVxInJetTool.cxx b/Trigger/TrigTools/TrigInDetVxInJetTool/src/TrigInDetVxInJetTool.cxx deleted file mode 100755 index b1481edb802..00000000000 --- a/Trigger/TrigTools/TrigInDetVxInJetTool/src/TrigInDetVxInJetTool.cxx +++ /dev/null @@ -1,170 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "VxVertex/RecVertex.h" -#include "TrigInDetVxInJetTool.h" -#include "TrigInDetEvent/TrigInDetTrack.h" -#include "TrigInDetEvent/TrigVertex.h" -#include "TMath.h" - - -#include<iostream> - -#include "TrigInterfaces/Algo.h" - -// -//Constructor-------------------------------------------------------------- -TrigInDetVxInJetTool::TrigInDetVxInJetTool(const std::string& type, - const std::string& name, - const IInterface* parent): - AthAlgTool(type,name,parent), - m_CutSctHits(0), // was 4 - m_CutPixelHits(2), // was 1 - m_CutSiHits(4), // was 7 - m_CutBLayHits(1), // was 0 - m_CutSharedHits(1), - m_CutPt(1000.), - m_CutZVrt(25.), - m_CutA0(5.), - m_CutProbChi2(0.001), - m_CutChi2Ndof(0.2), - m_SecTrkChi2Cut(10.), - m_ConeForTag(0.4), - m_Sel2VrtChi2Cut(4.5), - m_Sel2VrtSigCut(3.0), - m_TrkSigCut(2.0), - m_TrkSigSumCut(2.), - m_A0TrkErrorCut(1.0), - m_ZTrkErrorCut(5.0), - m_AntiPileupSigRCut(2.0), - m_AntiPileupSigZCut(6.0), - m_AntiFake2trVrtCut(0.5), - m_RobustFit(5), - m_Xbeampipe (0.), - m_Ybeampipe (0.), - m_XlayerB (0.), - m_YlayerB (0.), - m_Xlayer1 (0.), - m_Ylayer1 (0.), - m_Xlayer2 (0.), - m_Ylayer2 (0.), - m_Rbeampipe (29.4), - m_RlayerB (50.5), - m_Rlayer1 (88.0), - m_Rlayer2 (123.0), - m_getNegativeTail(true), - m_getNegativeTag(false), - m_doTrackSelection(true), - m_fitSvc("TrigVKalFitter/VertexFitterTool",this) -{ - - declareInterface< ITrigInDetVxInJetTool >(this); - - declareProperty("CutSctHits", m_CutSctHits , "Remove track is it has less SCT hits" ); - declareProperty("CutPixelHits", m_CutPixelHits, "Remove track is it has less Pixel hits"); - declareProperty("CutSiHits", m_CutSiHits, "Remove track is it has less Pixel+SCT hits" ); - declareProperty("CutBLayHits", m_CutBLayHits, "Remove track is it has less B-layer hits" ); - declareProperty("CutSharedHits", m_CutSharedHits, "Reject final 2tr vertices if tracks have shared hits" ); - - declareProperty("CutPt", m_CutPt, "Track Pt selection cut" ); - declareProperty("CutA0", m_CutA0, "Track A0 selection cut" ); - declareProperty("CutZVrt", m_CutZVrt, "Track Z impact selection cut" ); - declareProperty("ConeForTag", m_ConeForTag, "Cone around jet direction for track selection" ); - declareProperty("CutProbChi2", m_CutProbChi2, "Track Chi2 probability selection cut" ); - declareProperty("CutChi2Ndof", m_CutChi2Ndof, "Track Chi2/Ndof selection cut" ); - declareProperty("TrkSigCut", m_TrkSigCut, "Track 3D impact significance w/r primary vertex" ); - declareProperty("TrkSigSumCut", m_TrkSigSumCut, "Sum of 3D track significances cut for 2tr vertex search" ); - declareProperty("SecTrkChi2Cut", m_SecTrkChi2Cut, "Track - common secondary vertex association cut. Single Vertex Finder only" ); - - declareProperty("A0TrkErrorCut", m_A0TrkErrorCut, "Track A0 error cut" ); - declareProperty("ZTrkErrorCut", m_ZTrkErrorCut, "Track Z impact error cut" ); - - declareProperty("Sel2VrtChi2Cut", m_Sel2VrtChi2Cut, "Cut on Chi2 of 2-track vertex for initial selection" ); - declareProperty("Sel2VrtSigCut", m_Sel2VrtSigCut, "Cut on significance of 3D distance between initial 2-track vertex and PV" ); - declareProperty("AntiPileupSigRCut", m_AntiPileupSigRCut, "Remove tracks with low Rphi and big Z impacts presumably coming from pileup" ); - declareProperty("AntiPileupSigZCut", m_AntiPileupSigZCut, "Remove tracks with low Rphi and big Z impacts presumably coming from pileup" ); - declareProperty("AntiFake2trVrtCut", m_AntiFake2trVrtCut, "Cut to reduce fake 2-track vertices contribution.Single Vertex Finder only" ); - - declareProperty("RobustFit", m_RobustFit, "Use vertex fit with RobustFit functional(VKalVrt) for common secondary vertex fit" ); - - declareProperty("Xbeampipe", m_Xbeampipe); - declareProperty("Ybeampipe", m_Ybeampipe); - declareProperty("XlayerB", m_XlayerB ); - declareProperty("YlayerB", m_YlayerB ); - declareProperty("Xlayer1", m_Xlayer1 ); - declareProperty("Ylayer1", m_Ylayer1 ); - declareProperty("Xlayer2", m_Xlayer2 ); - declareProperty("Ylayer2", m_Ylayer2 ); - declareProperty("Rbeampipe", m_Rbeampipe); - declareProperty("RlayerB", m_RlayerB ); - declareProperty("Rlayer1", m_Rlayer1 ); - declareProperty("Rlayer2", m_Rlayer2 ); - - declareProperty("getNegativeTail", m_getNegativeTail, "Allow secondary vertex behind the primary one (negative) w/r jet direction (not for multivertex!)" ); - declareProperty("getNegativeTag", m_getNegativeTag, "Return ONLY negative secondary vertices (not for multivertex!)" ); - - declareProperty("VertexFitterTool", m_fitSvc); - - m_massPi = 139.5702 ; - m_massP = 938.272 ; - m_massE = 0.511 ; - m_massK0 = 497.648 ; - m_massLam =1115.683 ; -} - -//Destructor--------------------------------------------------------------- -TrigInDetVxInJetTool::~TrigInDetVxInJetTool(){ - if(msgLvl(MSG::DEBUG))msg(MSG::DEBUG)<< "TrigInDetVxInJetTool destructor called" << endmsg; -} - -//Initialize--------------------------------------------------------------- -StatusCode TrigInDetVxInJetTool::initialize(){ - if(msgLvl(MSG::DEBUG))msg(MSG::DEBUG)<< "TrigInDetVxInJetTool initialize() called" << endmsg; - - if (m_fitSvc.retrieve().isFailure()) { - if(msgLvl(MSG::DEBUG))msg(MSG::DEBUG) << "Could not find Trk::TrkVKalVrtFitter" << endmsg; - return StatusCode::SUCCESS; - } else { - if(msgLvl(MSG::DEBUG))msg(MSG::DEBUG) << "TrigInDetVxInJetTool TrkVKalVrtFitter found" << endmsg; - } - - if(m_getNegativeTag){ - if(msgLvl(MSG::INFO))msg(MSG::INFO) << " Negative TAG is requested! " << endmsg; - if(msgLvl(MSG::INFO))msg(MSG::INFO) << "Not compatible with negativeTAIL option, so getNegativeTail is set to FALSE." << endmsg; - m_getNegativeTail=false; - } - - for(int ntv=2; ntv<=10; ntv++) m_chiScale[ntv]=TMath::ChisquareQuantile(0.9,2.*ntv-3.)/ntv; - m_chiScale[0]=m_chiScale[2]; - for(int ntv=2; ntv<=10; ntv++) m_chiScale[ntv]/=m_chiScale[0]; - - if(m_RobustFit>7)m_RobustFit=7; - if(m_RobustFit<0)m_RobustFit=0; - - return StatusCode::SUCCESS; - -} - - -StatusCode TrigInDetVxInJetTool::finalize() { - if(msgLvl(MSG::DEBUG))msg(MSG::DEBUG) <<"TrigInDetVxInJetTool finalize()" << endmsg; - return StatusCode::SUCCESS; -} - - -const TrigVertex* TrigInDetVxInJetTool::findSecVertex(const Trk::RecVertex & PrimVrt, - const CLHEP::HepLorentzVector & JetDir, - const std::vector<const TrigInDetTrack*> & InpTrk) { - - std::vector<double> Results; - std::vector<const TrigInDetTrack*> SelSecTrk; - std::vector< std::vector<const TrigInDetTrack*> > SelSecTrkPerVrt; - std::vector<const TrigInDetTrack*> TrkFromV0; - - TrigVertex* secVrt = GetVrtSec(InpTrk, PrimVrt, JetDir, Results, SelSecTrk, TrkFromV0); - //m_fitSvc->clearMemory(); - return secVrt; - -} - diff --git a/Trigger/TrigTools/TrigInDetVxInJetTool/src/TrigInDetVxInJetTool.h b/Trigger/TrigTools/TrigInDetVxInJetTool/src/TrigInDetVxInJetTool.h deleted file mode 100644 index e52908ea088..00000000000 --- a/Trigger/TrigTools/TrigInDetVxInJetTool/src/TrigInDetVxInJetTool.h +++ /dev/null @@ -1,193 +0,0 @@ -/* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -*/ - -// -// TrigInDetVxInJetTool.h - Description -// -/* - Tool for secondary vertex inside jet reconstruction. - It returns a pointer to TrigVertex object which contains - information about the reconstructed vertex. - In case of failure pointer to TrigVertex is 0. - - - Author: Vadim Kostyukhin - e-mail: vadim.kostyukhin@cern.ch - - -----------------------------------------------------------------------------*/ - - - -#ifndef _VKalVrt_TrigInDetVxInJetTool_H -#define _VKalVrt_TrigInDetVxInJetTool_H -// Normal STL and physical vectors -#include <vector> -#include "GeoPrimitives/GeoPrimitives.h" -// Gaudi includes -#include "AthenaBaseComps/AthAlgTool.h" -#include "GaudiKernel/ToolHandle.h" - -#include "TrigInDetToolInterfaces/ITrigInDetVxInJetTool.h" - -#include "TrigVKalFitter/TrigVKalFitter.h" - -#include "GaudiKernel/ServiceHandle.h" - -#include "TH1D.h" -#include "TH2D.h" - -class TrigInDetTrack; -class TrigVertex; - -namespace Trk{ class RecVertex; } - - -typedef std::vector<double> dvect; - - -//------------------------------------------------------------------------ - -class TrigInDetVxInJetTool : public AthAlgTool, virtual public ITrigInDetVxInJetTool { - - -public: - - TrigInDetVxInJetTool(const std::string& type, const std::string& name, const IInterface* parent); - virtual ~TrigInDetVxInJetTool(); - - StatusCode initialize(); - StatusCode finalize(); - - - const TrigVertex* findSecVertex(const Trk::RecVertex &, - const CLHEP::HepLorentzVector &, - const std::vector<const TrigInDetTrack*> &); - -private: - - int m_CutSctHits; - int m_CutPixelHits; - int m_CutSiHits; - int m_CutBLayHits; - int m_CutSharedHits; - float m_CutPt; - float m_CutZVrt; - float m_CutA0; - float m_CutProbChi2; - float m_CutChi2Ndof; - float m_SecTrkChi2Cut; - float m_ConeForTag; - float m_Sel2VrtChi2Cut; - float m_Sel2VrtSigCut; - float m_TrkSigCut; - float m_TrkSigSumCut; - float m_A0TrkErrorCut; - float m_ZTrkErrorCut; - float m_AntiPileupSigRCut; - float m_AntiPileupSigZCut; - float m_AntiFake2trVrtCut; - - long int m_RobustFit; - - float m_Xbeampipe; - float m_Ybeampipe; - float m_XlayerB; - float m_YlayerB; - float m_Xlayer1; - float m_Ylayer1; - float m_Xlayer2; - float m_Ylayer2; - float m_Rbeampipe; - - float m_RlayerB; - float m_Rlayer1; - float m_Rlayer2; - - bool m_getNegativeTail; - bool m_getNegativeTag; - - TrigVertex* GetVrtSec(const std::vector<const TrigInDetTrack*> & InpTrk, - const Trk::RecVertex & PrimVrt, - const CLHEP::HepLorentzVector & JetDir, - std::vector<double> & Results, - std::vector<const TrigInDetTrack*> & SelSecTrk, - std::vector<const TrigInDetTrack*> & TrkFromV0); - - bool m_doTrackSelection; - - /** @brief for monitoring purposes. */ - std::vector<float> m_cutFlowTrkSel; - std::vector<float> m_cutFlowTwoTrkVtxSel; - - ToolHandle < ITrigVKalFitter > m_fitSvc; - - double m_massPi ; - double m_massP ; - double m_massE; - double m_massK0; - double m_massLam; - - // For multivertex version only - - float m_chiScale[11]; - - // Gives correct mass assignment in case of nonequal masses - double massV0( std::vector< std::vector<double> >& TrkAtVrt, double massP, double massPi ) const; - int FindMax( std::vector<double>& Chi2PerTrk) const; - - - CLHEP::HepLorentzVector TotalMom(const std::vector<const TrigInDetTrack*>& InpTrk) const; - double pTvsDir(const Amg::Vector3D &Dir, const std::vector<double>& InpTrk) const; - - - double VrtVrtDist(const Trk::RecVertex & PrimVrt, const Amg::Vector3D & SecVrt, - const std::vector<double> VrtErr,double& Signif ) const; - double VrtVrtDist(const Trk::RecVertex & PrimVrt, const Amg::Vector3D & SecVrt, - const std::vector<double> SecVrtErr, const CLHEP::HepLorentzVector & JetDir) const; - double VrtVrtDist(const Amg::Vector3D & Vrt1, const std::vector<double>& VrtErr1, - const Amg::Vector3D & Vrt2, const std::vector<double>& VrtErr2) const; - - double ProjPos(const Amg::Vector3D & Vrt,const CLHEP::HepLorentzVector & JetDir) const; - static bool sortbyPtPredicate(const TrigInDetTrack* t1, const TrigInDetTrack* t2); - - template <class Track> - double FitCommonVrt(std::vector<const Track*>& ListSecondTracks, - const Trk::RecVertex & PrimVrt, - std::vector<double> & InpMass, - Amg::Vector3D & FitVertex, - std::vector<double> & ErrorMatrix, - CLHEP::HepLorentzVector & Momentum, - std::vector< std::vector<double> > & TrkAtVrt); - - void RemoveEntryInList(std::vector<const TrigInDetTrack*>& , int) const; - - int SelGoodTrigTrack(const std::vector<const TrigInDetTrack*>& InpPart, - const Trk::RecVertex & PrimVrt, - const CLHEP::HepLorentzVector & JetDir, - std::vector<const TrigInDetTrack*> & SelPart); - - template <class Track> - void Select2TrVrt(std::vector<const Track*> & SelectedTracks, - std::vector<const Track*> & TracksForFit, - const Trk::RecVertex & PrimVrt, - const CLHEP::HepLorentzVector & JetDir, - std::vector<double> & InpMass, - std::vector<const Track*> & TrkFromV0, - std::vector<const Track*> & ListSecondTracks); - - StatusCode VKalVrtFitFastBase(const std::vector<const TrigInDetTrack*>& listPart,Amg::Vector3D& Vertex); - - StatusCode VKalVrtFitBase(const std::vector<const TrigInDetTrack*> & listPart, - Amg::Vector3D & Vertex, - CLHEP::HepLorentzVector & Momentum, - long int & Charge, - std::vector<double> & ErrorMatrix, - std::vector<double> & Chi2PerTrk, - std::vector< std::vector<double> > & TrkAtVrt, - double & Chi2 ); - -}; - - -#endif diff --git a/Trigger/TrigTools/TrigInDetVxInJetTool/src/TrigVrtSec.cxx b/Trigger/TrigTools/TrigInDetVxInJetTool/src/TrigVrtSec.cxx deleted file mode 100755 index b822833f791..00000000000 --- a/Trigger/TrigTools/TrigInDetVxInJetTool/src/TrigVrtSec.cxx +++ /dev/null @@ -1,715 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Header include -#include "TrigInDetVxInJetTool.h" -//------------------------------------------------- -// Other stuff -#include "AnalysisUtils/AnalysisMisc.h" -#include "TrigInDetEvent/TrigInDetTrack.h" -#include "TrigInDetEvent/TrigVertex.h" -#include "VxVertex/RecVertex.h" -#include "TMath.h" - -#include<iostream> - - -//---------------------------------------------------------------------------------------- -// GetVrtSec resurns the vector Results with the following -// 0) Vertex mass -// 1) Vertex/jet energy fraction -// 2) Number of initially selected 2tr vertices -// 3) Number of selected for vertexing tracks in jet -// 4) Number of track in secondary vertex -// 5) 3D SV-PV significance with sign -// 6) Maximal track Pt with respect to jet axis -// 7) Jet energy used in (2) calculation -//---------------------------------------------------------------------------------------- - - -TrigVertex* TrigInDetVxInJetTool::GetVrtSec(const std::vector<const TrigInDetTrack*>& InpTrk, - const Trk::RecVertex & PrimVrt, - const CLHEP::HepLorentzVector & JetDir, - std::vector<double> & Results, - std::vector<const TrigInDetTrack*> & ListSecondTracks, - std::vector<const TrigInDetTrack*> & TrkFromV0) { - - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "GetVrtSec() called # tracks = " << InpTrk.size() << endmsg; - - std::vector<const TrigInDetTrack*> SelectedTracks; - SelectedTracks.clear(); - ListSecondTracks.clear(); - Results.clear(); - - //* Reason "# ini trks = 0,1" *// - if( InpTrk.size() < 2 ) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason '# ini trks = 0,1'" << endmsg; - m_cutFlowTrkSel.push_back(1); return 0; - } - - int NPVParticle = 0; - if (m_doTrackSelection) - NPVParticle = SelGoodTrigTrack( InpTrk, PrimVrt, JetDir, SelectedTracks); - else - SelectedTracks = InpTrk; - - long int NTracks = (int) (SelectedTracks.size()); - - //* Reason "# sel trks = 0,1" *// - if( NTracks < 2 ) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason '# sel trks = 0,1'" << endmsg; - m_cutFlowTrkSel.push_back(1); return 0; - } - - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Number of selected tracks inside jet = " << NTracks << endmsg; - - CLHEP::HepLorentzVector MomentumJet = TotalMom(SelectedTracks); - - - //-------------------------------------------------------------------------------------------- - // Initial TrigInDetTrack list ready - - std::vector<const TrigInDetTrack*> TracksForFit; - std::vector<double> InpMass; - for(int i=0; i<NTracks; i++){InpMass.push_back(m_massPi);} - - Select2TrVrt(SelectedTracks, TracksForFit, PrimVrt, JetDir, InpMass, TrkFromV0, ListSecondTracks); - - // - //--- Cleaning - // - std::vector<const TrigInDetTrack*>::iterator TransfEnd ; - if( TrkFromV0.size() > 1) { - sort(TrkFromV0.begin(),TrkFromV0.end()); - TransfEnd = unique(TrkFromV0.begin(),TrkFromV0.end()); - TrkFromV0.erase( TransfEnd, TrkFromV0.end()); - // sort(TrkFromV0.begin(),TrkFromV0.end(),TrigInDetVxInJetTool::sortbyPtPredicate); TODO: is it needed? - } - - double Vrt2TrackNumber = (double) ListSecondTracks.size()/2.; - sort(ListSecondTracks.begin(),ListSecondTracks.end()); - TransfEnd = unique(ListSecondTracks.begin(),ListSecondTracks.end()); - ListSecondTracks.erase( TransfEnd, ListSecondTracks.end()); - // sort(ListSecondTracks.begin(),ListSecondTracks.end(),TrigInDetVxInJetTool::sortbyPtPredicate); TODO: is it needed? - - if(msgLvl(MSG::DEBUG)) - msg(MSG::DEBUG) << "Found different tracks in pairs = "<< ListSecondTracks.size() << endmsg; - - //* Reason "# 2vrt trk = 0,1" *// - if(ListSecondTracks.size() < 2) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason '# 2vrt trk = 0,1'" << endmsg; - m_cutFlowTrkSel.push_back(2); return 0; - } - - // - //----------------------------------------------------------------------------------------------------- - // Secondary track list is ready - // Now common vertex fit - // - std::vector<const TrigInDetTrack*>::const_iterator i_ntrk, i_found; - Amg::Vector3D FitVertex; - std::vector<double> ErrorMatrix; - std::vector< std::vector<double> > TrkAtVrt; - CLHEP::HepLorentzVector Momentum; - double Dist3D=0, Signif3D=0, Signif3DP=0, Signif3DS=0; - std::vector<double> Impact,ImpactError; - - double Chi2 = FitCommonVrt( ListSecondTracks, PrimVrt, InpMass, FitVertex, ErrorMatrix, Momentum, TrkAtVrt); - - //* Reason "vtx not reconstr." *// - if( Chi2 < 0) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason 'vtx not reconstr.'" << endmsg; - m_cutFlowTrkSel.push_back(3); return 0; - } - - // Check jet tracks not in secondary vertex - std::vector<const TrigInDetTrack*> AdditionalTracks; - std::vector<const TrigInDetTrack*> AdditionalTracksNotSelected; - VrtVrtDist(PrimVrt, FitVertex, ErrorMatrix, Signif3D); - - if(Signif3D>8.){ - for (i_ntrk = SelectedTracks.begin(); i_ntrk < SelectedTracks.end(); ++i_ntrk) { - i_found = find( ListSecondTracks.begin(), ListSecondTracks.end(), (*i_ntrk)); - if( i_found != ListSecondTracks.end() ) continue; - Signif3DS = m_fitSvc->VKalGetImpact((*i_ntrk), FitVertex , 1, Impact, ImpactError); - if( Signif3DS > 10.) {AdditionalTracksNotSelected.push_back(*i_ntrk); continue;} - Signif3DP = m_fitSvc->VKalGetImpact((*i_ntrk), PrimVrt.position(), 1, Impact, ImpactError); - //if(m_FillHist){ m_hb_diffPS->Fill( Signif3DP-Signif3DS, w_1); } - if(Signif3DP-Signif3DS>1.0) AdditionalTracks.push_back((*i_ntrk)); - else AdditionalTracksNotSelected.push_back((*i_ntrk)); - } - } - - //* Reason "vtx not reconstr." *// - if( Chi2 < 0) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason 'vtx not reconstr.'" << endmsg; - m_cutFlowTrkSel.push_back(3); return 0; - } - - // Find highest track Pt with respect to jet direction - // double trackPt; - double trackPtMax=0.; - // for (int tr=0; tr<(int)ListSecondTracks.size(); tr++) { - // trackPt=pTvsDir(JetDir.vect() , TrkAtVrt[tr]); if(trackPt>trackPtMax)trackPtMax=trackPt; - // } - - // OFF for now; this gives gain in rejection at expense of lowering starting b-jet efficiency - // (just use the commented line instead to enable) - if( ListSecondTracks.size()==0 ) { - // if( ListSecondTracks.size()==2 ) { // If there are 2 only tracks - - int Charge=0, tCnt=0; - int blTrk[2]={0,0}; - int l1Trk[2]={0,0}; - int l2Trk[2]={0,0}; - int BLshared=0; - int PXshared=0; - - std::vector<const TrigInDetTrack*>::const_iterator i_ntrk; - for (i_ntrk = ListSecondTracks.begin(); i_ntrk < ListSecondTracks.end(); ++i_ntrk) { - - if (!((*i_ntrk)->HitPattern())) continue; - - Charge += (*i_ntrk)->param()->pT()>0 ? 1 : -1; - - blTrk[tCnt] = ((*i_ntrk)->HitPattern() & 0x1) ? 1 : 0; - l1Trk[tCnt] = ((*i_ntrk)->HitPattern() & 0x2) ? 1 : 0; - l2Trk[tCnt] = ((*i_ntrk)->HitPattern() & 0x4) ? 1 : 0; - - tCnt++; - } - - double xDif=FitVertex.x()-m_XlayerB, yDif=FitVertex.y()-m_YlayerB ; - double Dist2D=sqrt(xDif*xDif+yDif*yDif); - - if (Dist2D < m_RlayerB) { - - //* Reason "inside bl but no bl hits" *// - if( blTrk[0]==0 || blTrk[1]==0 ) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason 'inside bl but no bl hits'" << endmsg; - m_cutFlowTrkSel.push_back(4); return 0; - } - - if(BLshared>m_CutSharedHits) return 0; - } else { - - //* Reason "outside bl but no bl hits" *// - if( blTrk[0]==1 || blTrk[1]==1 ) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason 'inside bl but no bl hits'" << endmsg; - m_cutFlowTrkSel.push_back(5); return 0; - } - - if(PXshared>m_CutSharedHits) return 0; - } - - // Only if vertex is in acceptance - if(fabs(FitVertex.z())<400.) { - - xDif=FitVertex.x()-m_Xlayer1, yDif=FitVertex.y()-m_Ylayer1 ; - Dist2D=sqrt(xDif*xDif+yDif*yDif); - - //* Reason "inside l1 but no l1 hits" *// - if (Dist2D < m_Rlayer1) { - if( l1Trk[0]==0 || l1Trk[1]==0 ) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason 'inside l1 but no l1 hits'" << endmsg; - m_cutFlowTrkSel.push_back(6); return 0; - } - } else { - - //* Reason "outside l1 but has l1 hits" *// - if( l1Trk[0]==1 || l1Trk[1]==1 ) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason 'inside l1 but no l1 hits'" << endmsg; - m_cutFlowTrkSel.push_back(7); return 0; - } - } // Outside 1st-layer - - xDif=FitVertex.x()-m_Xlayer2, yDif=FitVertex.y()-m_Ylayer2 ; - Dist2D=sqrt(xDif*xDif+yDif*yDif); - - //* Reason "inside l2 but no l2 hits" *// - if (Dist2D < m_Rlayer2) { - if( l2Trk[0]==0 || l2Trk[1]==0 ) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason 'inside l2 but no l2 hits'" << endmsg; - m_cutFlowTrkSel.push_back(8); return 0; - } - } else { - - //* Reason "outside l2 but has l2 hits" *// - if( l2Trk[0]==1 || l2Trk[1]==1 ) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason 'inside l2 but no l2 hits'" << endmsg; - m_cutFlowTrkSel.push_back(9); return 0; - } - } - } - - // Final rejection of K0 - if( !Charge && fabs(Momentum.m()-m_massK0)<15. ) { - TrkFromV0.push_back(ListSecondTracks[0]); - TrkFromV0.push_back(ListSecondTracks[1]); - if( TrkFromV0.size() > 2) { - sort(TrkFromV0.begin(),TrkFromV0.end()); - TransfEnd = unique(TrkFromV0.begin(),TrkFromV0.end()); - TrkFromV0.erase( TransfEnd, TrkFromV0.end()); - // sort(ListSecondTracks.begin(),ListSecondTracks.end(),TrigInDetVxInJetTool::sortbyPtPredicate); - } - - //* Reason "K0 rejection" *// - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason 'K0 rejection'" << endmsg; - m_cutFlowTrkSel.push_back(10); return 0; - } - - //-- Protection against fake vertices far from interaction point - if(NPVParticle<1)NPVParticle=1; - double vvdist3D=VrtVrtDist(PrimVrt, FitVertex, ErrorMatrix, Signif3D); - double t3Dimp1= m_fitSvc->VKalGetImpact(ListSecondTracks[0], PrimVrt.position(), 1, Impact, ImpactError)/fabs(TrkAtVrt[0][2]); - double t3Dimp2= m_fitSvc->VKalGetImpact(ListSecondTracks[1], PrimVrt.position(), 1, Impact, ImpactError)/fabs(TrkAtVrt[1][2]); - double selVar=(t3Dimp1<t3Dimp2 ? t3Dimp1 : t3Dimp2)/sqrt((double)NPVParticle)/vvdist3D/500.; - - //* Reason "AntiFake2trVrtCut" *// - if(selVar<m_AntiFake2trVrtCut) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason 'AntiFake2trVrtCut'" << endmsg; - m_cutFlowTrkSel.push_back(11); return 0; - } - } - - - double JetVrtDir = - JetDir.px()*(FitVertex.x()-PrimVrt.position().x()) - + JetDir.py()*(FitVertex.y()-PrimVrt.position().y()) - + JetDir.pz()*(FitVertex.z()-PrimVrt.position().z()); - - if( m_getNegativeTag ) { - - //* Reason "getNegTag but pos. sig." *// - if( JetVrtDir>0. ) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason 'getNegTag but pos. sig.'" << endmsg; - m_cutFlowTrkSel.push_back(11); return 0; - } - - } else if( m_getNegativeTail ) { - ; - } else { - - //* Reason "not NegTail but neg. sig." *// - if( JetVrtDir<0. ) { - if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Stop SV fitting routine. Reason 'not NegTail but neg. sig.'" << endmsg; - m_cutFlowTrkSel.push_back(11); return 0; - } - } - - Results.push_back(Momentum.m()); - - double eRatio = Momentum.e()/MomentumJet.e(); - Results.push_back(eRatio<0.99999 ? eRatio : 0.99999); //1st - Results.push_back(Vrt2TrackNumber); //2nd - Results.push_back((double)NTracks); //3rd - Results.push_back((double)ListSecondTracks.size()); //4th - Dist3D=VrtVrtDist(PrimVrt, FitVertex, ErrorMatrix, Signif3D); - if(JetVrtDir < 0) Signif3D = -Signif3D; - Results.push_back(Signif3D); //5th - Results.push_back(trackPtMax); //6th - Results.push_back(MomentumJet.e()); //7th - - double covVrt[6]={ErrorMatrix[0],ErrorMatrix[1],ErrorMatrix[2],ErrorMatrix[3],ErrorMatrix[4],ErrorMatrix[5]}; - TrackInVertexList* tmpTrkInVrt = new TrackInVertexList(); - for(int tt=0; tt<(int)ListSecondTracks.size(); tt++) - tmpTrkInVrt->push_back(ListSecondTracks[tt]); - - TrigVertex * tmpVx=new TrigVertex(FitVertex.x(),FitVertex.y(),FitVertex.z(), - covVrt, Chi2, (int)(ListSecondTracks.size()*2-3), tmpTrkInVrt, - Results[0], /* mass */ - Results[1], /* energy fraction */ - (int)Vrt2TrackNumber, - Dist3D, - Signif3D, - TrigVertex::BJETSECVTXID); - //=================================================== - - return tmpVx; -} - - - -// -//-------------------------------------------------------- -// Routine for global secondary vertex fitting -// - -template <class Track> -double TrigInDetVxInJetTool::FitCommonVrt(std::vector<const Track*> & ListSecondTracks, - const Trk::RecVertex & PrimVrt, - std::vector<double> & InpMass, - Amg::Vector3D & FitVertex, - std::vector<double> & ErrorMatrix, - CLHEP::HepLorentzVector & Momentum, - std::vector< std::vector<double> > & TrkAtVrt) -{ - - if(msgLvl(MSG::DEBUG))msg(MSG::DEBUG) << "FitCommonVrt() called " <<ListSecondTracks.size()<< endmsg; - //preparation - StatusCode sc; - std::vector<double> Chi2PerTrk; - long int Charge; - double Chi2 = 0.; - ; - int Outlier=1, i=0; - // - // Start of fit - // - m_fitSvc->setDefault(); - m_fitSvc->setMassInputParticles( InpMass ); // Use pions masses - m_fitSvc->setMomCovCalc(1); /* Total momentum and its covariance matrix are calculated*/ - sc=VKalVrtFitFastBase(ListSecondTracks,FitVertex); /* Fast crude estimation */ - if(sc.isFailure() || FitVertex.perp() > m_Rlayer2*2. ) { /* No initial estimation */ - m_fitSvc->setApproximateVertex(PrimVrt.position().x(), /* Use as starting point */ - PrimVrt.position().y(), - PrimVrt.position().z()); - } else { - m_fitSvc->setApproximateVertex(FitVertex.x(),FitVertex.y(),FitVertex.z()); /*Use as starting point*/ - } - if(m_RobustFit)m_fitSvc->setRobustness(m_RobustFit); - //fit itself - int NTracksVrt = ListSecondTracks.size(); double FitProb=0.; - for (i=0; i < NTracksVrt-1; i++) { - sc=VKalVrtFitBase(ListSecondTracks,FitVertex, Momentum,Charge, - ErrorMatrix,Chi2PerTrk,TrkAtVrt,Chi2); - if(sc.isFailure() || Chi2 > 1000000. ) { return -10000.;} // No fit - Outlier = FindMax( Chi2PerTrk ); - FitProb=TMath::Prob( Chi2, 2*ListSecondTracks.size()-3); - if(ListSecondTracks.size() == 2 ) break; // Only 2 tracks left - if( Momentum.m() <6000. && FitProb > 0.001) { - if( Chi2PerTrk[Outlier] < m_SecTrkChi2Cut*m_chiScale[ListSecondTracks.size()<10?ListSecondTracks.size():10]) break; // Solution found - } - RemoveEntryInList(ListSecondTracks,Outlier); - m_fitSvc->setApproximateVertex(FitVertex.x(),FitVertex.y(),FitVertex.z()); /*Use as starting point*/ - } - //-- - if(msgLvl(MSG::DEBUG))msg(MSG::DEBUG)<<" SecVrt fit converged="<< ListSecondTracks.size()<<", " - <<Chi2<<", "<<Chi2PerTrk[Outlier]<<" Mass="<<Momentum.m()<<endmsg; - //-- - if( ListSecondTracks.size()==2 ){ - if( Momentum.m() > 6000. || FitProb < 0.001 || Chi2PerTrk[Outlier] > m_SecTrkChi2Cut) { return -10000.; } - } - // - //-- To kill remnants of conversion - double Dist2D=sqrt(FitVertex.x()*FitVertex.x()+FitVertex.y()*FitVertex.y()); - if( ListSecondTracks.size()==2 && (Dist2D > 20.) && Charge==0 ) { - double mass_EE = massV0( TrkAtVrt,m_massE,m_massE); - //if(m_FillHist){m_hb_totmassEE->Fill( mass_EE, w_1); } - if( mass_EE < 100. ) return -40.; - } - return Chi2; -} - - - -// -// -//-------------------------------------------------------- -// Template routine for 2track secondary vertices selection -// - -template <class Track> -void TrigInDetVxInJetTool::Select2TrVrt(std::vector<const Track*> & SelectedTracks, - std::vector<const Track*> & TracksForFit, - const Trk::RecVertex & PrimVrt, - const CLHEP::HepLorentzVector & JetDir, - std::vector<double> & InpMass, - std::vector<const Track*> & TrkFromV0, - std::vector<const Track*> & ListSecondTracks) { - - StatusCode sc; - sc.setChecked(); - Amg::Vector3D FitVertex, vDist; - std::vector<double> ErrorMatrix,Chi2PerTrk,VKPerigee,CovPerigee; - std::vector< std::vector<double> > TrkAtVrt; - CLHEP::HepLorentzVector Momentum; - std::vector<double> Impact,ImpactError; - double ImpactSignif=0; - double Chi2=0, Signif3D=0, Dist2D=0, JetVrtDir=0; - long int Charge; - int i,j; - // - long int NTracks = (int) (SelectedTracks.size()); - - // - // Impact parameters with sign calculations - // - double SignifR,SignifZ; - std::vector<double> TrackSignif,TrackPt; - int NPrimTrk=0, NSecTrk=0; - for (i=0; i<NTracks; i++) { - ImpactSignif = m_fitSvc->VKalGetImpact(SelectedTracks[i], PrimVrt.position(), 1, Impact, ImpactError); - - const TrigInDetTrackFitPar * tmpPerigee = SelectedTracks[i]->param(); - if( sin(tmpPerigee->phi0() - JetDir.phi())*Impact[0] < 0 ){ Impact[0] = -fabs(Impact[0]);} - else{ Impact[0] = fabs(Impact[0]);} - double tTheta= 2.0*atan(exp(-(tmpPerigee->eta()))); - if( (tTheta-JetDir.theta())*Impact[1] < 0 ){ Impact[1] = -fabs(Impact[1]);} - else{ Impact[1] = fabs(Impact[1]);} - SignifR = Impact[0]/ sqrt(ImpactError[0]); - SignifZ = Impact[1]/ sqrt(ImpactError[2]); - //if(m_FillHist){ - // m_hb_impactR->Fill( SignifR, w_1); - // m_hb_impactZ->Fill( SignifZ, w_1); - // m_hb_impactRZ->Fill(SignifR, SignifZ, w_1); - //} - if(ImpactSignif < 3.) { NPrimTrk += 1;} - else{NSecTrk += 1;} - if(m_getNegativeTail){ - ImpactSignif = sqrt( SignifR*SignifR + SignifZ*SignifZ); - }else if(m_getNegativeTag){ - ImpactSignif = sqrt( (SignifR-0.6)*(SignifR-0.6) - + (SignifZ-0.6)*(SignifZ-0.6) ); - }else{ - ImpactSignif = sqrt( (SignifR+0.6)*(SignifR+0.6) - + (SignifZ+0.6)*(SignifZ+0.6) ); - } - if(fabs(SignifR) < m_AntiPileupSigRCut) { // cut against tracks from pileup vertices - if(SignifZ > m_AntiPileupSigZCut ) ImpactSignif=0.; - if(SignifZ < -m_AntiPileupSigZCut ) ImpactSignif=0.; - } - - TrackSignif.push_back(ImpactSignif); TrackPt.push_back( fabs(tmpPerigee->pT()) ) ; - //if(m_FillHist){m_hb_impact->Fill( ImpactSignif, w_1);} - } - - int NTrDiff = NPrimTrk-NSecTrk; if(NTrDiff < 1) NTrDiff=1; - double SelLim = m_TrkSigCut; - - m_fitSvc->setDefault(); - m_fitSvc->setMassInputParticles( InpMass ); // Use pion masses for fit - m_fitSvc->setMomCovCalc(1); // Total momentum and its covariance matrix are calculated - for (i=0; i<NTracks-1; i++) { - double adp1=TrackPt[i]/64000.; if(adp1<0.)adp1=0;if(adp1>1.)adp1=1.;adp1=sqrt(adp1)/2.; - - for (j=i+1; j<NTracks; j++) { - - double adp2=TrackPt[j]/64000.; if(adp2<0.)adp2=0;if(adp2>1.)adp2=1.;adp2=sqrt(adp2)/2.; - - //* Reason "trk_{1} dca/#sigma(dca) - adp <" *// - if(TrackSignif[i] < SelLim+adp1) { m_cutFlowTwoTrkVtxSel.push_back(1); continue; } - - //* Reason "trk_{2} dca/#sigma(dca) - adp <" *// - if(TrackSignif[j] < SelLim+adp2) { m_cutFlowTwoTrkVtxSel.push_back(2); continue; } - - //* Reason "#Sigma(dca/#sigma(dca))- #Sigma(adp) <" *// - if(TrackSignif[i]+TrackSignif[j] < (2.*SelLim+m_TrkSigSumCut+adp1+adp2)) { m_cutFlowTwoTrkVtxSel.push_back(3); continue; } - - int BadTracks = 0; //Bad tracks identification } - TracksForFit.clear(); - m_fitSvc->setDefault(); //Reset VKalVrt settings - m_fitSvc->setMomCovCalc(1); // Total momentum and its covariance matrix are calculated - TracksForFit.push_back( SelectedTracks[i] ); - TracksForFit.push_back( SelectedTracks[j] ); - - sc=VKalVrtFitFastBase(TracksForFit,FitVertex); /* Fast crude estimation*/ - - if( sc.isFailure() || FitVertex.perp() > m_Rlayer2*2. ) { /* No initial estimation */ - m_fitSvc->setApproximateVertex(PrimVrt.position().x(), /*Use as starting point*/ - PrimVrt.position().y(), - PrimVrt.position().z()); - } else { - vDist=FitVertex-PrimVrt.position(); - JetVrtDir = JetDir.px()*vDist.x() + JetDir.py()*vDist.y() + JetDir.pz()*vDist.z(); - if( JetVrtDir>0. ) { /* Good initial estimation */ - m_fitSvc->setApproximateVertex(FitVertex.x(),FitVertex.y(),FitVertex.z()); /*Use as starting point*/ - }else{ - m_fitSvc->setApproximateVertex(PrimVrt.position().x(), PrimVrt.position().y(), PrimVrt.position().z()); - } - } - - sc=VKalVrtFitBase(TracksForFit,FitVertex, Momentum,Charge, - ErrorMatrix,Chi2PerTrk,TrkAtVrt,Chi2); - - //* Reason "2vrt fit failed" *// - if(sc.isFailure()) { m_cutFlowTwoTrkVtxSel.push_back(4); continue; } - - //* Reason "2vrt fit #chi^{2} >" *// - if(Chi2 > m_Sel2VrtChi2Cut) { m_cutFlowTwoTrkVtxSel.push_back(5); continue; } - - vDist=FitVertex-PrimVrt.position(); - JetVrtDir = JetDir.px()*vDist.x() + JetDir.py()*vDist.y() + JetDir.pz()*vDist.z(); - double vPos=(vDist.x()*Momentum.px()+vDist.y()*Momentum.py()+vDist.z()*Momentum.pz())/Momentum.rho(); - - //* Reason "2vrt behind p.v." *// - if((!m_getNegativeTail) && (!m_getNegativeTag) && (JetVrtDir<0.) ) { m_cutFlowTwoTrkVtxSel.push_back(6); continue; } - - /* secondary vertex behind primary*/ - - //* Reason "2vrt too far behind p.v." *// - if(vPos<-150.) { m_cutFlowTwoTrkVtxSel.push_back(7); continue; } - - // - // Check pixel hit - vertex position. If Rv>Rlayer->tracks must not have given layer hits - int blTrk[2]={0,0}; - int l1Trk[2]={0,0}; - int l2Trk[2]={0,0}; - - for (int tr = 0; tr < (int) TracksForFit.size(); tr++) { - - if (!(TracksForFit[tr]->HitPattern())) continue; - - blTrk[tr] = (TracksForFit[tr]->HitPattern() & 0x1) ? 1 : 0; - l1Trk[tr] = (TracksForFit[tr]->HitPattern() & 0x2) ? 1 : 0; - l2Trk[tr] = (TracksForFit[tr]->HitPattern() & 0x4) ? 1 : 0; - - } - - double xdf=FitVertex.x()-m_XlayerB; - double ydf=FitVertex.y()-m_YlayerB; - - //* Reason "si hits pattern not compatible with 2vrt radius" *// - m_cutFlowTwoTrkVtxSel.push_back(8); - - if( sqrt(xdf*xdf+ydf*ydf) > (m_RlayerB+4.) && (blTrk[0] || blTrk[1])) continue; - if(fabs(FitVertex.z())<400.){ //Only if vertex is in acceptance - xdf=FitVertex.x()-m_Xlayer1; - ydf=FitVertex.y()-m_Ylayer1; - if( sqrt(xdf*xdf+ydf*ydf) > (m_Rlayer1+4.) && (l1Trk[0] || l1Trk[1])) continue; - xdf=FitVertex.x()-m_Xlayer2; - ydf=FitVertex.y()-m_Ylayer2; - if( sqrt(xdf*xdf+ydf*ydf) > (m_Rlayer2+4.) && (l2Trk[0] || l2Trk[1])) continue; - } - - Dist2D=sqrt(FitVertex.x()*FitVertex.x()+FitVertex.y()*FitVertex.y()); - double Signif3Dproj=VrtVrtDist(PrimVrt, FitVertex, ErrorMatrix, JetDir); - double mass_PiPi = Momentum.m(); - - //* Reason "2vrt mass > 6000" - can't be from B decay *// - if(mass_PiPi > 6000.) { m_cutFlowTwoTrkVtxSel.push_back(9); continue; } - - //* Reason "2vrt radius > 180" - can't be from B decay *// - if(Dist2D > 180.) { m_cutFlowTwoTrkVtxSel.push_back(10); continue; } - - //if(m_FillHist)m_hb_massPiPi2->Fill( mass_PiPi, w_1); - - //Check if V0 or material interaction on Pixel layer is present - - if( Charge == 0 && Signif3D>8. && mass_PiPi<900.) { - - double mass_PPi = massV0( TrkAtVrt,m_massP,m_massPi); - double mass_EE = massV0( TrkAtVrt,m_massE,m_massE); - - //if(m_FillHist){m_hb_massEE->Fill( mass_EE, w_1);} - - if( mass_EE < 40.) { - BadTracks = 3; - }else{ - - //if(m_FillHist){m_hb_massPiPi->Fill( mass_PiPi, w_1);} /* Total mass with input particles masses*/ - //if(m_FillHist){m_hb_massPPi->Fill( mass_PPi, w_1);} - - if( fabs(mass_PiPi-m_massK0) < 22. ) BadTracks = 1; - if( fabs(mass_PPi-m_massLam) < 8. ) BadTracks = 2; - } - // - // Creation on V0 tracks - // - if(BadTracks){ - std::vector<double> inpMass; - m_fitSvc->setDefault(); //Reset VKalVrt settings - m_fitSvc->setMomCovCalc(1); //Total momentum and its covariance - //matrix are calculated - if( BadTracks == 1 ) { // K0 case - inpMass.push_back(m_massPi);inpMass.push_back(m_massPi); - m_fitSvc->setMassInputParticles( inpMass ); - m_fitSvc->setMassForConstraint(m_massK0); - m_fitSvc->setCnstType(1); // Set mass constraint - } - if( BadTracks == 2 ) { // Lambda case - if( fabs(1./TrkAtVrt[0][2]) > fabs(1./TrkAtVrt[1][2]) ) { - inpMass.push_back(m_massP);inpMass.push_back(m_massPi); - }else{ inpMass.push_back(m_massPi);inpMass.push_back(m_massP); } - m_fitSvc->setMassInputParticles( inpMass ); - m_fitSvc->setMassForConstraint(m_massLam); - m_fitSvc->setCnstType(1); // Set mass constraint - } - if( BadTracks == 3 ) { // Gamma case - inpMass.push_back(m_massE);inpMass.push_back(m_massE); - m_fitSvc->setMassInputParticles( inpMass ); - m_fitSvc->setCnstType(12); // Set 3d angular constraint - } - m_fitSvc->setApproximateVertex(FitVertex.x(),FitVertex.y(),FitVertex.z()); - sc=VKalVrtFitBase(TracksForFit,FitVertex, Momentum,Charge, - ErrorMatrix,Chi2PerTrk,TrkAtVrt,Chi2); - if(sc.isSuccess()) { - sc=m_fitSvc->VKalVrtCvtTool(FitVertex,Momentum,ErrorMatrix,0,VKPerigee,CovPerigee); - if(sc.isSuccess()) { - const TrigInDetTrack* TT = m_fitSvc->CreateTrigTrack(VKPerigee,CovPerigee); - ImpactSignif=m_fitSvc->VKalGetImpact(TT, PrimVrt.position(), 0, Impact, ImpactError); - //if(m_FillHist){m_hb_impV0->Fill( ImpactSignif, w_1); } - if(ImpactSignif>5.) BadTracks=0; - delete TT; - } else { BadTracks=0;} - } - } - } - - // - // Check interactions on pixel layers - // - double xvt=FitVertex.x(); - double yvt=FitVertex.y(); - Dist2D=sqrt( (xvt-m_Xbeampipe)*(xvt-m_Xbeampipe) + (yvt-m_Ybeampipe)*(yvt-m_Ybeampipe) ); - - if( fabs(Dist2D-m_Rbeampipe)< 1.5) BadTracks = 4; // Beam Pipe removal - //Dist2D=sqrt(pow(xvt-m_XlayerB,2.)+pow(yvt-m_YlayerB,2.)); - Dist2D=sqrt( (xvt-m_XlayerB)*(xvt-m_XlayerB) + (yvt-m_YlayerB)*(yvt-m_YlayerB) ); - if( fabs(Dist2D-m_RlayerB) < 3.5) BadTracks = 4; - //Dist2D=sqrt(pow(xvt-m_Xlayer1,2.)+pow(yvt-m_Ylayer1,2.)); - Dist2D=sqrt( (xvt-m_Xlayer1)*(xvt-m_Xlayer1) + (yvt-m_Ylayer1)*(yvt-m_Ylayer1) ); - if( fabs(Dist2D-m_Rlayer1) < 4.0) BadTracks = 4; - Dist2D=sqrt( (xvt-m_Xlayer2)*(xvt-m_Xlayer2) + (yvt-m_Ylayer2)*(yvt-m_Ylayer2) ); - if( fabs(Dist2D-m_Rlayer2) < 5.0) BadTracks = 4; - - //* Reason "interaction with pixel layers" *// - if (BadTracks == 4) m_cutFlowTwoTrkVtxSel.push_back(11); - //* Reason "matches K^{0}_{S},#Lambda^{0},#gamma" *// - else if (BadTracks > 0) m_cutFlowTwoTrkVtxSel.push_back(12); - - // - // Creation of tracks from V0 list - // - if( BadTracks ){ - TrkFromV0.push_back(SelectedTracks[i]); - TrkFromV0.push_back(SelectedTracks[j]); - continue; - } - - Dist2D=sqrt( (xvt-m_XlayerB)*(xvt-m_XlayerB) + (yvt-m_YlayerB)*(yvt-m_YlayerB) ); - - int hBL1 = (TracksForFit[0]->HitPattern() & 0x1) ? 1 : 0; - int hBL2 = (TracksForFit[1]->HitPattern() & 0x1) ? 1 : 0; - - if( Dist2D > (m_RlayerB+5.) && ( hBL1 || hBL2 ) ) continue; - if( Dist2D < (m_RlayerB-5.) ) { - if( hBL1==0 && hBL2==0 ) continue; - if( Signif3D <10. && (hBL1*hBL2)==0)continue; - } - - double JetVrtDir = - JetDir.px()*(FitVertex.x()-PrimVrt.position().x()) - + JetDir.py()*(FitVertex.y()-PrimVrt.position().y()) - + JetDir.pz()*(FitVertex.z()-PrimVrt.position().z()); - if(m_getNegativeTail) JetVrtDir=fabs(JetVrtDir); // For negative TAIL - // accepts also negative track pairs - if(m_getNegativeTag) JetVrtDir=-JetVrtDir; // For negative TAG - // accepts only negative track pairs - - if( (Signif3D>m_Sel2VrtSigCut) && (JetVrtDir>0) ) { - - //* Reason "L/#sigma(L)_{proj} <" *// - if(Signif3Dproj<m_Sel2VrtSigCut) { m_cutFlowTwoTrkVtxSel.push_back(13); continue; } - - ListSecondTracks.push_back(SelectedTracks[i]); - ListSecondTracks.push_back(SelectedTracks[j]); - } - } - } -} - - - - diff --git a/Trigger/TrigTools/TrigInDetVxInJetTool/src/Utilities.cxx b/Trigger/TrigTools/TrigInDetVxInJetTool/src/Utilities.cxx deleted file mode 100755 index 1477503e7b3..00000000000 --- a/Trigger/TrigTools/TrigInDetVxInJetTool/src/Utilities.cxx +++ /dev/null @@ -1,252 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Header include -#include "TrigInDetVxInJetTool.h" -#include "VxVertex/RecVertex.h" -#include "TrigInDetEvent/TrigInDetTrack.h" -//------------------------------------------------- -// Other stuff -#include<iostream> - - - - /* Technicalities */ -bool TrigInDetVxInJetTool::sortbyPtPredicate(const TrigInDetTrack* t1, const TrigInDetTrack* t2) -{ - return fabs(t1->param()->pT()) < fabs(t2->param()->pT()); -} -double TrigInDetVxInJetTool::ProjPos(const Amg::Vector3D & Vrt,const CLHEP::HepLorentzVector & JetDir) - const -{ - double Denom = JetDir.px()*JetDir.px() + JetDir.py()*JetDir.py() + JetDir.pz()*JetDir.pz(); - return (Vrt.x()*JetDir.px() + Vrt.y()*JetDir.py() + Vrt.z()*JetDir.pz())/Denom; -} - - - -double TrigInDetVxInJetTool::VrtVrtDist(const Trk::RecVertex & PrimVrt, const Amg::Vector3D & SecVrt, - const std::vector<double> SecVrtErr, double& Signif) - const -{ - double distx = PrimVrt.position().x()- SecVrt.x(); - double disty = PrimVrt.position().y()- SecVrt.y(); - double distz = PrimVrt.position().z()- SecVrt.z(); - - Amg::MatrixX PrimCovMtx=PrimVrt.covariancePosition(); - PrimCovMtx(0,0) += SecVrtErr[0]; - PrimCovMtx(0,1) += SecVrtErr[1]; - PrimCovMtx(1,0) += SecVrtErr[1]; - PrimCovMtx(1,1) += SecVrtErr[2]; - PrimCovMtx(0,2) += SecVrtErr[3]; - PrimCovMtx(2,0) += SecVrtErr[3]; - PrimCovMtx(1,2) += SecVrtErr[4]; - PrimCovMtx(2,1) += SecVrtErr[4]; - PrimCovMtx(2,2) += SecVrtErr[5]; - - Amg::MatrixX WgtMtx = PrimCovMtx.inverse(); - - Signif = distx*WgtMtx(0,0)*distx - +disty*WgtMtx(1,1)*disty - +distz*WgtMtx(2,2)*distz - +2.*distx*WgtMtx(0,1)*disty - +2.*distx*WgtMtx(0,2)*distz - +2.*disty*WgtMtx(1,2)*distz; - - Signif=sqrt(Signif); - if( Signif!=Signif ) Signif = 0.; - - return sqrt(distx*distx+disty*disty+distz*distz); -} - -//-------------------------------------------------- -// Significance along jet direction -//-------------------------------------------------- -double TrigInDetVxInJetTool::VrtVrtDist(const Trk::RecVertex & PrimVrt, const Amg::Vector3D & SecVrt, - const std::vector<double> SecVrtErr, const CLHEP::HepLorentzVector & JetDir) - const -{ - Amg::Vector3D jetDir(JetDir.vect().unit().x(), JetDir.vect().unit().y(), JetDir.vect().unit().z()); - double projDist=(PrimVrt.position()-SecVrt).dot(jetDir); - double distx = jetDir.x()*projDist; - double disty = jetDir.y()*projDist; - double distz = jetDir.z()*projDist; - - Amg::MatrixX PrimCovMtx=PrimVrt.covariancePosition(); - PrimCovMtx(0,0) += SecVrtErr[0]; - PrimCovMtx(0,1) += SecVrtErr[1]; - PrimCovMtx(1,0) += SecVrtErr[1]; - PrimCovMtx(1,1) += SecVrtErr[2]; - PrimCovMtx(0,2) += SecVrtErr[3]; - PrimCovMtx(2,0) += SecVrtErr[3]; - PrimCovMtx(1,2) += SecVrtErr[4]; - PrimCovMtx(2,1) += SecVrtErr[4]; - PrimCovMtx(2,2) += SecVrtErr[5]; - - Amg::MatrixX WgtMtx = PrimCovMtx.inverse(); - - double Signif = distx*WgtMtx(0,0)*distx - +disty*WgtMtx(1,1)*disty - +distz*WgtMtx(2,2)*distz - +2.*distx*WgtMtx(0,1)*disty - +2.*distx*WgtMtx(0,2)*distz - +2.*disty*WgtMtx(1,2)*distz; - - Signif=sqrt(Signif); - if( Signif!=Signif ) Signif = 0.; - - return Signif; -} - - -double TrigInDetVxInJetTool::VrtVrtDist(const Amg::Vector3D & Vrt1, const std::vector<double> & VrtErr1, - const Amg::Vector3D & Vrt2, const std::vector<double> & VrtErr2) - const -{ - double Signif; - double distx = Vrt1.x()- Vrt2.x(); - double disty = Vrt1.y()- Vrt2.y(); - double distz = Vrt1.z()- Vrt2.z(); - - AmgSymMatrix(3) PrimCovMtx; - PrimCovMtx(0,0) = VrtErr1[0]+VrtErr2[0]; - PrimCovMtx(0,1) = PrimCovMtx(1,0) = VrtErr1[1]+VrtErr2[1]; - PrimCovMtx(1,1) = VrtErr1[2]+VrtErr2[2]; - PrimCovMtx(0,2) = PrimCovMtx(2,0) = VrtErr1[3]+VrtErr2[3]; - PrimCovMtx(1,2) = PrimCovMtx(2,1) = VrtErr1[4]+VrtErr2[4]; - PrimCovMtx(2,2) = VrtErr1[5]+VrtErr2[5]; - - AmgSymMatrix(3) WgtMtx = PrimCovMtx.inverse(); - - Signif = distx*WgtMtx(0,0)*distx - +disty*WgtMtx(1,1)*disty - +distz*WgtMtx(2,2)*distz - +2.*distx*WgtMtx(0,1)*disty - +2.*distx*WgtMtx(0,2)*distz - +2.*disty*WgtMtx(1,2)*distz; - - Signif=sqrt(Signif); - if(Signif != Signif) Signif = 0.; - - return Signif; -} - - -/* Invariant mass calculation for V0 decays*/ -/* Gives correct mass assignment in case of nonequal masses*/ - - -double TrigInDetVxInJetTool::massV0(std::vector< std::vector<double> >& TrkAtVrt, - double massP, double massPi ) - const -{ - double p1=fabs(TrkAtVrt[0][2]); double p2=fabs(TrkAtVrt[1][2]); - double px = cos(TrkAtVrt[0][0])*sin(TrkAtVrt[0][1])/p1 - + cos(TrkAtVrt[1][0])*sin(TrkAtVrt[1][1])/p2; - double py = sin(TrkAtVrt[0][0])*sin(TrkAtVrt[0][1])/p1 - + sin(TrkAtVrt[1][0])*sin(TrkAtVrt[1][1])/p2; - double pz = cos(TrkAtVrt[0][1])/p1 - + cos(TrkAtVrt[1][1])/p2; - double ee= (1./p1 > 1./p2) ? - (sqrt(1./p1/p1+massP*massP)+sqrt(1./p2/p2+massPi*massPi)): - (sqrt(1./p2/p2+massP*massP)+sqrt(1./p1/p1+massPi*massPi)); - double test=(ee-pz)*(ee+pz)-px*px-py*py; - return test>0 ? sqrt(test) : 0.; -} - - - -int TrigInDetVxInJetTool::FindMax( std::vector<double>& Chi2PerTrk) - const -{ - double Chi2Ref=0.; - int Position=0; - if( Chi2PerTrk.size() < 1 ) return Position ; - for (int i=0; i< (int)Chi2PerTrk.size(); i++){ - if( Chi2PerTrk[i] > Chi2Ref) { Chi2Ref=Chi2PerTrk[i]; Position=i;} - } - - return Position; -} - - - -// Function returns a transverse momentum of track w/r some direction -// -double TrigInDetVxInJetTool::pTvsDir(const Amg::Vector3D &Dir, const std::vector< double >& InpTrk) - const -{ - double Norm=sqrt(Dir.x()*Dir.x() + Dir.y()*Dir.y() + Dir.z()*Dir.z()); - double sx=Dir.x()/Norm; double sy=Dir.y()/Norm; double sz=Dir.z()/Norm; - - double px=0.,py=0.,pz=0.; double scale; - px = cos ( InpTrk[0]) * sin(InpTrk[1])/fabs(InpTrk[2]); - py = sin ( InpTrk[0]) * sin(InpTrk[1])/fabs(InpTrk[2]); - pz = cos(InpTrk[1])/fabs(InpTrk[2]); - scale = px*sx + py*sy + pz*sz; - px -= sx*scale; - py -= sy*scale; - pz -= sz*scale; - return sqrt( px*px +py*py + pz*pz ); -} - -CLHEP::HepLorentzVector TrigInDetVxInJetTool::TotalMom(const std::vector<const TrigInDetTrack*>& InpTrk) - const -{ - double px=0.,py=0.,pz=0.,ee=0.; - double Pt=0; - for (int i = 0; i < (int)InpTrk.size(); ++i) { - if( InpTrk[i] == NULL ){ continue; } - const TrigInDetTrackFitPar* Per=InpTrk[i]->param(); - Pt= fabs(Per->pT()); - px += cos ( Per->phi0()) * Pt; - py += sin ( Per->phi0()) * Pt; - double Theta = 2.0*atan(exp(-Per->eta())); - pz += Pt/tan(Theta); - ee += sqrt( Pt*Pt + pz*pz + m_massPi*m_massPi); - } - return CLHEP::HepLorentzVector(px,py,pz,ee); -} - - - - -void TrigInDetVxInJetTool::RemoveEntryInList(std::vector<const TrigInDetTrack*>& ListTracks, int Outlier) - const -{ - if(Outlier < 0 ) return; - if(Outlier >= (int)ListTracks.size() ) return; - std::vector<const TrigInDetTrack*>::iterator TransfEnd; - TransfEnd = remove( ListTracks.begin(), ListTracks.end(), ListTracks[Outlier]); - ListTracks.erase( TransfEnd,ListTracks.end()); -} - - - - - -// -// For possible templating.... -// - -StatusCode TrigInDetVxInJetTool::VKalVrtFitFastBase(const std::vector<const TrigInDetTrack*>& listPart, - Amg::Vector3D & FitVertex) -{ - return m_fitSvc->VKalVrtFitFast(listPart,FitVertex); /* Fast crude estimation */ -} - -StatusCode TrigInDetVxInJetTool::VKalVrtFitBase(const std::vector<const TrigInDetTrack*> & listPart, - Amg::Vector3D& Vertex, - CLHEP::HepLorentzVector& Momentum, - long int& Charge, - std::vector<double>& ErrorMatrix, - std::vector<double>& Chi2PerTrk, - std::vector< std::vector<double> >& TrkAtVrt, - double& Chi2 ) -{ - return m_fitSvc->VKalVrtFit( listPart, Vertex, Momentum, Charge, - ErrorMatrix, Chi2PerTrk, TrkAtVrt, Chi2); - -} - diff --git a/Trigger/TrigTools/TrigInDetVxInJetTool/src/components/TrigInDetVxInJetTool_entries.cxx b/Trigger/TrigTools/TrigInDetVxInJetTool/src/components/TrigInDetVxInJetTool_entries.cxx deleted file mode 100644 index a6161be2529..00000000000 --- a/Trigger/TrigTools/TrigInDetVxInJetTool/src/components/TrigInDetVxInJetTool_entries.cxx +++ /dev/null @@ -1,3 +0,0 @@ -#include "../TrigInDetVxInJetTool.h" - -DECLARE_COMPONENT( TrigInDetVxInJetTool ) diff --git a/Trigger/TrigTools/TrigVKalFitter/CMakeLists.txt b/Trigger/TrigTools/TrigVKalFitter/CMakeLists.txt deleted file mode 100644 index d7e35e04144..00000000000 --- a/Trigger/TrigTools/TrigVKalFitter/CMakeLists.txt +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -# Declare the package name: -atlas_subdir( TrigVKalFitter ) - -# External dependencies: -find_package( CLHEP ) - -# Component(s) in the package: -atlas_add_library( TrigVKalFitterLib - src/*.cxx - PUBLIC_HEADERS TrigVKalFitter - INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps EventPrimitives GaudiKernel GeoPrimitives MagFieldInterfaces TrkVKalVrtCore - PRIVATE_LINK_LIBRARIES TrigInDetEvent ) - -atlas_add_component( TrigVKalFitter - src/components/*.cxx - LINK_LIBRARIES TrigVKalFitterLib ) diff --git a/Trigger/TrigTools/TrigVKalFitter/TrigVKalFitter/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigTools/TrigVKalFitter/TrigVKalFitter/ATLAS_CHECK_THREAD_SAFETY deleted file mode 100644 index db2371d6f89..00000000000 --- a/Trigger/TrigTools/TrigVKalFitter/TrigVKalFitter/ATLAS_CHECK_THREAD_SAFETY +++ /dev/null @@ -1 +0,0 @@ -Trigger/TrigTools/TrigVKalFitter diff --git a/Trigger/TrigTools/TrigVKalFitter/TrigVKalFitter/TrigVKalFitter.h b/Trigger/TrigTools/TrigVKalFitter/TrigVKalFitter/TrigVKalFitter.h deleted file mode 100755 index 87ddf48a4ae..00000000000 --- a/Trigger/TrigTools/TrigVKalFitter/TrigVKalFitter/TrigVKalFitter.h +++ /dev/null @@ -1,261 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// TrigVKalFittter.h -// -#ifndef TRIGVKALFITTER_TRIGVKALFITTER_H -#define TRIGVKALFITTER_TRIGVKALFITTER_H -#include "EventPrimitives/EventPrimitives.h" -#include "GeoPrimitives/GeoPrimitives.h" -// Normal STL and physical vectors -#include <vector> -#include "CLHEP/Vector/LorentzVector.h" -// Gaudi includes -#include "AthenaBaseComps/AthAlgTool.h" -#include "GaudiKernel/IToolSvc.h" -#include "GaudiKernel/ToolHandle.h" -#include "MagFieldInterfaces/IMagFieldSvc.h" -// -#include "TrkVKalVrtCore/ForCFT.h" - -namespace { -static const int NTRMAXTRIG=300; -} - -namespace Trk { - class VKalVrtControl; -} - - -typedef std::vector<double> dvect; -class VTrack; -class TrigAtlasMagFld; - -class TrigInDetTrack; - - -//------------------------------------------------------------------------ -static const InterfaceID IID_ITrigVKalFitter("ITrigVKalFitter", 1, 0); - -class ITrigVKalFitter : virtual public IAlgTool { -public: - static const InterfaceID& interfaceID() { return IID_ITrigVKalFitter;} - //--------------------------------------------------------------------------- - //Interface itself - virtual StatusCode VKalVrtFit(const std::vector<const TrigInDetTrack*> & list, - dvect& FitResult) =0; - - - - virtual StatusCode VKalVrtFit(const std::vector<const TrigInDetTrack*> & list, - Amg::Vector3D& Vertex, - CLHEP::HepLorentzVector& Momentum, - long int& Charge, - dvect& ErrorMatrix, - dvect& Chi2PerTrk, - std::vector< std::vector<double> >& TrkAtVrt, - double& Chi2 ) =0; - - - - virtual StatusCode VKalVrtCvtTool(const Amg::Vector3D& Vertex, - const CLHEP::HepLorentzVector& Momentum, - const dvect& CovVrtMom, - const long int& Charge, - dvect& Perigee, - dvect& CovPerigee) =0; - virtual TrigInDetTrack* CreateTrigTrack( const std::vector<double>& VKPerigee, - const std::vector<double>& VKCov) =0; - - - //......................................................................................... - virtual StatusCode VKalVrtFitFast(const std::vector<const TrigInDetTrack*>& list, - Amg::Vector3D& Vertex) =0; - - //......................................................................................... - - virtual StatusCode VKalGetTrkCov(const long int, const long int, - dvect& CovMtx) =0; - virtual StatusCode VKalGetMassError( std::vector<int> ListOfTracks , - double& Mass, double& MassError) =0; - - virtual void setApproximateVertex(double,double,double)=0; - virtual void setMassForConstraint(double)=0; - virtual void setMassForConstraint(double,std::vector<int>)=0; - virtual void setRobustness(int)=0; - virtual void setCnstType(int)=0; - virtual void setMomCovCalc(int)=0; - virtual void setIterations(int, double)=0; - virtual void setVertexForConstraint(double,double,double)=0; - virtual void setCovVrtForConstraint(double,double,double, - double,double,double)=0; - virtual void setMassInputParticles( std::vector<double>& )=0; - virtual void setDefault() =0; - virtual void setZeroCharge(int)=0; - virtual void setAthenaField(MagField::IMagFieldSvc*)=0; - //---- - virtual double VKalGetImpact(const TrigInDetTrack*,const Amg::Vector3D& Vertex, const long int Charge, - std::vector<double>& Impact, std::vector<double>& ImpactError) = 0; -}; - - -//------------------------------------------------------------------------ -class TrigVKalFitter : public AthAlgTool, virtual public ITrigVKalFitter { -public: - /* Constructor */ - TrigVKalFitter(const std::string& type, const std::string& name, - const IInterface* parent); - /* Destructor */ - virtual ~TrigVKalFitter(); - - StatusCode VKalVrtFit(const std::vector<const TrigInDetTrack*> &, dvect& FitResult ); - - - - StatusCode VKalVrtFit(const std::vector<const TrigInDetTrack*>&, - Amg::Vector3D& Vertex, - CLHEP::HepLorentzVector& Momentum, - long int& Charge, - dvect& ErrorMatrix, - dvect& Chi2PerTrk, - std::vector< std::vector<double> >& TrkAtVrt, - double& Chi2 ); - - - - StatusCode VKalVrtCvtTool(const Amg::Vector3D& Vertex, - const CLHEP::HepLorentzVector& Momentum, - const dvect& CovVrtMom, - const long int& Charge, - dvect& Perigee, - dvect& CovPerigee) ; - - TrigInDetTrack* CreateTrigTrack( const std::vector<double>& VKPerigee, - const std::vector<double>& VKCov); - - //............................................................................ - StatusCode VKalVrtFitFast(const std::vector<const TrigInDetTrack*>&, - Amg::Vector3D& Vertex); - //............................................................................ - - double VKalGetImpact( const TrigInDetTrack*,const Amg::Vector3D& Vertex, const long int Charge, - std::vector<double>& Impact, std::vector<double>& ImpactError); - - StatusCode VKalGetTrkCov(const long int, const long int,dvect& CovMtx); - - StatusCode VKalGetMassError( std::vector<int> ListOfTracks , - double& Mass, double& MassError); - - void setApproximateVertex(double,double,double); - void setMassForConstraint(double); - void setMassForConstraint(double,std::vector<int>); - void setRobustness(int); - void setCnstType(int); - void setIterations(int, double); - void setVertexForConstraint(double,double,double); - void setCovVrtForConstraint(double,double,double, - double,double,double); - void setMassInputParticles( std::vector<double>& ); - void setMomCovCalc(int); - void setDefault(); - void setZeroCharge(int); - void setAthenaField(MagField::IMagFieldSvc *); - void setAthenaField(const double); - - // - // Public functions not in interface - // - -private: - - int m_FitStatus; /* Fit Status flag*/ - /* =0 - no fit. All "after fit" routines fail*/ - /* >1 - good fit. "After fit" routines work*/ - - int m_PropagatorType; /* type of propagator used for fit. VKalVrtCore definition */ - /* =0 - constant field propagator from VKalVrtCore */ - /* =1 - Runge-Kutta propagator from VKalVrtCore */ - /* =3 - external propagator accessed via VKalExtPropagator (not used)*/ - - - double m_BMAG; /* Magnetic field*/ - double m_CNVMAG; /* conversion constant for MeV and MM */ - long int m_ifcovv0; - long int m_iflag; - - SimpleProperty<int> m_Robustness; - SimpleProperty<int> m_Constraint; - SimpleProperty<int> m_CalcMomCovariance; - SimpleProperty<double> m_MassForConstraint; - SimpleProperty<int> m_IterationNumber; - SimpleProperty<double> m_IterationPrecision; - SimpleProperty< std::vector< double > > m_CovVrtForConstraintProp; - SimpleProperty< std::vector< double > > m_MassInputParticlesProp; - SimpleProperty< std::vector< double > > m_ApproximateVertexProp; - - - ServiceHandle<MagField::IMagFieldSvc> m_magFieldAthenaSvc; //Athena magnetic field - - - std::vector<double> m_MassInputParticles; - std::vector<double> m_VertexForConstraint; - std::vector<double> m_CovVrtForConstraint; - std::vector<double> m_ApproximateVertex; - std::vector<int> m_TrackCharge; - std::vector<double> m_PartMassCnst; - std::vector< std::vector<int> > m_PartMassCnstTrk; - // - // Arrays needed for fitting kernel - // - long int m_ich[NTRMAXTRIG]; - double m_chi2tr[NTRMAXTRIG]; - double m_par0[NTRMAXTRIG][3]; - double m_apar[NTRMAXTRIG][5]; - double m_awgt[NTRMAXTRIG][15]; - double m_parfs[NTRMAXTRIG][3]; - double m_wm[NTRMAXTRIG]; - double m_VrtCst[3]; - double m_CovVrtCst[6]; - // - // Very local variables - // - // double m_loc_xyzfit[3]; - // double m_loc_ptot[4]; - // double m_loc_covf[21]; - // double m_loc_chi2f; - - - TrigAtlasMagFld * m_fitField; - Trk::VKalVrtControl * m_vkalFitControl; - Trk::ForCFT m_coreFit; - // - // Private functions (technicalities) - // - StatusCode CvtTrigTrack(const std::vector<const TrigInDetTrack*>& list, - long int& ntrk); - - void VKalVrtSetOptions(long int NInputTracks); - - void VKalToTrkTrack( double , double , double , - double& , double& , double& ); - - long int VKalVrtFit3( long int ntrk, Amg::Vector3D& Vertex, CLHEP::HepLorentzVector& Momentum, - long int& Charge, dvect& ErrorMatrix, dvect& Chi2PerTrk, - std::vector< std::vector<double> >& TrkAtVrt, double& Chi2 ); - - long int VKalVrtFit2(long int ntrk, Amg::Vector3D& Vertex, dvect& ErrorMatrix,double& Chi2 ); - - long int VKalVrtFit1(long int ntrk, dvect& FitResult); - -public: - virtual StatusCode initialize(); - -// -// Array for full error matrix -// - double * m_ErrMtx; - -}; - -#endif diff --git a/Trigger/TrigTools/TrigVKalFitter/TrigVKalFitter/VKalVrtAtlas.h b/Trigger/TrigTools/TrigVKalFitter/TrigVKalFitter/VKalVrtAtlas.h deleted file mode 100755 index 34b6ed27bcc..00000000000 --- a/Trigger/TrigTools/TrigVKalFitter/TrigVKalFitter/VKalVrtAtlas.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// VKalVrtAtlas.h -// -#ifndef _TrigVKalAthena_TrigVKalAtlas_H -#define _TrigVKalAthena_TrigVKalAtlas_H - -// Mag field service -#include "MagFieldInterfaces/IMagFieldSvc.h" -#include "TrkVKalVrtCore/VKalVrtBMag.h" -// External propagator -#include "TrkVKalVrtCore/Propagator.h" -//#include "TrkExInterfaces/IExtrapolator.h" - -// ATLAS magnetic field access for TrkVKalVrtCore -//------------------------------------------------- - - class TrigAtlasMagFld : public Trk::baseMagFld { - public: - - TrigAtlasMagFld(); - ~TrigAtlasMagFld(); - void getMagFld(const double,const double,const double,double&,double&,double&) const; - void setAtlasMag( MagField::IMagFieldSvc * ); - void setAtlasMag(const double ); - - private: - - //MagFieldAthena* m_VKalAthenaField; //VK Old field - MagField::IMagFieldSvc* m_VKalAthenaField; - double m_FIXED_ATLAS_FIELD; - - }; - - -#endif diff --git a/Trigger/TrigTools/TrigVKalFitter/doc/packagedoc.h b/Trigger/TrigTools/TrigVKalFitter/doc/packagedoc.h deleted file mode 100644 index 6eaf0b6266a..00000000000 --- a/Trigger/TrigTools/TrigVKalFitter/doc/packagedoc.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - - -/** -@page TrigVKalFitter_page TrigVKalFitter Package - -Collection of trigger related interfaces to VKalVrt core. - -@author Vadim.Kostyukhin@cern.ch - -@section TrigVKalFitter_TrigVKalFitterIntro Introduction - -This package contains interfaces to VKalVrt. - -@section TrigVKalFitter_TrigVKalFitterOverview Class Overview - - - Some description of algorithms may be found in http://kostyuk.home.cern.ch/kostyuk/vertex/ and - references inside. - Software related issues may be viewed in - https://twiki.cern.ch/twiki/bin/view/Atlas/VKalVrt . - - - -*/ diff --git a/Trigger/TrigTools/TrigVKalFitter/src/CvtTrigTrack.cxx b/Trigger/TrigTools/TrigVKalFitter/src/CvtTrigTrack.cxx deleted file mode 100755 index 87c1f90240c..00000000000 --- a/Trigger/TrigTools/TrigVKalFitter/src/CvtTrigTrack.cxx +++ /dev/null @@ -1,216 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Header include -#include "TrigVKalFitter/TrigVKalFitter.h" -#include "TrigInDetEvent/TrigInDetTrack.h" -#include "TrigInDetEvent/TrigInDetTrackFitPar.h" -//------------------------------------------------- -#include <iostream> -#include <cmath> - -//-------------------------------------------------------------------- -// Extract TrigInDetTrack -// - - StatusCode TrigVKalFitter::CvtTrigTrack(const std::vector<const TrigInDetTrack*>& InpTrk, - long int& ntrk) { - - std::vector<const TrigInDetTrack*>::const_iterator i_ntrk; - int i,j,ipnt,ii,jj; - const TrigInDetTrackFitPar* mPer; - double CovI[5][5]; - double A0Vert,ZVert,PhiVert,ThetaVert,PtVert,EtaVert,ct; - const std::vector<double>* TrigTrkErr; - double Deriv[5][5] ={{0.,0.,0.,0.,0.},{0.,0.,0.,0.,0.},{0.,0.,0.,0.,0.}, - {0.,0.,0.,0.,0.},{0.,0.,0.,0.,0.}}; -//std::cout.setf( std::ios::scientific); std::cout.precision(6); - - for (i_ntrk = InpTrk.begin(); i_ntrk < InpTrk.end(); ++i_ntrk) { -// -//-- MeasuredPerigee in TrigInDetTrack -// - mPer = (*i_ntrk)->param(); - if( mPer == 0 ){ continue; } - TrigTrkErr = mPer->cov(); -// - - A0Vert = mPer->a0() ; - if( !std::isfinite(A0Vert) ) return StatusCode::FAILURE; - ZVert = mPer->z0() ; - if( !std::isfinite(ZVert) ) return StatusCode::FAILURE; - PhiVert = mPer->phi0(); - if( !std::isfinite(PhiVert) ) return StatusCode::FAILURE; - if(PhiVert>3.14159265358979) PhiVert-=2.*3.14159265358979; - EtaVert = mPer->eta(); - if( !std::isfinite(EtaVert) ) return StatusCode::FAILURE; - ThetaVert = 2.0*atan(exp(-EtaVert)); - PtVert = mPer->pT(); - if( !std::isfinite(PtVert) ) return StatusCode::FAILURE; - -//std::cout<<" A0="<<A0Vert<<", ZV="<<ZVert<<", Phi="<<PhiVert<<", Eta="<<EtaVert<<" Pt="<<PtVert<<'\n'; - - m_apar[ntrk][0]= -A0Vert; - m_apar[ntrk][1]= ZVert; - m_apar[ntrk][2]= ThetaVert; - m_apar[ntrk][3]= PhiVert; - m_apar[ntrk][4]= -m_CNVMAG*m_BMAG/PtVert; - m_ich[ntrk] = PtVert > 0 ? -1 : 1; - - /* a0,phi,Z,eta,pt - order */ -/* Order of matrix element in vector: 00,01,02,03,04,11,12,13,14,22,23,24,33,34,44 */ -/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ - - if( TrigTrkErr != 0) { - CovI[0][0] = (*TrigTrkErr)[0]; - - CovI[1][0] = CovI[0][1] = (*TrigTrkErr)[1]; - CovI[1][1] = (*TrigTrkErr)[5]; - - CovI[0][2] = CovI[2][0] = (*TrigTrkErr)[2]; - CovI[1][2] = CovI[2][1] = (*TrigTrkErr)[6]; - CovI[2][2] = (*TrigTrkErr)[9]; - - CovI[0][3] = CovI[3][0] = (*TrigTrkErr)[3]; - CovI[1][3] = CovI[3][1] = (*TrigTrkErr)[7]; - CovI[2][3] = CovI[3][2] = (*TrigTrkErr)[10]; - CovI[3][3] = (*TrigTrkErr)[12]; - - CovI[0][4] = CovI[4][0] = (*TrigTrkErr)[4]; - CovI[1][4] = CovI[4][1] = (*TrigTrkErr)[8]; - CovI[2][4] = CovI[4][2] = (*TrigTrkErr)[11]; - CovI[3][4] = CovI[4][3] = (*TrigTrkErr)[13]; - CovI[4][4] = (*TrigTrkErr)[14]; - } else { - CovI[0][0] = mPer->ea0()*mPer->ea0(); - - CovI[1][0] = CovI[0][1] = 0.; - CovI[1][1] = mPer->ephi0()*mPer->ephi0(); - - CovI[0][2] = CovI[2][0] = 0.; - CovI[1][2] = CovI[2][1] = 0.; - CovI[2][2] = mPer->ez0()*mPer->ez0(); - - CovI[0][3] = CovI[3][0] = 0.; - CovI[1][3] = CovI[3][1] = 0.; - CovI[2][3] = CovI[3][2] = 0.; - CovI[3][3] = mPer->eeta()*mPer->eeta(); - - CovI[0][4] = CovI[4][0] = 0.; - CovI[1][4] = CovI[4][1] = 0.; - CovI[2][4] = CovI[4][2] = 0.; - CovI[3][4] = CovI[4][3] = 0.; - CovI[4][4] = mPer->epT()*mPer->epT(); - } - - for(i=0; i<5; i++){ for(j=0; j<=i; j++){ if ( !std::isfinite(CovI[i][j]) ) return StatusCode::FAILURE;}} - -//std::cout<<CovI[0][0]<<", "<<CovI[1][0]<<", "<<CovI[1][1]<<", "<<TrigTrkErr<<'\n'; -//std::cout<<mPer->ephi0()<<", "<<mPer->ephi0()<<", "<<mPer->ea0()<<", "<<mPer->ez0()<<'\n'; - if(CovI[0][0] < 1.e-30) CovI[0][0] = 1.0e-4; // 100mkm A0 - if(CovI[1][1] < 1.e-30) CovI[2][2] = 3.0e-4; // 1deg phi - if(CovI[2][2] < 1.e-30) CovI[1][1] = 4.0e-4; // 200mkm Z - if(CovI[3][3] < 1.e-30) CovI[3][3] = 1.0e-4; // 0.01 eta - if(CovI[4][4] < 1.e-30) CovI[4][4] = 1.0e-4*std::pow(PtVert,4); // 0.01*Pt² Pt error - - /* D(new)/D(old) */ - - Deriv[0][0] = -1.; - Deriv[1][2] = 1.; - Deriv[2][3] = -2.* exp(-EtaVert)/(exp(-2.*EtaVert)+1.); - Deriv[3][1] = 1.; - Deriv[4][4] = -m_CNVMAG*m_BMAG/PtVert/PtVert; - - ipnt=0; - for(i=0;i<5;i++){ for(j=0;j<=i;j++){ - ct=0.; - for(ii=0;ii<5;ii++){ - if(Deriv[i][ii] == 0.) continue; - for(jj=0;jj<5;jj++){ - if(Deriv[j][jj] == 0.) continue; - ct += CovI[ii][jj]*Deriv[i][ii]*Deriv[j][jj];};}; - m_awgt[ntrk][ipnt++]=ct; - };} - -// - ntrk++; if(ntrk>=NTRMAXTRIG) return StatusCode::FAILURE; - } - return StatusCode::SUCCESS; - } - - - TrigInDetTrack* TrigVKalFitter::CreateTrigTrack( const std::vector<double>& VKPerigee, - const std::vector<double>& VKCov) - { - double TrkP0, TrkP1, TrkP2, TrkP3, TrkP4, Theta; - TrkP0=-VKPerigee[0]; /*!!!! Change of sign !!!!*/ - TrkP1= VKPerigee[1]; - TrkP2= VKPerigee[3]; /* phi */ - Theta= VKPerigee[2]; - TrkP3=-log(tan(Theta/2)); - TrkP4= (m_CNVMAG*m_BMAG)/ VKPerigee[4]; /* Pt */ - TrkP4=-TrkP4; /*!!!! Change of sign of charge!!!!*/ - - - double Deriv[5][5],CovMtxOld[5][5],CovMtx[5][5]; - int i,j,ik,jk; - for(i=0;i<5;i++){ for(j=0;j<5;j++) {Deriv[i][j]=0.; CovMtxOld[i][j]=0.;}} - Deriv[0][0]=-1.; - Deriv[1][3]= 1.; - Deriv[2][1]= 1.; - Deriv[3][2]=-1./sin(Theta); - Deriv[4][4]= (m_CNVMAG*m_BMAG) / (VKPerigee[4]*VKPerigee[4]); - - CovMtxOld[0][0] =VKCov[0]; - CovMtxOld[0][1]=CovMtxOld[1][0]=VKCov[1]; - CovMtxOld[1][1] =VKCov[2]; - CovMtxOld[0][2]=CovMtxOld[2][0]=VKCov[3]; - CovMtxOld[1][2]=CovMtxOld[2][1]=VKCov[4]; - CovMtxOld[2][2] =VKCov[5]; - CovMtxOld[0][3]=CovMtxOld[3][0]=VKCov[6]; - CovMtxOld[1][3]=CovMtxOld[3][1]=VKCov[7]; - CovMtxOld[2][3]=CovMtxOld[3][2]=VKCov[8]; - CovMtxOld[3][3] =VKCov[9]; - CovMtxOld[0][4]=CovMtxOld[4][0]=VKCov[10]; - CovMtxOld[1][4]=CovMtxOld[4][1]=VKCov[11]; - CovMtxOld[2][4]=CovMtxOld[4][2]=VKCov[12]; - CovMtxOld[3][4]=CovMtxOld[4][3]=VKCov[13]; - CovMtxOld[4][4] =VKCov[14]; - - for(i=0;i<5;i++){ - for(j=i;j<5;j++){ - CovMtx[i][j]=0.; - for(ik=0;ik<5;ik++){ - for(jk=0;jk<5;jk++){ - CovMtx[i][j] += Deriv[i][ik]*CovMtxOld[ik][jk]*Deriv[j][jk]; - }} - }} - - std::vector<double>* Ncov = new std::vector<double>; - (*Ncov).clear(); - (*Ncov).push_back(CovMtx[0][0]); - (*Ncov).push_back(CovMtx[0][1]); - (*Ncov).push_back(CovMtx[1][1]); - (*Ncov).push_back(CovMtx[0][2]); - (*Ncov).push_back(CovMtx[1][2]); - (*Ncov).push_back(CovMtx[2][2]); - (*Ncov).push_back(CovMtx[0][3]); - (*Ncov).push_back(CovMtx[1][3]); - (*Ncov).push_back(CovMtx[2][3]); - (*Ncov).push_back(CovMtx[3][3]); - (*Ncov).push_back(CovMtx[0][4]); - (*Ncov).push_back(CovMtx[1][4]); - (*Ncov).push_back(CovMtx[2][4]); - (*Ncov).push_back(CovMtx[3][4]); - (*Ncov).push_back(CovMtx[4][4]); - - - TrigInDetTrackFitPar* NewTrackPar =new TrigInDetTrackFitPar(TrkP0, TrkP2, TrkP1, TrkP3, TrkP4, Ncov); - TrigInDetTrackFitPar* NewTrackParEnd =0; - - return new TrigInDetTrack( NewTrackPar, NewTrackParEnd, 10.); - } - - - diff --git a/Trigger/TrigTools/TrigVKalFitter/src/SetFitOptions.cxx b/Trigger/TrigTools/TrigVKalFitter/src/SetFitOptions.cxx deleted file mode 100755 index b456ca4b250..00000000000 --- a/Trigger/TrigTools/TrigVKalFitter/src/SetFitOptions.cxx +++ /dev/null @@ -1,172 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Header include -#include "TrigVKalFitter/TrigVKalFitter.h" -//------------------------------------------------- -#include "GaudiKernel/MsgStream.h" -#include<iostream> - - -// -// Option setting for VKalVrt core -// -void TrigVKalFitter::VKalVrtSetOptions(long int ntrk) -{ - - m_FitStatus = 0; // Drop all previous fit results - - double MFit = (double) (m_MassForConstraint); - long int Rob = (long int) m_Robustness; - //--- - int i,j; - double SumMass = 0; - for(i=0; i<ntrk; i++){ - if(i<(int)m_MassInputParticles.size()){ - m_wm[i] = (double)(m_MassInputParticles[i]); - SumMass += m_wm[i]; - } - else {m_wm[i]=(double)(139.5702);} - } - if ( MFit>0 && MFit < SumMass ) MFit=SumMass+1.e-4; - //--- - if(m_VertexForConstraint.size() >= 3){ - for(i=0; i<3; i++){m_VrtCst[i] =(double)(m_VertexForConstraint[i]);} - }else{ - for(i=0; i<3; i++){m_VrtCst[i] = 0;} - } - //--- - if(m_CovVrtForConstraint.size() >= 6){ - for(i=0; i<6; i++){m_CovVrtCst[i] =(double)(m_CovVrtForConstraint[i]);} - }else{ - for(i=0; i<6; i++){m_CovVrtCst[i] = 0.;} - } - //--- - if(m_TrackCharge.size() > 0){ - for(i=0; i<(int)m_TrackCharge.size(); i++){ - if(m_TrackCharge[i] < 1 ) continue; - if(m_TrackCharge[i] > ntrk) continue; - j=m_TrackCharge[i]-1; - // std::cout<<" Set charge "<<i<<", "<<m_apar[j][4]<<'\n'; - m_ich[j]=0; - if(m_apar[j][4]<0){ m_apar[j][4] =-m_apar[j][4]; // Charge=0 is always equal to Charge=+1 - m_awgt[j][10]=-m_awgt[j][10]; - m_awgt[j][11]=-m_awgt[j][11]; - m_awgt[j][12]=-m_awgt[j][12]; - m_awgt[j][13]=-m_awgt[j][13]; } - } - m_TrackCharge.clear(); - } - //--- - m_coreFit.prcfit(&ntrk,m_wm,&MFit,&m_BMAG,m_VrtCst,m_CovVrtCst); - //--- - // Additional change of settings - //--- - long int Index[NTRMAXTRIG]; - if(m_PartMassCnst.size() > 0) { - for(int ic=0; ic<(int)m_PartMassCnst.size(); ic++){ - long int NTrk=m_PartMassCnstTrk[ic].size(); - for(int it=0; it<NTrk; it++) Index[it]=m_PartMassCnstTrk[ic][it]; - double CnstMass= (double) m_PartMassCnst[ic]; - m_coreFit.setmasscnst_(&NTrk,Index,&CnstMass); - } - } - //--- - if(m_IterationNumber > 0) { - m_coreFit.vksetIterationNum(int(m_IterationNumber)); - } - //--- - if(m_IterationPrecision > 0.) { - m_coreFit.vksetIterationPrec(double(m_IterationPrecision)); - } - //--- - if(m_Robustness > 0) m_coreFit.vksetRobustness( Rob ); - -} - - - -void TrigVKalFitter::setApproximateVertex(double X,double Y,double Z) -{ m_ApproximateVertex.clear(); - m_ApproximateVertex.push_back(X); - m_ApproximateVertex.push_back(Y); - m_ApproximateVertex.push_back(Z); -} - -void TrigVKalFitter::setRobustness(int IROB) -{ m_Robustness = IROB;} - -void TrigVKalFitter::setCnstType(int TYPE) -{ m_iflag = TYPE; - if(m_iflag<0)m_iflag=0; - if(m_iflag>8)m_iflag=0; -} - -void TrigVKalFitter::setMassForConstraint(double MASS) -{ m_MassForConstraint = MASS;} - -void TrigVKalFitter::setMassForConstraint(double MASS, std::vector<int> TrkIndex) -{ - m_PartMassCnst.push_back(MASS); - m_PartMassCnstTrk.push_back(std::move(TrkIndex)); -} - -void TrigVKalFitter::setMomCovCalc(int TYPE) -{ m_ifcovv0 = abs(TYPE);} - -void TrigVKalFitter::setIterations(int Num, double Prec) -{ - m_IterationNumber = Num; - m_IterationPrecision = Prec; -} - -void TrigVKalFitter::setVertexForConstraint(double X,double Y,double Z) -{ - m_VertexForConstraint.clear(); - m_VertexForConstraint.push_back(X); - m_VertexForConstraint.push_back(Y); - m_VertexForConstraint.push_back(Z); -} - -void TrigVKalFitter::setCovVrtForConstraint(double XX,double XY,double YY, - double XZ,double YZ,double ZZ) -{ - m_CovVrtForConstraint.clear(); - m_CovVrtForConstraint.push_back(XX); - m_CovVrtForConstraint.push_back(XY); - m_CovVrtForConstraint.push_back(YY); - m_CovVrtForConstraint.push_back(XZ); - m_CovVrtForConstraint.push_back(YZ); - m_CovVrtForConstraint.push_back(ZZ); -} - -void TrigVKalFitter::setMassInputParticles( std::vector<double>& mass) -{ - m_MassInputParticles.clear(); - for(int i=0; i<(int)mass.size(); i++) m_MassInputParticles.push_back(fabs(mass[i])); -} - -void TrigVKalFitter::setZeroCharge(int Track) -{ - m_TrackCharge.push_back(Track); -} - - -void TrigVKalFitter::setDefault() -{ - // std::cout<<" In"<<'\n'; - setApproximateVertex(0.,0.,0.); - setRobustness(0); - setMassForConstraint(0.); - setVertexForConstraint(0.,0.,0.); - setCovVrtForConstraint(1.e6,0.,1.e6,0.,0.,1.e6); - m_MassInputParticles.clear(); - setCnstType(0); - setMomCovCalc(0); - m_TrackCharge.clear(); - m_PartMassCnst.clear(); - m_PartMassCnstTrk.clear(); - m_IterationNumber = 0; - m_IterationPrecision = 0.; -} diff --git a/Trigger/TrigTools/TrigVKalFitter/src/TVKalFitter.cxx b/Trigger/TrigTools/TrigVKalFitter/src/TVKalFitter.cxx deleted file mode 100755 index 89c8aa1e7ae..00000000000 --- a/Trigger/TrigTools/TrigVKalFitter/src/TVKalFitter.cxx +++ /dev/null @@ -1,523 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// Header include -#include "TrigVKalFitter/TrigVKalFitter.h" -#include "TrigVKalFitter/VKalVrtAtlas.h" -#include "TrkVKalVrtCore/TrkVKalVrtCore.h" -//------------------------------------------------- -// Other stuff -#include "GaudiKernel/MsgStream.h" -// -#include<iostream> - - -namespace Trk { - -extern void cfpest( int ntrk, double *vrt, long int *Charge, double (*part)[5], double (*par0)[3]); -extern void xyztrp( long int* Charge, double* vrt, double* Mom, double* CovVrtMom, double BMAG, double* Perig, double* CovPerig); - -extern int CFit(VKalVrtControl *FitCONTROL, int ifCovV0, int NTRK, - long int *ich, double xyz0[3], double (*par0)[3], - double (*inp_Trk5)[5], double (*inp_CovTrk5)[15], - double xyzfit[3], double (*parfs)[3], double ptot[4], - double covf[21], double & chi2, double *chi2tr); - // extern int CFit(long int iflag, long int ifCovV0, long int NTRK, - // long int *ich, double *xyz0, double *par0, - // double *inp_Trk5, double *inp_CovTrk5, - // double *xyzfit, double *parfs, double *ptot, - // double *covf, double *chi2, double *chi2tr); - // - // extern void cfpest( long int* ntrk, double* vrt, long int* Charge,double* part, double* par0); - // extern void xyztrp( long int* Charge, double* Vertex, double* Mom, - // double* CovVrtMom, double* Perig, double* CovPerig); - -} - -// -//Constructor-------------------------------------------------------------- -TrigVKalFitter:: TrigVKalFitter(const std::string& type, - const std::string& name, - const IInterface* parent): - AthAlgTool(type,name,parent), - m_Robustness(0), - m_Constraint(0), - m_CalcMomCovariance(0), - m_MassForConstraint(0.), - m_magFieldAthenaSvc("AtlasDefault", name), m_coreFit() //Athena magnetic field -{ - // - // Declare additional interface - // - declareInterface<ITrigVKalFitter>(this); - // - // Properties - // - m_BMAG=1.997; /*ATLAS magnetic field*/ - m_CNVMAG = 0.29979246; /* conversion constant for CLHEP::MeV and MM */ - - m_VertexForConstraint.clear(); - for( int i=0; i<3; i++){m_VertexForConstraint.push_back(0.);} - m_CovVrtForConstraint.clear(); - for( int i=0; i<6; i++){m_CovVrtForConstraint.push_back(0.);} - m_MassInputParticles.clear(); - m_ApproximateVertex.clear(); - m_TrackCharge.clear(); - - declareProperty("baseMagField", m_BMAG); - declareProperty("Robustness", m_Robustness); - declareProperty("Constraint", m_Constraint); - declareProperty("MomentumCovariance", m_CalcMomCovariance); - declareProperty("MassForConstraint", m_MassForConstraint); - declareProperty("IterationNumber", m_IterationNumber); - declareProperty("IterationPrecision", m_IterationPrecision); - declareProperty("VertexForConstraint", m_VertexForConstraint); - declareProperty("CovVrtForConstraint", m_CovVrtForConstraintProp); - declareProperty("InputParticleMasses", m_MassInputParticlesProp); - declareProperty("ApproximateVertex", m_ApproximateVertexProp); - declareProperty("ZeroChgTracks", m_TrackCharge); - declareProperty("AtlasMagFieldSvc", m_magFieldAthenaSvc, "Name of existing mag.field service. If wrong or non-existing - fixed filed is used"); - // - // - m_iflag=0; - m_ifcovv0=0; - m_FitStatus=0; - m_IterationNumber=0; - m_IterationPrecision=0.; - VKalVrtSetOptions( 2 ); //Needed for initialisation of the fitting kernel - - - m_fitField = new TrigAtlasMagFld(); -} - - -//Destructor--------------------------------------------------------------- -TrigVKalFitter::~TrigVKalFitter(){ - ATH_MSG_DEBUG("TrigVKalFitter destructor called"); - delete m_fitField; -} - - -StatusCode -TrigVKalFitter::initialize() { - const std::vector< double > & prop = m_CovVrtForConstraintProp.value(); - m_CovVrtForConstraint.clear(); - for( unsigned int i=0; i<prop.size(); i++) { - m_CovVrtForConstraint.push_back(prop[i]); - } - - const std::vector< double > & prop2 = m_MassInputParticlesProp.value(); - m_MassInputParticles.clear(); - for( unsigned int i=0; i<prop2.size(); i++) { - m_MassInputParticles.push_back(prop2[i]); - } - - const std::vector< double > & prop3 = m_ApproximateVertexProp.value(); - m_ApproximateVertex.clear(); - for( unsigned int i=0; i<prop3.size(); i++) { - m_ApproximateVertex.push_back(prop3[i]); - } - - StatusCode sc=m_magFieldAthenaSvc.retrieve(); - if (sc.isFailure() ){ - ATH_MSG_DEBUG("Could not find a valid ATHENA field service."); - ATH_MSG_DEBUG("Default constant field is used. B="<<m_BMAG<<" Tesla"); - }else{ - ATH_MSG_DEBUG("Valid ATHENA field service is retrieved"); - setAthenaField( &(*m_magFieldAthenaSvc) ); - } - - m_vkalFitControl = new Trk::VKalVrtControl(Trk::VKalVrtControlBase(m_fitField,0,0,0)); // Create main control object - - return StatusCode::SUCCESS; -} - - - -//__________________________________________________________________________ -//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& -// Interface -// -StatusCode TrigVKalFitter::VKalVrtFit(const std::vector<const TrigInDetTrack*>& InpTrk, - dvect& FitResult) -{ - // - // extract information about selected tracks - // - long int ntrk=0; - StatusCode sc=CvtTrigTrack(InpTrk,ntrk); - if(sc.isFailure())return StatusCode::FAILURE; - - long int ierr = VKalVrtFit1( ntrk, FitResult); - - if (ierr) return StatusCode::FAILURE; - return StatusCode::SUCCESS; -} - -// -// Main code -// -long int TrigVKalFitter::VKalVrtFit1(long int ntrk, dvect& FitResult) -{ - // - // Variables and arrays needed for fitting kernel - // - long int ierr; - double xyz0[3],xyzfit[3],ptot[4],covf[21],chi2; - ptot[0]=ptot[1]=ptot[2]=ptot[3]=0.; - xyzfit[0]=xyzfit[1]=xyzfit[2]=0.; - // - //------ Fit option setting - // - VKalVrtSetOptions( ntrk ); - // - //------ Fit itself - // - if(m_ApproximateVertex.size()==3){ - xyz0[0]=(double)m_ApproximateVertex[0]; - xyz0[1]=(double)m_ApproximateVertex[1]; - xyz0[2]=(double)m_ApproximateVertex[2]; - } else { - xyz0[0]=xyz0[1]=xyz0[2]=0.; - } - - //Trk::cfpest( &ntrk, xyz0, m_ich, &m_apar[0][0], &m_par0[0][0]); - //ierr=Trk::CFit( m_iflag, m_ifcovv0, ntrk, - // m_ich, xyz0, &m_par0[0][0], &m_apar[0][0], &m_awgt[0][0], - // xyzfit, &m_parfs[0][0], ptot, covf, &chi2, m_chi2tr); - - Trk::cfpest( ntrk, xyz0, m_ich, m_apar, m_par0); - ierr=Trk::CFit( m_vkalFitControl, m_ifcovv0, ntrk, m_ich, xyz0, m_par0, m_apar, m_awgt, - xyzfit, m_parfs, ptot, covf, chi2, m_chi2tr); - - - - FitResult.clear(); - if(ierr)return ierr; - - m_FitStatus=ntrk; - - FitResult.push_back( (double) chi2); - FitResult.push_back( (double) xyzfit[0]); - FitResult.push_back( (double) xyzfit[1]); - FitResult.push_back( (double) xyzfit[2]); - FitResult.push_back( (double) covf[0]); - FitResult.push_back( (double) covf[1]); - FitResult.push_back( (double) covf[2]); - FitResult.push_back( (double) covf[3]); - FitResult.push_back( (double) covf[4]); - FitResult.push_back( (double) covf[5]); - return 0; -} - - -//__________________________________________________________________________ -//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& -// Interface -// -StatusCode TrigVKalFitter::VKalVrtFit(const std::vector<const TrigInDetTrack*>& InpTrk, - Amg::Vector3D& Vertex, - CLHEP::HepLorentzVector& Momentum, - long int& Charge, - dvect& ErrorMatrix, - dvect& Chi2PerTrk, - std::vector< std::vector<double> >& TrkAtVrt, - double& Chi2 ) -{ - // - //------ extract information about selected tracks - // - long int ntrk=0; - StatusCode sc=CvtTrigTrack(InpTrk,ntrk); - if(sc.isFailure())return StatusCode::FAILURE; - - long int ierr = VKalVrtFit3( ntrk, Vertex, Momentum, Charge, ErrorMatrix, - Chi2PerTrk, TrkAtVrt,Chi2 ) ; - if (ierr) return StatusCode::FAILURE; - return StatusCode::SUCCESS; -} - - - - -//-------------------------------------------------------------------------------------------------- -// Main code -// -long int TrigVKalFitter::VKalVrtFit3( long int ntrk, - Amg::Vector3D& Vertex, - CLHEP::HepLorentzVector& Momentum, - long int& Charge, - dvect& ErrorMatrix, - dvect& Chi2PerTrk, - std::vector< std::vector<double> >& TrkAtVrt, - double& Chi2 ) -{ - // - //------ Variables and arrays needed for fitting kernel - // - long int ierr; - int i; - double xyz0[3],xyzfit[3],ptot[4],covf[21],chi2f; - ptot[0]=ptot[1]=ptot[2]=ptot[3]=0.; - xyzfit[0]=xyzfit[1]=xyzfit[2]=0.; - // - //------ Fit option setting - // - VKalVrtSetOptions( ntrk ); - // - //------ Fit itself - // - if(m_ApproximateVertex.size()==3){ - xyz0[0]=(double)m_ApproximateVertex[0]; - xyz0[1]=(double)m_ApproximateVertex[1]; - xyz0[2]=(double)m_ApproximateVertex[2]; - } else { - xyz0[0]=xyz0[1]=xyz0[2]=0.; - } - - //Trk::cfpest( &ntrk, xyz0, m_ich, &m_apar[0][0], &m_par0[0][0]); - //ierr=Trk::CFit( m_iflag, m_ifcovv0, ntrk, - // m_ich, xyz0, &m_par0[0][0], &m_apar[0][0], &m_awgt[0][0], - // xyzfit, &m_parfs[0][0], ptot, covf, &chi2f, m_chi2tr); - Trk::cfpest( ntrk, xyz0, m_ich, m_apar, m_par0); - ierr=Trk::CFit( m_vkalFitControl, m_ifcovv0, ntrk, m_ich, xyz0, m_par0, m_apar, m_awgt, - xyzfit, m_parfs, ptot, covf, chi2f, m_chi2tr); - - Chi2 = 100000000.; - if(ierr)return ierr; - - m_FitStatus=ntrk; - - Chi2 = (double) chi2f; - - Vertex << xyzfit[0], xyzfit[1], xyzfit[2]; - double Px,Py,Pz,Ee,Pt; double pmom[4]; pmom[0]=pmom[1]=pmom[2]=pmom[3]=0; - for ( i=0; i<ntrk; i++){ - Pt = m_CNVMAG*m_BMAG/fabs((double)m_parfs[i][2]); - Px = Pt*cos((double)m_parfs[i][1]); - Py = Pt*sin((double)m_parfs[i][1]); - Pz = Pt/tan((double)m_parfs[i][0]); - Ee = sqrt(Px*Px+Py*Py+Pz*Pz+m_wm[i]*m_wm[i]); - pmom[0] += Px; pmom[1] += Py; pmom[2] += Pz; pmom[3] += Ee; - } - // std::cout<<" M1="<<m_wm[0]<<", "<<m_wm[1]<<'\n'; - // std::cout<<" Pmom="<<pmom[0]<<", "<<pmom[1]<<", "<<pmom[2]<<", "<<pmom[3]<<'\n'; - - Charge=0; for(i=0; i<ntrk; i++){Charge+=m_ich[i];} - - Momentum.setPx( pmom[0] ); - Momentum.setPy( pmom[1] ); - Momentum.setPz( pmom[2] ); - Momentum.setE( pmom[3] ); - - ErrorMatrix.clear(); - ErrorMatrix.push_back( (double) covf[0]); - ErrorMatrix.push_back( (double) covf[1]); - ErrorMatrix.push_back( (double) covf[2]); - ErrorMatrix.push_back( (double) covf[3]); - ErrorMatrix.push_back( (double) covf[4]); - ErrorMatrix.push_back( (double) covf[5]); - - ErrorMatrix.push_back( (double) covf[6]); - ErrorMatrix.push_back( (double) covf[7]); - ErrorMatrix.push_back( (double) covf[8]); - ErrorMatrix.push_back( (double) covf[9]); - - ErrorMatrix.push_back( (double) covf[10]); - ErrorMatrix.push_back( (double) covf[11]); - ErrorMatrix.push_back( (double) covf[12]); - ErrorMatrix.push_back( (double) covf[13]); - ErrorMatrix.push_back( (double) covf[14]); - - ErrorMatrix.push_back( (double) covf[15]); - ErrorMatrix.push_back( (double) covf[16]); - ErrorMatrix.push_back( (double) covf[17]); - ErrorMatrix.push_back( (double) covf[18]); - ErrorMatrix.push_back( (double) covf[19]); - ErrorMatrix.push_back( (double) covf[20]); - - Chi2PerTrk.clear(); - for(i=0; i<ntrk; i++){Chi2PerTrk.push_back( (double) m_chi2tr[i]); } - - TrkAtVrt.clear(); - for(i=0; i<ntrk; i++){ - std::vector<double> TrkPar(3); - VKalToTrkTrack((double)m_parfs[i][0],(double)m_parfs[i][1],(double) m_parfs[i][2], - TrkPar[0],TrkPar[1],TrkPar[2]); - TrkAtVrt.push_back( TrkPar ); - } - return 0; -} - - - - - - - -StatusCode TrigVKalFitter::VKalVrtCvtTool(const Amg::Vector3D& Vertex, - const CLHEP::HepLorentzVector& Momentum, - const dvect& CovVrtMom, - const long int& Charge, - dvect& Perigee, - dvect& CovPerigee) -{ - int i,j,ij; - double Vrt[3],PMom[4],Cov0[21],Per[5],CovPer[15]; - - for(i=0; i<3; i++) Vrt[i]=Vertex[i]; - for(i=0; i<3; i++) PMom[i]=Momentum[i]; - for(ij=i=0; i<6; i++){ - for(j=0; j<=i; j++){ - Cov0[ij]=CovVrtMom[ij]; - ij++; - } - } - - long int vkCharge=Charge; - Trk::xyztrp( &vkCharge, Vrt, PMom, Cov0, m_BMAG, Per, CovPer); - - Perigee.clear(); - CovPerigee.clear(); - - - for(i=0; i<5; i++) Perigee.push_back((double)Per[i]); - for(i=0; i<15; i++) CovPerigee.push_back((double)CovPer[i]); - - //std::cout<<"Perigee V0"<<Per[0]<<", "<<Per[1]<<", "<<Per[2]<<", "<<Per[3]<<", "<<Per[4]<<'\n'; - //std::cout<<"CovPeri V0"<<CovPer[10]<<", "<<CovPer[11]<<", "<<CovPer[12]<<", "<<CovPer[13]<<", "<<CovPer[14]<<'\n'; - - return StatusCode::SUCCESS; -} - - -void TrigVKalFitter::VKalToTrkTrack( double vp1, double vp2, double vp3, - double& tp1, double& tp2, double& tp3) -{ - tp1= vp2; - tp2= vp1; - tp3= vp3 * sin( vp1 ) /(m_CNVMAG*m_BMAG) ; -} - - -StatusCode TrigVKalFitter::VKalGetTrkCov(const long int iTrk,const long int NTrk, - dvect& CovVrtTrk) -{ - if(iTrk<1) return StatusCode::FAILURE; - if(iTrk>NTrk) return StatusCode::FAILURE; - if(!m_FitStatus) return StatusCode::FAILURE; - - int i,j,ik,jk; - double ErrMtx[ (3*NTRMAXTRIG+3)*(3*NTRMAXTRIG+4)/2 ] = {0}; - double CovMtxOld[6][6]; - double CovMtx [6][6]; - - //long int vkNTrk = NTrk; - //int IERR = Trk::fiterm(vkNTrk,ErrMtx); //Real error matrix after fit - //if(IERR) return StatusCode::FAILURE; - - CovVrtTrk.clear(); - - CovMtxOld[0][0] = ErrMtx[0]; - CovMtxOld[1][0] = CovMtxOld[0][1] = ErrMtx[1]; - CovMtxOld[1][1] = ErrMtx[2]; - CovMtxOld[2][0] = CovMtxOld[0][2] = ErrMtx[3]; - CovMtxOld[2][1] = CovMtxOld[1][2] = ErrMtx[4]; - CovMtxOld[2][2] = ErrMtx[5]; - - int pnt = (iTrk*3+1)*iTrk*3/2; - CovMtxOld[3][0] = CovMtxOld[0][3] = ErrMtx[pnt]; - CovMtxOld[3][1] = CovMtxOld[1][3] = ErrMtx[pnt+1]; - CovMtxOld[3][2] = CovMtxOld[2][3] = ErrMtx[pnt+2]; - CovMtxOld[3][3] = ErrMtx[pnt+iTrk*3]; - pnt = (iTrk*3+1+1)*(iTrk*3+1)/2; - CovMtxOld[4][0] = CovMtxOld[0][4] = ErrMtx[pnt]; - CovMtxOld[4][1] = CovMtxOld[1][4] = ErrMtx[pnt+1]; - CovMtxOld[4][2] = CovMtxOld[2][4] = ErrMtx[pnt+2]; - CovMtxOld[4][3] = CovMtxOld[3][4] = ErrMtx[pnt+iTrk*3]; - CovMtxOld[4][4] = ErrMtx[pnt+iTrk*3+1]; - pnt = (iTrk*3+2+1)*(iTrk*3+2)/2; - CovMtxOld[5][0] = CovMtxOld[0][5] = ErrMtx[pnt]; - CovMtxOld[5][1] = CovMtxOld[1][5] = ErrMtx[pnt+1]; - CovMtxOld[5][2] = CovMtxOld[2][5] = ErrMtx[pnt+2]; - CovMtxOld[5][3] = CovMtxOld[3][5] = ErrMtx[pnt+iTrk*3]; - CovMtxOld[5][4] = CovMtxOld[4][5] = ErrMtx[pnt+iTrk*3+1]; - CovMtxOld[5][5] = ErrMtx[pnt+iTrk*3+2]; - - - double Theta=m_parfs[iTrk-1][0]; - double Phi =m_parfs[iTrk-1][1]; - double invR =m_parfs[iTrk-1][2]; - double pt=(m_CNVMAG*m_BMAG)/fabs(invR); - double px=pt*cos(Phi); - double py=pt*sin(Phi); - double pz=pt/tan(Theta); - - // std::cout<<"Phi="<<Phi<<", Theta="<<Theta<<'\n'; - - double Deriv[6][6]; - for(i=0;i<6;i++){ for(j=0;j<6;j++) {Deriv[i][j]=0.;}} - Deriv[0][0]= 1.; - Deriv[1][1]= 1.; - Deriv[2][2]= 1.; - - Deriv[3][3]= 0; //dPx/dTheta - Deriv[3][4]= -py; //dPx/dPhi - Deriv[3][5]= -px/invR; //dPx/dinvR - - Deriv[4][3]= 0; //dPy/dTheta - Deriv[4][4]= px; //dPy/dPhi - Deriv[4][5]= -py/invR; //dPy/dinvR - - Deriv[5][3]= -pt/sin(Theta)/sin(Theta); //dPz/dTheta - Deriv[5][4]= 0; //dPz/dPhi - Deriv[5][5]= -pz/invR; //dPz/dinvR - //---------- - for(i=0;i<6;i++){ - for(j=i;j<6;j++){ - CovMtx[i][j]=0.; - for(ik=0;ik<6;ik++){ - for(jk=0;jk<6;jk++){ - CovMtx[i][j] += Deriv[i][ik]*CovMtxOld[ik][jk]*Deriv[j][jk]; - }} - }} - - CovVrtTrk.push_back(CovMtx[0] [0]); - CovVrtTrk.push_back(CovMtx[0] [1]); - CovVrtTrk.push_back(CovMtx[1] [1]); - CovVrtTrk.push_back(CovMtx[0] [2]); - CovVrtTrk.push_back(CovMtx[1] [2]); - CovVrtTrk.push_back(CovMtx[2] [2]); - CovVrtTrk.push_back(CovMtx[0] [3]); - CovVrtTrk.push_back(CovMtx[1] [3]); - CovVrtTrk.push_back(CovMtx[2] [3]); - CovVrtTrk.push_back(CovMtx[3] [3]); - CovVrtTrk.push_back(CovMtx[0] [4]); - CovVrtTrk.push_back(CovMtx[1] [4]); - CovVrtTrk.push_back(CovMtx[2] [4]); - CovVrtTrk.push_back(CovMtx[3] [4]); - CovVrtTrk.push_back(CovMtx[4] [4]); - CovVrtTrk.push_back(CovMtx[0] [5]); - CovVrtTrk.push_back(CovMtx[1] [5]); - CovVrtTrk.push_back(CovMtx[2] [5]); - CovVrtTrk.push_back(CovMtx[3] [5]); - CovVrtTrk.push_back(CovMtx[4] [5]); - CovVrtTrk.push_back(CovMtx[5] [5]); - - return StatusCode::SUCCESS; - -} - -StatusCode TrigVKalFitter::VKalGetMassError( std::vector<int> ListOfTracks , double& dM, double& MassError) -{ - if(!m_FitStatus) return StatusCode::FAILURE; - if((int) ListOfTracks.size() != m_FitStatus) return StatusCode::FAILURE; - - dM = m_vkalFitControl->getVertexMass(); - MassError = m_vkalFitControl->getVrtMassError(); - - return StatusCode::SUCCESS; -} - - diff --git a/Trigger/TrigTools/TrigVKalFitter/src/TVKalFitterFast.cxx b/Trigger/TrigTools/TrigVKalFitter/src/TVKalFitterFast.cxx deleted file mode 100755 index 25f0044ce8e..00000000000 --- a/Trigger/TrigTools/TrigVKalFitter/src/TVKalFitterFast.cxx +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Header include -#include "TrigVKalFitter/TrigVKalFitter.h" -//------------------------------------------------- -// -#include<iostream> -#include<list> -namespace Trk { - extern void vkvfast_( double* , double* , double* , double*); -} -// -//__________________________________________________________________________ - - StatusCode TrigVKalFitter::VKalVrtFitFast(const std::vector<const TrigInDetTrack*>& InpTrk, - Amg::Vector3D& Vertex) { -// -//------ Variables and arrays needed for fitting kernel -// - double out[3]; - int i,j; - std::list<double> xx,yy,zz; - Vertex<<0.,0.,0.; -// -//------ extract information about selected tracks -// - long int ntrk=0; - StatusCode sc = CvtTrigTrack(InpTrk,ntrk); - if(sc.isFailure()) return StatusCode::FAILURE; - if(ntrk<1) return StatusCode::FAILURE; - if(ntrk==2){ - Trk::vkvfast_(&m_apar[0][0],&m_apar[1][0],&m_BMAG,out); - } else { - for( i=0; i<ntrk-1; i++){ - for( j=i+1; j<ntrk; j++){ - Trk::vkvfast_(&m_apar[i][0],&m_apar[j][0],&m_BMAG,out); - xx.push_back(out[0]); - yy.push_back(out[1]); - zz.push_back(out[2]); - } - } - int n=xx.size(); - xx.sort(); yy.sort(); zz.sort(); - - std::list<double>::iterator it1,it2; - it1=it2=xx.begin(); - for(i=0; i<((n+1)/2); i++,it1++){}; for(i=0; i<(n/2+1);i++,it2++){}; - out[0]=0.5*( (*it1) + (*it2) ); - - it1=it2=yy.begin(); - for(i=0; i<((n+1)/2); i++,it1++){}; for(i=0; i<(n/2+1);i++,it2++){}; - out[1]=0.5*( (*it1) + (*it2) ); - - it1=it2=zz.begin(); - for(i=0; i<((n+1)/2); i++,it1++){}; for(i=0; i<(n/2+1);i++,it2++){}; - out[2]=0.5*( (*it1) + (*it2) ); - - } - Vertex<< out[0], out[1], out[2]; - - - return StatusCode::SUCCESS; - } diff --git a/Trigger/TrigTools/TrigVKalFitter/src/TVKalGetImpact.cxx b/Trigger/TrigTools/TrigVKalFitter/src/TVKalGetImpact.cxx deleted file mode 100755 index fead70b5c65..00000000000 --- a/Trigger/TrigTools/TrigVKalFitter/src/TVKalGetImpact.cxx +++ /dev/null @@ -1,69 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Header include -#include "TrigVKalFitter/TrigVKalFitter.h" -#include "TrigVKalFitter/VKalVrtAtlas.h" -#include "TrkVKalVrtCore/TrkVKalVrtCore.h" -//------------------------------------------------- -// -#include<iostream> - -namespace Trk { - //extern - // void cfimp(long int TrkID, long int ICH, long int IFL, double* PAR, double* ERR, - // double* VRT, double* VCOV, - // double* RIMP, double* RCOV, double* SIGN); - extern - void cfimp(long int TrkID, long int ICH, int IFL, double* PAR, double* ERR, - double* VRT, double* VCOV, - double* RIMP, double* RCOV, double* SIGN, const VKalVrtControlBase * FitCONTROL ); -} -// -//__________________________________________________________________________ -//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& - - - - double TrigVKalFitter::VKalGetImpact(const TrigInDetTrack* InpTrk,const Amg::Vector3D& Vertex, const long int Charge, - std::vector<double>& Impact, std::vector<double>& ImpactError){ -// -//------ Variables and arrays needed for fitting kernel -// - double VrtInp[3]={Vertex.x(),Vertex.y(),Vertex.z()}; - double VrtCov[6]={0.,0.,0.,0.,0.,0.}; - double RIMP[5],RCOV[3]; - double SIGNIF=0.; - std::vector<const TrigInDetTrack*> InpTrkList; - InpTrkList.push_back(InpTrk); -// -//--Preparation - Impact.clear(); ImpactError.clear(); -// -//------ extract information about selected tracks -// - long int ntrk=0; - StatusCode sc = CvtTrigTrack(InpTrkList,ntrk); - if(sc.isFailure() ) return -9999.0; //Something is wrong in conversion - if(ntrk != 1) return -9999.0; //Something is wrong in conversion -// - - long int vkCharge=Charge; - Trk::cfimp( 0, vkCharge, 0, &m_apar[0][0], &m_awgt[0][0], &VrtInp[0], &VrtCov[0], &RIMP[0], &RCOV[0], &SIGNIF,m_vkalFitControl); - - Impact.push_back(RIMP[0]); - Impact.push_back(RIMP[1]); - Impact.push_back(RIMP[2]); - Impact.push_back(RIMP[3]); - Impact.push_back(RIMP[4]); - ImpactError.push_back(RCOV[0]); - ImpactError.push_back(RCOV[1]); - ImpactError.push_back(RCOV[2]); - return SIGNIF; - - } - - - - diff --git a/Trigger/TrigTools/TrigVKalFitter/src/TVKalMagFld.cxx b/Trigger/TrigTools/TrigVKalFitter/src/TVKalMagFld.cxx deleted file mode 100755 index 9b4720aa2d2..00000000000 --- a/Trigger/TrigTools/TrigVKalFitter/src/TVKalMagFld.cxx +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Header include -#include "TrigVKalFitter/TrigVKalFitter.h" -#include "TrigVKalFitter/VKalVrtAtlas.h" -#include "TrkVKalVrtCore/TrkVKalVrtCore.h" -//------------------------------------------------- -#include "CLHEP/Units/SystemOfUnits.h" -#include<iostream> - - -//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& -// ATLAS magnetic field access - TrigAtlasMagFld::TrigAtlasMagFld(){ - m_VKalAthenaField=0; - m_FIXED_ATLAS_FIELD=1.997; - } - TrigAtlasMagFld::~TrigAtlasMagFld(){} - void TrigAtlasMagFld::setAtlasMag( MagField::IMagFieldSvc * pnt) - { - m_VKalAthenaField = pnt; - } - void TrigAtlasMagFld::setAtlasMag(const double field) - { m_FIXED_ATLAS_FIELD = field; } - - void TrigAtlasMagFld::getMagFld(const double x, const double y, const double z, - double &bx, double &by, double &bz) const - { - double fieldXYZ[3]; double BField[3]; - fieldXYZ[0]=x; - fieldXYZ[1]=y; - fieldXYZ[2]=z; - if( m_VKalAthenaField != 0) { - m_VKalAthenaField->getField(fieldXYZ,BField); - bx = BField[0]/CLHEP::tesla; - by = BField[1]/CLHEP::tesla; // Field in TESLA!!!! - bz = BField[2]/CLHEP::tesla; -//std::cout<<" Exact mag"<<'\n'; - }else{ - bx = 0.; - by = 0.; - bz = m_FIXED_ATLAS_FIELD; -//std::cout<<" Fix mag"<<'\n'; - } - } -//-------------------------------------------------------------------------- -//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& -// Setting interface - void TrigVKalFitter::setAthenaField(MagField::IMagFieldSvc* pnt) - { - m_fitField->setAtlasMag(pnt); - double Bx,By,Bz; - m_fitField->getMagFld(0.,0.,0.,Bx,By,Bz); - m_fitField->setAtlasMag(Bz); - } - - void TrigVKalFitter::setAthenaField(const double Field) - { - m_fitField->setAtlasMag( Field ); - } diff --git a/Trigger/TrigTools/TrigVKalFitter/src/components/TrigVKalFitter_entries.cxx b/Trigger/TrigTools/TrigVKalFitter/src/components/TrigVKalFitter_entries.cxx deleted file mode 100644 index cc9f5b8b71e..00000000000 --- a/Trigger/TrigTools/TrigVKalFitter/src/components/TrigVKalFitter_entries.cxx +++ /dev/null @@ -1,3 +0,0 @@ -#include "TrigVKalFitter/TrigVKalFitter.h" - -DECLARE_COMPONENT( TrigVKalFitter ) -- GitLab From 79752d2e4d9fd4e601a7812fab07a5e0e27cea30 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <frank.winklmeier@cern.ch> Date: Tue, 28 Jul 2020 17:41:12 +0000 Subject: [PATCH 286/459] InDetTrigRecExample: Delete obsolete job options Delete some obviously obsolete job options (e.g. referencing TrigSteer_L2). --- .../InDetTrigRecExample/CMakeLists.txt | 7 +- .../TESTS/testEFIDReadBSMemAudit.py | 76 --- .../TESTS/testEFIDreadBS_Flags.py | 85 --- .../InDetTrigRecExample/doc/packagedoc.h | 55 +- .../share/InDetTrigRecNtupleCreation.py | 119 ---- .../InDetTrigRecExample/share/Setup.sh | 23 - .../share/jobOptionsNewSteering.py | 531 ----------------- .../jobOptions_RTT_InDetTrigRecExample.py | 526 ----------------- ...ns_RTT_InDetTrigRecExample_backTracking.py | 484 ---------------- ...ptions_RTT_InDetTrigRecExample_doReadBS.py | 536 ------------------ .../InDetTrigRecExample/share/plotHistos.C | 88 --- .../share/testEFID_RTT_InDetTrigRecExample.py | 49 -- .../share/testEFID_basic.py | 225 -------- .../InDetTrigRecExample_TestConfiguration.xml | 106 ---- .../share/RecExCommon_topOptions.py | 8 - 15 files changed, 3 insertions(+), 2915 deletions(-) delete mode 100755 InnerDetector/InDetExample/InDetTrigRecExample/TESTS/testEFIDReadBSMemAudit.py delete mode 100755 InnerDetector/InDetExample/InDetTrigRecExample/TESTS/testEFIDreadBS_Flags.py delete mode 100644 InnerDetector/InDetExample/InDetTrigRecExample/share/InDetTrigRecNtupleCreation.py delete mode 100755 InnerDetector/InDetExample/InDetTrigRecExample/share/Setup.sh delete mode 100755 InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptionsNewSteering.py delete mode 100755 InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptions_RTT_InDetTrigRecExample.py delete mode 100755 InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptions_RTT_InDetTrigRecExample_backTracking.py delete mode 100755 InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptions_RTT_InDetTrigRecExample_doReadBS.py delete mode 100644 InnerDetector/InDetExample/InDetTrigRecExample/share/plotHistos.C delete mode 100644 InnerDetector/InDetExample/InDetTrigRecExample/share/testEFID_RTT_InDetTrigRecExample.py delete mode 100644 InnerDetector/InDetExample/InDetTrigRecExample/share/testEFID_basic.py delete mode 100755 InnerDetector/InDetExample/InDetTrigRecExample/test/InDetTrigRecExample_TestConfiguration.xml diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/CMakeLists.txt b/InnerDetector/InDetExample/InDetTrigRecExample/CMakeLists.txt index 96888349ef4..b0e6f63e30b 100644 --- a/InnerDetector/InDetExample/InDetTrigRecExample/CMakeLists.txt +++ b/InnerDetector/InDetExample/InDetTrigRecExample/CMakeLists.txt @@ -1,13 +1,10 @@ -################################################################################ -# Package: InDetTrigRecExample -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( InDetTrigRecExample ) # Install files from the package: atlas_install_python_modules( python/*.py ) -atlas_install_joboptions( share/**.py ) -atlas_install_runtime( test/InDetTrigRecExample_TestConfiguration.xml share/jobOptions_RTT_InDetTrigRecExample.py share/jobOptions_RTT_InDetTrigRecExample_doReadBS.py share/plotHistos.C share/jobOptions_RTT_InDetTrigRecExample_backTracking.py share/InDetTrigRecNtupleCreation.py ) +atlas_install_joboptions( share/*.py ) atlas_install_scripts( share/RTT_NoBField_transform.sh ) diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/TESTS/testEFIDReadBSMemAudit.py b/InnerDetector/InDetExample/InDetTrigRecExample/TESTS/testEFIDReadBSMemAudit.py deleted file mode 100755 index b8703204386..00000000000 --- a/InnerDetector/InDetExample/InDetTrigRecExample/TESTS/testEFIDReadBSMemAudit.py +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -############################################################### -# -# Set Flags for Running the Trigger in readBS Mode -# includes Trigger_topOptions.py to do the real work. -# Reads from file RawEvent.re (file must already exist; -# run athena with TrigWriteBS_Flags.py to produce it) -# -# use: -# athena.py -bs testAllReadBSMemAudit.py -#============================================================== -doDetailedAuditor = True -# no. of times to loop over same file -repeatFile = 20 -# -include( "testEFIDreadBS_Flags.py" ) -#EventSelector.SkipEvents = 99 -MessageSvc.OutputLevel = INFO - -theApp.EvtMax = 10000 -MessageSvc.defaultLimit = 100000000 #(repeatFile+1)*theApp.EvtMax -ChronoStatSvc.NumberOfSkippedEventsForMemStat = 50 -# -#if doDetailedAuditor: -# theApp.AuditTools=True # FIXME crash on finalisation -# -# change the input file -#ByteStreamEventStorageInputSvc.OutputLevel = ERROR -ByteStreamInputSvc.OutputLevel = ERROR - -DetDescrVersion = "ATLAS-DC3-02" -# 100 events per file -BSRDOInput=["rfio:/castor/cern.ch/user/d/demelian/bs/12.0.3/004100/mc11.004100.T1_McAtNLO_top.v11000401_120003._00001.bs.data"] -#BSRDOInput+=["rfio:/castor/cern.ch/user/d/demelian/bs/12.0.3/004100/mc11.004100.T1_McAtNLO_top.v11000401_120003._00002.bs.data"] -#BSRDOInput+=["rfio:/castor/cern.ch/user/d/demelian/bs/12.0.3/004100/mc11.004100.T1_McAtNLO_top.v11000401_120003._00003.bs.data"] -#BSRDOInput+=["rfio:/castor/cern.ch/user/d/demelian/bs/12.0.3/004100/mc11.004100.T1_McAtNLO_top.v11000401_120003._00004.bs.data"] -#BSRDOInput+=["rfio:/castor/cern.ch/user/d/demelian/bs/12.0.3/004100/mc11.004100.T1_McAtNLO_top.v11000401_120003._00005.bs.data"] -#BSRDOInput+=["rfio:/castor/cern.ch/user/d/demelian/bs/12.0.3/004100/mc11.004100.T1_McAtNLO_top.v11000401_120003._00006.bs.data"] -#to run on pcatlas00X uncomment it: -#BSRDOInput=["/space1/igrabows/data/top-bs/mc11.004100.T1_McAtNLO_top.v11000401_120003._00001.bs.data"] -#BSRDOInput+=["/space1/igrabows/data/top-bs/mc11.004100.T1_McAtNLO_top.v11000401_120003._00002.bs.data"] -#BSRDOInput+=["/space1/igrabows/data/top-bs/mc11.004100.T1_McAtNLO_top.v11000401_120003._00003.bs.data"] -#BSRDOInput+=["/space1/igrabows/data/top-bs/mc11.004100.T1_McAtNLO_top.v11000401_120003._00004.bs.data"] -#BSRDOInput+=["/space1/igrabows/data/top-bs/mc11.004100.T1_McAtNLO_top.v11000401_120005._00005.bs.data"] -#BSRDOInput+=["/space1/igrabows/data/top-bs/mc11.004100.T1_McAtNLO_top.v11000401_120003._00006.bs.data"] -#single RoI event -#BSRDOInput=["/space/igrabows/e25i-bs/mc11.004022.Electron_Pt_25.v11000401_120003._00001.bs.data"] -#BSRDOInput+=["/space/igrabows/e25i-bs/mc11.004022.Electron_Pt_25.v11000401_120003._00001.bs.data"] -#BSRDOInput+=["/space/igrabows/e25i-bs/mc11.004022.Electron_Pt_25.v11000401_120003._00001.bs.data"] -#BSRDOInput+=["/space/igrabows/e25i-bs/mc11.004022.Electron_Pt_25.v11000401_120003._00001.bs.data"] -while repeatFile > 0: - BSRDOInput += [BSRDOInput[0]] - BSRDOInput += [BSRDOInput[1]] - BSRDOInput += [BSRDOInput[2]] - BSRDOInput += [BSRDOInput[3]] - BSRDOInput += [BSRDOInput[4]] - BSRDOInput += [BSRDOInput[5]] - repeatFile -= 1 -if 'theRTTisRunningMe' in dir() and theRTTisRunningMe: - print "input data to be set up by RTT" - del ByteStreamInputSvc -else: - EventSelector.Input = BSRDOInput - print EventSelector.Input -# algorithm to measure vmem size -theApp.DLLs += [ "TrigTestTools" ] -theApp.TopAlg += [ "MemAuditAlg" ] - -# Turn Off History Service for StoreGate -from AthenaCommon.AppMgr import ServiceMgr -ServiceMgr.StoreGateSvc.ActivateHistory = False - -HistorySvc = Service ( "HistorySvc" ) -HistorySvc.Activate=False - diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/TESTS/testEFIDreadBS_Flags.py b/InnerDetector/InDetExample/InDetTrigRecExample/TESTS/testEFIDreadBS_Flags.py deleted file mode 100755 index fc9a5e55fa6..00000000000 --- a/InnerDetector/InDetExample/InDetTrigRecExample/TESTS/testEFIDreadBS_Flags.py +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -############################################################### -# -# Set Flags for Running the Trigger in readBS Mode -# includes Trigger_topOptions.py to do the real work. -# Reads from file RawEvent.re (file must already exits -# run athena with TrigWriteBS_Flags.py to produce it) -# -# use: -# athena.py -bs testEFIDreadBS_Flags.py -#============================================================== - -#onlyID=True -doTrigger=True -AllAlgs=False - -readBS=True -# Set detector description -DetDescrVersion = "ATLAS-DC3-02" - -doCBNT=False -doWriteAOD=False -doWriteESD=False -doWriteTAG=False -doAOD=False # make AOD objects -doESD=False # make ESD objects -doTAG=False - -#useROOTNtuple=True # False : hbook ntuple - -# Set Truth flags -doTruth=False # needs to be true if creating Fake RoI - -include ("TriggerJobOpts/TriggerFlags.py") -TriggerFlags.readHLTconfigFromXML=False -TriggerFlags.readLVL1configFromXML=False - -TriggerFlags.JetSlice.unsetAll() -TriggerFlags.BjetSlice.unsetAll() -TriggerFlags.BphysicsSlice.unsetAll() -TriggerFlags.TauSlice.unsetAll() -TriggerFlags.MuonSlice.unsetAll() -#TriggerFlags.EgammaSlice.setL2() -TriggerFlags.EgammaSlice.setEF() - -#TriggerFlags.doHLTpersistency=False -#TriggerFlags.fakeLVL1=False -#TriggerFlags.doLVL1=False -#TriggerFlags.readLVL1Calo=True -#TriggerFlags.doNtuple=True -#TriggerFlags.useOfflineSpacePoints=False -#TriggerFlags.readLVL1configFromXML=True -#TriggerFlags.doHypo=False -#TriggerFlags.doID=True -#TriggerFlags.doCalo=True -#TriggerFlags.doEF=True -#TriggerFlags.doMuon=False - -#TriggerFlags.EgammaSlice.doL2Calo=True -#TriggerFlags.EgammaSlice=TriggerSliceFlags(False,True,False,True,False,False) #L2TRK,L2Calo,L2mu,EFtrk,EFCalo,EFmuon - -TriggerFlags.doMuon=False -TriggerFlags.doHypo=False - -triggerMenu.disableAll() -triggerMenu.enableSignature("e10") -TriggerFlags.EgammaSlice.setFlag("doIDSCAN",False) -TriggerFlags.EgammaSlice.setFlag("doSiTrack",False) -TriggerFlags.EgammaSlice.setFlag("doTRTxK", False) - -#------------------------------------------------------------- -# End of setting flags -#------------------------------------------------------------- - -include( "TriggerJobOpts/TrigReadBS_topOptions.py" ) - -MessageSvc.OutputLevel = DEBUG -#NovaCnvSvc.OutputLevel = INFO -MessageSvc.debugLimit = 10000000 - -# For BS files produced with DetDescrVersion "ATLAS-DC3-01" or "ATLAS-DC3-02" -# uncomment the following line (but don't do that if using a file produced -# by re-running LVL1 with an offline release 12 or higher). -# Algorithm("Lvl1Conversion_L2").useOldRoIWordFormat=True # fix to read data with old RoiWord format diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/doc/packagedoc.h b/InnerDetector/InDetExample/InDetTrigRecExample/doc/packagedoc.h index 97b87bce29e..b91c908866e 100644 --- a/InnerDetector/InDetExample/InDetTrigRecExample/doc/packagedoc.h +++ b/InnerDetector/InDetExample/InDetTrigRecExample/doc/packagedoc.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /** @@ -96,57 +96,4 @@ InDetTrigConfigRecBackTracking.py - are algorithms specific to backtracking or T </ul> -@section InDetTrigRecExample_InDetTrigRecExamplejo End user job options - -The package contains jobOptions which can be run by users for testing purposes - - - testEFID_basic.py - - jobOptionsNewSteering.py - -The second uses CSC datasets and runs the complete EF InDet reconstruction in the trigger. -jobOptionsNewSteering.py is copied from /share to the run/ -directory and it is suggested that you modify it there. In general you -should only need to alter the doBlah flags (i.e. set -doTruth=FALSE/TRUE) and the InDetTrigFlags. You may also need to modify -the dataset used. The jobOptions can be steered by general RecExCommon flags. - - - -@section InDetTrigRecExample_InDetTrigRecExampleRTT RTT tests - -The global RTT configuration is found in test/InDetTrigRecExample_TestConfiguration.xml. The current configuration runs -<ul> -<li> -a full chain-test based on official transformations rerunning trigger on the 2008 cosmics data BS followed by Tier0 reconstruction of the output BS file -<li> -tracking in top events with testEFID_RTT_InDetTrigRecExample.py -</ul> - -jobOptions of earlier RTT tests are still kept in - - - jobOptions_RTT_InDetTrigRecExample.py - performs the EF InDet inside-out reconstruction from RDO for 450 top events. - Three LVL1 RoI sorts are taken into account: electron-, muon- and tau-like. As output monitoring histograms -qy (expert-monitoring.root) and CBNTAA ntuple (ntuple.root) are stored. - - jobOptions_RTT_InDetTrigRecExample_doReadBS.py - performs the EF InDet reconstruction from byte stream for 50 top events. - In this case one runs with doTruth=False as no MC truth info is available in byte-stream files. The EF InDet inside-out reconstruction - is performed in a full-scan mode. - As output the monitoring histograms (expert-monitoring.root) are stored. They also contain timing measurements (doTimer=True). - - - jobOptions_RTT_InDetTrigRecExample.py - RTT test of the EF InDet reconstruction for - 450 top events from RDO, - - jobOptions_RTT_InDetTrigRecExample_doReadBS.py - RTT test of the EF InDet reconstruction for 50 top events from byte stream. - - - -@section InDetTrigRecExample_InDetTrigRecExampleLeaks Memory-leak test - -There are two jobOptions files to run a memory-leak test. They are put in /TESTS: - - - testEFIDReadBSMemAudit.py - main jobOptions file to read 10k events from byte-stream input and give MemAudit statistics, - - testEFIDreadBS_Flags.py - auxiliary file to run the EF InDet inside-out reconstruction for the egamma slice. - -A recipe how to run the memory-leak test is given in the README file in /TESTS. - - - */ diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/share/InDetTrigRecNtupleCreation.py b/InnerDetector/InDetExample/InDetTrigRecExample/share/InDetTrigRecNtupleCreation.py deleted file mode 100644 index b2c53e935e0..00000000000 --- a/InnerDetector/InDetExample/InDetTrigRecExample/share/InDetTrigRecNtupleCreation.py +++ /dev/null @@ -1,119 +0,0 @@ -#this file is included by RecExCommon - - -#TrkParticleAlgsOutputLevel= WARNING - -from TrkValTools.TrkValToolsConf import Trk__BasicValTrkParticleNtupleTool -BasicValTrkParticleNtupleTool = Trk__BasicValTrkParticleNtupleTool("BasicValTrkParticleNtupleTool") -#BasicValTrkParticleNtupleTool.OutputLevel=VERBOSE -print BasicValTrkParticleNtupleTool -ToolSvc+=BasicValTrkParticleNtupleTool - -from TrigTrkValTools.TrigTrkValToolsConf import TrigL2ValidationNtupleTool -L2ValidationNtupleTool= TrigL2ValidationNtupleTool("TrigL2ValidationNtupleTool") -print L2ValidationNtupleTool -ToolSvc+=L2ValidationNtupleTool -#L2ValidationNtupleTool.OutputLevel = TrkParticleAlgsOutputLevel - - -from TrigTrkValAlgs.TrigTrkValAlgsConf import Trk__TrigTrkValidationNtupleWriter - - -TrigTrkValNtupleWriter = Trk__TrigTrkValidationNtupleWriter(name = 'InDetTrigValNtupleWriter', - ValTrkParticleNtupleTool = BasicValTrkParticleNtupleTool, - TrigL2ValidationNtupleTool = L2ValidationNtupleTool, - NtupleFileName = 'TRKVAL', - NtupleDirName = 'Validation', - ChainName = ".*", - RoiDescrName = ".*", - #InDetTrackTrigCollection = ["InDetTrack"], - #InDetTrackTrigCollection = ["TrigIDSCAN_Cosmics"], - EFTrackParticleCollection = ["InDetTrigParticleCreation_Tau_EFID"], - #EFTrackParticleCollection = ["HLT_InDetTrigParticleCreation_CosmicsN_EFID"], - #TrackParticleCollection = ["TrackParticleCandidate"], - doRoI = True - ) - -#TrigTrkValNtupleWriter.OutputLevel = VERBOSE -print TrigTrkValNtupleWriter -topSequence += TrigTrkValNtupleWriter - -#---------------------------------------------------------- -# Tools which writes event property information -#---------------------------------------------------------- - -from TrkValTools.TrkValToolsConf import Trk__EventPropertyNtupleTool -EventPropertyNtupleTool = Trk__EventPropertyNtupleTool(name='EventPropertyNtupleTool') -#EventPropertyNtupleTool.OutputLevel = TrkParticleAlgsOutputLevel -ToolSvc += EventPropertyNtupleTool -print EventPropertyNtupleTool - -from TrkValTools.TrkValToolsConf import Trk__EventToTrackLinkNtupleTool -EventToTrackParticleLinkNtupleTool = Trk__EventToTrackLinkNtupleTool(name='EventToTrackParticleLinkNtupleTool', CollectionType = "Rec::TrackParticle") -#EventToTrackParticleLinkNtupleTool.OutputLevel = TrkParticleAlgsOutputLevel -ToolSvc += EventToTrackParticleLinkNtupleTool -print EventToTrackParticleLinkNtupleTool - -EventToTrackParticleEFLinkNtupleTool = Trk__EventToTrackLinkNtupleTool(name='EventToTrackParticleEFLinkNtupleTool', CollectionType = "Rec::TrackParticle_Trig") -#EventToTrackParticleEFLinkNtupleTool.OutputLevel = TrkParticleAlgsOutputLevel -ToolSvc += EventToTrackParticleEFLinkNtupleTool -print EventToTrackParticleEFLinkNtupleTool - -EventToTrigInDetTrackLinkNtupleTool = Trk__EventToTrackLinkNtupleTool(name='EventToTrigInDetTrackLinkNtupleTool', CollectionType = "InDetTrack_Trig") -#EventToTrigInDetTrackLinkNtupleTool.OutputLevel = TrkParticleAlgsOutputLevel -ToolSvc += EventToTrigInDetTrackLinkNtupleTool -print EventToTrigInDetTrackLinkNtupleTool - -TrigTrkValNtupleWriter.EventPropertyNtupleTools =[EventPropertyNtupleTool, EventToTrackParticleLinkNtupleTool, EventToTrackParticleEFLinkNtupleTool, EventToTrigInDetTrackLinkNtupleTool] - - - -#------------------------------------------------------------------------------------ -# Tools which writes RoI information -#------------------------------------------------------------------------------------ - -from TrigTrkValTools.TrigTrkValToolsConf import Trk__RoIToTrackLinkNtupleTool -RoIToTrackParticleLinkNtupleTool = Trk__RoIToTrackLinkNtupleTool(name='RoIToTrackParticleLinkNtupleTool') -#RoIToTrackParticleLinkNtupleTool.OutputLevel = TrkParticleAlgsOutputLevel -ToolSvc += RoIToTrackParticleLinkNtupleTool -print RoIToTrackParticleLinkNtupleTool - -RoIToTrigInDetTrackLinkNtupleTool = Trk__RoIToTrackLinkNtupleTool(name='RoIToTrigInDetTrackLinkNtupleTool', trackToolType='TrigInDetTrack') -#RoIToTrigInDetTrackLinkNtupleTool.OutputLevel = TrkParticleAlgsOutputLevel -ToolSvc += RoIToTrigInDetTrackLinkNtupleTool -print RoIToTrigInDetTrackLinkNtupleTool - -from TrigTrkValTools.TrigTrkValToolsConf import Trk__RoIPropertyNtupleTool -RoIPropertyNtupleTool = Trk__RoIPropertyNtupleTool(name='RoIPropertyNtupleTool') -#RoIPropertyNtupleTool.OutputLevel = TrkParticleAlgsOutputLevel - -ToolSvc += RoIPropertyNtupleTool -print RoIPropertyNtupleTool - -TrigTrkValNtupleWriter.RoIPropertyNtupleTools = [ RoIPropertyNtupleTool, RoIToTrackParticleLinkNtupleTool, RoIToTrigInDetTrackLinkNtupleTool ] -print TrigTrkValNtupleWriter.RoIPropertyNtupleTools - -#------------------------------------------------------------------------------------- -# Trigger Decision Tool -#------------------------------------------------------------------------------------- - -from TrigDecisionTool.TrigDecisionToolConf import Trig__TrigDecisionTool -tdt = Trig__TrigDecisionTool("TrigDecisionTool") -ToolSvc += tdt - - -# # To read files with trigger config stored as in-file meta-data, -# # i.e. 13.0.40 and above: ds -# # To read AOD produced with 13.0.30 you need to change ds to aod: -# from TriggerJobOpts.TriggerFlags import TriggerFlags -# TriggerFlags.configurationSourceList = ['ds'] - -# # set up trigger config service -# from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter -# cfg = TriggerConfigGetter() - -#origWriter = topSequence.InDetValNtupleWriter -#TrigTrkValNtupleWriter = Trk__TrigTrkValidationNtupleWriter(name = 'InDetTrigValNtupleWriter') -#for i in origWriter.properties(): -# prop = origWriter.__slots__[i] -# TrigTrkValNtupleWriter.__slots__[i] = prop - diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/share/Setup.sh b/InnerDetector/InDetExample/InDetTrigRecExample/share/Setup.sh deleted file mode 100755 index 00a54f49a37..00000000000 --- a/InnerDetector/InDetExample/InDetTrigRecExample/share/Setup.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# should eventually not be necessary -#get_files -symlink -jo AthenaCommon/athena.py -#get_files -symlink -data Materials.dtd -#get_files -symlink -data AGDD.dtd - -#create symbolic links to get DB: -#ln -s /afs/cern.ch/user/a/atlcond/coolrep/sqlite130 sqlite130 -#ln -s /afs/cern.ch/atlas/project/database/DBREL/packaging/DBRelease/current/geomDB geomDB -#for rel 13 -setupLocalDBReplica_CERN.sh - -# get particle data table and magnetic field data -get_files -symlink -data PDGTABLE.MeV - -# copy example jobOptions -#cp ../share/HLT*xml ../run -#cp ../share/LVL1*xml ../run -#cp ../share/jobOptions.py ../run/ -cp ../share/jobOptionsNewSteering.py ../run/ -#cp ../share/PoolFileCatalog.xml ../run/ -cp ../TESTS/test*py ../run/ diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptionsNewSteering.py b/InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptionsNewSteering.py deleted file mode 100755 index fc65bd7d3fe..00000000000 --- a/InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptionsNewSteering.py +++ /dev/null @@ -1,531 +0,0 @@ -# migrated to new steering -#-------------------------------------------------------------- -# Control -#-------------------------------------------------------------- - -# control running truth ? -doTruth = True #if TRUE running FakeRoIfromKine, if FALSE running FakeLvl1RoIatFixedEtaPhi - -# produce an atlantis data file -doJiveXML = False - -# controls what is written out. ESD includes AOD, so it's normally enough -doWriteESD = False -doWriteAOD = False - -# --- read BS -doReadBS = False -if doReadBS: - doTruth = False - -# Monitoring flags -doMonitoring = True - -# do auditors ? -doAuditors = False - -#timing measurements -doTimer = False - -#CBNT -doCBNT = False -CBNTAthenaAware = True #must be True, otherwise you don't get an ntuple - -# --- Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -OutputLevel = INFO - -DetDescrVersion = "ATLAS-DC3-07" #it has to be defined early enough -#DetDescrVersion = "ATLAS-CSC-02-00-00" - -import os -if os.environ['CMTCONFIG'].endswith('-dbg'): - # --- do EventDataModel monitor (debug mode only) ? - doEdmMonitor = True - # --- write out a short message upon entering or leaving each algorithm - doNameAuditor = True -else: - doEdmMonitor = False - doNameAuditor = False - -#-------------------------------------------------------------- -# --- setup class with default values -#-------------------------------------------------------------- -from InDetTrigRecExample.InDetTrigFlags import InDetTrigFlags -InDetTrigFlags.doTruth = doTruth -InDetTrigFlags.doNewTracking = True - -#-------------------------------------------------------------- -# load Global Flags and set defaults -#-------------------------------------------------------------- - -from AthenaCommon.GlobalFlags import GlobalFlags -#default is atlas geometry -GlobalFlags.DetGeo.set_atlas() -#set defaults -GlobalFlags.DataSource.set_geant4() -if 'doReadBS' in dir() and doReadBS: - GlobalFlags.InputFormat.set_bytestream() -else: - GlobalFlags.InputFormat.set_pool() -#default is zero luminosity -#GlobalFlags.Luminosity.set_zero() -# --- printout -GlobalFlags.Print() - -# --- set geometry version (kudge for new jobproperties) -from AthenaCommon.GlobalFlags import globalflags -globalflags.DetDescrVersion = DetDescrVersion -print globalflags.DetDescrVersion() - -#-------------------------------------------------------------- -# Set Detector setup -#-------------------------------------------------------------- - -# --- switch on InnerDetector -from AthenaCommon.DetFlags import DetFlags -DetFlags.ID_setOn() -# --- and switch off all the rest -DetFlags.Calo_setOff() -DetFlags.Muon_setOff() -if doCBNT: - DetFlags.Tile_setOn() #needed for doExtrap in CBNT - DetFlags.LAr_setOn() #needed for doExtrap in CBNT - include( "LArConditionsCommon/LArIdMap_MC_jobOptions.py" ) -# ---- switch parts of ID off/on as follows -#DetFlags.makeRIO.pixel_setOff() -#DetFlags.makeRIO.TRT_setOff() -#DetFlags.makeRIO.SCT_setOff() -# --- printout -DetFlags.Print() - -#-------------------------------------------------------------- -# load ServiceMgr, ToolSvc, topSequence -#-------------------------------------------------------------- -from AthenaCommon.AppMgr import theApp -from AthenaCommon.AppMgr import ServiceMgr - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() -# -from AthenaCommon.AppMgr import ToolSvc - -#-------------------------------------------------------------- -# change MessageSvc -#-------------------------------------------------------------- - -# output level -ServiceMgr.MessageSvc.OutputLevel = OutputLevel -# increase the number of letter reserved to the alg/tool name from 18 to 30 -ServiceMgr.MessageSvc.Format = "% F%50W%S%7W%R%T %0W%M" -# to change the default limit on number of message -ServiceMgr.MessageSvc.defaultLimit = 9999999 # all messages - -#-------------------------------------------------------------- -# Load POOL support, setup for reconstruction -#-------------------------------------------------------------- - -# setup POOL access in ATHENA -if 'doReadBS' in dir() and doReadBS: - include("InDetTrigRecExample/InDetTrigReadBS_jobOptions.py") -else: - import AthenaPoolCnvSvc.ReadAthenaPool - -# --- GeoModel -include("AtlasGeoModel/SetGeometryVersion.py" ) -include("AtlasGeoModel/GeoModelInit.py" ) -# ---- Beam Spot service -if InDetTrigFlags.useBeamConstraint(): - include("InDetBeamSpotService/BeamCondSvc.py" ) - -# particle property service -include( "PartPropSvc/PartPropSvc.py" ) - -if InDetTrigFlags.doTruth(): - include ( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" ) - -#------------------------------------------------------------ -# Event Data Model Monitor works only in dbg build -#------------------------------------------------------------ - -if doEdmMonitor: - from TrkValAlgs.TrkValAlgsConf import Trk__EventDataModelMonitor - InDetTrigEdmMonitor = Trk__EventDataModelMonitor (name = 'InDetTrigEdmMonitor') - - topSequence += InDetTrigEdmMonitor - print InDetTrigEdmMonitor - -#-------------------------------------------------------------- -# Load Inner Detector reconstruction -#-------------------------------------------------------------- - -# ID reconstruction -from InDetTrigRecExample.EFInDetConfig import * - -if not doReadBS: - electronAlgs = TrigEFIDInsideOut_Electron() -else: - electronAlgs = TrigEFIDInsideOut_FullScan() - -muonAlgs = TrigEFIDInsideOut_Muon() #ok -tauAlgs = TrigEFIDInsideOut_Tau() #ok -#electronAlgs = TrigEFIDInsideOut_Bjet() #ok -#electronAlgs = TrigEFIDInsideOut_Bphysics() #ok -#electronAlgs = TrigEFIDInsideOut_FullScan() -#electronAlgs = TrigEFIDInsideOut_MinBias() -#electronAlgs = TrigEFIDOutsideIn_Photon() #ok - -# EF Track hypothesis algorithm for electrons -from TrigEgammaHypo.TrigEFTrackHypoConfig import EFTrackHypo_e10, EFTrackHypo_e15i, EFTrackHypo_e25i, EFTrackHypo_e60 -theEFTrackHypo_e10 = EFTrackHypo_e10() -theEFTrackHypo_e15i = EFTrackHypo_e15i() -theEFTrackHypo_e25i = EFTrackHypo_e25i() -theEFTrackHypo_e60 = EFTrackHypo_e60() - -#-------------------------------------------------------------- -# Region Selector and Trigger -#-------------------------------------------------------------- - -include( "TriggerJobOpts/TriggerFlags.py" ) -include( "RegionSelector/RegionSelector_jobOptions.py" ) -include( "InDetRegionSelector/InDetRegionSelectorTable_jobOptions.py" ) #include it temporarily! - -theApp.Dlls += [ "TrigSteeringTest" ] -theApp.Dlls += [ "TrigTimeAlgs" ] - -######################## -# ConfigSvc: -######################## - -####################################################### -# define/generate menu files for HLT -####################################################### - -from TriggerMenuPython.TriggerPythonConfig import * -menu = TriggerPythonConfig("newMenu.xml", "lvl1Menu.xml") -############################################################# Electrons -# fake L1 -item = LVL1MenuItem('L1_EM10', ctpid='1') -item.addCondition(name='EM10', multi='1') -menu.addLVL1Item( item ) -menu.addEMThreshold(name='EM10', value='7', range_begin='1', range_end='2' ) - -# sequence -menu.addSequence( 'EM10', ['PESA::dummyAlgo/Egamma'], 'LVL2Out_Electron' ) -menu.addSequence( 'LVL2Out_Electron', electronAlgs.getSequence() + [theEFTrackHypo_e10, theEFTrackHypo_e15i, theEFTrackHypo_e25i, theEFTrackHypo_e60], -'EFInDet_Electron' ) - -#chains -chain = HLTChain('DummyL2_Electron', '1', 'L1_EM10', 'L2') -chain.addHLTSignature( 'LVL2Out_Electron' ) -chain.addTriggerTypeBit(0) -chain.addStreamTag('fake') -menu.addHLTChain(chain) - -chain = HLTChain('SingleMC_Electron', '4', 'DummyL2_Electron', 'EF') -chain.addHLTSignature( 'EFInDet_Electron' ) -chain.addTriggerTypeBit(4) -chain.addStreamTag('electrons') -menu.addHLTChain(chain) - -############################################################# Muons -# fake L1 -item = LVL1MenuItem('L1_MU06', ctpid='2') -item.addCondition(name='MU06', multi='1') -menu.addLVL1Item( item ) -menu.addEMThreshold(name='MU06', value='6', range_begin='1', range_end='2' ) - -# sequence -menu.addSequence( 'MU06', ['PESA::dummyAlgo/Muon'], 'LVL2Out_Muon' ) -menu.addSequence( 'LVL2Out_Muon', muonAlgs.getSequence(), - 'EFInDet_Muon' ) - -#chains -chain = HLTChain('DummyL2_Muon', '2', 'L1_MU06', 'L2') -chain.addHLTSignature( 'LVL2Out_Muon' ) -chain.addTriggerTypeBit(0) -chain.addStreamTag('fake') -menu.addHLTChain(chain) - -chain = HLTChain('SingleMC_Muon', '5', 'DummyL2_Muon', 'EF') -chain.addHLTSignature( 'EFInDet_Muon' ) -chain.addTriggerTypeBit(5) -chain.addStreamTag('muons') -menu.addHLTChain(chain) - -############################################################# Jets -# fake L1 -item = LVL1MenuItem('L1_JET20', ctpid='2') -item.addCondition(name='JET20', multi='1') -menu.addLVL1Item( item ) -menu.addEMThreshold(name='JET20', value='20', range_begin='1', range_end='2' ) - -# sequence -menu.addSequence( 'JET20', ['PESA::dummyAlgo/Jet'], 'LVL2Out_Jet' ) -menu.addSequence( 'LVL2Out_Jet', tauAlgs.getSequence(), - 'EFInDet_Jet' ) - -#chains -chain = HLTChain('DummyL2_Jet', '3', 'L1_JET20', 'L2') -chain.addHLTSignature( 'LVL2Out_Jet' ) -chain.addTriggerTypeBit(0) -chain.addStreamTag('fake') -menu.addHLTChain(chain) - -chain = HLTChain('SingleMC_Jet', '6', 'DummyL2_Jet', 'EF') -chain.addHLTSignature( 'EFInDet_Jet' ) -chain.addTriggerTypeBit(34) -chain.addStreamTag('jets') -menu.addHLTChain(chain) - -menu.writeConfigFiles() - - - -### Setup TrigConfigSvc ### -#################################### -from TrigConfigSvc.TrigConfigSvcConfig import SetupTrigConfigSvc -log.info("setting up TrigConfigSvc:") -svc = SetupTrigConfigSvc() -svc.hltXmlFile = 'newMenu.xml' -svc.l1XmlFile = 'lvl1Menu.xml' - -try: - svc.SetStates( 'xml' ) -except: - log.warning( 'failed to set state of TrigConfigSvc ...') -try: - svc.InitialiseSvc() -except: - log.warning( 'failed to activate TrigConfigSvc ...') - -ServiceMgr.TrigConfigSvc.OutputLevel=VERBOSE -ServiceMgr.HLTConfigSvc.OutputLevel=VERBOSE -ServiceMgr.LVL1ConfigSvc.OutputLevel=VERBOSE - - - -####################################################### -from TrigSteering.TrigSteeringConfig import TrigSteer_L2,TrigSteer_EF - -steeringL2 = TrigSteer_L2("TrigSteer_L2", hltFile="newMenu.xml") - -if doTruth: - from TrigFake.TrigFakeConf import FakeLvl1RoIfromKine - steeringL2.LvlConverterTool = FakeLvl1RoIfromKine("FakeLvl1RoIfromKine") - steeringL2.LvlConverterTool.FakeEmTauRoiParticleIDs=[11,-11] - steeringL2.LvlConverterTool.FakeMuonRoiParticleIDs=[13,-13] - steeringL2.LvlConverterTool.FakeJetRoiParticleIDs=[15,-15] - steeringL2.LvlConverterTool.FakeEmTauRoiPtMin=5*GeV - steeringL2.LvlConverterTool.McEventCollectionName = "TruthEvent" - steeringL2.LvlConverterTool.OutputLevel = DEBUG - steeringL2.OutputLevel = VERBOSE - topSequence += steeringL2 -else: - from TrigFake.TrigFakeConf import FakeLvl1RoIatFixedEtaPhi - steeringL2.LvlConverterTool = FakeLvl1RoIatFixedEtaPhi("FakeLvl1RoIatFixedEtaPhi") - steeringL2.LvlConverterTool.FakeEmRoiPhi=0.0 - steeringL2.LvlConverterTool.FakeEmRoiEta=0.0 - steeringL2.LvlConverterTool.FakeEmRoiLabel="EM10" - if not doTimer: - steeringL2.LvlConverterTool.OutputLevel = DEBUG - steeringL2.OutputLevel = VERBOSE - else: - steeringL2.LvlConverterTool.OutputLevel = ERROR - steeringL2.OutputLevel = ERROR - topSequence += steeringL2 - -steeringEF = TrigSteer_EF("TrigSteer_EF", hltFile="newMenu.xml") -if doTimer: - steeringEF.OutputLevel = ERROR -else: - steeringEF.OutputLevel = VERBOSE -topSequence += steeringEF - -#fix to get rid of EF exceptions -excSvc=Service("ExceptionSvc") -excSvc.Catch="LIST" -excSvc.Algorithms=[ "TrigSteer_EF=SUCCESS"] - -# ------------------------------------------------------------- -theApp.EvtMax = 100 -if not doReadBS: - ServiceMgr.EventSelector.InputCollections = ["/afs/cern.ch/atlas/maxidisk/d38/ID_ValidationData/testIdeal_07.005200.T1_McAtNlo_Jimmy.digit.RDO.v12000201_tid002760._00002.pool.root.1"] - #ServiceMgr.EventSelector.InputCollections = ["/afs/cern.ch/atlas/maxidisk/d89/InDetRecRDO.root"] -else: - EventSelector.Input = ["/afs/cern.ch/atlas/project/trigger/pesa-sw/data/calib1_csc11.005200.T1_McAtNlo_Jimmy.digit.bs-lvl1sim.v12000301_tid003138._00001.pool.root"] -# ------------------------------------------------------------ - -# switch off history service -ServiceMgr.StoreGateSvc.ActivateHistory = False -ServiceMgr.StoreGateSvc.Dump = False - -# ------------------------------------------------------------ -# get stack dump -# ------------------------------------------------------------ - -ServiceMgr.CoreDumpSvc.FatalHandler = 438 - -if doAuditors: - # load AuditorSvc - theAuditorSvc = AuditorSvc() - - # write out summary of the memory usage - # number of events to be skip to detect memory leak - # 20 is default. May need to be made larger for complete jobs. - theAuditorSvc.Auditors += [ "ChronoAuditor"] - ServiceMgr.ChronoStatSvc.NumberOfSkippedEventsForMemStat = 5 - # memory auditors - theAuditorSvc.Auditors += [ "MemStatAuditor" ] - MemStatAuditor = theAuditorSvc.auditor( "MemStatAuditor" ) - MemStatAuditor.OutputLevel = WARNING - -# write out a short message upon entering or leaving each algorithm -if doNameAuditor: - theAuditorSvc.Auditors += [ "NameAuditor" ] - theApp.AuditAlgorithms = True - theApp.AuditServices = True - # - # Display detailed size and timing statistics for writing and reading - # -if doWriteESD or doWriteAOD: - AthenaPoolCnvSvc = Service( "AthenaPoolCnvSvc" ) - AthenaPoolCnvSvc.UseDetailChronoStat = True - -#-------------------------------------------------------------- -# run JiveXML -#-------------------------------------------------------------- -if doJiveXML: - include ("JiveXML/JiveXML_jobOptionBase.py") - include ("JiveXML/DataTypes_InDet.py") - - from InDetJiveXML.InDetJiveXMLConf import JiveXML__SiClusterRetriever - theSiClusterRetriever = JiveXML__SiClusterRetriever (name = "SiClusterRetriever") - theSiClusterRetriever.SCTClusters = "SCT_TrigClusters" - - from InDetJiveXML.InDetJiveXMLConf import JiveXML__SiSpacePointRetriever - theSiSpacePointRetriever = JiveXML__SiSpacePointRetriever (name = "SiSpacePointRetriever") - theSiSpacePointRetriever.PixelSpacePoints = "PixelTrigSpacePoints" - theSiSpacePointRetriever.SCTSpacePoints = "SCT_TrigSpacePoints" - - from InDetJiveXML.InDetJiveXMLConf import JiveXML__TRTRetriever - theTRTRetriever = JiveXML__TRTRetriever (name = "TRTRetriever") - theTRTRetriever.TRTClusters = "TRT_TrigDriftCircles" - - from TrkJiveXML.TrkJiveXMLConf import JiveXML__TrackRetriever - theTrackRetriever = JiveXML__TrackRetriever (name = "TrackRetriever") - theTrackRetriever.DoWriteHLT = True - - if doTruth: - readG3 = False - include ("JiveXML/DataTypes_Truth.py") - -# ------------------------------------------------------------ -# persistency -# ------------------------------------------------------------ - -if doWriteAOD: - # create stream - theApp.TopAlg += [ "AthenaOutputStream/StreamAOD" ] - StreamAOD = Algorithm( "StreamAOD" ) - StreamAOD.EvtConversionSvc = "AthenaPoolCnvSvc" - - # Define the output file name - StreamAOD.OutputFile = "InDetTrigRecAOD.root" - - #force read of input data to write in output data - - # EventInfo - needs to be always saved. - StreamAOD.ItemList=[] - StreamAOD.ItemList+=["EventInfo#*"] - include ( "InDetTrigRecExample/WriteTrigInDetAOD.py" ) - -if doWriteESD: - # create stream - theApp.TopAlg += [ "AthenaOutputStream/StreamESD" ] - StreamESD = Algorithm( "StreamESD" ) - StreamESD.EvtConversionSvc = "AthenaPoolCnvSvc" - - # Define the output file name - StreamESD.OutputFile = "InDetTrigRecESD.root" - - #force read of input data to write in output data - - # EventInfo - needs to be always saved. - StreamESD.ItemList=[] - StreamESD.ItemList+=["EventInfo#*"] - include ( "InDetTrigRecExample/WriteTrigInDetESD.py" ) - -from GaudiSvc.GaudiSvcConf import THistSvc -ServiceMgr += THistSvc() -if doMonitoring or doTimer: - ServiceMgr.THistSvc.Output = [ "EXPERT DATAFILE='expert-monitoring.root' OPT='RECREATE'" ] - -if doTimer: - for algo in steeringEF.getChildren(): - print "HERE", algo.getFullName() - algo.doTiming = True - -#######################################################33 -# -# Testing options -#######################################################33 -if not doTruth: - PixelClustering_EF.EtaHalfWidth = 3.0 - PixelClustering_EF.PhiHalfWidth = 3.14159 - # - SCTClustering_EF.EtaHalfWidth = 3.0 - SCTClustering_EF.PhiHalfWidth = 3.14159 - # - TRTDriftCircleMaker_EF.EtaHalfWidth = 3.0 - TRTDriftCircleMaker_EF.PhiHalfWidth = 3.14159 - # - SiTrigSpacePointFinder_EF.EtaHalfWidth = 3.0 - SiTrigSpacePointFinder_EF.PhiHalfWidth = 3.14159 - # - SiTrigTrackFinder_EF.EtaHalfWidth = 3.0 - SiTrigTrackFinder_EF.PhiHalfWidth = 3.14159 - -# ------------------------------------------------------------ -# useful debugging/info tools -# ------------------------------------------------------------ -for algo in steeringEF.getChildren(): - if not doTimer: - algo.OutputLevel = DEBUG - else: - algo.OutputLevel = ERROR - -Algorithm("AANTupleStream").OutputLevel=DEBUG -ServiceMgr.THistSvc.OutputLevel=DEBUG - -if doCBNT: - THistSvc = Service ( "THistSvc" ) - theApp.Dlls += [ "AnalysisTools" ] - AANTupleStream = Algorithm( "AANTupleStream" ) - #AANTupleStream.ExtraRefNames = [ "StreamESD","StreamRDO" ] - AANTupleStream.ExistDataHeader = False - AANTupleStream.TreeName = "CollectionTree" - AANTupleStream.WriteInputDataHeader = True - RootNtupleOutput = "ntuple.root" - #RootNtupleOutput = "timing-histograms.root" - exec 'AANTupleStream.OutputName= \'%s\' ' % RootNtupleOutput - AANTupleStream.OutputName = RootNtupleOutput - - exec 'THistSvc.Output += ["AANT DATAFILE=\'%s\' OPT=\'RECREATE\'"] ' % RootNtupleOutput - - include( "CBNT_Athena/CBNT_AthenaAware_jobOptions.py" ) -# Algorithm("CBNT_AthenaAware").OutputLevel=DEBUG - CBNT_AthenaAware.OutputLevel=DEBUG - - #theApp.TopAlg += ["CBNT_AthenaAware"] - theApp.TopAlg += [ "AANTupleStream" ] - #include( "RecExCommon/CBNT_Truth_jobOptions.py" ) - include("TrigNtInDet/jobOfragment_TrigNtInDet.py") - - if (TriggerFlags.doID): - theCBNTAA_TrigEFTrackParticle.doDetailedTruth = True - theCBNTAA_TrigEFTrackParticle.doTruthCBNT = True - theCBNTAA_TrigEFTrackParticle.OutputLevel=DEBUG - theCBNTAA_TrigEFVxPrimary.OutputLevel=DEBUG - theCBNTAA_TrigEFTrackParticle.doExtrap = True - -print topSequence diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptions_RTT_InDetTrigRecExample.py b/InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptions_RTT_InDetTrigRecExample.py deleted file mode 100755 index 18c51da92ee..00000000000 --- a/InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptions_RTT_InDetTrigRecExample.py +++ /dev/null @@ -1,526 +0,0 @@ -# migrated to new steering -#-------------------------------------------------------------- -# Control -#-------------------------------------------------------------- - -# control running truth ? -doTruth = True #if TRUE running FakeRoIfromKine, if FALSE running FakeLvl1RoIatFixedEtaPhi - -# produce an atlantis data file -doJiveXML = False - -# controls what is written out. ESD includes AOD, so it's normally enough -doWriteESD = False -doWriteAOD = False - -# --- read BS -doReadBS = False -if doReadBS: - doTruth = False - -# Monitoring flags -doMonitoring = True - -# do auditors ? -doAuditors = False - -#timing measurements -doTimer = False - -#CBNT -doCBNT = False -CBNTAthenaAware = True #must be True, otherwise you don't get an ntuple - - -# --- Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -OutputLevel = INFO -DetDescrVersion = "ATLAS-CSC-01-02-00" #it has to be defined early enough - -import os -if os.environ['CMTCONFIG'].endswith('-dbg'): - # --- do EventDataModel monitor (debug mode only) ? - doEdmMonitor = True - # --- write out a short message upon entering or leaving each algorithm - doNameAuditor = True -else: - doEdmMonitor = False - doNameAuditor = False - -#-------------------------------------------------------------- -# --- setup class with default values -#-------------------------------------------------------------- -from InDetTrigRecExample.InDetTrigFlags import InDetTrigFlags -InDetTrigFlags.doTruth = doTruth -InDetTrigFlags.doNewTracking = True - - - -#-------------------------------------------------------------- -# load Global Flags and set defaults -#-------------------------------------------------------------- - -from AthenaCommon.GlobalFlags import GlobalFlags -#default is atlas geometry -GlobalFlags.DetGeo.set_atlas() -#set defaults -GlobalFlags.DataSource.set_geant4() -if 'doReadBS' in dir() and doReadBS: - GlobalFlags.InputFormat.set_bytestream() -else: - GlobalFlags.InputFormat.set_pool() -#default is zero luminosity -#GlobalFlags.Luminosity.set_zero() -# --- printout -GlobalFlags.Print() - -# --- set geometry version (kudge for new jobproperties) -from AthenaCommon.GlobalFlags import globalflags -globalflags.DetDescrVersion = DetDescrVersion -print globalflags.DetDescrVersion() - -#-------------------------------------------------------------- -# Set Detector setup -#-------------------------------------------------------------- - -# --- switch on InnerDetector -from AthenaCommon.DetFlags import DetFlags -DetFlags.ID_setOn() -# --- and switch off all the rest -DetFlags.Calo_setOff() -DetFlags.Muon_setOff() -if doCBNT: - DetFlags.Tile_setOn() #needed for doExtrap in CBNT - DetFlags.LAr_setOn() #needed for doExtrap in CBNT - include( "LArConditionsCommon/LArIdMap_MC_jobOptions.py" ) -# ---- switch parts of ID off/on as follows -#DetFlags.makeRIO.pixel_setOff() -#DetFlags.makeRIO.TRT_setOff() -#DetFlags.makeRIO.SCT_setOff() -# --- printout -DetFlags.Print() - -#-------------------------------------------------------------- -# load ServiceMgr, ToolSvc, topSequence -#-------------------------------------------------------------- -from AthenaCommon.AppMgr import theApp -from AthenaCommon.AppMgr import ServiceMgr - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() -# -from AthenaCommon.AppMgr import ToolSvc - -#-------------------------------------------------------------- -# change MessageSvc -#-------------------------------------------------------------- - -# output level -ServiceMgr.MessageSvc.OutputLevel = OutputLevel -# increase the number of letter reserved to the alg/tool name from 18 to 30 -ServiceMgr.MessageSvc.Format = "% F%50W%S%7W%R%T %0W%M" -# to change the default limit on number of message -ServiceMgr.MessageSvc.defaultLimit = 9999999 # all messages - -#-------------------------------------------------------------- -# Load POOL support, setup for reconstruction -#-------------------------------------------------------------- - -# setup POOL access in ATHENA -if 'doReadBS' in dir() and doReadBS: - include("InDetTrigRecExample/InDetTrigReadBS_jobOptions.py") -else: - import AthenaPoolCnvSvc.ReadAthenaPool - -# --- GeoModel -include("AtlasGeoModel/SetGeometryVersion.py" ) -include("AtlasGeoModel/GeoModelInit.py" ) -# ---- Beam Spot service -if InDetTrigFlags.useBeamConstraint(): - include("InDetBeamSpotService/BeamCondSvc.py" ) - - -# particle property service -include( "PartPropSvc/PartPropSvc.py" ) - -if InDetTrigFlags.doTruth(): - include ( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" ) - -#------------------------------------------------------------ -# Event Data Model Monitor works only in dbg build -#------------------------------------------------------------ - -if doEdmMonitor: - from TrkValAlgs.TrkValAlgsConf import Trk__EventDataModelMonitor - InDetTrigEdmMonitor = Trk__EventDataModelMonitor (name = 'InDetTrigEdmMonitor') - - topSequence += InDetTrigEdmMonitor - print InDetTrigEdmMonitor - -#-------------------------------------------------------------- -# Load Inner Detector reconstruction -#-------------------------------------------------------------- - -# ID reconstruction -from InDetTrigRecExample.EFInDetConfig import * - -if not doReadBS: - electronAlgs = TrigEFIDInsideOut_Electron() -else: - electronAlgs = TrigEFIDInsideOut_FullScan() - -muonAlgs = TrigEFIDInsideOut_Muon() #ok -tauAlgs = TrigEFIDInsideOut_Tau() #ok -#electronAlgs = TrigEFIDInsideOut_Bjet() #ok -#electronAlgs = TrigEFIDInsideOut_Bphysics() #ok -#electronAlgs = TrigEFIDInsideOut_FullScan() -#electronAlgs = TrigEFIDInsideOut_MinBias() -#electronAlgs = TrigEFIDOutsideIn_Photon() #ok - -# EF Track hypothesis algorithm for electrons -from TrigEgammaHypo.TrigEFTrackHypoConfig import EFTrackHypo_e10, EFTrackHypo_e15i, EFTrackHypo_e25i, EFTrackHypo_e60 -theEFTrackHypo_e10 = EFTrackHypo_e10() -theEFTrackHypo_e15i = EFTrackHypo_e15i() -theEFTrackHypo_e25i = EFTrackHypo_e25i() -theEFTrackHypo_e60 = EFTrackHypo_e60() - -#-------------------------------------------------------------- -# Region Selector and Trigger -#-------------------------------------------------------------- - -include( "TriggerJobOpts/TriggerFlags.py" ) -include( "RegionSelector/RegionSelector_jobOptions.py" ) -include( "InDetRegionSelector/InDetRegionSelectorTable_jobOptions.py" ) #include it temporarily! - -theApp.Dlls += [ "TrigSteeringTest" ] -theApp.Dlls += [ "TrigTimeAlgs" ] - -######################## -# ConfigSvc: -######################## - -####################################################### -# define/generate menu files for HLT -####################################################### - -from TriggerMenuPython.TriggerPythonConfig import * -menu = TriggerPythonConfig("newMenu.xml", "lvl1Menu.xml") -############################################################# Electrons -# fake L1 -item = LVL1MenuItem('L1_EM10', ctpid='1') -item.addCondition(name='EM10', multi='1') -menu.addLVL1Item( item ) -menu.addEMThreshold(name='EM10', value='7', range_begin='1', range_end='2' ) - -# sequence -menu.addSequence( 'EM10', ['PESA::dummyAlgo/Egamma'], 'LVL2Out_Electron' ) -menu.addSequence( 'LVL2Out_Electron', electronAlgs.getSequence() + [theEFTrackHypo_e10, theEFTrackHypo_e15i, theEFTrackHypo_e25i, theEFTrackHypo_e60], -'EFInDet_Electron' ) - -#chains -chain = HLTChain('DummyL2_Electron', '1', 'L1_EM10', 'L2') -chain.addHLTSignature( 'LVL2Out_Electron' ) -chain.addTriggerTypeBit(0) -chain.addStreamTag('fake') -menu.addHLTChain(chain) - -chain = HLTChain('SingleMC_Electron', '4', 'DummyL2_Electron', 'EF') -chain.addHLTSignature( 'EFInDet_Electron' ) -chain.addTriggerTypeBit(4) -chain.addStreamTag('electrons') -menu.addHLTChain(chain) - -############################################################# Muons -# fake L1 -item = LVL1MenuItem('L1_MU06', ctpid='2') -item.addCondition(name='MU06', multi='1') -menu.addLVL1Item( item ) -menu.addEMThreshold(name='MU06', value='6', range_begin='1', range_end='2' ) - -# sequence -menu.addSequence( 'MU06', ['PESA::dummyAlgo/Muon'], 'LVL2Out_Muon' ) -menu.addSequence( 'LVL2Out_Muon', muonAlgs.getSequence(), - 'EFInDet_Muon' ) - -#chains -chain = HLTChain('DummyL2_Muon', '2', 'L1_MU06', 'L2') -chain.addHLTSignature( 'LVL2Out_Muon' ) -chain.addTriggerTypeBit(0) -chain.addStreamTag('fake') -menu.addHLTChain(chain) - -chain = HLTChain('SingleMC_Muon', '5', 'DummyL2_Muon', 'EF') -chain.addHLTSignature( 'EFInDet_Muon' ) -chain.addTriggerTypeBit(5) -chain.addStreamTag('muons') -menu.addHLTChain(chain) - -############################################################# Jets -# fake L1 -item = LVL1MenuItem('L1_JET20', ctpid='2') -item.addCondition(name='JET20', multi='1') -menu.addLVL1Item( item ) -menu.addEMThreshold(name='JET20', value='20', range_begin='1', range_end='2' ) - -# sequence -menu.addSequence( 'JET20', ['PESA::dummyAlgo/Jet'], 'LVL2Out_Jet' ) -menu.addSequence( 'LVL2Out_Jet', tauAlgs.getSequence(), - 'EFInDet_Jet' ) - -#chains -chain = HLTChain('DummyL2_Jet', '3', 'L1_JET20', 'L2') -chain.addHLTSignature( 'LVL2Out_Jet' ) -chain.addTriggerTypeBit(0) -chain.addStreamTag('fake') -menu.addHLTChain(chain) - -chain = HLTChain('SingleMC_Jet', '6', 'DummyL2_Jet', 'EF') -chain.addHLTSignature( 'EFInDet_Jet' ) -chain.addTriggerTypeBit(34) -chain.addStreamTag('jets') -menu.addHLTChain(chain) - -menu.writeConfigFiles() - -### Setup TrigConfigSvc ### -#################################### -from TrigConfigSvc.TrigConfigSvcConfig import SetupTrigConfigSvc -log.info("setting up TrigConfigSvc:") -svc = SetupTrigConfigSvc() -svc.hltXmlFile = 'newMenu.xml' -svc.l1XmlFile = 'lvl1Menu.xml' - -try: - svc.SetStates( 'xml' ) -except: - log.warning( 'failed to set state of TrigConfigSvc ...') -try: - svc.InitialiseSvc() -except: - log.warning( 'failed to activate TrigConfigSvc ...') - -ServiceMgr.TrigConfigSvc.OutputLevel=VERBOSE -ServiceMgr.HLTConfigSvc.OutputLevel=VERBOSE -ServiceMgr.LVL1ConfigSvc.OutputLevel=VERBOSE - -####################################################### -from TrigSteering.TrigSteeringConfig import TrigSteer_L2,TrigSteer_EF - -steeringL2 = TrigSteer_L2("TrigSteer_L2", hltFile="newMenu.xml") - -if doTruth: - from TrigFake.TrigFakeConf import FakeLvl1RoIfromKine - steeringL2.LvlConverterTool = FakeLvl1RoIfromKine("FakeLvl1RoIfromKine") - steeringL2.LvlConverterTool.FakeEmTauRoiParticleIDs=[11,-11] - steeringL2.LvlConverterTool.FakeMuonRoiParticleIDs=[13,-13] - steeringL2.LvlConverterTool.FakeJetRoiParticleIDs=[15,-15] - steeringL2.LvlConverterTool.FakeEmTauRoiPtMin=5*GeV - steeringL2.LvlConverterTool.McEventCollectionName = "TruthEvent" - steeringL2.LvlConverterTool.OutputLevel = DEBUG - steeringL2.OutputLevel = VERBOSE - topSequence += steeringL2 -else: - from TrigFake.TrigFakeConf import FakeLvl1RoIatFixedEtaPhi - steeringL2.LvlConverterTool = FakeLvl1RoIatFixedEtaPhi("FakeLvl1RoIatFixedEtaPhi") - steeringL2.LvlConverterTool.FakeEmRoiPhi=0.0 - steeringL2.LvlConverterTool.FakeEmRoiEta=0.0 - steeringL2.LvlConverterTool.FakeEmRoiLabel="EM10" - if not doTimer: - steeringL2.LvlConverterTool.OutputLevel = DEBUG - steeringL2.OutputLevel = VERBOSE - else: - steeringL2.LvlConverterTool.OutputLevel = ERROR - steeringL2.OutputLevel = ERROR - topSequence += steeringL2 - -steeringEF = TrigSteer_EF("TrigSteer_EF", hltFile="newMenu.xml") -if doTimer: - steeringEF.OutputLevel = ERROR -else: - steeringEF.OutputLevel = INFO -topSequence += steeringEF - -#fix to get rid of EF exceptions -excSvc=Service("ExceptionSvc") -excSvc.Catch="LIST" -excSvc.Algorithms=[ "TrigSteer_EF=SUCCESS"] - -# ------------------------------------------------------------- -theApp.EvtMax = 1000 -if not doReadBS: - ServiceMgr.PoolSvc.AttemptCatalogPatch=True - ServiceMgr.EventSelector.InputCollections = ["rfio:/castor/cern.ch/user/e/enzuobon/RTT/RTTdata/calib1_csc11.005200.T1_McAtNlo_Jimmy.digit.RDO.v12000301/calib1_csc11.005200.T1_McAtNlo_Jimmy.digit.RDO.v12000301_tid003138._00001.pool.root.4"] - #ServiceMgr.EventSelector.InputCollections = ["/afs/cern.ch/atlas/maxidisk/d89/InDetRecRDO.root"] -else: - EventSelector.Input = ["/afs/cern.ch/atlas/project/trigger/pesa-sw/data/calib1_csc11.005200.T1_McAtNlo_Jimmy.digit.bs-lvl1sim.v12000301_tid003138._00001.pool.root"] -# ------------------------------------------------------------ - -# switch off history service -ServiceMgr.StoreGateSvc.ActivateHistory = False -ServiceMgr.StoreGateSvc.Dump = False - -# ------------------------------------------------------------ -# get stack dump -# ------------------------------------------------------------ - -ServiceMgr.CoreDumpSvc.FatalHandler = 438 - -if doAuditors: - # load AuditorSvc - theAuditorSvc = AuditorSvc() - - # write out summary of the memory usage - # number of events to be skip to detect memory leak - # 20 is default. May need to be made larger for complete jobs. - theAuditorSvc.Auditors += [ "ChronoAuditor"] - ServiceMgr.ChronoStatSvc.NumberOfSkippedEventsForMemStat = 5 - # memory auditors - theAuditorSvc.Auditors += [ "MemStatAuditor" ] - MemStatAuditor = theAuditorSvc.auditor( "MemStatAuditor" ) - MemStatAuditor.OutputLevel = WARNING - -# write out a short message upon entering or leaving each algorithm -if doNameAuditor: - theAuditorSvc.Auditors += [ "NameAuditor" ] - theApp.AuditAlgorithms = True - theApp.AuditServices = True - # - # Display detailed size and timing statistics for writing and reading - # -if doWriteESD or doWriteAOD: - AthenaPoolCnvSvc = Service( "AthenaPoolCnvSvc" ) - AthenaPoolCnvSvc.UseDetailChronoStat = True - -#-------------------------------------------------------------- -# run JiveXML -#-------------------------------------------------------------- -if doJiveXML: - include ("JiveXML/JiveXML_jobOptionBase.py") - include ("JiveXML/DataTypes_InDet.py") - - from InDetJiveXML.InDetJiveXMLConf import JiveXML__SiClusterRetriever - theSiClusterRetriever = JiveXML__SiClusterRetriever (name = "SiClusterRetriever") - theSiClusterRetriever.SCTClusters = "SCT_TrigClusters" - print theSiClusterRetriever - - from InDetJiveXML.InDetJiveXMLConf import JiveXML__SiSpacePointRetriever - theSiSpacePointRetriever = JiveXML__SiSpacePointRetriever (name = "SiSpacePointRetriever") - theSiSpacePointRetriever.PixelSpacePoints = "PixelTrigSpacePoints" - theSiSpacePointRetriever.SCTSpacePoints = "SCT_TrigSpacePoints" - - from InDetJiveXML.InDetJiveXMLConf import JiveXML__TRTRetriever - theTRTRetriever = JiveXML__TRTRetriever (name = "TRTRetriever") - theTRTRetriever.TRTClusters = "TRT_TrigDriftCircles" - - from TrkJiveXML.TrkJiveXMLConf import JiveXML__TrackRetriever - theTrackRetriever = JiveXML__TrackRetriever (name = "TrackRetriever") - theTrackRetriever.DoWriteHLT = True - - if doTruth: - readG3 = False - include ("JiveXML/DataTypes_Truth.py") - -# ------------------------------------------------------------ -# persistency -# ------------------------------------------------------------ - -if doWriteAOD: - # create stream - theApp.TopAlg += [ "AthenaOutputStream/StreamAOD" ] - StreamAOD = Algorithm( "StreamAOD" ) - StreamAOD.EvtConversionSvc = "AthenaPoolCnvSvc" - - # Define the output file name - StreamAOD.OutputFile = "InDetTrigRecAOD.root" - - #force read of input data to write in output data - - # EventInfo - needs to be always saved. - StreamAOD.ItemList=[] - StreamAOD.ItemList+=["EventInfo#*"] - include ( "InDetTrigRecExample/WriteTrigInDetAOD.py" ) - -if doWriteESD: - # create stream - theApp.TopAlg += [ "AthenaOutputStream/StreamESD" ] - StreamESD = Algorithm( "StreamESD" ) - StreamESD.EvtConversionSvc = "AthenaPoolCnvSvc" - - # Define the output file name - StreamESD.OutputFile = "InDetTrigRecESD.root" - - #force read of input data to write in output data - - # EventInfo - needs to be always saved. - StreamESD.ItemList=[] - StreamESD.ItemList+=["EventInfo#*"] - include ( "InDetTrigRecExample/WriteTrigInDetESD.py" ) - -if doMonitoring or doTimer: - from GaudiSvc.GaudiSvcConf import THistSvc - ServiceMgr += THistSvc() - ServiceMgr.THistSvc.Output = [ "EXPERT DATAFILE='expert-monitoring.root' OPT='RECREATE'" ] - -if doTimer: - for algo in steeringEF.getChildren(): - print "HERE", algo.getFullName() - algo.doTiming = True - -#######################################################33 -# -# Testing options -#######################################################33 -if not doTruth: - PixelClustering_EF.EtaHalfWidth = 3.0 - PixelClustering_EF.PhiHalfWidth = 3.14159 - # - SCTClustering_EF.EtaHalfWidth = 3.0 - SCTClustering_EF.PhiHalfWidth = 3.14159 - # - TRTDriftCircleMaker_EF.EtaHalfWidth = 3.0 - TRTDriftCircleMaker_EF.PhiHalfWidth = 3.14159 - # - SiTrigSpacePointFinder_EF.EtaHalfWidth = 3.0 - SiTrigSpacePointFinder_EF.PhiHalfWidth = 3.14159 - # - SiTrigTrackFinder_EF.EtaHalfWidth = 3.0 - SiTrigTrackFinder_EF.PhiHalfWidth = 3.14159 - -# ------------------------------------------------------------ -# useful debugging/info tools -# ------------------------------------------------------------ -for algo in steeringEF.getChildren(): - if not doTimer: - algo.OutputLevel = INFO - else: - algo.OutputLevel = ERROR - -Algorithm("AANTupleStream").OutputLevel=INFO - -if doCBNT: - from GaudiSvc.GaudiSvcConf import THistSvc - ServiceMgr += THistSvc() - theApp.Dlls += [ "AnalysisTools" ] - AANTupleStream = Algorithm( "AANTupleStream" ) - #AANTupleStream.ExtraRefNames = [ "StreamESD","StreamRDO" ] - AANTupleStream.ExistDataHeader = False - AANTupleStream.TreeName = "CollectionTree" - AANTupleStream.WriteInputDataHeader = True - RootNtupleOutput = "ntuple.root" - #RootNtupleOutput = "timing-histograms.root" - exec 'AANTupleStream.OutputName= \'%s\' ' % RootNtupleOutput - AANTupleStream.OutputName = RootNtupleOutput - - exec 'ServiceMgr.THistSvc.Output += ["AANT DATAFILE=\'%s\' OPT=\'RECREATE\'"] ' % RootNtupleOutput - - include( "CBNT_Athena/CBNT_AthenaAware_jobOptions.py" ) - - - theApp.TopAlg += [ "AANTupleStream" ] - include("TrigNtInDet/jobOfragment_TrigNtInDet.py") - CBNT_TrigEFTrackParticle.doDetailedTruth = True - CBNT_TrigEFTrackParticle.doTruthCBNT = True - CBNT_TrigEFTrackParticle.doExtrap = True - CBNT_TrigEFTrackParticle.OutputLevel=DEBUG - - -print topSequence diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptions_RTT_InDetTrigRecExample_backTracking.py b/InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptions_RTT_InDetTrigRecExample_backTracking.py deleted file mode 100755 index 61515232d50..00000000000 --- a/InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptions_RTT_InDetTrigRecExample_backTracking.py +++ /dev/null @@ -1,484 +0,0 @@ -# migrated to new steering -#-------------------------------------------------------------- -# Control -#-------------------------------------------------------------- - -# control running truth ? -doTruth = True #if TRUE running FakeRoIfromKine, if FALSE running FakeLvl1RoIatFixedEtaPhi - -# produce an atlantis data file -doJiveXML = False - -# controls what is written out. ESD includes AOD, so it's normally enough -doWriteESD = False -doWriteAOD = False - -# --- read BS -doReadBS = False -if doReadBS: - doTruth = False - -# Monitoring flags -doMonitoring = True - -# do auditors ? -doAuditors = False - -#timing measurements -doTimer = False - -#CBNT -doCBNT = False -CBNTAthenaAware = True #must be True, otherwise you don't get an ntuple - -# --- Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -OutputLevel = INFO -DetDescrVersion = "ATLAS-CSC-01-02-00" - -import os -if os.environ['CMTCONFIG'].endswith('-dbg'): - # --- do EventDataModel monitor (debug mode only) ? - doEdmMonitor = True - # --- write out a short message upon entering or leaving each algorithm - doNameAuditor = True -else: - doEdmMonitor = False - doNameAuditor = False - -#-------------------------------------------------------------- -# --- setup class with default values -#-------------------------------------------------------------- -from InDetTrigRecExample.InDetTrigFlags import InDetTrigFlags -InDetTrigFlags.doTruth = doTruth -InDetTrigFlags.doNewTracking = True - - -#-------------------------------------------------------------- -# load Global Flags and set defaults -#-------------------------------------------------------------- - -from AthenaCommon.GlobalFlags import GlobalFlags -#default is atlas geometry -GlobalFlags.DetGeo.set_atlas() -#set defaults -GlobalFlags.DataSource.set_geant4() -if 'doReadBS' in dir() and doReadBS: - GlobalFlags.InputFormat.set_bytestream() -else: - GlobalFlags.InputFormat.set_pool() -#default is zero luminosity -#GlobalFlags.Luminosity.set_zero() -# --- printout -GlobalFlags.Print() - -# --- set geometry version (kudge for new jobproperties) -from AthenaCommon.GlobalFlags import globalflags -globalflags.DetDescrVersion = DetDescrVersion -print globalflags.DetDescrVersion() - -#-------------------------------------------------------------- -# Set Detector setup -#-------------------------------------------------------------- - -# --- switch on InnerDetector -from AthenaCommon.DetFlags import DetFlags -DetFlags.ID_setOn() -# --- and switch off all the rest -DetFlags.Calo_setOff() -DetFlags.Muon_setOff() -if doCBNT: - DetFlags.Tile_setOn() #needed for doExtrap in CBNT - DetFlags.LAr_setOn() #needed for doExtrap in CBNT - include( "LArConditionsCommon/LArIdMap_MC_jobOptions.py" ) -# ---- switch parts of ID off/on as follows -#DetFlags.makeRIO.pixel_setOff() -#DetFlags.makeRIO.TRT_setOff() -#DetFlags.makeRIO.SCT_setOff() -# --- printout -DetFlags.Print() - -#-------------------------------------------------------------- -# load ServiceMgr, ToolSvc, topSequence -#-------------------------------------------------------------- -from AthenaCommon.AppMgr import theApp -from AthenaCommon.AppMgr import ServiceMgr - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() -# -from AthenaCommon.AppMgr import ToolSvc - -#-------------------------------------------------------------- -# change MessageSvc -#-------------------------------------------------------------- - -# output level -ServiceMgr.MessageSvc.OutputLevel = OutputLevel -# increase the number of letter reserved to the alg/tool name from 18 to 30 -ServiceMgr.MessageSvc.Format = "% F%50W%S%7W%R%T %0W%M" -# to change the default limit on number of message -ServiceMgr.MessageSvc.defaultLimit = 9999999 # all messages - -#-------------------------------------------------------------- -# Load POOL support, setup for reconstruction -#-------------------------------------------------------------- - -# setup POOL access in ATHENA -if 'doReadBS' in dir() and doReadBS: - include("InDetTrigRecExample/InDetTrigReadBS_jobOptions.py") -else: - import AthenaPoolCnvSvc.ReadAthenaPool - -# --- GeoModel -include("AtlasGeoModel/SetGeometryVersion.py" ) -include("AtlasGeoModel/GeoModelInit.py" ) -# ---- Beam Spot service -if InDetTrigFlags.useBeamConstraint(): - include("InDetBeamSpotService/BeamCondSvc.py" ) - - - -# particle property service -include( "PartPropSvc/PartPropSvc.py" ) - -if InDetTrigFlags.doTruth(): - include ( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" ) - -#------------------------------------------------------------ -# Event Data Model Monitor works only in dbg build -#------------------------------------------------------------ - -if doEdmMonitor: - from TrkValAlgs.TrkValAlgsConf import Trk__EventDataModelMonitor - InDetTrigEdmMonitor = Trk__EventDataModelMonitor (name = 'InDetTrigEdmMonitor') - - topSequence += InDetTrigEdmMonitor - print InDetTrigEdmMonitor - -#-------------------------------------------------------------- -# Load Inner Detector reconstruction -#-------------------------------------------------------------- - -# ID reconstruction -from InDetTrigRecExample.EFInDetConfig import * - -if not doReadBS: - electronAlgs = TrigEFIDOutsideIn_Photon() -else: - electronAlgs = TrigEFIDOutsideIn_Photon() - -#muonAlgs = TrigEFIDInsideOut_Muon() #ok -#tauAlgs = TrigEFIDInsideOut_Tau() #ok -#electronAlgs = TrigEFIDInsideOut_Bjet() #ok -#electronAlgs = TrigEFIDInsideOut_Bphysics() #ok -#electronAlgs = TrigEFIDInsideOut_FullScan() -#electronAlgs = TrigEFIDInsideOut_MinBias() -#electronAlgs = TrigEFIDOutsideIn_Photon() #ok - -# EF Track hypothesis algorithm for electrons -#from TrigEgammaHypo.TrigEFTrackHypoConfig import EFTrackHypo_e10, EFTrackHypo_e15i, EFTrackHypo_e25i, EFTrackHypo_e60 -#theEFTrackHypo_e10 = EFTrackHypo_e10() -#theEFTrackHypo_e15i = EFTrackHypo_e15i() -#theEFTrackHypo_e25i = EFTrackHypo_e25i() -#theEFTrackHypo_e60 = EFTrackHypo_e60() - -#-------------------------------------------------------------- -# Region Selector and Trigger -#-------------------------------------------------------------- - -include( "TriggerJobOpts/TriggerFlags.py" ) -include( "RegionSelector/RegionSelector_jobOptions.py" ) -include( "InDetRegionSelector/InDetRegionSelectorTable_jobOptions.py" ) #include it temporarily! - -theApp.Dlls += [ "TrigSteeringTest" ] -theApp.Dlls += [ "TrigTimeAlgs" ] - -######################## -# ConfigSvc: -######################## - -####################################################### -# define/generate menu files for HLT -####################################################### - -from TriggerMenuPython.TriggerPythonConfig import * -menu = TriggerPythonConfig("newMenu.xml", "lvl1Menu.xml") -############################################################# Electrons/Photons -# fake L1 -item = LVL1MenuItem('L1_EM10', ctpid='1') -item.addCondition(name='EM10', multi='1') -menu.addLVL1Item( item ) -menu.addEMThreshold(name='EM10', value='7', range_begin='1', range_end='2' ) - -# sequence -menu.addSequence( 'EM10', ['PESA::dummyAlgo/Egamma'], 'LVL2Out_Electron' ) -menu.addSequence( 'LVL2Out_Electron', electronAlgs.getSequence(), -'EFInDet_Electron' ) - -#chains -chain = HLTChain('DummyL2_Electron', '1', 'L1_EM10', 'L2') -chain.addHLTSignature( 'LVL2Out_Electron' ) -chain.addTriggerTypeBit(0) -chain.addStreamTag('fake') -menu.addHLTChain(chain) - -chain = HLTChain('SingleMC_Electron', '4', 'DummyL2_Electron', 'EF') -chain.addHLTSignature( 'EFInDet_Electron' ) -chain.addTriggerTypeBit(4) -chain.addStreamTag('electrons') -menu.addHLTChain(chain) - -menu.writeConfigFiles() - - - -### Setup TrigConfigSvc ### -#################################### -from TrigConfigSvc.TrigConfigSvcConfig import SetupTrigConfigSvc -log.info("setting up TrigConfigSvc:") -svc = SetupTrigConfigSvc() -svc.hltXmlFile = 'newMenu.xml' -svc.l1XmlFile = 'lvl1Menu.xml' - -try: - svc.SetStates( 'xml' ) -except: - log.warning( 'failed to set state of TrigConfigSvc ...') -try: - svc.InitialiseSvc() -except: - log.warning( 'failed to activate TrigConfigSvc ...') - -ServiceMgr.TrigConfigSvc.OutputLevel=VERBOSE -ServiceMgr.HLTConfigSvc.OutputLevel=VERBOSE -ServiceMgr.LVL1ConfigSvc.OutputLevel=VERBOSE - - - -####################################################### -from TrigSteering.TrigSteeringConfig import TrigSteer_L2,TrigSteer_EF - -steeringL2 = TrigSteer_L2("TrigSteer_L2", hltFile="newMenu.xml") - -if doTruth: - from TrigFake.TrigFakeConf import FakeLvl1RoIfromKine - steeringL2.LvlConverterTool = FakeLvl1RoIfromKine("FakeLvl1RoIfromKine") - steeringL2.LvlConverterTool.FakeEmTauRoiParticleIDs=[11,-11] - #steeringL2.LvlConverterTool.FakeMuonRoiParticleIDs=[13,-13] - #steeringL2.LvlConverterTool.FakeJetRoiParticleIDs=[15,-15] - steeringL2.LvlConverterTool.FakeEmTauRoiPtMin=5*GeV - steeringL2.LvlConverterTool.McEventCollectionName = "TruthEvent" - steeringL2.LvlConverterTool.OutputLevel = DEBUG - steeringL2.OutputLevel = VERBOSE - topSequence += steeringL2 -else: - from TrigFake.TrigFakeConf import FakeLvl1RoIatFixedEtaPhi - steeringL2.LvlConverterTool = FakeLvl1RoIatFixedEtaPhi("FakeLvl1RoIatFixedEtaPhi") - steeringL2.LvlConverterTool.FakeEmRoiPhi=0.0 - steeringL2.LvlConverterTool.FakeEmRoiEta=0.0 - steeringL2.LvlConverterTool.FakeEmRoiLabel="EM10" - if not doTimer: - steeringL2.LvlConverterTool.OutputLevel = DEBUG - steeringL2.OutputLevel = VERBOSE - else: - steeringL2.LvlConverterTool.OutputLevel = ERROR - steeringL2.OutputLevel = ERROR - topSequence += steeringL2 - -steeringEF = TrigSteer_EF("TrigSteer_EF", hltFile="newMenu.xml") -if doTimer: - steeringEF.OutputLevel = ERROR -else: - steeringEF.OutputLevel = VERBOSE -topSequence += steeringEF - -#fix to get rid of EF exceptions -excSvc=Service("ExceptionSvc") -excSvc.Catch="LIST" -excSvc.Algorithms=[ "TrigSteer_EF=SUCCESS"] - -# ------------------------------------------------------------- -theApp.EvtMax = 1000 -if not doReadBS: - ServiceMgr.PoolSvc.AttemptCatalogPatch=True - ServiceMgr.EventSelector.InputCollections = ["rfio:/castor/cern.ch/user/e/enzuobon/RTT/RTTdata/calib1_csc11.005200.T1_McAtNlo_Jimmy.digit.RDO.v12000301/calib1_csc11.005200.T1_McAtNlo_Jimmy.digit.RDO.v12000301_tid003138._00001.pool.root.4"] - #ServiceMgr.EventSelector.InputCollections = ["/afs/cern.ch/atlas/maxidisk/d89/InDetRecRDO.root"] -else: - EventSelector.Input = ["/afs/cern.ch/atlas/project/trigger/pesa-sw/data/calib1_csc11.005200.T1_McAtNlo_Jimmy.digit.bs-lvl1sim.v12000301_tid003138._00001.pool.root"] -# ------------------------------------------------------------ - -# switch off history service -ServiceMgr.StoreGateSvc.ActivateHistory = False -ServiceMgr.StoreGateSvc.Dump = False - -# ------------------------------------------------------------ -# get stack dump -# ------------------------------------------------------------ - -ServiceMgr.CoreDumpSvc.FatalHandler = 438 - -if doAuditors: - # load AuditorSvc - theAuditorSvc = AuditorSvc() - - # write out summary of the memory usage - # number of events to be skip to detect memory leak - # 20 is default. May need to be made larger for complete jobs. - theAuditorSvc.Auditors += [ "ChronoAuditor"] - ServiceMgr.ChronoStatSvc.NumberOfSkippedEventsForMemStat = 5 - # memory auditors - theAuditorSvc.Auditors += [ "MemStatAuditor" ] - MemStatAuditor = theAuditorSvc.auditor( "MemStatAuditor" ) - MemStatAuditor.OutputLevel = WARNING - -# write out a short message upon entering or leaving each algorithm -if doNameAuditor: - theAuditorSvc.Auditors += [ "NameAuditor" ] - theApp.AuditAlgorithms = True - theApp.AuditServices = True - # - # Display detailed size and timing statistics for writing and reading - # -if doWriteESD or doWriteAOD: - AthenaPoolCnvSvc = Service( "AthenaPoolCnvSvc" ) - AthenaPoolCnvSvc.UseDetailChronoStat = True - -#-------------------------------------------------------------- -# run JiveXML -#-------------------------------------------------------------- -if doJiveXML: - include ("JiveXML/JiveXML_jobOptionBase.py") - include ("JiveXML/DataTypes_InDet.py") - - from InDetJiveXML.InDetJiveXMLConf import JiveXML__SiClusterRetriever - theSiClusterRetriever = JiveXML__SiClusterRetriever (name = "SiClusterRetriever") - theSiClusterRetriever.SCTClusters = "SCT_TrigClusters" - print theSiClusterRetriever - - from InDetJiveXML.InDetJiveXMLConf import JiveXML__SiSpacePointRetriever - theSiSpacePointRetriever = JiveXML__SiSpacePointRetriever (name = "SiSpacePointRetriever") - theSiSpacePointRetriever.PixelSpacePoints = "PixelTrigSpacePoints" - theSiSpacePointRetriever.SCTSpacePoints = "SCT_TrigSpacePoints" - - from InDetJiveXML.InDetJiveXMLConf import JiveXML__TRTRetriever - theTRTRetriever = JiveXML__TRTRetriever (name = "TRTRetriever") - theTRTRetriever.TRTClusters = "TRT_TrigDriftCircles" - - from TrkJiveXML.TrkJiveXMLConf import JiveXML__TrackRetriever - theTrackRetriever = JiveXML__TrackRetriever (name = "TrackRetriever") - theTrackRetriever.DoWriteHLT = True - - if doTruth: - readG3 = False - include ("JiveXML/DataTypes_Truth.py") - -# ------------------------------------------------------------ -# persistency -# ------------------------------------------------------------ - -if doWriteAOD: - # create stream - theApp.TopAlg += [ "AthenaOutputStream/StreamAOD" ] - StreamAOD = Algorithm( "StreamAOD" ) - StreamAOD.EvtConversionSvc = "AthenaPoolCnvSvc" - - # Define the output file name - StreamAOD.OutputFile = "InDetTrigRecAOD.root" - - #force read of input data to write in output data - - # EventInfo - needs to be always saved. - StreamAOD.ItemList=[] - StreamAOD.ItemList+=["EventInfo#*"] - include ( "InDetTrigRecExample/WriteTrigInDetAOD.py" ) - -if doWriteESD: - # create stream - theApp.TopAlg += [ "AthenaOutputStream/StreamESD" ] - StreamESD = Algorithm( "StreamESD" ) - StreamESD.EvtConversionSvc = "AthenaPoolCnvSvc" - - # Define the output file name - StreamESD.OutputFile = "InDetTrigRecESD.root" - - #force read of input data to write in output data - - # EventInfo - needs to be always saved. - StreamESD.ItemList=[] - StreamESD.ItemList+=["EventInfo#*"] - include ( "InDetTrigRecExample/WriteTrigInDetESD.py" ) - -from GaudiSvc.GaudiSvcConf import THistSvc -ServiceMgr += THistSvc() -if doMonitoring or doTimer: - ServiceMgr.THistSvc.Output = [ "EXPERT DATAFILE='expert-monitoring.root' OPT='RECREATE'" ] - -if doTimer: - for algo in steeringEF.getChildren(): - print "HERE", algo.getFullName() - algo.doTiming = True - -#######################################################33 -# -# Testing options -#######################################################33 -if not doTruth: - PixelClustering_EF.EtaHalfWidth = 3.0 - PixelClustering_EF.PhiHalfWidth = 3.14159 - # - SCTClustering_EF.EtaHalfWidth = 3.0 - SCTClustering_EF.PhiHalfWidth = 3.14159 - # - TRTDriftCircleMaker_EF.EtaHalfWidth = 3.0 - TRTDriftCircleMaker_EF.PhiHalfWidth = 3.14159 - # - SiTrigSpacePointFinder_EF.EtaHalfWidth = 3.0 - SiTrigSpacePointFinder_EF.PhiHalfWidth = 3.14159 - # - SiTrigTrackFinder_EF.EtaHalfWidth = 3.0 - SiTrigTrackFinder_EF.PhiHalfWidth = 3.14159 - -# ------------------------------------------------------------ -# useful debugging/info tools -# ------------------------------------------------------------ -for algo in steeringEF.getChildren(): - if not doTimer: - algo.OutputLevel = DEBUG - else: - algo.OutputLevel = ERROR - -Algorithm("AANTupleStream").OutputLevel=DEBUG -ServiceMgr.THistSvc.OutputLevel=DEBUG - -if doCBNT: - THistSvc = Service ( "THistSvc" ) - theApp.Dlls += [ "AnalysisTools" ] - AANTupleStream = Algorithm( "AANTupleStream" ) - #AANTupleStream.ExtraRefNames = [ "StreamESD","StreamRDO" ] - AANTupleStream.ExistDataHeader = False - AANTupleStream.TreeName = "CollectionTree" - AANTupleStream.WriteInputDataHeader = True - RootNtupleOutput = "ntuple.root" - #RootNtupleOutput = "timing-histograms.root" - exec 'AANTupleStream.OutputName= \'%s\' ' % RootNtupleOutput - AANTupleStream.OutputName = RootNtupleOutput - - exec 'THistSvc.Output += ["AANT DATAFILE=\'%s\' OPT=\'RECREATE\'"] ' % RootNtupleOutput - - include( "CBNT_Athena/CBNT_AthenaAware_jobOptions.py" ) -# Algorithm("CBNT_AthenaAware").OutputLevel=DEBUG - CBNT_AthenaAware.OutputLevel=DEBUG - - #theApp.TopAlg += ["CBNT_AthenaAware"] - theApp.TopAlg += [ "AANTupleStream" ] - #include( "RecExCommon/CBNT_Truth_jobOptions.py" ) - include("TrigNtInDet/jobOfragment_TrigNtInDet.py") - - if (TriggerFlags.doID): - theCBNTAA_TrigEFTrackParticle.doDetailedTruth = True - theCBNTAA_TrigEFTrackParticle.doTruthCBNT = True - theCBNTAA_TrigEFTrackParticle.OutputLevel=DEBUG - theCBNTAA_TrigEFVxPrimary.OutputLevel=DEBUG - theCBNTAA_TrigEFTrackParticle.doExtrap = True - -print topSequence diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptions_RTT_InDetTrigRecExample_doReadBS.py b/InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptions_RTT_InDetTrigRecExample_doReadBS.py deleted file mode 100755 index a4b72d0cd66..00000000000 --- a/InnerDetector/InDetExample/InDetTrigRecExample/share/jobOptions_RTT_InDetTrigRecExample_doReadBS.py +++ /dev/null @@ -1,536 +0,0 @@ -# migrated to new steering -#-------------------------------------------------------------- -# Control -#-------------------------------------------------------------- - -# control running truth ? -doTruth = True #if TRUE running FakeRoIfromKine, if FALSE running FakeLvl1RoIatFixedEtaPhi - -# produce an atlantis data file -doJiveXML = False - -# controls what is written out. ESD includes AOD, so it's normally enough -doWriteESD = False -doWriteAOD = False - -# --- read BS -doReadBS = True -if doReadBS: - doTruth = False - -# Monitoring flags -doMonitoring = False - -# do auditors ? -doAuditors = False - -#timing measurements -doTimer = True - -#CBNT -doCBNT = False -CBNTAthenaAware = True #must be True, otherwise you don't get an ntuple - -# --- Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -OutputLevel = INFO -#DetDescrVersion = "ATLAS-DC3-07" #it has to be defined early enough -DetDescrVersion = "ATLAS-CSC-01-02-00" - -from IOVDbSvc.CondDB import conddb -conddb.setGlobalTag('OFLCOND-CSC-00-00-00') - - -import os -if os.environ['CMTCONFIG'].endswith('-dbg'): - # --- do EventDataModel monitor (debug mode only) ? - doEdmMonitor = True - # --- write out a short message upon entering or leaving each algorithm - doNameAuditor = True -else: - doEdmMonitor = False - doNameAuditor = False - -#-------------------------------------------------------------- -# --- setup class with default values -#-------------------------------------------------------------- -from InDetTrigRecExample.InDetTrigFlags import InDetTrigFlags -InDetTrigFlags.doTruth = doTruth -InDetTrigFlags.doNewTracking = True - - -#-------------------------------------------------------------- -# load Global Flags and set defaults -#-------------------------------------------------------------- - -from AthenaCommon.GlobalFlags import GlobalFlags -#default is atlas geometry -GlobalFlags.DetGeo.set_atlas() -#set defaults -GlobalFlags.DataSource.set_geant4() -if 'doReadBS' in dir() and doReadBS: - GlobalFlags.InputFormat.set_bytestream() -else: - GlobalFlags.InputFormat.set_pool() -#default is zero luminosity -#GlobalFlags.Luminosity.set_zero() -# --- printout -GlobalFlags.Print() - -# --- set geometry version (kudge for new jobproperties) -from AthenaCommon.GlobalFlags import globalflags -globalflags.DetDescrVersion = DetDescrVersion -print globalflags.DetDescrVersion() - -#-------------------------------------------------------------- -# Set Detector setup -#-------------------------------------------------------------- - -# --- switch on InnerDetector -from AthenaCommon.DetFlags import DetFlags -DetFlags.ID_setOn() -# --- and switch off all the rest -DetFlags.Calo_setOff() -DetFlags.Muon_setOff() -if doCBNT: - DetFlags.Tile_setOn() #needed for doExtrap in CBNT - DetFlags.LAr_setOn() #needed for doExtrap in CBNT - include( "LArConditionsCommon/LArIdMap_MC_jobOptions.py" ) -# ---- switch parts of ID off/on as follows -#DetFlags.makeRIO.pixel_setOff() -#DetFlags.makeRIO.TRT_setOff() -#DetFlags.makeRIO.SCT_setOff() -# --- printout -DetFlags.Print() - -#-------------------------------------------------------------- -# load ServiceMgr, ToolSvc, topSequence -#-------------------------------------------------------------- -from AthenaCommon.AppMgr import theApp -from AthenaCommon.AppMgr import ServiceMgr - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() -# -from AthenaCommon.AppMgr import ToolSvc - -#-------------------------------------------------------------- -# change MessageSvc -#-------------------------------------------------------------- - -# output level -ServiceMgr.MessageSvc.OutputLevel = OutputLevel -# increase the number of letter reserved to the alg/tool name from 18 to 30 -ServiceMgr.MessageSvc.Format = "% F%50W%S%7W%R%T %0W%M" -# to change the default limit on number of message -ServiceMgr.MessageSvc.defaultLimit = 9999999 # all messages - -#-------------------------------------------------------------- -# Load POOL support, setup for reconstruction -#-------------------------------------------------------------- - -# setup POOL access in ATHENA -if 'doReadBS' in dir() and doReadBS: - include("InDetTrigRecExample/InDetTrigReadBS_jobOptions.py") -else: - import AthenaPoolCnvSvc.ReadAthenaPool - -# --- GeoModel -include("AtlasGeoModel/SetGeometryVersion.py" ) -include("AtlasGeoModel/GeoModelInit.py" ) -# ---- Beam Spot service -if InDetTrigFlags.useBeamConstraint(): - include("InDetBeamSpotService/BeamCondSvc.py" ) - - -# particle property service -include( "PartPropSvc/PartPropSvc.py" ) - -if InDetTrigFlags.doTruth(): - include ( "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.py" ) - -#------------------------------------------------------------ -# Event Data Model Monitor works only in dbg build -#------------------------------------------------------------ - -if doEdmMonitor: - from TrkValAlgs.TrkValAlgsConf import Trk__EventDataModelMonitor - InDetTrigEdmMonitor = Trk__EventDataModelMonitor (name = 'InDetTrigEdmMonitor') - - topSequence += InDetTrigEdmMonitor - print InDetTrigEdmMonitor - -#-------------------------------------------------------------- -# Load Inner Detector reconstruction -#-------------------------------------------------------------- - -# ID reconstruction -from InDetTrigRecExample.EFInDetConfig import * - -if not doReadBS: - electronAlgs = TrigEFIDInsideOut_Electron() -else: - electronAlgs = TrigEFIDInsideOut_FullScan() - -muonAlgs = TrigEFIDInsideOut_Muon() #ok -tauAlgs = TrigEFIDInsideOut_Tau() #ok -#electronAlgs = TrigEFIDInsideOut_Bjet() #ok -#electronAlgs = TrigEFIDInsideOut_Bphysics() #ok -#electronAlgs = TrigEFIDInsideOut_FullScan() -#electronAlgs = TrigEFIDInsideOut_MinBias() -#electronAlgs = TrigEFIDOutsideIn_Photon() #ok - -# EF Track hypothesis algorithm for electrons -from TrigEgammaHypo.TrigEFTrackHypoConfig import EFTrackHypo_e10, EFTrackHypo_e15i, EFTrackHypo_e25i, EFTrackHypo_e60 -theEFTrackHypo_e10 = EFTrackHypo_e10() -theEFTrackHypo_e15i = EFTrackHypo_e15i() -theEFTrackHypo_e25i = EFTrackHypo_e25i() -theEFTrackHypo_e60 = EFTrackHypo_e60() - -#-------------------------------------------------------------- -# Region Selector and Trigger -#-------------------------------------------------------------- - -include( "TriggerJobOpts/TriggerFlags.py" ) -include( "RegionSelector/RegionSelector_jobOptions.py" ) -include( "InDetRegionSelector/InDetRegionSelectorTable_jobOptions.py" ) #include it temporarily! - -theApp.Dlls += [ "TrigSteeringTest" ] -theApp.Dlls += [ "TrigTimeAlgs" ] - -######################## -# ConfigSvc: -######################## - -####################################################### -# define/generate menu files for HLT -####################################################### - -from TrigConfigSvc.TriggerPythonConfig import * -menu = TriggerPythonConfig("newMenu.xml", "lvl1Menu.xml") -############################################################# Electrons -# fake L1 -item = LVL1MenuItem('L1_EM10', ctpid='1') -item.addCondition(name='EM10', multi='1') -menu.addLVL1Item( item ) -menu.addEMThreshold(name='EM10', value='7', range_begin='1', range_end='2' ) - -# sequence -menu.addSequence( 'EM10', ['PESA::dummyAlgo/Egamma'], 'LVL2Out_Electron' ) -menu.addSequence( 'LVL2Out_Electron', electronAlgs.getSequence() + [theEFTrackHypo_e10, theEFTrackHypo_e15i, theEFTrackHypo_e25i, theEFTrackHypo_e60], -'EFInDet_Electron' ) - -#chains -chain = HLTChain('DummyL2_Electron', '1', 'L1_EM10', 'L2') -chain.addHLTSignature( 'LVL2Out_Electron' ) -chain.addTriggerTypeBit(0) -chain.addStreamTag('fake') -menu.addHLTChain(chain) - -chain = HLTChain('SingleMC_Electron', '4', 'DummyL2_Electron', 'EF') -chain.addHLTSignature( 'EFInDet_Electron' ) -chain.addTriggerTypeBit(4) -chain.addStreamTag('electrons') -menu.addHLTChain(chain) - -############################################################# Muons -# fake L1 -item = LVL1MenuItem('L1_MU06', ctpid='2') -item.addCondition(name='MU06', multi='1') -menu.addLVL1Item( item ) -menu.addEMThreshold(name='MU06', value='6', range_begin='1', range_end='2' ) - -# sequence -menu.addSequence( 'MU06', ['PESA::dummyAlgo/Muon'], 'LVL2Out_Muon' ) -menu.addSequence( 'LVL2Out_Muon', muonAlgs.getSequence(), - 'EFInDet_Muon' ) - -#chains -chain = HLTChain('DummyL2_Muon', '2', 'L1_MU06', 'L2') -chain.addHLTSignature( 'LVL2Out_Muon' ) -chain.addTriggerTypeBit(0) -chain.addStreamTag('fake') -menu.addHLTChain(chain) - -chain = HLTChain('SingleMC_Muon', '5', 'DummyL2_Muon', 'EF') -chain.addHLTSignature( 'EFInDet_Muon' ) -chain.addTriggerTypeBit(5) -chain.addStreamTag('muons') -menu.addHLTChain(chain) - -############################################################# Jets -# fake L1 -item = LVL1MenuItem('L1_JET20', ctpid='2') -item.addCondition(name='JET20', multi='1') -menu.addLVL1Item( item ) -menu.addEMThreshold(name='JET20', value='20', range_begin='1', range_end='2' ) - -# sequence -menu.addSequence( 'JET20', ['PESA::dummyAlgo/Jet'], 'LVL2Out_Jet' ) -menu.addSequence( 'LVL2Out_Jet', tauAlgs.getSequence(), - 'EFInDet_Jet' ) - -#chains -chain = HLTChain('DummyL2_Jet', '3', 'L1_JET20', 'L2') -chain.addHLTSignature( 'LVL2Out_Jet' ) -chain.addTriggerTypeBit(0) -chain.addStreamTag('fake') -menu.addHLTChain(chain) - -chain = HLTChain('SingleMC_Jet', '6', 'DummyL2_Jet', 'EF') -chain.addHLTSignature( 'EFInDet_Jet' ) -chain.addTriggerTypeBit(34) -chain.addStreamTag('jets') -menu.addHLTChain(chain) - -menu.writeConfigFiles() - -### Setup TrigConfigSvc ### -#################################### -from TriggerMenuPython.TriggerPythonConfig import SetupTrigConfigSvc -log.info("setting up TrigConfigSvc:") -svc = SetupTrigConfigSvc() -svc.hltXmlFile = 'newMenu.xml' -svc.l1XmlFile = 'lvl1Menu.xml' - -try: - svc.SetStates( 'xml' ) -except: - log.warning( 'failed to set state of TrigConfigSvc ...') -try: - svc.InitialiseSvc() -except: - log.warning( 'failed to activate TrigConfigSvc ...') - -ServiceMgr.TrigConfigSvc.OutputLevel=VERBOSE -ServiceMgr.HLTConfigSvc.OutputLevel=VERBOSE -ServiceMgr.LVL1ConfigSvc.OutputLevel=VERBOSE - -####################################################### -from TrigSteering.TrigSteeringConfig import TrigSteer_L2,TrigSteer_EF - -steeringL2 = TrigSteer_L2("TrigSteer_L2", hltFile="newMenu.xml") - -if doTruth: - from TrigFake.TrigFakeConf import FakeLvl1RoIfromKine - steeringL2.LvlConverterTool = FakeLvl1RoIfromKine("FakeLvl1RoIfromKine") - steeringL2.LvlConverterTool.FakeEmTauRoiParticleIDs=[11,-11] - steeringL2.LvlConverterTool.FakeMuonRoiParticleIDs=[13,-13] - steeringL2.LvlConverterTool.FakeJetRoiParticleIDs=[15,-15] - steeringL2.LvlConverterTool.FakeEmTauRoiPtMin=5*GeV - steeringL2.LvlConverterTool.McEventCollectionName = "TruthEvent" - steeringL2.LvlConverterTool.OutputLevel = DEBUG - steeringL2.OutputLevel = VERBOSE - topSequence += steeringL2 -else: - from TrigFake.TrigFakeConf import FakeLvl1RoIatFixedEtaPhi - steeringL2.LvlConverterTool = FakeLvl1RoIatFixedEtaPhi("FakeLvl1RoIatFixedEtaPhi") - steeringL2.LvlConverterTool.FakeEmRoiPhi=0.0 - steeringL2.LvlConverterTool.FakeEmRoiEta=0.0 - steeringL2.LvlConverterTool.FakeEmRoiLabel="EM10" - if not doTimer: - steeringL2.LvlConverterTool.OutputLevel = DEBUG - steeringL2.OutputLevel = VERBOSE - else: - steeringL2.LvlConverterTool.OutputLevel = ERROR - steeringL2.OutputLevel = ERROR - topSequence += steeringL2 - -steeringEF = TrigSteer_EF("TrigSteer_EF", hltFile="newMenu.xml") -if doTimer: - steeringEF.OutputLevel = ERROR -else: - steeringEF.OutputLevel = INFO -topSequence += steeringEF - -#fix to get rid of EF exceptions -excSvc=Service("ExceptionSvc") -excSvc.Catch="LIST" -excSvc.Algorithms=[ "TrigSteer_EF=SUCCESS"] - -# ------------------------------------------------------------- -theApp.EvtMax = 1000 -if not doReadBS: - ServiceMgr.EventSelector.InputCollections = ["/afs/cern.ch/atlas/maxidisk/d38/ID_ValidationData/testIdeal_07.005200.T1_McAtNlo_Jimmy.digit.RDO.v12000201_tid002760._00002.pool.root.1"] - #ServiceMgr.EventSelector.InputCollections = ["/afs/cern.ch/atlas/maxidisk/d89/InDetRecRDO.root"] -else: - EventSelector.Input = ["/afs/cern.ch/atlas/project/trigger/pesa-sw/releases/data/daq.csc13.0000000.Single.Stream.LB0000.Athena._0001.data"] - -# ------------------------------------------------------------ - -# switch off history service -ServiceMgr.StoreGateSvc.ActivateHistory = False -ServiceMgr.StoreGateSvc.Dump = False - -# ------------------------------------------------------------ -# get stack dump -# ------------------------------------------------------------ - -ServiceMgr.CoreDumpSvc.FatalHandler = 438 - -if doAuditors: - # load AuditorSvc - theAuditorSvc = AuditorSvc() - - # write out summary of the memory usage - # number of events to be skip to detect memory leak - # 20 is default. May need to be made larger for complete jobs. - theAuditorSvc.Auditors += [ "ChronoAuditor"] - ServiceMgr.ChronoStatSvc.NumberOfSkippedEventsForMemStat = 5 - # memory auditors - theAuditorSvc.Auditors += [ "MemStatAuditor" ] - MemStatAuditor = theAuditorSvc.auditor( "MemStatAuditor" ) - MemStatAuditor.OutputLevel = WARNING - -# write out a short message upon entering or leaving each algorithm -if doNameAuditor: - theAuditorSvc.Auditors += [ "NameAuditor" ] - theApp.AuditAlgorithms = True - theApp.AuditServices = True - # - # Display detailed size and timing statistics for writing and reading - # -if doWriteESD or doWriteAOD: - AthenaPoolCnvSvc = Service( "AthenaPoolCnvSvc" ) - AthenaPoolCnvSvc.UseDetailChronoStat = True - -#-------------------------------------------------------------- -# run JiveXML -#-------------------------------------------------------------- -if doJiveXML: - include ("JiveXML/JiveXML_jobOptionBase.py") - include ("JiveXML/DataTypes_InDet.py") - - from InDetJiveXML.InDetJiveXMLConf import JiveXML__SiClusterRetriever - theSiClusterRetriever = JiveXML__SiClusterRetriever (name = "SiClusterRetriever") - theSiClusterRetriever.SCTClusters = "SCT_TrigClusters" - print theSiClusterRetriever - - from InDetJiveXML.InDetJiveXMLConf import JiveXML__SiSpacePointRetriever - theSiSpacePointRetriever = JiveXML__SiSpacePointRetriever (name = "SiSpacePointRetriever") - theSiSpacePointRetriever.PixelSpacePoints = "PixelTrigSpacePoints" - theSiSpacePointRetriever.SCTSpacePoints = "SCT_TrigSpacePoints" - - from InDetJiveXML.InDetJiveXMLConf import JiveXML__TRTRetriever - theTRTRetriever = JiveXML__TRTRetriever (name = "TRTRetriever") - theTRTRetriever.TRTClusters = "TRT_TrigDriftCircles" - - from TrkJiveXML.TrkJiveXMLConf import JiveXML__TrackRetriever - theTrackRetriever = JiveXML__TrackRetriever (name = "TrackRetriever") - theTrackRetriever.DoWriteHLT = True - - if doTruth: - readG3 = False - include ("JiveXML/DataTypes_Truth.py") - -# ------------------------------------------------------------ -# persistency -# ------------------------------------------------------------ - -if doWriteAOD: - # create stream - theApp.TopAlg += [ "AthenaOutputStream/StreamAOD" ] - StreamAOD = Algorithm( "StreamAOD" ) - StreamAOD.EvtConversionSvc = "AthenaPoolCnvSvc" - - # Define the output file name - StreamAOD.OutputFile = "InDetTrigRecAOD.root" - - #force read of input data to write in output data - - # EventInfo - needs to be always saved. - StreamAOD.ItemList=[] - StreamAOD.ItemList+=["EventInfo#*"] - include ( "InDetTrigRecExample/WriteTrigInDetAOD.py" ) - -if doWriteESD: - # create stream - theApp.TopAlg += [ "AthenaOutputStream/StreamESD" ] - StreamESD = Algorithm( "StreamESD" ) - StreamESD.EvtConversionSvc = "AthenaPoolCnvSvc" - - # Define the output file name - StreamESD.OutputFile = "InDetTrigRecESD.root" - - #force read of input data to write in output data - - # EventInfo - needs to be always saved. - StreamESD.ItemList=[] - StreamESD.ItemList+=["EventInfo#*"] - include ( "InDetTrigRecExample/WriteTrigInDetESD.py" ) - -if doMonitoring or doTimer: - from GaudiSvc.GaudiSvcConf import THistSvc - ServiceMgr += THistSvc() - ServiceMgr.THistSvc.Output = [ "EXPERT DATAFILE='expert-monitoring.root' OPT='RECREATE'" ] - -if doTimer: - for algo in steeringEF.getChildren(): - print "HERE", algo.getFullName() - algo.doTiming = True - -#######################################################33 -# -# Testing options -#######################################################33 -if not doTruth: - PixelClustering_EF.EtaHalfWidth = 3.0 - PixelClustering_EF.PhiHalfWidth = 3.14159 - # - SCTClustering_EF.EtaHalfWidth = 3.0 - SCTClustering_EF.PhiHalfWidth = 3.14159 - # - TRTDriftCircleMaker_EF.EtaHalfWidth = 3.0 - TRTDriftCircleMaker_EF.PhiHalfWidth = 3.14159 - # - SiTrigSpacePointFinder_EF.EtaHalfWidth = 3.0 - SiTrigSpacePointFinder_EF.PhiHalfWidth = 3.14159 - # - SiTrigTrackFinder_EF.EtaHalfWidth = 3.0 - SiTrigTrackFinder_EF.PhiHalfWidth = 3.14159 - -# ------------------------------------------------------------ -# useful debugging/info tools -# ------------------------------------------------------------ -for algo in steeringEF.getChildren(): - if not doTimer: - algo.OutputLevel = INFO - else: - algo.OutputLevel = ERROR - -Algorithm("AANTupleStream").OutputLevel=DEBUG - -if doCBNT: - from GaudiSvc.GaudiSvcConf import THistSvc - ServiceMgr += THistSvc() - theApp.Dlls += [ "AnalysisTools" ] - AANTupleStream = Algorithm( "AANTupleStream" ) - #AANTupleStream.ExtraRefNames = [ "StreamESD","StreamRDO" ] - AANTupleStream.ExistDataHeader = False - AANTupleStream.TreeName = "CollectionTree" - AANTupleStream.WriteInputDataHeader = True - RootNtupleOutput = "ntuple.root" - #RootNtupleOutput = "timing-histograms.root" - exec 'AANTupleStream.OutputName= \'%s\' ' % RootNtupleOutput - AANTupleStream.OutputName = RootNtupleOutput - - exec 'ServiceMgr.THistSvc.Output += ["AANT DATAFILE=\'%s\' OPT=\'RECREATE\'"] ' % RootNtupleOutput - - - include( "CBNT_Athena/CBNT_AthenaAware_jobOptions.py" ) - - theApp.TopAlg += [ "AANTupleStream" ] - #include( "RecExCommon/CBNT_Truth_jobOptions.py" ) - include("TrigNtInDet/jobOfragment_TrigNtInDet.py") - - CBNT_TrigEFTrackParticle = Rec__CBNTAA_TrigEFTrackParticle() - print CBNT_TrigEFTrackParticle - - CBNT_TrigEFTrackParticle.doDetailedTruth = True - CBNT_TrigEFTrackParticle.doTruthCBNT = True - CBNT_TrigEFTrackParticle.OutputLevel=DEBUG - CBNT_TrigEFTrackParticle.doExtrap = True - - CBNT_TrigEFVxPrimary = InDet__CBNTAA_TrigEFVxPrimary() - CBNT_TrigEFVxPrimary.OutputLevel=DEBUG - -print topSequence diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/share/plotHistos.C b/InnerDetector/InDetExample/InDetTrigRecExample/share/plotHistos.C deleted file mode 100644 index 3f553b6c6e7..00000000000 --- a/InnerDetector/InDetExample/InDetTrigRecExample/share/plotHistos.C +++ /dev/null @@ -1,88 +0,0 @@ -void plotHistos() -{ - const Color_t padColor = 0; - const Color_t canColor = 920; - const Color_t histoColor = 600; - - TFile f("EFID_RTT_Histos.root"); - - //------------------------------- Efficiency plots ---------------------------------------------------------- - - TCanvas *c1 = new TCanvas("c1","Histogram Drawing Options",200,10,700,900); - c1->SetFillColor(canColor); - - TPad *pad1 = new TPad("pad1","The pad with the function",0.03,0.51,0.97,0.92,21); - pad1->SetFillColor(padColor); - - TPad *pad2 = new TPad("pad2","The pad with the histogram",0.03,0.02,0.97,0.49,21); - pad2->SetFillColor(padColor); - - pad1->Draw(); - pad2->Draw(); - - pad2->cd(); - TH1F* effvsd0 = (TH1F*)f.Get("Efficiency vs. d0"); - effvsd0->GetXaxis()->SetTitle("d0 [mm]"); - effvsd0->GetYaxis()->SetTitle("Efficiency"); - effvsd0->SetLineColor(histoColor); - effvsd0->SetLineWidth(2); - effvsd0->Draw(); - - pad1->cd(); - TH1F* effvsz0 = (TH1F*)f.Get("Efficiency vs. z0"); - effvsz0->GetXaxis()->SetTitle("z0 [mm]"); - effvsz0->GetYaxis()->SetTitle("Efficiency"); - effvsz0->SetLineColor(histoColor); - effvsz0->SetLineWidth(2); - effvsz0->GetYaxis()->SetRangeUser(0.4,1.1); - effvsz0->Draw(); - - c1->Update(); - c1->Print("Efficiency.eps"); - - //------------------------------- Fake rate plots ---------------------------------------------------------- - pad2->cd(); - TH1F* fakeRatevsd0 = (TH1F*)f.Get("Fake_Rate vs. d0"); - fakeRatevsd0->GetXaxis()->SetTitle("d0 [mm]"); - fakeRatevsd0->GetYaxis()->SetTitle("Fake rate"); - fakeRatevsd0->SetLineColor(histoColor); - fakeRatevsd0->SetLineWidth(2); - fakeRatevsd0->GetYaxis()->SetRangeUser(0.,1.1); - fakeRatevsd0->Draw(); - pad2->Update(); - - pad1->cd(); - TH1F* fakeRatevsz0 = (TH1F*)f.Get("Fake_Rate vs. z0"); - fakeRatevsz0->GetXaxis()->SetTitle("z0 [mm]"); - fakeRatevsz0->GetYaxis()->SetTitle("Fake rate"); - fakeRatevsz0->SetLineColor(histoColor); - fakeRatevsz0->SetLineWidth(2); - fakeRatevsz0->GetYaxis()->SetRangeUser(0.,0.4); - fakeRatevsz0->Draw(); - pad1->Update(); - - c1->Update(); - c1->Print("FakeRate.eps"); - - //------------------------------------- Resolution ---------------------------------------------------------- - TH1F* resEta = (TH1F*)f.Get("dEta_of_Matched_Tracks"); - resEta->GetXaxis()->SetTitle("#eta_{EF} - #eta_{Off}"); - resEta->GetYaxis()->SetTitle("Number of tracks"); - - pad1->cd(); - resEta->SetFillColor(histoColor); - resEta->Draw(); - pad1->Update(); - - TH1F* resPhi = (TH1F*)f.Get("dPhi_of_Matched_Tracks"); - resPhi->GetXaxis()->SetTitle("#phi_{EF} - #phi_{Off}"); - resPhi->GetYaxis()->SetTitle("Number of tracks"); - - pad2->cd(); - resPhi->SetFillColor(histoColor); - resPhi->Draw(); - pad2->Update(); - - c1->Update(); - c1->Print("Resolution.eps"); -} diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/share/testEFID_RTT_InDetTrigRecExample.py b/InnerDetector/InDetExample/InDetTrigRecExample/share/testEFID_RTT_InDetTrigRecExample.py deleted file mode 100644 index d98ba30036f..00000000000 --- a/InnerDetector/InDetExample/InDetTrigRecExample/share/testEFID_RTT_InDetTrigRecExample.py +++ /dev/null @@ -1,49 +0,0 @@ -#RTT wrapper around testEFID_basic.py -# - the name follows a convention for RTT tests -# -# 26/03/2008 Jiri Masik - - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags - -if athenaCommonFlags.FilesInput()==[]: - athenaCommonFlags.FilesInput=[ - "root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/proj-sit/vchavda/TrigInDetValidation_bjet5200/mc10_14TeV.105568.ttbar_Pythia.digit.RDO.e662_s1107_d459_tid254598_00/RDO.254598._000016.pool.root.1", - ] - -def resetSigs(): - print 'keep full menu' - -chainNames = [ -# "Offline", - "Truth", -# "Muons", -# "Electrons", -# "Taus", - #egamma - "L2_e22vh_medium_IDTrkNoCut:TrigL2SiTrackFinder_eGamma:0", - "L2_e22vh_medium_IDTrkNoCut:TrigL2SiTrackFinder_eGamma:1", - "L2_e22vh_medium_IDTrkNoCut:TrigL2SiTrackFinder_eGamma:2", - "L2_e22vh_medium_IDTrkNoCut:TrigL2SiTrackFinder_eGamma:3", - "EF_e22vh_medium_IDTrkNoCut:InDetTrigParticleCreation_Electron_EFID", - # #mu - "L2_mu22_IDTrkNoCut_tight:TrigL2SiTrackFinder_Muon:0", - "L2_mu22_IDTrkNoCut_tight:TrigL2SiTrackFinder_Muon:1", - "L2_mu22_IDTrkNoCut_tight:TrigL2SiTrackFinder_Muon:2", - "L2_mu22_IDTrkNoCut_tight:TrigL2SiTrackFinder_Muon:3", - "EF_mu22_IDTrkNoCut_tight:InDetTrigParticleCreation_Muon_EFID", - # #tau - "L2_tau29_IDTrkNoCut:TrigL2SiTrackFinder_Tau:0", - "L2_tau29_IDTrkNoCut:TrigL2SiTrackFinder_Tau:1", - "L2_tau29_IDTrkNoCut:TrigL2SiTrackFinder_Tau:2", - "L2_tau29_IDTrkNoCut:TrigL2SiTrackFinder_Tau:3", - "EF_tau29_IDTrkNoCut:InDetTrigParticleCreation_Tau_EFID", - # #bjet - "L2_b50_NoCut_j50_c4cchad:TrigL2SiTrackFinder_Jet:0", - "L2_b50_NoCut_j50_c4cchad:TrigL2SiTrackFinder_Jet:1", - "L2_b50_NoCut_j50_c4cchad:TrigL2SiTrackFinder_Jet:2", - "L2_b50_NoCut_j50_c4cchad:TrigL2SiTrackFinder_Jet:3", - "EF_b55_NoCut_j55_a4tchad:InDetTrigParticleCreation_Bjet_EFID" -] - -include("TrigInDetValidation/TrigInDetValidation_RTT_Common.py") diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/share/testEFID_basic.py b/InnerDetector/InDetExample/InDetTrigRecExample/share/testEFID_basic.py deleted file mode 100644 index c066ca1f1d4..00000000000 --- a/InnerDetector/InDetExample/InDetTrigRecExample/share/testEFID_basic.py +++ /dev/null @@ -1,225 +0,0 @@ -################################################################################ -# -# minimal jO to run EFID with a little overhead from other subsystems -# (in terms of reconstruction and detectors involved) -# based on RecExCommon like jO to run the trigger and functionality of -# the former InDetTrigRecExample/jobOptionsNewSteering.py -# -# by default only EF ID is executed on FakeLVL1 RoIs (LVL2 is dummy) -# -# 25/01/2008 Jiri Masik -# -################################################################################ - -#these are the defaults, can be modified by RTT -if not ('EvtMax' in dir()): - EvtMax=10 -if not ('OutputLevel' in dir()): - OutputLevel=INFO -if not ('doReadBS' in dir()): - doReadBS=False -if not ('minimalSetup' in dir ()): - minimalSetup=True - -#the performance package may modify -# if not ('useROOTNtuple' in dir()): -# useROOTNtuple=True -# if not ('RootNtupleOutput' in dir()): -# RootNtupleOutput="ntupleEFIDAA.root" -# if not ('doWriteESD' in dir()): -# doWriteESD=False -# if not ('doESD' in dir()): -# doESD=False - - -#PoolRDOInput=["/afs/cern.ch/atlas/offline/data/testfile/calib1_csc11.005200.T1_McAtNlo_Jimmy.digit.RDO.v12000301_tid003138._00016_extract_10evt.pool.root"] -#BSRDOInput=["/afs/cern.ch/atlas/project/trigger/pesa-sw/releases/data/daq.csc13.lumi1E31.May7.Rel14.1.0.LB0000.Athena._0001.data"] - - - - -############################### -doTruth = True -if doReadBS: - ReadBS=True - doTruth = False - #BSRDOInput=["/afs/cern.ch/atlas/project/trigger/pesa-sw/releases/data/daq.csc13.lumi1E31.May7.Rel14.1.0.LB0000.Athena._0001.data"] - #BSRDOInput=["/afs/cern.ch/atlas/project/trigger/pesa-sw/releases/data/daq.csc13.lumi1E31.May7.Rel14.1.0.LB0000.Athena._0001.data"] - - -doTrigger=True - - -doWriteAOD=False -doWriteTAG=False -doAOD=False -doTAG=False - - -#modify standard menu -def clearsigs(): - print 'jmasik clearsigs' - TriggerFlags.EgammaSlice.signatures = ['e10_passL2'] - -def resetLowerChain(triggerPythonConfig): - print 'jmasik - resetLowerChain' - for chain in triggerPythonConfig.theEFHLTChains: - print 'chain: ', chain.chain_name - if chain.chain_name == 'EF_e10': - chain.lower_chain_name='' - - -from AthenaCommon.GlobalFlags import globalflags -# --- default is atlas geometry -globalflags.DetGeo = 'atlas' -# --- set defaults -if 'doReadBS' in dir() and doReadBS: - globalflags.InputFormat = 'bytestream' -else: - globalflags.InputFormat = 'pool' - - -#----------------------------------------------------------- -include("RecExCommon/RecExCommon_flags.py") -#----------------------------------------------------------- -TriggerFlags.readHLTconfigFromXML=False -TriggerFlags.readLVL1configFromXML=False - -TriggerFlags.enableMonitoring = [ 'Validation', 'Time', 'Log' ] - -#override menu -def ElectronOnly(): - TriggerFlags.Slices_all_setOff() - - # Enable electron slice TriggerFlags.EgammaSlice.setAll() - TriggerFlags.EgammaSlice.unsetCalo() - TriggerFlags.EgammaSlice.signatures = ["e5_NoCut","e20_medium_IDTrkNoCut"] - - -from TriggerMenuPython.GenerateMenu import GenerateMenu -GenerateMenu.overwriteSignaturesWith(ElectronOnly) - - -# -from InDetTrigRecExample.InDetTrigFlags import InDetTrigFlags -#InDetTrigFlags.doTruth = TriggerFlags.doTruth() -from RecExConfig.RecFlags import rec -InDetTrigFlags.doTruth = rec.doTruth() -InDetTrigFlags.doNewTracking = True -InDetTrigFlags.doBackTracking = False -InDetTrigFlags.trackFitterType = 'GlobalChi2Fitter' -#InDetTrigFlags.trackFitterType = 'GaussianSumFilter' -#InDetTrigFlags.trackFitterType = 'KalmanFitter' -print InDetTrigFlags -# - - - - -#TriggerFlags.readHLTconfigFromXML=True -#TriggerFlags.readLVL1configFromXML=True -#TriggerFlags.inputHLTconfigFile = 'newMenu.xml' -#TriggerFlags.inputLVL1configFile = 'lvl1Menu.xml' - -TriggerFlags.enableMonitoring = [ 'Validation', 'Time', 'Log' ] - - -# #menu - - -########## - -from AthenaCommon.GlobalFlags import globalflags -# --- default is atlas geometry -globalflags.DetGeo = 'atlas' -# --- set defaults -if 'doReadBS' in dir() and doReadBS: - globalflags.InputFormat = 'bytestream' -else: - globalflags.InputFormat = 'pool' - - -from AthenaCommon.DetFlags import DetFlags -DetFlags.ID_setOn() -if minimalSetup: - TriggerFlags.doMuon=False - DetFlags.Calo_setOff() - DetFlags.Muon_setOff() - -DetFlags.digitize.all_setOff() #to avoid TrigEgammaRec_NoIDEF_eGamma:ERROR could not - # get handle to CaloNoiseToolDefault - -#------------ This is for ATN/RTT tests only --------- -#TriggerFlags.triggerMenuSetup = 'default' - -#-------------end of flag for tests------------------- - -#------------ This is a temporary fix --------------- -TriggerFlags.abortOnConfigurationError=True -#-------------end of temporary fix------------------- - -#from TriggerJobOpts.TriggerGetter import TriggerGetter - - - -#----------------------------------------------------------- -include("RecExCommon/RecExCommon_topOptions.py") -#----------------------------------------------------------- - -from InDetTrigRecExample.EFInDetConfig import * - - -#no truth ->no fakeRoIs in BS -if not doReadBS: - electronAlgs = TrigEFIDInsideOut_Electron() -else: - electronAlgs = TrigEFIDInsideOut_FullScan() - -########## - -########## - -jobproperties.PerfMonFlags.doMonitoring = True - -MessageSvc.debugLimit = 10000000 -MessageSvc.Format = "% F%48W%S%7W%R%T %0W%M" - -#get rid of messages and increase speed -Service ("StoreGateSvc" ).ActivateHistory=False - -from AthenaCommon.AlgSequence import AlgSequence -job = AlgSequence() - -print job - -steeringL2 = job.TrigSteer_L2 - -if rec.doTruth(): - from TrigFake.TrigFakeConf import FakeLvl1RoIfromKine - steeringL2.LvlConverterTool = FakeLvl1RoIfromKine("FakeLvl1RoIfromKine") - steeringL2.LvlConverterTool.FakeEmTauRoiParticleIDs=[11,-11] - steeringL2.LvlConverterTool.FakeEmTauRoiPtMin=25*GeV - steeringL2.LvlConverterTool.FakeEmRoiLabel="EM7" - steeringL2.LvlConverterTool.McEventCollectionName = "TruthEvent" - steeringL2.LvlConverterTool.OutputLevel = DEBUG - #steeringL2.OutputLevel = VERBOSE -else: - from TrigFake.TrigFakeConf import FakeLvl1RoIatFixedEtaPhi - steeringL2.LvlConverterTool = FakeLvl1RoIatFixedEtaPhi("FakeLvl1RoIatFixedEtaPhi") - steeringL2.LvlConverterTool.FakeEmRoiPhi=0.0 - steeringL2.LvlConverterTool.FakeEmRoiEta=0.0 - steeringL2.LvlConverterTool.FakeEmRoiLabel="EM7" - if not True: - steeringL2.LvlConverterTool.OutputLevel = DEBUG - #steeringL2.OutputLevel = VERBOSE - else: - steeringL2.LvlConverterTool.OutputLevel = ERROR - #steeringL2.OutputLevel = ERROR - - -steeringEF = job.TrigSteer_EF - - -# -if 0 and doReadBS: - ServiceMgr.ByteStreamCnvSvc.IsSimulation = True diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/test/InDetTrigRecExample_TestConfiguration.xml b/InnerDetector/InDetExample/InDetTrigRecExample/test/InDetTrigRecExample_TestConfiguration.xml deleted file mode 100755 index 6b5ec202fbd..00000000000 --- a/InnerDetector/InDetExample/InDetTrigRecExample/test/InDetTrigRecExample_TestConfiguration.xml +++ /dev/null @@ -1,106 +0,0 @@ -<?xml version="1.0"?> -<!DOCTYPE unifiedTestConfiguration SYSTEM "http://www.hep.ucl.ac.uk/atlas/AtlasTesting/DTD/unifiedTestConfiguration.dtd"> -<unifiedTestConfiguration> - - <atn /> - <kv /> - - <rtt xmlns="http://www.hep.ucl.ac.uk/atlas/AtlasTesting/rtt"> - <rttContactPerson>Jiri.Masik@cern.ch</rttContactPerson> - <mailto>Jiri.Masik@cern.ch</mailto> - <refRelease>14.5.0</refRelease> - - <jobList> - <classification> - <displayClass>OfflineValidation</displayClass> - <displayProcess>Reco</displayProcess> - <displayComponent>Trig-Common</displayComponent> - </classification> - <athena userJobId="IDTRE_testEFID_basic_top"> - <doc>testEFID_basic RecExCommon on 450 top events from RDO</doc> - <commandLineString></commandLineString> - <options>testEFID_RTT_InDetTrigRecExample.py</options> - <package>InnerDetector/InDetExample/InDetTrigRecExample</package> - <group>InDetTrigRecExample</group> - <queue>medium</queue> - <dataset>/eos/atlas/atlascerngroupdisk/proj-sit/vchavda/TrigInDetValidation_bjet5200/mc10_14TeV.105568.ttbar_Pythia.digit.RDO.e662_s1107_d459_tid254598_00/RDO.254598._000016.pool.root.1 </dataset> - <dataset>/eos/atlas/atlascerngroupdisk/proj-sit/vchavda/TrigInDetValidation_bjet5200/mc10_14TeV.105568.ttbar_Pythia.digit.RDO.e662_s1107_d459_tid254598_00/RDO.254598._000019.pool.root.1 </dataset> - <dataset>/eos/atlas/atlascerngroupdisk/proj-sit/vchavda/TrigInDetValidation_bjet5200/mc10_14TeV.105568.ttbar_Pythia.digit.RDO.e662_s1107_d459_tid254598_00/RDO.254598._000028.pool.root.1 </dataset> - <dataset>/eos/atlas/atlascerngroupdisk/proj-sit/vchavda/TrigInDetValidation_bjet5200/mc10_14TeV.105568.ttbar_Pythia.digit.RDO.e662_s1107_d459_tid254598_00/RDO.254598._000031.pool.root.1 </dataset> - <dataset>/eos/atlas/atlascerngroupdisk/proj-sit/vchavda/TrigInDetValidation_bjet5200/mc10_14TeV.105568.ttbar_Pythia.digit.RDO.e662_s1107_d459_tid254598_00/RDO.254598._000035.pool.root.1 </dataset> - <dataset>/eos/atlas/atlascerngroupdisk/proj-sit/vchavda/TrigInDetValidation_bjet5200/mc10_14TeV.105568.ttbar_Pythia.digit.RDO.e662_s1107_d459_tid254598_00/RDO.254598._000046.pool.root.1 </dataset> - </athena> - -<!-- - <chain> - <chainName>TrfTransformValidationChain</chainName> - <sequential> - <chainElement> - <jobTransform userJobId="IDTRE_cosm_trf"> - <doc>Cosmics no field RawToRaw,RawToESD</doc> - <jobTransformJobName>NoBFieldData</jobTransformJobName> - <jobTransformCmd> - RTT_NoBField_transform.sh - </jobTransformCmd> - <group>TrfInDetTrigRecExample</group> - <queue>medium</queue> - </jobTransform> - <chainfileout>data09_cosmag.00121513.ESD.pool.root</chainfileout> - </chainElement> - - <chainElement> - <athena userJobId="IDTRE_cosm_post"> - <doc>Proccess ESD files produced in trf_transformation</doc> - <commandLineString></commandLineString> - <options>testEFID_RTT_ESDAnalysis.py</options> - <package>InnerDetector/InDetExample/InDetTrigRecExample</package> - <group>InDetTrigESDVal</group> - <queue>medium</queue> - <chaindataset_info> - <dc2 /> - <chaindatasetName>data09_cosmag.00121513.ESD.pool.root</chaindatasetName> - <dataset_info> - <dc2 /> - <datasetName>/castor/cern.ch/grid/atlas/tzero/prod1/perm/data09_cos/physics_IDCosmic/0121513/data09_cos.00121513.physics_IDCosmic.recon.ESD.f118/data09_cos.00121513.physics_IDCosmic.recon.ESD.f118._lb0000._SFO-1._0001.1</datasetName> - </dataset_info> - </chaindataset_info> - </athena> - </chainElement> - </sequential> - </chain> ---> - </jobList> - - - <jobGroups> - <jobGroup name="AthenaInDetTrigRecExample" parent="Athena"> - <keepFilePattern>ntuple*.root</keepFilePattern> - </jobGroup> - - <jobGroup name="TrfInDetTrigRecExample" parent="Transform"> - <keepFilePattern>*.checkFile</keepFilePattern> - <action> - <modulename>RttLibraryTools</modulename> - <testname>CheckFileRunner</testname> - </action> - </jobGroup> - - <jobGroup name="AthenaInDetTrigESDVal" parent="Athena"> - <keepFilePattern>EFID_RTT_Histos.root</keepFilePattern> - <keepFilePattern>*.eps</keepFilePattern> - <auxFilePattern>plotHistos.C</auxFilePattern> - <action> - <modulename>RttLibraryTools</modulename> - <testname>ROOTMacroRunner</testname> - <arg> - <argname>macro</argname> - <argvalue>plotHistos.C</argvalue> - </arg> - </action> - </jobGroup> - </jobGroups> - - </rtt> - -</unifiedTestConfiguration> - diff --git a/Reconstruction/RecExample/RecExCommon/share/RecExCommon_topOptions.py b/Reconstruction/RecExample/RecExCommon/share/RecExCommon_topOptions.py index 9e67abc9d9f..a0902891503 100644 --- a/Reconstruction/RecExample/RecExCommon/share/RecExCommon_topOptions.py +++ b/Reconstruction/RecExample/RecExCommon/share/RecExCommon_topOptions.py @@ -796,14 +796,6 @@ pdr.flag_domain('output') if rec.doCBNT(): protectedInclude( "RecExCommon/CBNT_config.py" ) -# trigger extension to the TrkValNtuple (it needs to be included after TrkValNtuple) from Jiri Masik and Clemencia Mora -# test if ID is on also (might not be sufficient) -if recAlgs.doTrigger() and DetFlags.detdescr.ID_on() : - if globalflags.DataSource() == 'data'and globalflags.InputFormat == 'bytestream': - from InDetRecExample.InDetJobProperties import InDetFlags - from InDetTrigRecExample.InDetTrigFlags import InDetTrigFlags - if InDetFlags.doTrkNtuple() and InDetTrigFlags.doTrkNtuple(): - protectedInclude("InDetTrigRecExample/InDetTrigRecNtupleCreation.py") #----------------------------------------------------------------------------- # Virtual Point1 Display -- GitLab From 7152cbe7883852c3c1f57dca3ea20dfddde70a06 Mon Sep 17 00:00:00 2001 From: Rafal Bielski <rafal.bielski@cern.ch> Date: Tue, 28 Jul 2020 18:39:55 +0000 Subject: [PATCH 287/459] New separate RDOtoRDOTrigger MT transform skeleton without any RecExCommon includes --- .../AnalysisTriggerAlgs/CMakeLists.txt | 2 +- .../python/AnalysisTriggerAlgsCAConfig.py | 27 + .../python/AnalysisTriggerAlgsConfig.py | 2 - .../RecExConfig/python/AutoConfiguration.py | 2 +- .../RecJobTransforms/CMakeLists.txt | 8 +- .../share/skeleton.RDOtoRDOtrigger.py | 289 +--- .../share/skeleton.RDOtoRDOtriggerLegacy.py | 226 +++ .../share/skeleton.RDOtoRDOtriggerMT.py | 83 + .../share/ref_RDOtoRDOTrig_mt1_build.ref | 1482 ++++++++--------- .../TriggerJobOpts/python/TriggerConfig.py | 36 +- .../TriggerJobOpts/share/runHLT_standalone.py | 3 +- 11 files changed, 1117 insertions(+), 1043 deletions(-) create mode 100644 PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py create mode 100644 Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtriggerLegacy.py create mode 100644 Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtriggerMT.py diff --git a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/CMakeLists.txt b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/CMakeLists.txt index bf57ddffe52..38b32a04abd 100644 --- a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/CMakeLists.txt +++ b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/CMakeLists.txt @@ -38,5 +38,5 @@ atlas_add_component( AnalysisTriggerAlgs TrigT1Result ) # Install files from the package: -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) atlas_install_joboptions( share/*.py ) diff --git a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py new file mode 100644 index 00000000000..7f84ee777dd --- /dev/null +++ b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py @@ -0,0 +1,27 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator +from AthenaConfiguration.ComponentFactory import CompFactory + +def RoIBResultToxAODCfg(flags, seqName=''): + acc = ComponentAccumulator(sequenceName=seqName) + alg = CompFactory.RoIBResultToxAOD('RoIBResultToxAOD') + acc.addEventAlgo(alg, sequenceName=seqName) + + if flags.Input.Format == 'BS': + from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg + typeNames = [ + 'xAOD::JetElementContainer/JetElements', 'xAOD::JetElementAuxContainer/JetElementsAux.', + 'xAOD::CPMTowerContainer/CPMTowers', 'xAOD::CPMTowerAuxContainer/CPMTowersAux.'] + acc.merge(ByteStreamReadCfg(flags, typeNames)) + + # Create output list to return for use by the caller + outputList = [ + ("xAOD::MuonRoIContainer", alg.xAODKeyMuon), + ("xAOD::EmTauRoIContainer", alg.xAODKeyEmTau), + ("xAOD::EnergySumRoI", alg.xAODKeyEsum), + ("xAOD::JetEtRoI", alg.xAODKeyJetEt), + ("xAOD::JetRoIContainer", alg.xAODKeyJet), + ] + + return acc, outputList diff --git a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsConfig.py b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsConfig.py index 12f29133b07..796119d9195 100644 --- a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsConfig.py +++ b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsConfig.py @@ -38,8 +38,6 @@ class DefaultRoIBResultToAOD( genConfRoIBResultToAOD ): # # Set up the L1Calo tools: # - from AthenaCommon.AppMgr import ToolSvc - log.info( "will add L1CPMTools instance to the algorithm" ) self.L1CPMTools = CfgMgr.LVL1__L1CPMTools( 'L1CPMTools' ) self.L1CPMTools.LVL1ConfigSvc = lvl1ConfigSvc diff --git a/Reconstruction/RecExample/RecExConfig/python/AutoConfiguration.py b/Reconstruction/RecExample/RecExConfig/python/AutoConfiguration.py index d2bdce1c242..8e4646f26a9 100644 --- a/Reconstruction/RecExample/RecExConfig/python/AutoConfiguration.py +++ b/Reconstruction/RecExample/RecExConfig/python/AutoConfiguration.py @@ -701,7 +701,7 @@ def ConfigureInputType(): rec.doESD=False logAutoConfiguration.info ("setting rec.readESD=%s "%rec.readESD() ) logAutoConfiguration.info ("setting rec.doAOD=%s "%rec.doAOD() ) - elif ItemInListStartsWith ("Stream1", streamsName) or ItemInListStartsWith ("StreamRDO", streamsName) or OverlapLists(streamsName,listRAWtoDPD): + elif ItemInListStartsWith ("Stream1", streamsName) or ItemInListStartsWith ("StreamRDO", streamsName) or ItemInListStartsWith ("OutputStreamRDO", streamsName) or OverlapLists(streamsName,listRAWtoDPD): logAutoConfiguration.info("Input RDO detected") rec.readRDO=True rec.readESD=False diff --git a/Reconstruction/RecJobTransforms/CMakeLists.txt b/Reconstruction/RecJobTransforms/CMakeLists.txt index 7171f831265..d5819bc9aad 100644 --- a/Reconstruction/RecJobTransforms/CMakeLists.txt +++ b/Reconstruction/RecJobTransforms/CMakeLists.txt @@ -10,8 +10,12 @@ atlas_depends_on_subdirs( PUBLIC Tools/PyJobTransforms Tools/PyJobTransformsCore ) -# Install files from the package: +# Install python modules atlas_install_python_modules( python/*.py ) -atlas_install_joboptions( share/*.py ) +# Install RDOtoRDOtrigger job opts with flake8 check +atlas_install_joboptions( share/skeleton.RDOtoRDOtrigger*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) +# Install other job opts without flake8 check +atlas_install_joboptions( share/*.py EXCLUDE share/*RDOtoRDOtrigger*.py ) +# Install scripts atlas_install_runtime( scripts/*.py ) diff --git a/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtrigger.py b/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtrigger.py index eeb8ee4b5e8..88390fdf027 100644 --- a/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtrigger.py +++ b/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtrigger.py @@ -1,290 +1,9 @@ # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -import six - -#################################################################### -# -# Skeleton top job options for RDO->RDOprime (RDO with trigger done) -# -#=================================================================== - -#Common job options disable most RecExCommon by default. Re-enable below on demand. -include("RecJobTransforms/CommonRecoSkeletonJobOptions.py") -# disable ESD object making, but still enable trigger -rec.doESD.set_Value_and_Lock(False) -rec.doCalo.set_Value_and_Lock(True) -rec.doInDet.set_Value_and_Lock(True) -rec.doMuon.set_Value_and_Lock(True) -rec.doJetMissingETTag.set_Value_and_Lock(False) -rec.doEgamma.set_Value_and_Lock(False) -rec.doMuonCombined.set_Value_and_Lock(False) -rec.doTau.set_Value_and_Lock(False) -rec.doTrigger.set_Value_and_Lock(True) -rec.doRDOTrigger.set_Value_and_Lock(True) -recAlgs.doTrigger.set_Value_and_Lock(True) -rec.doMonitoring.set_Value_and_Lock(False) -from AthenaMonitoring.DQMonFlags import DQMonFlags -DQMonFlags.doMonitoring.set_Value_and_Lock(False) -DQMonFlags.doLArMon.set_Value_and_Lock(False) - -#disable offline ID configuration and reco -from InDetRecExample.InDetJobProperties import InDetFlags -InDetFlags.doNewTracking.set_Value_and_Lock(False) - -from AthenaCommon.CFElements import findAlgorithm, findOwningSequence, findSubSequence -from AthenaCommon.Logging import logging -recoLog = logging.getLogger('rdo_to_rdotrigger') -recoLog.info( '****************** STARTING RDO->RDOTrigger MAKING *****************' ) - -## Input -if hasattr(runArgs,"inputRDOFile"): - rec.readRDO.set_Value_and_Lock( True ) - globalflags.InputFormat.set_Value_and_Lock('pool') - athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDOFile ) -elif hasattr(runArgs,"inputRDO_FILTFile"): - rec.readRDO.set_Value_and_Lock( True ) - globalflags.InputFormat.set_Value_and_Lock('pool') - athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDO_FILTFile ) -elif hasattr(runArgs,"inputRDO_FTKFile"): - rec.readRDO.set_Value_and_Lock( True ) - globalflags.InputFormat.set_Value_and_Lock('pool') - athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDO_FTKFile ) - - TriggerFlags.doFTK=True; -else: - raise RuntimeError("No RDO input file specified") - -if hasattr(runArgs,"outputRDO_TRIGFile"): - rec.doWriteRDO.set_Value_and_Lock( True ) - globalflags.InputFormat.set_Value_and_Lock('pool') - athenaCommonFlags.PoolRDOOutput.set_Value_and_Lock( runArgs.outputRDO_TRIGFile ) -else: - raise RuntimeError("No RDO_TRIG output file specified") - -## Pre-exec -if hasattr(runArgs,"preExec"): - recoLog.info("transform pre-exec") - for cmd in runArgs.preExec: - recoLog.info(cmd) - exec(cmd) - -## Pre-include -if hasattr(runArgs,"preInclude"): - for fragment in runArgs.preInclude: - include(fragment) - -# Setup the algorithm and output sequences -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() -from AthenaCommon.AlgSequence import AthSequencer -outSequence = AthSequencer("AthOutSeq") - - -if not TriggerFlags.doMT(): - - from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter - from AthenaCommon.AppMgr import ServiceMgr as svcMgr - # small hack, switching temporarily the ESD writing on, to allow writing of some trigger containers into the RDOTrigger file - rec.doWriteESD = True - cfg = TriggerConfigGetter() - rec.doWriteESD.set_Value_and_Lock( False ) - # end of hack. - -def preplist(input): - triglist = [] - for k,val in six.iteritems (input): - for j in val: - triglist.append(k + "#" + j) - return triglist - - -if TriggerFlags.doMT(): - TriggerFlags.doHLT.set_Value_and_Lock(False) - from CaloRec.CaloRecFlags import jobproperties - jobproperties.CaloRecFlags.doLArNoisyRO.set_Value_and_Lock(False) - -#======================================================== -# Central topOptions (this is one is a string not a list) -#======================================================== -if TriggerFlags.doMT(): - TriggerFlags.MuonSlice.doTrigMuonConfig=True -if hasattr(runArgs,"topOptions"): include(runArgs.topOptions) -else: include( "RecExCommon/RecExCommon_topOptions.py" ) +from AthenaCommon.Include import include +from TriggerJobOpts.TriggerFlags import TriggerFlags if TriggerFlags.doMT(): - doWriteRDOTrigger = False - doWriteBS = False - include("TriggerJobOpts/runHLT_standalone.py") - -if rec.doFileMetaData(): - from RecExConfig.ObjKeyStore import objKeyStore - metadataItems = [ "xAOD::TriggerMenuContainer#TriggerMenu", - "xAOD::TriggerMenuAuxContainer#TriggerMenuAux." ] - objKeyStore.addManyTypesMetaData( metadataItems ) - - -from AnalysisTriggerAlgs.AnalysisTriggerAlgsConfig import \ - RoIBResultToAOD -idx=0 -for i in topSequence.getAllChildren(): - idx += 1 - if "TrigSteer_HLT" in i.getName(): - if not hasattr(i,'RoIBResultToxAOD'): - idx += 1 - topSequence.insert(idx, RoIBResultToAOD("RoIBResultToxAOD")) - -for i in outSequence.getAllChildren(): - if "StreamRDO" in i.getName() and ( not TriggerFlags.doMT() ): - from TrigDecisionMaker.TrigDecisionMakerConfig import TrigDecisionMaker,WritexAODTrigDecision - topSequence.insert(idx, TrigDecisionMaker('TrigDecMaker')) - from AthenaCommon.Logging import logging - log = logging.getLogger( 'WriteTrigDecisionToAOD' ) - log.info('TrigDecision writing enabled') - - from xAODTriggerCnv.xAODTriggerCnvConf import xAODMaker__TrigDecisionCnvAlg - alg = xAODMaker__TrigDecisionCnvAlg() - alg.AODKey = "TrigDecision" - alg.xAODKey = "xTrigDecision" - alg.ExtraOutputs = [('xAOD::TrigDecision','StoreGateSvc+xTrigDecision')] - topSequence.insert(idx+1, alg) - from xAODTriggerCnv.xAODTriggerCnvConf import xAODMaker__TrigNavigationCnvAlg - trigNavCnv = xAODMaker__TrigNavigationCnvAlg() - trigNavCnv.ExtraOutputs = [('xAOD::TrigNavigation','StoreGateSvc+TrigNavigation')] - topSequence.insert(idx+2, trigNavCnv) - _TriggerESDList = {} - _TriggerAODList = {} - from TrigEDMConfig.TriggerEDM import getTriggerEDMList - _TriggerESDList.update( getTriggerEDMList(TriggerFlags.ESDEDMSet(), TriggerFlags.EDMDecodingVersion()) ) - _TriggerAODList.update( getTriggerEDMList(TriggerFlags.AODEDMSet(), TriggerFlags.EDMDecodingVersion()) ) - - - StreamRDO.ItemList += ["HLT::HLTResult#HLTResult_HLT"] - StreamRDO.ItemList += ["TrigDec::TrigDecision#TrigDecision"] - StreamRDO.ItemList += ["TrigInDetTrackTruthMap#*"] - StreamRDO.ItemList += preplist(_TriggerESDList) - StreamRDO.ItemList += preplist(_TriggerAODList) - from TrigEDMConfig.TriggerEDM import getLvl1ESDList - StreamRDO.ItemList += preplist(getLvl1ESDList()) - from TrigEDMConfig.TriggerEDM import getLvl1AODList - StreamRDO.ItemList += preplist(getLvl1AODList()) - StreamRDO.MetadataItemList += [ "xAOD::TriggerMenuContainer#*", "xAOD::TriggerMenuAuxContainer#*" ] - - if "StreamRDO" in i.getName() and TriggerFlags.doMT(): - ### Produce the trigger bits: - from TrigOutputHandling.TrigOutputHandlingConf import TriggerBitsMakerTool - from TrigDecisionMaker.TrigDecisionMakerConfig import TrigDecisionMakerMT - bitsmakerTool = TriggerBitsMakerTool() - tdm = TrigDecisionMakerMT('TrigDecMakerMT') # Replaces TrigDecMaker and finally deprecates Run 1 EDM - tdm.BitsMakerTool = bitsmakerTool - topSequence += tdm - log.info('xTrigDecision writing enabled') - - ### Produce the metadata: - from TrigConfxAOD.TrigConfxAODConf import TrigConf__xAODMenuWriterMT - md = TrigConf__xAODMenuWriterMT() - topSequence += md - log.info('TriggerMenu Metadata writing enabled') - - from TrigConfigSvc.TrigConfigSvcConfig import TrigConfigSvc - svcMgr += TrigConfigSvc("TrigConfigSvc") - svcMgr.TrigConfigSvc.PriorityList = ["none", "ds", "xml"] - - # Still need to produce Run-2 style L1 xAOD output - topSequence += RoIBResultToAOD("RoIBResultToxAOD") - - from TrigEDMConfig.TriggerEDM import getTriggerEDMList - - trigEDMListESD = {} - trigEDMListAOD = {} - # do the two lines above this need to be changed to this? - trigEDMListESD.update(getTriggerEDMList(TriggerFlags.ESDEDMSet(), 3) ) - trigEDMListAOD.update(getTriggerEDMList(TriggerFlags.AODEDMSet(), 3) ) - - StreamRDO.ItemList += preplist(trigEDMListESD) - StreamRDO.ItemList += preplist(trigEDMListAOD) - - from TriggerJobOpts.TriggerConfig import collectHypos, collectFilters, collectDecisionObjects - hypos = collectHypos( findSubSequence(topSequence, "HLTAllSteps") ) - filters = collectFilters( findSubSequence(topSequence, "HLTAllSteps") ) - decObj = collectDecisionObjects( hypos, filters, - findAlgorithm(topSequence, "L1Decoder"), - findAlgorithm(topSequence, "DecisionSummaryMakerAlg") ) - StreamRDO.ItemList += [ "xAOD::TrigCompositeContainer#"+obj for obj in decObj ] - StreamRDO.ItemList += [ "xAOD::TrigCompositeAuxContainer#"+obj+"Aux." for obj in decObj ] - StreamRDO.MetadataItemList += [ "xAOD::TriggerMenuContainer#*", "xAOD::TriggerMenuAuxContainer#*" ] - -from AthenaCommon.AppMgr import ServiceMgr, ToolSvc - - -if hasattr(ToolSvc, 'TrigDecisionTool'): - if TriggerFlags.doMT(): - # No functional TDT in MT in RDOtoRDOTrigger - pass - else: - # Causes TDT to use Run-1 style behaviour in this part of the transform - from TrigDecisionTool.TrigDecisionToolConf import * - ToolSvc.TrigDecisionTool.TrigDecisionKey = "TrigDecision" - ToolSvc.TrigDecisionTool.UseAODDecision = True - -if TriggerFlags.doMT(): - # inform TD maker that some parts may be missing - if TriggerFlags.dataTakingConditions()=='Lvl1Only': - topSequence.TrigDecMakerMT.doHLT=False - elif TriggerFlags.dataTakingConditions()=='HltOnly': - topSequence.TrigDecMakerMT.doL1=False + include('RecJobTransforms/skeleton.RDOtoRDOtriggerMT.py') else: - # inform TD maker that some parts may be missing - if TriggerFlags.dataTakingConditions()=='Lvl1Only': - topSequence.TrigDecMaker.doL2=False - topSequence.TrigDecMaker.doEF=False - topSequence.TrigDecMaker.doHLT=False - elif TriggerFlags.dataTakingConditions()=='HltOnly': - from AthenaCommon.AlgSequence import AlgSequence - topSequence.TrigDecMaker.doL1=False - # Decide based on the run number whether to assume a merged, or a - # split HLT: - if not TriggerFlags.doMergedHLTResult(): - topSequence.TrigDecMaker.doHLT = False - else: - topSequence.TrigDecMaker.doL2 = False - topSequence.TrigDecMaker.doEF = False - - -#unconditinally store these items -StreamRDO.ItemList += [ "DataVector<LVL1::TriggerTower>#TriggerTowers" ] -StreamRDO.ItemList += [ "TRT_RDO_Container#TRT_RDOs" ] -StreamRDO.ItemList += [ "SCT_RDO_Container#SCT_RDOs" ] -StreamRDO.ItemList += [ "PixelRDO_Container#PixelRDOs" ] -StreamRDO.ItemList +=["2721#*"] -StreamRDO.ItemList +=["2927#*"] -StreamRDO.ItemList +=["2934#*"] -StreamRDO.ItemList += [ "xAOD::EventInfo#*", "xAOD::EventAuxInfo#*" ] -condSeq = AthSequencer("AthCondSeq") -if not hasattr( condSeq, "LumiBlockMuWriter" ): - include ("LumiBlockComps/LumiBlockMuWriter_jobOptions.py") - -rec.OutputFileNameForRecoStep="RDOtoRDO_TRIG" - -## Post-include -if hasattr(runArgs,"postInclude"): - for fragment in runArgs.postInclude: - include(fragment) - -## Post-exec -if hasattr(runArgs,"postExec"): - recoLog.info("transform post-exec") - for cmd in runArgs.postExec: - recoLog.info(cmd) - exec(cmd) - -ServiceMgr.MessageSvc.debugLimit=10000000 -ServiceMgr.MessageSvc.Format = "% F%40W%S%4W%e%s%7W%R%T %0W%M" -#from AthenaCommon.Constants import DEBUG -#findAlgorithm( topSequence, "TauL2CaloHypo").OutputLevel=DEBUG -#findAlgorithm( topSequence, "TrigTauRecMerged_TauPrecisionMVA").OutputLevel=DEBUG - -if recoLog.getEffectiveLevel() <= logging.DEBUG: - import AthenaCommon.Configurable as Configurable - Configurable.log.setLevel(logging.INFO) - recoLog.debug('Printing topSequence:\n%s', topSequence) - + include('RecJobTransforms/skeleton.RDOtoRDOtriggerLegacy.py') diff --git a/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtriggerLegacy.py b/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtriggerLegacy.py new file mode 100644 index 00000000000..91f41f9df14 --- /dev/null +++ b/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtriggerLegacy.py @@ -0,0 +1,226 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# +# Transform skeleton for RDO -> RDO_TRIG (running trigger and adding its output to the RDO file). +# These are old job options for Run-2 Trigger. For Run-3 see RDOtoRDOtriggerMT.py +# + +from AthenaCommon.Include import include +from RecExConfig.RecFlags import rec +from RecExConfig.RecAlgsFlags import recAlgs +from AthenaCommon.GlobalFlags import globalflags +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags +from TriggerJobOpts.TriggerFlags import TriggerFlags +import six + +#Common job options disable most RecExCommon by default. Re-enable below on demand. +include("RecJobTransforms/CommonRecoSkeletonJobOptions.py") +# disable ESD object making, but still enable trigger +rec.doESD.set_Value_and_Lock(False) +rec.doCalo.set_Value_and_Lock(True) +rec.doInDet.set_Value_and_Lock(True) +rec.doMuon.set_Value_and_Lock(True) +rec.doJetMissingETTag.set_Value_and_Lock(False) +rec.doEgamma.set_Value_and_Lock(False) +rec.doMuonCombined.set_Value_and_Lock(False) +rec.doTau.set_Value_and_Lock(False) +rec.doTrigger.set_Value_and_Lock(True) +rec.doRDOTrigger.set_Value_and_Lock(True) +recAlgs.doTrigger.set_Value_and_Lock(True) +rec.doMonitoring.set_Value_and_Lock(False) +from AthenaMonitoring.DQMonFlags import DQMonFlags +DQMonFlags.doMonitoring.set_Value_and_Lock(False) +DQMonFlags.doLArMon.set_Value_and_Lock(False) + +#disable offline ID configuration and reco +from InDetRecExample.InDetJobProperties import InDetFlags +InDetFlags.doNewTracking.set_Value_and_Lock(False) + +from AthenaCommon.Logging import logging +recoLog = logging.getLogger('rdo_to_rdotrigger') +recoLog.info( '****************** STARTING RDO->RDOTrigger MAKING *****************' ) + +## Input +runArgs = globals()['runArgs'] +if hasattr(runArgs,"inputRDOFile"): + rec.readRDO.set_Value_and_Lock( True ) + globalflags.InputFormat.set_Value_and_Lock('pool') + athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDOFile ) +elif hasattr(runArgs,"inputRDO_FILTFile"): + rec.readRDO.set_Value_and_Lock( True ) + globalflags.InputFormat.set_Value_and_Lock('pool') + athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDO_FILTFile ) +elif hasattr(runArgs,"inputRDO_FTKFile"): + rec.readRDO.set_Value_and_Lock( True ) + globalflags.InputFormat.set_Value_and_Lock('pool') + athenaCommonFlags.PoolRDOInput.set_Value_and_Lock( runArgs.inputRDO_FTKFile ) + + TriggerFlags.doFTK = True +else: + raise RuntimeError("No RDO input file specified") + +if hasattr(runArgs,"outputRDO_TRIGFile"): + rec.doWriteRDO.set_Value_and_Lock( True ) + globalflags.InputFormat.set_Value_and_Lock('pool') + athenaCommonFlags.PoolRDOOutput.set_Value_and_Lock( runArgs.outputRDO_TRIGFile ) +else: + raise RuntimeError("No RDO_TRIG output file specified") + +## Pre-exec +if hasattr(runArgs,"preExec"): + recoLog.info("transform pre-exec") + for cmd in runArgs.preExec: + recoLog.info(cmd) + exec(cmd) + +## Pre-include +if hasattr(runArgs,"preInclude"): + for fragment in runArgs.preInclude: + include(fragment) + +# Setup the algorithm and output sequences +from AthenaCommon.AlgSequence import AlgSequence +topSequence = AlgSequence() +from AthenaCommon.AlgSequence import AthSequencer +outSequence = AthSequencer("AthOutSeq") + +from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter +# small hack, switching temporarily the ESD writing on, to allow writing of some trigger containers into the RDOTrigger file +rec.doWriteESD = True +cfg = TriggerConfigGetter() +rec.doWriteESD.set_Value_and_Lock( False ) +# end of hack. + +def preplist(input): + triglist = [] + for k,val in six.iteritems (input): + for j in val: + triglist.append(k + "#" + j) + return triglist + + +#======================================================== +# Central topOptions (this is one is a string not a list) +#======================================================== +if hasattr(runArgs,"topOptions"): + include(runArgs.topOptions) +else: + include( "RecExCommon/RecExCommon_topOptions.py" ) + + +if rec.doFileMetaData(): + from RecExConfig.ObjKeyStore import objKeyStore + metadataItems = [ "xAOD::TriggerMenuContainer#TriggerMenu", + "xAOD::TriggerMenuAuxContainer#TriggerMenuAux." ] + objKeyStore.addManyTypesMetaData( metadataItems ) + + +from AnalysisTriggerAlgs.AnalysisTriggerAlgsConfig import \ + RoIBResultToAOD +idx=0 +for i in topSequence.getAllChildren(): + idx += 1 + if "TrigSteer_HLT" in i.getName(): + if not hasattr(i,'RoIBResultToxAOD'): + idx += 1 + topSequence.insert(idx, RoIBResultToAOD("RoIBResultToxAOD")) + +_streamRDO = None +for i in outSequence.getAllChildren(): + if 'StreamRDO' in i.getName(): + _streamRDO = i + +if _streamRDO: + from TrigDecisionMaker.TrigDecisionMakerConfig import TrigDecisionMaker + topSequence.insert(idx, TrigDecisionMaker('TrigDecMaker')) + from AthenaCommon.Logging import logging + log = logging.getLogger( 'WriteTrigDecisionToAOD' ) + log.info('TrigDecision writing enabled') + + from xAODTriggerCnv.xAODTriggerCnvConf import xAODMaker__TrigDecisionCnvAlg + alg = xAODMaker__TrigDecisionCnvAlg() + alg.AODKey = "TrigDecision" + alg.xAODKey = "xTrigDecision" + alg.ExtraOutputs = [('xAOD::TrigDecision','StoreGateSvc+xTrigDecision')] + topSequence.insert(idx+1, alg) + from xAODTriggerCnv.xAODTriggerCnvConf import xAODMaker__TrigNavigationCnvAlg + trigNavCnv = xAODMaker__TrigNavigationCnvAlg() + trigNavCnv.ExtraOutputs = [('xAOD::TrigNavigation','StoreGateSvc+TrigNavigation')] + topSequence.insert(idx+2, trigNavCnv) + _TriggerESDList = {} + _TriggerAODList = {} + from TrigEDMConfig.TriggerEDM import getTriggerEDMList + _TriggerESDList.update( getTriggerEDMList(TriggerFlags.ESDEDMSet(), TriggerFlags.EDMDecodingVersion()) ) + _TriggerAODList.update( getTriggerEDMList(TriggerFlags.AODEDMSet(), TriggerFlags.EDMDecodingVersion()) ) + + _streamRDO.ItemList += ["HLT::HLTResult#HLTResult_HLT"] + _streamRDO.ItemList += ["TrigDec::TrigDecision#TrigDecision"] + _streamRDO.ItemList += ["TrigInDetTrackTruthMap#*"] + _streamRDO.ItemList += preplist(_TriggerESDList) + _streamRDO.ItemList += preplist(_TriggerAODList) + from TrigEDMConfig.TriggerEDM import getLvl1ESDList + _streamRDO.ItemList += preplist(getLvl1ESDList()) + from TrigEDMConfig.TriggerEDM import getLvl1AODList + _streamRDO.ItemList += preplist(getLvl1AODList()) + _streamRDO.MetadataItemList += [ "xAOD::TriggerMenuContainer#*", "xAOD::TriggerMenuAuxContainer#*" ] + +from AthenaCommon.AppMgr import ServiceMgr, ToolSvc + + +if hasattr(ToolSvc, 'TrigDecisionTool'): + # Causes TDT to use Run-1 style behaviour in this part of the transform + from TrigDecisionTool.TrigDecisionToolConf import * # noqa: F401,F403 old Run-2 code + ToolSvc.TrigDecisionTool.TrigDecisionKey = "TrigDecision" + ToolSvc.TrigDecisionTool.UseAODDecision = True + +# inform TD maker that some parts may be missing +if TriggerFlags.dataTakingConditions()=='Lvl1Only': + topSequence.TrigDecMaker.doL2=False + topSequence.TrigDecMaker.doEF=False + topSequence.TrigDecMaker.doHLT=False +elif TriggerFlags.dataTakingConditions()=='HltOnly': + from AthenaCommon.AlgSequence import AlgSequence + topSequence.TrigDecMaker.doL1=False + # Decide based on the run number whether to assume a merged, or a + # split HLT: +if not TriggerFlags.doMergedHLTResult(): + topSequence.TrigDecMaker.doHLT = False +else: + topSequence.TrigDecMaker.doL2 = False + topSequence.TrigDecMaker.doEF = False + +if _streamRDO: + # always store these items + _streamRDO.ItemList += [ "DataVector<LVL1::TriggerTower>#TriggerTowers" ] + _streamRDO.ItemList += [ "TRT_RDO_Container#TRT_RDOs" ] + _streamRDO.ItemList += [ "SCT_RDO_Container#SCT_RDOs" ] + _streamRDO.ItemList += [ "PixelRDO_Container#PixelRDOs" ] + _streamRDO.ItemList +=["2721#*"] + _streamRDO.ItemList +=["2927#*"] + _streamRDO.ItemList +=["2934#*"] + _streamRDO.ItemList += [ "xAOD::EventInfo#*", "xAOD::EventAuxInfo#*" ] + +condSeq = AthSequencer("AthCondSeq") +if not hasattr( condSeq, "LumiBlockMuWriter" ): + include ("LumiBlockComps/LumiBlockMuWriter_jobOptions.py") + +rec.OutputFileNameForRecoStep="RDOtoRDO_TRIG" + +## Post-include +if hasattr(runArgs,"postInclude"): + for fragment in runArgs.postInclude: + include(fragment) + +## Post-exec +if hasattr(runArgs,"postExec"): + recoLog.info("transform post-exec") + for cmd in runArgs.postExec: + recoLog.info(cmd) + exec(cmd) + +ServiceMgr.MessageSvc.debugLimit=10000000 +ServiceMgr.MessageSvc.Format = "% F%40W%S%4W%e%s%7W%R%T %0W%M" + +if recoLog.getEffectiveLevel() <= logging.DEBUG: + import AthenaCommon.Configurable as Configurable + Configurable.log.setLevel(logging.INFO) + recoLog.debug('Printing topSequence:\n%s', topSequence) diff --git a/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtriggerMT.py b/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtriggerMT.py new file mode 100644 index 00000000000..9763c1746f4 --- /dev/null +++ b/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtriggerMT.py @@ -0,0 +1,83 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# +# Transform skeleton for RDO -> RDO_TRIG (running trigger and adding its output to the RDO file). +# This is only a wrapper interfacing transform arguments into the main job options file +# TriggerJobOpts/runHLT_standalone.py +# + +from AthenaCommon.Include import include +from AthenaCommon.Logging import logging +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags +from AthenaConfiguration.AllConfigFlags import ConfigFlags + +log = logging.getLogger('skeleton.RDOtoRDOtriggerMT') + +################################################## +# Options read by runHLT_standalone, can be overwritten in runArgs/preExec/preInclude +################################################## +setMenu = 'LS2_v1' +doWriteRDOTrigger = True +doWriteBS = False + +################################################## +# Parse runArgs +################################################## +if 'runArgs' not in globals(): + raise RuntimeError('runArgs not defined') + +ra = globals()['runArgs'] +def getFromRunArgs(propName, failIfMissing=True): + if not hasattr(ra, propName): + if failIfMissing: + raise RuntimeError(propName + ' not defined in runArgs') + else: + return None + return getattr(ra, propName) + +# Input/Output +athenaCommonFlags.FilesInput = getFromRunArgs('inputRDOFile') +ConfigFlags.Input.Files = getFromRunArgs('inputRDOFile') +ConfigFlags.Output.RDOFileName = getFromRunArgs('outputRDO_TRIGFile') + +# Max/skip events +maxEvents = getFromRunArgs('maxEvents', False) or -1 +skipEvents = getFromRunArgs('skipEvents', False) or 0 +athenaCommonFlags.EvtMax = maxEvents +athenaCommonFlags.SkipEvents = skipEvents + +################################################## +# Parse preExec / preInclude +################################################## +preExec = getFromRunArgs('preExec', False) +if preExec: + log.info('Executing transform preExec') + for cmd in preExec: + log.info(cmd) + exec(cmd) + +preInclude = getFromRunArgs('preInclude', False) +if preInclude: + log.info('Executing transform preInclude') + for fragment in preInclude: + include(fragment) + +################################################## +# Include the main job options +################################################## +include("TriggerJobOpts/runHLT_standalone.py") + +################################################## +# Parse postExec / postInclude +################################################## +postExec = getFromRunArgs('postExec', failIfMissing=False) +if postExec: + log.info('Executing transform postExec') + for cmd in postExec: + log.info(cmd) + exec(cmd) + +postInclude = getFromRunArgs('postInclude', failIfMissing=False) +if postInclude: + log.info('Executing transform postInclude') + for fragment in postInclude: + include(fragment) diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref index 3a4ba12e88d..a630bc33e2b 100644 --- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref +++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref @@ -1,741 +1,741 @@ -TrigSignatureMoniMT INFO HLT_2e17_etcut_L12EM15VH #3136730292 -TrigSignatureMoniMT INFO -- #3136730292 Events 2 2 2 2 2 - - - 2 -TrigSignatureMoniMT INFO -- #3136730292 Features 12 294 14 - - - -TrigSignatureMoniMT INFO HLT_2e17_lhvloose_L12EM15VH #2280638160 -TrigSignatureMoniMT INFO -- #2280638160 Events 2 2 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #2280638160 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_2e17_lhvloose_L12EM3 #1767768251 -TrigSignatureMoniMT INFO -- #1767768251 Events 20 20 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1767768251 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_2e3_etcut_L12EM3 #2613484113 -TrigSignatureMoniMT INFO -- #2613484113 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #2613484113 Features 342 3682 780 - - - -TrigSignatureMoniMT INFO HLT_2g20_tight_L12EM15VH #3837353071 -TrigSignatureMoniMT INFO -- #3837353071 Events 2 2 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #3837353071 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_2g35_etcut_L12EM20VH #58053304 -TrigSignatureMoniMT INFO -- #58053304 Events 2 2 1 1 0 - - - 0 -TrigSignatureMoniMT INFO -- #58053304 Features 4 4 0 - - - -TrigSignatureMoniMT INFO HLT_2g35_medium_L12EM20VH #3965466087 -TrigSignatureMoniMT INFO -- #3965466087 Events 2 2 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #3965466087 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J100 #1295975955 -TrigSignatureMoniMT INFO -- #1295975955 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #1295975955 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_2j60_L1J15 #927735533 -TrigSignatureMoniMT INFO -- #927735533 Events 20 20 10 - - - - - 10 -TrigSignatureMoniMT INFO -- #927735533 Features 28 - - - - - -TrigSignatureMoniMT INFO HLT_2mu10_bJpsimumu_L12MU10 #3498558358 -TrigSignatureMoniMT INFO -- #3498558358 Events 3 3 3 3 3 2 - - 0 -TrigSignatureMoniMT INFO -- #3498558358 Features 12 12 16 4 - - -TrigSignatureMoniMT INFO HLT_2mu10_bUpsimumu_L12MU10 #234102568 -TrigSignatureMoniMT INFO -- #234102568 Events 3 3 3 3 3 2 - - 0 -TrigSignatureMoniMT INFO -- #234102568 Features 12 12 16 4 - - -TrigSignatureMoniMT INFO HLT_2mu14_L12MU10 #2619091790 -TrigSignatureMoniMT INFO -- #2619091790 Events 3 3 3 1 1 1 - - 1 -TrigSignatureMoniMT INFO -- #2619091790 Features 12 4 4 4 - - -TrigSignatureMoniMT INFO HLT_2mu15_L12MU10 #557204938 -TrigSignatureMoniMT INFO -- #557204938 Events 3 3 3 1 1 1 - - 1 -TrigSignatureMoniMT INFO -- #557204938 Features 12 4 4 4 - - -TrigSignatureMoniMT INFO HLT_2mu4_L12MU4 #2999632714 -TrigSignatureMoniMT INFO -- #2999632714 Events 4 4 4 4 4 4 - - 4 -TrigSignatureMoniMT INFO -- #2999632714 Features 16 16 24 36 - - -TrigSignatureMoniMT INFO HLT_2mu4_bDimu_L12MU4 #1730084172 -TrigSignatureMoniMT INFO -- #1730084172 Events 4 4 4 4 4 4 - - 0 -TrigSignatureMoniMT INFO -- #1730084172 Features 16 16 24 18 - - -TrigSignatureMoniMT INFO HLT_2mu4_bJpsimumu_L12MU4 #4276347155 -TrigSignatureMoniMT INFO -- #4276347155 Events 4 4 4 4 4 4 - - 0 -TrigSignatureMoniMT INFO -- #4276347155 Features 16 16 24 18 - - -TrigSignatureMoniMT INFO HLT_2mu4_bUpsimumu_L12MU4 #4008168535 -TrigSignatureMoniMT INFO -- #4008168535 Events 4 4 4 4 4 4 - - 0 -TrigSignatureMoniMT INFO -- #4008168535 Features 16 16 24 18 - - -TrigSignatureMoniMT INFO HLT_2mu4_muonqual_L12MU4 #1584776935 -TrigSignatureMoniMT INFO -- #1584776935 Events 4 4 4 4 4 4 - - 4 -TrigSignatureMoniMT INFO -- #1584776935 Features 16 16 24 36 - - -TrigSignatureMoniMT INFO HLT_2mu6Comb_L12MU6 #2046267508 -TrigSignatureMoniMT INFO -- #2046267508 Events 4 4 4 3 - - - - 3 -TrigSignatureMoniMT INFO -- #2046267508 Features 16 12 - - - - -TrigSignatureMoniMT INFO HLT_2mu6_10invm70_L1MU6 #1316992871 -TrigSignatureMoniMT INFO -- #1316992871 Events 10 10 4 3 3 3 - - 3 -TrigSignatureMoniMT INFO -- #1316992871 Features 16 12 18 28 - - -TrigSignatureMoniMT INFO HLT_2mu6_Dr_L12MU4 #3304584056 -TrigSignatureMoniMT INFO -- #3304584056 Events 4 4 4 3 - - - - 3 -TrigSignatureMoniMT INFO -- #3304584056 Features 16 12 - - - - -TrigSignatureMoniMT INFO HLT_2mu6_L12MU6 #1747073535 -TrigSignatureMoniMT INFO -- #1747073535 Events 4 4 4 3 3 3 - - 3 -TrigSignatureMoniMT INFO -- #1747073535 Features 16 12 18 28 - - -TrigSignatureMoniMT INFO HLT_2mu6_muonqual_L12MU6 #2398136098 -TrigSignatureMoniMT INFO -- #2398136098 Events 4 4 4 3 3 3 - - 3 -TrigSignatureMoniMT INFO -- #2398136098 Features 16 12 18 28 - - -TrigSignatureMoniMT INFO HLT_3j200_L1J100 #2199422919 -TrigSignatureMoniMT INFO -- #2199422919 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #2199422919 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_3j200_L1J20 #493765146 -TrigSignatureMoniMT INFO -- #493765146 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #493765146 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_3mu6_L13MU6 #1832399408 -TrigSignatureMoniMT INFO -- #1832399408 Events 0 0 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1832399408 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_3mu6_msonly_L13MU6 #1199773318 -TrigSignatureMoniMT INFO -- #1199773318 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1199773318 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_3mu8_msonly_L13MU6 #424835335 -TrigSignatureMoniMT INFO -- #424835335 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #424835335 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_4mu4_L14MU4 #1834383636 -TrigSignatureMoniMT INFO -- #1834383636 Events 0 0 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1834383636 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_5j70_0eta240_L14J20 #1175391812 -TrigSignatureMoniMT INFO -- #1175391812 Events 7 7 1 - - - - - 1 -TrigSignatureMoniMT INFO -- #1175391812 Features 5 - - - - - -TrigSignatureMoniMT INFO HLT_beamspot_allTE_trkfast_BeamSpotPEB_L1J15 #3989372080 -TrigSignatureMoniMT INFO -- #3989372080 Events 20 20 20 20 - - - - 20 -TrigSignatureMoniMT INFO -- #3989372080 Features 20 20 - - - - -TrigSignatureMoniMT INFO HLT_beamspot_trkFS_trkfast_BeamSpotPEB_L1J15 #628534730 -TrigSignatureMoniMT INFO -- #628534730 Events 20 20 20 20 - - - - 20 -TrigSignatureMoniMT INFO -- #628534730 Features 20 20 - - - - -TrigSignatureMoniMT INFO HLT_costmonitor_CostMonDS_L1All #843341480 -TrigSignatureMoniMT INFO -- #843341480 Events 20 20 20 - - - - - 20 -TrigSignatureMoniMT INFO -- #843341480 Features 20 - - - - - -TrigSignatureMoniMT INFO HLT_e140_lhloose_L1EM22VHI #3471067710 -TrigSignatureMoniMT INFO -- #3471067710 Events 6 6 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #3471067710 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_e140_lhloose_nod0_L1EM22VHI #4128870680 -TrigSignatureMoniMT INFO -- #4128870680 Events 6 6 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #4128870680 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_e17_lhloose_mu14_L1EM15VH_MU10 #899946230 -TrigSignatureMoniMT INFO -- #899946230 Events 3 3 2 2 2 2 - - 2 -TrigSignatureMoniMT INFO -- #899946230 Features 2 45 4 2 - - -TrigSignatureMoniMT INFO HLT_e17_lhvloose_nod0_L1EM15VH #140779220 -TrigSignatureMoniMT INFO -- #140779220 Events 8 8 6 6 6 5 - - 5 -TrigSignatureMoniMT INFO -- #140779220 Features 6 78 10 5 - - -TrigSignatureMoniMT INFO HLT_e26_etcut_L1EM22VHI #1703681121 -TrigSignatureMoniMT INFO -- #1703681121 Events 6 6 6 6 6 - - - 6 -TrigSignatureMoniMT INFO -- #1703681121 Features 7 133 7 - - - -TrigSignatureMoniMT INFO HLT_e26_lhtight_L1EM22VHI #1995263521 -TrigSignatureMoniMT INFO -- #1995263521 Events 6 6 5 5 5 4 - - 4 -TrigSignatureMoniMT INFO -- #1995263521 Features 5 64 8 4 - - -TrigSignatureMoniMT INFO HLT_e26_lhtight_nod0_L1EM22VHI #939763520 -TrigSignatureMoniMT INFO -- #939763520 Events 6 6 5 5 5 4 - - 4 -TrigSignatureMoniMT INFO -- #939763520 Features 5 64 8 4 - - -TrigSignatureMoniMT INFO HLT_e26_lhtight_nod0_L1EM24VHI #4227411116 -TrigSignatureMoniMT INFO -- #4227411116 Events 6 6 5 5 5 4 - - 4 -TrigSignatureMoniMT INFO -- #4227411116 Features 5 64 8 4 - - -TrigSignatureMoniMT INFO HLT_e300_etcut_L1EM22VHI #2128128255 -TrigSignatureMoniMT INFO -- #2128128255 Events 6 6 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #2128128255 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_e3_etcut1step_mu26_L1EM8I_MU10 #2209076666 -TrigSignatureMoniMT INFO -- #2209076666 Events 5 5 3 1 1 1 - - 1 -TrigSignatureMoniMT INFO -- #2209076666 Features 3 1 1 1 - - -TrigSignatureMoniMT INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU10 #2086577378 -TrigSignatureMoniMT INFO -- #2086577378 Events 5 5 3 - - - - - 3 -TrigSignatureMoniMT INFO -- #2086577378 Features 3 - - - - - -TrigSignatureMoniMT INFO HLT_e3_etcut_L1EM3 #683953566 -TrigSignatureMoniMT INFO -- #683953566 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #683953566 Features 171 1841 390 - - - -TrigSignatureMoniMT INFO HLT_e5_etcut_L1EM3 #324908483 -TrigSignatureMoniMT INFO -- #324908483 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #324908483 Features 137 1651 190 - - - -TrigSignatureMoniMT INFO HLT_e5_lhloose_noringer_L1EM3 #1053337356 -TrigSignatureMoniMT INFO -- #1053337356 Events 20 20 17 17 17 4 - - 4 -TrigSignatureMoniMT INFO -- #1053337356 Features 56 653 116 5 - - -TrigSignatureMoniMT INFO HLT_e5_lhmedium_noringer_L1EM3 #176627878 -TrigSignatureMoniMT INFO -- #176627878 Events 20 20 16 16 16 4 - - 4 -TrigSignatureMoniMT INFO -- #176627878 Features 48 533 93 5 - - -TrigSignatureMoniMT INFO HLT_e5_lhtight_noringer_L1EM3 #2758326765 -TrigSignatureMoniMT INFO -- #2758326765 Events 20 20 16 16 16 4 - - 4 -TrigSignatureMoniMT INFO -- #2758326765 Features 45 515 84 5 - - -TrigSignatureMoniMT INFO HLT_e5_lhtight_noringer_nod0_L1EM3 #1690619419 -TrigSignatureMoniMT INFO -- #1690619419 Events 20 20 16 16 16 4 - - 4 -TrigSignatureMoniMT INFO -- #1690619419 Features 45 515 84 5 - - -TrigSignatureMoniMT INFO HLT_e60_lhmedium_L1EM22VHI #298591874 -TrigSignatureMoniMT INFO -- #298591874 Events 6 6 2 2 2 2 - - 2 -TrigSignatureMoniMT INFO -- #298591874 Features 2 33 4 2 - - -TrigSignatureMoniMT INFO HLT_e60_lhmedium_nod0_L1EM22VHI #4115486024 -TrigSignatureMoniMT INFO -- #4115486024 Events 6 6 2 2 2 2 - - 2 -TrigSignatureMoniMT INFO -- #4115486024 Features 2 33 4 2 - - -TrigSignatureMoniMT INFO HLT_e7_etcut_L1EM3 #1959043579 -TrigSignatureMoniMT INFO -- #1959043579 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #1959043579 Features 89 1130 112 - - - -TrigSignatureMoniMT INFO HLT_e7_lhmedium_mu24_L1MU20 #2970063918 -TrigSignatureMoniMT INFO -- #2970063918 Events 8 8 7 5 5 1 - - 1 -TrigSignatureMoniMT INFO -- #2970063918 Features 9 71 14 1 - - -TrigSignatureMoniMT INFO HLT_g140_etcut_L1EM22VHI #3879926061 -TrigSignatureMoniMT INFO -- #3879926061 Events 6 6 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #3879926061 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_g140_etcut_L1EM24VHI #1045486446 -TrigSignatureMoniMT INFO -- #1045486446 Events 6 6 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1045486446 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_g140_loose_L1EM22VHI #1776910226 -TrigSignatureMoniMT INFO -- #1776910226 Events 6 6 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1776910226 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_g20_etcut_LArPEB_L1EM15 #2706532790 -TrigSignatureMoniMT INFO -- #2706532790 Events 14 14 14 14 12 12 - - 12 -TrigSignatureMoniMT INFO -- #2706532790 Features 24 24 22 20 - - -TrigSignatureMoniMT INFO HLT_g25_loose_L1EM15VH #531040386 -TrigSignatureMoniMT INFO -- #531040386 Events 8 8 7 7 7 6 - - 6 -TrigSignatureMoniMT INFO -- #531040386 Features 9 9 18 7 - - -TrigSignatureMoniMT INFO HLT_g25_medium_L1EM15VH #3776886359 -TrigSignatureMoniMT INFO -- #3776886359 Events 8 8 7 7 7 6 - - 6 -TrigSignatureMoniMT INFO -- #3776886359 Features 7 7 13 6 - - -TrigSignatureMoniMT INFO HLT_g25_medium_mu24_ivarmedium_L1MU20 #1007052793 -TrigSignatureMoniMT INFO -- #1007052793 Events 8 8 2 1 1 1 0 - 0 -TrigSignatureMoniMT INFO -- #1007052793 Features 2 1 3 1 0 - -TrigSignatureMoniMT INFO HLT_g25_tight_L1EM15VH #3691147775 -TrigSignatureMoniMT INFO -- #3691147775 Events 8 8 7 7 7 5 - - 5 -TrigSignatureMoniMT INFO -- #3691147775 Features 7 7 13 5 - - -TrigSignatureMoniMT INFO HLT_g35_medium_g25_medium_L12EM20VH #1158879722 -TrigSignatureMoniMT INFO -- #1158879722 Events 2 2 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1158879722 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_g5_etcut_L1EM3 #471243435 -TrigSignatureMoniMT INFO -- #471243435 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #471243435 Features 137 137 190 - - - -TrigSignatureMoniMT INFO HLT_g5_etcut_LArPEB_L1EM3 #3486231698 -TrigSignatureMoniMT INFO -- #3486231698 Events 20 20 20 20 20 20 - - 20 -TrigSignatureMoniMT INFO -- #3486231698 Features 137 137 190 118 - - -TrigSignatureMoniMT INFO HLT_g5_loose_L1EM3 #3230088967 -TrigSignatureMoniMT INFO -- #3230088967 Events 20 20 17 17 17 9 - - 9 -TrigSignatureMoniMT INFO -- #3230088967 Features 56 56 116 12 - - -TrigSignatureMoniMT INFO HLT_g5_medium_L1EM3 #385248610 -TrigSignatureMoniMT INFO -- #385248610 Events 20 20 16 16 16 9 - - 9 -TrigSignatureMoniMT INFO -- #385248610 Features 48 48 93 12 - - -TrigSignatureMoniMT INFO HLT_g5_tight_L1EM3 #3280865118 -TrigSignatureMoniMT INFO -- #3280865118 Events 20 20 16 16 16 9 - - 9 -TrigSignatureMoniMT INFO -- #3280865118 Features 45 45 84 9 - - -TrigSignatureMoniMT INFO HLT_j0_perf_L1J12_EMPTY #1341875780 -TrigSignatureMoniMT INFO -- #1341875780 Events 0 0 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #1341875780 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 #4034799151 -TrigSignatureMoniMT INFO -- #4034799151 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #4034799151 Features 425 - - - - - -TrigSignatureMoniMT INFO HLT_j225_ftf_subjesgscIS_bmv2c1040_split_L1J100 #3992507557 -TrigSignatureMoniMT INFO -- #3992507557 Events 3 3 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #3992507557 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_j260_320eta490_L1J20 #3084792704 -TrigSignatureMoniMT INFO -- #3084792704 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3084792704 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j260_320eta490_L1J75_31ETA49 #3769257182 -TrigSignatureMoniMT INFO -- #3769257182 Events 2 2 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3769257182 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J100 #1211559599 -TrigSignatureMoniMT INFO -- #1211559599 Events 3 3 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #1211559599 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J100 #3706723666 -TrigSignatureMoniMT INFO -- #3706723666 Events 3 3 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #3706723666 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J100 #1837565816 -TrigSignatureMoniMT INFO -- #1837565816 Events 3 3 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #1837565816 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_j420_L1J100 #2659902019 -TrigSignatureMoniMT INFO -- #2659902019 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #2659902019 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j420_L1J20 #2205518067 -TrigSignatureMoniMT INFO -- #2205518067 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #2205518067 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j420_ftf_subjesgscIS_L1J20 #4179085188 -TrigSignatureMoniMT INFO -- #4179085188 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #4179085188 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j45_L1J15 #1364976160 -TrigSignatureMoniMT INFO -- #1364976160 Events 20 20 19 - - - - - 19 -TrigSignatureMoniMT INFO -- #1364976160 Features 50 - - - - - -TrigSignatureMoniMT INFO HLT_j45_cssktc_nojcalib_L1J20 #3295122398 -TrigSignatureMoniMT INFO -- #3295122398 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #3295122398 Features 27 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_L1J15 #868405538 -TrigSignatureMoniMT INFO -- #868405538 Events 20 20 19 - - - - - 19 -TrigSignatureMoniMT INFO -- #868405538 Features 50 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_csskpf_nojcalib_L1J20 #3533281867 -TrigSignatureMoniMT INFO -- #3533281867 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #3533281867 Features 25 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_pf_L1J20 #1335156103 -TrigSignatureMoniMT INFO -- #1335156103 Events 19 19 16 - - - - - 16 -TrigSignatureMoniMT INFO -- #1335156103 Features 31 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_pf_nojcalib_L1J20 #3658890913 -TrigSignatureMoniMT INFO -- #3658890913 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #3658890913 Features 29 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_011jvt_L1J15 #2857031468 -TrigSignatureMoniMT INFO -- #2857031468 Events 20 20 12 - - - - - 12 -TrigSignatureMoniMT INFO -- #2857031468 Features 20 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_015jvt_L1J15 #2938374624 -TrigSignatureMoniMT INFO -- #2938374624 Events 20 20 12 - - - - - 12 -TrigSignatureMoniMT INFO -- #2938374624 Features 19 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_059jvt_L1J15 #1593009344 -TrigSignatureMoniMT INFO -- #1593009344 Events 20 20 12 - - - - - 12 -TrigSignatureMoniMT INFO -- #1593009344 Features 18 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_L1J15 #3341539267 -TrigSignatureMoniMT INFO -- #3341539267 Events 20 20 19 - - - - - 19 -TrigSignatureMoniMT INFO -- #3341539267 Features 51 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J20 #991419339 -TrigSignatureMoniMT INFO -- #991419339 Events 19 19 19 4 - - - - 4 -TrigSignatureMoniMT INFO -- #991419339 Features 50 8 - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20 #1961149049 -TrigSignatureMoniMT INFO -- #1961149049 Events 19 19 19 19 - - - - 19 -TrigSignatureMoniMT INFO -- #1961149049 Features 50 50 - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_pf_L1J20 #761060030 -TrigSignatureMoniMT INFO -- #761060030 Events 19 19 16 - - - - - 16 -TrigSignatureMoniMT INFO -- #761060030 Features 31 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_L1J15 #1509925407 -TrigSignatureMoniMT INFO -- #1509925407 Events 20 20 18 - - - - - 18 -TrigSignatureMoniMT INFO -- #1509925407 Features 44 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_pf_L1J20 #4012311417 -TrigSignatureMoniMT INFO -- #4012311417 Events 19 19 16 - - - - - 16 -TrigSignatureMoniMT INFO -- #4012311417 Features 31 - - - - - -TrigSignatureMoniMT INFO HLT_j45_nojcalib_L1J20 #2042444294 -TrigSignatureMoniMT INFO -- #2042444294 Events 19 19 17 - - - - - 17 -TrigSignatureMoniMT INFO -- #2042444294 Features 39 - - - - - -TrigSignatureMoniMT INFO HLT_j45_sktc_nojcalib_L1J20 #1542468090 -TrigSignatureMoniMT INFO -- #1542468090 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #1542468090 Features 26 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10_lcw_subjes_L1J100 #3327656707 -TrigSignatureMoniMT INFO -- #3327656707 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3327656707 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10_lcw_subjes_L1J20 #215408633 -TrigSignatureMoniMT INFO -- #215408633 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #215408633 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10r_L1J100 #1151767619 -TrigSignatureMoniMT INFO -- #1151767619 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #1151767619 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10r_L1J20 #3875082669 -TrigSignatureMoniMT INFO -- #3875082669 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3875082669 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J100 #2296827117 -TrigSignatureMoniMT INFO -- #2296827117 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #2296827117 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10t_lcw_jes_L1J100 #436385969 -TrigSignatureMoniMT INFO -- #436385969 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #436385969 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20 #3634067472 -TrigSignatureMoniMT INFO -- #3634067472 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3634067472 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j80_L1J15 #2440872308 -TrigSignatureMoniMT INFO -- #2440872308 Events 20 20 13 - - - - - 13 -TrigSignatureMoniMT INFO -- #2440872308 Features 23 - - - - - -TrigSignatureMoniMT INFO HLT_j80_j60_L1J15 #582699527 -TrigSignatureMoniMT INFO -- #582699527 Events 20 20 8 - - - - - 8 -TrigSignatureMoniMT INFO -- #582699527 Features 23 - - - - - -TrigSignatureMoniMT INFO HLT_j85_L1J20 #510475538 -TrigSignatureMoniMT INFO -- #510475538 Events 19 19 13 - - - - - 13 -TrigSignatureMoniMT INFO -- #510475538 Features 21 - - - - - -TrigSignatureMoniMT INFO HLT_j85_ftf_L1J20 #877042532 -TrigSignatureMoniMT INFO -- #877042532 Events 19 19 13 - - - - - 13 -TrigSignatureMoniMT INFO -- #877042532 Features 21 - - - - - -TrigSignatureMoniMT INFO HLT_j85_ftf_pf_L1J20 #1538535401 -TrigSignatureMoniMT INFO -- #1538535401 Events 19 19 8 - - - - - 8 -TrigSignatureMoniMT INFO -- #1538535401 Features 13 - - - - - -TrigSignatureMoniMT INFO HLT_mb_sptrk_L1RD0_FILLED #4097312640 -TrigSignatureMoniMT INFO -- #4097312640 Events 20 20 20 20 - - - - 20 -TrigSignatureMoniMT INFO -- #4097312640 Features 20 20 - - - - -TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU20 #997163309 -TrigSignatureMoniMT INFO -- #997163309 Events 8 8 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #997163309 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU4_EMPTY #782182242 -TrigSignatureMoniMT INFO -- #782182242 Events 0 0 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #782182242 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_mu10_L1MU10 #209090273 -TrigSignatureMoniMT INFO -- #209090273 Events 10 10 10 10 10 9 - - 9 -TrigSignatureMoniMT INFO -- #209090273 Features 13 12 13 11 - - -TrigSignatureMoniMT INFO HLT_mu10_ivarmedium_mu10_10invm70_L12MU10 #2386882549 -TrigSignatureMoniMT INFO -- #2386882549 Events 3 3 3 2 2 2 2 - 2 -TrigSignatureMoniMT INFO -- #2386882549 Features 6 4 4 4 2 - -TrigSignatureMoniMT INFO HLT_mu10_lateMu_L1MU10 #48780310 -TrigSignatureMoniMT INFO -- #48780310 Events 10 10 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #48780310 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_mu11_mu6_bJpsimumu_L1MU11_2MU6 #2504965945 -TrigSignatureMoniMT INFO -- #2504965945 Events 4 4 4 0 3 0 - - 0 -TrigSignatureMoniMT INFO -- #2504965945 Features 8 0 6 0 - - -TrigSignatureMoniMT INFO HLT_mu11_mu6_bUpsimumu_L1MU11_2MU6 #1171632195 -TrigSignatureMoniMT INFO -- #1171632195 Events 4 4 4 0 3 0 - - 0 -TrigSignatureMoniMT INFO -- #1171632195 Features 8 0 6 0 - - -TrigSignatureMoniMT INFO HLT_mu14_L1MU10 #1696906927 -TrigSignatureMoniMT INFO -- #1696906927 Events 10 10 10 7 7 7 - - 7 -TrigSignatureMoniMT INFO -- #1696906927 Features 13 8 8 8 - - -TrigSignatureMoniMT INFO HLT_mu20_2mu4noL1_L1MU20 #1029128679 -TrigSignatureMoniMT INFO -- #1029128679 Events 8 8 8 5 5 5 1 1 1 -TrigSignatureMoniMT INFO -- #1029128679 Features 10 6 6 6 2 2 -TrigSignatureMoniMT INFO HLT_mu20_ivar_L1MU6 #2083734526 -TrigSignatureMoniMT INFO -- #2083734526 Events 10 10 10 5 5 - - - 5 -TrigSignatureMoniMT INFO -- #2083734526 Features 14 6 5 - - - -TrigSignatureMoniMT INFO HLT_mu22_2mu4noL1_L1MU20 #3427670100 -TrigSignatureMoniMT INFO -- #3427670100 Events 8 8 8 5 5 5 1 1 1 -TrigSignatureMoniMT INFO -- #3427670100 Features 10 6 6 6 2 2 -TrigSignatureMoniMT INFO HLT_mu22_mu8noL1_L1MU20 #3165652409 -TrigSignatureMoniMT INFO -- #3165652409 Events 8 8 8 5 5 5 2 2 2 -TrigSignatureMoniMT INFO -- #3165652409 Features 10 6 6 6 3 3 -TrigSignatureMoniMT INFO HLT_mu24_2mu4noL1_L1MU20 #3233544630 -TrigSignatureMoniMT INFO -- #3233544630 Events 8 8 8 5 5 5 1 1 1 -TrigSignatureMoniMT INFO -- #3233544630 Features 10 6 6 6 2 2 -TrigSignatureMoniMT INFO HLT_mu24_L1MU20 #417425162 -TrigSignatureMoniMT INFO -- #417425162 Events 8 8 8 5 5 5 - - 5 -TrigSignatureMoniMT INFO -- #417425162 Features 10 6 6 6 - - -TrigSignatureMoniMT INFO HLT_mu24_idperf_L1MU20 #677658909 -TrigSignatureMoniMT INFO -- #677658909 Events 8 8 6 6 6 6 - - 6 -TrigSignatureMoniMT INFO -- #677658909 Features 7 7 7 7 - - -TrigSignatureMoniMT INFO HLT_mu24_mu10noL1_L1MU20 #2563354236 -TrigSignatureMoniMT INFO -- #2563354236 Events 8 8 8 5 5 5 2 2 2 -TrigSignatureMoniMT INFO -- #2563354236 Features 10 6 6 6 3 3 -TrigSignatureMoniMT INFO HLT_mu26_L1MU20 #311138376 -TrigSignatureMoniMT INFO -- #311138376 Events 8 8 8 5 4 3 - - 3 -TrigSignatureMoniMT INFO -- #311138376 Features 10 6 5 4 - - -TrigSignatureMoniMT INFO HLT_mu26_ivarmedium_L1MU20 #3411723090 -TrigSignatureMoniMT INFO -- #3411723090 Events 8 8 8 5 4 3 2 - 2 -TrigSignatureMoniMT INFO -- #3411723090 Features 10 6 5 4 2 - -TrigSignatureMoniMT INFO HLT_mu26_mu10noL1_L1MU20 #2318302287 -TrigSignatureMoniMT INFO -- #2318302287 Events 8 8 8 5 4 3 1 1 1 -TrigSignatureMoniMT INFO -- #2318302287 Features 10 6 5 4 2 2 -TrigSignatureMoniMT INFO HLT_mu26_mu8noL1_L1MU20 #2233067926 -TrigSignatureMoniMT INFO -- #2233067926 Events 8 8 8 5 4 3 1 1 1 -TrigSignatureMoniMT INFO -- #2233067926 Features 10 6 5 4 2 2 -TrigSignatureMoniMT INFO HLT_mu28_ivarmedium_L1MU20 #1963262787 -TrigSignatureMoniMT INFO -- #1963262787 Events 8 8 8 5 4 3 2 - 2 -TrigSignatureMoniMT INFO -- #1963262787 Features 10 6 5 3 2 - -TrigSignatureMoniMT INFO HLT_mu28_mu8noL1_L1MU20 #86648125 -TrigSignatureMoniMT INFO -- #86648125 Events 8 8 8 5 4 3 1 1 1 -TrigSignatureMoniMT INFO -- #86648125 Features 10 6 5 3 1 1 -TrigSignatureMoniMT INFO HLT_mu35_ivarmedium_L1MU20 #597064890 -TrigSignatureMoniMT INFO -- #597064890 Events 8 8 8 5 3 2 1 - 1 -TrigSignatureMoniMT INFO -- #597064890 Features 10 6 4 2 1 - -TrigSignatureMoniMT INFO HLT_mu50_L1MU20 #3657158931 -TrigSignatureMoniMT INFO -- #3657158931 Events 8 8 8 5 1 1 - - 1 -TrigSignatureMoniMT INFO -- #3657158931 Features 10 6 1 1 - - -TrigSignatureMoniMT INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU20 #827327262 -TrigSignatureMoniMT INFO -- #827327262 Events 8 8 8 5 1 1 1 - 1 -TrigSignatureMoniMT INFO -- #827327262 Features 10 6 1 1 1 - -TrigSignatureMoniMT INFO HLT_mu60_0eta105_msonly_L1MU20 #1642591450 -TrigSignatureMoniMT INFO -- #1642591450 Events 8 8 1 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1642591450 Features 2 0 0 - - - -TrigSignatureMoniMT INFO HLT_mu60_L1MU20 #2871837722 -TrigSignatureMoniMT INFO -- #2871837722 Events 8 8 8 5 1 1 - - 1 -TrigSignatureMoniMT INFO -- #2871837722 Features 10 6 1 1 - - -TrigSignatureMoniMT INFO HLT_mu6Comb_L1MU6 #996392590 -TrigSignatureMoniMT INFO -- #996392590 Events 10 10 10 10 - - - - 10 -TrigSignatureMoniMT INFO -- #996392590 Features 14 13 - - - - -TrigSignatureMoniMT INFO HLT_mu6_L1MU6 #2560542253 -TrigSignatureMoniMT INFO -- #2560542253 Events 10 10 10 10 10 10 - - 10 -TrigSignatureMoniMT INFO -- #2560542253 Features 14 13 16 21 - - -TrigSignatureMoniMT INFO HLT_mu6_idperf_L1MU6 #934918532 -TrigSignatureMoniMT INFO -- #934918532 Events 10 10 10 10 10 10 - - 10 -TrigSignatureMoniMT INFO -- #934918532 Features 14 14 17 27 - - -TrigSignatureMoniMT INFO HLT_mu6_ivarmedium_L1MU6 #1012713062 -TrigSignatureMoniMT INFO -- #1012713062 Events 10 10 10 10 10 10 6 - 6 -TrigSignatureMoniMT INFO -- #1012713062 Features 14 13 16 21 6 - -TrigSignatureMoniMT INFO HLT_mu6_msonly_L1MU6 #3895421032 -TrigSignatureMoniMT INFO -- #3895421032 Events 10 10 10 0 10 - - - 10 -TrigSignatureMoniMT INFO -- #3895421032 Features 14 0 17 - - - -TrigSignatureMoniMT INFO HLT_mu6_mu4_L12MU4 #1713982776 -TrigSignatureMoniMT INFO -- #1713982776 Events 4 4 4 4 4 4 - - 4 -TrigSignatureMoniMT INFO -- #1713982776 Features 8 8 12 18 - - -TrigSignatureMoniMT INFO HLT_mu6_mu6noL1_L1MU6 #451489897 -TrigSignatureMoniMT INFO -- #451489897 Events 10 10 10 10 10 10 5 4 4 -TrigSignatureMoniMT INFO -- #451489897 Features 14 13 16 21 8 7 -TrigSignatureMoniMT INFO HLT_mu6fast_L1MU6 #3518031697 -TrigSignatureMoniMT INFO -- #3518031697 Events 10 10 10 - - - - - 10 -TrigSignatureMoniMT INFO -- #3518031697 Features 14 - - - - - -TrigSignatureMoniMT INFO HLT_mu80_L1MU20 #387900377 -TrigSignatureMoniMT INFO -- #387900377 Events 8 8 8 5 0 0 - - 0 -TrigSignatureMoniMT INFO -- #387900377 Features 10 6 0 0 - - -TrigSignatureMoniMT INFO HLT_mu80_msonly_3layersEC_L1MU20 #761101109 -TrigSignatureMoniMT INFO -- #761101109 Events 8 8 8 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #761101109 Features 10 0 0 - - - -TrigSignatureMoniMT INFO HLT_mu8_L1MU6 #1467711434 -TrigSignatureMoniMT INFO -- #1467711434 Events 10 10 10 10 10 10 - - 10 -TrigSignatureMoniMT INFO -- #1467711434 Features 14 13 15 19 - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM10VH #314199913 -TrigSignatureMoniMT INFO -- #314199913 Events 11 11 - - - - - - 11 -TrigSignatureMoniMT INFO -- #314199913 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM12 #3885916609 -TrigSignatureMoniMT INFO -- #3885916609 Events 16 16 - - - - - - 16 -TrigSignatureMoniMT INFO -- #3885916609 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM15 #480733925 -TrigSignatureMoniMT INFO -- #480733925 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #480733925 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM15VH #2374865899 -TrigSignatureMoniMT INFO -- #2374865899 Events 8 8 - - - - - - 8 -TrigSignatureMoniMT INFO -- #2374865899 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM20VH #3719542824 -TrigSignatureMoniMT INFO -- #3719542824 Events 7 7 - - - - - - 7 -TrigSignatureMoniMT INFO -- #3719542824 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM22VHI #1723589313 -TrigSignatureMoniMT INFO -- #1723589313 Events 6 6 - - - - - - 6 -TrigSignatureMoniMT INFO -- #1723589313 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM3 #4169267792 -TrigSignatureMoniMT INFO -- #4169267792 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #4169267792 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM7 #3226970354 -TrigSignatureMoniMT INFO -- #3226970354 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #3226970354 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM8VH #4065285611 -TrigSignatureMoniMT INFO -- #4065285611 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #4065285611 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J100 #1026959128 -TrigSignatureMoniMT INFO -- #1026959128 Events 3 3 - - - - - - 3 -TrigSignatureMoniMT INFO -- #1026959128 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J12 #2640820608 -TrigSignatureMoniMT INFO -- #2640820608 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #2640820608 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J120 #2116228652 -TrigSignatureMoniMT INFO -- #2116228652 Events 1 1 - - - - - - 1 -TrigSignatureMoniMT INFO -- #2116228652 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J15 #1976430774 -TrigSignatureMoniMT INFO -- #1976430774 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #1976430774 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J20 #2241112369 -TrigSignatureMoniMT INFO -- #2241112369 Events 19 19 - - - - - - 19 -TrigSignatureMoniMT INFO -- #2241112369 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J25 #39428635 -TrigSignatureMoniMT INFO -- #39428635 Events 17 17 - - - - - - 17 -TrigSignatureMoniMT INFO -- #39428635 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J30 #3523994129 -TrigSignatureMoniMT INFO -- #3523994129 Events 17 17 - - - - - - 17 -TrigSignatureMoniMT INFO -- #3523994129 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J40 #1497591431 -TrigSignatureMoniMT INFO -- #1497591431 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #1497591431 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J400 #2494874701 -TrigSignatureMoniMT INFO -- #2494874701 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2494874701 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J50 #3346352675 -TrigSignatureMoniMT INFO -- #3346352675 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #3346352675 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J75 #1651897827 -TrigSignatureMoniMT INFO -- #1651897827 Events 6 6 - - - - - - 6 -TrigSignatureMoniMT INFO -- #1651897827 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J85 #166231461 -TrigSignatureMoniMT INFO -- #166231461 Events 5 5 - - - - - - 5 -TrigSignatureMoniMT INFO -- #166231461 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1RD0_EMPTY #914660695 -TrigSignatureMoniMT INFO -- #914660695 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #914660695 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1RD0_FILLED #211699639 -TrigSignatureMoniMT INFO -- #211699639 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #211699639 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU12 #4248050338 -TrigSignatureMoniMT INFO -- #4248050338 Events 18 18 - - - - - - 18 -TrigSignatureMoniMT INFO -- #4248050338 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU12IM #357557968 -TrigSignatureMoniMT INFO -- #357557968 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #357557968 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU20 #3602376876 -TrigSignatureMoniMT INFO -- #3602376876 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #3602376876 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU20IM #1931583332 -TrigSignatureMoniMT INFO -- #1931583332 Events 10 10 - - - - - - 10 -TrigSignatureMoniMT INFO -- #1931583332 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU30 #1944789678 -TrigSignatureMoniMT INFO -- #1944789678 Events 13 13 - - - - - - 13 -TrigSignatureMoniMT INFO -- #1944789678 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU40 #1394621652 -TrigSignatureMoniMT INFO -- #1394621652 Events 7 7 - - - - - - 7 -TrigSignatureMoniMT INFO -- #1394621652 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU60 #3332424451 -TrigSignatureMoniMT INFO -- #3332424451 Events 5 5 - - - - - - 5 -TrigSignatureMoniMT INFO -- #3332424451 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU8 #3165115874 -TrigSignatureMoniMT INFO -- #3165115874 Events 19 19 - - - - - - 19 -TrigSignatureMoniMT INFO -- #3165115874 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE10 #1583053368 -TrigSignatureMoniMT INFO -- #1583053368 Events 19 19 - - - - - - 19 -TrigSignatureMoniMT INFO -- #1583053368 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE30 #2047368922 -TrigSignatureMoniMT INFO -- #2047368922 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #2047368922 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE300 #1315853555 -TrigSignatureMoniMT INFO -- #1315853555 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #1315853555 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE35 #2313039014 -TrigSignatureMoniMT INFO -- #2313039014 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #2313039014 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE40 #4293469116 -TrigSignatureMoniMT INFO -- #4293469116 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #4293469116 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE45 #2365048177 -TrigSignatureMoniMT INFO -- #2365048177 Events 13 13 - - - - - - 13 -TrigSignatureMoniMT INFO -- #2365048177 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE50 #1168752081 -TrigSignatureMoniMT INFO -- #1168752081 Events 10 10 - - - - - - 10 -TrigSignatureMoniMT INFO -- #1168752081 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE55 #268928384 -TrigSignatureMoniMT INFO -- #268928384 Events 8 8 - - - - - - 8 -TrigSignatureMoniMT INFO -- #268928384 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE60 #4154240531 -TrigSignatureMoniMT INFO -- #4154240531 Events 8 8 - - - - - - 8 -TrigSignatureMoniMT INFO -- #4154240531 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE70 #3765216228 -TrigSignatureMoniMT INFO -- #3765216228 Events 4 4 - - - - - - 4 -TrigSignatureMoniMT INFO -- #3765216228 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE80 #2742079961 -TrigSignatureMoniMT INFO -- #2742079961 Events 3 3 - - - - - - 3 -TrigSignatureMoniMT INFO -- #2742079961 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM3_EMPTY #2458124284 -TrigSignatureMoniMT INFO -- #2458124284 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2458124284 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM7_EMPTY #299938202 -TrigSignatureMoniMT INFO -- #299938202 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #299938202 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J12_EMPTY #3144024902 -TrigSignatureMoniMT INFO -- #3144024902 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3144024902 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J12_FIRSTEMPTY #3840098930 -TrigSignatureMoniMT INFO -- #3840098930 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3840098930 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_31ETA49_EMPTY #4143623058 -TrigSignatureMoniMT INFO -- #4143623058 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #4143623058 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_EMPTY #2991490897 -TrigSignatureMoniMT INFO -- #2991490897 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2991490897 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY #2214697960 -TrigSignatureMoniMT INFO -- #2214697960 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2214697960 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1RD1_BGRP10 #48519027 -TrigSignatureMoniMT INFO -- #48519027 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #48519027 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1RD1_EMPTY #3925252528 -TrigSignatureMoniMT INFO -- #3925252528 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3925252528 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_EMPTY #56818284 -TrigSignatureMoniMT INFO -- #56818284 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #56818284 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_FILLED #1198298874 -TrigSignatureMoniMT INFO -- #1198298874 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #1198298874 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_UNPAIRED_ISO #2536676873 -TrigSignatureMoniMT INFO -- #2536676873 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2536676873 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_mb_L1RD2_EMPTY #3788962163 -TrigSignatureMoniMT INFO -- #3788962163 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3788962163 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_zb_L1ZB #1289992951 -TrigSignatureMoniMT INFO -- #1289992951 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #1289992951 Features - - - - - - -TrigSignatureMoniMT INFO HLT_sct_noise_SCTPEB_L1RD0_EMPTY #3024203296 -TrigSignatureMoniMT INFO -- #3024203296 Events 0 0 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3024203296 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU100 #2342716369 -TrigSignatureMoniMT INFO -- #2342716369 Events 0 0 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #2342716369 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU12 #372992233 -TrigSignatureMoniMT INFO -- #372992233 Events 18 18 18 18 - - - - 18 -TrigSignatureMoniMT INFO -- #372992233 Features 42 42 - - - - -TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU60 #1376650121 -TrigSignatureMoniMT INFO -- #1376650121 Events 5 5 5 5 - - - - 5 -TrigSignatureMoniMT INFO -- #1376650121 Features 6 6 - - - - -TrigSignatureMoniMT INFO HLT_tau160_idperf_track_L1TAU100 #714660857 -TrigSignatureMoniMT INFO -- #714660857 Events 0 0 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #714660857 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_tau160_idperf_tracktwoMVA_L1TAU100 #2725693236 -TrigSignatureMoniMT INFO -- #2725693236 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #2725693236 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau160_idperf_tracktwo_L1TAU100 #886074432 -TrigSignatureMoniMT INFO -- #886074432 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #886074432 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100 #1747754287 -TrigSignatureMoniMT INFO -- #1747754287 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1747754287 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau160_perf_tracktwoMVA_L1TAU100 #2334140248 -TrigSignatureMoniMT INFO -- #2334140248 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #2334140248 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau160_perf_tracktwo_L1TAU100 #1799096347 -TrigSignatureMoniMT INFO -- #1799096347 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1799096347 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_idperf_track_L1TAU12IM #554271976 -TrigSignatureMoniMT INFO -- #554271976 Events 14 14 14 14 - - - - 14 -TrigSignatureMoniMT INFO -- #554271976 Features 24 24 - - - - -TrigSignatureMoniMT INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM #988149859 -TrigSignatureMoniMT INFO -- #988149859 Events 14 14 14 13 13 - - - 13 -TrigSignatureMoniMT INFO -- #988149859 Features 24 17 17 - - - -TrigSignatureMoniMT INFO HLT_tau25_idperf_tracktwo_L1TAU12IM #3346942453 -TrigSignatureMoniMT INFO -- #3346942453 Events 14 14 14 13 13 - - - 13 -TrigSignatureMoniMT INFO -- #3346942453 Features 24 17 17 - - - -TrigSignatureMoniMT INFO HLT_tau25_looseRNN_tracktwoMVA_L1TAU12IM #169452969 -TrigSignatureMoniMT INFO -- #169452969 Events 14 14 12 11 10 - - - 10 -TrigSignatureMoniMT INFO -- #169452969 Features 22 15 13 - - - -TrigSignatureMoniMT INFO HLT_tau25_looseRNN_tracktwo_L1TAU12IM #2490017573 -TrigSignatureMoniMT INFO -- #2490017573 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #2490017573 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwoEF_L1TAU12IM #506456080 -TrigSignatureMoniMT INFO -- #506456080 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #506456080 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwoMVA_L1TAU12IM #4055280067 -TrigSignatureMoniMT INFO -- #4055280067 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #4055280067 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwo_L1TAU12IM #1433975745 -TrigSignatureMoniMT INFO -- #1433975745 Events 14 14 12 11 7 - - - 7 -TrigSignatureMoniMT INFO -- #1433975745 Features 22 15 7 - - - -TrigSignatureMoniMT INFO HLT_tau25_mediumRNN_tracktwoMVA_L1TAU12IM #2222894847 -TrigSignatureMoniMT INFO -- #2222894847 Events 14 14 12 11 7 - - - 7 -TrigSignatureMoniMT INFO -- #2222894847 Features 22 15 9 - - - -TrigSignatureMoniMT INFO HLT_tau25_mediumRNN_tracktwo_L1TAU12IM #698603885 -TrigSignatureMoniMT INFO -- #698603885 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #698603885 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_perf_tracktwoMVA_L1TAU12IM #112814536 -TrigSignatureMoniMT INFO -- #112814536 Events 14 14 14 13 13 - - - 13 -TrigSignatureMoniMT INFO -- #112814536 Features 24 17 17 - - - -TrigSignatureMoniMT INFO HLT_tau25_perf_tracktwo_L1TAU12IM #1129072492 -TrigSignatureMoniMT INFO -- #1129072492 Events 14 14 14 13 13 - - - 13 -TrigSignatureMoniMT INFO -- #1129072492 Features 24 17 17 - - - -TrigSignatureMoniMT INFO HLT_tau25_tightRNN_tracktwoMVA_L1TAU12IM #2472860683 -TrigSignatureMoniMT INFO -- #2472860683 Events 14 14 12 11 5 - - - 5 -TrigSignatureMoniMT INFO -- #2472860683 Features 22 15 6 - - - -TrigSignatureMoniMT INFO HLT_tau25_tightRNN_tracktwo_L1TAU12IM #2537544560 -TrigSignatureMoniMT INFO -- #2537544560 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #2537544560 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_verylooseRNN_tracktwoMVA_L1TAU12IM #2992830434 -TrigSignatureMoniMT INFO -- #2992830434 Events 14 14 12 11 10 - - - 10 -TrigSignatureMoniMT INFO -- #2992830434 Features 22 15 14 - - - -TrigSignatureMoniMT INFO HLT_tau25_verylooseRNN_tracktwo_L1TAU12IM #1275052132 -TrigSignatureMoniMT INFO -- #1275052132 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #1275052132 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM #2456480859 -TrigSignatureMoniMT INFO -- #2456480859 Events 14 14 11 10 6 - - - 6 -TrigSignatureMoniMT INFO -- #2456480859 Features 20 14 8 - - - -TrigSignatureMoniMT INFO HLT_tilecalib_laser_TilePEB_L1CALREQ2 #1063154655 -TrigSignatureMoniMT INFO -- #1063154655 Events 0 0 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #1063154655 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_timeburner_L1All #819160059 -TrigSignatureMoniMT INFO -- #819160059 Events 20 20 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #819160059 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_xe100_mht_L1XE50 #532175988 -TrigSignatureMoniMT INFO -- #532175988 Events 10 10 6 - - - - - 6 -TrigSignatureMoniMT INFO -- #532175988 Features 6 - - - - - -TrigSignatureMoniMT INFO HLT_xe100_pfsum_L1XE50 #1890237897 -TrigSignatureMoniMT INFO -- #1890237897 Events 10 10 2 - - - - - 2 -TrigSignatureMoniMT INFO -- #1890237897 Features 2 - - - - - -TrigSignatureMoniMT INFO HLT_xe100_tcpufit_L1XE50 #2803198799 -TrigSignatureMoniMT INFO -- #2803198799 Events 10 10 6 - - - - - 6 -TrigSignatureMoniMT INFO -- #2803198799 Features 6 - - - - - -TrigSignatureMoniMT INFO HLT_xe100_trkmht_L1XE50 #1055916731 -TrigSignatureMoniMT INFO -- #1055916731 Events 10 10 5 - - - - - 5 -TrigSignatureMoniMT INFO -- #1055916731 Features 5 - - - - - -TrigSignatureMoniMT INFO HLT_xe110_mht_L1XE50 #3030733259 -TrigSignatureMoniMT INFO -- #3030733259 Events 10 10 6 - - - - - 6 -TrigSignatureMoniMT INFO -- #3030733259 Features 6 - - - - - -TrigSignatureMoniMT INFO HLT_xe110_tc_em_L1XE50 #607113828 -TrigSignatureMoniMT INFO -- #607113828 Events 10 10 5 - - - - - 5 -TrigSignatureMoniMT INFO -- #607113828 Features 5 - - - - - -TrigSignatureMoniMT INFO HLT_xe110_tcpufit_L1XE50 #892853397 -TrigSignatureMoniMT INFO -- #892853397 Events 10 10 6 - - - - - 6 -TrigSignatureMoniMT INFO -- #892853397 Features 6 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_cell_L1XE10 #1649696554 -TrigSignatureMoniMT INFO -- #1649696554 Events 19 19 17 - - - - - 17 -TrigSignatureMoniMT INFO -- #1649696554 Features 17 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_cell_xe30_tcpufit_L1XE10 #3768353779 -TrigSignatureMoniMT INFO -- #3768353779 Events 19 19 14 - - - - - 14 -TrigSignatureMoniMT INFO -- #3768353779 Features 14 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_mht_L1XE10 #3626903018 -TrigSignatureMoniMT INFO -- #3626903018 Events 19 19 19 - - - - - 19 -TrigSignatureMoniMT INFO -- #3626903018 Features 19 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_pfsum_L1XE10 #998713382 -TrigSignatureMoniMT INFO -- #998713382 Events 19 19 14 - - - - - 14 -TrigSignatureMoniMT INFO -- #998713382 Features 14 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_tcpufit_L1XE10 #1583719916 -TrigSignatureMoniMT INFO -- #1583719916 Events 19 19 14 - - - - - 14 -TrigSignatureMoniMT INFO -- #1583719916 Features 14 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_trkmht_L1XE10 #2468872349 -TrigSignatureMoniMT INFO -- #2468872349 Events 19 19 17 - - - - - 17 -TrigSignatureMoniMT INFO -- #2468872349 Features 17 - - - - - -TrigSignatureMoniMT INFO HLT_xe65_cell_L1XE50 #531141817 -TrigSignatureMoniMT INFO -- #531141817 Events 10 10 7 - - - - - 7 -TrigSignatureMoniMT INFO -- #531141817 Features 7 - - - - - -TrigSignatureMoniMT INFO HLT_xe65_cell_xe110_tcpufit_L1XE50 #115518400 -TrigSignatureMoniMT INFO -- #115518400 Events 10 10 5 - - - - - 5 -TrigSignatureMoniMT INFO -- #115518400 Features 5 - - - - - +TrigSignatureMoniMT INFO HLT_2e17_etcut_L12EM15VH #3136730292 +TrigSignatureMoniMT INFO -- #3136730292 Events 2 2 2 2 2 - - - 2 +TrigSignatureMoniMT INFO -- #3136730292 Features 12 296 14 - - - +TrigSignatureMoniMT INFO HLT_2e17_lhvloose_L12EM15VH #2280638160 +TrigSignatureMoniMT INFO -- #2280638160 Events 2 2 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #2280638160 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2e17_lhvloose_L12EM3 #1767768251 +TrigSignatureMoniMT INFO -- #1767768251 Events 20 20 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1767768251 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2e3_etcut_L12EM3 #2613484113 +TrigSignatureMoniMT INFO -- #2613484113 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #2613484113 Features 342 3686 780 - - - +TrigSignatureMoniMT INFO HLT_2g20_tight_L12EM15VH #3837353071 +TrigSignatureMoniMT INFO -- #3837353071 Events 2 2 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #3837353071 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2g35_etcut_L12EM20VH #58053304 +TrigSignatureMoniMT INFO -- #58053304 Events 2 2 1 1 0 - - - 0 +TrigSignatureMoniMT INFO -- #58053304 Features 4 4 0 - - - +TrigSignatureMoniMT INFO HLT_2g35_medium_L12EM20VH #3965466087 +TrigSignatureMoniMT INFO -- #3965466087 Events 2 2 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #3965466087 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J100 #1295975955 +TrigSignatureMoniMT INFO -- #1295975955 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #1295975955 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_2j60_L1J15 #927735533 +TrigSignatureMoniMT INFO -- #927735533 Events 20 20 10 - - - - - 10 +TrigSignatureMoniMT INFO -- #927735533 Features 28 - - - - - +TrigSignatureMoniMT INFO HLT_2mu10_bJpsimumu_L12MU10 #3498558358 +TrigSignatureMoniMT INFO -- #3498558358 Events 3 3 3 3 3 2 - - 0 +TrigSignatureMoniMT INFO -- #3498558358 Features 12 12 16 4 - - +TrigSignatureMoniMT INFO HLT_2mu10_bUpsimumu_L12MU10 #234102568 +TrigSignatureMoniMT INFO -- #234102568 Events 3 3 3 3 3 2 - - 0 +TrigSignatureMoniMT INFO -- #234102568 Features 12 12 16 4 - - +TrigSignatureMoniMT INFO HLT_2mu14_L12MU10 #2619091790 +TrigSignatureMoniMT INFO -- #2619091790 Events 3 3 3 1 1 1 - - 1 +TrigSignatureMoniMT INFO -- #2619091790 Features 12 4 4 4 - - +TrigSignatureMoniMT INFO HLT_2mu15_L12MU10 #557204938 +TrigSignatureMoniMT INFO -- #557204938 Events 3 3 3 1 1 1 - - 1 +TrigSignatureMoniMT INFO -- #557204938 Features 12 4 4 4 - - +TrigSignatureMoniMT INFO HLT_2mu4_L12MU4 #2999632714 +TrigSignatureMoniMT INFO -- #2999632714 Events 4 4 4 4 4 4 - - 4 +TrigSignatureMoniMT INFO -- #2999632714 Features 16 16 24 36 - - +TrigSignatureMoniMT INFO HLT_2mu4_bDimu_L12MU4 #1730084172 +TrigSignatureMoniMT INFO -- #1730084172 Events 4 4 4 4 4 4 - - 0 +TrigSignatureMoniMT INFO -- #1730084172 Features 16 16 24 18 - - +TrigSignatureMoniMT INFO HLT_2mu4_bJpsimumu_L12MU4 #4276347155 +TrigSignatureMoniMT INFO -- #4276347155 Events 4 4 4 4 4 4 - - 0 +TrigSignatureMoniMT INFO -- #4276347155 Features 16 16 24 18 - - +TrigSignatureMoniMT INFO HLT_2mu4_bUpsimumu_L12MU4 #4008168535 +TrigSignatureMoniMT INFO -- #4008168535 Events 4 4 4 4 4 4 - - 0 +TrigSignatureMoniMT INFO -- #4008168535 Features 16 16 24 18 - - +TrigSignatureMoniMT INFO HLT_2mu4_muonqual_L12MU4 #1584776935 +TrigSignatureMoniMT INFO -- #1584776935 Events 4 4 4 4 4 4 - - 4 +TrigSignatureMoniMT INFO -- #1584776935 Features 16 16 24 36 - - +TrigSignatureMoniMT INFO HLT_2mu6Comb_L12MU6 #2046267508 +TrigSignatureMoniMT INFO -- #2046267508 Events 4 4 4 3 - - - - 3 +TrigSignatureMoniMT INFO -- #2046267508 Features 16 12 - - - - +TrigSignatureMoniMT INFO HLT_2mu6_10invm70_L1MU6 #1316992871 +TrigSignatureMoniMT INFO -- #1316992871 Events 10 10 4 3 3 3 - - 3 +TrigSignatureMoniMT INFO -- #1316992871 Features 16 12 18 28 - - +TrigSignatureMoniMT INFO HLT_2mu6_Dr_L12MU4 #3304584056 +TrigSignatureMoniMT INFO -- #3304584056 Events 4 4 4 3 - - - - 3 +TrigSignatureMoniMT INFO -- #3304584056 Features 16 12 - - - - +TrigSignatureMoniMT INFO HLT_2mu6_L12MU6 #1747073535 +TrigSignatureMoniMT INFO -- #1747073535 Events 4 4 4 3 3 3 - - 3 +TrigSignatureMoniMT INFO -- #1747073535 Features 16 12 18 28 - - +TrigSignatureMoniMT INFO HLT_2mu6_muonqual_L12MU6 #2398136098 +TrigSignatureMoniMT INFO -- #2398136098 Events 4 4 4 3 3 3 - - 3 +TrigSignatureMoniMT INFO -- #2398136098 Features 16 12 18 28 - - +TrigSignatureMoniMT INFO HLT_3j200_L1J100 #2199422919 +TrigSignatureMoniMT INFO -- #2199422919 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #2199422919 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_3j200_L1J20 #493765146 +TrigSignatureMoniMT INFO -- #493765146 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #493765146 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_3mu6_L13MU6 #1832399408 +TrigSignatureMoniMT INFO -- #1832399408 Events 0 0 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1832399408 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_3mu6_msonly_L13MU6 #1199773318 +TrigSignatureMoniMT INFO -- #1199773318 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1199773318 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_3mu8_msonly_L13MU6 #424835335 +TrigSignatureMoniMT INFO -- #424835335 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #424835335 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_4mu4_L14MU4 #1834383636 +TrigSignatureMoniMT INFO -- #1834383636 Events 0 0 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1834383636 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_5j70_0eta240_L14J20 #1175391812 +TrigSignatureMoniMT INFO -- #1175391812 Events 7 7 1 - - - - - 1 +TrigSignatureMoniMT INFO -- #1175391812 Features 5 - - - - - +TrigSignatureMoniMT INFO HLT_beamspot_allTE_trkfast_BeamSpotPEB_L1J15 #3989372080 +TrigSignatureMoniMT INFO -- #3989372080 Events 20 20 20 20 - - - - 20 +TrigSignatureMoniMT INFO -- #3989372080 Features 20 20 - - - - +TrigSignatureMoniMT INFO HLT_beamspot_trkFS_trkfast_BeamSpotPEB_L1J15 #628534730 +TrigSignatureMoniMT INFO -- #628534730 Events 20 20 20 20 - - - - 20 +TrigSignatureMoniMT INFO -- #628534730 Features 20 20 - - - - +TrigSignatureMoniMT INFO HLT_costmonitor_CostMonDS_L1All #843341480 +TrigSignatureMoniMT INFO -- #843341480 Events 20 20 20 - - - - - 20 +TrigSignatureMoniMT INFO -- #843341480 Features 20 - - - - - +TrigSignatureMoniMT INFO HLT_e140_lhloose_L1EM22VHI #3471067710 +TrigSignatureMoniMT INFO -- #3471067710 Events 6 6 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #3471067710 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_e140_lhloose_nod0_L1EM22VHI #4128870680 +TrigSignatureMoniMT INFO -- #4128870680 Events 6 6 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #4128870680 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_e17_lhloose_mu14_L1EM15VH_MU10 #899946230 +TrigSignatureMoniMT INFO -- #899946230 Events 3 3 2 2 2 2 - - 2 +TrigSignatureMoniMT INFO -- #899946230 Features 2 45 4 2 - - +TrigSignatureMoniMT INFO HLT_e17_lhvloose_nod0_L1EM15VH #140779220 +TrigSignatureMoniMT INFO -- #140779220 Events 8 8 6 6 6 5 - - 5 +TrigSignatureMoniMT INFO -- #140779220 Features 6 78 10 5 - - +TrigSignatureMoniMT INFO HLT_e26_etcut_L1EM22VHI #1703681121 +TrigSignatureMoniMT INFO -- #1703681121 Events 6 6 6 6 6 - - - 6 +TrigSignatureMoniMT INFO -- #1703681121 Features 7 133 7 - - - +TrigSignatureMoniMT INFO HLT_e26_lhtight_L1EM22VHI #1995263521 +TrigSignatureMoniMT INFO -- #1995263521 Events 6 6 5 5 5 4 - - 4 +TrigSignatureMoniMT INFO -- #1995263521 Features 5 64 8 4 - - +TrigSignatureMoniMT INFO HLT_e26_lhtight_nod0_L1EM22VHI #939763520 +TrigSignatureMoniMT INFO -- #939763520 Events 6 6 5 5 5 4 - - 4 +TrigSignatureMoniMT INFO -- #939763520 Features 5 64 8 4 - - +TrigSignatureMoniMT INFO HLT_e26_lhtight_nod0_L1EM24VHI #4227411116 +TrigSignatureMoniMT INFO -- #4227411116 Events 6 6 5 5 5 4 - - 4 +TrigSignatureMoniMT INFO -- #4227411116 Features 5 64 8 4 - - +TrigSignatureMoniMT INFO HLT_e300_etcut_L1EM22VHI #2128128255 +TrigSignatureMoniMT INFO -- #2128128255 Events 6 6 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #2128128255 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_e3_etcut1step_mu26_L1EM8I_MU10 #2209076666 +TrigSignatureMoniMT INFO -- #2209076666 Events 5 5 3 1 1 1 - - 1 +TrigSignatureMoniMT INFO -- #2209076666 Features 3 1 1 1 - - +TrigSignatureMoniMT INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU10 #2086577378 +TrigSignatureMoniMT INFO -- #2086577378 Events 5 5 3 - - - - - 3 +TrigSignatureMoniMT INFO -- #2086577378 Features 3 - - - - - +TrigSignatureMoniMT INFO HLT_e3_etcut_L1EM3 #683953566 +TrigSignatureMoniMT INFO -- #683953566 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #683953566 Features 171 1843 390 - - - +TrigSignatureMoniMT INFO HLT_e5_etcut_L1EM3 #324908483 +TrigSignatureMoniMT INFO -- #324908483 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #324908483 Features 137 1654 190 - - - +TrigSignatureMoniMT INFO HLT_e5_lhloose_noringer_L1EM3 #1053337356 +TrigSignatureMoniMT INFO -- #1053337356 Events 20 20 17 17 17 4 - - 4 +TrigSignatureMoniMT INFO -- #1053337356 Features 56 651 116 5 - - +TrigSignatureMoniMT INFO HLT_e5_lhmedium_noringer_L1EM3 #176627878 +TrigSignatureMoniMT INFO -- #176627878 Events 20 20 16 16 16 4 - - 4 +TrigSignatureMoniMT INFO -- #176627878 Features 48 531 93 5 - - +TrigSignatureMoniMT INFO HLT_e5_lhtight_noringer_L1EM3 #2758326765 +TrigSignatureMoniMT INFO -- #2758326765 Events 20 20 16 16 16 4 - - 4 +TrigSignatureMoniMT INFO -- #2758326765 Features 45 513 84 5 - - +TrigSignatureMoniMT INFO HLT_e5_lhtight_noringer_nod0_L1EM3 #1690619419 +TrigSignatureMoniMT INFO -- #1690619419 Events 20 20 16 16 16 4 - - 4 +TrigSignatureMoniMT INFO -- #1690619419 Features 45 513 84 5 - - +TrigSignatureMoniMT INFO HLT_e60_lhmedium_L1EM22VHI #298591874 +TrigSignatureMoniMT INFO -- #298591874 Events 6 6 2 2 2 2 - - 2 +TrigSignatureMoniMT INFO -- #298591874 Features 2 33 4 2 - - +TrigSignatureMoniMT INFO HLT_e60_lhmedium_nod0_L1EM22VHI #4115486024 +TrigSignatureMoniMT INFO -- #4115486024 Events 6 6 2 2 2 2 - - 2 +TrigSignatureMoniMT INFO -- #4115486024 Features 2 33 4 2 - - +TrigSignatureMoniMT INFO HLT_e7_etcut_L1EM3 #1959043579 +TrigSignatureMoniMT INFO -- #1959043579 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #1959043579 Features 89 1135 112 - - - +TrigSignatureMoniMT INFO HLT_e7_lhmedium_mu24_L1MU20 #2970063918 +TrigSignatureMoniMT INFO -- #2970063918 Events 8 8 7 5 5 1 - - 1 +TrigSignatureMoniMT INFO -- #2970063918 Features 9 72 14 1 - - +TrigSignatureMoniMT INFO HLT_g140_etcut_L1EM22VHI #3879926061 +TrigSignatureMoniMT INFO -- #3879926061 Events 6 6 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #3879926061 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_g140_etcut_L1EM24VHI #1045486446 +TrigSignatureMoniMT INFO -- #1045486446 Events 6 6 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1045486446 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_g140_loose_L1EM22VHI #1776910226 +TrigSignatureMoniMT INFO -- #1776910226 Events 6 6 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1776910226 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_g20_etcut_LArPEB_L1EM15 #2706532790 +TrigSignatureMoniMT INFO -- #2706532790 Events 14 14 14 14 12 12 - - 12 +TrigSignatureMoniMT INFO -- #2706532790 Features 24 24 22 20 - - +TrigSignatureMoniMT INFO HLT_g25_loose_L1EM15VH #531040386 +TrigSignatureMoniMT INFO -- #531040386 Events 8 8 7 7 7 6 - - 6 +TrigSignatureMoniMT INFO -- #531040386 Features 9 9 18 7 - - +TrigSignatureMoniMT INFO HLT_g25_medium_L1EM15VH #3776886359 +TrigSignatureMoniMT INFO -- #3776886359 Events 8 8 7 7 7 6 - - 6 +TrigSignatureMoniMT INFO -- #3776886359 Features 7 7 13 6 - - +TrigSignatureMoniMT INFO HLT_g25_medium_mu24_ivarmedium_L1MU20 #1007052793 +TrigSignatureMoniMT INFO -- #1007052793 Events 8 8 2 1 1 1 0 - 0 +TrigSignatureMoniMT INFO -- #1007052793 Features 2 1 3 1 0 - +TrigSignatureMoniMT INFO HLT_g25_tight_L1EM15VH #3691147775 +TrigSignatureMoniMT INFO -- #3691147775 Events 8 8 7 7 7 5 - - 5 +TrigSignatureMoniMT INFO -- #3691147775 Features 7 7 13 5 - - +TrigSignatureMoniMT INFO HLT_g35_medium_g25_medium_L12EM20VH #1158879722 +TrigSignatureMoniMT INFO -- #1158879722 Events 2 2 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1158879722 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_g5_etcut_L1EM3 #471243435 +TrigSignatureMoniMT INFO -- #471243435 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #471243435 Features 137 137 190 - - - +TrigSignatureMoniMT INFO HLT_g5_etcut_LArPEB_L1EM3 #3486231698 +TrigSignatureMoniMT INFO -- #3486231698 Events 20 20 20 20 20 20 - - 20 +TrigSignatureMoniMT INFO -- #3486231698 Features 137 137 190 118 - - +TrigSignatureMoniMT INFO HLT_g5_loose_L1EM3 #3230088967 +TrigSignatureMoniMT INFO -- #3230088967 Events 20 20 17 17 17 9 - - 9 +TrigSignatureMoniMT INFO -- #3230088967 Features 56 56 116 12 - - +TrigSignatureMoniMT INFO HLT_g5_medium_L1EM3 #385248610 +TrigSignatureMoniMT INFO -- #385248610 Events 20 20 16 16 16 9 - - 9 +TrigSignatureMoniMT INFO -- #385248610 Features 48 48 93 12 - - +TrigSignatureMoniMT INFO HLT_g5_tight_L1EM3 #3280865118 +TrigSignatureMoniMT INFO -- #3280865118 Events 20 20 16 16 16 9 - - 9 +TrigSignatureMoniMT INFO -- #3280865118 Features 45 45 84 9 - - +TrigSignatureMoniMT INFO HLT_j0_perf_L1J12_EMPTY #1341875780 +TrigSignatureMoniMT INFO -- #1341875780 Events 0 0 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #1341875780 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 #4034799151 +TrigSignatureMoniMT INFO -- #4034799151 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #4034799151 Features 425 - - - - - +TrigSignatureMoniMT INFO HLT_j225_ftf_subjesgscIS_bmv2c1040_split_L1J100 #3992507557 +TrigSignatureMoniMT INFO -- #3992507557 Events 3 3 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #3992507557 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_j260_320eta490_L1J20 #3084792704 +TrigSignatureMoniMT INFO -- #3084792704 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3084792704 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j260_320eta490_L1J75_31ETA49 #3769257182 +TrigSignatureMoniMT INFO -- #3769257182 Events 2 2 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3769257182 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J100 #1211559599 +TrigSignatureMoniMT INFO -- #1211559599 Events 3 3 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #1211559599 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J100 #3706723666 +TrigSignatureMoniMT INFO -- #3706723666 Events 3 3 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #3706723666 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J100 #1837565816 +TrigSignatureMoniMT INFO -- #1837565816 Events 3 3 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #1837565816 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_j420_L1J100 #2659902019 +TrigSignatureMoniMT INFO -- #2659902019 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #2659902019 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j420_L1J20 #2205518067 +TrigSignatureMoniMT INFO -- #2205518067 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #2205518067 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j420_ftf_subjesgscIS_L1J20 #4179085188 +TrigSignatureMoniMT INFO -- #4179085188 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #4179085188 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j45_L1J15 #1364976160 +TrigSignatureMoniMT INFO -- #1364976160 Events 20 20 19 - - - - - 19 +TrigSignatureMoniMT INFO -- #1364976160 Features 50 - - - - - +TrigSignatureMoniMT INFO HLT_j45_cssktc_nojcalib_L1J20 #3295122398 +TrigSignatureMoniMT INFO -- #3295122398 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #3295122398 Features 27 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_L1J15 #868405538 +TrigSignatureMoniMT INFO -- #868405538 Events 20 20 19 - - - - - 19 +TrigSignatureMoniMT INFO -- #868405538 Features 50 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_csskpf_nojcalib_L1J20 #3533281867 +TrigSignatureMoniMT INFO -- #3533281867 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #3533281867 Features 25 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_pf_L1J20 #1335156103 +TrigSignatureMoniMT INFO -- #1335156103 Events 19 19 16 - - - - - 16 +TrigSignatureMoniMT INFO -- #1335156103 Features 31 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_pf_nojcalib_L1J20 #3658890913 +TrigSignatureMoniMT INFO -- #3658890913 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #3658890913 Features 29 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_011jvt_L1J15 #2857031468 +TrigSignatureMoniMT INFO -- #2857031468 Events 20 20 12 - - - - - 12 +TrigSignatureMoniMT INFO -- #2857031468 Features 20 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_015jvt_L1J15 #2938374624 +TrigSignatureMoniMT INFO -- #2938374624 Events 20 20 12 - - - - - 12 +TrigSignatureMoniMT INFO -- #2938374624 Features 19 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_059jvt_L1J15 #1593009344 +TrigSignatureMoniMT INFO -- #1593009344 Events 20 20 12 - - - - - 12 +TrigSignatureMoniMT INFO -- #1593009344 Features 19 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_L1J15 #3341539267 +TrigSignatureMoniMT INFO -- #3341539267 Events 20 20 19 - - - - - 19 +TrigSignatureMoniMT INFO -- #3341539267 Features 51 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J20 #991419339 +TrigSignatureMoniMT INFO -- #991419339 Events 19 19 19 4 - - - - 4 +TrigSignatureMoniMT INFO -- #991419339 Features 50 8 - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20 #1961149049 +TrigSignatureMoniMT INFO -- #1961149049 Events 19 19 19 19 - - - - 19 +TrigSignatureMoniMT INFO -- #1961149049 Features 50 50 - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_pf_L1J20 #761060030 +TrigSignatureMoniMT INFO -- #761060030 Events 19 19 16 - - - - - 16 +TrigSignatureMoniMT INFO -- #761060030 Features 31 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_L1J15 #1509925407 +TrigSignatureMoniMT INFO -- #1509925407 Events 20 20 18 - - - - - 18 +TrigSignatureMoniMT INFO -- #1509925407 Features 44 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_pf_L1J20 #4012311417 +TrigSignatureMoniMT INFO -- #4012311417 Events 19 19 16 - - - - - 16 +TrigSignatureMoniMT INFO -- #4012311417 Features 31 - - - - - +TrigSignatureMoniMT INFO HLT_j45_nojcalib_L1J20 #2042444294 +TrigSignatureMoniMT INFO -- #2042444294 Events 19 19 17 - - - - - 17 +TrigSignatureMoniMT INFO -- #2042444294 Features 39 - - - - - +TrigSignatureMoniMT INFO HLT_j45_sktc_nojcalib_L1J20 #1542468090 +TrigSignatureMoniMT INFO -- #1542468090 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #1542468090 Features 26 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10_lcw_subjes_L1J100 #3327656707 +TrigSignatureMoniMT INFO -- #3327656707 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3327656707 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10_lcw_subjes_L1J20 #215408633 +TrigSignatureMoniMT INFO -- #215408633 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #215408633 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10r_L1J100 #1151767619 +TrigSignatureMoniMT INFO -- #1151767619 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #1151767619 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10r_L1J20 #3875082669 +TrigSignatureMoniMT INFO -- #3875082669 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3875082669 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J100 #2296827117 +TrigSignatureMoniMT INFO -- #2296827117 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #2296827117 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10t_lcw_jes_L1J100 #436385969 +TrigSignatureMoniMT INFO -- #436385969 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #436385969 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20 #3634067472 +TrigSignatureMoniMT INFO -- #3634067472 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3634067472 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j80_L1J15 #2440872308 +TrigSignatureMoniMT INFO -- #2440872308 Events 20 20 13 - - - - - 13 +TrigSignatureMoniMT INFO -- #2440872308 Features 23 - - - - - +TrigSignatureMoniMT INFO HLT_j80_j60_L1J15 #582699527 +TrigSignatureMoniMT INFO -- #582699527 Events 20 20 8 - - - - - 8 +TrigSignatureMoniMT INFO -- #582699527 Features 23 - - - - - +TrigSignatureMoniMT INFO HLT_j85_L1J20 #510475538 +TrigSignatureMoniMT INFO -- #510475538 Events 19 19 13 - - - - - 13 +TrigSignatureMoniMT INFO -- #510475538 Features 21 - - - - - +TrigSignatureMoniMT INFO HLT_j85_ftf_L1J20 #877042532 +TrigSignatureMoniMT INFO -- #877042532 Events 19 19 13 - - - - - 13 +TrigSignatureMoniMT INFO -- #877042532 Features 21 - - - - - +TrigSignatureMoniMT INFO HLT_j85_ftf_pf_L1J20 #1538535401 +TrigSignatureMoniMT INFO -- #1538535401 Events 19 19 8 - - - - - 8 +TrigSignatureMoniMT INFO -- #1538535401 Features 13 - - - - - +TrigSignatureMoniMT INFO HLT_mb_sptrk_L1RD0_FILLED #4097312640 +TrigSignatureMoniMT INFO -- #4097312640 Events 20 20 20 20 - - - - 20 +TrigSignatureMoniMT INFO -- #4097312640 Features 20 20 - - - - +TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU20 #997163309 +TrigSignatureMoniMT INFO -- #997163309 Events 8 8 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #997163309 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU4_EMPTY #782182242 +TrigSignatureMoniMT INFO -- #782182242 Events 0 0 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #782182242 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_mu10_L1MU10 #209090273 +TrigSignatureMoniMT INFO -- #209090273 Events 10 10 10 10 10 9 - - 9 +TrigSignatureMoniMT INFO -- #209090273 Features 13 12 13 11 - - +TrigSignatureMoniMT INFO HLT_mu10_ivarmedium_mu10_10invm70_L12MU10 #2386882549 +TrigSignatureMoniMT INFO -- #2386882549 Events 3 3 3 2 2 2 2 - 2 +TrigSignatureMoniMT INFO -- #2386882549 Features 6 4 4 4 2 - +TrigSignatureMoniMT INFO HLT_mu10_lateMu_L1MU10 #48780310 +TrigSignatureMoniMT INFO -- #48780310 Events 10 10 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #48780310 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_mu11_mu6_bJpsimumu_L1MU11_2MU6 #2504965945 +TrigSignatureMoniMT INFO -- #2504965945 Events 4 4 4 0 3 0 - - 0 +TrigSignatureMoniMT INFO -- #2504965945 Features 8 0 6 0 - - +TrigSignatureMoniMT INFO HLT_mu11_mu6_bUpsimumu_L1MU11_2MU6 #1171632195 +TrigSignatureMoniMT INFO -- #1171632195 Events 4 4 4 0 3 0 - - 0 +TrigSignatureMoniMT INFO -- #1171632195 Features 8 0 6 0 - - +TrigSignatureMoniMT INFO HLT_mu14_L1MU10 #1696906927 +TrigSignatureMoniMT INFO -- #1696906927 Events 10 10 10 7 7 7 - - 7 +TrigSignatureMoniMT INFO -- #1696906927 Features 13 8 8 8 - - +TrigSignatureMoniMT INFO HLT_mu20_2mu4noL1_L1MU20 #1029128679 +TrigSignatureMoniMT INFO -- #1029128679 Events 8 8 8 5 5 5 1 1 1 +TrigSignatureMoniMT INFO -- #1029128679 Features 10 6 6 6 2 2 +TrigSignatureMoniMT INFO HLT_mu20_ivar_L1MU6 #2083734526 +TrigSignatureMoniMT INFO -- #2083734526 Events 10 10 10 5 5 - - - 5 +TrigSignatureMoniMT INFO -- #2083734526 Features 14 6 5 - - - +TrigSignatureMoniMT INFO HLT_mu22_2mu4noL1_L1MU20 #3427670100 +TrigSignatureMoniMT INFO -- #3427670100 Events 8 8 8 5 5 5 1 1 1 +TrigSignatureMoniMT INFO -- #3427670100 Features 10 6 6 6 2 2 +TrigSignatureMoniMT INFO HLT_mu22_mu8noL1_L1MU20 #3165652409 +TrigSignatureMoniMT INFO -- #3165652409 Events 8 8 8 5 5 5 2 2 2 +TrigSignatureMoniMT INFO -- #3165652409 Features 10 6 6 6 3 3 +TrigSignatureMoniMT INFO HLT_mu24_2mu4noL1_L1MU20 #3233544630 +TrigSignatureMoniMT INFO -- #3233544630 Events 8 8 8 5 5 5 1 1 1 +TrigSignatureMoniMT INFO -- #3233544630 Features 10 6 6 6 2 2 +TrigSignatureMoniMT INFO HLT_mu24_L1MU20 #417425162 +TrigSignatureMoniMT INFO -- #417425162 Events 8 8 8 5 5 5 - - 5 +TrigSignatureMoniMT INFO -- #417425162 Features 10 6 6 6 - - +TrigSignatureMoniMT INFO HLT_mu24_idperf_L1MU20 #677658909 +TrigSignatureMoniMT INFO -- #677658909 Events 8 8 6 6 6 6 - - 6 +TrigSignatureMoniMT INFO -- #677658909 Features 7 7 7 7 - - +TrigSignatureMoniMT INFO HLT_mu24_mu10noL1_L1MU20 #2563354236 +TrigSignatureMoniMT INFO -- #2563354236 Events 8 8 8 5 5 5 2 2 2 +TrigSignatureMoniMT INFO -- #2563354236 Features 10 6 6 6 3 3 +TrigSignatureMoniMT INFO HLT_mu26_L1MU20 #311138376 +TrigSignatureMoniMT INFO -- #311138376 Events 8 8 8 5 4 3 - - 3 +TrigSignatureMoniMT INFO -- #311138376 Features 10 6 5 4 - - +TrigSignatureMoniMT INFO HLT_mu26_ivarmedium_L1MU20 #3411723090 +TrigSignatureMoniMT INFO -- #3411723090 Events 8 8 8 5 4 3 2 - 2 +TrigSignatureMoniMT INFO -- #3411723090 Features 10 6 5 4 2 - +TrigSignatureMoniMT INFO HLT_mu26_mu10noL1_L1MU20 #2318302287 +TrigSignatureMoniMT INFO -- #2318302287 Events 8 8 8 5 4 3 1 1 1 +TrigSignatureMoniMT INFO -- #2318302287 Features 10 6 5 4 2 2 +TrigSignatureMoniMT INFO HLT_mu26_mu8noL1_L1MU20 #2233067926 +TrigSignatureMoniMT INFO -- #2233067926 Events 8 8 8 5 4 3 1 1 1 +TrigSignatureMoniMT INFO -- #2233067926 Features 10 6 5 4 2 2 +TrigSignatureMoniMT INFO HLT_mu28_ivarmedium_L1MU20 #1963262787 +TrigSignatureMoniMT INFO -- #1963262787 Events 8 8 8 5 4 3 2 - 2 +TrigSignatureMoniMT INFO -- #1963262787 Features 10 6 5 3 2 - +TrigSignatureMoniMT INFO HLT_mu28_mu8noL1_L1MU20 #86648125 +TrigSignatureMoniMT INFO -- #86648125 Events 8 8 8 5 4 3 1 1 1 +TrigSignatureMoniMT INFO -- #86648125 Features 10 6 5 3 1 1 +TrigSignatureMoniMT INFO HLT_mu35_ivarmedium_L1MU20 #597064890 +TrigSignatureMoniMT INFO -- #597064890 Events 8 8 8 5 3 2 1 - 1 +TrigSignatureMoniMT INFO -- #597064890 Features 10 6 4 2 1 - +TrigSignatureMoniMT INFO HLT_mu50_L1MU20 #3657158931 +TrigSignatureMoniMT INFO -- #3657158931 Events 8 8 8 5 1 1 - - 1 +TrigSignatureMoniMT INFO -- #3657158931 Features 10 6 1 1 - - +TrigSignatureMoniMT INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU20 #827327262 +TrigSignatureMoniMT INFO -- #827327262 Events 8 8 8 5 1 1 1 - 1 +TrigSignatureMoniMT INFO -- #827327262 Features 10 6 1 1 1 - +TrigSignatureMoniMT INFO HLT_mu60_0eta105_msonly_L1MU20 #1642591450 +TrigSignatureMoniMT INFO -- #1642591450 Events 8 8 1 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1642591450 Features 2 0 0 - - - +TrigSignatureMoniMT INFO HLT_mu60_L1MU20 #2871837722 +TrigSignatureMoniMT INFO -- #2871837722 Events 8 8 8 5 1 1 - - 1 +TrigSignatureMoniMT INFO -- #2871837722 Features 10 6 1 1 - - +TrigSignatureMoniMT INFO HLT_mu6Comb_L1MU6 #996392590 +TrigSignatureMoniMT INFO -- #996392590 Events 10 10 10 10 - - - - 10 +TrigSignatureMoniMT INFO -- #996392590 Features 14 13 - - - - +TrigSignatureMoniMT INFO HLT_mu6_L1MU6 #2560542253 +TrigSignatureMoniMT INFO -- #2560542253 Events 10 10 10 10 10 10 - - 10 +TrigSignatureMoniMT INFO -- #2560542253 Features 14 13 16 21 - - +TrigSignatureMoniMT INFO HLT_mu6_idperf_L1MU6 #934918532 +TrigSignatureMoniMT INFO -- #934918532 Events 10 10 10 10 10 10 - - 10 +TrigSignatureMoniMT INFO -- #934918532 Features 14 14 17 27 - - +TrigSignatureMoniMT INFO HLT_mu6_ivarmedium_L1MU6 #1012713062 +TrigSignatureMoniMT INFO -- #1012713062 Events 10 10 10 10 10 10 6 - 6 +TrigSignatureMoniMT INFO -- #1012713062 Features 14 13 16 21 6 - +TrigSignatureMoniMT INFO HLT_mu6_msonly_L1MU6 #3895421032 +TrigSignatureMoniMT INFO -- #3895421032 Events 10 10 10 0 10 - - - 10 +TrigSignatureMoniMT INFO -- #3895421032 Features 14 0 17 - - - +TrigSignatureMoniMT INFO HLT_mu6_mu4_L12MU4 #1713982776 +TrigSignatureMoniMT INFO -- #1713982776 Events 4 4 4 4 4 4 - - 4 +TrigSignatureMoniMT INFO -- #1713982776 Features 8 8 12 18 - - +TrigSignatureMoniMT INFO HLT_mu6_mu6noL1_L1MU6 #451489897 +TrigSignatureMoniMT INFO -- #451489897 Events 10 10 10 10 10 10 5 4 4 +TrigSignatureMoniMT INFO -- #451489897 Features 14 13 16 21 8 7 +TrigSignatureMoniMT INFO HLT_mu6fast_L1MU6 #3518031697 +TrigSignatureMoniMT INFO -- #3518031697 Events 10 10 10 - - - - - 10 +TrigSignatureMoniMT INFO -- #3518031697 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_mu80_L1MU20 #387900377 +TrigSignatureMoniMT INFO -- #387900377 Events 8 8 8 5 0 0 - - 0 +TrigSignatureMoniMT INFO -- #387900377 Features 10 6 0 0 - - +TrigSignatureMoniMT INFO HLT_mu80_msonly_3layersEC_L1MU20 #761101109 +TrigSignatureMoniMT INFO -- #761101109 Events 8 8 8 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #761101109 Features 10 0 0 - - - +TrigSignatureMoniMT INFO HLT_mu8_L1MU6 #1467711434 +TrigSignatureMoniMT INFO -- #1467711434 Events 10 10 10 10 10 10 - - 10 +TrigSignatureMoniMT INFO -- #1467711434 Features 14 13 15 19 - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM10VH #314199913 +TrigSignatureMoniMT INFO -- #314199913 Events 11 11 - - - - - - 11 +TrigSignatureMoniMT INFO -- #314199913 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM12 #3885916609 +TrigSignatureMoniMT INFO -- #3885916609 Events 16 16 - - - - - - 16 +TrigSignatureMoniMT INFO -- #3885916609 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM15 #480733925 +TrigSignatureMoniMT INFO -- #480733925 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #480733925 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM15VH #2374865899 +TrigSignatureMoniMT INFO -- #2374865899 Events 8 8 - - - - - - 8 +TrigSignatureMoniMT INFO -- #2374865899 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM20VH #3719542824 +TrigSignatureMoniMT INFO -- #3719542824 Events 7 7 - - - - - - 7 +TrigSignatureMoniMT INFO -- #3719542824 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM22VHI #1723589313 +TrigSignatureMoniMT INFO -- #1723589313 Events 6 6 - - - - - - 6 +TrigSignatureMoniMT INFO -- #1723589313 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM3 #4169267792 +TrigSignatureMoniMT INFO -- #4169267792 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #4169267792 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM7 #3226970354 +TrigSignatureMoniMT INFO -- #3226970354 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #3226970354 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM8VH #4065285611 +TrigSignatureMoniMT INFO -- #4065285611 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #4065285611 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J100 #1026959128 +TrigSignatureMoniMT INFO -- #1026959128 Events 3 3 - - - - - - 3 +TrigSignatureMoniMT INFO -- #1026959128 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J12 #2640820608 +TrigSignatureMoniMT INFO -- #2640820608 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #2640820608 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J120 #2116228652 +TrigSignatureMoniMT INFO -- #2116228652 Events 1 1 - - - - - - 1 +TrigSignatureMoniMT INFO -- #2116228652 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J15 #1976430774 +TrigSignatureMoniMT INFO -- #1976430774 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #1976430774 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J20 #2241112369 +TrigSignatureMoniMT INFO -- #2241112369 Events 19 19 - - - - - - 19 +TrigSignatureMoniMT INFO -- #2241112369 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J25 #39428635 +TrigSignatureMoniMT INFO -- #39428635 Events 17 17 - - - - - - 17 +TrigSignatureMoniMT INFO -- #39428635 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J30 #3523994129 +TrigSignatureMoniMT INFO -- #3523994129 Events 17 17 - - - - - - 17 +TrigSignatureMoniMT INFO -- #3523994129 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J40 #1497591431 +TrigSignatureMoniMT INFO -- #1497591431 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #1497591431 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J400 #2494874701 +TrigSignatureMoniMT INFO -- #2494874701 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2494874701 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J50 #3346352675 +TrigSignatureMoniMT INFO -- #3346352675 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #3346352675 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J75 #1651897827 +TrigSignatureMoniMT INFO -- #1651897827 Events 6 6 - - - - - - 6 +TrigSignatureMoniMT INFO -- #1651897827 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J85 #166231461 +TrigSignatureMoniMT INFO -- #166231461 Events 5 5 - - - - - - 5 +TrigSignatureMoniMT INFO -- #166231461 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1RD0_EMPTY #914660695 +TrigSignatureMoniMT INFO -- #914660695 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #914660695 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1RD0_FILLED #211699639 +TrigSignatureMoniMT INFO -- #211699639 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #211699639 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU12 #4248050338 +TrigSignatureMoniMT INFO -- #4248050338 Events 18 18 - - - - - - 18 +TrigSignatureMoniMT INFO -- #4248050338 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU12IM #357557968 +TrigSignatureMoniMT INFO -- #357557968 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #357557968 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU20 #3602376876 +TrigSignatureMoniMT INFO -- #3602376876 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #3602376876 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU20IM #1931583332 +TrigSignatureMoniMT INFO -- #1931583332 Events 10 10 - - - - - - 10 +TrigSignatureMoniMT INFO -- #1931583332 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU30 #1944789678 +TrigSignatureMoniMT INFO -- #1944789678 Events 13 13 - - - - - - 13 +TrigSignatureMoniMT INFO -- #1944789678 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU40 #1394621652 +TrigSignatureMoniMT INFO -- #1394621652 Events 7 7 - - - - - - 7 +TrigSignatureMoniMT INFO -- #1394621652 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU60 #3332424451 +TrigSignatureMoniMT INFO -- #3332424451 Events 5 5 - - - - - - 5 +TrigSignatureMoniMT INFO -- #3332424451 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU8 #3165115874 +TrigSignatureMoniMT INFO -- #3165115874 Events 19 19 - - - - - - 19 +TrigSignatureMoniMT INFO -- #3165115874 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE10 #1583053368 +TrigSignatureMoniMT INFO -- #1583053368 Events 19 19 - - - - - - 19 +TrigSignatureMoniMT INFO -- #1583053368 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE30 #2047368922 +TrigSignatureMoniMT INFO -- #2047368922 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #2047368922 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE300 #1315853555 +TrigSignatureMoniMT INFO -- #1315853555 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #1315853555 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE35 #2313039014 +TrigSignatureMoniMT INFO -- #2313039014 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #2313039014 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE40 #4293469116 +TrigSignatureMoniMT INFO -- #4293469116 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #4293469116 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE45 #2365048177 +TrigSignatureMoniMT INFO -- #2365048177 Events 13 13 - - - - - - 13 +TrigSignatureMoniMT INFO -- #2365048177 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE50 #1168752081 +TrigSignatureMoniMT INFO -- #1168752081 Events 10 10 - - - - - - 10 +TrigSignatureMoniMT INFO -- #1168752081 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE55 #268928384 +TrigSignatureMoniMT INFO -- #268928384 Events 8 8 - - - - - - 8 +TrigSignatureMoniMT INFO -- #268928384 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE60 #4154240531 +TrigSignatureMoniMT INFO -- #4154240531 Events 8 8 - - - - - - 8 +TrigSignatureMoniMT INFO -- #4154240531 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE70 #3765216228 +TrigSignatureMoniMT INFO -- #3765216228 Events 4 4 - - - - - - 4 +TrigSignatureMoniMT INFO -- #3765216228 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE80 #2742079961 +TrigSignatureMoniMT INFO -- #2742079961 Events 3 3 - - - - - - 3 +TrigSignatureMoniMT INFO -- #2742079961 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM3_EMPTY #2458124284 +TrigSignatureMoniMT INFO -- #2458124284 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2458124284 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM7_EMPTY #299938202 +TrigSignatureMoniMT INFO -- #299938202 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #299938202 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J12_EMPTY #3144024902 +TrigSignatureMoniMT INFO -- #3144024902 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3144024902 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J12_FIRSTEMPTY #3840098930 +TrigSignatureMoniMT INFO -- #3840098930 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3840098930 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_31ETA49_EMPTY #4143623058 +TrigSignatureMoniMT INFO -- #4143623058 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #4143623058 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_EMPTY #2991490897 +TrigSignatureMoniMT INFO -- #2991490897 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2991490897 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY #2214697960 +TrigSignatureMoniMT INFO -- #2214697960 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2214697960 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1RD1_BGRP10 #48519027 +TrigSignatureMoniMT INFO -- #48519027 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #48519027 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1RD1_EMPTY #3925252528 +TrigSignatureMoniMT INFO -- #3925252528 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3925252528 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_EMPTY #56818284 +TrigSignatureMoniMT INFO -- #56818284 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #56818284 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_FILLED #1198298874 +TrigSignatureMoniMT INFO -- #1198298874 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #1198298874 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_UNPAIRED_ISO #2536676873 +TrigSignatureMoniMT INFO -- #2536676873 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2536676873 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_mb_L1RD2_EMPTY #3788962163 +TrigSignatureMoniMT INFO -- #3788962163 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3788962163 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_zb_L1ZB #1289992951 +TrigSignatureMoniMT INFO -- #1289992951 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #1289992951 Features - - - - - - +TrigSignatureMoniMT INFO HLT_sct_noise_SCTPEB_L1RD0_EMPTY #3024203296 +TrigSignatureMoniMT INFO -- #3024203296 Events 0 0 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3024203296 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU100 #2342716369 +TrigSignatureMoniMT INFO -- #2342716369 Events 0 0 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #2342716369 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU12 #372992233 +TrigSignatureMoniMT INFO -- #372992233 Events 18 18 18 18 - - - - 18 +TrigSignatureMoniMT INFO -- #372992233 Features 42 42 - - - - +TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU60 #1376650121 +TrigSignatureMoniMT INFO -- #1376650121 Events 5 5 5 5 - - - - 5 +TrigSignatureMoniMT INFO -- #1376650121 Features 6 6 - - - - +TrigSignatureMoniMT INFO HLT_tau160_idperf_track_L1TAU100 #714660857 +TrigSignatureMoniMT INFO -- #714660857 Events 0 0 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #714660857 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_tau160_idperf_tracktwoMVA_L1TAU100 #2725693236 +TrigSignatureMoniMT INFO -- #2725693236 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #2725693236 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau160_idperf_tracktwo_L1TAU100 #886074432 +TrigSignatureMoniMT INFO -- #886074432 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #886074432 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100 #1747754287 +TrigSignatureMoniMT INFO -- #1747754287 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1747754287 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau160_perf_tracktwoMVA_L1TAU100 #2334140248 +TrigSignatureMoniMT INFO -- #2334140248 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #2334140248 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau160_perf_tracktwo_L1TAU100 #1799096347 +TrigSignatureMoniMT INFO -- #1799096347 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1799096347 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_idperf_track_L1TAU12IM #554271976 +TrigSignatureMoniMT INFO -- #554271976 Events 14 14 14 14 - - - - 14 +TrigSignatureMoniMT INFO -- #554271976 Features 24 24 - - - - +TrigSignatureMoniMT INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM #988149859 +TrigSignatureMoniMT INFO -- #988149859 Events 14 14 14 13 13 - - - 13 +TrigSignatureMoniMT INFO -- #988149859 Features 24 17 17 - - - +TrigSignatureMoniMT INFO HLT_tau25_idperf_tracktwo_L1TAU12IM #3346942453 +TrigSignatureMoniMT INFO -- #3346942453 Events 14 14 14 13 13 - - - 13 +TrigSignatureMoniMT INFO -- #3346942453 Features 24 17 17 - - - +TrigSignatureMoniMT INFO HLT_tau25_looseRNN_tracktwoMVA_L1TAU12IM #169452969 +TrigSignatureMoniMT INFO -- #169452969 Events 14 14 12 11 10 - - - 10 +TrigSignatureMoniMT INFO -- #169452969 Features 22 15 13 - - - +TrigSignatureMoniMT INFO HLT_tau25_looseRNN_tracktwo_L1TAU12IM #2490017573 +TrigSignatureMoniMT INFO -- #2490017573 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #2490017573 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwoEF_L1TAU12IM #506456080 +TrigSignatureMoniMT INFO -- #506456080 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #506456080 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwoMVA_L1TAU12IM #4055280067 +TrigSignatureMoniMT INFO -- #4055280067 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #4055280067 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwo_L1TAU12IM #1433975745 +TrigSignatureMoniMT INFO -- #1433975745 Events 14 14 12 11 7 - - - 7 +TrigSignatureMoniMT INFO -- #1433975745 Features 22 15 7 - - - +TrigSignatureMoniMT INFO HLT_tau25_mediumRNN_tracktwoMVA_L1TAU12IM #2222894847 +TrigSignatureMoniMT INFO -- #2222894847 Events 14 14 12 11 7 - - - 7 +TrigSignatureMoniMT INFO -- #2222894847 Features 22 15 9 - - - +TrigSignatureMoniMT INFO HLT_tau25_mediumRNN_tracktwo_L1TAU12IM #698603885 +TrigSignatureMoniMT INFO -- #698603885 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #698603885 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_perf_tracktwoMVA_L1TAU12IM #112814536 +TrigSignatureMoniMT INFO -- #112814536 Events 14 14 14 13 13 - - - 13 +TrigSignatureMoniMT INFO -- #112814536 Features 24 17 17 - - - +TrigSignatureMoniMT INFO HLT_tau25_perf_tracktwo_L1TAU12IM #1129072492 +TrigSignatureMoniMT INFO -- #1129072492 Events 14 14 14 13 13 - - - 13 +TrigSignatureMoniMT INFO -- #1129072492 Features 24 17 17 - - - +TrigSignatureMoniMT INFO HLT_tau25_tightRNN_tracktwoMVA_L1TAU12IM #2472860683 +TrigSignatureMoniMT INFO -- #2472860683 Events 14 14 12 11 5 - - - 5 +TrigSignatureMoniMT INFO -- #2472860683 Features 22 15 6 - - - +TrigSignatureMoniMT INFO HLT_tau25_tightRNN_tracktwo_L1TAU12IM #2537544560 +TrigSignatureMoniMT INFO -- #2537544560 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #2537544560 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_verylooseRNN_tracktwoMVA_L1TAU12IM #2992830434 +TrigSignatureMoniMT INFO -- #2992830434 Events 14 14 12 11 10 - - - 10 +TrigSignatureMoniMT INFO -- #2992830434 Features 22 15 14 - - - +TrigSignatureMoniMT INFO HLT_tau25_verylooseRNN_tracktwo_L1TAU12IM #1275052132 +TrigSignatureMoniMT INFO -- #1275052132 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #1275052132 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM #2456480859 +TrigSignatureMoniMT INFO -- #2456480859 Events 14 14 11 10 6 - - - 6 +TrigSignatureMoniMT INFO -- #2456480859 Features 20 14 8 - - - +TrigSignatureMoniMT INFO HLT_tilecalib_laser_TilePEB_L1CALREQ2 #1063154655 +TrigSignatureMoniMT INFO -- #1063154655 Events 0 0 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #1063154655 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_timeburner_L1All #819160059 +TrigSignatureMoniMT INFO -- #819160059 Events 20 20 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #819160059 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_xe100_mht_L1XE50 #532175988 +TrigSignatureMoniMT INFO -- #532175988 Events 10 10 6 - - - - - 6 +TrigSignatureMoniMT INFO -- #532175988 Features 6 - - - - - +TrigSignatureMoniMT INFO HLT_xe100_pfsum_L1XE50 #1890237897 +TrigSignatureMoniMT INFO -- #1890237897 Events 10 10 2 - - - - - 2 +TrigSignatureMoniMT INFO -- #1890237897 Features 2 - - - - - +TrigSignatureMoniMT INFO HLT_xe100_tcpufit_L1XE50 #2803198799 +TrigSignatureMoniMT INFO -- #2803198799 Events 10 10 6 - - - - - 6 +TrigSignatureMoniMT INFO -- #2803198799 Features 6 - - - - - +TrigSignatureMoniMT INFO HLT_xe100_trkmht_L1XE50 #1055916731 +TrigSignatureMoniMT INFO -- #1055916731 Events 10 10 4 - - - - - 4 +TrigSignatureMoniMT INFO -- #1055916731 Features 4 - - - - - +TrigSignatureMoniMT INFO HLT_xe110_mht_L1XE50 #3030733259 +TrigSignatureMoniMT INFO -- #3030733259 Events 10 10 6 - - - - - 6 +TrigSignatureMoniMT INFO -- #3030733259 Features 6 - - - - - +TrigSignatureMoniMT INFO HLT_xe110_tc_em_L1XE50 #607113828 +TrigSignatureMoniMT INFO -- #607113828 Events 10 10 5 - - - - - 5 +TrigSignatureMoniMT INFO -- #607113828 Features 5 - - - - - +TrigSignatureMoniMT INFO HLT_xe110_tcpufit_L1XE50 #892853397 +TrigSignatureMoniMT INFO -- #892853397 Events 10 10 6 - - - - - 6 +TrigSignatureMoniMT INFO -- #892853397 Features 6 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_cell_L1XE10 #1649696554 +TrigSignatureMoniMT INFO -- #1649696554 Events 19 19 17 - - - - - 17 +TrigSignatureMoniMT INFO -- #1649696554 Features 17 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_cell_xe30_tcpufit_L1XE10 #3768353779 +TrigSignatureMoniMT INFO -- #3768353779 Events 19 19 14 - - - - - 14 +TrigSignatureMoniMT INFO -- #3768353779 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_mht_L1XE10 #3626903018 +TrigSignatureMoniMT INFO -- #3626903018 Events 19 19 19 - - - - - 19 +TrigSignatureMoniMT INFO -- #3626903018 Features 19 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_pfsum_L1XE10 #998713382 +TrigSignatureMoniMT INFO -- #998713382 Events 19 19 14 - - - - - 14 +TrigSignatureMoniMT INFO -- #998713382 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_tcpufit_L1XE10 #1583719916 +TrigSignatureMoniMT INFO -- #1583719916 Events 19 19 14 - - - - - 14 +TrigSignatureMoniMT INFO -- #1583719916 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_trkmht_L1XE10 #2468872349 +TrigSignatureMoniMT INFO -- #2468872349 Events 19 19 17 - - - - - 17 +TrigSignatureMoniMT INFO -- #2468872349 Features 17 - - - - - +TrigSignatureMoniMT INFO HLT_xe65_cell_L1XE50 #531141817 +TrigSignatureMoniMT INFO -- #531141817 Events 10 10 7 - - - - - 7 +TrigSignatureMoniMT INFO -- #531141817 Features 7 - - - - - +TrigSignatureMoniMT INFO HLT_xe65_cell_xe110_tcpufit_L1XE50 #115518400 +TrigSignatureMoniMT INFO -- #115518400 Events 10 10 5 - - - - - 5 +TrigSignatureMoniMT INFO -- #115518400 Features 5 - - - - - diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py index d42131d6d2e..99d148658e2 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py @@ -383,7 +383,7 @@ def triggerBSOutputCfg(flags, decObj, decObjHypoOut, summaryAlg, offline=False): def triggerPOOLOutputCfg(flags, decObj, decObjHypoOut, edmSet): - # Get the list from TriggerEDM + # Get the list of output collections from TriggerEDM from TrigEDMConfig.TriggerEDM import getTriggerEDMList edmList = getTriggerEDMList(edmSet, flags.Trigger.EDMDecodingVersion) @@ -400,6 +400,10 @@ def triggerPOOLOutputCfg(flags, decObj, decObjHypoOut, edmSet): itemsToRecord.append('xAOD::TrigCompositeContainer#{:s}'.format(item)) itemsToRecord.append('xAOD::TrigCompositeAuxContainer#{:s}Aux{:s}'.format(item, dynamic)) + # Add EventInfo + itemsToRecord.append('xAOD::EventInfo#EventInfo') + itemsToRecord.append('xAOD::EventAuxInfo#EventInfoAux.') + # Create OutputStream outputType = '' if flags.Output.doWriteRDO: @@ -410,19 +414,15 @@ def triggerPOOLOutputCfg(flags, decObj, decObjHypoOut, edmSet): outputType = 'AOD' from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg acc = OutputStreamCfg(flags, outputType, ItemList=itemsToRecord, disableEventTag=True) - - # OutputStream has a data dependency on xTrigDecision streamAlg = acc.getEventAlgo("OutputStream"+outputType) - streamAlg.ExtraInputs = [ - ("xAOD::TrigDecision", "xTrigDecision"), - ("xAOD::TrigConfKeys", "TrigConfKeys")] - # Produce the trigger bits - #from TrigOutputHandling.TrigOutputHandlingConfig import TriggerBitsMakerToolCfg - #from TrigDecisionMaker.TrigDecisionMakerConfig import TrigDecisionMakerMT + # Keep input RDO objects in the output RDO_TRIG file + if flags.Output.doWriteRDO: + streamAlg.TakeItemsFromInput = True + + # Produce trigger bits bitsmaker = CompFactory.TriggerBitsMakerTool() decmaker = CompFactory.getComp("TrigDec::TrigDecisionMakerMT")("TrigDecMakerMT", BitsMakerTool = bitsmaker) - acc.addEventAlgo( decmaker ) # Produce trigger metadata @@ -431,6 +431,22 @@ def triggerPOOLOutputCfg(flags, decObj, decObjHypoOut, edmSet): menuwriter.IsL1JSONConfig = True acc.addEventAlgo( menuwriter ) + # Add metadata to the output stream + streamAlg.MetadataItemList += [ "xAOD::TriggerMenuContainer#*", "xAOD::TriggerMenuAuxContainer#*" ] + + # Ensure OutputStream runs after TrigDecisionMakerMT and xAODMenuWriterMT + streamAlg.ExtraInputs += [ + ("xAOD::TrigDecision", decmaker.TrigDecisionKey), + ("xAOD::TrigConfKeys", menuwriter.EventObjectName)] + + # Produce xAOD L1 RoIs from RoIBResult (unless running with exclusively Phase-I L1) + if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1Phase1: + from AnalysisTriggerAlgs.AnalysisTriggerAlgsCAConfig import RoIBResultToxAODCfg + xRoIBResultAcc, xRoIBResultOutputs = RoIBResultToxAODCfg(flags, acc.getSequence().name) + acc.merge(xRoIBResultAcc) + # Ensure outputs are produced before streamAlg runs + streamAlg.ExtraInputs += xRoIBResultOutputs + return acc diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py index 90c6ec69357..4c4fa52e9c2 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py @@ -575,7 +575,8 @@ if opt.doWriteRDOTrigger: theApp.exit(1) rec.doWriteRDO = False # RecExCommon flag ConfigFlags.Output.doWriteRDO = True # new JO flag - ConfigFlags.Output.RDOFileName = 'RDO_TRIG.pool.root' # new JO flag + if not ConfigFlags.Output.RDOFileName: + ConfigFlags.Output.RDOFileName = 'RDO_TRIG.pool.root' # new JO flag if opt.doWriteBS: rec.doWriteBS = True # RecExCommon flag TriggerFlags.writeBS = True # RecExCommon flag -- GitLab From ea32b876792eb832dc4fe9d128fc101915dbe8ec Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Tue, 28 Jul 2020 16:46:18 +0200 Subject: [PATCH 288/459] AthenaServices: Protect ThinningCacheTool::preStream() against missing context. ThinningCacheTool::preStream() should return gracefully if there's no extended event context. cf. ATR-21791. --- Control/AthenaServices/src/ThinningCacheTool.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Control/AthenaServices/src/ThinningCacheTool.cxx b/Control/AthenaServices/src/ThinningCacheTool.cxx index ef17ecb19b2..2f937766293 100644 --- a/Control/AthenaServices/src/ThinningCacheTool.cxx +++ b/Control/AthenaServices/src/ThinningCacheTool.cxx @@ -59,6 +59,12 @@ StatusCode ThinningCacheTool::preStream() { m_cache.clear(); + // Nothing to do if we don't have an extended event context. + EventContext ctx = Gaudi::Hive::currentContext(); + if (!Atlas::hasExtendedEventContext (ctx)) { + return StatusCode::SUCCESS; + } + // Examine all ThinningDecision objects in the store. SG::ConstIterator<SG::ThinningDecision> beg; SG::ConstIterator<SG::ThinningDecision> end; @@ -98,7 +104,6 @@ StatusCode ThinningCacheTool::preStream() // in the EventContext. if (!m_cache.empty() || m_cache.trigNavigationThinningSvc()) { m_cache.lockOwned(); - EventContext ctx = Gaudi::Hive::currentContext(); Atlas::getExtendedEventContext (ctx).setThinningCache (&m_cache); Gaudi::Hive::setCurrentContext (ctx); } -- GitLab From 56462e9230c5f9485f9fef96b9955ed2dd2eee1f Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 28 Jul 2020 14:47:48 -0500 Subject: [PATCH 289/459] Fixings requested by the shifter during L2 review --- .../HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx index 6e9babf1f80..11aba955ada 100644 --- a/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx +++ b/Reconstruction/HeavyIonRec/HIJetRec/src/HIClusterSubtraction.cxx @@ -87,7 +87,7 @@ int HIClusterSubtraction::execute() const SG::ReadHandle<xAOD::HIEventShapeContainer> readHandleEvtShape ( m_eventShapeKey ); shape = readHandleEvtShape.cptr(); const HIEventShapeIndex* es_index = m_eventShapeMapTool->getIndexFromShape( shape ); - if(es_index == nullptr) ATH_MSG_INFO("Here is the issue"); + if(es_index == nullptr) ATH_MSG_FATAL("The HIEventShapeMapTool returned a null pointer. Binning scheme not coherent"); const xAOD::HIEventShape* eshape = nullptr; CHECK(m_modulatorTool->getShape(eshape), 1); -- GitLab From 7c7fa9606926b89e0f1256545989e51494e4492e Mon Sep 17 00:00:00 2001 From: rlongo <riccardo.longo@cern.ch> Date: Tue, 28 Jul 2020 14:48:08 -0500 Subject: [PATCH 290/459] Fixings requested by the shifter during L2 review --- .../TrigHIRec/python/TrigHLTHIJetRecConfig.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Trigger/TrigAlgorithms/TrigHIRec/python/TrigHLTHIJetRecConfig.py b/Trigger/TrigAlgorithms/TrigHIRec/python/TrigHLTHIJetRecConfig.py index dbddab442ae..e9fdfb63486 100644 --- a/Trigger/TrigAlgorithms/TrigHIRec/python/TrigHLTHIJetRecConfig.py +++ b/Trigger/TrigAlgorithms/TrigHIRec/python/TrigHLTHIJetRecConfig.py @@ -72,9 +72,7 @@ def _getHIJetBuildTool(merge_param, if not name: name = 'TrigAntiKt%dHIJets' % int_merge_param - EventShapeKey = "HLT_xAOD__HIEventShapeContainer_TrigHIEventShape" #jobproperties.HIGlobalFlags.EventShapeKey() - #EventShapeKey = "HIEventShapeContainer_HIUE" - #EventShapeKey = "TrigHIEventShape" + EventShapeKey = "HLT_xAOD__HIEventShapeContainer_TrigHIEventShape" ClusterKey = hicluster_name # Plug in directly tools from HIJetTools.py e.g. to avoid PseudoJetGetter which is different at HLT and for other reasons @@ -147,12 +145,10 @@ def _getHIJetBuildTool(merge_param, seed_finder = jtm.addJetFinder(a2_unsubtracted_name, "AntiKt", 0.2, - #gettersin=[_getTriggerHIPseudoJetGetter(hicluster_name)], gettersin=[_getTriggerPseudoJetGetter(cluster_calib)], #modifiersin=[assoc,max_over_mean,jetfil5], # jtm.modifiersMap['HI_Unsubtr'], # may think about TrigHI_Unsubtracted with just max_over_mean modifiersin=[max_over_mean,jetfil5], # jtm.modifiersMap['HI_Unsubtr'], # may think about TrigHI_Unsubtracted with just max_over_mean #modifiersin=[assoc,max_over_mean,jetfil5,discrim], # jtm.modifiersMap['HI_Unsubtr'], # may think about TrigHI_Unsubtracted with just max_over_mean - #consumers=None, ivtxin=None, ghostArea=0.0, isTrigger=True, ptmin = 5000, @@ -231,10 +227,8 @@ def _getHIJetBuildTool(merge_param, finder=jtm.addJetFinder(name+"_finder", "AntiKt", merge_param, - #gettersin=[_getTriggerHIPseudoJetGetter(hicluster_name)], gettersin=[_getTriggerPseudoJetGetter(cluster_calib)], modifiersin=[subtr2,calib_tool], - #consumers=None, ivtxin=None, ghostArea=0.0, rndseed=0, isTrigger=True, -- GitLab From 0cff738dfdec1ba8d995dfbba073222b94ac6196 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Tue, 28 Jul 2020 16:18:30 +0200 Subject: [PATCH 291/459] JetMomentTools: Fix compilation with clang. Fix usage of Gaudi property for clang. Also fix a warning due to a missing override keyword. --- .../Jet/JetMomentTools/JetMomentTools/JetIsolationTool.h | 6 +++--- .../Jet/JetMomentTools/Root/JetForwardJvtToolBDT.cxx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Reconstruction/Jet/JetMomentTools/JetMomentTools/JetIsolationTool.h b/Reconstruction/Jet/JetMomentTools/JetMomentTools/JetIsolationTool.h index 3d6cd25d95c..d7d8e4ee89b 100644 --- a/Reconstruction/Jet/JetMomentTools/JetMomentTools/JetIsolationTool.h +++ b/Reconstruction/Jet/JetMomentTools/JetMomentTools/JetIsolationTool.h @@ -138,14 +138,14 @@ public: JetIsolationTool(const std::string &myname); /// Dtor. - ~JetIsolationTool(); + virtual ~JetIsolationTool(); // Athena algtool Hooks virtual StatusCode initialize() override; - StatusCode finalize(); + virtual StatusCode finalize() override; // Jet Modifier methods. - StatusCode decorate(const xAOD::JetContainer& jets) const override; + virtual StatusCode decorate(const xAOD::JetContainer& jets) const override; private: Gaudi::Property<std::vector<std::string>> m_isolationCodes{this, "IsolationCalculations", {}, "Isolation calculation data vector"}; diff --git a/Reconstruction/Jet/JetMomentTools/Root/JetForwardJvtToolBDT.cxx b/Reconstruction/Jet/JetMomentTools/Root/JetForwardJvtToolBDT.cxx index d56444edd38..93c8b154af6 100644 --- a/Reconstruction/Jet/JetMomentTools/Root/JetForwardJvtToolBDT.cxx +++ b/Reconstruction/Jet/JetMomentTools/Root/JetForwardJvtToolBDT.cxx @@ -40,7 +40,7 @@ StatusCode JetForwardJvtToolBDT::initialize() if(m_isAna){ // -- Retrieve MVfJVT WP configFile ONLY if tool used in 'Analysis mode' - std::string filename = PathResolverFindCalibFile(m_configDir+m_wpFile); + std::string filename = PathResolverFindCalibFile(std::string(m_configDir)+m_wpFile); if (filename.empty()){ ATH_MSG_ERROR ( "Could NOT resolve file name " << m_wpFile); return StatusCode::FAILURE; -- GitLab From 9a39cc6dc82a1785b2609b8d94f868cbfcbf35ca Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Tue, 28 Jul 2020 20:49:46 +0100 Subject: [PATCH 292/459] #define -> # define comment --- Control/CxxUtils/CxxUtils/features.h | 38 +++++++++++++-------------- Control/CxxUtils/CxxUtils/vectorize.h | 10 +++---- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/Control/CxxUtils/CxxUtils/features.h b/Control/CxxUtils/CxxUtils/features.h index 0bbfb8aa82e..cd9c7be67a0 100644 --- a/Control/CxxUtils/CxxUtils/features.h +++ b/Control/CxxUtils/CxxUtils/features.h @@ -12,31 +12,31 @@ */ #ifndef CXXUTILS_FEATURES_H -#define CXXUTILS_FEATURES_H +# define CXXUTILS_FEATURES_H /// Do we have function multiversioning? GCC and clang > 7 support /// the target attribute -#if defined(__ELF__) && defined(__GNUC__) && !defined(__CLING__) && !defined(__ICC) && \ - !defined(__COVERITY__) && !defined(__CUDACC__) -#define HAVE_FUNCTION_MULTIVERSIONING 1 +#if defined(__ELF__) && defined(__GNUC__) && !defined(__CLING__) && \ + !defined(__ICC) && !defined(__COVERITY__) && !defined(__CUDACC__) +# define HAVE_FUNCTION_MULTIVERSIONING 1 #else -#define HAVE_FUNCTION_MULTIVERSIONING 0 +# define HAVE_FUNCTION_MULTIVERSIONING 0 #endif /// Do we have the target_clones attribute? clang does not support it -#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__COVERITY__) && \ - !defined(__CUDACC__) -#define HAVE_TARGET_CLONES 1 +#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && \ + !defined(__COVERITY__) && !defined(__CUDACC__) +# define HAVE_TARGET_CLONES 1 #else -#define HAVE_TARGET_CLONES 0 +# define HAVE_TARGET_CLONES 0 #endif /// Do we have support for all GCC intrinsics? -#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__COVERITY__) && \ - !defined(__CUDACC__) -#define HAVE_GCC_INTRINSICS 1 +#if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && \ + !defined(__COVERITY__) && !defined(__CUDACC__) +# define HAVE_GCC_INTRINSICS 1 #else -#define HAVE_GCC_INTRINSICS 0 +# define HAVE_GCC_INTRINSICS 0 #endif /// Do we have the bit-counting intrinsics? @@ -50,18 +50,18 @@ // __builtin_popcountl // __builtin_popcountll #if defined(__GNUC__) || defined(__clang__) -#define HAVE_BITCOUNT_INTRINSICS 1 +# define HAVE_BITCOUNT_INTRINSICS 1 #else -#define HAVE_BITCOUNT_INTRINSICS 0 +# define HAVE_BITCOUNT_INTRINSICS 0 #endif // Do we have the vector_size attribute for writing explicitly // vectorized code? -#if (defined(__GNUC__) || defined(__clang__)) && !defined(__ICC) && !defined(__COVERITY__) && \ - !defined(__CUDACC__) -#define HAVE_VECTOR_SIZE_ATTRIBUTE 1 +#if (defined(__GNUC__) || defined(__clang__)) && !defined(__ICC) && \ + !defined(__COVERITY__) && !defined(__CUDACC__) +# define HAVE_VECTOR_SIZE_ATTRIBUTE 1 #else -#define HAVE_VECTOR_SIZE_ATTRIBUTE 0 +# define HAVE_VECTOR_SIZE_ATTRIBUTE 0 #endif #endif // not CXXUTILS_FEATURES_H diff --git a/Control/CxxUtils/CxxUtils/vectorize.h b/Control/CxxUtils/CxxUtils/vectorize.h index 8e5f112f00a..a7049926563 100644 --- a/Control/CxxUtils/CxxUtils/vectorize.h +++ b/Control/CxxUtils/CxxUtils/vectorize.h @@ -23,21 +23,21 @@ */ #ifndef CXXUTILS_VECTORIZE_H -#define CXXUTILS_VECTORIZE_H +# define CXXUTILS_VECTORIZE_H #if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__COVERITY__) && \ !defined(__CUDACC__) -#define ATH_ENABLE_VECTORIZATION \ +# define ATH_ENABLE_VECTORIZATION \ _Pragma("GCC optimize (\"tree-vectorize\")") class ATH_ENABLE_VECTORIZATION_SWALLOW_SEMICOLON #else -#define ATH_ENABLE_VECTORIZATION class ATH_ENABLE_VECTORIZATION_SWALLOW_SEMICOLON +# define ATH_ENABLE_VECTORIZATION class ATH_ENABLE_VECTORIZATION_SWALLOW_SEMICOLON #endif #if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__COVERITY__) && \ !defined(__CUDACC__) -#define ATH_ENABLE_FUNCTION_VECTORIZATION __attribute__((optimize("tree-vectorize"))) +# define ATH_ENABLE_FUNCTION_VECTORIZATION __attribute__((optimize("tree-vectorize"))) #else -#define ATH_ENABLE_FUNCTION_VECTORIZATION +# define ATH_ENABLE_FUNCTION_VECTORIZATION #endif #endif // not CXXUTILS_VECTORIZE_H -- GitLab From 062219c81b82cb98c76a3e9b1bb6aae67d8a889f Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Tue, 28 Jul 2020 20:51:31 +0100 Subject: [PATCH 293/459] #define -> # define comment --- Control/CxxUtils/CxxUtils/features.h | 2 +- Control/CxxUtils/CxxUtils/vectorize.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Control/CxxUtils/CxxUtils/features.h b/Control/CxxUtils/CxxUtils/features.h index cd9c7be67a0..dcd5c1b86a2 100644 --- a/Control/CxxUtils/CxxUtils/features.h +++ b/Control/CxxUtils/CxxUtils/features.h @@ -12,7 +12,7 @@ */ #ifndef CXXUTILS_FEATURES_H -# define CXXUTILS_FEATURES_H +#define CXXUTILS_FEATURES_H /// Do we have function multiversioning? GCC and clang > 7 support /// the target attribute diff --git a/Control/CxxUtils/CxxUtils/vectorize.h b/Control/CxxUtils/CxxUtils/vectorize.h index a7049926563..987dd8ca9de 100644 --- a/Control/CxxUtils/CxxUtils/vectorize.h +++ b/Control/CxxUtils/CxxUtils/vectorize.h @@ -23,7 +23,7 @@ */ #ifndef CXXUTILS_VECTORIZE_H -# define CXXUTILS_VECTORIZE_H +#define CXXUTILS_VECTORIZE_H #if defined(__GNUC__) && !defined(__clang__) && !defined(__ICC) && !defined(__COVERITY__) && \ !defined(__CUDACC__) -- GitLab From ea2c000d70021a372b88583df53c03449a9f7283 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Tue, 28 Jul 2020 04:21:37 +0200 Subject: [PATCH 294/459] AthenaCommon: python 3 fix Fix --debug=exec handling for python 3. --- Control/AthenaCommon/python/AppMgr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Control/AthenaCommon/python/AppMgr.py b/Control/AthenaCommon/python/AppMgr.py index dd79b332b8f..da5b9ac5661 100755 --- a/Control/AthenaCommon/python/AppMgr.py +++ b/Control/AthenaCommon/python/AppMgr.py @@ -729,7 +729,7 @@ class AthAppMgr( AppMgr ): try: from AthenaCommon.Debugging import DbgStage if DbgStage.value == "exec": - from Debugging import hookDebugger + from .Debugging import hookDebugger hookDebugger() except ImportError: pass -- GitLab From 67fa55a36e6cb06b5e164c9a00cd9abf57dea8c8 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Tue, 28 Jul 2020 16:33:45 +0200 Subject: [PATCH 295/459] TrigValTools: Fix python 2 warning. Don't shadow an identifier from within a comprehension. --- Trigger/TrigValidation/TrigValTools/bin/COOLRates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigValidation/TrigValTools/bin/COOLRates.py b/Trigger/TrigValidation/TrigValTools/bin/COOLRates.py index a5ec94e6668..4afea908be0 100755 --- a/Trigger/TrigValidation/TrigValTools/bin/COOLRates.py +++ b/Trigger/TrigValidation/TrigValTools/bin/COOLRates.py @@ -871,7 +871,7 @@ def getNiceCanvas(name,aliases,textSize=25): canvas.SetBorderSize(0) canvas.SetFrameFillColor(0) #Stretch width and add subpad for legend - width = int(max([len(name) for name in aliases])*textSize*.50)+70 + width = int(max([len(nm) for nm in aliases])*textSize*.50)+70 oldWidth = canvas.GetWindowWidth() newWidth = oldWidth+width canvas.SetCanvasSize(newWidth,canvas.GetWindowHeight()) -- GitLab From 32f12f6ddac54e4980b873952a99081c9368a4a6 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Tue, 28 Jul 2020 16:32:12 +0200 Subject: [PATCH 296/459] TriggerMenuMT: python 2 compatibility Update last change to work with python 2 as well. --- .../TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py index d4ed0a34863..5b5dbf7b3b5 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py @@ -4,10 +4,14 @@ from TriggerMenuMT.HLTMenuConfig.Menu.CFValidation import findViewAlgs, checkVDV from AthenaCommon.AlgSequence import AlgSequence from AthenaCommon.CFElements import seqOR import AthenaCommon.CfgMgr as CfgMgr +import six import unittest class ViewCFTest( unittest.TestCase ): + if six.PY2: + assertRaisesRegex = unittest.TestCase.assertRaisesRegexp + def runTest( self ): topSequence = AlgSequence() -- GitLab From f5407411bdccbd11cbafa2a0d0d26fa51acf3cc9 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Fri, 10 Jul 2020 18:04:15 -0400 Subject: [PATCH 297/459] TRT_CalibAlgs: cmake fixes Library dependency fixes. --- InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/CMakeLists.txt b/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/CMakeLists.txt index dee71b27797..1fbcc828bdc 100644 --- a/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/CMakeLists.txt +++ b/InnerDetector/InDetCalibAlgs/TRT_CalibAlgs/CMakeLists.txt @@ -41,7 +41,7 @@ atlas_add_component( TRT_CalibAlgs src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps StoreGateLib SGtests xAODEventInfo GaudiKernel TrkToolInterfaces CommissionEvent AthContainers Identifier xAODTracking TRT_ConditionsData TRT_ConditionsServicesLib InDetIdentifier InDetRawData InDetPrepRawData InDetRIO_OnTrack TrkParameters TrkTrack VxVertex TrkFitterInterfaces ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps StoreGateLib SGtests xAODEventInfo GaudiKernel TrkToolInterfaces CommissionEvent AthContainers Identifier xAODTracking TRT_ConditionsData TRT_ConditionsServicesLib InDetIdentifier InDetRawData InDetPrepRawData InDetRIO_OnTrack TrkParameters TrkTrack VxVertex TrkFitterInterfaces TRT_TrackHoleSearchLib TRT_ElectronPidToolsLib TRT_CalibToolsLib ) # Install files from the package: atlas_install_headers( TRT_CalibAlgs ) -- GitLab From ae0c0f3e892d1c3dddb7c32cac30ce942fb1e1c9 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 12 Jul 2020 00:16:10 -0400 Subject: [PATCH 298/459] InDetTrigVxSecondary: cmake fixes Library dependency fixes. --- .../InDetTrigRecAlgs/InDetTrigVxSecondary/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigVxSecondary/CMakeLists.txt b/InnerDetector/InDetTrigRecAlgs/InDetTrigVxSecondary/CMakeLists.txt index 98aa09161fb..d02f52e4cc0 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigVxSecondary/CMakeLists.txt +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigVxSecondary/CMakeLists.txt @@ -35,7 +35,7 @@ atlas_add_component( InDetTrigVxSecondary src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} xAODTracking GaudiKernel VxSecVertex TrigInterfacesLib AthContainers GeoPrimitives IRegionSelector xAODBase InDetRecToolInterfaces TrkParameters TrkTrack VxVertex TrigInDetEvent TrigSteeringEvent ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} xAODTracking GaudiKernel VxSecVertex TrigInterfacesLib AthContainers GeoPrimitives IRegionSelector xAODBase InDetRecToolInterfaces TrkParameters TrkTrack VxVertex TrigInDetEvent TrigSteeringEvent InDetBeamSpotServiceLib ) # Install files from the package: atlas_install_headers( InDetTrigVxSecondary ) -- GitLab From 8f9941eaabf1944db5f52dfc6df830145769632a Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 12 Jul 2020 00:13:09 -0400 Subject: [PATCH 299/459] InDetTrigPriVxFinder: cmake fixes Library dependency fixes. --- .../InDetTrigRecAlgs/InDetTrigPriVxFinder/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigPriVxFinder/CMakeLists.txt b/InnerDetector/InDetTrigRecAlgs/InDetTrigPriVxFinder/CMakeLists.txt index 13a9c4bcd4e..6d9444aab64 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigPriVxFinder/CMakeLists.txt +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigPriVxFinder/CMakeLists.txt @@ -27,7 +27,7 @@ atlas_depends_on_subdirs( PUBLIC atlas_add_component( InDetTrigPriVxFinder src/*.cxx src/components/*.cxx - LINK_LIBRARIES GaudiKernel TrigInterfacesLib StoreGateLib SGtests EventPrimitives InDetRecToolInterfaces MagFieldInterfaces TrkEventPrimitives TrkParameters TrkParticleBase TrkTrack VxVertex TrigParticle xAODTracking ) + LINK_LIBRARIES GaudiKernel TrigInterfacesLib StoreGateLib SGtests EventPrimitives InDetRecToolInterfaces MagFieldInterfaces TrkEventPrimitives TrkParameters TrkParticleBase TrkTrack VxVertex TrigParticle xAODTracking InDetBeamSpotServiceLib ) # Install files from the package: atlas_install_headers( InDetTrigPriVxFinder ) -- GitLab From af19381258a257528bf4b725a553765886357adb Mon Sep 17 00:00:00 2001 From: Rafal Bielski <rafal.bielski@cern.ch> Date: Tue, 28 Jul 2020 22:52:44 +0200 Subject: [PATCH 300/459] Reset missing ROBs vector before calling eventCache_checkRobListToCache Patch sent by @wiedenma --- .../TrigControl/TrigServices/src/HltROBDataProviderSvc.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/HLT/Trigger/TrigControl/TrigServices/src/HltROBDataProviderSvc.cxx b/HLT/Trigger/TrigControl/TrigServices/src/HltROBDataProviderSvc.cxx index cd56cc19a0e..86286ece898 100644 --- a/HLT/Trigger/TrigControl/TrigServices/src/HltROBDataProviderSvc.cxx +++ b/HLT/Trigger/TrigControl/TrigServices/src/HltROBDataProviderSvc.cxx @@ -387,6 +387,7 @@ void HltROBDataProviderSvc::getROBData(const EventContext& context, // return all the requested ROB fragments from the cache robFragments.clear() ; + robIds_missing.clear() ; eventCache_checkRobListToCache(cache, robIds, robFragments, robIds_missing) ; } -- GitLab From 126b84ba010f46feda78cb91a85222ef387acd9a Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Wed, 29 Jul 2020 00:36:48 +0100 Subject: [PATCH 301/459] add static_assert to make sure Alignment full fills the posix_memalign requirements --- .../TrkGaussianSumFilter/AlignedDynArray.h | 33 +++++++++++-------- .../TrkGaussianSumFilter/AlignedDynArray.icc | 19 ++++++----- .../test/testAlignedDynArray.cxx | 8 ++--- 3 files changed, 35 insertions(+), 25 deletions(-) diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/AlignedDynArray.h b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/AlignedDynArray.h index aea681e00f1..523a713d7c4 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/AlignedDynArray.h +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/AlignedDynArray.h @@ -41,6 +41,14 @@ template<typename T, size_t ALIGNMENT> struct AlignedDynArray { + // These come from the posix_memalign + // which is the typical underlying implementation + static_assert(ALIGNMENT != 0, "Zero alignment 0"); + static_assert((ALIGNMENT & (ALIGNMENT - 1)) == 0, + "Alignment not a power of 2"); + static_assert((ALIGNMENT % sizeof(void*)) == 0, + "Alignment not an integral multiple of sizeof(void*)"); + ///@{ // Standard typedefs typedef T value_type; @@ -56,25 +64,25 @@ struct AlignedDynArray /// Deleted default constructor AlignedDynArray() = delete; - + /// Deleted default copy constructor AlignedDynArray(AlignedDynArray const&) = delete; - + /// Deleted default assignment operator AlignedDynArray& operator=(AlignedDynArray const&) = delete; /// Constructor with default initializing elements - explicit AlignedDynArray(size_type n); - + explicit AlignedDynArray(const size_type n); + /// Constructor initializing elements to value - explicit AlignedDynArray(size_type n, const T& value); + explicit AlignedDynArray(const size_type n, const T& value); /// Move copy constructor AlignedDynArray(AlignedDynArray&&) noexcept; - + /// Move assignment operator AlignedDynArray& operator=(AlignedDynArray&&) noexcept; - + /// Destructor ~AlignedDynArray(); @@ -86,7 +94,7 @@ struct AlignedDynArray /// index array operator reference operator[](size_type pos) noexcept; - + /// index array operator (const) const_reference operator[](size_type pos) const noexcept; @@ -98,7 +106,7 @@ struct AlignedDynArray /// iterator pointing to the past-the-end element iterator end() noexcept; - + /// const iterator pointing to the past-the-end element const_iterator end() const noexcept; @@ -108,15 +116,14 @@ struct AlignedDynArray /// returns true is size == 0 bool empty() const noexcept; - private: /// Helper method for calling the dtor for the elements void cleanup(); - ///Pointer to the underlying buffer + /// Pointer to the underlying buffer pointer m_buffer = nullptr; - - ///Num of elements/size + + /// Num of elements/size size_type m_size = 0; }; diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/AlignedDynArray.icc b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/AlignedDynArray.icc index a9b64c6bd03..5a47cbcd387 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/AlignedDynArray.icc +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/AlignedDynArray.icc @@ -12,21 +12,23 @@ namespace GSFUtils { template<typename T, size_t ALIGNMENT> -inline AlignedDynArray<T, ALIGNMENT>::AlignedDynArray(size_type n) +inline AlignedDynArray<T, ALIGNMENT>::AlignedDynArray(const size_type n) : m_buffer(nullptr) , m_size(n) { - const size_t bufferSize = n * sizeof(T); + + const size_t bufferSize = n * sizeof(T); m_buffer = static_cast<T*>(std::aligned_alloc(ALIGNMENT, bufferSize)); std::uninitialized_default_construct(m_buffer, m_buffer + m_size); } template<typename T, size_t ALIGNMENT> -inline AlignedDynArray<T, ALIGNMENT>::AlignedDynArray(size_type n, const T& value) +inline AlignedDynArray<T, ALIGNMENT>::AlignedDynArray(const size_type n, + const T& value) : m_buffer(nullptr) , m_size(n) { - const size_t bufferSize = n * sizeof(T); + const size_t bufferSize = n * sizeof(T); m_buffer = static_cast<T*>(std::aligned_alloc(ALIGNMENT, bufferSize)); std::uninitialized_fill(m_buffer, m_buffer + m_size, value); } @@ -83,15 +85,15 @@ AlignedDynArray<T, ALIGNMENT>::buffer() const noexcept template<typename T, size_t ALIGNMENT> inline typename AlignedDynArray<T, ALIGNMENT>::reference - AlignedDynArray<T, ALIGNMENT>::operator[](const std::size_t pos) noexcept +AlignedDynArray<T, ALIGNMENT>::operator[](const std::size_t pos) noexcept { return m_buffer[pos]; } template<typename T, size_t ALIGNMENT> inline typename AlignedDynArray<T, ALIGNMENT>::const_reference - AlignedDynArray<T, ALIGNMENT>::operator[]( - const AlignedDynArray<T, ALIGNMENT>::size_type pos) const noexcept +AlignedDynArray<T, ALIGNMENT>::operator[]( + const AlignedDynArray<T, ALIGNMENT>::size_type pos) const noexcept { return m_buffer[pos]; } @@ -133,7 +135,8 @@ AlignedDynArray<T, ALIGNMENT>::size() const noexcept } template<typename T, size_t ALIGNMENT> -bool AlignedDynArray<T, ALIGNMENT>::empty() const noexcept +bool +AlignedDynArray<T, ALIGNMENT>::empty() const noexcept { return (size() == 0); } diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/test/testAlignedDynArray.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/test/testAlignedDynArray.cxx index 46cdea22005..88130c93856 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/test/testAlignedDynArray.cxx +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/test/testAlignedDynArray.cxx @@ -9,13 +9,13 @@ main() { // - //32 bit int has size 4 bytes + //32 bit int has size 4 bytes using testType = int32_t; - constexpr size_t alignement = 32; //32 byte alignment + constexpr size_t alignement = 32; //32 byte alignment constexpr size_t n = 100; - //begin should be aligned at 32 boundary - //end (32+100*4)%32 ==> 16 + //begin should be aligned at 32 boundary + //end (32+100*4)%32 ==> 16 std::cout << "\n ==> Test ctor with default init of elements " << '\n'; -- GitLab From 4f39c461e2c61069ff8952906e8de28f5fe85757 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Wed, 29 Jul 2020 01:25:32 +0100 Subject: [PATCH 302/459] KLGaussianMixtureReduction remove unused return distance --- .../KLGaussianMixtureReduction.h | 22 ++++++++++------ .../src/KLGaussianMixtureReduction.cxx | 25 ++++++++++--------- .../test/testFindMinimumIndex.cxx | 4 +-- 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/KLGaussianMixtureReduction.h b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/KLGaussianMixtureReduction.h index b44311b4fc9..cb7ae7b385e 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/KLGaussianMixtureReduction.h +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/KLGaussianMixtureReduction.h @@ -30,10 +30,10 @@ * * [ (1,0) ] <br> * [ (2,0), (2,1) ] <br> - * [ (3,0), (3,1), (3,2)] <br> + * [ (3,0), (3,1), (3,2)] <br> * [ (4,0), (4,1), (4,2) , (4,3) <br> * [.............................] <br> - * [(N-1,0),(N-1,1),(N-1,2),(N-1,3) ... (N-1,N-2)]<br> + * [(N-1,0),(N-1,1),(N-1,2),(N-1,3) ... (N-1,N-2)]<br> * * With size 1+2+3+ .... (N-1) = N*(N-1)/2 * @@ -44,7 +44,7 @@ * (2,0) => 2 *(2-1)/2 + 0 => 1 <br> * (2,1) => 2 *(2-1)/2 + 1 => 2 <br> * (3,0) => 3 * (3-1)/2 +0 => 3 <br> - * + * * Leading to <br> * [(1,0),(2,0),(2,1),(3,0),(3,1),(3,2).... (N-1,N-2)] * @@ -99,7 +99,7 @@ struct Component1D /** * @brief Helper struct to map position in * triangular array to I, J indices - */ + */ struct triangularToIJ { int32_t I = -1; @@ -121,16 +121,22 @@ findMerges(Component1D* componentsIn, */ #if HAVE_FUNCTION_MULTIVERSIONING #if defined(__x86_64__) -__attribute__((target("avx2"))) std::pair<int32_t, float> +__attribute__((target("avx2"))) +int32_t findMinimumIndex(const float* distancesIn, const int32_t n); -__attribute__((target("sse4.1"))) std::pair<int32_t, float> + +__attribute__((target("sse4.1"))) +int32_t findMinimumIndex(const float* distancesIn, const int32_t n); -__attribute__((target("sse2"))) std::pair<int32_t, float> + +__attribute__((target("sse2"))) +int32_t findMinimumIndex(const float* distancesIn, const int32_t n); #endif // x86_64 specific targets + __attribute__((target("default"))) #endif // function multiversioning -std::pair<int32_t, float> +int32_t findMinimumIndex(const float* distancesIn, const int32_t n); } // namespace KLGaussianMixtureReduction diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx index 0591a87b449..9272a42af19 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/KLGaussianMixtureReduction.cxx @@ -25,7 +25,7 @@ * */ -/// This enables -ftree-vectorize in gcc (we compile with O2) +/// This enables -ftree-vectorize in gcc (since we compile with -O2) ATH_ENABLE_VECTORIZATION; namespace { @@ -222,9 +222,7 @@ findMerges(Component1D* componentsIn, int32_t numberOfComponentsLeft = n; while (numberOfComponentsLeft > reducedSize) { // see if we have the next already - const std::pair<int32_t, float> minDis = - findMinimumIndex(distances.buffer(), nn2); - const int32_t minIndex = minDis.first; + const int32_t minIndex = findMinimumIndex(distances.buffer(), nn2); const triangularToIJ conversion = convert[minIndex]; const int32_t mini = conversion.I; const int32_t minj = conversion.J; @@ -284,7 +282,8 @@ findMerges(Component1D* componentsIn, * Blend packed 8-bit integers from a and b using mask, and store the results * in dst. */ -__attribute__((target("avx2"))) std::pair<int32_t, float> +__attribute__((target("avx2"))) +int32_t findMinimumIndex(const float* distancesIn, const int n) { float* array = (float*)__builtin_assume_aligned(distancesIn, alignment); @@ -317,7 +316,7 @@ findMinimumIndex(const float* distancesIn, const int n) minDistance = distances[i]; } } - return { minIndex, minDistance }; + return minIndex; } /* * SSE intrinsics used @@ -346,7 +345,8 @@ findMinimumIndex(const float* distancesIn, const int n) * for compilation and does not generate any instructions, thus it has zero * latency. */ -__attribute__((target("sse4.1"))) std::pair<int32_t, float> +__attribute__((target("sse4.1"))) +int32_t findMinimumIndex(const float* distancesIn, const int n) { float* array = (float*)__builtin_assume_aligned(distancesIn, alignment); @@ -394,7 +394,7 @@ findMinimumIndex(const float* distancesIn, const int n) minDistance = distances[i]; } } - return { minIndex, minDistance }; + return minIndex; } /* * SSE2 does not have a blend/select instruction. @@ -409,7 +409,8 @@ SSE2_mm_blendv_epi8(__m128i a, __m128i b, __m128i mask) { return _mm_or_si128(_mm_andnot_si128(mask, a), _mm_and_si128(mask, b)); } -__attribute__((target("sse2"))) std::pair<int32_t, float> +__attribute__((target("sse2"))) +int32_t findMinimumIndex(const float* distancesIn, const int n) { float* array = (float*)__builtin_assume_aligned(distancesIn, alignment); @@ -458,13 +459,13 @@ findMinimumIndex(const float* distancesIn, const int n) } } - return { minIndex, minDistance }; + return minIndex; } #endif // end of x86_64 versions // Always fall back to a simple default version with no intrinsics __attribute__((target("default"))) #endif // HAVE_FUNCTION_MULTIVERSIONING -std::pair<int32_t, float> +int32_t findMinimumIndex(const float* distancesIn, const int n) { float* array = (float*)__builtin_assume_aligned(distancesIn, alignment); @@ -477,6 +478,6 @@ findMinimumIndex(const float* distancesIn, const int n) minDistance = value; } } - return { minIndex, minDistance }; + return minIndex; } } // end namespace GSFUtils diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/test/testFindMinimumIndex.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/test/testFindMinimumIndex.cxx index 93b1ec6be33..5edfc548ec7 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/test/testFindMinimumIndex.cxx +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/test/testFindMinimumIndex.cxx @@ -14,8 +14,8 @@ int main(){ 6.97245, 2.13307, 2.89188, 1.46095, 1.32797, 4.67858, 5.1219, 5.38812, 8.14577, 9.28787, 8.26778, 7.35197, 1.02537, 7.39633, 6.79565, 5.1043, 7.96525, 6.16379, 8.89082, 8.27358, 1.15997, 8.39121, 8.38757, 9.46067, 4.714}; - std::pair<int32_t,float> minIndex=GSFUtils::findMinimumIndex(array,64); - std::cout << "FindMinimumIndex Index = " << minIndex.first << " with value = " << minIndex.second <<'\n'; + int32_t minIndex=GSFUtils::findMinimumIndex(array,64); + std::cout << "FindMinimumIndex Index = " << minIndex << " with value = " << array[minIndex] <<'\n'; return 0; } -- GitLab From 0679742a406587b129eeddf3ece6b743b86561c7 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Wed, 29 Jul 2020 03:07:55 +0100 Subject: [PATCH 303/459] MultiComponentStateModeCalculator fillMixture try to avoid vector reallocation --- .../src/MultiComponentStateModeCalculator.cxx | 58 ++++++++++--------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultiComponentStateModeCalculator.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultiComponentStateModeCalculator.cxx index 021b080857a..07ad09c6e71 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultiComponentStateModeCalculator.cxx +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/MultiComponentStateModeCalculator.cxx @@ -17,9 +17,10 @@ #include <cmath> namespace { -//note: sqrt is not constexpr; although gcc might accept it, clang doesn't. -//but cmath constants can still be used.. -constexpr double invsqrt2PI = M_2_SQRTPI/(2.*M_SQRT2);//1. / sqrt(2. * M_PI); +constexpr double invsqrt2PI = + M_2_SQRTPI / (2. * M_SQRT2); // 1. / sqrt(2. * M_PI); + +using namespace Trk::MultiComponentStateModeCalculator; /** bried method to determine the value of the a gaussian distribution at a * given value */ @@ -28,15 +29,13 @@ gaus(double x, double mean, double sigma) { // gauss = 1/(sigma * sqrt(2*pi)) * exp ( -0.5 * ((x-mean)/sigma)^2 ) // = (1/sqrt(2*pi))* (1/sigma) * exp (-0.5 * ((x-mean)*(1/sigma)) * - // ((x-mean)*(1/sigma)) ) + // ((x-mean)*(1/sigma)) ) //= invsqrt2PI * invertsigma * exp (-0.5 *z * z) - double invertsigma = 1. / sigma; - double z = (x - mean) * invertsigma; - double result = (invsqrt2PI * invertsigma) * exp(-0.5 * z * z); - return result; + const double invertsigma = 1. / sigma; + const double z = (x - mean) * invertsigma; + return (invsqrt2PI * invertsigma) * exp(-0.5 * z * z); } -using namespace Trk::MultiComponentStateModeCalculator; /** @brief method to determine the pdf of the cashed mixture at a given value*/ double pdf(double x, int i, const std::array<std::vector<Component>, 5>& mixture) @@ -94,7 +93,8 @@ width(int i, const std::array<std::vector<Component>, 5>& mixture) return pdf; } -} +}//end of anonymous namespace + std::array<double, 10> Trk::MultiComponentStateModeCalculator::calculateMode( @@ -169,7 +169,7 @@ Trk::MultiComponentStateModeCalculator::calculateMode( } // Ensure that phi is between -pi and pi if (i == 2) { - modes[i] = CxxUtils::wrapToPi( modes[i] ) ; + modes[i] = CxxUtils::wrapToPi(modes[i]); } } } @@ -182,31 +182,33 @@ Trk::MultiComponentStateModeCalculator::fillMixture( std::array<std::vector<Component>, 5>& mixture) { - for (int i = 0; i < 5; i++) { + constexpr Trk::ParamDefs parameter[5] = { + Trk::d0, Trk::z0, Trk::phi, Trk::theta, Trk::qOverP + }; + + const size_t componentsNum = multiComponentState.size(); + for (size_t i = 0; i < 5; ++i) { mixture[i].clear(); + mixture[i].reserve(componentsNum); } // Loop over all the components in the multi-component state - Trk::MultiComponentState::const_iterator component = - multiComponentState.begin(); - Trk::ParamDefs parameter[5] = { - Trk::d0, Trk::z0, Trk::phi, Trk::theta, Trk::qOverP - }; - for (; component != multiComponentState.end(); ++component) { - for (int i = 0; i < 5; ++i) { - const Trk::TrackParameters* componentParameters = component->first.get(); + for (const Trk::ComponentParameters& component : multiComponentState) { - const AmgSymMatrix(5)* measuredCov = componentParameters->covariance(); + //And then for each component over each 5 parameters + for (size_t i = 0; i < 5; ++i) { + const Trk::TrackParameters* componentParameters = component.first.get(); + const AmgSymMatrix(5)* measuredCov = componentParameters->covariance(); if (!measuredCov) { return; } // Enums for Perigee // - // d0=0, z0=1, phi0=2, theta=3, qOverP=4, - double weight = component->second; + // d0=0, z0=1, phi0=2, theta=3, qOverP=4, + double weight = component.second; double mean = componentParameters->parameters()[parameter[i]]; - // FIXME ATLASRECTS-598 this std::abs() should not be necessary... for some - // reason cov(qOverP,qOverP) can be negative + // FIXME ATLASRECTS-598 this std::abs() should not be necessary... for + // some reason cov(qOverP,qOverP) can be negative double sigma = sqrt(std::abs((*measuredCov)(parameter[i], parameter[i]))); // Ensure that we don't have any problems with the cyclical nature of phi @@ -220,8 +222,7 @@ Trk::MultiComponentStateModeCalculator::fillMixture( mean -= 2 * M_PI; } } - Component comp(weight, mean, sigma); - mixture[i].push_back(comp); + mixture[i].emplace_back(weight, mean, sigma); } } } @@ -254,7 +255,8 @@ Trk::MultiComponentStateModeCalculator::findMode( double pdfPreviousMode = pdf(previousMode, i, mixture); if ((pdfMode + pdfPreviousMode) != 0.0) { - tolerance = std::abs(pdfMode - pdfPreviousMode) / (pdfMode + pdfPreviousMode); + tolerance = + std::abs(pdfMode - pdfPreviousMode) / (pdfMode + pdfPreviousMode); } else { return xStart; } -- GitLab From f657452ffc84024a9e421f3e8e9c4d2cb076bf9d Mon Sep 17 00:00:00 2001 From: yoyamagu <yohei.yamaguchi@cern.ch> Date: Wed, 29 Jul 2020 12:05:15 +0900 Subject: [PATCH 304/459] turning on topoRoad --- .../TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig.py b/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig.py index 63e6d4c17a0..ea03a04c4fb 100644 --- a/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig.py +++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig.py @@ -120,7 +120,7 @@ class TrigL2MuonSAMTConfig(MuonSA.MuFastSteering): self.RpcErrToDebugStream = True - MuonSA.MuFastSteering.topoRoad = False + MuonSA.MuFastSteering.topoRoad = True MuonSA.MuFastSteering.dEtasurrRoI = 0.14 # wide enough comparing to L1 RoI in barrel MuonSA.MuFastSteering.dPhisurrRoI = 0.14 # wide enough comparing to L1 RoI in barrel @@ -202,7 +202,7 @@ class TrigL2MuonSAConfig(MuonSA.MuFastSteering): self.RpcErrToDebugStream = True - MuonSA.MuFastSteering.topoRoad = False + MuonSA.MuFastSteering.topoRoad = True MuonSA.MuFastSteering.dEtasurrRoI = 0.14 MuonSA.MuFastSteering.dPhisurrRoI = 0.14 -- GitLab From b4cec32512e47736aa01d8e3eb821963d6080a62 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Wed, 29 Jul 2020 05:00:47 +0100 Subject: [PATCH 305/459] Remove un-needed inlcudes of IMagneticFieldSvc --- .../TrkGlobalChi2Fitter/GlobalChi2Fitter.h | 14 ++--- .../TrackParticleCreatorTool.h | 2 - .../TrkVKalVrtFitter/ITrkVKalVrtFitter.h | 35 ++++++------ .../TrkVKalVrtFitter/TrkVKalVrtFitter.h | 50 ++++++++-------- .../TrkVKalVrtFitter/VKalVrtAtlas.h | 22 +++---- .../TrkVKalVrtFitter/src/TrkVKalVrtFitter.cxx | 57 +++++++++---------- .../TrigAlgorithms/TrigmuComb/src/muComb.h | 35 ++++++------ .../TrigAlgorithms/TrigmuComb/src/muCombMT.h | 30 +++++----- 8 files changed, 111 insertions(+), 134 deletions(-) diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h index 10af738591c..e2f7baf142d 100755 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/TrkGlobalChi2Fitter/GlobalChi2Fitter.h @@ -23,9 +23,6 @@ class AtlasDetectorID; -namespace MagField { - class IMagFieldSvc; -} namespace Trk { class Track; @@ -42,7 +39,6 @@ namespace Trk { class ITrackingGeometrySvc; class TrackFitInputPreparator; class IMagneticFieldTool; - class IMagFieldSvc; class MeasuredPerigee; class PrepRawDataComparisonFunction; class MeasurementBaseComparisonFunction; @@ -88,11 +84,11 @@ namespace Trk { std::vector<double> m_phiweight; std::vector<int> m_firstmeasurement; std::vector<int> m_lastmeasurement; - + std::vector < const Trk::Layer * >m_negdiscs; std::vector < const Trk::Layer * >m_posdiscs; std::vector < const Trk::Layer * >m_barrelcylinders; - + bool m_fastmat = true; int m_lastiter; @@ -101,7 +97,7 @@ namespace Trk { #ifdef GXFDEBUGCODE int m_iterations = 0; #endif - + Amg::MatrixX m_derivmat; Amg::SymMatrixX m_fullcovmat; @@ -211,7 +207,7 @@ namespace Trk { const RunOutlierRemoval runOutlier=false, const ParticleHypothesis matEffects=Trk::nonInteracting ) const override; - + private: void calculateJac( Eigen::Matrix<double, 5, 5> &, @@ -283,7 +279,7 @@ namespace Trk { Cache &, const Trk::TrackingVolume * tvol ) const; - + /** * @brief Find the intersection of a set of track parameters onto a disc * surface. diff --git a/Tracking/TrkTools/TrkParticleCreator/TrkParticleCreator/TrackParticleCreatorTool.h b/Tracking/TrkTools/TrkParticleCreator/TrkParticleCreator/TrackParticleCreatorTool.h index daf0cc40471..378b9b2b2c2 100644 --- a/Tracking/TrkTools/TrkParticleCreator/TrkParticleCreator/TrackParticleCreatorTool.h +++ b/Tracking/TrkTools/TrkParticleCreator/TrkParticleCreator/TrackParticleCreatorTool.h @@ -190,8 +190,6 @@ private: "MuonSummaryTool", "Muon::MuonHitSummaryTool/MuonHitSummaryTool" }; - /** to query magnetic field configuration */ - // ServiceHandle<MagField::IMagFieldSvc> m_magFieldSvc; ServiceHandle<IBLParameterSvc> m_IBLParameterSvc; SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey{ diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/ITrkVKalVrtFitter.h b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/ITrkVKalVrtFitter.h index c9dd4ea722f..76fb09d517d 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/ITrkVKalVrtFitter.h +++ b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/ITrkVKalVrtFitter.h @@ -6,7 +6,7 @@ // // Old interface of VKalVrt. // Fully implemented also in Reconstruction/VKalVrt/VKalVrtFitSvc -// +// //--------------------------------------------------------------- #ifndef TRKVKALVRTFITTER_ITRKVKALVRTFITTER_H #define TRKVKALVRTFITTER_ITRKVKALVRTFITTER_H @@ -20,14 +20,11 @@ // #include "TrkVKalVrtFitter/IVKalState.h" #include "TrkTrack/Track.h" -#include "xAODTracking/TrackParticleContainer.h" -#include "xAODTracking/NeutralParticleContainer.h" +#include "xAODTracking/TrackParticleContainer.h" +#include "xAODTracking/NeutralParticleContainer.h" #include "xAODTracking/VertexContainer.h" #include <vector> -namespace MagField{ - class IMagFieldSvc; -} namespace Trk{ @@ -47,7 +44,7 @@ class IExtrapolator; * Context aware method */ virtual std::unique_ptr<IVKalState> makeState(const EventContext& ctx) const = 0; - + /* * For non-migrated clients which should always use the context aware method */ @@ -92,7 +89,7 @@ class IExtrapolator; double& Chi2, IVKalState& istate, bool ifCovV0 = false) const = 0; - + //------ virtual StatusCode VKalVrtCvtTool(const Amg::Vector3D& Vertex, const TLorentzVector& Momentum, @@ -102,7 +99,7 @@ class IExtrapolator; std::vector<double>& CovPerigee, IVKalState& istate) const = 0; //......................................................................................... - + virtual StatusCode VKalVrtFitFast(const std::vector<const Track*>& list, Amg::Vector3D& Vertex, IVKalState& istate) const = 0; @@ -110,7 +107,7 @@ class IExtrapolator; const std::vector<const xAOD::TrackParticle*>& list, Amg::Vector3D& Vertex, IVKalState& istate) const = 0; - + virtual StatusCode VKalVrtFitFast( const std::vector<const TrackParameters*>& list, Amg::Vector3D& Vertex, @@ -123,10 +120,10 @@ class IExtrapolator; virtual StatusCode VKalGetTrkWeights(std::vector<double>& Weights, const IVKalState& istate) const = 0; - + virtual StatusCode VKalGetFullCov(long int, std::vector<double>& CovMtx, const IVKalState& istate, bool = false) const =0; - + virtual StatusCode VKalGetMassError(double& Mass, double& MassError, const IVKalState& istate) const =0; @@ -137,23 +134,23 @@ class IExtrapolator; virtual void setMassForConstraint(double, const std::vector<int>&, IVKalState& istate) const =0; - + virtual void setRobustness(int, IVKalState& istate) const =0; - + virtual void setRobustScale(double, IVKalState& istate) const =0; - + virtual void setCnstType(int, IVKalState& istate) const =0; - + virtual void setVertexForConstraint(const xAOD::Vertex &, IVKalState& istate) const=0; - + virtual void setVertexForConstraint(double,double,double, IVKalState& istate) const =0; - + virtual void setCovVrtForConstraint(double,double,double, double,double,double, IVKalState& istate) const=0; - + virtual void setMassInputParticles( const std::vector<double>&, IVKalState& istate) const=0; //---------------------------------------------------------------------------------------------------- diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/TrkVKalVrtFitter.h b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/TrkVKalVrtFitter.h index 1f2d063778a..c53c875aeb9 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/TrkVKalVrtFitter.h +++ b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/TrkVKalVrtFitter.h @@ -50,13 +50,13 @@ namespace Trk{ std::vector<int> trkInVrt; // list of tracks attached to vertex directly VertexID outPointingV; // to which vertex it points std::vector<VertexID> inPointingV; // which vertices points to it - VertexID mergedTO; // merged to another vertex (not separate anymore) + VertexID mergedTO; // merged to another vertex (not separate anymore) std::vector<VertexID> mergedIN; // vertices attached to current int indexInSimpleCascade; cascadeV(){ vID=-999; outPointingV=0; mergedTO=0; indexInSimpleCascade=0;}; ~cascadeV() = default; }; - + //------------------------------------------------------------------------ //Tool should not be used reentrantly or used publically @@ -70,7 +70,7 @@ namespace Trk{ // The following 'using' can be removed when IVertexFitter::fit has been fully migrated to the one with the EventContext using Trk::IVertexFitter::fit; using Trk::ITrkVKalVrtFitter::makeState; - + virtual StatusCode initialize() override final; virtual StatusCode finalize() override final; @@ -120,17 +120,17 @@ namespace Trk{ virtual xAOD::Vertex* fit( const std::vector<const TrackParameters*>&) const override final; - + virtual xAOD::Vertex* fit( const std::vector<const TrackParameters*>&, const std::vector<const Trk::NeutralParameters*>&) const override final; /*-------------- Additional xAOD interfaces -------------*/ - xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*>& vectorTrk, + xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*>& vectorTrk, const Amg::Vector3D& constraint, IVKalState& istate) const; - xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*>& vectorTrk, + xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*>& vectorTrk, const xAOD::Vertex& constraint, IVKalState& istate) const; // @@ -181,7 +181,7 @@ namespace Trk{ double& Chi2, IVKalState& istate, bool ifCovV0 = false) const override final; - + virtual StatusCode VKalVrtFit( const std::vector<const Track*>&, Amg::Vector3D& Vertex, @@ -222,7 +222,7 @@ namespace Trk{ const std::vector<const xAOD::TrackParticle*>&, Amg::Vector3D& Vertex, IVKalState& istate) const override final; - + virtual StatusCode VKalVrtFitFast( const std::vector<const TrackParameters*>&, Amg::Vector3D& Vertex, @@ -232,7 +232,7 @@ namespace Trk{ Trk::Track* CreateTrkTrack(const std::vector<double>& VKPerigee, const std::vector<double>& VKCov, const IVKalState& istate) const override final; - + virtual StatusCode VKalGetTrkWeights( dvect& Weights, const IVKalState& istate) const override final; @@ -251,16 +251,16 @@ namespace Trk{ double Y, double Z, IVKalState& istate) const override final; - + virtual void setMassForConstraint(double Mass, IVKalState& istate) const override final; - + virtual void setMassForConstraint(double Mass, const std::vector<int>&, IVKalState& istate) const override final; virtual void setRobustness(int, IVKalState& istate) const override final; - + virtual void setRobustScale(double, IVKalState& istate) const override final; virtual void setCnstType(int, IVKalState& istate) const override final; @@ -283,27 +283,27 @@ namespace Trk{ virtual void setMassInputParticles(const std::vector<double>&, IVKalState& istate) const override final; - + virtual double VKalGetImpact(const xAOD::TrackParticle*, const Amg::Vector3D& Vertex, const long int Charge, dvect& Impact, dvect& ImpactError, IVKalState& istate) const override final; - + virtual double VKalGetImpact(const Track*, const Amg::Vector3D& Vertex, const long int Charge, dvect& Impact, dvect& ImpactError, IVKalState& istate) const override final; - + virtual double VKalGetImpact(const xAOD::TrackParticle*, const Amg::Vector3D& Vertex, const long int Charge, dvect& Impact, dvect& ImpactError) const override final; - + virtual double VKalGetImpact(const Track*, const Amg::Vector3D& Vertex, const long int Charge, @@ -327,8 +327,6 @@ namespace Trk{ std::vector<double> m_c_MassInputParticles; ToolHandle<IExtrapolator> m_extPropagator; // External propagator - ////ServiceHandle<MagField::IMagFieldSvc> m_magFieldAthenaSvc; //Athena - ///magnetic field // Read handle for conditions object to get the field cache SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey{ this, @@ -356,7 +354,7 @@ namespace Trk{ struct TrkMatControl { // Track reference point(hit) in global ATLAS frame - Amg::Vector3D trkRefGlobPos; + Amg::Vector3D trkRefGlobPos; int extrapolationType; int TrkID; const TrackParameters* TrkPnt; @@ -452,7 +450,7 @@ namespace Trk{ int getCascadeNDoF (const CascadeState& cstate) const; //---------------------- // Control variables -// +// double m_BMAG; /* const magnetic field if needed */ double m_CNVMAG; /* Conversion constant */ @@ -464,7 +462,7 @@ namespace Trk{ // // - + // // Private technical functions @@ -475,7 +473,7 @@ namespace Trk{ // init of state for backwards compartibility - calls context-aware version. Can be removed // when fully migrated to EventContext void initState (State& state) const; - + // // void FillMatrixP(AmgSymMatrix(5)& , std::vector<double>& ) const; @@ -505,22 +503,22 @@ namespace Trk{ StatusCode CvtTrkTrack(const std::vector<const Track*>& list, int& ntrk, State& state) const; - + StatusCode CvtTrackParticle( const std::vector<const xAOD::TrackParticle*>& list, int& ntrk, State& state) const; - + StatusCode CvtNeutralParticle( const std::vector<const xAOD::NeutralParticle*>& list, int& ntrk, State& state) const; - + StatusCode CvtTrackParameters( const std::vector<const TrackParameters*>& InpTrk, int& ntrk, State& state) const; - + StatusCode CvtNeutralParameters( const std::vector<const NeutralParameters*>& InpTrk, int& ntrk, diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/VKalVrtAtlas.h b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/VKalVrtAtlas.h index bd46bca5e68..dfff9d0de57 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/VKalVrtAtlas.h +++ b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/VKalVrtAtlas.h @@ -8,7 +8,6 @@ #define TRKVKALVRTFITTER_VKALVRTATLAS_H // Mag field service -#include "MagFieldInterfaces/IMagFieldSvc.h" #include "TrkVKalVrtCore/VKalVrtBMag.h" #include "MagFieldElements/AtlasFieldCache.h" // External propagator @@ -16,9 +15,6 @@ #include "TrkExInterfaces/IExtrapolator.h" #include "TrkVKalVrtFitter/ITrkVKalVrtFitter.h" -namespace MagField{ - class IMagFieldSvc; -} namespace Trk{ @@ -27,7 +23,7 @@ class TrkVKalVrtFitter; // ATLAS magnetic field access for TrkVKalVrtFitter //----------------------------------------------------- - class VKalAtlasMagFld : public Trk::baseMagFld + class VKalAtlasMagFld : public Trk::baseMagFld { public: @@ -39,7 +35,7 @@ class TrkVKalVrtFitter; void setAtlasMagRefFrame( double, double, double ); private: - + MagField::AtlasFieldCache * m_VKalAthenaField; double m_FIXED_ATLAS_FIELD=1.997; double m_magFrameX, m_magFrameY, m_magFrameZ ; @@ -51,7 +47,7 @@ class StraightLineSurface; // External propagator access for TrkVKalVrtCore //----------------------------------------------------- - class VKalExtPropagator : public Trk::basePropagator + class VKalExtPropagator : public Trk::basePropagator { public: @@ -63,8 +59,8 @@ class StraightLineSurface; // system. Global coordinates are incapsulated inside function // virtual - void Propagate(long int trkID, long int Charge, - double *ParOld, double *CovOld, double *RefStart, + void Propagate(long int trkID, long int Charge, + double *ParOld, double *CovOld, double *RefStart, double *RefEnd, double *ParNew, double *CovNew, const IVKalState& istate) const override; virtual @@ -74,11 +70,11 @@ class StraightLineSurface; void setPropagator(const IExtrapolator* ); - const TrackParameters* myExtrapWithMatUpdate(long int TrkID, + const TrackParameters* myExtrapWithMatUpdate(long int TrkID, const TrackParameters *inpPer, Amg::Vector3D *endPoint, const IVKalState& istate) const; - const TrackParameters* myExtrapToLine(long int TrkID, + const TrackParameters* myExtrapToLine(long int TrkID, const TrackParameters *inpPer, Amg::Vector3D * endPoint, StraightLineSurface &lineTarget, @@ -87,9 +83,9 @@ class StraightLineSurface; Amg::Vector3D *endPoint) const; const Perigee* myxAODFstPntOnTrk(const xAOD::TrackParticle* xprt) const; - + private: - + const IExtrapolator *m_extrapolator; //!< Pointer to Extrapolator AlgTool TrkVKalVrtFitter *m_vkalFitSvc; //!< Pointer to TrkVKalVrtFitter diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/TrkVKalVrtFitter.cxx b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/TrkVKalVrtFitter.cxx index 726e3ceb315..1790138ca57 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/TrkVKalVrtFitter.cxx +++ b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/TrkVKalVrtFitter.cxx @@ -13,7 +13,6 @@ #include "TrkParticleBase/LinkToTrackParticleBase.h" #include "VxVertex/VxTrackAtVertex.h" #include "TrkExInterfaces/IExtrapolator.h" -#include "MagFieldInterfaces/IMagFieldSvc.h" #include "GaudiKernel/IChronoStatSvc.h" //------------------------------------------------- // Other stuff @@ -23,7 +22,7 @@ namespace Trk{ // -//Constructor-------------------------------------------------------------- +//Constructor-------------------------------------------------------------- TrkVKalVrtFitter:: TrkVKalVrtFitter(const std::string& type, const std::string& name, const IInterface* parent): @@ -53,8 +52,8 @@ TrkVKalVrtFitter:: TrkVKalVrtFitter(const std::string& type, declareInterface<IVertexFitter>(this); declareInterface<ITrkVKalVrtFitter>(this); declareInterface<IVertexCascadeFitter>(this); - - m_BMAG = 1.997; /*constant ATLAS magnetic field if no exact map*/ + + m_BMAG = 1.997; /*constant ATLAS magnetic field if no exact map*/ m_CNVMAG = 0.29979246; /* conversion constant for MeV and MM */ m_c_VertexForConstraint.clear(); @@ -87,15 +86,15 @@ TrkVKalVrtFitter:: TrkVKalVrtFitter(const std::string& type, declareProperty("useZPointingCnst", m_useZPointingCnst); declareProperty("usePassNearCnst", m_usePassNear); declareProperty("usePassWithTrkErrCnst", m_usePassWithTrkErr); -// - +// + /*--------------------------------------------------------------------------*/ /* New propagator object is created. It's provided to VKalVrtCore. */ -/* VKalVrtFitter must set up Core BEFORE any call required propagation!!! */ +/* VKalVrtFitter must set up Core BEFORE any call required propagation!!! */ /* This object is created ONLY if IExtrapolator pointer is provideded. */ /* see VKalExtPropagator.cxx for details */ /*--------------------------------------------------------------------------*/ - m_fitPropagator = nullptr; //Pointer to VKalVrtFitter propagator object to supply to VKalVrtCore (specific interface) + m_fitPropagator = nullptr; //Pointer to VKalVrtFitter propagator object to supply to VKalVrtCore (specific interface) m_InDetExtrapolator = nullptr; //Direct pointer to Athena propagator m_isAtlasField = false; // To allow callback and then field first call only at execute stage @@ -126,9 +125,9 @@ StatusCode TrkVKalVrtFitter::finalize() StatusCode TrkVKalVrtFitter::initialize() { - + // Checking ROBUST algoritms - if(m_Robustness<0 || m_Robustness>7 ) m_Robustness=0; + if(m_Robustness<0 || m_Robustness>7 ) m_Robustness=0; if(!m_useFixedField){ @@ -178,8 +177,8 @@ StatusCode TrkVKalVrtFitter::initialize() msg(MSG::DEBUG)<< " ZPointing to other vertex constraint: "<< m_useZPointingCnst <<endmsg; msg(MSG::DEBUG)<< " Comb. particle pass near other vertex:"<< m_usePassNear <<endmsg; msg(MSG::DEBUG)<< " Pass near with comb.particle errors: "<< m_usePassWithTrkErr <<endmsg; - if(m_massForConstraint>0){ - msg(MSG::DEBUG)<< " Mass constraint M="<< m_massForConstraint <<endmsg; + if(m_massForConstraint>0){ + msg(MSG::DEBUG)<< " Mass constraint M="<< m_massForConstraint <<endmsg; msg(MSG::DEBUG)<< " with particles M="; for(int i=0; i<(int)m_c_MassInputParticles.size(); i++) msg(MSG::DEBUG)<<m_c_MassInputParticles[i]<<", "; msg(MSG::DEBUG)<<endmsg; ; @@ -209,8 +208,8 @@ void TrkVKalVrtFitter::initState (State& state) const } -void TrkVKalVrtFitter::initState (const EventContext& ctx, State& state) const - +void TrkVKalVrtFitter::initState (const EventContext& ctx, State& state) const + { //---------------------------------------------------------------------- // New magnetic field object is created. It's provided to VKalVrtCore. @@ -405,7 +404,7 @@ xAOD::Vertex * TrkVKalVrtFitter::fit(const std::vector<const TrackParameters*> return tmpVertex; } -/** Interface for xAOD::TrackParticle with starting point +/** Interface for xAOD::TrackParticle with starting point * Implements the new style (unique_ptr,EventContext) * */ std::unique_ptr<xAOD::Vertex> @@ -441,7 +440,7 @@ xAOD::Vertex * TrkVKalVrtFitter::fit(const std::vector<const xAOD::TrackParticle Vertex, Momentum, Charge, ErrorMatrix, Chi2PerTrk, TrkAtVrt, Chi2, state, true ); if(sc.isSuccess()) { tmpVertex = makeXAODVertex( 0, Vertex, ErrorMatrix, Chi2PerTrk, TrkAtVrt, Chi2, state ); - dvect fittrkwgt; + dvect fittrkwgt; sc=VKalGetTrkWeights(fittrkwgt, state); if(sc.isFailure())fittrkwgt.clear(); for(int ii=0; ii<state.m_FitStatus; ii++) { ElementLink<xAOD::TrackParticleContainer> TEL; TEL.setElement( xtpListC[ii] ); @@ -475,7 +474,7 @@ xAOD::Vertex * TrkVKalVrtFitter::fit(const std::vector<const xAOD::TrackParticle Vertex, Momentum, Charge, ErrorMatrix, Chi2PerTrk, TrkAtVrt, Chi2, state, true ); if(sc.isSuccess()) { tmpVertex = makeXAODVertex( (int)xtpListN.size(), Vertex, ErrorMatrix, Chi2PerTrk, TrkAtVrt, Chi2, state ); - dvect fittrkwgt; + dvect fittrkwgt; sc=VKalGetTrkWeights(fittrkwgt, state); if(sc.isFailure())fittrkwgt.clear(); for(int ii=0; ii<state.m_FitStatus; ii++) { if(ii<(int)xtpListC.size()) { @@ -535,7 +534,7 @@ xAOD::Vertex * TrkVKalVrtFitter::fit(const std::vector<const xAOD::TrackParticle Vertex, Momentum, Charge, ErrorMatrix, Chi2PerTrk, TrkAtVrt, Chi2, state, true ); if(sc.isSuccess()) { tmpVertex = makeXAODVertex( 0, Vertex, ErrorMatrix,Chi2PerTrk, TrkAtVrt, Chi2, state ); - dvect fittrkwgt; + dvect fittrkwgt; sc=VKalGetTrkWeights(fittrkwgt, state); if(sc.isFailure())fittrkwgt.clear(); for(int ii=0; ii<state.m_FitStatus; ii++) { ElementLink<xAOD::TrackParticleContainer> TEL; TEL.setElement( xtpListC[ii] ); @@ -580,7 +579,7 @@ xAOD::Vertex * TrkVKalVrtFitter::fit(const std::vector<const xAOD::TrackParticle Vertex, Momentum, Charge, ErrorMatrix, Chi2PerTrk, TrkAtVrt, Chi2, state, true ); if(sc.isSuccess()){ tmpVertex = makeXAODVertex( (int)xtpListN.size(), Vertex, ErrorMatrix,Chi2PerTrk, TrkAtVrt, Chi2, state ); - dvect fittrkwgt; + dvect fittrkwgt; sc=VKalGetTrkWeights(fittrkwgt, state); if(sc.isFailure())fittrkwgt.clear(); for(int ii=0; ii<state.m_FitStatus; ii++) { if(ii<(int)xtpListC.size()) { @@ -630,7 +629,7 @@ xAOD::Vertex * TrkVKalVrtFitter::fit(const std::vector<const TrackParameters*> State state; initState (state); Amg::Vector3D VertexIni(0.,0.,0.); - StatusCode sc=VKalVrtFitFast(perigeeListC, VertexIni, state); + StatusCode sc=VKalVrtFitFast(perigeeListC, VertexIni, state); if( sc.isSuccess()) setApproximateVertex(VertexIni.x(),VertexIni.y(),VertexIni.z(),state); Amg::Vector3D Vertex; TLorentzVector Momentum; @@ -651,22 +650,22 @@ xAOD::Vertex * TrkVKalVrtFitter::fit(const std::vector<const TrackParameters*> -/* Filling of 3x3 HepSymMatrix with content of symmetric matrix - in packed form vector<double> (6x6 - 21 elem) +/* Filling of 3x3 HepSymMatrix with content of symmetric matrix + in packed form vector<double> (6x6 - 21 elem) (VxVyVzPxPyPz) */ // Fills 5x5 matrix. Input Matrix is track covariance only. void TrkVKalVrtFitter::FillMatrixP(AmgSymMatrix(5)& CovMtx, std::vector<double> & Matrix) const -{ +{ CovMtx.setIdentity(); if( Matrix.size() < 21) return; CovMtx(0,0) = 0; CovMtx(1,1) = 0; CovMtx(2,2)= Matrix[ 9]; - CovMtx.fillSymmetric(2,3,Matrix[13]); + CovMtx.fillSymmetric(2,3,Matrix[13]); CovMtx(3,3)= Matrix[14]; - CovMtx.fillSymmetric(2,4,Matrix[18]); - CovMtx.fillSymmetric(3,4,Matrix[19]); + CovMtx.fillSymmetric(2,4,Matrix[18]); + CovMtx.fillSymmetric(3,4,Matrix[19]); CovMtx(4,4)= Matrix[20]; } @@ -708,7 +707,7 @@ Amg::MatrixX * TrkVKalVrtFitter::GiveFullMatrix(int NTrk, std::vector<double> & xAOD::Vertex * TrkVKalVrtFitter::makeXAODVertex( int Neutrals, - const Amg::Vector3D& Vertex, const std::vector<double> & fitErrorMatrix, + const Amg::Vector3D& Vertex, const std::vector<double> & fitErrorMatrix, const std::vector<double> & Chi2PerTrk, const std::vector< std::vector<double> >& TrkAtVrt, double Chi2, const State& state) const @@ -724,10 +723,10 @@ xAOD::Vertex * TrkVKalVrtFitter::makeXAODVertex( int Neutrals, std::vector<VxTrackAtVertex> & tmpVTAV=tmpVertex->vxTrackAtVertex(); tmpVTAV.clear(); std::vector <double> CovFull; - StatusCode sc = VKalGetFullCov( NTrk, CovFull, state); + StatusCode sc = VKalGetFullCov( NTrk, CovFull, state); int covarExist=0; if( sc.isSuccess() ) covarExist=1; - std::vector<float> floatErrMtx; + std::vector<float> floatErrMtx; if( m_makeExtendedVertex && covarExist ) { floatErrMtx.resize(CovFull.size()); for(int i=0; i<(int)CovFull.size(); i++) floatErrMtx[i]=CovFull[i]; diff --git a/Trigger/TrigAlgorithms/TrigmuComb/src/muComb.h b/Trigger/TrigAlgorithms/TrigmuComb/src/muComb.h index d62a7d516da..0f5f57bdf8f 100755 --- a/Trigger/TrigAlgorithms/TrigmuComb/src/muComb.h +++ b/Trigger/TrigAlgorithms/TrigmuComb/src/muComb.h @@ -3,13 +3,13 @@ */ // ******************************************************************** -// +// // NAME: muComb.h // PACKAGE: Trigger/TrigAlgorithms/TrigmuComb -// +// // AUTHORS: S. Giagu <stefano.giagu@cern.ch> // A, Di Mattia <dimattia@mail.cern.ch> -// +// // PURPOSE: LVL2 Combined Muon FEX Algorithm // ******************************************************************** @@ -23,7 +23,6 @@ #include "TrigTimeAlgs/TrigTimerSvc.h" //#include "ByteStreamCnvSvcBase/ROBDataProviderSvc.h" #include "TrkExInterfaces/IExtrapolator.h" -//#include "MagFieldInterfaces/IMagFieldSvc.h" #include "MagFieldConditions/AtlasFieldCacheCondObj.h" @@ -42,47 +41,45 @@ class muComb : public HLT::FexAlgo muComb(const std::string&, ISvcLocator*); /** Destructor */ ~muComb(){}; - - /** hltExecute execute the combined muon FEX. */ + + /** hltExecute execute the combined muon FEX. */ HLT::ErrorCode hltExecute(const HLT::TriggerElement*, HLT::TriggerElement*); /** hltInitialize. Called by the Steering. */ HLT::ErrorCode hltInitialize(); /** hltFinalize. Called by the Steering. */ HLT::ErrorCode hltFinalize(); - - /** recordFeature. Record on the event record the output xAOD::L2CombinedMuonCOntainer. */ + + /** recordFeature. Record on the event record the output xAOD::L2CombinedMuonCOntainer. */ HLT::ErrorCode muCombSeed(HLT::TriggerElement*,xAOD::L2CombinedMuonContainer*); private: /** Pointer to Storegate. */ StoreGateSvc* m_pStoreGate; - + /** Pointer to the ROB data provider */ //ROBDataProviderSvc* m_pROBDataProvider; - + /** Handle to the G4 backExtrapolator tool */ - ToolHandle<Trk::IExtrapolator> m_backExtrapolatorG4; + ToolHandle<Trk::IExtrapolator> m_backExtrapolatorG4; - /** Handle to the Magnetic field service */ - //MagField::IMagFieldSvc* m_MagFieldSvc; SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}; - /** Pointer to Timer Service */ + /** Pointer to Timer Service */ ITrigTimerSvc* m_pTimerService; std::string m_paramSet; - + int drptMatch(double, double, double, - double, double, double, int, + double, double, double, int, double&, double&, double&, double&, double&); - int drptMatch(const xAOD::L2StandAloneMuon* feature, - double, double, double, int, + int drptMatch(const xAOD::L2StandAloneMuon* feature, + double, double, double, int, double&, double&, double&, double&, double&); - int mfMatch(const xAOD::L2StandAloneMuon* feature, + int mfMatch(const xAOD::L2StandAloneMuon* feature, double, double, double, double, double&, double&, double&, double&, double&, int&); diff --git a/Trigger/TrigAlgorithms/TrigmuComb/src/muCombMT.h b/Trigger/TrigAlgorithms/TrigmuComb/src/muCombMT.h index b14f1e01fe5..0cd11f833d0 100644 --- a/Trigger/TrigAlgorithms/TrigmuComb/src/muCombMT.h +++ b/Trigger/TrigAlgorithms/TrigmuComb/src/muCombMT.h @@ -3,12 +3,12 @@ */ // ******************************************************************** -// +// // NAME: muCombMT.h // PACKAGE: Trigger/TrigAlgorithms/TrigmuComb -// +// // AUTHORS: S. Giagu <stefano.giagu@cern.ch> -// +// // PURPOSE: LVL2 Combined Muon FEX Algorithm (MT version) // ******************************************************************** @@ -17,7 +17,7 @@ // standard stuff #include <vector> -#include <cmath> +#include <cmath> // general athena stuff #include "GaudiKernel/IToolSvc.h" @@ -33,7 +33,6 @@ #include "StoreGate/WriteHandleKey.h" #include "TrkExInterfaces/IExtrapolator.h" -//#include "MagFieldInterfaces/IMagFieldSvc.h" #include "xAODTrigMuon/L2CombinedMuonContainer.h" #include "xAODTracking/TrackParticleContainer.h" @@ -53,14 +52,14 @@ class muCombMT : public AthAlgorithm muCombMT(const std::string&, ISvcLocator*); /** Destructor */ ~muCombMT(){}; - + /** initialize. Called by the Steering. */ StatusCode initialize(); /** finalize. Called by the Steering. */ StatusCode finalize(); - /** execute execute the combined muon FEX. */ + /** execute execute the combined muon FEX. */ StatusCode execute(); - + private: SG::ReadHandleKey<xAOD::TrackParticleContainer> m_TrackParticleContainerKey{ this, @@ -82,27 +81,24 @@ class muCombMT : public AthAlgorithm ToolHandle<GenericMonitoringTool> m_monTool{this,"MonTool","","Monitoring tool"}; /** Handle to the G4 backExtrapolator tool */ - //ToolHandle<Trk::IExtrapolator> m_backExtrapolatorG4; + //ToolHandle<Trk::IExtrapolator> m_backExtrapolatorG4; PublicToolHandle<Trk::IExtrapolator> m_backExtrapolatorG4 {this, "AtlasExtrapolator", "Trk::Extrapolator/AtlasExtrapolator", "Tool to backextrapolate muon from MS to IP (G4 based)"}; - /** Handle to the Magnetic field service */ - //ServiceHandle<MagField::IMagFieldSvc> m_magFieldSvc; //!< helper tool to get the magnetic field - //MagField::IMagFieldSvc* m_MagFieldSvc; SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}; int drptMatch(double, double, double, - double, double, double, int, + double, double, double, int, double&, double&, double&, double&, double&); - int drptMatch(const xAOD::L2StandAloneMuon* feature, - double, double, double, int, + int drptMatch(const xAOD::L2StandAloneMuon* feature, + double, double, double, int, double&, double&, double&, double&, double&); - int mfMatch(const xAOD::L2StandAloneMuon* feature, + int mfMatch(const xAOD::L2StandAloneMuon* feature, double, double, double, double, double&, double&, double&, double&, double&, int&); @@ -180,7 +176,7 @@ class muCombMT : public AthAlgorithm Gaudi::Property<double> m_WeightEta {this, "WeightEta", 2.0, "matching parameter: LUT-based"}; /** Scale factor for the Phi matching window in LUT backextrapolator */ Gaudi::Property<double> m_WeightPhi {this, "WeightPhi", 2.0, "matching parameter: LUT-based"}; - + // g4 based backextrapolator /** Number of sigmas for the Eta matching window LUT backextrapolator (Barrel) */ Gaudi::Property<double> m_WinEta_g4 {this, "WinEtaSigma_g4", 7.0, "matching parameter: G4-based"}; -- GitLab From f877743605ee6c093c7881afd427ffc228ff6518 Mon Sep 17 00:00:00 2001 From: yoyamagu <yohei.yamaguchi@cern.ch> Date: Wed, 29 Jul 2020 14:42:05 +0900 Subject: [PATCH 306/459] delete useless lines --- .../TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py b/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py index 1faf5ee8682..63b946b06ea 100755 --- a/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py +++ b/Trigger/TrigHypothesis/TrigMuonHypoMT/python/TrigMuonHypoMTConfig.py @@ -243,10 +243,7 @@ def getThresholdsFromDict( chainDict ): def TrigMufastHypoToolFromDict( chainDict ): - if 'lateMu' in chainDict['chainParts'][0]['chainPartName']: - thresholds = ['passthrough'] - else: - thresholds = getThresholdsFromDict( chainDict ) + thresholds = getThresholdsFromDict( chainDict ) config = TrigMufastHypoConfig() tool = config.ConfigurationHypoTool( chainDict['chainName'], thresholds ) # Setup MonTool for monitored variables in AthenaMonitoring package @@ -395,7 +392,7 @@ class TrigL2MuonOverlapRemoverMucombConfig(object): def TrigmuCombHypoToolFromDict( chainDict ): - if 'idperf' in chainDict['chainParts'][0]['chainPartName'] or 'lateMu' in chainDict['chainParts'][0]['chainPartName']: + if 'idperf' in chainDict['chainParts'][0]['chainPartName']: thresholds = ['passthrough'] else: thresholds = getThresholdsFromDict( chainDict ) -- GitLab From 1edae75fbb39dcd6decfefb5f6fff766a5ef6f07 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:36 +0200 Subject: [PATCH 307/459] DerivationFrameworkCalo: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkCalo/CMakeLists.txt | 40 ++----------------- 1 file changed, 3 insertions(+), 37 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCalo/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCalo/CMakeLists.txt index da1e9c0cd46..e8b2857f8bb 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCalo/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCalo/CMakeLists.txt @@ -1,46 +1,12 @@ -################################################################################ -# Package: DerivationFrameworkCalo -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkCalo ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Calorimeter/CaloIdentifier - Control/AthenaBaseComps - Event/xAOD/xAODCaloEvent - Event/xAOD/xAODEgamma - Event/xAOD/xAODJet - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - PRIVATE - Calorimeter/CaloClusterCorrection - Calorimeter/CaloEvent - Calorimeter/CaloGeoHelpers - Calorimeter/CaloUtils - Event/xAOD/xAODTau - Event/xAOD/xAODMuon - Event/xAOD/xAODBase - Event/FourMomUtils - GaudiKernel - LArCalorimeter/LArCabling - PhysicsAnalysis/CommonTools/ExpressionEvaluation ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread MathMore Minuit Minuit2 Matrix Physics HistPainter Rint ) - # Component(s) in the package: -atlas_add_library( DerivationFrameworkCaloLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkCalo - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES CaloIdentifier AthenaBaseComps xAODBase xAODCaloEvent xAODEgamma xAODJet xAODMuon xAODTau CaloClusterCorrectionLib CaloUtilsLib LArCablingLib ExpressionEvaluationLib - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} CaloEvent CaloGeoHelpers FourMomUtils GaudiKernel ) - atlas_add_component( DerivationFrameworkCalo - src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} CaloIdentifier AthenaBaseComps xAODBase xAODCaloEvent xAODEgamma xAODJet xAODMuon xAODTau CaloClusterCorrectionLib CaloEvent CaloGeoHelpers CaloUtilsLib FourMomUtils GaudiKernel LArCablingLib ExpressionEvaluationLib DerivationFrameworkCaloLib ) + src/*.cxx src/components/*.cxx + LINK_LIBRARIES LINK_LIBRARIES AthenaBaseComps CaloClusterCorrectionLib CaloEvent CaloGeoHelpers CaloIdentifier CaloUtilsLib DerivationFrameworkInterfaces ExpressionEvaluationLib FourMomUtils GaudiKernel LArCablingLib StoreGateLib xAODBase xAODCaloEvent xAODEgamma xAODJet xAODMuon xAODTau ) # Install files from the package: atlas_install_python_modules( python/*.py ) -- GitLab From c095245a5a704782285dd67353ce0e7f157e7dbc Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:37 +0200 Subject: [PATCH 308/459] DerivationFrameworkCore: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkCore/CMakeLists.txt | 31 ++----------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCore/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCore/CMakeLists.txt index 3de12f69c5b..cd274a1e3c6 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCore/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCore/CMakeLists.txt @@ -1,37 +1,12 @@ -################################################################################ -# Package: DerivationFrameworkCore -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkCore ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - GaudiKernel - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - PRIVATE - Control/AthenaKernel - Control/AthContainers - Control/AthLinks - Event/xAOD/xAODBase - Event/xAOD/xAODEgamma - Event/xAOD/xAODMuon - Trigger/TrigAnalysis/TriggerMatchingTool - Control/AthenaKernel - Control/SGTools - Control/StoreGate ) - # Component(s) in the package: -atlas_add_library( DerivationFrameworkCoreLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkCore - LINK_LIBRARIES AthenaBaseComps GaudiKernel StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES AthContainers AthLinks SGTools xAODEgamma xAODBase xAODMuon TriggerMatchingToolLib AthenaKernel SGTools AsgAnalysisInterfaces AthAnalysisBaseCompsLib GoodRunsListsLib PathResolver ) - atlas_add_component( DerivationFrameworkCore - src/components/*.cxx - LINK_LIBRARIES AthenaBaseComps AthContainers AthLinks xAODBase xAODEgamma xAODMuon TriggerMatchingToolLib AthenaBaseComps GaudiKernel AthenaKernel SGTools StoreGateLib SGtests DerivationFrameworkCoreLib AsgAnalysisInterfaces ) + src/*.cxx src/components/*.cxx + LINK_LIBRARIES AsgAnalysisInterfaces AthAnalysisBaseCompsLib AthContainers AthLinks AthenaKernel DerivationFrameworkInterfaces GoodRunsListsLib PathResolver SGTools TrigDecisionToolLib TriggerMatchingToolLib xAODBase xAODEgamma xAODEventInfo xAODMuon ) # Install files from the package: atlas_install_python_modules( python/*.py ) -- GitLab From 51be3c3a22f26729e18001f5416aa1a42b5a4bea Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:37 +0200 Subject: [PATCH 309/459] DerivationFrameworkEGamma: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkEGamma/CMakeLists.txt | 40 +++---------------- 1 file changed, 5 insertions(+), 35 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/CMakeLists.txt index a3ba6490925..ed2f1499363 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkEGamma/CMakeLists.txt @@ -1,46 +1,16 @@ -################################################################################ -# Package: DerivationFrameworkEGamma -################################################################################ - +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + # Declare the package name: atlas_subdir( DerivationFrameworkEGamma ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthToolSupport/AsgTools - Control/AthenaBaseComps - PhysicsAnalysis/AnalysisCommon/PATCore - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - PhysicsAnalysis/Interfaces/EgammaAnalysisInterfaces - PRIVATE - Event/xAOD/xAODBase - Event/xAOD/xAODCaloEvent - Event/xAOD/xAODEgamma - Event/xAOD/xAODMissingET - Event/xAOD/xAODMuon - Event/xAOD/xAODTruth - GaudiKernel - PhysicsAnalysis/CommonTools/ExpressionEvaluation - PhysicsAnalysis/MCTruthClassifier - PhysicsAnalysis/ElectronPhotonID/EgammaAnalysisHelpers - Calorimeter/CaloCalibHitRec ) - # External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread MathMore Minuit Minuit2 Matrix Physics HistPainter Rint ) +find_package( ROOT COMPONENTS Core MathCore ) # Component(s) in the package: -atlas_add_library( DerivationFrameworkEGammaLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkEGamma - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES AsgTools AthenaBaseComps PATCoreLib EgammaAnalysisInterfacesLib ExpressionEvaluationLib MCTruthClassifierLib CaloCalibHitRecLib EgammaAnalysisHelpersLib - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} xAODBase xAODCaloEvent xAODEgamma xAODMissingET xAODMuon xAODTruth ) - atlas_add_component( DerivationFrameworkEGamma - src/components/*.cxx + src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AsgTools AthenaBaseComps PATCoreLib EgammaAnalysisInterfacesLib xAODBase - xAODCaloEvent xAODEgamma xAODMissingET xAODMuon xAODTruth GaudiKernel ExpressionEvaluationLib MCTruthClassifierLib CaloCalibHitRecLib DerivationFrameworkEGammaLib ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AsgTools AthContainers AthenaBaseComps CaloCalibHitRecLib DerivationFrameworkInterfaces EgammaAnalysisHelpersLib EgammaAnalysisInterfacesLib ExpressionEvaluationLib GaudiKernel MCTruthClassifierLib PATCoreLib xAODBase xAODCaloEvent xAODEgamma xAODMissingET xAODMuon xAODTracking xAODTruth ) # Install files from the package: atlas_install_python_modules( python/*.py ) -- GitLab From b524f968c872035042ec2bd5542ea6cc59715134 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:37 +0200 Subject: [PATCH 310/459] DerivationFrameworkExamples: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../CMakeLists.txt | 24 +++---------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkExamples/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkExamples/CMakeLists.txt index a04d15570bf..74bc68cdde2 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkExamples/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkExamples/CMakeLists.txt @@ -1,30 +1,12 @@ -################################################################################ -# Package: DerivationFrameworkExamples -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkExamples ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Event/xAOD/xAODMuon - GaudiKernel - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - PRIVATE - Control/AthenaKernel - Event/xAOD/xAODTracking ) - # Component(s) in the package: -atlas_add_library( DerivationFrameworkExamplesLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkExamples - LINK_LIBRARIES AthenaBaseComps xAODMuon GaudiKernel - PRIVATE_LINK_LIBRARIES AthenaKernel xAODTracking ) - atlas_add_component( DerivationFrameworkExamples - src/components/*.cxx - LINK_LIBRARIES AthenaBaseComps xAODMuon GaudiKernel AthenaKernel xAODTracking DerivationFrameworkExamplesLib ) + src/*.cxx src/components/*.cxx + LINK_LIBRARIES AthenaBaseComps DerivationFrameworkInterfaces GaudiKernel StoreGateLib xAODMuon xAODTracking ) # Install files from the package: atlas_install_joboptions( share/*.py ) -- GitLab From f2b6db3a37da0d8ee2c21a90206a8aa853f99712 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:38 +0200 Subject: [PATCH 311/459] DerivationFrameworkExotics: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkExotics/CMakeLists.txt | 30 +++---------------- 1 file changed, 4 insertions(+), 26 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkExotics/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkExotics/CMakeLists.txt index 963699679cf..00697d1dc92 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkExotics/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkExotics/CMakeLists.txt @@ -1,39 +1,17 @@ -################################################################################ -# Package: DerivationFrameworkExotics -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkExotics ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Event/xAOD/xAODJet - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - Reconstruction/Jet/JetCalibTools - Trigger/TrigAnalysis/TrigDecisionTool - PRIVATE - PhysicsAnalysis/AnalysisCommon/PATInterfaces - Event/xAOD/xAODCore - Event/xAOD/xAODEventInfo - GaudiKernel ) - # External dependencies: find_package( CLHEP ) # Component(s) in the package: -atlas_add_library( DerivationFrameworkExoticsLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkExotics - PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES AthenaBaseComps xAODJet TrigDecisionToolLib - PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} xAODCore xAODEventInfo GaudiKernel PATInterfaces ) - atlas_add_component( DerivationFrameworkExotics - src/components/*.cxx + src/*.cxx src/components/*.cxx INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps xAODJet TrigDecisionToolLib xAODCore xAODEventInfo GaudiKernel DerivationFrameworkExoticsLib PATInterfaces ) + DEFINITIONS ${CLHEP_DEFINITIONS} + LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps DerivationFrameworkInterfaces GaudiKernel JetCalibToolsLib TrigDecisionToolLib xAODCore xAODEventInfo xAODJet ) # Install files from the package: atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) -- GitLab From 1dd7a774fc548aad7ec8df8dd8c1d2ce31404428 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:38 +0200 Subject: [PATCH 312/459] DerivationFrameworkFlavourTag: cmake cleanup - remove `atlas_depends_on_subdirs` - update link dependencies of component library --- .../CMakeLists.txt | 47 +++++-------------- 1 file changed, 13 insertions(+), 34 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/CMakeLists.txt index 72ae124b923..99162375f2b 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/CMakeLists.txt @@ -1,49 +1,28 @@ -################################################################################ -# Package: DerivationFrameworkFlavourTag -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkFlavourTag ) - -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - GaudiKernel - PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel - Event/xAOD/xAODCore - Event/xAOD/xAODJet - Event/xAOD/xAODPFlow - Event/xAOD/xAODTracking - Event/xAOD/xAODTrigger - Event/xAOD/xAODTruth - Event/xAOD/xAODCaloEvent - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - PhysicsAnalysis/JetTagging/JetTagPerformanceCalibration/xAODBTaggingEfficiency - PhysicsAnalysis/JetTagging/FlavorTagDiscriminants - Reconstruction/Jet/JetInterface - Reconstruction/Jet/JetCalibTools - Tracking/TrkVertexFitter/TrkVertexFitterInterfaces - Tracking/TrkExtrapolation/TrkExInterfaces - ) +# External dependencies: +find_package( ROOT COMPONENTS Core RIO ) # Component(s) in the package: atlas_add_component( DerivationFrameworkFlavourTag src/*.cxx src/components/*.cxx - LINK_LIBRARIES GaudiKernel AthenaBaseComps xAODCore xAODJet xAODPFlow - xAODTracking xAODTrigger xAODTruth JetInterface TrkExInterfaces FlavorTagDiscriminants - JetCalibToolsLib) - + LINK_LIBRARIES AthenaBaseComps FlavorTagDiscriminants GaudiKernel xAODJet xAODTracking ) # Install files from the package: atlas_install_python_modules( python/*.py ) atlas_install_joboptions( share/*.py ) # add the test utility -atlas_add_executable( test_btagging util/test-btagging.cxx ) -atlas_add_executable( test_jet_links util/test-jet-links.cxx ) -target_link_libraries(test_btagging xAODCore xAODJet xAODRootAccess) -target_link_libraries(test_jet_links xAODCore xAODJet xAODRootAccess) - +atlas_add_executable( test_btagging + util/test-btagging.cxx + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} xAODJet xAODRootAccess ) + +atlas_add_executable( test_jet_links + util/test-jet-links.cxx + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} xAODJet xAODRootAccess ) -- GitLab From 362c990fd104d82c0a3edabb46d833ac48fee596 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:38 +0200 Subject: [PATCH 313/459] DerivationFrameworkHiggs: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkHiggs/CMakeLists.txt | 30 +++---------------- 1 file changed, 4 insertions(+), 26 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/CMakeLists.txt index 1da37e881cb..150d015311f 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/CMakeLists.txt @@ -1,39 +1,17 @@ -################################################################################ -# Package: DerivationFrameworkHiggs -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkHiggs ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Event/xAOD/xAODEgamma - Event/xAOD/xAODJet - Event/xAOD/xAODMuon - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - Trigger/TrigAnalysis/TrigDecisionTool - PRIVATE - Event/xAOD/xAODEventInfo - Event/xAOD/xAODTracking - GaudiKernel ) - # External dependencies: find_package( CLHEP ) # Component(s) in the package: -atlas_add_library( DerivationFrameworkHiggsLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkHiggs - PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES AthenaBaseComps xAODEgamma xAODJet xAODMuon TrigDecisionToolLib - PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} xAODEventInfo xAODTracking GaudiKernel ) - atlas_add_component( DerivationFrameworkHiggs - src/components/*.cxx + src/*.cxx src/components/*.cxx INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps xAODEgamma xAODJet xAODMuon TrigDecisionToolLib xAODEventInfo xAODTracking GaudiKernel DerivationFrameworkHiggsLib ) + DEFINITIONS ${CLHEP_DEFINITIONS} + LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps DerivationFrameworkInterfaces TrigDecisionToolLib xAODEgamma xAODEventInfo xAODJet xAODMuon xAODTracking ) # Install files from the package: atlas_install_python_modules( python/*.py ) -- GitLab From cf1c82399926fb9b6856cb09cc7490b3347f6a17 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:39 +0200 Subject: [PATCH 314/459] DerivationFrameworkInDet: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkInDet/CMakeLists.txt | 68 ++----------------- 1 file changed, 4 insertions(+), 64 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/CMakeLists.txt index 4818b8e0a7c..4f2b36a2684 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/CMakeLists.txt @@ -1,76 +1,16 @@ -################################################################################ -# Package: DerivationFrameworkInDet -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkInDet ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthLinks - Control/AthenaBaseComps - Control/AthenaKernel - Control/StoreGate - DetectorDescription/IRegionSelector - DetectorDescription/Identifier - DetectorDescription/RoiDescriptor - Event/xAOD/xAODBase - Event/xAOD/xAODEgamma - Event/xAOD/xAODEventInfo - Event/xAOD/xAODTracking - InnerDetector/InDetConditions/SCT_ConditionsTools - InnerDetector/InDetDetDescr/InDetIdentifier - InnerDetector/InDetDetDescr/InDetReadoutGeometry - InnerDetector/InDetDetDescr/TRT_ReadoutGeometry - InnerDetector/InDetDetDescr/SCT_Cabling - InnerDetector/InDetRecEvent/InDetPrepRawData - InnerDetector/InDetRecEvent/InDetRIO_OnTrack - InnerDetector/InDetRecTools/TRT_ElectronPidTools - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - Tracking/TrkEvent/TrkTrack - Tracking/TrkEvent/VxVertex - PRIVATE - Commission/CommissionEvent - DetectorDescription/AtlasDetDescr - Event/FourMomUtils - Event/xAOD/xAODJet - Event/xAOD/xAODMuon - Event/xAOD/xAODTau - Event/xAOD/xAODTruth - GaudiKernel - InnerDetector/InDetConditions/TRT_ConditionsServices - InnerDetector/InDetRecEvent/InDetRIO_OnTrack - InnerDetector/InDetRecTools/InDetAssociationTools - InnerDetector/InDetValidation/InDetPhysValMonitoring - LArCalorimeter/LArRecEvent - PhysicsAnalysis/CommonTools/ExpressionEvaluation - Tracking/TrkEvent/TrkCompetingRIOsOnTrack - Tracking/TrkEvent/TrkEventPrimitives - Tracking/TrkEvent/TrkEventUtils - Tracking/TrkEvent/TrkParameters - Tracking/TrkEvent/TrkPrepRawData - Tracking/TrkEvent/TrkRIO_OnTrack - Tracking/TrkExtrapolation/TrkExInterfaces - Tracking/TrkTools/TrkToolInterfaces - Tracking/TrkVertexFitter/TrkVertexFitterInterfaces ) - # External dependencies: -find_package( CLHEP ) find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) # Component(s) in the package: -atlas_add_library( DerivationFrameworkInDetLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkInDet - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthLinks AthenaBaseComps AthenaKernel IRegionSelector Identifier RoiDescriptor xAODBase xAODEgamma xAODEventInfo xAODTracking InDetIdentifier InDetReadoutGeometry TRT_ReadoutGeometry InDetPrepRawData TrkTrack VxVertex StoreGateLib SGtests SCT_CablingLib TRT_ConditionsServicesLib ExpressionEvaluationLib - PRIVATE_LINK_LIBRARIES CommissionEvent AtlasDetDescr FourMomUtils xAODJet xAODMuon xAODTau xAODTruth GaudiKernel LArRecEvent TrkCompetingRIOsOnTrack TrkEventPrimitives TrkEventUtils TrkParameters TrkPrepRawData TrkRIO_OnTrack TrkExInterfaces TrkToolInterfaces TrkVertexFitterInterfaces InDetRIO_OnTrack ) - atlas_add_component( DerivationFrameworkInDet - src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthLinks AthenaBaseComps AthenaKernel StoreGateLib SGtests IRegionSelector Identifier RoiDescriptor xAODBase xAODEgamma xAODEventInfo xAODTracking InDetIdentifier InDetReadoutGeometry TRT_ReadoutGeometry SCT_CablingLib InDetPrepRawData TrkTrack VxVertex CommissionEvent AtlasDetDescr FourMomUtils xAODJet xAODMuon xAODTau xAODTruth GaudiKernel TRT_ConditionsServicesLib LArRecEvent ExpressionEvaluationLib TrkCompetingRIOsOnTrack TrkEventPrimitives TrkEventUtils TrkParameters TrkPrepRawData TrkRIO_OnTrack TrkExInterfaces TrkToolInterfaces TrkVertexFitterInterfaces DerivationFrameworkInDetLib InDetRIO_OnTrack ) + src/*.cxx src/components/*.cxx + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} AthLinks AthenaBaseComps AthenaKernel AtlasDetDescr CommissionEvent DerivationFrameworkInterfaces ExpressionEvaluationLib FourMomUtils GaudiKernel InDetIdentifier InDetPrepRawData InDetRIO_OnTrack InDetReadoutGeometry InDetTrackSelectionToolLib LArRecEvent SCT_CablingLib SCT_ConditionsToolsLib StoreGateLib TRT_ConditionsServicesLib TRT_ElectronPidToolsLib TRT_ReadoutGeometry TrigDecisionToolLib TrkCompetingRIOsOnTrack TrkEventPrimitives TrkEventUtils TrkExInterfaces TrkParameters TrkPrepRawData TrkRIO_OnTrack TrkToolInterfaces TrkTrack TrkVertexFitterInterfaces xAODBase xAODCore xAODEgamma xAODEventInfo xAODJet xAODMuon xAODTau xAODTracking ) # Install files from the package: atlas_install_python_modules( python/*.py ) -- GitLab From aefe5588b54e52814c661acf14b64b3adf6df0c4 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:39 +0200 Subject: [PATCH 315/459] DerivationFrameworkInterfaces: remove atlas_depends_on_subdirs --- .../DerivationFrameworkInterfaces/CMakeLists.txt | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces/CMakeLists.txt index fb63bb353bd..88bbcd8dcf9 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces/CMakeLists.txt @@ -1,17 +1,8 @@ -################################################################################ -# Package: DerivationFrameworkInterfaces -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkInterfaces ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - GaudiKernel - Control/StoreGate - PhysicsAnalysis/CommonTools/ExpressionEvaluation ) - # Component(s) in the package: atlas_add_library( DerivationFrameworkInterfaces DerivationFrameworkInterfaces/*.h @@ -19,7 +10,6 @@ atlas_add_library( DerivationFrameworkInterfaces PUBLIC_HEADERS DerivationFrameworkInterfaces LINK_LIBRARIES GaudiKernel ) - atlas_add_dictionary( DerivationFrameworkInterfacesDict DerivationFrameworkInterfaces/DerivationFrameworkInterfacesDict.h DerivationFrameworkInterfaces/selection.xml -- GitLab From 8be9c55d648130aefa07fd4c326388e07ed21928 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:40 +0200 Subject: [PATCH 316/459] DerivationFrameworkJetEtMiss: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../CMakeLists.txt | 41 ++----------------- 1 file changed, 3 insertions(+), 38 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/CMakeLists.txt index 39850db7e11..a1044f0500e 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/CMakeLists.txt @@ -1,51 +1,16 @@ -################################################################################ -# Package: DerivationFrameworkJetEtMiss -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkJetEtMiss ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - GaudiKernel - PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel - Event/xAOD/xAODCore - Event/xAOD/xAODJet - Event/xAOD/xAODPFlow - Event/xAOD/xAODTracking - Event/xAOD/xAODTrigger - Event/xAOD/xAODTruth - Event/xAOD/xAODCaloEvent - InnerDetector/InDetRecTools/InDetTrackSelectionTool - InnerDetector/InDetRecTools/TrackVertexAssociationTool - PhysicsAnalysis/AnalysisCommon/ParticleJetTools - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - PhysicsAnalysis/Interfaces/JetAnalysisInterfaces - PhysicsAnalysis/Interfaces/FTagAnalysisInterfaces - Reconstruction/Jet/JetInterface - Reconstruction/Jet/JetMomentTools - Reconstruction/Jet/JetJvtEfficiency - Reconstruction/PFlow/PFlowUtils - Tools/PathResolver - Trigger/TrigAnalysis/TrigAnalysisInterfaces ) - # External dependencies: find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) # Component(s) in the package: -atlas_add_library( DerivationFrameworkJetEtMissLib - src/*.cxx - NO_PUBLIC_HEADERS - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} GaudiKernel - PRIVATE_LINK_LIBRARIES AthenaBaseComps xAODCore xAODJet xAODPFlow xAODTracking xAODTrigger xAODTruth JetInterface PathResolver PFlowUtilsLib ParticleJetToolsLib FTagAnalysisInterfacesLib JetAnalysisInterfacesLib JetMomentToolsLib InDetTrackSelectionToolLib TrackVertexAssociationToolLib JetJvtEfficiencyLib) - atlas_add_component( DerivationFrameworkJetEtMiss - src/components/*.cxx + src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} GaudiKernel AthenaBaseComps xAODCore xAODJet xAODPFlow xAODTracking xAODTrigger xAODTruth JetInterface PathResolver PFlowUtilsLib DerivationFrameworkJetEtMissLib JetJvtEfficiencyLib) + LINK_LIBRARIES ${ROOT_LIBRARIES} AsgTools AthLinks AthenaBaseComps DerivationFrameworkInterfaces FTagAnalysisInterfacesLib GaudiKernel InDetTrackSelectionToolLib JetAnalysisInterfacesLib JetInterface PFlowUtilsLib ParticleJetToolsLib PathResolver StoreGateLib TrackVertexAssociationToolLib TrigAnalysisInterfaces xAODCaloEvent xAODCore xAODEventInfo xAODJet xAODPFlow xAODTracking xAODTrigger xAODTruth ) # Install files from the package: atlas_install_python_modules( python/*.py ) -- GitLab From b5b2f821d4885c99bbfa1b698a6901536fd3fe1a Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:40 +0200 Subject: [PATCH 317/459] DerivationFrameworkL1Calo: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkL1Calo/CMakeLists.txt | 27 +++---------------- 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkL1Calo/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkL1Calo/CMakeLists.txt index a1e0aeebc76..981d7687643 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkL1Calo/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkL1Calo/CMakeLists.txt @@ -1,33 +1,12 @@ -################################################################################ -# Package: DerivationFrameworkL1Calo -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkL1Calo ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - PRIVATE - Event/xAOD/xAODTrigL1Calo - GaudiKernel ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread MathMore Minuit Minuit2 Matrix Physics HistPainter Rint ) - # Component(s) in the package: -atlas_add_library( DerivationFrameworkL1CaloLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkL1Calo - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES AthenaBaseComps - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} xAODTrigL1Calo GaudiKernel ) - atlas_add_component( DerivationFrameworkL1Calo - src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps xAODTrigL1Calo GaudiKernel DerivationFrameworkL1CaloLib ) + src/*.cxx src/components/*.cxx + LINK_LIBRARIES AthenaBaseComps DerivationFrameworkInterfaces xAODTrigL1Calo ) # Install files from the package: atlas_install_joboptions( share/*.py ) -- GitLab From 436bc455809e86d3f20c274e3972c1ec8350c8db Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:40 +0200 Subject: [PATCH 318/459] DerivationFrameworkMCTruth: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkMCTruth/CMakeLists.txt | 36 +++---------------- 1 file changed, 5 insertions(+), 31 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkMCTruth/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkMCTruth/CMakeLists.txt index d96bd1e3eb1..2fcbeef3bb4 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkMCTruth/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkMCTruth/CMakeLists.txt @@ -1,44 +1,18 @@ -################################################################################ -# Package: DerivationFrameworkMCTruth -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkMCTruth ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Event/xAOD/xAODEventInfo - Event/xAOD/xAODTruth - GaudiKernel - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - PRIVATE - Control/AthenaKernel - Event/xAOD/xAODBase - Event/xAOD/xAODJet - Generators/GeneratorObjects - Generators/AtlasHepMC - PhysicsAnalysis/CommonTools/ExpressionEvaluation - PhysicsAnalysis/MCTruthClassifier ) - # External dependencies: find_package( FastJet ) find_package( HepPDT ) -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) +find_package( ROOT COMPONENTS Core Hist ) # Component(s) in the package: -atlas_add_library( DerivationFrameworkMCTruthLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkMCTruth - INCLUDE_DIRS ${HEPPDT_INCLUDE_DIRS} ${FASTJET_INCLUDE_DIRS} - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${HEPPDT_LIBRARIES} ${FASTJET_LIBRARIES} AtlasHepMCLib AthenaBaseComps xAODEventInfo xAODTruth GaudiKernel SGtests ExpressionEvaluationLib MCTruthClassifierLib TauAnalysisToolsLib - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaKernel xAODBase xAODJet GeneratorObjects ) - atlas_add_component( DerivationFrameworkMCTruth - src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${HEPPDT_INCLUDE_DIRS} ${FASTJET_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${HEPPDT_LIBRARIES} ${FASTJET_LIBRARIES} AtlasHepMCLib AthenaBaseComps xAODEventInfo xAODTruth GaudiKernel AthenaKernel SGtests EventInfo xAODBase xAODJet GeneratorObjects ExpressionEvaluationLib MCTruthClassifierLib TauAnalysisToolsLib DerivationFrameworkMCTruthLib ) + src/*.cxx src/components/*.cxx + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${FASTJET_INCLUDE_DIRS} ${HEPPDT_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${FASTJET_LIBRARIES} ${HEPPDT_LIBRARIES} ${ROOT_LIBRARIES} AthenaBaseComps AthenaKernel AtlasHepMCLib DerivationFrameworkInterfaces ExpressionEvaluationLib GaudiKernel GeneratorObjects MCTruthClassifierLib StoreGateLib TauAnalysisToolsLib TruthUtils xAODBase xAODEgamma xAODEventInfo xAODJet xAODMuon xAODTruth ) # Install files from the package: atlas_install_python_modules( python/*.py ) -- GitLab From c07a1cb32c71d7da68c56078820ae8f3b5b26639 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:41 +0200 Subject: [PATCH 319/459] DerivationFrameworkMuons: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkMuons/CMakeLists.txt | 46 ++----------------- 1 file changed, 5 insertions(+), 41 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkMuons/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkMuons/CMakeLists.txt index 1a8dcf98482..32a0c0cea2c 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkMuons/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkMuons/CMakeLists.txt @@ -1,53 +1,17 @@ -################################################################################ -# Package: DerivationFrameworkMuons -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkMuons ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Calorimeter/CaloEvent - Calorimeter/CaloGeoHelpers - Control/AthenaBaseComps - Event/xAOD/xAODCaloEvent - Event/xAOD/xAODMuon - GaudiKernel - PhysicsAnalysis/CommonTools/ExpressionEvaluation - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - Reconstruction/RecoTools/RecoToolInterfaces - Trigger/TrigAnalysis/TrigDecisionTool - Trigger/TrigAnalysis/TrigMuonMatching - Reconstruction/MuonIdentification/ICaloTrkMuIdTools - Tracking/TrkExtrapolation/TrkExInterfaces - InnerDetector/InDetRecTools/InDetTrackSelectionTool - PRIVATE - Control/AthenaKernel - Control/AthenaBaseComps - PhysicsAnalysis/MCTruthClassifier - Event/xAOD/xAODEventInfo - Event/xAOD/xAODTracking - Event/xAOD/xAODTruth ) - # External dependencies: find_package( CLHEP ) +find_package( ROOT COMPONENTS Core MathCore ) # Component(s) in the package: -atlas_add_library( DerivationFrameworkMuonsLib - DerivationFrameworkMuons/*.h src/*.cxx - PUBLIC_HEADERS DerivationFrameworkMuons - PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES CaloEvent CaloGeoHelpers AthenaBaseComps xAODCaloEvent - xAODMuon GaudiKernel RecoToolInterfaces ExpressionEvaluationLib - TrigDecisionToolLib TrigMuonMatchingLib ICaloTrkMuIdTools - TrkExInterfaces InDetTrackSelectionToolLib - PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaKernel xAODEventInfo - xAODTracking xAODTruth MCTruthClassifierLib FourMomUtils) - atlas_add_component( DerivationFrameworkMuons - src/components/*.cxx - LINK_LIBRARIES GaudiKernel DerivationFrameworkMuonsLib ) + DerivationFrameworkMuons/*.h src/*.cxx src/components/*.cxx + INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${ROOT_LIBRARIES} AsgTools AthContainers AthenaBaseComps AthenaKernel CaloEvent CaloGeoHelpers DerivationFrameworkInterfaces ExpressionEvaluationLib FourMomUtils GaudiKernel ICaloTrkMuIdTools InDetTrackSelectionToolLib MCTruthClassifierLib RecoToolInterfaces TrigDecisionToolLib TrigMuonMatchingLib TrkExInterfaces TrkParameters TrkSurfaces muonEvent xAODBase xAODCaloEvent xAODEventInfo xAODJet xAODMuon xAODPrimitives xAODTracking xAODTruth ) # Install files from the package: atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) -- GitLab From 7aa67e5e781b2b3b5f2e91fb6a81abd3fd0630e1 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:41 +0200 Subject: [PATCH 320/459] DerivationFramework[Phys,CM]: add copyright --- .../DerivationFrameworkPhys/CMakeLists.txt | 4 +--- .../DerivationFramework/DerivationFrameworkSM/CMakeLists.txt | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/CMakeLists.txt index 59fdd1dc0ac..759f5c066d8 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/CMakeLists.txt @@ -1,6 +1,4 @@ -################################################################################ -# Package: DerivationFrameworkPhys -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkPhys ) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkSM/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkSM/CMakeLists.txt index 04a7eeafe23..7d6ef45df2e 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkSM/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkSM/CMakeLists.txt @@ -1,6 +1,4 @@ -################################################################################ -# Package: DerivationFrameworkSM -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkSM ) -- GitLab From 12db37c0a44eafedda766fd2957e61d29eb2f661 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:42 +0200 Subject: [PATCH 321/459] DerivationFrameworkSUSY: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkSUSY/CMakeLists.txt | 33 +++---------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkSUSY/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkSUSY/CMakeLists.txt index 2c19af072bb..8f920cef442 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkSUSY/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkSUSY/CMakeLists.txt @@ -1,42 +1,17 @@ -################################################################################ -# Package: DerivationFrameworkSUSY -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkSUSY ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Event/xAOD/xAODTruth - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - Reconstruction/RecoTools/RecoToolInterfaces - PRIVATE - Control/AthenaKernel - Event/xAOD/xAODAssociations - Event/xAOD/xAODEventInfo - Event/xAOD/xAODJet - Event/xAOD/xAODTracking - GaudiKernel - PhysicsAnalysis/CommonTools/ExpressionEvaluation - PhysicsAnalysis/MCTruthClassifier ) - # External dependencies: find_package( CLHEP ) # Component(s) in the package: -atlas_add_library( DerivationFrameworkSUSYLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkSUSY - PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES AthenaBaseComps xAODTruth RecoToolInterfaces ExpressionEvaluationLib MCTruthClassifierLib - PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaKernel xAODAssociations xAODEventInfo xAODJet xAODTracking GaudiKernel ) - atlas_add_component( DerivationFrameworkSUSY - src/components/*.cxx + src/*.cxx src/components/*.cxx INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps xAODTruth RecoToolInterfaces AthenaKernel xAODAssociations xAODEventInfo xAODJet xAODTracking GaudiKernel ExpressionEvaluationLib MCTruthClassifierLib DerivationFrameworkSUSYLib ) + DEFINITIONS ${CLHEP_DEFINITIONS} + LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps AthenaKernel DerivationFrameworkInterfaces ExpressionEvaluationLib GaudiKernel MCTruthClassifierLib RecoToolInterfaces xAODAssociations xAODEventInfo xAODJet xAODTracking xAODTruth ) # Install files from the package: atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) -- GitLab From 9e6e6a76f53c72d6618c1dc986d64ef3969dce76 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:42 +0200 Subject: [PATCH 322/459] DerivationFrameworkTau: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkTau/CMakeLists.txt | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/CMakeLists.txt index 973b600752a..d0b5dd2c704 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTau/CMakeLists.txt @@ -1,20 +1,12 @@ -################################################################################ -# Package: DerivationFrameworkTau -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkTau ) # Component(s) in the package: -atlas_add_library( DerivationFrameworkTauLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkTau - LINK_LIBRARIES AthenaBaseComps xAODTracking GaudiKernel JpsiUpsilonToolsLib TauAnalysisToolsLib DerivationFrameworkInterfaces - PRIVATE_LINK_LIBRARIES xAODTau) - atlas_add_component( DerivationFrameworkTau - src/components/*.cxx - LINK_LIBRARIES AthenaBaseComps xAODTracking GaudiKernel xAODTau JpsiUpsilonToolsLib DerivationFrameworkTauLib ) + src/*.cxx src/components/*.cxx + LINK_LIBRARIES AthenaBaseComps xAODTracking GaudiKernel JpsiUpsilonToolsLib TauAnalysisToolsLib DerivationFrameworkInterfaces xAODTau ) # Install files from the package: atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) -- GitLab From 5c8558f5b14961d44b3ae4f0c4954c1d87816b5c Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:43 +0200 Subject: [PATCH 323/459] DerivationFrameworkTools: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkTools/CMakeLists.txt | 33 ++----------------- 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/CMakeLists.txt index df403be80d3..a960ed7126b 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTools/CMakeLists.txt @@ -1,36 +1,9 @@ -################################################################################ -# Package: DerivationFrameworkTools -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkTools ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Event/xAOD/xAODBase - GaudiKernel - PhysicsAnalysis/AnalysisCommon/PATCore - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - Trigger/TrigAnalysis/TrigDecisionTool - Event/xAOD/xAODEventInfo - PRIVATE - Control/AthenaKernel - PhysicsAnalysis/CommonTools/ExpressionEvaluation ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - # Component(s) in the package: -atlas_add_library( DerivationFrameworkToolsLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkTools - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES AthenaBaseComps xAODBase GaudiKernel PATCoreLib TrigDecisionToolLib ExpressionEvaluationLib xAODEventInfo - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaKernel ) - atlas_add_component( DerivationFrameworkTools - src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps xAODBase GaudiKernel PATCoreLib TrigDecisionToolLib AthenaKernel ExpressionEvaluationLib DerivationFrameworkToolsLib ) - + src/*.cxx src/components/*.cxx + LINK_LIBRARIES AthenaBaseComps DerivationFrameworkInterfaces ExpressionEvaluationLib GaudiKernel PATCoreLib StoreGateLib TrigDecisionToolLib xAODBase xAODEventInfo ) -- GitLab From 1dfed16f15f3e9ad3a9221cf8e1325de7c47ab8c Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:44 +0200 Subject: [PATCH 324/459] DerivationFrameworkTop: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library --- .../DerivationFrameworkTop/CMakeLists.txt | 28 ++----------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTop/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTop/CMakeLists.txt index f394033a5ef..85da10191b6 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTop/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTop/CMakeLists.txt @@ -1,34 +1,12 @@ -################################################################################ -# Package: DerivationFrameworkTop -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkTop ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Event/xAOD/xAODTruth - GaudiKernel - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - PRIVATE - Control/AthenaKernel - PhysicsAnalysis/CommonTools/ExpressionEvaluation - Event/xAOD/xAODJet - Event/xAOD/xAODEventInfo - Event/xAOD/xAODBTagging - Event/xAOD/xAODTracking ) - # Component(s) in the package: -atlas_add_library( DerivationFrameworkTopLib - src/*.cxx - PUBLIC_HEADERS DerivationFrameworkTop - LINK_LIBRARIES AthenaBaseComps xAODTruth GaudiKernel - PRIVATE_LINK_LIBRARIES AthenaKernel ExpressionEvaluationLib xAODJet xAODEventInfo xAODBTagging xAODTracking ) - atlas_add_component( DerivationFrameworkTop - src/components/*.cxx - LINK_LIBRARIES AthenaBaseComps xAODTruth GaudiKernel AthenaKernel ExpressionEvaluationLib xAODJet xAODEventInfo xAODBTagging xAODTracking DerivationFrameworkTopLib ) + src/*.cxx src/components/*.cxx + LINK_LIBRARIES AthenaBaseComps DerivationFrameworkInterfaces ExpressionEvaluationLib GaudiKernel StoreGateLib xAODBTagging xAODEventInfo xAODJet xAODTracking xAODTruth ) # Install files from the package: atlas_install_python_modules( python/*.py ) -- GitLab From af44e24460565572c759a0dfebfac84813799a6c Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Tue, 28 Jul 2020 15:51:44 +0200 Subject: [PATCH 325/459] DerivationFrameworkTrigger: cmake cleanup - remove `atlas_depends_on_subdirs` - remove unused library - update link dependencies of component library - enable flake8 --- .../DerivationFrameworkTrigger/CMakeLists.txt | 45 +++---------------- .../python/TrigThinningHelper.py | 9 +--- .../python/TriggerMatchingHelper.py | 14 +++--- 3 files changed, 14 insertions(+), 54 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/CMakeLists.txt b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/CMakeLists.txt index 4c50480a29e..4a77743a6d9 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/CMakeLists.txt +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/CMakeLists.txt @@ -1,47 +1,14 @@ -################################################################################ -# Package: DerivationFrameworkTrigger -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DerivationFrameworkTrigger ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - GaudiKernel - PhysicsAnalysis/DerivationFramework/DerivationFrameworkInterfaces - Trigger/TrigCost/EnhancedBiasWeighter - Trigger/TrigAnalysis/TrigAnalysisInterfaces - Trigger/TrigAnalysis/TriggerMatchingTool - Trigger/TrigAnalysis/TrigDecisionTool - Trigger/TrigEvent/TrigNavStructure - Event/xAOD/xAODBase - Event/xAOD/xAODCore - Event/xAOD/xAODTrigger - Event/xAOD/xAODEgamma - Event/xAOD/xAODCaloEvent - Event/FourMomUtils - PRIVATE - Event/xAOD/xAODEventInfo - Tools/PathResolver ) - -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - -atlas_add_library( - DerivationFrameworkTriggerLib - src/*.cxx - NO_PUBLIC_HEADERS - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} GaudiKernel AthenaBaseComps xAODBase TrigDecisionToolLib TrigNavStructure xAODCore xAODTrigger xAODCaloEvent FourMomUtils xAODEgamma -) - -atlas_add_component( - DerivationFrameworkTrigger - src/components/*.cxx - LINK_LIBRARIES DerivationFrameworkTriggerLib -) +# Component(s) in the package: +atlas_add_component( DerivationFrameworkTrigger + src/*.cxx src/components/*.cxx + LINK_LIBRARIES AthenaBaseComps DerivationFrameworkInterfaces FourMomUtils GaudiKernel TrigDecisionToolLib TriggerMatchingToolLib xAODBase xAODCaloEvent xAODCore xAODTrigger ) # Install files from the package: -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) atlas_install_joboptions( share/*.py ) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/python/TrigThinningHelper.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/python/TrigThinningHelper.py index 78b67edb0c8..bafb0fe5feb 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/python/TrigThinningHelper.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/python/TrigThinningHelper.py @@ -14,8 +14,8 @@ # For use for trigger studies for AOD #################################################################### -# Needed import(s): -import AthenaCommon.CfgMgr as CfgMgr +from AthenaCommon.Logging import logging +log = logging.getLogger(__name__) ## Class helping to set up (navigation) thinning in derivation jobs # @@ -36,7 +36,6 @@ class ThinningHelper: # @param helperName The instance name of this helper object # def __init__( self, helperName, edmList, mode ): - from AthenaCommon.AppMgr import ServiceMgr as svcMgr self.helperName = helperName self.TriggerChains = "" self.edmList = edmList @@ -58,10 +57,6 @@ class ThinningHelper: def AppendToStream( self, augmentedStream ): # Access the stream object: stream = augmentedStream.GetEventStream() - # Get the name of the "format": - formatName = stream.name().strip( "StreamDAOD_" ) - # The necessary import(s): - from AthenaCommon.AppMgr import ServiceMgr as svcMgr from TrigNavTools.TrigNavToolsConfig import navigationThinningSvc tSvc = navigationThinningSvc( { 'name' : self.helperName, diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/python/TriggerMatchingHelper.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/python/TriggerMatchingHelper.py index 8df9c400da6..8ffbf79fdd5 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/python/TriggerMatchingHelper.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkTrigger/python/TriggerMatchingHelper.py @@ -1,15 +1,13 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +from DerivationFrameworkTrigger.DerivationFrameworkTriggerConf import DerivationFramework__TriggerMatchingTool +from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__CommonAugmentation +from DerivationFrameworkCore.DerivationFrameworkMaster import DerivationFrameworkJob # noqa: F401 -from DerivationFrameworkTrigger.DerivationFrameworkTriggerConf import ( - DerivationFramework__TriggerMatchingTool) -from DerivationFrameworkCore.DerivationFrameworkCoreConf import ( - DerivationFramework__CommonAugmentation) -from DerivationFrameworkCore.DerivationFrameworkMaster import ( - DerivationFrameworkJob) import AthenaCommon.AppMgr as AppMgr from AthenaCommon.Configurable import Configurable import copy -import logging +from AthenaCommon.Logging import logging log = logging.getLogger(__name__) class TriggerMatchingHelper(object): -- GitLab From 447473631744542cc6cc7d62547f2675881aca59 Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Fri, 3 Jul 2020 10:42:15 +0200 Subject: [PATCH 326/459] work in progress --- .../TRT_ElectronPidTools/ITRT_ToT_dEdx.h | 1 - .../TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx | 468 +++++++----------- .../TRT_ElectronPidTools/src/TRT_ToT_dEdx.h | 4 +- 3 files changed, 185 insertions(+), 288 deletions(-) diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/ITRT_ToT_dEdx.h b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/ITRT_ToT_dEdx.h index ab842207ae8..28c0b81bcc1 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/ITRT_ToT_dEdx.h +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/ITRT_ToT_dEdx.h @@ -179,7 +179,6 @@ public: // virtual void SwitchOnDivideByL() = 0; // virtual void SwitchOffDivideByL() = 0; - virtual bool GetStatusDivideByL() const = 0; // virtual void SwitchOnUseHThits() = 0; // virtual void SwitchOffUseHThits() = 0; diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx index a002bcfba4c..60d88328439 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx @@ -59,7 +59,6 @@ TRT_ToT_dEdx::TRT_ToT_dEdx(const std::string& t, const std::string& n, const IIn void TRT_ToT_dEdx::SetDefaultConfiguration() { - declareProperty("TRT_dEdx_divideByL",m_divideByL=true); declareProperty("TRT_dEdx_useHThits",m_useHThits=true); declareProperty("TRT_dEdx_corrected",m_corrected=true); declareProperty("TRT_dEdx_whichToTEstimatorAlgo",m_whichToTEstimatorAlgo=kToTLargerIsland); @@ -79,7 +78,6 @@ void TRT_ToT_dEdx::ShowDEDXSetup() const ATH_MSG_DEBUG("//////////////////////////////////////////////////////////////////"); ATH_MSG_DEBUG("/// TRT_ToT_Tool setup configuration ///"); ATH_MSG_DEBUG(" "); - ATH_MSG_DEBUG("m_divideByL ="<<m_divideByL<<""); ATH_MSG_DEBUG("m_useHThits ="<<m_useHThits<<""); ATH_MSG_DEBUG("m_corrected ="<<m_corrected<<""); ATH_MSG_DEBUG("m_whichToTEstimatorAlgo ="<<m_whichToTEstimatorAlgo<<""); @@ -153,7 +151,6 @@ StatusCode TRT_ToT_dEdx::initialize() ATH_MSG_INFO("//////////////////////////////////////////////////////////////////"); ATH_MSG_INFO("/// TRT_ToT_Tool setup configuration ///"); ATH_MSG_INFO(" "); - ATH_MSG_INFO("m_divideByL ="<<m_divideByL<<""); ATH_MSG_INFO("m_useHThits ="<<m_useHThits<<""); ATH_MSG_INFO("m_corrected ="<<m_corrected<<""); ATH_MSG_INFO("m_whichToTEstimatorAlgo ="<<m_whichToTEstimatorAlgo<<""); @@ -375,8 +372,7 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, bool divideByL, bool useHThit sort(vecToT.begin(), vecToT.end()); int nhits = (int)vecToT.size(); - int ntrunk = 1; - if(divideByL) nhits-=ntrunk; + if(divideByL) nhits-=nTrunkateHits; // Boost speed if(nhits<1)return 0.0; @@ -426,16 +422,13 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, bool divideByL, bool useHThit int nhitsAr = (int)vecToT_Ar.size(); int nhitsKr = (int)vecToT_Kr.size(); - - int ntrunk = 1; if(divideByL) { if(m_toolScenario==kAlgReweight){ - if(nhitsXe>0) nhitsXe-=ntrunk; - if(nhitsAr>0) nhitsAr-=ntrunk; - if(nhitsKr>0) nhitsKr-=ntrunk; - } - else // kAlgReweightTrunkOne + if(nhitsXe>0) nhitsXe-=nTrunkateHits; + if(nhitsAr>0) nhitsAr-=nTrunkateHits; + if(nhitsKr>0) nhitsKr-=nTrunkateHits; + } else // kAlgReweightTrunkOne { int trunkGas = kUnset; double maxToT = 0.; @@ -449,15 +442,14 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, bool divideByL, bool useHThit } if(nhitsKr>0 && vecToT_Kr.at(nhitsKr-1)>maxToT) trunkGas = kKrypton; - if(trunkGas==kXenon) nhitsXe-=ntrunk; + if(trunkGas==kXenon) nhitsXe-=nTrunkateHits; else - if(trunkGas==kArgon) nhitsAr-=ntrunk; + if(trunkGas==kArgon) nhitsAr-=nTrunkateHits; else - if(trunkGas==kKrypton) nhitsKr-=ntrunk; + if(trunkGas==kKrypton) nhitsKr-=nTrunkateHits; } } - // Boost speed. int nhits = nhitsXe + nhitsAr + nhitsKr; if(nhits<1) return 0.0; @@ -518,116 +510,93 @@ double TRT_ToT_dEdx::usedHits(const Trk::Track* track, bool divideByL, bool useH DataVector<const Trk::TrackStateOnSurface>::const_iterator itr = vtsos->begin(); DataVector<const Trk::TrackStateOnSurface>::const_iterator itre = vtsos->end(); + if (m_toolScenario==kAlgStandard || m_toolScenario==kAlgScalingToXe) { + int nhits =0; - if(m_toolScenario==kAlgStandard || m_toolScenario==kAlgScalingToXe) - { - int nhits =0; - - for ( ; itr!=itre ; ++itr) { - double l=0; - if ( isGood_Hit((*itr),divideByL,useHThits,l)) { - nhits++; - } - } - - int ntrunk = 1; - if(divideByL) nhits-=ntrunk; - - return nhits; + for ( ; itr!=itre ; ++itr) { + double l=0; + if ( isGood_Hit((*itr),divideByL,useHThits,l)) { + nhits++; + } + } + if(divideByL) nhits-=nTrunkateHits; + return nhits; + } else if (m_toolScenario==kAlgReweight || m_toolScenario==kAlgReweightTrunkOne) { + int nhits = 0; + int nhitsXe = 0; + int nhitsAr = 0; + int nhitsKr = 0; + + if(m_useTrackPartWithGasType!=kUnset) { + ATH_MSG_WARNING("usedHits_Estimator():: Using m_toolScenario="<<m_toolScenario<<" scenario m_useTrackPartWithGasType is set to "<<m_useTrackPartWithGasType<<", but kUnset is required. Check you tool configuration."); } - - if(m_toolScenario==kAlgReweight || m_toolScenario==kAlgReweightTrunkOne) - { - int nhits = 0; - int nhitsXe = 0; - int nhitsAr = 0; - int nhitsKr = 0; - - if(m_useTrackPartWithGasType!=kUnset) - { - ATH_MSG_WARNING("usedHits_Estimator():: Using m_toolScenario="<<m_toolScenario<<" scenario m_useTrackPartWithGasType is set to "<<m_useTrackPartWithGasType<<", but kUnset is required. Check you tool configuration."); - } - - for ( ; itr!=itre ; ++itr) { - double l=0; - if ( isGood_Hit((*itr),divideByL,useHThits,l)) { - gasType=gasTypeInStraw(*itr); - if(gasType==kXenon) - nhitsXe++; - else - if(gasType==kArgon) - nhitsAr++; - else - if(gasType==kKrypton) - nhitsKr++; - else - ATH_MSG_ERROR("usedHits_Estimator():: During scenario kAlgReweight variable gasTypeInStraw got value kUnset."); - } - } - - int ntrunk = 1; - if(divideByL) { - if(m_toolScenario==kAlgReweight){ - if(nhitsXe>0) nhitsXe-=ntrunk; - if(nhitsAr>0) nhitsAr-=ntrunk; - if(nhitsKr>0) nhitsKr-=ntrunk; - } - else { // kAlgReweightTrunkOne - if(nhitsXe>0 || nhitsAr>0 || nhitsKr>0) - nhitsXe -= ntrunk; - } + for ( ; itr!=itre ; ++itr) { + double l=0; + if ( isGood_Hit((*itr),divideByL,useHThits,l)) { + gasType=gasTypeInStraw(*itr); + if (gasType==kXenon) { + nhitsXe++; + } else if (gasType==kArgon) { + nhitsAr++; + } else if (gasType==kKrypton) { + nhitsKr++; + } else { + ATH_MSG_ERROR("usedHits_Estimator():: During scenario kAlgReweight variable gasTypeInStraw got value kUnset."); } + } + } - nhits = nhitsXe + nhitsAr + nhitsKr; - - return nhits; + if(divideByL) { + if(m_toolScenario==kAlgReweight){ + if(nhitsXe>0) nhitsXe-=nTrunkateHits; + if(nhitsAr>0) nhitsAr-=nTrunkateHits; + if(nhitsKr>0) nhitsKr-=nTrunkateHits; + } else { // kAlgReweightTrunkOne + if(nhitsXe>0 || nhitsAr>0 || nhitsKr>0) + nhitsXe -= nTrunkateHits; } + } + + nhits = nhitsXe + nhitsAr + nhitsKr; + return nhits; + } ATH_MSG_ERROR("usedHits_Estimator():: m_toolScenario has wrong value "<<m_toolScenario<<""); return 0; } - - double TRT_ToT_dEdx::getProb(const Trk::TrackStateOnSurface *itr, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits) const { return getProb(itr, dEdx_obs, pTrk, hypothesis, nUsedHits, m_divideByL); } - - double TRT_ToT_dEdx::getProb(const Trk::TrackStateOnSurface *itr, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits, bool divideByL) const { EGasType gasType = gasTypeInStraw(itr); return getProb(gasType, dEdx_obs, pTrk, hypothesis, nUsedHits, divideByL); } - double TRT_ToT_dEdx::getProb(EGasType gasType, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits, bool divideByL) const -{ - +{ ATH_MSG_DEBUG("getProb():: gasTypeInStraw = "<<gasType<<""); SG::ReadCondHandle<TRTDedxcorrection> readHandle{m_ReadKey}; const TRTDedxcorrection* dEdxCorrection{*readHandle}; - if(dEdxCorrection==nullptr) - { - ATH_MSG_ERROR(" getProb: Could not find any dEdxCorrection in CondStore. Return zero."); - return 0; - } - + if (dEdxCorrection==nullptr) { + ATH_MSG_ERROR(" getProb: Could not find any dEdxCorrection in CondStore. Return zero."); + return 0; + } - if(gasType==kUnset) - { - ATH_MSG_DEBUG("getProb():: gasTypeInStraw set kUnset that is not allowed! Use gasTypeInStraw(*itr) to get gas type info for that hit first!"); - ATH_MSG_DEBUG("getProb():: Now gasTypeInStraw sets to kXenon."); - gasType = kXenon; - } + if(gasType==kUnset) { + ATH_MSG_DEBUG("getProb():: gasTypeInStraw set kUnset that is not allowed! Use gasTypeInStraw(*itr) to get gas type info for that hit first!"); + ATH_MSG_DEBUG("getProb():: Now gasTypeInStraw sets to kXenon."); + gasType = kXenon; + } double dEdx_pred = predictdEdx(gasType, pTrk, hypothesis, divideByL); - if(dEdx_pred==0)return 0.0; - if(hypothesis==Trk::electron){ + if (dEdx_pred==0) return 0.0; + if (hypothesis==Trk::electron) { // correction for pTrk in [MeV] double factor = 1; double correct = 1+factor*(0.045*log10(pTrk)+0.885-1); @@ -647,10 +616,9 @@ double TRT_ToT_dEdx::getProb(EGasType gasType, const double dEdx_obs, const doub } -double TRT_ToT_dEdx::getTest(const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, Trk::ParticleHypothesis antihypothesis, int nUsedHits) const { - +double TRT_ToT_dEdx::getTest(const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, Trk::ParticleHypothesis antihypothesis, int nUsedHits) const +{ return getTest(dEdx_obs, pTrk, hypothesis, antihypothesis, nUsedHits, m_divideByL); - } double TRT_ToT_dEdx::getTest(const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, Trk::ParticleHypothesis antihypothesis, int nUsedHits, bool divideByL) const @@ -658,27 +626,23 @@ double TRT_ToT_dEdx::getTest(const double dEdx_obs, const double pTrk, Trk::Part ATH_MSG_DEBUG("getTest()"); EGasType gasType = kUnset; - if ( dEdx_obs<=0. || pTrk<=0. || nUsedHits<=0 ) return 0.5; double Pone = getProb(gasType, dEdx_obs,pTrk,hypothesis,nUsedHits, divideByL); double Ptwo = getProb(gasType, dEdx_obs,pTrk,antihypothesis,nUsedHits, divideByL); - if( (Pone+Ptwo) != 0){ + if ((Pone+Ptwo) != 0) { ATH_MSG_DEBUG("getTest():: return "<<Pone/(Pone+Ptwo)<<""); return Pone/(Pone+Ptwo); - } + } else { return 0.5; + } } - - double TRT_ToT_dEdx::predictdEdx(const Trk::TrackStateOnSurface *itr, const double pTrk, Trk::ParticleHypothesis hypothesis) const { return predictdEdx(itr, pTrk, hypothesis, m_divideByL); } - - double TRT_ToT_dEdx::predictdEdx(const Trk::TrackStateOnSurface *itr, const double pTrk, Trk::ParticleHypothesis hypothesis, bool divideByL) const { EGasType gasType = gasTypeInStraw(itr); @@ -687,7 +651,6 @@ double TRT_ToT_dEdx::predictdEdx(const Trk::TrackStateOnSurface *itr, const doub double TRT_ToT_dEdx::predictdEdx(EGasType gasType, const double pTrk, Trk::ParticleHypothesis hypothesis, bool divideByL) const { - ATH_MSG_DEBUG("predictdEdx(): gasTypeInStraw = "<<gasType<<""); SG::ReadCondHandle<TRTDedxcorrection> readHandle{m_ReadKey}; @@ -727,8 +690,6 @@ double TRT_ToT_dEdx::predictdEdx(EGasType gasType, const double pTrk, Trk::Parti //return 0; } - - double TRT_ToT_dEdx::mass(const Trk::TrackStateOnSurface *itr, const double pTrk, double dEdx ) const { EGasType gasType = gasTypeInStraw(itr); @@ -774,8 +735,6 @@ double TRT_ToT_dEdx::mass(const Trk::TrackStateOnSurface *itr, const double pTrk return pTrk/betaGamma; } - - /* returns gas type for given straw */ ITRT_ToT_dEdx::EGasType TRT_ToT_dEdx::gasTypeInStraw(const Trk::TrackStateOnSurface *itr) const { @@ -802,8 +761,6 @@ ITRT_ToT_dEdx::EGasType TRT_ToT_dEdx::gasTypeInStraw(const Trk::TrackStateOnSurf return gasTypeInStraw(driftcircle); } - - ITRT_ToT_dEdx::EGasType TRT_ToT_dEdx::gasTypeInStraw(const InDet::TRT_DriftCircleOnTrack *driftcircle) const { Identifier DCid = driftcircle->identify(); @@ -826,8 +783,6 @@ ITRT_ToT_dEdx::EGasType TRT_ToT_dEdx::gasTypeInStraw(const InDet::TRT_DriftCircl return GasType; } - - double TRT_ToT_dEdx::getToT(unsigned int BitPattern) const { if (m_whichToTEstimatorAlgo == kToTLargerIsland) { @@ -846,7 +801,6 @@ double TRT_ToT_dEdx::getToT(unsigned int BitPattern) const throw std::exception(); } - ///////////////////////////////// // Corrections ///////////////////////////////// @@ -855,30 +809,25 @@ double TRT_ToT_dEdx::correctNormalization(bool divideLength,bool scaledata, doub { SG::ReadCondHandle<TRTDedxcorrection> readHandle{m_ReadKey}; const TRTDedxcorrection* dEdxCorrection{*readHandle}; - if(dEdxCorrection==nullptr) - { - ATH_MSG_ERROR(" correctNormalization: Could not find any dEdxCorrection in CondStore. Return zero."); - return 0; - } - + if(dEdxCorrection==nullptr) { + ATH_MSG_ERROR(" correctNormalization: Could not find any dEdxCorrection in CondStore. Return zero."); + return 0; + } EGasType gasType = static_cast<EGasType> (m_useTrackPartWithGasType); - if(m_useTrackPartWithGasType==kUnset) - gasType=kXenon; - if(nVtx<=0)nVtx=dEdxCorrection->normNzero[gasType]; + if (m_useTrackPartWithGasType==kUnset) gasType=kXenon; + if (nVtx<=0) nVtx=dEdxCorrection->normNzero[gasType]; double slope = dEdxCorrection->normSlopeTot[gasType]; double offset = dEdxCorrection->normOffsetTot[gasType]; - if(divideLength){ + if (divideLength){ slope = dEdxCorrection->normSlopeTotDivideByLength[gasType]; offset = dEdxCorrection->normOffsetTotDivideByLength[gasType]; - } + } double shift = dEdxCorrection->normOffsetData[gasType]; if(!scaledata)shift = 0; return (slope*dEdxCorrection->normNzero[gasType]+offset)/(slope*nVtx+offset+shift); } - - double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface *itr) const { double l=0; @@ -992,12 +941,10 @@ TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, -double TRT_ToT_dEdx::correctToT_corrRZL(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer, bool isdata) const { - +double TRT_ToT_dEdx::correctToT_corrRZL(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer, bool isdata) const +{ double l=strawLength(trkP) ; - - return correctToT_corrRZL(trkP, driftcircle, HitPart, Layer, StrawLayer, isdata, - m_useHThits, l); + return correctToT_corrRZL(trkP, driftcircle, HitPart, Layer, StrawLayer, isdata, m_useHThits, l); } double TRT_ToT_dEdx::correctToT_corrRZL(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer, bool isdata, bool useHThits, double length) const @@ -1008,49 +955,47 @@ double TRT_ToT_dEdx::correctToT_corrRZL(const Trk::TrackParameters* trkP,const I } - if(trkP==nullptr)return false; + if (trkP==nullptr) return false; if (!driftcircle) return false; if (driftcircle->prepRawData()==nullptr) return 0; double HitRtrack = fabs(trkP->parameters()[Trk::locR]); double Trt_RHit = fabs(driftcircle->localParameters()[Trk::driftRadius]); if ( m_useZeroRHitCut && Trt_RHit==0) return false; // tube hit if ( (HitRtrack >= m_trackConfig_maxRtrack) || (HitRtrack <= m_trackConfig_minRtrack) )return false; // drift radius close to wire or wall - if(!useHThits){ + if (!useHThits) { int TrtHl = driftcircle->highLevel(); if (TrtHl==1) return false; } EGasType gasType = gasTypeInStraw(driftcircle); if(m_useTrackPartWithGasType!=kUnset) // don't preselect hits - { - if(m_useTrackPartWithGasType!=gasType) - return false; - } + { + if(m_useTrackPartWithGasType!=gasType) return false; + } unsigned int BitPattern = driftcircle->prepRawData()->getWord(); double ToT = getToT(BitPattern); if(ToT==0) return false; // If ToT for this hit equal 0, skip it. - if(m_applyMimicToXeCorrection || m_toolScenario==kAlgScalingToXe) - { - if(gasType!=kXenon) // mimic to Xenon ToT, so we skip Xenon hits - { - if (abs(HitPart)==1) // Barrel - ToT/=mimicToXeHit_Barrel(gasType, HitRtrack, Layer, StrawLayer); - else // End-cap - ToT/=mimicToXeHit_Endcap(gasType, HitRtrack, Layer, HitPart); - - if(m_whichToTEstimatorAlgo==kToTLargerIsland){ - if(ToT<3.125) ToT = 3.125; - if(ToT>75) ToT = 75; - }else{ - if(ToT<3.125) ToT = 3.125; - if(ToT>62.5) ToT = 62.5; - } + if(m_applyMimicToXeCorrection==true || m_toolScenario==kAlgScalingToXe) { + if(gasType!=kXenon) // mimic to Xenon ToT, so we skip Xenon hits + { + if (abs(HitPart)==1) // Barrel + ToT/=mimicToXeHit_Barrel(gasType, HitRtrack, Layer, StrawLayer); + else // End-cap + ToT/=mimicToXeHit_Endcap(gasType, HitRtrack, Layer, HitPart); + + if(m_whichToTEstimatorAlgo==kToTLargerIsland){ + if (ToT<3.125) ToT = 3.125; + if (ToT>75) ToT = 75; + } else { + if (ToT<3.125) ToT = 3.125; + if (ToT>62.5) ToT = 62.5; + } - gasType=kXenon; // After mimic correction we work with that hit as Xenon hit. - } - } + gasType=kXenon; // After mimic correction we work with that hit as Xenon hit. + } + } if(length>0) ToT = ToT/length; @@ -1068,65 +1013,59 @@ double TRT_ToT_dEdx::correctToT_corrRZL(const Trk::TrackParameters* trkP,const I return (valToT!=0.) ? (ToTmip*ToT/valToT) : 0.; } - - double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer, bool isdata) const { - return correctToT_corrRZ(trkP, driftcircle, HitPart, Layer, StrawLayer, isdata, - m_useHThits); + return correctToT_corrRZ(trkP, driftcircle, HitPart, Layer, StrawLayer, isdata, m_useHThits); } double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer, bool isdata, bool useHThits) const { - if (isdata != m_isData) { ATH_MSG_ERROR("TRT_ToT_dEdx::correctToT_corrRZ called with isData = " << isdata << " but data type is " << m_isData << ". Ignoring!"); } - if(trkP==nullptr)return false; + if (trkP==nullptr) return false; if (!driftcircle) return false; if (driftcircle->prepRawData()==nullptr) return 0; double HitRtrack = fabs(trkP->parameters()[Trk::locR]); double Trt_RHit = fabs(driftcircle->localParameters()[Trk::driftRadius]); - if ( m_useZeroRHitCut && Trt_RHit==0) return false; // tube hit - if ( (HitRtrack >= m_trackConfig_maxRtrack) || (HitRtrack <= m_trackConfig_minRtrack) )return false; // drift radius close to wire or wall - if(!useHThits){ + if (m_useZeroRHitCut && Trt_RHit==0) return false; // tube hit + if ((HitRtrack >= m_trackConfig_maxRtrack) || (HitRtrack <= m_trackConfig_minRtrack)) return false; // drift radius close to wire or wall + if (!useHThits) { int TrtHl = driftcircle->highLevel(); if (TrtHl==1) return false; } EGasType gasType = gasTypeInStraw(driftcircle); if(m_useTrackPartWithGasType!=kUnset) // don't preselect hits - { - if(m_useTrackPartWithGasType!=gasType) - return false; - } + { + if(m_useTrackPartWithGasType!=gasType) + return false; + } unsigned int BitPattern = driftcircle->prepRawData()->getWord(); double ToT = getToT(BitPattern); if(ToT==0) return false; // If ToT for this hit equal 0, skip it. - if(m_applyMimicToXeCorrection || m_toolScenario==kAlgScalingToXe) - { - if(gasType!=kXenon) // mimic to Xenon ToT, so we skip Xenon hits - { - if (abs(HitPart)==1) // Barrel - ToT/=mimicToXeHit_Barrel(gasType, HitRtrack, Layer, StrawLayer); - else // End-cap - ToT/=mimicToXeHit_Endcap(gasType, HitRtrack, Layer, HitPart); - - if(m_whichToTEstimatorAlgo==kToTLargerIsland){ - if(ToT<3.125) ToT = 3.125; - if(ToT>75) ToT = 75; - }else{ - if(ToT<3.125) ToT = 3.125; - if(ToT>62.5) ToT = 62.5; - } - - gasType=kXenon; // After mimic correction we work with that hit as Xenon hit. - } - } + if(m_applyMimicToXeCorrection==true || m_toolScenario==kAlgScalingToXe) { + if(gasType!=kXenon) // mimic to Xenon ToT, so we skip Xenon hits + { + if (abs(HitPart)==1) // Barrel + ToT/=mimicToXeHit_Barrel(gasType, HitRtrack, Layer, StrawLayer); + else // End-cap + ToT/=mimicToXeHit_Endcap(gasType, HitRtrack, Layer, HitPart); + + if(m_whichToTEstimatorAlgo==kToTLargerIsland){ + if (ToT<3.125) ToT = 3.125; + if (ToT>75) ToT = 75; + } else { + if (ToT<3.125) ToT = 3.125; + if (ToT>62.5) ToT = 62.5; + } + gasType = kXenon; // After mimic correction we work with that hit as Xenon hit. + } + } const Amg::Vector3D& gp = driftcircle->globalPosition(); double HitR = sqrt( gp.x() * gp.x() + gp.y() * gp.y() ); @@ -1141,8 +1080,6 @@ double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackParameters* trkP,const In return ToTmip*ToT/valToT; } - - double TRT_ToT_dEdx::fitFuncBarrel_corrRZ(EGasType gasType, double driftRadius,double zPosition, int Layer, int StrawLayer) const { if (Layer == 0 && StrawLayer < 9) { @@ -1151,8 +1088,6 @@ double TRT_ToT_dEdx::fitFuncBarrel_corrRZ(EGasType gasType, double driftRadius,d return fitFuncBarrelLong_corrRZ(gasType, driftRadius, zPosition, Layer, StrawLayer); } - - double TRT_ToT_dEdx::fitFuncEndcap_corrRZ(EGasType gasType, double driftRadius,double radialPosition, int Layer, int sign) const { /** @@ -1163,8 +1098,6 @@ double TRT_ToT_dEdx::fitFuncEndcap_corrRZ(EGasType gasType, double driftRadius,d return T0+a*radialPosition; } - - double TRT_ToT_dEdx::fitFuncBarrelLong_corrRZ(EGasType gasType, double driftRadius,double zPosition, int Layer, int StrawLayer) const { /** @@ -1189,8 +1122,6 @@ double TRT_ToT_dEdx::fitFuncBarrelLong_corrRZ(EGasType gasType, double driftRadi return T0+(z/v)*exp(expArg); } - - double TRT_ToT_dEdx::fitFuncBarrelShort_corrRZ(EGasType gasType, double driftRadius,double zPosition, int StrawLayer) const { /** @@ -1207,7 +1138,6 @@ double TRT_ToT_dEdx::fitFuncBarrelShort_corrRZ(EGasType gasType, double driftRad double TRT_ToT_dEdx::fitFuncPol_corrRZ(EGasType gasType, int parameter, double driftRadius, int Layer, int Strawlayer, int sign, int set) const { - SG::ReadCondHandle<TRTDedxcorrection> readHandle{m_ReadKey}; const TRTDedxcorrection* dEdxCorrection{*readHandle}; if(dEdxCorrection==nullptr) @@ -1284,7 +1214,6 @@ double TRT_ToT_dEdx::fitFuncPol_corrRZ(EGasType gasType, int parameter, double d return a+b*r+c*r*r+d*r*r*r+e*r*r*r*r+f*r*r*r*r*r; } - double TRT_ToT_dEdx::fitFuncEndcap_corrRZL(EGasType gasType, double driftRadius,double radialPosition, int Layer, int sign) const { /* @@ -1293,11 +1222,10 @@ double TRT_ToT_dEdx::fitFuncEndcap_corrRZL(EGasType gasType, double driftRadius, SG::ReadCondHandle<TRTDedxcorrection> readHandle{m_ReadKey}; const TRTDedxcorrection* dEdxCorrection{*readHandle}; - if(dEdxCorrection==nullptr) - { - ATH_MSG_ERROR(" fitFuncEndcap_corrRZL: Could not find any dEdxCorrection in CondStore. Return zero."); - return 0; - } + if(dEdxCorrection==nullptr) { + ATH_MSG_ERROR(" fitFuncEndcap_corrRZL: Could not find any dEdxCorrection in CondStore. Return zero."); + return 0; + } double r = fabs(driftRadius); double a,b,c,d,e,f,g,h,i; @@ -1331,7 +1259,6 @@ double TRT_ToT_dEdx::fitFuncEndcap_corrRZL(EGasType gasType, double driftRadius, return T0+T1+slope*radialPosition; } - double TRT_ToT_dEdx::fitFuncBarrel_corrRZL(EGasType gasType, double driftRadius,double zPosition, int Layer, int Strawlayer) const { /* @@ -1339,16 +1266,14 @@ double TRT_ToT_dEdx::fitFuncBarrel_corrRZL(EGasType gasType, double driftRadius, */ SG::ReadCondHandle<TRTDedxcorrection> readHandle{m_ReadKey}; const TRTDedxcorrection* dEdxCorrection{*readHandle}; - if(dEdxCorrection==nullptr) - { - ATH_MSG_ERROR(" fitFuncBarrel_corrRZL: Could not find any dEdxCorrection in CondStore. Return zero."); - return 0; - } + if(dEdxCorrection==nullptr) { + ATH_MSG_ERROR(" fitFuncBarrel_corrRZL: Could not find any dEdxCorrection in CondStore. Return zero."); + return 0; + } double a,b,c,d,e,f,g; - - if(Layer==0 && Strawlayer<9){ // short straws - if(m_isData){ + if (Layer==0 && Strawlayer<9) { // short straws + if (m_isData){ a = dEdxCorrection->paraShortCorrRZDivideByLengthDATA[gasType][(0)*9+Strawlayer]; b = dEdxCorrection->paraShortCorrRZDivideByLengthDATA[gasType][(1)*9+Strawlayer]; c = dEdxCorrection->paraShortCorrRZDivideByLengthDATA[gasType][(2)*9+Strawlayer]; @@ -1356,7 +1281,7 @@ double TRT_ToT_dEdx::fitFuncBarrel_corrRZL(EGasType gasType, double driftRadius, e = dEdxCorrection->paraShortCorrRZDivideByLengthDATA[gasType][(4)*9+Strawlayer]; f = dEdxCorrection->paraShortCorrRZDivideByLengthDATA[gasType][(5)*9+Strawlayer]; g = dEdxCorrection->paraShortCorrRZDivideByLengthDATA[gasType][(6)*9+Strawlayer]; - }else{ + } else { a = dEdxCorrection->paraShortCorrRZDivideByLengthMC[gasType][(0)*9+Strawlayer]; b = dEdxCorrection->paraShortCorrRZDivideByLengthMC[gasType][(1)*9+Strawlayer]; c = dEdxCorrection->paraShortCorrRZDivideByLengthMC[gasType][(2)*9+Strawlayer]; @@ -1365,9 +1290,8 @@ double TRT_ToT_dEdx::fitFuncBarrel_corrRZL(EGasType gasType, double driftRadius, f = dEdxCorrection->paraShortCorrRZDivideByLengthMC[gasType][(5)*9+Strawlayer]; g = dEdxCorrection->paraShortCorrRZDivideByLengthMC[gasType][(6)*9+Strawlayer]; } - - }else{ - if(m_isData){ + } else { + if (m_isData) { a = dEdxCorrection->paraLongCorrRZDivideByLengthDATA[gasType][(0)*30*3+Layer*30+Strawlayer]; b = dEdxCorrection->paraLongCorrRZDivideByLengthDATA[gasType][(1)*30*3+Layer*30+Strawlayer]; c = dEdxCorrection->paraLongCorrRZDivideByLengthDATA[gasType][(2)*30*3+Layer*30+Strawlayer]; @@ -1375,7 +1299,7 @@ double TRT_ToT_dEdx::fitFuncBarrel_corrRZL(EGasType gasType, double driftRadius, e = dEdxCorrection->paraLongCorrRZDivideByLengthDATA[gasType][(4)*30*3+Layer*30+Strawlayer]; f = dEdxCorrection->paraLongCorrRZDivideByLengthDATA[gasType][(5)*30*3+Layer*30+Strawlayer]; g = dEdxCorrection->paraLongCorrRZDivideByLengthDATA[gasType][(6)*30*3+Layer*30+Strawlayer]; - }else{ + } else { a = dEdxCorrection->paraLongCorrRZDivideByLengthMC[gasType][(0)*30*3+Layer*30+Strawlayer]; b = dEdxCorrection->paraLongCorrRZDivideByLengthMC[gasType][(1)*30*3+Layer*30+Strawlayer]; c = dEdxCorrection->paraLongCorrRZDivideByLengthMC[gasType][(2)*30*3+Layer*30+Strawlayer]; @@ -1393,13 +1317,11 @@ double TRT_ToT_dEdx::fitFuncBarrel_corrRZL(EGasType gasType, double driftRadius, double slope = e*r+f*r*r+g*r*r*r; double result; result = T0neg+T1+slope*z; - if(zPosition>0)result = T0pos+T1+slope*z; + if (zPosition>0) result = T0pos+T1+slope*z; return result; } - - double TRT_ToT_dEdx::getToTlargerIsland(unsigned int BitPattern) const { unsigned long mask = 0x02000000; @@ -1434,8 +1356,6 @@ double TRT_ToT_dEdx::getToTlargerIsland(unsigned int BitPattern) const return best_length*3.125; } - - double TRT_ToT_dEdx::getToTonly1bits(unsigned int BitPattern) const { /******** Islands ********/ @@ -1482,7 +1402,6 @@ double TRT_ToT_dEdx::getToTonly1bits(unsigned int BitPattern) const return ToT_only1bits; } - double TRT_ToT_dEdx::getToTHighOccupancy(unsigned int BitPattern) const { int LE = DriftTimeBin_v2(BitPattern); @@ -1493,8 +1412,6 @@ double TRT_ToT_dEdx::getToTHighOccupancy(unsigned int BitPattern) const return (double) (TE-LE+1)*3.125; } - - int TRT_ToT_dEdx::DriftTimeBin_v2(unsigned int BitPattern) const { unsigned mask = 0x02000000; @@ -1513,9 +1430,7 @@ int TRT_ToT_dEdx::DriftTimeBin_v2(unsigned int BitPattern) const } if(i==18) i=0; return i; -} - - +} int TRT_ToT_dEdx::TrailingEdge_v2(unsigned int BitPattern) const { @@ -1543,8 +1458,6 @@ int TRT_ToT_dEdx::TrailingEdge_v2(unsigned int BitPattern) const return (23 - i); } - - double TRT_ToT_dEdx::getToTHighOccupancySmart(unsigned int BitPattern) const { int LE = DriftTimeBin_v2(BitPattern); @@ -1555,8 +1468,6 @@ double TRT_ToT_dEdx::getToTHighOccupancySmart(unsigned int BitPattern) const return (double) (TE-LE+1)*3.125; } - - int TRT_ToT_dEdx::TrailingEdge_v3(unsigned int BitPattern) const { unsigned mask = 0x00000001; @@ -1573,66 +1484,53 @@ int TRT_ToT_dEdx::TrailingEdge_v3(unsigned int BitPattern) const int j=0; int k=0; - if(word_TE & mask_last_bit) - { - - for (j = 0; j < 11; ++j) - { - mask_last_bit=mask_last_bit<<1; - - if(j==3) mask_last_bit=mask_last_bit<<1; + if (word_TE & mask_last_bit) { + for (j = 0; j < 11; ++j) { + mask_last_bit=mask_last_bit<<1; + if (j==3) mask_last_bit=mask_last_bit<<1; - if ( !(word_TE & mask_last_bit) ) - { - SawZero2 = true; - break; - } - } + if (!(word_TE & mask_last_bit)) { + SawZero2 = true; + break; + } + } - if(!SawZero2) return 19; + if(!SawZero2) return 19; - if(SawZero2){ - for (k = j+1; k < 11; ++k) - { - mask_last_bit=mask_last_bit<<1; - - if(k==3) mask_last_bit=mask_last_bit<<1; + if(SawZero2){ + for (k = j+1; k < 11; ++k) { + mask_last_bit=mask_last_bit<<1; + if (k==3) mask_last_bit=mask_last_bit<<1; - if ( word_TE & mask_last_bit ) - { - SawUnit1 = true; - break; - } - } + if (word_TE & mask_last_bit) { + SawUnit1 = true; + break; + } } - - if(!SawUnit1 && SawZero2) return 19; - } + + if (!SawUnit1 && SawZero2) return 19; + } //+++++++++++++++++++++++++++++++++++++ - for (i = 0; i < 24; ++i) - { - if(!(word_TE & mask) && i>3) - { - SawZero1 = true; - } - - if(SawZero1) - { - if ( (word_TE & mask) && SawZero ) - break; - if ( !(word_TE & mask) ) - SawZero = true; - } - mask <<= 1; - if (i == 7 || i == 15) - mask <<= 1; + for (i = 0; i < 24; ++i) { + if (!(word_TE & mask) && i>3) { + SawZero1 = true; + } + + if (SawZero1) { + if ((word_TE & mask) && SawZero) { + break; + } else if (!(word_TE & mask)) { + SawZero = true; + } } + mask <<= 1; + if (i == 7 || i == 15) mask <<= 1; + } - if ( 24 == i ) - return i; + if (24 == i) return i; return (23 - i); } diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h index 0943dc20d1f..554d39b0faa 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h @@ -78,7 +78,6 @@ private: // Algorithm switchers bool m_corrected; // If true - make correction using rs-distributions - bool m_divideByL; // If true - divide ToT to the L of track in straw. bool m_useHThits; // If true - use HT hit for dEdX estimator calculation int m_whichToTEstimatorAlgo; // If true - use getToTNewApproach(), else - use getToTlargerIsland() @@ -100,6 +99,8 @@ private: bool m_useZeroRHitCut; // skip tracks with where RHit=0 + int nTrunkateHits = 1; + public: /** AlgTool like constructor */ @@ -407,7 +408,6 @@ public: // void SwitchOnDivideByL() { m_divideByL=true; } // void SwitchOffDivideByL() { m_divideByL=false; } - bool GetStatusDivideByL() const { return m_divideByL; } // void SwitchOnUseHThits() { m_useHThits=true; } // void SwitchOffUseHThits() { m_useHThits=false; } -- GitLab From d4f0e7735f6c6436dca94f02ef64327eca6f5cee Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Wed, 8 Jul 2020 14:05:26 +0200 Subject: [PATCH 327/459] First part of refactoring --- .../TRT_ElectronPidTools/ITRT_ToT_dEdx.h | 150 +---- .../TRT_ToT_dEdx.h | 91 +--- .../src/TRT_ElectronPidToolRun2.cxx | 6 +- .../TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx | 514 ++++++------------ .../TRT_ElectronPidTools_entries.cxx | 2 +- 5 files changed, 211 insertions(+), 552 deletions(-) rename InnerDetector/InDetRecTools/TRT_ElectronPidTools/{src => TRT_ElectronPidTools}/TRT_ToT_dEdx.h (76%) diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/ITRT_ToT_dEdx.h b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/ITRT_ToT_dEdx.h index 28c0b81bcc1..7c8530c952b 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/ITRT_ToT_dEdx.h +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/ITRT_ToT_dEdx.h @@ -12,12 +12,7 @@ namespace Trk { class Track ; } namespace Trk { class TrackStateOnSurface ; } -//namespace Trk { class ParticleHypothesis ; } - -//namespace Trk { class TrackParameters ; } - -namespace InDet { class TRT_DriftCircleOnTrack ; } -//#include "InDetRIO_OnTrack/TRT_DriftCircleOnTrack.h" +namespace InDet { class TRT_DriftCircleOnTrack ; } static const InterfaceID IID_ITRT_ToT_dEdx("ITRT_ToT_dEdx", 1, 0); @@ -37,42 +32,19 @@ public: /** * @brief function to calculate sum ToT normalised to number of used hits - * @param track pointer - * @param bool variable to decide wheter ToT or ToT/L should be used - * @param bool variable whether HT hits shoule be used - * @return ToT + * @param track pointer to track + * @param correctionType choice of occupancy correction + * @return dEdx value */ - virtual double dEdx(const Trk::Track*, bool DivideByL, bool useHThits, bool corrected, EOccupancyCorrection correction_type=EOccupancyCorrection::kTrackBased ) const = 0; - virtual double dEdx(const Trk::Track*, EOccupancyCorrection correction_type=EOccupancyCorrection::kTrackBased) const = 0; + virtual double dEdx(const Trk::Track* track, EOccupancyCorrection correctionType=EOccupancyCorrection::kTrackBased) const = 0; /** * @brief function to calculate number of used hits * @param track pointer - * @param bool variable to decide wheter ToT or ToT/L should be used - * @param bool variable whether HT hits shoule be used * @return nHits */ - virtual double usedHits(const Trk::Track* track, bool DivideByL, bool useHThits) const = 0; virtual double usedHits(const Trk::Track* track) const = 0; - /** - * @brief function to define what is a good hit to be used for dEdx calculation - * cuts on track level can be made later by the user - * @param driftcircle object - * @param track parameter object - * @return decision - */ - virtual bool isGood_Hit(const Trk::TrackStateOnSurface *itr) const = 0; - - /** - * @brief correct overall dEdx normalization on track level - * @param dEdx definition (ToT or ToT/L) - * @param scale value (needed for data) - * @param number of primary vertices per event - * @return scaling variable - */ - virtual double correctNormalization(bool divideLength, bool scaledata, double nVtx=-1) const = 0; - /** * @brief function to calculate likelihood from prediction and resolution * @param observed dEdx @@ -81,7 +53,6 @@ public: * @param number of used hits * @return brobability value between 0 and 1 */ - virtual double getProb(const Trk::TrackStateOnSurface *itr, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits, bool dividebyL) const = 0; virtual double getProb(const Trk::TrackStateOnSurface *itr, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits) const = 0; /** @@ -93,7 +64,6 @@ public: * @param number of used hits * @return test value between 0 and 1 */ - virtual double getTest(const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, Trk::ParticleHypothesis antihypothesis, int nUsedHits, bool dividebyL) const = 0; virtual double getTest(const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, Trk::ParticleHypothesis antihypothesis, int nUsedHits) const = 0; @@ -103,7 +73,6 @@ public: * @param hypothesis * @return dEdx_pred */ - virtual double predictdEdx(const Trk::TrackStateOnSurface *itr, const double pTrk, Trk::ParticleHypothesis hypothesis, bool dividebyL) const = 0; virtual double predictdEdx(const Trk::TrackStateOnSurface *itr, const double pTrk, Trk::ParticleHypothesis hypothesis) const = 0; /** @@ -113,115 +82,6 @@ public: * @return mass */ virtual double mass(const Trk::TrackStateOnSurface *itr, const double pTrk, double dEdx ) const = 0; - - - - /** - * @brief function to correct ToT/L used by the PIDTool parameters obtimized to be consistend with existing functions - * @param track parameter object - * @param trift circle object - * @param number to decide whether it is barrel or endcap - * @param number to identify layer ID - * @param number to identify strawlayer id - * @param bool to set data or MC - * @return corrected ToT/L (returns 0 if hit criteria are not fulfilled) - */ - virtual double correctToT_corrRZL(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer,bool isData) const = 0; - - virtual double correctToT_corrRZ(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer,bool isData) const = 0; - - /** - * @brief main function to correct ToT values on hit level as a function of track radius and z-position - * @param track on surface object - * @param bool variable to specify whether ToT or ToT/L correction - * @param bool variable to specify whether data or MC correction - * @param bool variable whether correction should actually be applied - * @param bool variable whether mimic ToT to other gas hits shoule be used - * @return corrected value for ToT - */ - virtual double correctToT_corrRZ(const Trk::TrackStateOnSurface *itr) const = 0; - - - /** - * @brief compute ToT time for largest island - * @param bitpattern - * @return ToT - */ - virtual double getToTlargerIsland(unsigned int BitPattern) const = 0; - virtual double getToTonly1bits(unsigned int BitPattern) const = 0; - virtual double getToTHighOccupancy(unsigned int BitPattern) const = 0; - virtual double getToTHighOccupancySmart(unsigned int BitPattern) const = 0; - - /** - * @brief return gas type for that hit - * @param track on surface object - * @return gasType - */ - virtual EGasType gasTypeInStraw(const Trk::TrackStateOnSurface *itr) const = 0; - virtual EGasType gasTypeInStraw(const InDet::TRT_DriftCircleOnTrack *driftcircle) const = 0; - - /** - * @brief Calibration functions for occupancy corrections - * @param track on surface object - * @return correction - */ - virtual double hitOccupancyCorrection(const Trk::TrackStateOnSurface *itr) const = 0; - virtual double trackOccupancyCorrection(const Trk::Track* track, bool useHThits) const = 0; - - /** - * @brief setters and getters - */ - virtual void SetDefaultConfiguration() = 0; - - // virtual void SwitchOnRSCorrection() = 0; - // virtual void SwitchOffRSCorrection() = 0; - virtual bool GetStatusRSCorrection() const = 0; - - // virtual void SwitchOnDivideByL() = 0; - // virtual void SwitchOffDivideByL() = 0; - - // virtual void SwitchOnUseHThits() = 0; - // virtual void SwitchOffUseHThits() = 0; - virtual bool GetStatusUseHThits() const = 0; - - virtual void SetLargerIslandToTEstimatorAlgo() = 0; - virtual void SetHighOccupancyToTEstimatorAlgo() = 0; - virtual void SetHighOccupancySmartToTEstimatorAlgo() = 0; - virtual bool GetStatusToTEstimatorAlgo() const = 0; - - - virtual void SetMinRtrack(float minRtrack) = 0; - virtual float GetMinRtrack() const = 0; - - virtual void SetMaxRtrack(float maxRtrack) = 0; - virtual float GetMaxRtrack() const = 0; - - virtual void SwitchOnUseZeroRHitCut() = 0; - virtual void SwitchOffUseZeroRHitCut() = 0; - virtual bool GetStatusUseZeroRHitCut() const = 0; - - virtual void SetXenonFordEdXCalculation() = 0; - virtual void SetArgonFordEdXCalculation() = 0; - virtual void SetKryptonFordEdXCalculation() = 0; - virtual void UnsetGasTypeFordEdXCalculation() = 0; - virtual int GetGasTypeFordEdXCalculation() const = 0; - - // virtual void SetXenonGasTypeInStraw() = 0; - // virtual void SetArgonGasTypeInStraw() = 0; - // virtual void SetKryptonGasTypeInStraw() = 0; - // virtual void UnsetGasTypeInStraw() = 0; - // virtual int GetStatusGasTypeInStraw() const = 0; - - virtual void UseStandardAlgorithm() = 0; - virtual void UseScalingAlgorithm() = 0; - virtual void UseReweightingAlgorithm() = 0; - virtual void UseReweightingAlgorithmTrunkOne() = 0; - virtual int GetStatusAlgorithm() const = 0; - - virtual void SwitchOnMimicToXeCorrection() = 0; - virtual void SwitchOffMimicToXeCorrection() = 0; - virtual bool GetStatusMimicToXeCorrection() const = 0; - }; #endif // ITRT_TOT_DEDX_H diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h similarity index 76% rename from InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h rename to InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h index 554d39b0faa..dd17ce423d1 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h @@ -12,7 +12,7 @@ #include "TrkEventPrimitives/ParticleHypothesis.h" #include "StoreGate/ReadDecorHandleKey.h" -#include "TRT_ElectronPidTools/ITRT_ToT_dEdx.h" +#include "ITRT_ToT_dEdx.h" #include "TrkTrack/Track.h" @@ -26,7 +26,7 @@ #include "TRT_ReadoutGeometry/TRT_DetElementContainer.h" #include "TrkToolInterfaces/IPRD_AssociationTool.h" -#include "TRT_ElectronPidTools/ITRT_LocalOccupancy.h" +#include "ITRT_LocalOccupancy.h" /* Tool to calculate dE/dx variable for PID @@ -77,16 +77,14 @@ private: ToolHandle< InDet::ITRT_LocalOccupancy > m_localOccTool; //!< the track selector tool // Algorithm switchers + bool m_corrected; // If true - make correction using rs-distributions + bool m_divideByL; // If true - divide ToT to the L of track in straw. bool m_useHThits; // If true - use HT hit for dEdX estimator calculation int m_whichToTEstimatorAlgo; // If true - use getToTNewApproach(), else - use getToTlargerIsland() int m_useTrackPartWithGasType; // If kUnset - use any gas for dEdX calculation; int m_toolScenario; // Algorithm type for dEdX estimator calculation: - // kAlgStandard - old dEdX estimator calculation algorithm; - // kAlgScalingToXe - mimicToXe other gastype hits and apply Xenon calibrations; - // kAlgReweight - calculate dEdX estimator using reweighting of separate gas types estimator using numbers of hits; truncate 1 max hit for each gas; - // kAlgReweightTrunkOne - same as previous, but truncate only one max hit on track; bool m_applyMimicToXeCorrection; // Possibility to apply mimicToXenon function for any algorithm. For kAlgScalingToXe that always true. @@ -99,14 +97,14 @@ private: bool m_useZeroRHitCut; // skip tracks with where RHit=0 - int nTrunkateHits = 1; + int m_nTrunkateHits = 1; public: /** AlgTool like constructor */ TRT_ToT_dEdx(const std::string&,const std::string&,const IInterface*); TRT_ToT_dEdx(const std::string& t, const std::string& n, const IInterface* p, - bool DivideByL, bool useHThits, bool corrected, bool useHighOccToTAlgo, + bool useHThits, bool corrected, bool useHighOccToTAlgo, float minRtrack, float maxRtrack, bool useZeroRHitCut); /** Virtual destructor*/ @@ -118,28 +116,11 @@ public: /** * @brief function to calculate sum ToT normalised to number of used hits - * @param track pointer - * @param bool variable to decide wheter ToT or ToT/L should be used - * @param bool variable whether HT hits shoule be used - * @return ToT - */ - double dEdx(const Trk::Track*, bool DivideByL, bool useHThits, bool corrected, EOccupancyCorrection correction_type=EOccupancyCorrection::kTrackBased) const; - - /** - * @brief function to calculate sum ToT normalised to number of used hits - * @param track pointer - * @return ToT - */ - double dEdx(const Trk::Track*, EOccupancyCorrection correction_type=EOccupancyCorrection::kTrackBased) const; - - /** - * @brief function to calculate number of used hits - * @param track pointer - * @param bool variable to decide wheter ToT or ToT/L should be used - * @param bool variable whether HT hits shoule be used - * @return nHits + * @param track pointer to track + * @param correctionType choice of occupancy correction + * @return dEdx value */ - double usedHits(const Trk::Track* track, bool DivideByL, bool useHThits) const; + double dEdx(const Trk::Track* track, EOccupancyCorrection correctionType=EOccupancyCorrection::kTrackBased) const; /** * @brief function to calculate number of used hits @@ -148,25 +129,24 @@ public: */ double usedHits(const Trk::Track* track) const; +protected: /** * @brief function to define what is a good hit to be used for dEdx calculation - * cuts on track level can be made later by the user - * @param driftcircle object - * @param track parameter object + * cuts on track level can be made later by the user. Also returns the length in the straw. + * @param trackState measurement on track + * @param length length in straw * @return decision */ - bool isGood_Hit(const Trk::TrackStateOnSurface *itr) const; - bool isGood_Hit(const Trk::TrackStateOnSurface *itr, bool divideByL, bool useHThits, double& length) const; + bool isGoodHit(const Trk::TrackStateOnSurface* trackState, double& length) const; /** * @brief correct overall dEdx normalization on track level - * @param dEdx definition (ToT or ToT/L) - * @param scaling correction (needed for data) * @param number of primary vertices per event * @return scaling variable */ - double correctNormalization(bool divideLength, bool scaledata, double nVtx=-1) const; + double correctNormalization(double nVtx=-1) const; +public: /** * @brief function to calculate likelihood from prediction and resolution * @param observed dEdx @@ -176,8 +156,7 @@ public: * @return brobability value between 0 and 1 */ double getProb(const Trk::TrackStateOnSurface *itr, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits) const; - double getProb(const Trk::TrackStateOnSurface *itr, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits, bool dividebyL) const; - double getProb(EGasType gasType, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits, bool dividebyL) const; + double getProb(EGasType gasType, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits) const; /** * @brief function to calculate likelihood ratio test @@ -189,18 +168,15 @@ public: * @return test value between 0 and 1 */ double getTest(const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, Trk::ParticleHypothesis antihypothesis, int nUsedHits) const; - double getTest(const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, Trk::ParticleHypothesis antihypothesis, int nUsedHits, bool dividebyL) const; - /** * @brief function to calculate expectation value for dEdx using BB fit * @param track momentum * @param hypothesis * @return dEdx_pred */ - double predictdEdx(const Trk::TrackStateOnSurface *itr, const double pTrk, Trk::ParticleHypothesis hypothesis, bool dividebyL) const; double predictdEdx(const Trk::TrackStateOnSurface *itr, const double pTrk, Trk::ParticleHypothesis hypothesis) const; - double predictdEdx(EGasType gasType, const double pTrk, Trk::ParticleHypothesis hypothesis, bool dividebyL) const; + double predictdEdx(EGasType gasType, const double pTrk, Trk::ParticleHypothesis hypothesis) const; @@ -212,6 +188,7 @@ public: */ double mass(const Trk::TrackStateOnSurface *itr, const double pTrk, double dEdx ) const; +protected: /** * @brief function to correct ToT/L used by the PIDTool parameters obtimized to be consistend with existing functions * @param track parameter object @@ -219,18 +196,9 @@ public: * @param number to decide whether it is barrel or endcap * @param number to identify layer ID * @param number to identify strawlayer id - * @param bool to set data or MC * @return corrected ToT/L (returns 0 if hit criteria are not fulfilled) */ - double strawLength(const Trk::TrackParameters* trkP) const; - double correctToT_corrRZL(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer,bool isData) const; - - double correctToT_corrRZL(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer,bool isData, bool useHThits, double length) const; - - - double correctToT_corrRZ(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer,bool isData) const; - double correctToT_corrRZ(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer,bool isData, bool useHThits) const; - + double correctToT_corrRZ(const Trk::TrackParameters* trkP, const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart, int Layer, int StrawLayer) const; /** * @brief main function to correct ToT values on hit level as a function of track radius and z-position * @param track on surface object @@ -241,7 +209,7 @@ public: * @return corrected value for ToT */ double correctToT_corrRZ(const Trk::TrackStateOnSurface *itr) const; - double correctToT_corrRZ(const Trk::TrackStateOnSurface *itr, bool divideByL, bool corrected, double length) const; + double correctToT_corrRZ(const Trk::TrackStateOnSurface *itr, double length) const; /** * @brief compute ToT time for largest island @@ -402,15 +370,7 @@ public: void SetDefaultConfiguration(); - // void SwitchOnRSCorrection() { m_corrected=true; } - // void SwitchOffRSCorrection() { m_corrected=false; } bool GetStatusRSCorrection() const { return m_corrected; } - - // void SwitchOnDivideByL() { m_divideByL=true; } - // void SwitchOffDivideByL() { m_divideByL=false; } - - // void SwitchOnUseHThits() { m_useHThits=true; } - // void SwitchOffUseHThits() { m_useHThits=false; } bool GetStatusUseHThits() const { return m_useHThits; } void SetLargerIslandToTEstimatorAlgo() { m_whichToTEstimatorAlgo=kToTLargerIsland; } @@ -418,7 +378,6 @@ public: void SetHighOccupancySmartToTEstimatorAlgo() { m_whichToTEstimatorAlgo=kToTHighOccupancySmart; } bool GetStatusToTEstimatorAlgo() const { return m_whichToTEstimatorAlgo; } - void SetMinRtrack(float minRtrack) { m_trackConfig_minRtrack=minRtrack;} float GetMinRtrack() const { return m_trackConfig_minRtrack; } @@ -435,12 +394,6 @@ public: void UnsetGasTypeFordEdXCalculation() { m_useTrackPartWithGasType=kUnset; } int GetGasTypeFordEdXCalculation() const { return m_useTrackPartWithGasType; } - // void SetXenonGasTypeInStraw() { m_gasTypeInStraw=kXenon; } - // void SetArgonGasTypeInStraw() { m_gasTypeInStraw=kArgon; } - // void SetKryptonGasTypeInStraw() { m_gasTypeInStraw=kKrypton; } - // void UnsetGasTypeInStraw() { m_gasTypeInStraw=kUnset; } - // int GetStatusGasTypeInStraw() const { return m_gasTypeInStraw; } - void UseStandardAlgorithm() { m_toolScenario=kAlgStandard; } void UseScalingAlgorithm() { m_toolScenario=kAlgScalingToXe; SwitchOnMimicToXeCorrection(); } void UseReweightingAlgorithm() { m_toolScenario=kAlgReweight; } diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ElectronPidToolRun2.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ElectronPidToolRun2.cxx index 9c991115063..c4b8c3c8114 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ElectronPidToolRun2.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ElectronPidToolRun2.cxx @@ -401,9 +401,9 @@ InDet::TRT_ElectronPidToolRun2::electronProbability(const Trk::Track& track) con ATH_MSG_DEBUG (""); // Jared - ToT Implementation - dEdx = m_TRTdEdxTool->dEdx( &track, true, false, true); // Divide by L, exclude HT hits - double usedHits = m_TRTdEdxTool->usedHits( &track, true, false); - prob_El_ToT = m_TRTdEdxTool->getTest( dEdx, pTrk, Trk::electron, Trk::pion, usedHits, true ); + dEdx = m_TRTdEdxTool->dEdx(&track); // Divide by L, exclude HT hits + double usedHits = m_TRTdEdxTool->usedHits(&track); + prob_El_ToT = m_TRTdEdxTool->getTest(dEdx, pTrk, Trk::electron, Trk::pion, usedHits); // Limit the probability values the upper and lower limits that are given/trusted for each part: double limProbHT = HTcalc->Limit(prob_El_HT); diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx index 60d88328439..4e6603ab81b 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx @@ -5,7 +5,7 @@ // // !!!!!! Problem with calibration constants for mean ToT on the tracks (norm_ ...) !!!!!!! // -#include "TRT_ToT_dEdx.h" +#include "TRT_ElectronPidTools/TRT_ToT_dEdx.h" #include "TRT_ElectronPidTools/TRT_ToT_Corrections.h" @@ -59,6 +59,7 @@ TRT_ToT_dEdx::TRT_ToT_dEdx(const std::string& t, const std::string& n, const IIn void TRT_ToT_dEdx::SetDefaultConfiguration() { + declareProperty("TRT_dEdx_divideByL",m_divideByL=true); declareProperty("TRT_dEdx_useHThits",m_useHThits=true); declareProperty("TRT_dEdx_corrected",m_corrected=true); declareProperty("TRT_dEdx_whichToTEstimatorAlgo",m_whichToTEstimatorAlgo=kToTLargerIsland); @@ -78,6 +79,7 @@ void TRT_ToT_dEdx::ShowDEDXSetup() const ATH_MSG_DEBUG("//////////////////////////////////////////////////////////////////"); ATH_MSG_DEBUG("/// TRT_ToT_Tool setup configuration ///"); ATH_MSG_DEBUG(" "); + ATH_MSG_DEBUG("m_divideByL ="<<m_divideByL<<""); ATH_MSG_DEBUG("m_useHThits ="<<m_useHThits<<""); ATH_MSG_DEBUG("m_corrected ="<<m_corrected<<""); ATH_MSG_DEBUG("m_whichToTEstimatorAlgo ="<<m_whichToTEstimatorAlgo<<""); @@ -179,53 +181,15 @@ StatusCode TRT_ToT_dEdx::finalize() return StatusCode::SUCCESS; } -double TRT_ToT_dEdx::strawLength(const Trk::TrackParameters *trkP) const +bool TRT_ToT_dEdx::isGoodHit(const Trk::TrackStateOnSurface* trackState, double& length) const { - double length=0; - if(!trkP) return length; - const Trk::Surface* trkS = &trkP->associatedSurface(); - if(!trkS) return length; - const Identifier DCId = trkS->associatedDetectorElementIdentifier(); - double Trt_Rtrack = fabs(trkP->parameters()[Trk::locR]); - double Trt_HitTheta = trkP->parameters()[Trk::theta]; - double Trt_HitPhi = trkP->parameters()[Trk::phi]; - int HitPart = m_trtId->barrel_ec(DCId); - double strawphi = trkS->center().phi(); - - - if (std::abs(HitPart)==1) { //Barrel - length = 2*sqrt(4-Trt_Rtrack*Trt_Rtrack)*1./fabs(sin(Trt_HitTheta)); - } - else - if (std::abs(HitPart)==2) { //EndCap - length = 2*sqrt(4-Trt_Rtrack*Trt_Rtrack)*1./sqrt(1-sin(Trt_HitTheta)*sin(Trt_HitTheta)*cos(Trt_HitPhi-strawphi)*cos(Trt_HitPhi-strawphi)); - } - else { - ATH_MSG_FATAL ("std::abs(HitPart)= " << std::abs(HitPart) << ". Must be 1(Barrel) or 2(Endcap)"); - throw std::exception(); - } - - return length; -} - - - -bool TRT_ToT_dEdx::isGood_Hit(const Trk::TrackStateOnSurface *itr) const -{ - double l; - return isGood_Hit(itr, m_divideByL, m_useHThits, l); -} - -bool TRT_ToT_dEdx::isGood_Hit(const Trk::TrackStateOnSurface *itr, bool divideByL, - bool useHThits, double& length) const -{ - const Trk::MeasurementBase* trkM = itr->measurementOnTrack(); + const Trk::MeasurementBase* trkM = trackState->measurementOnTrack(); if (!trkM) { return false; } // Check if this is RIO on track - // annd if yes check if is TRT Drift Circle + // and if yes check if is TRT Drift Circle // then set the ptr const InDet::TRT_DriftCircleOnTrack* driftcircle = nullptr; if (trkM->type(Trk::MeasurementBaseType::RIO_OnTrack)) { @@ -239,7 +203,7 @@ bool TRT_ToT_dEdx::isGood_Hit(const Trk::TrackStateOnSurface *itr, bool divideBy return false; } - const Trk::TrackParameters* trkP = itr->trackParameters(); + const Trk::TrackParameters* trkP = trackState->trackParameters(); if(trkP==nullptr)return false; SG::ReadCondHandle<InDetDD::TRT_DetElementContainer> trtDetEleHandle(m_trtDetEleContKey); @@ -262,57 +226,43 @@ bool TRT_ToT_dEdx::isGood_Hit(const Trk::TrackStateOnSurface *itr, bool divideBy const InDetDD::TRT_BaseElement* element = elements->getDetectorElement(hashId); double strawphi = element->center(DCId).phi(); - if ( itr->type(Trk::TrackStateOnSurface::Outlier) ) return false; //Outliers - if ( m_useZeroRHitCut && Trt_RHit==0 && error>1.) return false; //Select precision hits only - if ( (Trt_Rtrack >= m_trackConfig_maxRtrack) || (Trt_Rtrack <= m_trackConfig_minRtrack) )return false; // drift radius close to wire or wall + if (trackState->type(Trk::TrackStateOnSurface::Outlier)) return false; //Outliers + if (m_useZeroRHitCut && Trt_RHit==0 && error>1.) return false; //Select precision hits only + if ((Trt_Rtrack >= m_trackConfig_maxRtrack) || (Trt_Rtrack <= m_trackConfig_minRtrack)) return false; // drift radius close to wire or wall length=0; if (std::abs(HitPart)==1) { //Barrel length = 2*sqrt(4-Trt_Rtrack*Trt_Rtrack)*1./fabs(sin(Trt_HitTheta)); + } else if (std::abs(HitPart)==2) { //EndCap + length = 2*sqrt(4-Trt_Rtrack*Trt_Rtrack)*1./sqrt(1-sin(Trt_HitTheta)*sin(Trt_HitTheta)*cos(Trt_HitPhi-strawphi)*cos(Trt_HitPhi-strawphi)); + } else { + ATH_MSG_FATAL ("std::abs(HitPart)= " << std::abs(HitPart) << ". Must be 1(Barrel) or 2(Endcap)"); + throw std::exception(); } - else - if (std::abs(HitPart)==2) { //EndCap - length = 2*sqrt(4-Trt_Rtrack*Trt_Rtrack)*1./sqrt(1-sin(Trt_HitTheta)*sin(Trt_HitTheta)*cos(Trt_HitPhi-strawphi)*cos(Trt_HitPhi-strawphi)); - } - else { - ATH_MSG_FATAL ("std::abs(HitPart)= " << std::abs(HitPart) << ". Must be 1(Barrel) or 2(Endcap)"); - throw std::exception(); - } - if(divideByL) - if ( length < 1.7 ) return false; // Length in the straw - if(!useHThits){ + if (m_divideByL and length < 1.7) return false; // Length in the straw + + if (!m_useHThits) { int TrtHl = driftcircle->highLevel(); if (TrtHl==1) return false; } - if(m_useTrackPartWithGasType!=kUnset) // don't preselect hits - { - if(m_useTrackPartWithGasType!=gasTypeInStraw(itr)) - return false; - } + if (m_useTrackPartWithGasType != kUnset) { // don't preselect hits + if(m_useTrackPartWithGasType != gasTypeInStraw(trackState)) return false; + } unsigned int BitPattern = driftcircle->prepRawData()->getWord(); double ToT = getToT(BitPattern); - if(ToT==0) return false; // If ToT for this hit equal 0, skip it. + if (ToT==0) return false; // If ToT for this hit equal 0, skip it. return true; } - - -double TRT_ToT_dEdx::dEdx(const Trk::Track* track, EOccupancyCorrection correction_type) const -{ - return dEdx(track, m_divideByL, m_useHThits, m_corrected, correction_type); -} - - - -double TRT_ToT_dEdx::dEdx(const Trk::Track* track, bool divideByL, bool useHThits, bool corrected, EOccupancyCorrection correction_type) const +double TRT_ToT_dEdx::dEdx(const Trk::Track* track, EOccupancyCorrection correctionType) const { //////////////////////////////////////////////////// - // Different cases for correction_type // + // Different cases for correctionType // // kRSOnly: only r-S calibration // // kHitBased: Hit-based occupancy calibration // // kTrackBased: Track-based occupancy calibration // @@ -352,149 +302,147 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, bool divideByL, bool useHThit double correctionFactor = 1.; - if(m_toolScenario==kAlgStandard || m_toolScenario==kAlgScalingToXe) - { - std::vector<double> vecToT; - double ToTsum = 0; - - for ( ; itr!=itre ; ++itr) { - double l=0; - if ( isGood_Hit((*itr),divideByL,useHThits,l)) { - double ToT_correct = correctToT_corrRZ(*itr,divideByL,corrected,l); - if (correction_type == ITRT_ToT_dEdx::EOccupancyCorrection::kHitBased){ - correctionFactor = hitOccupancyCorrection(*itr); - ToT_correct*=correctionFactor; - } - vecToT.push_back(ToT_correct); - } - } - - sort(vecToT.begin(), vecToT.end()); - int nhits = (int)vecToT.size(); + if(m_toolScenario==kAlgStandard || m_toolScenario==kAlgScalingToXe) { + std::vector<double> vecToT; + double ToTsum = 0; - if(divideByL) nhits-=nTrunkateHits; + for ( ; itr!=itre ; ++itr) { + double length = 0; + if ( isGoodHit((*itr), length)) { + double ToT_correct = correctToT_corrRZ(*itr, length); + if (correctionType == ITRT_ToT_dEdx::EOccupancyCorrection::kHitBased){ + correctionFactor = hitOccupancyCorrection(*itr); + ToT_correct*=correctionFactor; + } + vecToT.push_back(ToT_correct); + } + } + + sort(vecToT.begin(), vecToT.end()); + int nhits = (int)vecToT.size(); - // Boost speed - if(nhits<1)return 0.0; + if (m_divideByL) { + nhits-=m_nTrunkateHits; + } - ToTsum = std::accumulate(vecToT.begin(), vecToT.end(), 0); - if (correction_type == ITRT_ToT_dEdx::EOccupancyCorrection::kTrackBased){correctionFactor=trackOccupancyCorrection(track, useHThits);} - else {correctionFactor=correctNormalization(divideByL, m_isData, nVtx);} - ToTsum*=correctionFactor; + // Boost speed + if (nhits<1) return 0.0; - return ToTsum/nhits; + ToTsum = std::accumulate(vecToT.begin(), vecToT.end(), 0); + if (correctionType == ITRT_ToT_dEdx::EOccupancyCorrection::kTrackBased) { + correctionFactor=trackOccupancyCorrection(track, m_useHThits); + } else { + correctionFactor=correctNormalization(nVtx); } + ToTsum*=correctionFactor; + return ToTsum/nhits; + } - if(m_toolScenario==kAlgReweight || m_toolScenario==kAlgReweightTrunkOne) - { - std::vector<double> vecToT_Xe; - std::vector<double> vecToT_Ar; - std::vector<double> vecToT_Kr; - - if(m_useTrackPartWithGasType!=kUnset) - { - ATH_MSG_WARNING("dEdX_Estimator():: Using m_toolScenario="<<m_toolScenario<<" scenario m_useTrackPartWithGasType is set to"<<m_useTrackPartWithGasType<<", but kUnset is requiered. Check you tool configuration."); - } + if(m_toolScenario==kAlgReweight || m_toolScenario==kAlgReweightTrunkOne) { + std::vector<double> vecToT_Xe; + std::vector<double> vecToT_Ar; + std::vector<double> vecToT_Kr; - for ( ; itr!=itre ; ++itr) { - double l=0; - if ( isGood_Hit((*itr),divideByL,useHThits,l)) { - gasType=gasTypeInStraw(*itr); - double ToT_correct = correctToT_corrRZ(*itr, divideByL, corrected,l); - if (correction_type == ITRT_ToT_dEdx::EOccupancyCorrection::kHitBased){correctionFactor = hitOccupancyCorrection(*itr);} - ToT_correct*=correctionFactor; - if(gasType==kXenon) - vecToT_Xe.push_back(ToT_correct); - else if(gasType==kArgon) - vecToT_Ar.push_back(ToT_correct); - else if(gasType==kKrypton) - vecToT_Kr.push_back(ToT_correct); - else + if(m_useTrackPartWithGasType!=kUnset) { + ATH_MSG_WARNING("dEdX_Estimator():: Using m_toolScenario="<<m_toolScenario<<" scenario m_useTrackPartWithGasType is set to"<<m_useTrackPartWithGasType<<", but kUnset is requiered. Check you tool configuration."); + } + + for ( ; itr!=itre ; ++itr) { + double length=0; + if (isGoodHit((*itr), length)) { + gasType=gasTypeInStraw(*itr); + double ToT_correct = correctToT_corrRZ(*itr, length); + if (correctionType == ITRT_ToT_dEdx::EOccupancyCorrection::kHitBased) { + correctionFactor = hitOccupancyCorrection(*itr); + } + ToT_correct*=correctionFactor; + if(gasType==kXenon) { + vecToT_Xe.push_back(ToT_correct); + } else if (gasType==kArgon) { + vecToT_Ar.push_back(ToT_correct); + } else if (gasType==kKrypton) { + vecToT_Kr.push_back(ToT_correct); + } else { ATH_MSG_ERROR("dEdX_Estimator():: During scenario kAlgReweight variable gasTypeInStraw got value kUnset."); - } - } - - sort(vecToT_Xe.begin(), vecToT_Xe.end()); - sort(vecToT_Ar.begin(), vecToT_Ar.end()); - sort(vecToT_Kr.begin(), vecToT_Kr.end()); - - int nhitsXe = (int)vecToT_Xe.size(); - int nhitsAr = (int)vecToT_Ar.size(); - int nhitsKr = (int)vecToT_Kr.size(); - - if(divideByL) - { - if(m_toolScenario==kAlgReweight){ - if(nhitsXe>0) nhitsXe-=nTrunkateHits; - if(nhitsAr>0) nhitsAr-=nTrunkateHits; - if(nhitsKr>0) nhitsKr-=nTrunkateHits; - } else // kAlgReweightTrunkOne - { - int trunkGas = kUnset; - double maxToT = 0.; - if(nhitsXe>0 && vecToT_Xe.at(nhitsXe-1)>maxToT){ - trunkGas = kXenon; - maxToT = vecToT_Xe.at(nhitsXe-1); - } - if(nhitsAr>0 && vecToT_Ar.at(nhitsAr-1)>maxToT){ - trunkGas = kArgon; - maxToT = vecToT_Ar.at(nhitsAr-1); - } - if(nhitsKr>0 && vecToT_Kr.at(nhitsKr-1)>maxToT) trunkGas = kKrypton; - - if(trunkGas==kXenon) nhitsXe-=nTrunkateHits; - else - if(trunkGas==kArgon) nhitsAr-=nTrunkateHits; - else - if(trunkGas==kKrypton) nhitsKr-=nTrunkateHits; - } - } + } + } + } + + sort(vecToT_Xe.begin(), vecToT_Xe.end()); + sort(vecToT_Ar.begin(), vecToT_Ar.end()); + sort(vecToT_Kr.begin(), vecToT_Kr.end()); - // Boost speed. - int nhits = nhitsXe + nhitsAr + nhitsKr; - if(nhits<1) return 0.0; - - double ToTsumXe = 0; - double ToTsumAr = 0; - double ToTsumKr = 0; - for (int i = 0; i < nhitsXe;i++){ - ToTsumXe+=vecToT_Xe.at(i); - } - for (int i = 0; i < nhitsAr;i++){ - ToTsumAr+=vecToT_Ar.at(i); - } - for (int i = 0; i < nhitsKr;i++){ - ToTsumKr+=vecToT_Kr.at(i); - } - - if(nhitsXe>0) ToTsumXe/=nhitsXe; - else ToTsumXe = 0; - if(nhitsAr>0) ToTsumAr/=nhitsAr; - else ToTsumAr = 0; - if(nhitsKr>0) ToTsumKr/=nhitsKr; - else ToTsumKr = 0; - - - double ToTsum = ToTsumXe*nhitsXe + ToTsumAr*nhitsAr + ToTsumKr*nhitsKr; - - if (correction_type == ITRT_ToT_dEdx::EOccupancyCorrection::kTrackBased){correctionFactor=trackOccupancyCorrection(track, useHThits);} - else {correctionFactor=correctNormalization(divideByL, m_isData, nVtx);} - ToTsum*=correctionFactor; - - return ToTsum/nhits; + int nhitsXe = (int)vecToT_Xe.size(); + int nhitsAr = (int)vecToT_Ar.size(); + int nhitsKr = (int)vecToT_Kr.size(); + + if (m_divideByL) { + if(m_toolScenario==kAlgReweight){ + if (nhitsXe>0) nhitsXe-=m_nTrunkateHits; + if (nhitsAr>0) nhitsAr-=m_nTrunkateHits; + if (nhitsKr>0) nhitsKr-=m_nTrunkateHits; + } else {// kAlgReweightTrunkOne + int trunkGas = kUnset; + double maxToT = 0.; + if (nhitsXe>0 && vecToT_Xe.at(nhitsXe-1)>maxToT) { + trunkGas = kXenon; + maxToT = vecToT_Xe.at(nhitsXe-1); + } + if(nhitsAr>0 && vecToT_Ar.at(nhitsAr-1)>maxToT){ + trunkGas = kArgon; + maxToT = vecToT_Ar.at(nhitsAr-1); + } + if (nhitsKr>0 && vecToT_Kr.at(nhitsKr-1)>maxToT) { + trunkGas = kKrypton; + } + + if (trunkGas==kXenon) { + nhitsXe-=m_nTrunkateHits; + } else if (trunkGas==kArgon) { + nhitsAr-=m_nTrunkateHits; + } else if (trunkGas==kKrypton) { + nhitsKr-=m_nTrunkateHits; + } } - + } + + // Boost speed. + int nhits = nhitsXe + nhitsAr + nhitsKr; + if(nhits<1) return 0.0; + + double ToTsumXe = 0; + double ToTsumAr = 0; + double ToTsumKr = 0; + for (int i = 0; i < nhitsXe;i++) { + ToTsumXe+=vecToT_Xe.at(i); + } + for (int i = 0; i < nhitsAr;i++) { + ToTsumAr+=vecToT_Ar.at(i); + } + for (int i = 0; i < nhitsKr;i++) { + ToTsumKr+=vecToT_Kr.at(i); + } + + ToTsumXe = (nhitsXe>0) ? ToTsumXe/nhitsXe : 0; + ToTsumAr = (nhitsAr>0) ? ToTsumAr/nhitsAr : 0; + ToTsumKr = (nhitsKr>0) ? ToTsumKr/nhitsKr : 0; + double ToTsum = ToTsumXe*nhitsXe + ToTsumAr*nhitsAr + ToTsumKr*nhitsKr; + + if (correctionType == ITRT_ToT_dEdx::EOccupancyCorrection::kTrackBased) { + correctionFactor = trackOccupancyCorrection(track, m_useHThits); + } else { + correctionFactor = correctNormalization(nVtx); + } + ToTsum *= correctionFactor; + + return ToTsum/nhits; + } ATH_MSG_ERROR("dEdX_Estimator():: m_toolScenario has wrong value "<<m_toolScenario<<""); return 0.; } double TRT_ToT_dEdx::usedHits(const Trk::Track* track) const -{ - return usedHits(track, m_divideByL, m_useHThits); -} - -double TRT_ToT_dEdx::usedHits(const Trk::Track* track, bool divideByL, bool useHThits) const { ATH_MSG_DEBUG("usedHits()"); EGasType gasType = kUnset; @@ -514,12 +462,12 @@ double TRT_ToT_dEdx::usedHits(const Trk::Track* track, bool divideByL, bool useH int nhits =0; for ( ; itr!=itre ; ++itr) { - double l=0; - if ( isGood_Hit((*itr),divideByL,useHThits,l)) { + double length=0; + if (isGoodHit((*itr), length)) { nhits++; } } - if(divideByL) nhits-=nTrunkateHits; + if (m_divideByL) nhits -= m_nTrunkateHits; return nhits; } else if (m_toolScenario==kAlgReweight || m_toolScenario==kAlgReweightTrunkOne) { int nhits = 0; @@ -532,8 +480,8 @@ double TRT_ToT_dEdx::usedHits(const Trk::Track* track, bool divideByL, bool useH } for ( ; itr!=itre ; ++itr) { - double l=0; - if ( isGood_Hit((*itr),divideByL,useHThits,l)) { + double length=0; + if ( isGoodHit((*itr), length)) { gasType=gasTypeInStraw(*itr); if (gasType==kXenon) { nhitsXe++; @@ -547,14 +495,14 @@ double TRT_ToT_dEdx::usedHits(const Trk::Track* track, bool divideByL, bool useH } } - if(divideByL) { + if (m_divideByL) { if(m_toolScenario==kAlgReweight){ - if(nhitsXe>0) nhitsXe-=nTrunkateHits; - if(nhitsAr>0) nhitsAr-=nTrunkateHits; - if(nhitsKr>0) nhitsKr-=nTrunkateHits; + if(nhitsXe>0) nhitsXe -= m_nTrunkateHits; + if(nhitsAr>0) nhitsAr -= m_nTrunkateHits; + if(nhitsKr>0) nhitsKr -= m_nTrunkateHits; } else { // kAlgReweightTrunkOne if(nhitsXe>0 || nhitsAr>0 || nhitsKr>0) - nhitsXe -= nTrunkateHits; + nhitsXe -= m_nTrunkateHits; } } @@ -567,17 +515,12 @@ double TRT_ToT_dEdx::usedHits(const Trk::Track* track, bool divideByL, bool useH } double TRT_ToT_dEdx::getProb(const Trk::TrackStateOnSurface *itr, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits) const -{ - return getProb(itr, dEdx_obs, pTrk, hypothesis, nUsedHits, m_divideByL); -} - -double TRT_ToT_dEdx::getProb(const Trk::TrackStateOnSurface *itr, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits, bool divideByL) const { EGasType gasType = gasTypeInStraw(itr); - return getProb(gasType, dEdx_obs, pTrk, hypothesis, nUsedHits, divideByL); + return getProb(gasType, dEdx_obs, pTrk, hypothesis, nUsedHits); } -double TRT_ToT_dEdx::getProb(EGasType gasType, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits, bool divideByL) const +double TRT_ToT_dEdx::getProb(EGasType gasType, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits) const { ATH_MSG_DEBUG("getProb():: gasTypeInStraw = "<<gasType<<""); @@ -594,7 +537,7 @@ double TRT_ToT_dEdx::getProb(EGasType gasType, const double dEdx_obs, const doub gasType = kXenon; } - double dEdx_pred = predictdEdx(gasType, pTrk, hypothesis, divideByL); + double dEdx_pred = predictdEdx(gasType, pTrk, hypothesis); if (dEdx_pred==0) return 0.0; if (hypothesis==Trk::electron) { // correction for pTrk in [MeV] @@ -617,19 +560,14 @@ double TRT_ToT_dEdx::getProb(EGasType gasType, const double dEdx_obs, const doub double TRT_ToT_dEdx::getTest(const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, Trk::ParticleHypothesis antihypothesis, int nUsedHits) const -{ - return getTest(dEdx_obs, pTrk, hypothesis, antihypothesis, nUsedHits, m_divideByL); -} - -double TRT_ToT_dEdx::getTest(const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, Trk::ParticleHypothesis antihypothesis, int nUsedHits, bool divideByL) const { ATH_MSG_DEBUG("getTest()"); EGasType gasType = kUnset; if ( dEdx_obs<=0. || pTrk<=0. || nUsedHits<=0 ) return 0.5; - double Pone = getProb(gasType, dEdx_obs,pTrk,hypothesis,nUsedHits, divideByL); - double Ptwo = getProb(gasType, dEdx_obs,pTrk,antihypothesis,nUsedHits, divideByL); + double Pone = getProb(gasType, dEdx_obs,pTrk,hypothesis,nUsedHits); + double Ptwo = getProb(gasType, dEdx_obs,pTrk,antihypothesis,nUsedHits); if ((Pone+Ptwo) != 0) { ATH_MSG_DEBUG("getTest():: return "<<Pone/(Pone+Ptwo)<<""); return Pone/(Pone+Ptwo); @@ -639,17 +577,12 @@ double TRT_ToT_dEdx::getTest(const double dEdx_obs, const double pTrk, Trk::Part } double TRT_ToT_dEdx::predictdEdx(const Trk::TrackStateOnSurface *itr, const double pTrk, Trk::ParticleHypothesis hypothesis) const -{ - return predictdEdx(itr, pTrk, hypothesis, m_divideByL); -} - -double TRT_ToT_dEdx::predictdEdx(const Trk::TrackStateOnSurface *itr, const double pTrk, Trk::ParticleHypothesis hypothesis, bool divideByL) const { EGasType gasType = gasTypeInStraw(itr); - return predictdEdx(gasType, pTrk, hypothesis, divideByL); + return predictdEdx(gasType, pTrk, hypothesis); } -double TRT_ToT_dEdx::predictdEdx(EGasType gasType, const double pTrk, Trk::ParticleHypothesis hypothesis, bool divideByL) const +double TRT_ToT_dEdx::predictdEdx(EGasType gasType, const double pTrk, Trk::ParticleHypothesis hypothesis) const { ATH_MSG_DEBUG("predictdEdx(): gasTypeInStraw = "<<gasType<<""); @@ -676,7 +609,7 @@ double TRT_ToT_dEdx::predictdEdx(EGasType gasType, const double pTrk, Trk::Parti // do we need the check in the log parameter in addition? will create CPU increase // do we want to throw an assertion here? if(pTrk<100)return 0; - if(divideByL){ + if(m_divideByL){ if(dEdxCorrection->paraDivideByLengthDedxP3[gasType]+1./( std::pow( betaGamma, dEdxCorrection->paraDivideByLengthDedxP5[gasType]))<=0) return 0; return dEdxCorrection->paraDivideByLengthDedxP1[gasType]/std::pow( sqrt( (betaGamma*betaGamma)/(1.+(betaGamma*betaGamma)) ), dEdxCorrection->paraDivideByLengthDedxP4[gasType]) * (dEdxCorrection->paraDivideByLengthDedxP2[gasType] - std::pow( sqrt( (betaGamma*betaGamma)/(1.+(betaGamma*betaGamma)) ), dEdxCorrection->paraDivideByLengthDedxP4[gasType] ) @@ -805,7 +738,7 @@ double TRT_ToT_dEdx::getToT(unsigned int BitPattern) const // Corrections ///////////////////////////////// -double TRT_ToT_dEdx::correctNormalization(bool divideLength,bool scaledata, double nVtx) const +double TRT_ToT_dEdx::correctNormalization(double nVtx) const { SG::ReadCondHandle<TRTDedxcorrection> readHandle{m_ReadKey}; const TRTDedxcorrection* dEdxCorrection{*readHandle}; @@ -819,29 +752,26 @@ double TRT_ToT_dEdx::correctNormalization(bool divideLength,bool scaledata, doub if (nVtx<=0) nVtx=dEdxCorrection->normNzero[gasType]; double slope = dEdxCorrection->normSlopeTot[gasType]; double offset = dEdxCorrection->normOffsetTot[gasType]; - if (divideLength){ + if (m_divideByL){ slope = dEdxCorrection->normSlopeTotDivideByLength[gasType]; offset = dEdxCorrection->normOffsetTotDivideByLength[gasType]; } double shift = dEdxCorrection->normOffsetData[gasType]; - if(!scaledata)shift = 0; + if(!m_isData)shift = 0; return (slope*dEdxCorrection->normNzero[gasType]+offset)/(slope*nVtx+offset+shift); } double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface *itr) const { - double l=0; - if(isGood_Hit(itr,m_divideByL,m_useHThits,l)) { - return correctToT_corrRZ(itr, m_divideByL, m_corrected,l); + double length=0; + if(isGoodHit(itr, length)) { + return correctToT_corrRZ(itr, length); } return 0; } double -TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, - bool divideByL, - bool corrected, - double length) const +TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, double length) const { const Trk::MeasurementBase* trkM = itr->measurementOnTrack(); const Trk::TrackParameters* trkP = itr->trackParameters(); @@ -868,7 +798,7 @@ TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, unsigned int BitPattern = driftcircle->prepRawData()->getWord(); double ToT = getToT(BitPattern); if(ToT==0) { - ATH_MSG_WARNING("correctToT_corrRZ(const Trk::TrackStateOnSurface *itr):: ToT="<<ToT<<". We must cut that hit in isGood_Hit() !"); + ATH_MSG_WARNING("correctToT_corrRZ(const Trk::TrackStateOnSurface *itr):: ToT="<<ToT<<". We must cut that hit in isGoodHit() !"); return 0; } int HitPart = m_trtId->barrel_ec(DCId); @@ -910,8 +840,8 @@ TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, } } - if(divideByL && length>0) ToT = ToT/length; - if(!corrected) return ToT; + if(m_divideByL && length>0) ToT = ToT/length; + if(!m_corrected) return ToT; /* else correct */ double HitZ = driftcircle->globalPosition().z(); @@ -923,7 +853,7 @@ TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, should probably be done later on track- level */ double ToTmip = 1; double valToT = 0; - if(divideByL){ + if(m_divideByL){ if (abs(HitPart)==1) // Barrel valToT = fitFuncBarrel_corrRZL(gasType, HitRtrack,HitZ, Layer, StrawLayer); else // End-cap @@ -939,92 +869,8 @@ TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, return 0.; } - - -double TRT_ToT_dEdx::correctToT_corrRZL(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer, bool isdata) const -{ - double l=strawLength(trkP) ; - return correctToT_corrRZL(trkP, driftcircle, HitPart, Layer, StrawLayer, isdata, m_useHThits, l); -} - -double TRT_ToT_dEdx::correctToT_corrRZL(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer, bool isdata, bool useHThits, double length) const -{ - if (isdata != m_isData) { - ATH_MSG_ERROR("TRT_ToT_dEdx::correctToT_corrRZL called with isData = " << isdata - << " but data type is " << m_isData << ". Ignoring!"); - } - - - if (trkP==nullptr) return false; - if (!driftcircle) return false; - if (driftcircle->prepRawData()==nullptr) return 0; - double HitRtrack = fabs(trkP->parameters()[Trk::locR]); - double Trt_RHit = fabs(driftcircle->localParameters()[Trk::driftRadius]); - if ( m_useZeroRHitCut && Trt_RHit==0) return false; // tube hit - if ( (HitRtrack >= m_trackConfig_maxRtrack) || (HitRtrack <= m_trackConfig_minRtrack) )return false; // drift radius close to wire or wall - if (!useHThits) { - int TrtHl = driftcircle->highLevel(); - if (TrtHl==1) return false; - } - - EGasType gasType = gasTypeInStraw(driftcircle); - if(m_useTrackPartWithGasType!=kUnset) // don't preselect hits - { - if(m_useTrackPartWithGasType!=gasType) return false; - } - - unsigned int BitPattern = driftcircle->prepRawData()->getWord(); - double ToT = getToT(BitPattern); - if(ToT==0) return false; // If ToT for this hit equal 0, skip it. - - if(m_applyMimicToXeCorrection==true || m_toolScenario==kAlgScalingToXe) { - if(gasType!=kXenon) // mimic to Xenon ToT, so we skip Xenon hits - { - if (abs(HitPart)==1) // Barrel - ToT/=mimicToXeHit_Barrel(gasType, HitRtrack, Layer, StrawLayer); - else // End-cap - ToT/=mimicToXeHit_Endcap(gasType, HitRtrack, Layer, HitPart); - - if(m_whichToTEstimatorAlgo==kToTLargerIsland){ - if (ToT<3.125) ToT = 3.125; - if (ToT>75) ToT = 75; - } else { - if (ToT<3.125) ToT = 3.125; - if (ToT>62.5) ToT = 62.5; - } - - gasType=kXenon; // After mimic correction we work with that hit as Xenon hit. - } - } - - if(length>0) ToT = ToT/length; - - const Amg::Vector3D& gp = driftcircle->globalPosition(); - double HitR = sqrt( gp.x() * gp.x() + gp.y() * gp.y() ); - double HitZ = gp.z(); - double ToTmip = 1; - double valToT = 1; - - if (abs(HitPart)==1) // Barrel - valToT = fitFuncBarrel_corrRZL(gasType, HitRtrack,HitZ, Layer, StrawLayer); - else // End-cap - valToT = fitFuncEndcap_corrRZL(gasType, HitRtrack ,HitR,Layer, HitZ>0?1:(HitZ<0?-1:0)); - if (std::isinf(valToT)) return 0.; - return (valToT!=0.) ? (ToTmip*ToT/valToT) : 0.; -} - -double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer, bool isdata) const +double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer) const { - return correctToT_corrRZ(trkP, driftcircle, HitPart, Layer, StrawLayer, isdata, m_useHThits); -} - -double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer, bool isdata, bool useHThits) const -{ - if (isdata != m_isData) { - ATH_MSG_ERROR("TRT_ToT_dEdx::correctToT_corrRZ called with isData = " << isdata - << " but data type is " << m_isData << ". Ignoring!"); - } - if (trkP==nullptr) return false; if (!driftcircle) return false; if (driftcircle->prepRawData()==nullptr) return 0; @@ -1032,7 +878,7 @@ double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackParameters* trkP,const In double Trt_RHit = fabs(driftcircle->localParameters()[Trk::driftRadius]); if (m_useZeroRHitCut && Trt_RHit==0) return false; // tube hit if ((HitRtrack >= m_trackConfig_maxRtrack) || (HitRtrack <= m_trackConfig_minRtrack)) return false; // drift radius close to wire or wall - if (!useHThits) { + if (!m_useHThits) { int TrtHl = driftcircle->highLevel(); if (TrtHl==1) return false; } diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/components/TRT_ElectronPidTools_entries.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/components/TRT_ElectronPidTools_entries.cxx index b72041c7bb8..8e958e5ff8c 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/components/TRT_ElectronPidTools_entries.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/components/TRT_ElectronPidTools_entries.cxx @@ -1,7 +1,7 @@ #include "TRT_ElectronPidTools/BaseTRTPIDCalculator.h" #include "TRT_ElectronPidTools/TRT_ElectronPidToolRun2.h" #include "TRT_ElectronPidTools/TRT_LocalOccupancy.h" -#include "../TRT_ToT_dEdx.h" +#include "TRT_ElectronPidTools/TRT_ToT_dEdx.h" DECLARE_COMPONENT( InDet::TRT_ElectronPidToolRun2 ) DECLARE_COMPONENT( InDet::TRT_LocalOccupancy ) -- GitLab From 5108c8f1efbd813e1b9cdbf1231d8618a1d4ebd3 Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Wed, 8 Jul 2020 14:39:23 +0200 Subject: [PATCH 328/459] More cleanup --- .../TRT_ElectronPidTools/TRT_ToT_dEdx.h | 75 ++----- .../TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx | 192 +++--------------- 2 files changed, 43 insertions(+), 224 deletions(-) diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h index dd17ce423d1..edd80481273 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h @@ -61,7 +61,7 @@ public: // enums ////////////////////////////////////////////////////////////////////////// enum EDataBaseType {kOldDB,kNewDB}; - enum EstCalc {kAlgStandard,kAlgScalingToXe,kAlgReweight,kAlgReweightTrunkOne}; + enum EstCalc {kAlgStandard,kAlgReweight,kAlgReweightTrunkOne}; enum EToTEstimatorType {kToTLargerIsland,kToTHighOccupancy,kToTHighOccupancySmart}; private: @@ -84,8 +84,7 @@ private: int m_whichToTEstimatorAlgo; // If true - use getToTNewApproach(), else - use getToTlargerIsland() int m_useTrackPartWithGasType; // If kUnset - use any gas for dEdX calculation; - int m_toolScenario; // Algorithm type for dEdX estimator calculation: - bool m_applyMimicToXeCorrection; // Possibility to apply mimicToXenon function for any algorithm. For kAlgScalingToXe that always true. + int m_toolScenario; // Algorithm type for dEdX estimator calculation; // Event info @@ -132,7 +131,7 @@ public: protected: /** * @brief function to define what is a good hit to be used for dEdx calculation - * cuts on track level can be made later by the user. Also returns the length in the straw. + * cuts on track level can be made latekAlgStandardr by the user. Also returns the length in the straw. * @param trackState measurement on track * @param length length in straw * @return decision @@ -259,28 +258,6 @@ protected: * @return ToT */ int TrailingEdge_v3(unsigned int BitPattern) const; - - /** - * @brief function to compute correction factor to mimic ToT Ar to the Xe - * @param driftradius - * @param straw layer index - * @param sign for positive or negative side - * @param gas type variable (0-Xe,1-Ar,2-Kr) - * @param bool variable to specify whether data or MC correction - * @return correction - */ - double mimicToXeHit_Endcap(EGasType gasType, double driftRadius, int Layer, int sign) const; - - /** - * @brief function to compute correction factor to mimic ToT Ar to the Xe - * @param driftradius - * @param layer index - * @param straw layer index - * @param gas type variable (0-Xe,1-Ar,2-Kr) - * @param bool variable to specify whether data or MC correction - * @return correction - */ - double mimicToXeHit_Barrel(EGasType gasType, double driftRadius, int Layer, int Strawlayer) const; /** * @brief return gas type for that hit @@ -368,44 +345,30 @@ private: public: // Setters and getters - void SetDefaultConfiguration(); - - bool GetStatusRSCorrection() const { return m_corrected; } - bool GetStatusUseHThits() const { return m_useHThits; } - - void SetLargerIslandToTEstimatorAlgo() { m_whichToTEstimatorAlgo=kToTLargerIsland; } - void SetHighOccupancyToTEstimatorAlgo() { m_whichToTEstimatorAlgo=kToTHighOccupancy; } - void SetHighOccupancySmartToTEstimatorAlgo() { m_whichToTEstimatorAlgo=kToTHighOccupancySmart; } - bool GetStatusToTEstimatorAlgo() const { return m_whichToTEstimatorAlgo; } + void setDefaultConfiguration(); - void SetMinRtrack(float minRtrack) { m_trackConfig_minRtrack=minRtrack;} - float GetMinRtrack() const { return m_trackConfig_minRtrack; } + bool getStatusRSCorrection() const { return m_corrected; } + bool getStatusUseHThits() const { return m_useHThits; } - void SetMaxRtrack(float maxRtrack) { m_trackConfig_maxRtrack=maxRtrack;} - float GetMaxRtrack() const { return m_trackConfig_maxRtrack; } + void setStatusToTEstimatorAlgo(EToTEstimatorType totType) { m_whichToTEstimatorAlgo = totType; } + bool getStatusToTEstimatorAlgo() const { return m_whichToTEstimatorAlgo; } - void SwitchOnUseZeroRHitCut() { m_useZeroRHitCut=true; } - void SwitchOffUseZeroRHitCut() { m_useZeroRHitCut=false; } - bool GetStatusUseZeroRHitCut() const { return m_useZeroRHitCut; } + void setMinRtrack(float minRtrack) { m_trackConfig_minRtrack=minRtrack;} + float getMinRtrack() const { return m_trackConfig_minRtrack; } - void SetXenonFordEdXCalculation() { m_useTrackPartWithGasType=kXenon; } - void SetArgonFordEdXCalculation() { m_useTrackPartWithGasType=kArgon; } - void SetKryptonFordEdXCalculation() { m_useTrackPartWithGasType=kKrypton; } - void UnsetGasTypeFordEdXCalculation() { m_useTrackPartWithGasType=kUnset; } - int GetGasTypeFordEdXCalculation() const { return m_useTrackPartWithGasType; } + void setMaxRtrack(float maxRtrack) { m_trackConfig_maxRtrack=maxRtrack;} + float getMaxRtrack() const { return m_trackConfig_maxRtrack; } - void UseStandardAlgorithm() { m_toolScenario=kAlgStandard; } - void UseScalingAlgorithm() { m_toolScenario=kAlgScalingToXe; SwitchOnMimicToXeCorrection(); } - void UseReweightingAlgorithm() { m_toolScenario=kAlgReweight; } - void UseReweightingAlgorithmTrunkOne() { m_toolScenario=kAlgReweightTrunkOne; } - int GetStatusAlgorithm() const { return m_toolScenario; } + void setStatusUseZeroRHitCut(bool value) { m_useZeroRHitCut = value; } + bool getStatusUseZeroRHitCut() const { return m_useZeroRHitCut; } - void SwitchOnMimicToXeCorrection() { m_applyMimicToXeCorrection=true; } - void SwitchOffMimicToXeCorrection() { m_applyMimicToXeCorrection=false; } - bool GetStatusMimicToXeCorrection() const { return m_applyMimicToXeCorrection; } + void setGasTypeFordEdXCalculation(EGasType gasType) { m_useTrackPartWithGasType = gasType; } + int getGasTypeFordEdXCalculation() const { return m_useTrackPartWithGasType; } + void setAlgorithm(EstCalc alg) { m_toolScenario=alg; } + int getAlgorithm() const { return m_toolScenario; } - void ShowDEDXSetup() const; + void showDEDXSetup() const; }; diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx index 4e6603ab81b..5003ba8ee4d 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx @@ -49,7 +49,7 @@ TRT_ToT_dEdx::TRT_ToT_dEdx(const std::string& t, const std::string& n, const IIn declareProperty("AssociationTool", m_assoTool); declareProperty("TRT_LocalOccupancyTool", m_localOccTool); - SetDefaultConfiguration(); + setDefaultConfiguration(); m_timingProfile = nullptr; m_trtId = nullptr; @@ -57,7 +57,7 @@ TRT_ToT_dEdx::TRT_ToT_dEdx(const std::string& t, const std::string& n, const IIn -void TRT_ToT_dEdx::SetDefaultConfiguration() +void TRT_ToT_dEdx::setDefaultConfiguration() { declareProperty("TRT_dEdx_divideByL",m_divideByL=true); declareProperty("TRT_dEdx_useHThits",m_useHThits=true); @@ -65,7 +65,6 @@ void TRT_ToT_dEdx::SetDefaultConfiguration() declareProperty("TRT_dEdx_whichToTEstimatorAlgo",m_whichToTEstimatorAlgo=kToTLargerIsland); declareProperty("TRT_dEdx_useTrackPartWithGasType",m_useTrackPartWithGasType=kUnset); declareProperty("TRT_dEdx_toolScenario",m_toolScenario=kAlgReweightTrunkOne); - declareProperty("TRT_dEdx_applyMimicToXeCorrection",m_applyMimicToXeCorrection=false); declareProperty("TRT_dEdx_trackConfig_maxRtrack",m_trackConfig_maxRtrack=1.85); declareProperty("TRT_dEdx_trackConfig_minRtrack",m_trackConfig_minRtrack=0.15); declareProperty("TRT_dEdx_useZeroRHitCut",m_useZeroRHitCut=true); @@ -74,25 +73,24 @@ void TRT_ToT_dEdx::SetDefaultConfiguration() -void TRT_ToT_dEdx::ShowDEDXSetup() const +void TRT_ToT_dEdx::showDEDXSetup() const { - ATH_MSG_DEBUG("//////////////////////////////////////////////////////////////////"); - ATH_MSG_DEBUG("/// TRT_ToT_Tool setup configuration ///"); - ATH_MSG_DEBUG(" "); - ATH_MSG_DEBUG("m_divideByL ="<<m_divideByL<<""); - ATH_MSG_DEBUG("m_useHThits ="<<m_useHThits<<""); - ATH_MSG_DEBUG("m_corrected ="<<m_corrected<<""); - ATH_MSG_DEBUG("m_whichToTEstimatorAlgo ="<<m_whichToTEstimatorAlgo<<""); - ATH_MSG_DEBUG("m_useTrackPartWithGasType ="<<m_useTrackPartWithGasType<<""); - ATH_MSG_DEBUG("m_toolScenario ="<<m_toolScenario<<""); - ATH_MSG_DEBUG("m_applyMimicToXeCorrection ="<<m_applyMimicToXeCorrection<<""); - ATH_MSG_DEBUG(" "); - ATH_MSG_DEBUG("m_trackConfig_minRtrack ="<<m_trackConfig_minRtrack<<""); - ATH_MSG_DEBUG("m_trackConfig_maxRtrack ="<<m_trackConfig_maxRtrack<<""); - ATH_MSG_DEBUG("m_useZeroRHitCut ="<<m_useZeroRHitCut<<""); - ATH_MSG_DEBUG("m_isData ="<<m_isData<<""); - ATH_MSG_DEBUG(" "); - ATH_MSG_DEBUG("//////////////////////////////////////////////////////////////////"); + ATH_MSG_INFO("//////////////////////////////////////////////////////////////////"); + ATH_MSG_INFO("/// TRT_ToT_Tool setup configuration ///"); + ATH_MSG_INFO(" "); + ATH_MSG_INFO("m_divideByL ="<<m_divideByL<<""); + ATH_MSG_INFO("m_useHThits ="<<m_useHThits<<""); + ATH_MSG_INFO("m_corrected ="<<m_corrected<<""); + ATH_MSG_INFO("m_whichToTEstimatorAlgo ="<<m_whichToTEstimatorAlgo<<""); + ATH_MSG_INFO("m_useTrackPartWithGasType ="<<m_useTrackPartWithGasType<<""); + ATH_MSG_INFO("m_toolScenario ="<<m_toolScenario<<""); + ATH_MSG_INFO(" "); + ATH_MSG_INFO("m_trackConfig_minRtrack ="<<m_trackConfig_minRtrack<<""); + ATH_MSG_INFO("m_trackConfig_maxRtrack ="<<m_trackConfig_maxRtrack<<""); + ATH_MSG_INFO("m_useZeroRHitCut ="<<m_useZeroRHitCut<<""); + ATH_MSG_INFO("m_isData ="<<m_isData<<""); + ATH_MSG_INFO(" "); + ATH_MSG_INFO("//////////////////////////////////////////////////////////////////"); } @@ -148,24 +146,7 @@ StatusCode TRT_ToT_dEdx::initialize() return StatusCode::FAILURE; } - // ShowDEDXSetup(); - - ATH_MSG_INFO("//////////////////////////////////////////////////////////////////"); - ATH_MSG_INFO("/// TRT_ToT_Tool setup configuration ///"); - ATH_MSG_INFO(" "); - ATH_MSG_INFO("m_useHThits ="<<m_useHThits<<""); - ATH_MSG_INFO("m_corrected ="<<m_corrected<<""); - ATH_MSG_INFO("m_whichToTEstimatorAlgo ="<<m_whichToTEstimatorAlgo<<""); - ATH_MSG_INFO("m_useTrackPartWithGasType ="<<m_useTrackPartWithGasType<<""); - ATH_MSG_INFO("m_toolScenario ="<<m_toolScenario<<""); - ATH_MSG_INFO("m_applyMimicToXeCorrection ="<<m_applyMimicToXeCorrection<<""); - ATH_MSG_INFO(" "); - ATH_MSG_INFO("m_trackConfig_minRtrack ="<<m_trackConfig_minRtrack<<""); - ATH_MSG_INFO("m_trackConfig_maxRtrack ="<<m_trackConfig_maxRtrack<<""); - ATH_MSG_INFO("m_useZeroRHitCut ="<<m_useZeroRHitCut<<""); - ATH_MSG_INFO("m_isData ="<<m_isData<<""); - ATH_MSG_INFO(" "); - ATH_MSG_INFO("//////////////////////////////////////////////////////////////////"); + showDEDXSetup(); ATH_MSG_INFO ( name() << " initialize() successful" ); return StatusCode::SUCCESS; @@ -280,6 +261,7 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, EOccupancyCorrection correcti } // Average interactions per crossing for the current BCID + // TODO: we should really not hard-code a mu to nVtx conversion double mu = eventInfoDecor(0); if(m_isData) { nVtx = 1.3129 + 0.716194*mu + (-0.00475074)*mu*mu; @@ -302,7 +284,7 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, EOccupancyCorrection correcti double correctionFactor = 1.; - if(m_toolScenario==kAlgStandard || m_toolScenario==kAlgScalingToXe) { + if (m_toolScenario==kAlgStandard) { std::vector<double> vecToT; double ToTsum = 0; @@ -458,7 +440,7 @@ double TRT_ToT_dEdx::usedHits(const Trk::Track* track) const DataVector<const Trk::TrackStateOnSurface>::const_iterator itr = vtsos->begin(); DataVector<const Trk::TrackStateOnSurface>::const_iterator itre = vtsos->end(); - if (m_toolScenario==kAlgStandard || m_toolScenario==kAlgScalingToXe) { + if (m_toolScenario==kAlgStandard) { int nhits =0; for ( ; itr!=itre ; ++itr) { @@ -809,36 +791,7 @@ TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, double leng if(gasType==kUnset) { ATH_MSG_ERROR("correctToT_corrRZ(const Trk::TrackStateOnSurface *itr):: Gas type in straw is kUnset! Return ToT = 0"); return 0; - } - - if(m_applyMimicToXeCorrection || m_toolScenario==kAlgScalingToXe) - { - if(gasType!=kXenon) // mimic to Xenon ToT, so we skip Xenon hits - { - double mimicCorr = 0.; - if (abs(HitPart)==1) // Barrel - mimicCorr=mimicToXeHit_Barrel(gasType, HitRtrack, Layer, StrawLayer); - else // End-cap - mimicCorr=mimicToXeHit_Endcap(gasType, HitRtrack, Layer, HitPart); - - if(mimicCorr==0.) - { - ATH_MSG_FATAL("correctToT_corrRZ():: mimicCorr = "<<mimicCorr<<""); - throw std::exception(); - } - ToT/=mimicCorr; - - if(m_whichToTEstimatorAlgo==kToTLargerIsland){ - if(ToT<3.125) ToT = 3.125; - if(ToT>75) ToT = 75; - }else{ - if(ToT<3.125) ToT = 3.125; - if(ToT>62.5) ToT = 62.5; - } - - gasType=kXenon; // After mimic correction we work with that hit as Xenon hit. - } - } + } if(m_divideByL && length>0) ToT = ToT/length; if(!m_corrected) return ToT; @@ -893,25 +846,6 @@ double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackParameters* trkP,const In unsigned int BitPattern = driftcircle->prepRawData()->getWord(); double ToT = getToT(BitPattern); if(ToT==0) return false; // If ToT for this hit equal 0, skip it. - - if(m_applyMimicToXeCorrection==true || m_toolScenario==kAlgScalingToXe) { - if(gasType!=kXenon) // mimic to Xenon ToT, so we skip Xenon hits - { - if (abs(HitPart)==1) // Barrel - ToT/=mimicToXeHit_Barrel(gasType, HitRtrack, Layer, StrawLayer); - else // End-cap - ToT/=mimicToXeHit_Endcap(gasType, HitRtrack, Layer, HitPart); - - if(m_whichToTEstimatorAlgo==kToTLargerIsland){ - if (ToT<3.125) ToT = 3.125; - if (ToT>75) ToT = 75; - } else { - if (ToT<3.125) ToT = 3.125; - if (ToT>62.5) ToT = 62.5; - } - gasType = kXenon; // After mimic correction we work with that hit as Xenon hit. - } - } const Amg::Vector3D& gp = driftcircle->globalPosition(); double HitR = sqrt( gp.x() * gp.x() + gp.y() * gp.y() ); @@ -1381,84 +1315,6 @@ int TRT_ToT_dEdx::TrailingEdge_v3(unsigned int BitPattern) const return (23 - i); } - -double TRT_ToT_dEdx::mimicToXeHit_Endcap(EGasType gasType, double driftRadius, int Layer, int sign) const -{ - SG::ReadCondHandle<TRTDedxcorrection> readHandle{m_ReadKey}; - const TRTDedxcorrection* dEdxCorrection{*readHandle}; - if(dEdxCorrection==nullptr) - { - ATH_MSG_ERROR(" mimicToXeHit_Endcap: Could not find any dEdxCorrection in CondStore. Return zero."); - return 0; - } - - - double r = fabs(driftRadius); - double a; - - float rCopy = r; - rCopy*=10; - int rBin = int(rCopy); - if(rBin<0 || rBin>19) - { - ATH_MSG_FATAL("mimicToXeHit_Endcap():: rBin = "<<rBin<<" and out of range [0,19]."); - throw std::exception(); - } - - int side = 0; // A side - if(sign <0) side =1; // C side - if(m_isData) - a = dEdxCorrection->paraEndMimicToXeDATA[gasType][(side*14+Layer)*20+(rBin)]; - else - a = dEdxCorrection->paraEndMimicToXeMC[gasType][(side*14+Layer)*20+(rBin)]; - - ATH_MSG_DEBUG("mimicToXeHit_Endcap():: isData = " << m_isData << " gasTypeInStraw = " << gasType - << " side = " << side << " Layer = " << Layer << " rBin = " << rBin <<" BINPOS = " << (side*14+Layer)*20+(rBin) - << " a = " << a << "" ); - - return a; -} - -double TRT_ToT_dEdx::mimicToXeHit_Barrel(EGasType gasType, double driftRadius, int Layer, int Strawlayer) const -{ - - SG::ReadCondHandle<TRTDedxcorrection> readHandle{m_ReadKey}; - const TRTDedxcorrection* dEdxCorrection{*readHandle}; - if(dEdxCorrection==nullptr) - { - ATH_MSG_ERROR(" mimicToXeHit_Barrel: Could not find any dEdxCorrection in CondStore. Return zero."); - return 0; - } - - double r = fabs(driftRadius); - double a; - - float rCopy = r; - rCopy*=10; - int rBin = int(rCopy); - if(rBin<0 || rBin>19) - { - ATH_MSG_FATAL("mimicToXeHit_Barrel():: rBin = "<<rBin<<" and out of range [0,19]."); - throw std::exception(); - } - - if(Layer==0 && Strawlayer<9){ // short straws - if(m_isData) - a = dEdxCorrection->paraShortMimicToXeDATA[gasType][Strawlayer*20+(rBin)]; - else - a = dEdxCorrection->paraShortMimicToXeMC[gasType][Strawlayer*20+(rBin)]; - }else{ - if(m_isData) - a = dEdxCorrection->paraLongMimicToXeDATA[gasType][Layer*30*20+Strawlayer*20+(rBin)]; - else - a = dEdxCorrection->paraLongMimicToXeMC[gasType][Layer*30*20+Strawlayer*20+(rBin)]; - } - - ATH_MSG_DEBUG("mimicToXeHit_Barrel():: isData = " << m_isData << " Layer = " << Layer << " Strawlayer = " << Strawlayer << " rBin = " << rBin << " a = " << a << "" ); - - return a; -} - double TRT_ToT_dEdx::hitOccupancyCorrection(const Trk::TrackStateOnSurface *itr) const { SG::ReadCondHandle<TRTDedxcorrection> readHandle{m_ReadKey}; -- GitLab From 5a39c6a5c67d306a9d0023de6cc9c95ed0dbb8df Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Wed, 8 Jul 2020 15:31:46 +0200 Subject: [PATCH 329/459] Remove explicit setting of TRT dEdx options when retrieving dEdx and rely on TRT dEdx tool configuration instead --- .../TrkTrackSummaryTool/TrackSummaryTool.h | 7 ------- .../TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx | 8 ++++---- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/Tracking/TrkTools/TrkTrackSummaryTool/TrkTrackSummaryTool/TrackSummaryTool.h b/Tracking/TrkTools/TrkTrackSummaryTool/TrkTrackSummaryTool/TrackSummaryTool.h index 32e0ef07081..13ae226c33b 100755 --- a/Tracking/TrkTools/TrkTrackSummaryTool/TrkTrackSummaryTool/TrackSummaryTool.h +++ b/Tracking/TrkTools/TrkTrackSummaryTool/TrkTrackSummaryTool/TrackSummaryTool.h @@ -240,13 +240,6 @@ private: /** switch to deactivate Pixel info init */ Gaudi::Property<bool> m_pixelExists{ this, "PixelExists", true, "" }; - /** Parameters for the TRT dE/dx compution see @ref ITRT_ToT_dEdx for details.*/ - /** switch to deactivate Pixel info init */ - Gaudi::Property<bool> m_TRTdEdx_DivideByL{ this, "TRTdEdx_DivideByL", true, "" }; - /** Parameters for the TRT dE/dx compution see @ref ITRT_ToT_dEdx for details.*/ - Gaudi::Property<bool> m_TRTdEdx_useHThits{ this, "TRTdEdx_useHThits", true, "" }; - /** Parameters for the TRT dE/dx compution see @ref ITRT_ToT_dEdx for details.*/ - Gaudi::Property<bool> m_TRTdEdx_corrected{ this, "TRTdEdx_corrected", true, "" }; /** Only compute TRT dE/dx if there are at least this number of TRT hits or outliers.*/ Gaudi::Property<int> m_minTRThitsForTRTdEdx{ this, "minTRThitsForTRTdEdx", 1, "" }; diff --git a/Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx b/Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx index 1f7772b37c8..bcb07831963 100755 --- a/Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx +++ b/Tracking/TrkTools/TrkTrackSummaryTool/src/TrackSummaryTool.cxx @@ -292,8 +292,8 @@ Trk::TrackSummaryTool::createSummary( const Track& track, if (!m_trt_dEdxTool.empty()) { if (information[Trk::numberOfTRTHits]+information[Trk::numberOfTRTOutliers]>=m_minTRThitsForTRTdEdx) { - int nhits = static_cast<int>( m_trt_dEdxTool->usedHits(&track, m_TRTdEdx_DivideByL, m_TRTdEdx_useHThits) ); - double fvalue = (nhits>0 ? m_trt_dEdxTool->dEdx(&track, m_TRTdEdx_DivideByL, m_TRTdEdx_useHThits, m_TRTdEdx_corrected) : 0.0); + int nhits = static_cast<int>( m_trt_dEdxTool->usedHits(&track) ); + double fvalue = (nhits>0 ? m_trt_dEdxTool->dEdx(&track) : 0.0); eProbability.push_back(fvalue); information[ numberOfTRTHitsUsedFordEdx] = static_cast<uint8_t>(std::max(nhits,0)); } @@ -355,8 +355,8 @@ void Trk::TrackSummaryTool::updateAdditionalInfo(const Track& track, const Trk:: if (!m_trt_dEdxTool.empty()) { if (summary.get(Trk::numberOfTRTHits)+summary.get(Trk::numberOfTRTOutliers)>=m_minTRThitsForTRTdEdx) { - int nhits = static_cast<int>( m_trt_dEdxTool->usedHits(&track, m_TRTdEdx_DivideByL, m_TRTdEdx_useHThits) ); - double fvalue = (nhits>0 ? m_trt_dEdxTool->dEdx(&track, m_TRTdEdx_DivideByL, m_TRTdEdx_useHThits, m_TRTdEdx_corrected) : 0.0); + int nhits = static_cast<int>( m_trt_dEdxTool->usedHits(&track) ); + double fvalue = (nhits>0 ? m_trt_dEdxTool->dEdx(&track) : 0.0); eProbability.push_back(fvalue); if (!summary.update(Trk::numberOfTRTHitsUsedFordEdx, static_cast<uint8_t>(std::max(nhits,0)) )) { ATH_MSG_WARNING( "Attempt to update numberOfTRTHitsUsedFordEdx but this summary information is " -- GitLab From 913a4375b7537bf9ce4a4f5ded7fc4144b09e862 Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Thu, 9 Jul 2020 12:04:40 +0200 Subject: [PATCH 330/459] Change access to ToT from drift circle --- .../TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx index 5003ba8ee4d..98bd689a590 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx @@ -8,7 +8,6 @@ #include "TRT_ElectronPidTools/TRT_ToT_dEdx.h" #include "TRT_ElectronPidTools/TRT_ToT_Corrections.h" - #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/IToolSvc.h" @@ -777,48 +776,49 @@ TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, double leng } Identifier DCId = driftcircle->identify(); - unsigned int BitPattern = driftcircle->prepRawData()->getWord(); - double ToT = getToT(BitPattern); - if(ToT==0) { - ATH_MSG_WARNING("correctToT_corrRZ(const Trk::TrackStateOnSurface *itr):: ToT="<<ToT<<". We must cut that hit in isGoodHit() !"); + //unsigned int BitPattern = driftcircle->prepRawData()->getWord(); + //double ToT = getToT(BitPattern); + double timeOverThreshold = driftcircle->timeOverThreshold(); + if(timeOverThreshold==0) { + ATH_MSG_WARNING("correctToT_corrRZ(const Trk::TrackStateOnSurface *itr):: ToT="<<timeOverThreshold<<". We must cut that hit in isGoodHit() !"); return 0; } - int HitPart = m_trtId->barrel_ec(DCId); + int hitPart = m_trtId->barrel_ec(DCId); int StrawLayer = m_trtId->straw_layer(DCId); int Layer = m_trtId->layer_or_wheel(DCId); - double HitRtrack = fabs(trkP->parameters()[Trk::locR]); + double hitRtrack = fabs(trkP->parameters()[Trk::locR]); EGasType gasType = gasTypeInStraw(itr); if(gasType==kUnset) { ATH_MSG_ERROR("correctToT_corrRZ(const Trk::TrackStateOnSurface *itr):: Gas type in straw is kUnset! Return ToT = 0"); return 0; } - if(m_divideByL && length>0) ToT = ToT/length; - if(!m_corrected) return ToT; + if(m_divideByL && length>0) timeOverThreshold = timeOverThreshold/length; + if(!m_corrected) return timeOverThreshold; /* else correct */ - double HitZ = driftcircle->globalPosition().z(); + double hitZ = driftcircle->globalPosition().z(); double trackx = driftcircle->globalPosition().x(); double tracky = driftcircle->globalPosition().y(); - double HitRpos = sqrt(trackx*trackx+tracky*tracky); + double hitPosR = sqrt(trackx*trackx+tracky*tracky); /** @todo implement possiblity to set the scaling factor run-by-run from database, should probably be done later on track- level */ double ToTmip = 1; double valToT = 0; if(m_divideByL){ - if (abs(HitPart)==1) // Barrel - valToT = fitFuncBarrel_corrRZL(gasType, HitRtrack,HitZ, Layer, StrawLayer); + if (abs(hitPart)==1) // Barrel + valToT = fitFuncBarrel_corrRZL(gasType, hitRtrack, hitZ, Layer, StrawLayer); else // End-cap - valToT = fitFuncEndcap_corrRZL(gasType, HitRtrack,HitRpos,Layer, HitZ>0?1:(HitZ<0?-1:0)); + valToT = fitFuncEndcap_corrRZL(gasType, hitRtrack, hitPosR, Layer, hitZ>0?1:(hitZ<0?-1:0)); }else{ - if (abs(HitPart)==1) // Barrel - valToT = fitFuncBarrel_corrRZ(gasType, HitRtrack,HitZ, Layer, StrawLayer); + if (abs(hitPart)==1) // Barrel + valToT = fitFuncBarrel_corrRZ(gasType, hitRtrack, hitZ, Layer, StrawLayer); else // End-cap - valToT = fitFuncEndcap_corrRZ(gasType, HitRtrack,HitRpos,Layer, HitZ>0?1:(HitZ<0?-1:0)); + valToT = fitFuncEndcap_corrRZ(gasType, hitRtrack, hitPosR, Layer, hitZ>0?1:(hitZ<0?-1:0)); } if (std::isinf(valToT)) return 0.; - if (valToT!=0) return ToTmip*ToT/valToT; + if (valToT!=0) return ToTmip*timeOverThreshold/valToT; return 0.; } -- GitLab From a13b9e002c6437a731739229858efc42deb210a5 Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Thu, 9 Jul 2020 14:30:18 +0200 Subject: [PATCH 331/459] Update ToT calculation in DriftCircle and remove supefluous helper methods to calculate ToT --- .../InDetRecExample/python/TrackingCommon.py | 3 - .../InDetPrepRawData/TRT_DriftCircle.h | 180 +++++++++++++ .../TRT_ElectronPidTools/TRT_ToT_dEdx.h | 61 ----- .../TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx | 250 +----------------- 4 files changed, 187 insertions(+), 307 deletions(-) diff --git a/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py b/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py index 73355ae4edb..7ef71bae279 100644 --- a/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py +++ b/InnerDetector/InDetExample/InDetRecExample/python/TrackingCommon.py @@ -1055,9 +1055,6 @@ def getInDetTrackSummaryToolSharedHits(name='InDetTrackSummaryToolSharedHits',** from InDetRecExample.InDetJobProperties import InDetFlags kwargs = setDefaults(kwargs, doSharedHits = InDetFlags.doSharedHits(), - TRTdEdx_DivideByL = True, # default is True - TRTdEdx_useHThits = True, # default is True - TRTdEdx_corrected = True, # default is True minTRThitsForTRTdEdx = 1) # default is 1 return getInDetTrackSummaryTool( name, **kwargs) diff --git a/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h b/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h index 7cc82d31343..e27210b5961 100755 --- a/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h +++ b/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h @@ -153,6 +153,186 @@ class TRT_DriftCircle : public Trk::PrepRawData MsgStream& operator << (MsgStream& stream, const TRT_DriftCircle& prd); std::ostream& operator << (std::ostream& stream, const TRT_DriftCircle& prd); + +/////////////////////////////////////////////////////////////////// +// Inline methods: +/////////////////////////////////////////////////////////////////// + +inline unsigned int TRT_DriftCircle::getWord() const +{ + return m_word; +} + +inline int TRT_DriftCircle::driftTimeBin() const +{ + unsigned mask = 0x02000000; + unsigned word_LE = m_word>>6; + word_LE = word_LE<<6; + + mask >>=1; + bool SawZero = false; + int i; + for(i=1;i<18;++i) + { + if ( (word_LE & mask) && SawZero) break; + else if ( !(word_LE & mask) ) SawZero = true; + mask>>=1; + if(i==7 || i==15) mask>>=1; + } + if(i==18) i=0; + return i; +} + +inline int TRT_DriftCircle::trailingEdge() const +{ + unsigned mask = 0x00000001; + unsigned mask_word = 0x0001fff0; // 11111111 1 11110000 + unsigned mask_last_bit =0x10; //10000 + + unsigned word_TE = m_word & mask_word; + + bool SawZero=true; + bool SawZero1=false; + bool SawZero2=false; + bool SawUnit1=false; + int i=0; + int j=0; + int k=0; + + if(word_TE & mask_last_bit) + { + + for (j = 0; j < 11; ++j) + { + mask_last_bit=mask_last_bit<<1; + + if(j==3) mask_last_bit=mask_last_bit<<1; + + if ( !(word_TE & mask_last_bit) ) + { + SawZero2 = true; + break; + } + } + + if(SawZero2 == false) return 19; + + if(SawZero2 == true){ + for (k = j+1; k < 11; ++k) + { + mask_last_bit=mask_last_bit<<1; + + if(k==3) mask_last_bit=mask_last_bit<<1; + + if ( word_TE & mask_last_bit ) + { + SawUnit1 = true; + break; + } + } + } + + if(SawUnit1 == false && SawZero2 == true) return 19; + + } + + //+++++++++++++++++++++++++++++++++++++ + + for (i = 0; i < 24; ++i) + { + + if(!(word_TE & mask) && i>3) + { + SawZero1 = true; + } + if(SawZero1){ + if ( (word_TE & mask) && SawZero ) + break; + else if ( !(word_TE & mask) ) + SawZero = true; + } + mask <<= 1; + if (i == 7 || i == 15) + mask <<= 1; + } + + if ( 24 == i ) + return i; + + return (23 - i); + +} + +inline bool TRT_DriftCircle::highLevel() const +{ + return (m_word & 0x04020100); +} + + +inline bool +TRT_DriftCircle::firstBinHigh() const +{ + return (m_word & 0x02000000); +} + +inline bool +TRT_DriftCircle::lastBinHigh() const +{ + return (m_word & 0x1); +} + +inline double TRT_DriftCircle::timeOverThreshold() const +{ + unsigned long mask = 0x02000000; + unsigned int best_length = 0; + unsigned int current_length = 0; + unsigned int k = 0; + + //Set 4 last bits to zero (to match data and MC bitmasks) + unsigned int mask_last_bits=0xFFFFFF0; // 1 1 11111111 1 11111111 1 11110000 + unsigned int BitPattern0 = m_word & mask_last_bits; + + //shift bitmask to the right until end; + while (true) { + if (BitPattern0 & mask) { + ++current_length; + } + else { + // remember longest island + if (current_length > best_length) + best_length = current_length; + current_length = 0; + } + if (!mask) + break; + assert(k < 24); + mask >>= 1; + if (k == 7 || k == 15) + mask >>= 1; + ++k; + } + assert(k == 24); + return best_length*3.125; +} + +inline double TRT_DriftCircle::rawDriftTime() const +{ + return (driftTimeBin()+0.5)*3.125; +} + +inline bool TRT_DriftCircle::driftTimeValid() const +{ + return m_word & 0x08000000; +} + +inline void TRT_DriftCircle::setDriftTimeValid(bool valid) +{ + unsigned maskfalse = 0xF7FFFFFF; + unsigned masktrue = 0x08000000; + if( valid ) { + m_word |= masktrue; + } else { + m_word &= maskfalse; } } #include "InDetPrepRawData/TRT_DriftCircle.icc" diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h index edd80481273..4c7400defb4 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h @@ -62,7 +62,6 @@ public: ////////////////////////////////////////////////////////////////////////// enum EDataBaseType {kOldDB,kNewDB}; enum EstCalc {kAlgStandard,kAlgReweight,kAlgReweightTrunkOne}; - enum EToTEstimatorType {kToTLargerIsland,kToTHighOccupancy,kToTHighOccupancySmart}; private: SG::ReadDecorHandleKey<xAOD::EventInfo> m_rdhkEvtInfo {this @@ -82,7 +81,6 @@ private: bool m_divideByL; // If true - divide ToT to the L of track in straw. bool m_useHThits; // If true - use HT hit for dEdX estimator calculation - int m_whichToTEstimatorAlgo; // If true - use getToTNewApproach(), else - use getToTlargerIsland() int m_useTrackPartWithGasType; // If kUnset - use any gas for dEdX calculation; int m_toolScenario; // Algorithm type for dEdX estimator calculation; @@ -209,55 +207,6 @@ protected: */ double correctToT_corrRZ(const Trk::TrackStateOnSurface *itr) const; double correctToT_corrRZ(const Trk::TrackStateOnSurface *itr, double length) const; - - /** - * @brief compute ToT time for largest island - * @param bitpattern - * @return ToT - */ - double getToTlargerIsland(unsigned int BitPattern) const; - - /** - * @brief compute ToT time counting only 1 bits - * @param bitpattern - * @return ToT - */ - double getToTonly1bits(unsigned int BitPattern) const; - - /** - * @brief compute ToT time using special validity gate. Also take in account new LE and TE selection - * @param bitpattern - * @return ToT - */ - double getToTHighOccupancy(unsigned int BitPattern) const; - - /** - * @brief LE for getToTHighOccupancy() - * @param bitpattern - * @return ToT - */ - int DriftTimeBin_v2(unsigned int BitPattern) const; - - /** - * @brief TE for getToTHighOccupancy() - * @param bitpattern - * @return ToT - */ - int TrailingEdge_v2(unsigned int BitPattern) const; - - /** - * @brief same as getToTHighOccupancy(), but use TrailingEdge_v3() with search of second TE - * @param bitpattern - * @return ToT - */ - double getToTHighOccupancySmart(unsigned int BitPattern) const; - - /** - * @brief TE for getToTHighOccupancy() with search second TE - * @param bitpattern - * @return ToT - */ - int TrailingEdge_v3(unsigned int BitPattern) const; /** * @brief return gas type for that hit @@ -330,13 +279,6 @@ private: */ double fitFuncBarrel_corrRZL(EGasType gasType, double driftRadius,double zPosition, int Layer, int StrawLayer) const; - /** - * @brief choose estimator algo using m_whichToTEstimatorAlgo and return ToT from bitpattern. - * @param bitpattern - * @return ToT - */ - double getToT(unsigned int BitPattern) const; - /* Calibration functions for occupancy corrections */ double hitOccupancyCorrection(const Trk::TrackStateOnSurface *itr) const; double trackOccupancyCorrection(const Trk::Track* track, bool useHThits) const; @@ -350,9 +292,6 @@ public: bool getStatusRSCorrection() const { return m_corrected; } bool getStatusUseHThits() const { return m_useHThits; } - void setStatusToTEstimatorAlgo(EToTEstimatorType totType) { m_whichToTEstimatorAlgo = totType; } - bool getStatusToTEstimatorAlgo() const { return m_whichToTEstimatorAlgo; } - void setMinRtrack(float minRtrack) { m_trackConfig_minRtrack=minRtrack;} float getMinRtrack() const { return m_trackConfig_minRtrack; } diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx index 98bd689a590..a08082ba39d 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx @@ -61,7 +61,6 @@ void TRT_ToT_dEdx::setDefaultConfiguration() declareProperty("TRT_dEdx_divideByL",m_divideByL=true); declareProperty("TRT_dEdx_useHThits",m_useHThits=true); declareProperty("TRT_dEdx_corrected",m_corrected=true); - declareProperty("TRT_dEdx_whichToTEstimatorAlgo",m_whichToTEstimatorAlgo=kToTLargerIsland); declareProperty("TRT_dEdx_useTrackPartWithGasType",m_useTrackPartWithGasType=kUnset); declareProperty("TRT_dEdx_toolScenario",m_toolScenario=kAlgReweightTrunkOne); declareProperty("TRT_dEdx_trackConfig_maxRtrack",m_trackConfig_maxRtrack=1.85); @@ -80,7 +79,6 @@ void TRT_ToT_dEdx::showDEDXSetup() const ATH_MSG_INFO("m_divideByL ="<<m_divideByL<<""); ATH_MSG_INFO("m_useHThits ="<<m_useHThits<<""); ATH_MSG_INFO("m_corrected ="<<m_corrected<<""); - ATH_MSG_INFO("m_whichToTEstimatorAlgo ="<<m_whichToTEstimatorAlgo<<""); ATH_MSG_INFO("m_useTrackPartWithGasType ="<<m_useTrackPartWithGasType<<""); ATH_MSG_INFO("m_toolScenario ="<<m_toolScenario<<""); ATH_MSG_INFO(" "); @@ -231,10 +229,10 @@ bool TRT_ToT_dEdx::isGoodHit(const Trk::TrackStateOnSurface* trackState, double& if(m_useTrackPartWithGasType != gasTypeInStraw(trackState)) return false; } - unsigned int BitPattern = driftcircle->prepRawData()->getWord(); - double ToT = getToT(BitPattern); + //unsigned int BitPattern = driftcircle->prepRawData()->getWord(); + //double ToT = getToT(BitPattern); - if (ToT==0) return false; // If ToT for this hit equal 0, skip it. + if (driftcircle->prepRawData()->timeOverThreshold()==0.) return false; // If ToT for this hit equal 0, skip it. return true; } @@ -697,24 +695,6 @@ ITRT_ToT_dEdx::EGasType TRT_ToT_dEdx::gasTypeInStraw(const InDet::TRT_DriftCircl return GasType; } -double TRT_ToT_dEdx::getToT(unsigned int BitPattern) const -{ - if (m_whichToTEstimatorAlgo == kToTLargerIsland) { - return getToTlargerIsland(BitPattern); - } - - if (m_whichToTEstimatorAlgo == kToTHighOccupancy) { - return getToTHighOccupancy(BitPattern); - } - - if (m_whichToTEstimatorAlgo == kToTHighOccupancySmart) { - return getToTHighOccupancySmart(BitPattern); - } - - ATH_MSG_FATAL("getToT():: No ToT estimator case for m_whichToTEstimatorAlgo"<<m_whichToTEstimatorAlgo<<""); - throw std::exception(); -} - ///////////////////////////////// // Corrections ///////////////////////////////// @@ -776,9 +756,7 @@ TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, double leng } Identifier DCId = driftcircle->identify(); - //unsigned int BitPattern = driftcircle->prepRawData()->getWord(); - //double ToT = getToT(BitPattern); - double timeOverThreshold = driftcircle->timeOverThreshold(); + double timeOverThreshold = driftcircle->prepRawData()->timeOverThreshold(); if(timeOverThreshold==0) { ATH_MSG_WARNING("correctToT_corrRZ(const Trk::TrackStateOnSurface *itr):: ToT="<<timeOverThreshold<<". We must cut that hit in isGoodHit() !"); return 0; @@ -843,9 +821,8 @@ double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackParameters* trkP,const In return false; } - unsigned int BitPattern = driftcircle->prepRawData()->getWord(); - double ToT = getToT(BitPattern); - if(ToT==0) return false; // If ToT for this hit equal 0, skip it. + double timeOverThreshold = driftcircle->prepRawData()->timeOverThreshold(); + if(timeOverThreshold == 0.) return false; // If ToT for this hit equal 0, skip it. const Amg::Vector3D& gp = driftcircle->globalPosition(); double HitR = sqrt( gp.x() * gp.x() + gp.y() * gp.y() ); @@ -857,7 +834,7 @@ double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackParameters* trkP,const In valToT = fitFuncBarrel_corrRZ(gasType, HitRtrack,HitZ, Layer, StrawLayer); else // End-cap valToT = fitFuncEndcap_corrRZ(gasType, HitRtrack ,HitR,Layer, HitZ>0?1:(HitZ<0?-1:0)); - return ToTmip*ToT/valToT; + return ToTmip*timeOverThreshold/valToT; } double TRT_ToT_dEdx::fitFuncBarrel_corrRZ(EGasType gasType, double driftRadius,double zPosition, int Layer, int StrawLayer) const @@ -1102,219 +1079,6 @@ double TRT_ToT_dEdx::fitFuncBarrel_corrRZL(EGasType gasType, double driftRadius, return result; } -double TRT_ToT_dEdx::getToTlargerIsland(unsigned int BitPattern) const -{ - unsigned long mask = 0x02000000; - unsigned int best_length = 0; - unsigned int current_length = 0; - unsigned int k = 0; - - //Set 4 last bits to zero (to match data and MC bitmasks) - unsigned int mask_last_bits=0xFFFFFF0; // 1 1 11111111 1 11111111 1 11110000 - unsigned int BitPattern0 =BitPattern & mask_last_bits; - - //shift bitmask to the right until end; - while (true) { - if (BitPattern0 & mask) { - ++current_length; - } - else { - // remember longest island - if (current_length > best_length) - best_length = current_length; - current_length = 0; - } - if (!mask) - break; - assert(k < 24); - mask >>= 1; - if (k == 7 || k == 15) - mask >>= 1; - ++k; - } - assert(k == 24); - return best_length*3.125; -} - -double TRT_ToT_dEdx::getToTonly1bits(unsigned int BitPattern) const -{ - /******** Islands ********/ - unsigned mask2 = 0x02000000; - int k2; - int i_island = 0; - std::vector<int> StartIsland; - std::vector<int> EndIsland; - std::vector<int> LengthIsland; - bool StartedIsland = false; - bool EndedIsland = true; - for(k2=0;k2<24;++k2) { - if ( !(BitPattern & mask2) ) { - if (StartedIsland) { - EndIsland.push_back(k2-1); - LengthIsland.push_back(EndIsland[i_island]-StartIsland[i_island]+1); - i_island = i_island+1; - EndedIsland = true; - StartedIsland = false; - } - mask2>>=1; - if (k2==7 || k2==15) mask2>>=1; - } else { - if (EndedIsland) { - StartIsland.push_back(k2); - StartedIsland = true; - EndedIsland = false; - } - if (k2==23) { - EndIsland.push_back(k2); - LengthIsland.push_back(EndIsland[i_island]-StartIsland[i_island]+1); - } - mask2>>=1; - if (k2==7 || k2==15) mask2>>=1; - } - } - - // ToT using only bits set to 1 (remove all 0) - double ToT_only1bits = 0; - for (unsigned int m=0 ; m<StartIsland.size() ; m++) { - ToT_only1bits = ToT_only1bits + LengthIsland[m]*3.125; - } - - return ToT_only1bits; -} - -double TRT_ToT_dEdx::getToTHighOccupancy(unsigned int BitPattern) const -{ - int LE = DriftTimeBin_v2(BitPattern); - int TE = TrailingEdge_v2(BitPattern); - if ( (0 == LE) || (24 == LE) || (24 == TE) || (0 == TE) || (23 == LE) ) - return 0; - - return (double) (TE-LE+1)*3.125; -} - -int TRT_ToT_dEdx::DriftTimeBin_v2(unsigned int BitPattern) const -{ - unsigned mask = 0x02000000; - unsigned word_LE = BitPattern>>6; - word_LE = word_LE<<6; - - mask >>=1; - bool SawZero = false; - int i; - for(i=1;i<18;++i) - { - if ( (word_LE & mask) && SawZero) break; - if ( !(word_LE & mask) ) SawZero = true; - mask>>=1; - if(i==7 || i==15) mask>>=1; - } - if(i==18) i=0; - return i; -} - -int TRT_ToT_dEdx::TrailingEdge_v2(unsigned int BitPattern) const -{ - unsigned mask = 0x00000001; - unsigned mask_word = 0x0001fff0; - unsigned word_TE = BitPattern & mask_word; - //bool SawZero=false; - bool SawZero=true; - int i; - for (i = 0; i < 24; ++i) - { - if ( (word_TE & mask) && SawZero ) - break; - if ( !(word_TE & mask) ) - SawZero = true; - - mask <<= 1; - if (i == 7 || i == 15) - mask <<= 1; - } - - if ( 24 == i ) - return i; - - return (23 - i); -} - -double TRT_ToT_dEdx::getToTHighOccupancySmart(unsigned int BitPattern) const -{ - int LE = DriftTimeBin_v2(BitPattern); - int TE = TrailingEdge_v3(BitPattern); - if ( (0 == LE) || (24 == LE) || (24 == TE) || (0 == TE) || (23 == LE) ) - return 0; - - return (double) (TE-LE+1)*3.125; -} - -int TRT_ToT_dEdx::TrailingEdge_v3(unsigned int BitPattern) const -{ - unsigned mask = 0x00000001; - unsigned mask_word = 0x0001fff0; // 11111111 1 11110000 - unsigned mask_last_bit =0x10; //10000 - - unsigned word_TE = BitPattern & mask_word; - - bool SawZero=true; - bool SawZero1=false; - bool SawZero2=false; - bool SawUnit1=false; - int i=0; - int j=0; - int k=0; - - if (word_TE & mask_last_bit) { - for (j = 0; j < 11; ++j) { - mask_last_bit=mask_last_bit<<1; - if (j==3) mask_last_bit=mask_last_bit<<1; - - if (!(word_TE & mask_last_bit)) { - SawZero2 = true; - break; - } - } - - if(!SawZero2) return 19; - - if(SawZero2){ - for (k = j+1; k < 11; ++k) { - mask_last_bit=mask_last_bit<<1; - if (k==3) mask_last_bit=mask_last_bit<<1; - - if (word_TE & mask_last_bit) { - SawUnit1 = true; - break; - } - } - } - - if (!SawUnit1 && SawZero2) return 19; - } - - //+++++++++++++++++++++++++++++++++++++ - - for (i = 0; i < 24; ++i) { - if (!(word_TE & mask) && i>3) { - SawZero1 = true; - } - - if (SawZero1) { - if ((word_TE & mask) && SawZero) { - break; - } else if (!(word_TE & mask)) { - SawZero = true; - } - } - mask <<= 1; - if (i == 7 || i == 15) mask <<= 1; - } - - if (24 == i) return i; - - return (23 - i); -} - double TRT_ToT_dEdx::hitOccupancyCorrection(const Trk::TrackStateOnSurface *itr) const { SG::ReadCondHandle<TRTDedxcorrection> readHandle{m_ReadKey}; -- GitLab From 6822018248d0e0bb340b68383113d54fc82f354c Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Fri, 10 Jul 2020 11:30:21 +0200 Subject: [PATCH 332/459] Minor change --- .../InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx index a08082ba39d..c028765c717 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx @@ -648,6 +648,7 @@ double TRT_ToT_dEdx::mass(const Trk::TrackStateOnSurface *itr, const double pTrk } /* returns gas type for given straw */ +// TODO: move this functionality to TRT_StrawStatusSummaryTool. ITRT_ToT_dEdx::EGasType TRT_ToT_dEdx::gasTypeInStraw(const Trk::TrackStateOnSurface *itr) const { const Trk::MeasurementBase* trkM = itr->measurementOnTrack(); -- GitLab From 93c900d9c3a7fba6a940ccf22adf2e477445b8e7 Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Fri, 10 Jul 2020 17:19:05 +0200 Subject: [PATCH 333/459] Delegate bit pattern interpretation of DriftCircle to RawData object --- .../InDetRawData/TRT_LoLumRawData.h | 44 +++- .../InDetRawData/src/TRT_LoLumRawData.cxx | 168 +++++-------- .../InDetPrepRawData/CMakeLists.txt | 7 +- .../InDetPrepRawData/TRT_DriftCircle.h | 228 ++++++------------ 4 files changed, 167 insertions(+), 280 deletions(-) diff --git a/InnerDetector/InDetRawEvent/InDetRawData/InDetRawData/TRT_LoLumRawData.h b/InnerDetector/InDetRawEvent/InDetRawData/InDetRawData/TRT_LoLumRawData.h index 66ff7ab38b5..c221b10bec5 100755 --- a/InnerDetector/InDetRawEvent/InDetRawData/InDetRawData/TRT_LoLumRawData.h +++ b/InnerDetector/InDetRawEvent/InDetRawData/InDetRawData/TRT_LoLumRawData.h @@ -36,17 +36,23 @@ public: // Destructor: virtual ~TRT_LoLumRawData(); - // High level threshold: + // High level threshold: virtual bool highLevel() const; virtual bool highLevel(int /* BX */) const; - // Time over threshold in ns for valid digits; zero otherwise: - virtual double timeOverThreshold() const; + // Time over threshold in ns for valid digits; zero otherwise: + virtual double timeOverThreshold() const { + return timeOverThreshold(m_word); + }; - // drift time in bin - virtual int driftTimeBin() const; // Position of first leading edge + // drift time in bin + virtual int driftTimeBin() const { + return driftTimeBin(m_word); + }; - virtual int trailingEdge() const; // Position of last trailing edge + virtual int trailingEdge() const { + return trailingEdge(m_word); + }; virtual bool firstBinHigh() const; // True if first time bin is high virtual bool lastBinHigh() const; // True if last time bin is high @@ -61,6 +67,32 @@ public: // Static methods: /////////////////////////////////////////////////////////////////// +protected: + // width of the drift time bins + static const double m_driftTimeBinWidth; + + // bit masks used in interpretation of bit pattern + static const unsigned int m_maskFourLastBits; + static const unsigned int m_maskThreeLastBits; + +public: + // width of the drift time bins + static double getDriftTimeBinWidth() { + return m_driftTimeBinWidth; + }; + + // Find the relevant island of bits from the bit pattern, defined as the largest island with the earliest leading edge + static bool findLargestIsland(unsigned int word, unsigned int& leadingEdge, unsigned int& trailingEdge); + + // Determine the drift time bin, i.e. the leading edge of the relevant island, from the bit pattern + static unsigned int driftTimeBin(unsigned int word); + + // Determine the trailing edge of the relevant island from the bit pattern + static unsigned int trailingEdge(unsigned int word); + + // Determine the time over threshold, i.e. width of the relevant island, in ns from the bit pattern + static double timeOverThreshold(unsigned int word); + // Create a new TRT_LoLumRawData and return a pointer to it: // static TRT_LoLumRawData *newObject(const Identifier rdoId, const unsigned int word); diff --git a/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx b/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx index a13ba447f2f..bf238f1225a 100755 --- a/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx +++ b/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx @@ -18,6 +18,11 @@ #include "InDetRawData/TRT_LoLumRawData.h" #include "InDetRawData/TRT_RDORawData.h" +// static member variables +const double TRT_LoLumRawData::m_driftTimeBinWidth = 3.125; +const unsigned int TRT_LoLumRawData::m_maskFourLastBits=0xFFFFFF0; // 1 1 11111111 1 11111111 1 11110000 +const unsigned int TRT_LoLumRawData::m_maskThreeLastBits=0xFFFFFF8; // 1 1 11111111 1 11111111 1 11111000 + // default constructor TRT_LoLumRawData::TRT_LoLumRawData() : TRT_RDORawData(Identifier(), 0) //call base-class constructor @@ -34,126 +39,63 @@ TRT_LoLumRawData::TRT_LoLumRawData(const Identifier rdoId, TRT_LoLumRawData::~TRT_LoLumRawData() {} - - // Time over threshold in ns: -double TRT_LoLumRawData::timeOverThreshold() const -{ - double binWidth = 3.125; - - int LE = driftTimeBin( ); - int TE = trailingEdge( ); - - if ( (0 == LE) || (24 == LE) || (24 == TE) || (0 == TE) || (23 == LE) ) - { - return 0; - } - - double time = (double) (TE - LE + 1) * binWidth; - - return time; - +unsigned int TRT_LoLumRawData::driftTimeBin(unsigned int word) { + unsigned int leadingEdge=0, trailingEdge=0; + findLargestIsland(word, leadingEdge, trailingEdge); + return leadingEdge; } -// Position of first low-to-high bit transition -int TRT_LoLumRawData::driftTimeBin() const -{ - unsigned mask = 0x02000000; - unsigned word_LE = m_word>>6; - word_LE = word_LE<<6; - - mask >>=1; - bool SawZero = false; - int i; - for(i=1;i<18;++i) - { - if ( (word_LE & mask) && SawZero) break; - else if ( !(word_LE & mask) ) SawZero = true; - mask>>=1; - if(i==7 || i==15) mask>>=1; - } - if(i==18) i=0; - return i; +unsigned int TRT_LoLumRawData::trailingEdge(unsigned int word) { + unsigned int leadingEdge=0, trailingEdge=0; + findLargestIsland(word, leadingEdge, trailingEdge); + return trailingEdge; } -// Position of first low-to-high bit transition moving from the right -// or 24 if no transition is found -int TRT_LoLumRawData::trailingEdge() const -{ - unsigned mask = 0x00000001; - unsigned mask_word = 0x0001fff0; // 11111111 1 11110000 - unsigned mask_last_bit =0x10; //10000 - - unsigned word_TE = m_word & mask_word; - - bool SawZero=true; - bool SawZero1=false; - bool SawZero2=false; - bool SawUnit1=false; - int i=0; - int j=0; - int k=0; - - if(word_TE & mask_last_bit) - { - - for (j = 0; j < 11; ++j) - { - mask_last_bit=mask_last_bit<<1; - - if(j==3) mask_last_bit=mask_last_bit<<1; - - if ( !(word_TE & mask_last_bit) ) - { - SawZero2 = true; - break; - } - } - - if(SawZero2 == false) return 19; +double TRT_LoLumRawData::timeOverThreshold(unsigned int word) { + unsigned int leadingEdge=0, trailingEdge=0; + if (findLargestIsland(word, leadingEdge, trailingEdge)) { + return (trailingEdge - leadingEdge) * m_driftTimeBinWidth; + }; + return 0.; +} - if(SawZero2 == true){ - for (k = j+1; k < 11; ++k) - { - mask_last_bit=mask_last_bit<<1; +bool TRT_LoLumRawData::findLargestIsland(unsigned int word, unsigned int& leadingEdge, unsigned int& trailingEdge) { + unsigned long mask = 0x02000000; // 0 0 10000000 0 00000000 0 00000000 + unsigned int bestLength = 0; + unsigned int currentLength = 0; - if(k==3) mask_last_bit=mask_last_bit<<1; + // Set 4 last bits to zero (to match data and MC bitmasks) + unsigned int wordLE = word & m_maskFourLastBits; - if ( word_TE & mask_last_bit ) - { - SawUnit1 = true; - break; - } - } - } - - if(SawUnit1 == false && SawZero2 == true) return 19; - - } - - //+++++++++++++++++++++++++++++++++++++ - - for (i = 0; i < 24; ++i) - { - - if(!(word_TE & mask) && i>3) - { - SawZero1 = true; - } - if(SawZero1){ - if ( (word_TE & mask) && SawZero ) - break; - else if ( !(word_TE & mask) ) - SawZero = true; + mask >>=1; // 0 0 01000000 0 00000000 0 00000000 + bool SawZero = false; + unsigned int k = 1; + leadingEdge=0, trailingEdge=0; + + // shift bitmask to the right until end + while (true) { + if (!(wordLE & mask) && !SawZero) SawZero = true; // search for the first 0 to 1 transition + if (SawZero) { + if (wordLE & mask){ + if (currentLength==0) leadingEdge=k; + trailingEdge=k; + ++currentLength; + } else { /* remember longest island */ + if (currentLength >= bestLength && leadingEdge<18 && trailingEdge>7 && currentLength>2) { + bestLength = currentLength; + } + currentLength = 0; + } } - mask <<= 1; - if (i == 7 || i == 15) - mask <<= 1; + mask >>= 1; + if (!(mask & m_maskThreeLastBits)) break; + if (k == 7 || k == 15) mask >>= 1; + assert(k < 20); + ++k; } - - if ( 24 == i ) - return i; - - return (23 - i); - + assert(k == 20); + // check that we have found useful edges + if (leadingEdge>17) leadingEdge=0; + if (trailingEdge<8 || trailingEdge> 19) trailingEdge=0; + return leadingEdge && trailingEdge; } - diff --git a/InnerDetector/InDetRecEvent/InDetPrepRawData/CMakeLists.txt b/InnerDetector/InDetRecEvent/InDetPrepRawData/CMakeLists.txt index a4c2b1badf9..a7fbdb5a02a 100644 --- a/InnerDetector/InDetRecEvent/InDetPrepRawData/CMakeLists.txt +++ b/InnerDetector/InDetRecEvent/InDetPrepRawData/CMakeLists.txt @@ -15,7 +15,8 @@ atlas_depends_on_subdirs( PUBLIC Event/EventPrimitives GaudiKernel InnerDetector/InDetDetDescr/InDetReadoutGeometry - InnerDetector/InDetDetDescr/TRT_ReadoutGeometry + InnerDetector/InDetDetDescr/TRT_ReadoutGeometry + InnerDetector/InDetRawEvent/InDetRawData Tracking/TrkDetDescr/TrkSurfaces Tracking/TrkEvent/TrkEventPrimitives Tracking/TrkEvent/TrkPrepRawData ) @@ -30,12 +31,12 @@ atlas_add_library( InDetPrepRawData PUBLIC_HEADERS InDetPrepRawData INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} AthLinks CxxUtils AthenaKernel GeoPrimitives Identifier EventPrimitives GaudiKernel InDetReadoutGeometry TRT_ReadoutGeometry TrkSurfaces TrkEventPrimitives TrkPrepRawData + LINK_LIBRARIES ${EIGEN_LIBRARIES} AthLinks CxxUtils AthenaKernel GeoPrimitives Identifier EventPrimitives GaudiKernel InDetReadoutGeometry TRT_ReadoutGeometry TrkSurfaces TrkEventPrimitives TrkPrepRawData InDetRawData PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ) atlas_add_dictionary( InDetPrepRawDataDict InDetPrepRawData/InDetPrepRawDataDict.h InDetPrepRawData/selection.xml INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthLinks CxxUtils AthenaKernel GeoPrimitives Identifier EventPrimitives GaudiKernel InDetReadoutGeometry TRT_ReadoutGeometry TrkSurfaces TrkEventPrimitives TrkPrepRawData InDetPrepRawData EventContainers ) + LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthLinks CxxUtils AthenaKernel GeoPrimitives Identifier EventPrimitives GaudiKernel InDetReadoutGeometry TRT_ReadoutGeometry TrkSurfaces TrkEventPrimitives TrkPrepRawData InDetPrepRawData EventContainers InDetRawData ) diff --git a/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h b/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h index e27210b5961..e933a382c74 100755 --- a/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h +++ b/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h @@ -19,6 +19,7 @@ // Base class #include "TrkPrepRawData/PrepRawData.h" #include "TRT_ReadoutGeometry/TRT_BaseElement.h" +#include "InDetRawData/TRT_LoLumRawData.h" class TRT_DriftCircleContainerCnv; class TRT_DriftCircleContainerCnv_p0; @@ -41,13 +42,13 @@ class TRT_DriftCircle : public Trk::PrepRawData TRT_DriftCircle(const TRT_DriftCircle &) =default; TRT_DriftCircle &operator=(const TRT_DriftCircle &)=default; TRT_DriftCircle &operator=(TRT_DriftCircle &&)=default; - /** Constructor with parameters: - compact id of the DriftCircle, - the driftRadius and its error - the RDO dataword with additional validity bit - this class owns the pointers passed (except the TRT_BaseElement), - */ - TRT_DriftCircle( + /** Constructor with parameters: + * compact id of the DriftCircle, + * the driftRadius and its error + * the RDO dataword with additional validity bit + * this class owns the pointers passed (except the TRT_BaseElement), + */ + TRT_DriftCircle( const Identifier &clusId, const Amg::Vector2D& driftRadius, const std::vector<Identifier>& rdoList, @@ -91,56 +92,48 @@ class TRT_DriftCircle : public Trk::PrepRawData virtual bool highLevel() const ; /** returns true if the first bin is high */ - virtual bool firstBinHigh() const; + virtual bool firstBinHigh() const; /** returns true if the last bin is high */ - virtual bool lastBinHigh() const; - + virtual bool lastBinHigh() const; + /** returns Time over threshold in ns */ virtual double timeOverThreshold() const ; - /** returns number of high bins between LE and TE (these included) */ - virtual int numberOfHighsBetweenEdges() const; - /** returns number of low bins between LE and TE (these included) */ - virtual int numberOfLowsBetweenEdges() const; + /** returns number of high bins between LE and TE (these included) */ + virtual int numberOfHighsBetweenEdges() const; + + /** returns number of low bins between LE and TE (these included) */ + virtual int numberOfLowsBetweenEdges() const; /** returns the raw driftTime */ virtual double rawDriftTime() const; - + /** returns the raw driftTime, - * the passed boolean indicates if the drift time is valid or not. + * the passed boolean indicates if the drift time is valid or not. * depreciated for 13.0.20 and later */ virtual double driftTime(bool& valid) const; - /** return true if the corrected drift time is OK */ - virtual bool driftTimeValid() const; - - /** return the detector element corresponding to this PRD */ - virtual const InDetDD::TRT_BaseElement* detectorElement() const override final; - - /** Interface method checking the type*/ - virtual bool type(Trk::PrepRawDataType::Type type) const override final; - + /** return true if the corrected drift time is OK */ + virtual bool driftTimeValid() const; + + /** return the detector element corresponding to this PRD */ + virtual const InDetDD::TRT_BaseElement* detectorElement() const; // modifiers - /** set driftTimeValid flag */ + /** set driftTimeValid flag */ virtual void setDriftTimeValid(bool valid); //analysers - /** returns true if the hit is caused by noise with a high - probability. This is a temporary feature. To be replaced - by a tool that can be configured for different gas - speeds etc */ - virtual bool isNoise() const; //debug printers /** dump information about the PRD object. */ - virtual MsgStream& dump( MsgStream& stream) const override; + virtual MsgStream& dump( MsgStream& stream) const; /** dump information about the PRD object. */ - virtual std::ostream& dump( std::ostream& stream) const override; + virtual std::ostream& dump( std::ostream& stream) const; private: @@ -160,107 +153,17 @@ class TRT_DriftCircle : public Trk::PrepRawData inline unsigned int TRT_DriftCircle::getWord() const { - return m_word; + return m_word; } inline int TRT_DriftCircle::driftTimeBin() const { - unsigned mask = 0x02000000; - unsigned word_LE = m_word>>6; - word_LE = word_LE<<6; - - mask >>=1; - bool SawZero = false; - int i; - for(i=1;i<18;++i) - { - if ( (word_LE & mask) && SawZero) break; - else if ( !(word_LE & mask) ) SawZero = true; - mask>>=1; - if(i==7 || i==15) mask>>=1; - } - if(i==18) i=0; - return i; + return TRT_LoLumRawData::driftTimeBin(m_word); } inline int TRT_DriftCircle::trailingEdge() const { - unsigned mask = 0x00000001; - unsigned mask_word = 0x0001fff0; // 11111111 1 11110000 - unsigned mask_last_bit =0x10; //10000 - - unsigned word_TE = m_word & mask_word; - - bool SawZero=true; - bool SawZero1=false; - bool SawZero2=false; - bool SawUnit1=false; - int i=0; - int j=0; - int k=0; - - if(word_TE & mask_last_bit) - { - - for (j = 0; j < 11; ++j) - { - mask_last_bit=mask_last_bit<<1; - - if(j==3) mask_last_bit=mask_last_bit<<1; - - if ( !(word_TE & mask_last_bit) ) - { - SawZero2 = true; - break; - } - } - - if(SawZero2 == false) return 19; - - if(SawZero2 == true){ - for (k = j+1; k < 11; ++k) - { - mask_last_bit=mask_last_bit<<1; - - if(k==3) mask_last_bit=mask_last_bit<<1; - - if ( word_TE & mask_last_bit ) - { - SawUnit1 = true; - break; - } - } - } - - if(SawUnit1 == false && SawZero2 == true) return 19; - - } - - //+++++++++++++++++++++++++++++++++++++ - - for (i = 0; i < 24; ++i) - { - - if(!(word_TE & mask) && i>3) - { - SawZero1 = true; - } - if(SawZero1){ - if ( (word_TE & mask) && SawZero ) - break; - else if ( !(word_TE & mask) ) - SawZero = true; - } - mask <<= 1; - if (i == 7 || i == 15) - mask <<= 1; - } - - if ( 24 == i ) - return i; - - return (23 - i); - + return TRT_LoLumRawData::trailingEdge(m_word); } inline bool TRT_DriftCircle::highLevel() const @@ -283,41 +186,12 @@ TRT_DriftCircle::lastBinHigh() const inline double TRT_DriftCircle::timeOverThreshold() const { - unsigned long mask = 0x02000000; - unsigned int best_length = 0; - unsigned int current_length = 0; - unsigned int k = 0; - - //Set 4 last bits to zero (to match data and MC bitmasks) - unsigned int mask_last_bits=0xFFFFFF0; // 1 1 11111111 1 11111111 1 11110000 - unsigned int BitPattern0 = m_word & mask_last_bits; - - //shift bitmask to the right until end; - while (true) { - if (BitPattern0 & mask) { - ++current_length; - } - else { - // remember longest island - if (current_length > best_length) - best_length = current_length; - current_length = 0; - } - if (!mask) - break; - assert(k < 24); - mask >>= 1; - if (k == 7 || k == 15) - mask >>= 1; - ++k; - } - assert(k == 24); - return best_length*3.125; + return TRT_LoLumRawData::timeOverThreshold(m_word); } inline double TRT_DriftCircle::rawDriftTime() const { - return (driftTimeBin()+0.5)*3.125; + return TRT_LoLumRawData::driftTimeBin(m_word) * TRT_LoLumRawData::getDriftTimeBinWidth(); } inline bool TRT_DriftCircle::driftTimeValid() const @@ -335,6 +209,44 @@ inline void TRT_DriftCircle::setDriftTimeValid(bool valid) m_word &= maskfalse; } } -#include "InDetPrepRawData/TRT_DriftCircle.icc" +inline int TRT_DriftCircle::numberOfHighsBetweenEdges() const +{ + // should return always 0 with the largest island algorithm + int LE = driftTimeBin( ); + int TE = trailingEdge( ); + unsigned mask = 0x02000000; + int nhigh=0; + int i; + for (i = 0; i < 24; ++i) + { + if ( (m_word & mask) && i>=LE && i<=TE ) nhigh++; + mask >>= 1; + if (i == 7 || i == 15) mask >>= 1; + } + return nhigh; +} + +inline int TRT_DriftCircle::numberOfLowsBetweenEdges() const +{ + // should return always 0 with the largest island algorithm + int LE = driftTimeBin( ); + int TE = trailingEdge( ); + return (TE-LE+1-numberOfHighsBetweenEdges()); +} + + +inline bool TRT_DriftCircle::isNoise() const +{ + if( numberOfHighsBetweenEdges()<3 ) return true; + if( timeOverThreshold()<7.) return true; + return false; +} + +inline const InDetDD::TRT_BaseElement* TRT_DriftCircle::detectorElement() const +{ + return m_detEl; +} + +} #endif // TRKPREPRAWDATA_TRT_DRIFTCIRCLE_H -- GitLab From bca92a1e9ff7ac0c46641ac07746682894c1af4b Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Fri, 10 Jul 2020 17:35:55 +0200 Subject: [PATCH 334/459] Move TRT_ToT_dEdx header back to src --- .../TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx | 2 +- .../{TRT_ElectronPidTools => src}/TRT_ToT_dEdx.h | 7 ++----- .../src/components/TRT_ElectronPidTools_entries.cxx | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) rename InnerDetector/InDetRecTools/TRT_ElectronPidTools/{TRT_ElectronPidTools => src}/TRT_ToT_dEdx.h (97%) diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx index c028765c717..050391b85fd 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx @@ -5,7 +5,7 @@ // // !!!!!! Problem with calibration constants for mean ToT on the tracks (norm_ ...) !!!!!!! // -#include "TRT_ElectronPidTools/TRT_ToT_dEdx.h" +#include "TRT_ToT_dEdx.h" #include "TRT_ElectronPidTools/TRT_ToT_Corrections.h" #include "GaudiKernel/MsgStream.h" diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h similarity index 97% rename from InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h rename to InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h index 4c7400defb4..e2e4019ab10 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/TRT_ToT_dEdx.h +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h @@ -12,7 +12,7 @@ #include "TrkEventPrimitives/ParticleHypothesis.h" #include "StoreGate/ReadDecorHandleKey.h" -#include "ITRT_ToT_dEdx.h" +#include "TRT_ElectronPidTools/ITRT_ToT_dEdx.h" #include "TrkTrack/Track.h" @@ -26,7 +26,7 @@ #include "TRT_ReadoutGeometry/TRT_DetElementContainer.h" #include "TrkToolInterfaces/IPRD_AssociationTool.h" -#include "ITRT_LocalOccupancy.h" +#include "TRT_ElectronPidTools/ITRT_LocalOccupancy.h" /* Tool to calculate dE/dx variable for PID @@ -100,9 +100,6 @@ private: public: /** AlgTool like constructor */ TRT_ToT_dEdx(const std::string&,const std::string&,const IInterface*); - TRT_ToT_dEdx(const std::string& t, const std::string& n, const IInterface* p, - bool useHThits, bool corrected, bool useHighOccToTAlgo, - float minRtrack, float maxRtrack, bool useZeroRHitCut); /** Virtual destructor*/ virtual ~TRT_ToT_dEdx(); diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/components/TRT_ElectronPidTools_entries.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/components/TRT_ElectronPidTools_entries.cxx index 8e958e5ff8c..b72041c7bb8 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/components/TRT_ElectronPidTools_entries.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/components/TRT_ElectronPidTools_entries.cxx @@ -1,7 +1,7 @@ #include "TRT_ElectronPidTools/BaseTRTPIDCalculator.h" #include "TRT_ElectronPidTools/TRT_ElectronPidToolRun2.h" #include "TRT_ElectronPidTools/TRT_LocalOccupancy.h" -#include "TRT_ElectronPidTools/TRT_ToT_dEdx.h" +#include "../TRT_ToT_dEdx.h" DECLARE_COMPONENT( InDet::TRT_ElectronPidToolRun2 ) DECLARE_COMPONENT( InDet::TRT_LocalOccupancy ) -- GitLab From 17cb94dd9a0860417c1983657d5ad6e8cc17f9c7 Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Fri, 10 Jul 2020 18:01:12 +0200 Subject: [PATCH 335/459] Fix missing shift in raw drift time --- .../InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h b/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h index e933a382c74..47313650956 100755 --- a/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h +++ b/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h @@ -191,7 +191,7 @@ inline double TRT_DriftCircle::timeOverThreshold() const inline double TRT_DriftCircle::rawDriftTime() const { - return TRT_LoLumRawData::driftTimeBin(m_word) * TRT_LoLumRawData::getDriftTimeBinWidth(); + return (TRT_LoLumRawData::driftTimeBin(m_word)+0.5) * TRT_LoLumRawData::getDriftTimeBinWidth(); } inline bool TRT_DriftCircle::driftTimeValid() const -- GitLab From cdba799dde043ade82961f5405f082700108d3a2 Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Fri, 10 Jul 2020 18:09:18 +0200 Subject: [PATCH 336/459] Correct length of ToT --- .../InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx b/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx index bf238f1225a..7ca8e024148 100755 --- a/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx +++ b/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx @@ -54,7 +54,7 @@ unsigned int TRT_LoLumRawData::trailingEdge(unsigned int word) { double TRT_LoLumRawData::timeOverThreshold(unsigned int word) { unsigned int leadingEdge=0, trailingEdge=0; if (findLargestIsland(word, leadingEdge, trailingEdge)) { - return (trailingEdge - leadingEdge) * m_driftTimeBinWidth; + return (trailingEdge - leadingEdge + 1) * m_driftTimeBinWidth; }; return 0.; } -- GitLab From 6588d9a15a65ecfb0fd20d7915cf1b95db8af231 Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Fri, 10 Jul 2020 23:51:09 +0200 Subject: [PATCH 337/459] Fix dEdx tool clients --- .../InDetLowBetaFinder/src/LowBetaAlg.cxx | 2 +- .../TrackStateOnSurfaceDecorator.h | 4 ++-- .../src/TrackStateOnSurfaceDecorator.cxx | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/LowBetaAlg.cxx b/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/LowBetaAlg.cxx index bf4f0d3c9a2..72b066fcb0c 100644 --- a/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/LowBetaAlg.cxx +++ b/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/LowBetaAlg.cxx @@ -639,7 +639,7 @@ namespace InDet if (tegap>0.&& hont>1.0) tegap = tegap/(hont-1.0); // average TE gap for a track - if ( !m_TRTdEdxTool.name().empty() ) dEdx = m_TRTdEdxTool->dEdx((&track), !m_mcswitch, true, true); + if ( !m_TRTdEdxTool.name().empty() ) dEdx = m_TRTdEdxTool->dEdx((&track)); else dEdx = -999.0; } else{ diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackStateOnSurfaceDecorator.h b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackStateOnSurfaceDecorator.h index 1257ec2e83a..3d10176c9ea 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackStateOnSurfaceDecorator.h +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackStateOnSurfaceDecorator.h @@ -132,8 +132,8 @@ namespace DerivationFramework { std::vector<SG::WriteDecorHandleKey<xAOD::EventInfo> > m_trtPhaseDecorKey; enum ETRTFloatDecor {kTRTdEdxDecor, kTRTusedHitsDecor, - kTRTdEdx_noHT_divByLDecor, - kTRTusedHits_noHT_divByLDecor, + /*kTRTdEdx_noHT_divByLDecor,*/ + /*kTRTusedHits_noHT_divByLDecor,*/ kNTRTFloatDecor}; std::vector<SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> > m_trackTRTFloatDecorKeys; enum EPixFloatDecorKeys {kTrkIBLXDecor, kTrkIBLYDecor, kTrkIBLZDecor, diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/src/TrackStateOnSurfaceDecorator.cxx b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/src/TrackStateOnSurfaceDecorator.cxx index cbf597d5bd9..6860d241057 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/src/TrackStateOnSurfaceDecorator.cxx +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/src/TrackStateOnSurfaceDecorator.cxx @@ -161,8 +161,8 @@ namespace DerivationFramework { names.resize(kNTRTFloatDecor); names[kTRTdEdxDecor]="ToT_dEdx"; names[kTRTusedHitsDecor]="ToT_usedHits"; - names[kTRTdEdx_noHT_divByLDecor]="ToT_dEdx_noHT_divByL"; - names[kTRTusedHits_noHT_divByLDecor]="ToT_usedHits_noHT_divByL"; + //names[kTRTdEdx_noHT_divByLDecor]="ToT_dEdx_noHT_divByL"; + //names[kTRTusedHits_noHT_divByLDecor]="ToT_usedHits_noHT_divByL"; createDecoratorKeys(*this,m_containerName, m_sgName, names, m_trackTRTFloatDecorKeys); } ATH_CHECK( m_trtPhaseKey.initialize() ); @@ -340,10 +340,10 @@ namespace DerivationFramework { if ( m_storeTRT && m_TRTdEdxTool.isEnabled() ) { // for dEdx studies - trackTRTFloatDecorators[kTRTdEdxDecor] (*track) = m_TRTdEdxTool->dEdx( trkTrack, true, true, true); - trackTRTFloatDecorators[kTRTusedHitsDecor] (*track) = m_TRTdEdxTool->usedHits( trkTrack, true, true); - trackTRTFloatDecorators[kTRTdEdx_noHT_divByLDecor] (*track) = m_TRTdEdxTool->dEdx( trkTrack, true, false, true); - trackTRTFloatDecorators[kTRTusedHits_noHT_divByLDecor] (*track) = m_TRTdEdxTool->usedHits( trkTrack, true, false); + trackTRTFloatDecorators[kTRTdEdxDecor] (*track) = m_TRTdEdxTool->dEdx(trkTrack); + trackTRTFloatDecorators[kTRTusedHitsDecor] (*track) = m_TRTdEdxTool->usedHits(trkTrack); + //trackTRTFloatDecorators[kTRTdEdx_noHT_divByLDecor] (*track) = m_TRTdEdxTool->dEdx(trkTrack); + //trackTRTFloatDecorators[kTRTusedHits_noHT_divByLDecor] (*track) = m_TRTdEdxTool->usedHits(trkTrack); } // Track extrapolation -- GitLab From 62af99dfb1df631fc1ae3a28017ba26e35e9caf8 Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Tue, 14 Jul 2020 00:50:06 +0200 Subject: [PATCH 338/459] Put back switch to ignore HT hits for dEdx tool clients --- .../InDetRawData/TRT_LoLumRawData.h | 2 +- .../InDetRawData/src/TRT_LoLumRawData.cxx | 2 +- .../InDetLowBetaFinder/src/LowBetaAlg.cxx | 2 +- .../TRT_ElectronPidTools/ITRT_ToT_dEdx.h | 39 +------ .../src/TRT_ElectronPidToolRun2.cxx | 4 +- .../TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx | 104 +++++------------- .../TRT_ElectronPidTools/src/TRT_ToT_dEdx.h | 39 ++++--- .../TrackStateOnSurfaceDecorator.h | 4 +- .../src/TrackStateOnSurfaceDecorator.cxx | 8 +- 9 files changed, 63 insertions(+), 141 deletions(-) diff --git a/InnerDetector/InDetRawEvent/InDetRawData/InDetRawData/TRT_LoLumRawData.h b/InnerDetector/InDetRawEvent/InDetRawData/InDetRawData/TRT_LoLumRawData.h index c221b10bec5..6fbf43e6310 100755 --- a/InnerDetector/InDetRawEvent/InDetRawData/InDetRawData/TRT_LoLumRawData.h +++ b/InnerDetector/InDetRawEvent/InDetRawData/InDetRawData/TRT_LoLumRawData.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// diff --git a/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx b/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx index 7ca8e024148..23cb9f08bba 100755 --- a/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx +++ b/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ diff --git a/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/LowBetaAlg.cxx b/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/LowBetaAlg.cxx index 72b066fcb0c..dbd320ee0fc 100644 --- a/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/LowBetaAlg.cxx +++ b/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/LowBetaAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ //////////////////////////////////////////////////////////////////// diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/ITRT_ToT_dEdx.h b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/ITRT_ToT_dEdx.h index 7c8530c952b..403eabcb4fd 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/ITRT_ToT_dEdx.h +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/TRT_ElectronPidTools/ITRT_ToT_dEdx.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ @@ -20,9 +20,6 @@ class ITRT_ToT_dEdx : virtual public IAlgTool { public: - - enum EGasType {kXenon,kArgon,kKrypton,kUnset}; - enum EOccupancyCorrection{kRSOnly, kHitBased, kTrackBased, kGlobal}; /** Virtual destructor */ virtual ~ITRT_ToT_dEdx(){}; @@ -33,27 +30,18 @@ public: /** * @brief function to calculate sum ToT normalised to number of used hits * @param track pointer to track - * @param correctionType choice of occupancy correction + * @param useHitsHT decide if HT hits should be used in the estimate * @return dEdx value */ - virtual double dEdx(const Trk::Track* track, EOccupancyCorrection correctionType=EOccupancyCorrection::kTrackBased) const = 0; + virtual double dEdx(const Trk::Track* track, bool useHitsHT=true) const = 0; /** * @brief function to calculate number of used hits * @param track pointer + * @param useHitsHT decide if HT hits should be used in the estimate * @return nHits */ - virtual double usedHits(const Trk::Track* track) const = 0; - - /** - * @brief function to calculate likelihood from prediction and resolution - * @param observed dEdx - * @param track parameter - * @param particle hypothesis - * @param number of used hits - * @return brobability value between 0 and 1 - */ - virtual double getProb(const Trk::TrackStateOnSurface *itr, const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, int nUsedHits) const = 0; + virtual double usedHits(const Trk::Track* track, bool useHitsHT=true) const = 0; /** * @brief function to calculate likelihood ratio test @@ -65,23 +53,6 @@ public: * @return test value between 0 and 1 */ virtual double getTest(const double dEdx_obs, const double pTrk, Trk::ParticleHypothesis hypothesis, Trk::ParticleHypothesis antihypothesis, int nUsedHits) const = 0; - - - /** - * @brief function to calculate expectation value for dEdx using BB fit - * @param track momentum - * @param hypothesis - * @return dEdx_pred - */ - virtual double predictdEdx(const Trk::TrackStateOnSurface *itr, const double pTrk, Trk::ParticleHypothesis hypothesis) const = 0; - - /** - * @brief function to extract most likely mass in bg [0,3] - * @param track momentum - * @param measured dEdx - * @return mass - */ - virtual double mass(const Trk::TrackStateOnSurface *itr, const double pTrk, double dEdx ) const = 0; }; #endif // ITRT_TOT_DEDX_H diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ElectronPidToolRun2.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ElectronPidToolRun2.cxx index c4b8c3c8114..85e53399326 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ElectronPidToolRun2.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ElectronPidToolRun2.cxx @@ -401,8 +401,8 @@ InDet::TRT_ElectronPidToolRun2::electronProbability(const Trk::Track& track) con ATH_MSG_DEBUG (""); // Jared - ToT Implementation - dEdx = m_TRTdEdxTool->dEdx(&track); // Divide by L, exclude HT hits - double usedHits = m_TRTdEdxTool->usedHits(&track); + dEdx = m_TRTdEdxTool->dEdx(&track, false); // Divide by L, exclude HT hits + double usedHits = m_TRTdEdxTool->usedHits(&track, false); prob_El_ToT = m_TRTdEdxTool->getTest(dEdx, pTrk, Trk::electron, Trk::pion, usedHits); // Limit the probability values the upper and lower limits that are given/trusted for each part: diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx index 050391b85fd..a525ddfd9cc 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx @@ -59,8 +59,8 @@ TRT_ToT_dEdx::TRT_ToT_dEdx(const std::string& t, const std::string& n, const IIn void TRT_ToT_dEdx::setDefaultConfiguration() { declareProperty("TRT_dEdx_divideByL",m_divideByL=true); - declareProperty("TRT_dEdx_useHThits",m_useHThits=true); declareProperty("TRT_dEdx_corrected",m_corrected=true); + declareProperty("TRT_dEdx_correctionType",m_correctionType=kTrackBased); declareProperty("TRT_dEdx_useTrackPartWithGasType",m_useTrackPartWithGasType=kUnset); declareProperty("TRT_dEdx_toolScenario",m_toolScenario=kAlgReweightTrunkOne); declareProperty("TRT_dEdx_trackConfig_maxRtrack",m_trackConfig_maxRtrack=1.85); @@ -77,8 +77,8 @@ void TRT_ToT_dEdx::showDEDXSetup() const ATH_MSG_INFO("/// TRT_ToT_Tool setup configuration ///"); ATH_MSG_INFO(" "); ATH_MSG_INFO("m_divideByL ="<<m_divideByL<<""); - ATH_MSG_INFO("m_useHThits ="<<m_useHThits<<""); ATH_MSG_INFO("m_corrected ="<<m_corrected<<""); + ATH_MSG_INFO("m_correctionType ="<<m_correctionType<<""); ATH_MSG_INFO("m_useTrackPartWithGasType ="<<m_useTrackPartWithGasType<<""); ATH_MSG_INFO("m_toolScenario ="<<m_toolScenario<<""); ATH_MSG_INFO(" "); @@ -159,7 +159,7 @@ StatusCode TRT_ToT_dEdx::finalize() return StatusCode::SUCCESS; } -bool TRT_ToT_dEdx::isGoodHit(const Trk::TrackStateOnSurface* trackState, double& length) const +bool TRT_ToT_dEdx::isGoodHit(const Trk::TrackStateOnSurface* trackState, bool useHitsHT, double& length) const { const Trk::MeasurementBase* trkM = trackState->measurementOnTrack(); if (!trkM) { @@ -220,7 +220,7 @@ bool TRT_ToT_dEdx::isGoodHit(const Trk::TrackStateOnSurface* trackState, double& if (m_divideByL and length < 1.7) return false; // Length in the straw - if (!m_useHThits) { + if (!useHitsHT) { int TrtHl = driftcircle->highLevel(); if (TrtHl==1) return false; } @@ -237,16 +237,8 @@ bool TRT_ToT_dEdx::isGoodHit(const Trk::TrackStateOnSurface* trackState, double& return true; } -double TRT_ToT_dEdx::dEdx(const Trk::Track* track, EOccupancyCorrection correctionType) const -{ - //////////////////////////////////////////////////// - // Different cases for correctionType // - // kRSOnly: only r-S calibration // - // kHitBased: Hit-based occupancy calibration // - // kTrackBased: Track-based occupancy calibration // - // kGlobal: Global occupancy calibration // - //////////////////////////////////////////////////// - +double TRT_ToT_dEdx::dEdx(const Trk::Track* track, bool useHitsHT) const +{ ATH_MSG_DEBUG("dEdx()"); double nVtx=-1.; @@ -287,9 +279,9 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, EOccupancyCorrection correcti for ( ; itr!=itre ; ++itr) { double length = 0; - if ( isGoodHit((*itr), length)) { + if ( isGoodHit((*itr), useHitsHT, length)) { double ToT_correct = correctToT_corrRZ(*itr, length); - if (correctionType == ITRT_ToT_dEdx::EOccupancyCorrection::kHitBased){ + if (m_correctionType == kHitBased){ correctionFactor = hitOccupancyCorrection(*itr); ToT_correct*=correctionFactor; } @@ -308,8 +300,8 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, EOccupancyCorrection correcti if (nhits<1) return 0.0; ToTsum = std::accumulate(vecToT.begin(), vecToT.end(), 0); - if (correctionType == ITRT_ToT_dEdx::EOccupancyCorrection::kTrackBased) { - correctionFactor=trackOccupancyCorrection(track, m_useHThits); + if (m_correctionType == kTrackBased) { + correctionFactor=trackOccupancyCorrection(track, useHitsHT); } else { correctionFactor=correctNormalization(nVtx); } @@ -328,10 +320,10 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, EOccupancyCorrection correcti for ( ; itr!=itre ; ++itr) { double length=0; - if (isGoodHit((*itr), length)) { + if (isGoodHit((*itr), useHitsHT, length)) { gasType=gasTypeInStraw(*itr); double ToT_correct = correctToT_corrRZ(*itr, length); - if (correctionType == ITRT_ToT_dEdx::EOccupancyCorrection::kHitBased) { + if (m_correctionType == kHitBased) { correctionFactor = hitOccupancyCorrection(*itr); } ToT_correct*=correctionFactor; @@ -407,8 +399,8 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, EOccupancyCorrection correcti ToTsumKr = (nhitsKr>0) ? ToTsumKr/nhitsKr : 0; double ToTsum = ToTsumXe*nhitsXe + ToTsumAr*nhitsAr + ToTsumKr*nhitsKr; - if (correctionType == ITRT_ToT_dEdx::EOccupancyCorrection::kTrackBased) { - correctionFactor = trackOccupancyCorrection(track, m_useHThits); + if (m_correctionType == kTrackBased) { + correctionFactor = trackOccupancyCorrection(track, useHitsHT); } else { correctionFactor = correctNormalization(nVtx); } @@ -421,7 +413,7 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, EOccupancyCorrection correcti return 0.; } -double TRT_ToT_dEdx::usedHits(const Trk::Track* track) const +double TRT_ToT_dEdx::usedHits(const Trk::Track* track, bool useHitsHT) const { ATH_MSG_DEBUG("usedHits()"); EGasType gasType = kUnset; @@ -442,7 +434,7 @@ double TRT_ToT_dEdx::usedHits(const Trk::Track* track) const for ( ; itr!=itre ; ++itr) { double length=0; - if (isGoodHit((*itr), length)) { + if (isGoodHit((*itr), useHitsHT, length)) { nhits++; } } @@ -460,7 +452,7 @@ double TRT_ToT_dEdx::usedHits(const Trk::Track* track) const for ( ; itr!=itre ; ++itr) { double length=0; - if ( isGoodHit((*itr), length)) { + if ( isGoodHit((*itr), useHitsHT, length)) { gasType=gasTypeInStraw(*itr); if (gasType==kXenon) { nhitsXe++; @@ -649,7 +641,7 @@ double TRT_ToT_dEdx::mass(const Trk::TrackStateOnSurface *itr, const double pTrk /* returns gas type for given straw */ // TODO: move this functionality to TRT_StrawStatusSummaryTool. -ITRT_ToT_dEdx::EGasType TRT_ToT_dEdx::gasTypeInStraw(const Trk::TrackStateOnSurface *itr) const +TRT_ToT_dEdx::EGasType TRT_ToT_dEdx::gasTypeInStraw(const Trk::TrackStateOnSurface *itr) const { const Trk::MeasurementBase* trkM = itr->measurementOnTrack(); if (!trkM) { @@ -674,7 +666,7 @@ ITRT_ToT_dEdx::EGasType TRT_ToT_dEdx::gasTypeInStraw(const Trk::TrackStateOnSurf return gasTypeInStraw(driftcircle); } -ITRT_ToT_dEdx::EGasType TRT_ToT_dEdx::gasTypeInStraw(const InDet::TRT_DriftCircleOnTrack *driftcircle) const +TRT_ToT_dEdx::EGasType TRT_ToT_dEdx::gasTypeInStraw(const InDet::TRT_DriftCircleOnTrack *driftcircle) const { Identifier DCid = driftcircle->identify(); @@ -723,17 +715,7 @@ double TRT_ToT_dEdx::correctNormalization(double nVtx) const return (slope*dEdxCorrection->normNzero[gasType]+offset)/(slope*nVtx+offset+shift); } -double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface *itr) const -{ - double length=0; - if(isGoodHit(itr, length)) { - return correctToT_corrRZ(itr, length); - } - return 0; -} - -double -TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, double length) const +double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, double length) const { const Trk::MeasurementBase* trkM = itr->measurementOnTrack(); const Trk::TrackParameters* trkP = itr->trackParameters(); @@ -801,43 +783,6 @@ TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackStateOnSurface* itr, double leng return 0.; } -double TRT_ToT_dEdx::correctToT_corrRZ(const Trk::TrackParameters* trkP,const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart,int Layer,int StrawLayer) const -{ - if (trkP==nullptr) return false; - if (!driftcircle) return false; - if (driftcircle->prepRawData()==nullptr) return 0; - double HitRtrack = fabs(trkP->parameters()[Trk::locR]); - double Trt_RHit = fabs(driftcircle->localParameters()[Trk::driftRadius]); - if (m_useZeroRHitCut && Trt_RHit==0) return false; // tube hit - if ((HitRtrack >= m_trackConfig_maxRtrack) || (HitRtrack <= m_trackConfig_minRtrack)) return false; // drift radius close to wire or wall - if (!m_useHThits) { - int TrtHl = driftcircle->highLevel(); - if (TrtHl==1) return false; - } - - EGasType gasType = gasTypeInStraw(driftcircle); - if(m_useTrackPartWithGasType!=kUnset) // don't preselect hits - { - if(m_useTrackPartWithGasType!=gasType) - return false; - } - - double timeOverThreshold = driftcircle->prepRawData()->timeOverThreshold(); - if(timeOverThreshold == 0.) return false; // If ToT for this hit equal 0, skip it. - - const Amg::Vector3D& gp = driftcircle->globalPosition(); - double HitR = sqrt( gp.x() * gp.x() + gp.y() * gp.y() ); - double HitZ = gp.z(); - double ToTmip = 1; - double valToT = 1; - - if (abs(HitPart)==1) // Barrel - valToT = fitFuncBarrel_corrRZ(gasType, HitRtrack,HitZ, Layer, StrawLayer); - else // End-cap - valToT = fitFuncEndcap_corrRZ(gasType, HitRtrack ,HitR,Layer, HitZ>0?1:(HitZ<0?-1:0)); - return ToTmip*timeOverThreshold/valToT; -} - double TRT_ToT_dEdx::fitFuncBarrel_corrRZ(EGasType gasType, double driftRadius,double zPosition, int Layer, int StrawLayer) const { if (Layer == 0 && StrawLayer < 9) { @@ -1164,7 +1109,7 @@ double TRT_ToT_dEdx::hitOccupancyCorrection(const Trk::TrackStateOnSurface *itr) return ToTmip*valToT; } -double TRT_ToT_dEdx::trackOccupancyCorrection(const Trk::Track* track, bool useHThits) const +double TRT_ToT_dEdx::trackOccupancyCorrection(const Trk::Track* track, bool useHitsHT) const { SG::ReadCondHandle<TRTDedxcorrection> readHandle{m_ReadKey}; const TRTDedxcorrection* dEdxCorrection{*readHandle}; @@ -1182,8 +1127,11 @@ double TRT_ToT_dEdx::trackOccupancyCorrection(const Trk::Track* track, bool use else if (index > 99) index = 99; // upper bound corresponding to eta = +2 //Function of the from f(x)=a+b*x+c*x^2 was used as a fitting function, separately for tracks with and without excluding HT hits - if (!useHThits) corr=dEdxCorrection->trackOccPar0[index]+dEdxCorrection->trackOccPar1[index]*trackOcc+dEdxCorrection->trackOccPar2[index]*pow(trackOcc,2); - else corr=dEdxCorrection->trackOccPar0NoHt[index]+dEdxCorrection->trackOccPar1NoHt[index]*trackOcc+dEdxCorrection->trackOccPar2NoHt[index]*pow(trackOcc,2); + if (useHitsHT) { + corr=dEdxCorrection->trackOccPar0[index]+dEdxCorrection->trackOccPar1[index]*trackOcc+dEdxCorrection->trackOccPar2[index]*pow(trackOcc,2); + } else { + corr=dEdxCorrection->trackOccPar0NoHt[index]+dEdxCorrection->trackOccPar1NoHt[index]*trackOcc+dEdxCorrection->trackOccPar2NoHt[index]*pow(trackOcc,2); + } return corr; } diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h index e2e4019ab10..2475c430524 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h @@ -62,6 +62,8 @@ public: ////////////////////////////////////////////////////////////////////////// enum EDataBaseType {kOldDB,kNewDB}; enum EstCalc {kAlgStandard,kAlgReweight,kAlgReweightTrunkOne}; + enum EOccupancyCorrection{kRSOnly, kHitBased, kTrackBased, kGlobal}; + enum EGasType {kXenon,kArgon,kKrypton,kUnset}; private: SG::ReadDecorHandleKey<xAOD::EventInfo> m_rdhkEvtInfo {this @@ -79,10 +81,17 @@ private: bool m_corrected; // If true - make correction using rs-distributions bool m_divideByL; // If true - divide ToT to the L of track in straw. - bool m_useHThits; // If true - use HT hit for dEdX estimator calculation int m_useTrackPartWithGasType; // If kUnset - use any gas for dEdX calculation; int m_toolScenario; // Algorithm type for dEdX estimator calculation; + int m_correctionType; // Type of dEdx correction + //////////////////////////////////////////////////// + // Different cases for correctionType // + // kRSOnly: only r-S calibration // + // kHitBased: Hit-based occupancy calibration // + // kTrackBased: Track-based occupancy calibration // + // kGlobal: Global occupancy calibration // + //////////////////////////////////////////////////// // Event info @@ -111,27 +120,29 @@ public: /** * @brief function to calculate sum ToT normalised to number of used hits * @param track pointer to track - * @param correctionType choice of occupancy correction + * @param useHitsHT decide if HT hits should be used in the estimate * @return dEdx value */ - double dEdx(const Trk::Track* track, EOccupancyCorrection correctionType=EOccupancyCorrection::kTrackBased) const; + double dEdx(const Trk::Track* track, bool useHThits=true) const; /** * @brief function to calculate number of used hits * @param track pointer + * @param useHitsHT decide if HT hits should be used in the estimate * @return nHits */ - double usedHits(const Trk::Track* track) const; + double usedHits(const Trk::Track* track, bool useHThits=true) const; protected: /** * @brief function to define what is a good hit to be used for dEdx calculation * cuts on track level can be made latekAlgStandardr by the user. Also returns the length in the straw. * @param trackState measurement on track + * @param useHitsHT decide if HT hits should be used in the estimate * @param length length in straw * @return decision */ - bool isGoodHit(const Trk::TrackStateOnSurface* trackState, double& length) const; + bool isGoodHit(const Trk::TrackStateOnSurface* trackState, bool useHitsHT, double& length) const; /** * @brief correct overall dEdx normalization on track level @@ -183,16 +194,6 @@ public: double mass(const Trk::TrackStateOnSurface *itr, const double pTrk, double dEdx ) const; protected: - /** - * @brief function to correct ToT/L used by the PIDTool parameters obtimized to be consistend with existing functions - * @param track parameter object - * @param trift circle object - * @param number to decide whether it is barrel or endcap - * @param number to identify layer ID - * @param number to identify strawlayer id - * @return corrected ToT/L (returns 0 if hit criteria are not fulfilled) - */ - double correctToT_corrRZ(const Trk::TrackParameters* trkP, const InDet::TRT_DriftCircleOnTrack *driftcircle, int HitPart, int Layer, int StrawLayer) const; /** * @brief main function to correct ToT values on hit level as a function of track radius and z-position * @param track on surface object @@ -202,7 +203,6 @@ protected: * @param bool variable whether mimic ToT to other gas hits shoule be used * @return corrected value for ToT */ - double correctToT_corrRZ(const Trk::TrackStateOnSurface *itr) const; double correctToT_corrRZ(const Trk::TrackStateOnSurface *itr, double length) const; /** @@ -286,8 +286,11 @@ public: void setDefaultConfiguration(); - bool getStatusRSCorrection() const { return m_corrected; } - bool getStatusUseHThits() const { return m_useHThits; } + void setStatusCorrection(bool value) { m_corrected = value; } + bool getStatusCorrection() const { return m_corrected; } + + void setCorrectionType(EOccupancyCorrection value) { m_correctionType = value; } + bool getCorrectionType() const { return m_correctionType; } void setMinRtrack(float minRtrack) { m_trackConfig_minRtrack=minRtrack;} float getMinRtrack() const { return m_trackConfig_minRtrack; } diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackStateOnSurfaceDecorator.h b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackStateOnSurfaceDecorator.h index 3d10176c9ea..1257ec2e83a 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackStateOnSurfaceDecorator.h +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/DerivationFrameworkInDet/TrackStateOnSurfaceDecorator.h @@ -132,8 +132,8 @@ namespace DerivationFramework { std::vector<SG::WriteDecorHandleKey<xAOD::EventInfo> > m_trtPhaseDecorKey; enum ETRTFloatDecor {kTRTdEdxDecor, kTRTusedHitsDecor, - /*kTRTdEdx_noHT_divByLDecor,*/ - /*kTRTusedHits_noHT_divByLDecor,*/ + kTRTdEdx_noHT_divByLDecor, + kTRTusedHits_noHT_divByLDecor, kNTRTFloatDecor}; std::vector<SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> > m_trackTRTFloatDecorKeys; enum EPixFloatDecorKeys {kTrkIBLXDecor, kTrkIBLYDecor, kTrkIBLZDecor, diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/src/TrackStateOnSurfaceDecorator.cxx b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/src/TrackStateOnSurfaceDecorator.cxx index 6860d241057..d30f31ef54a 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/src/TrackStateOnSurfaceDecorator.cxx +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkInDet/src/TrackStateOnSurfaceDecorator.cxx @@ -161,8 +161,8 @@ namespace DerivationFramework { names.resize(kNTRTFloatDecor); names[kTRTdEdxDecor]="ToT_dEdx"; names[kTRTusedHitsDecor]="ToT_usedHits"; - //names[kTRTdEdx_noHT_divByLDecor]="ToT_dEdx_noHT_divByL"; - //names[kTRTusedHits_noHT_divByLDecor]="ToT_usedHits_noHT_divByL"; + names[kTRTdEdx_noHT_divByLDecor]="ToT_dEdx_noHT_divByL"; + names[kTRTusedHits_noHT_divByLDecor]="ToT_usedHits_noHT_divByL"; createDecoratorKeys(*this,m_containerName, m_sgName, names, m_trackTRTFloatDecorKeys); } ATH_CHECK( m_trtPhaseKey.initialize() ); @@ -342,8 +342,8 @@ namespace DerivationFramework { // for dEdx studies trackTRTFloatDecorators[kTRTdEdxDecor] (*track) = m_TRTdEdxTool->dEdx(trkTrack); trackTRTFloatDecorators[kTRTusedHitsDecor] (*track) = m_TRTdEdxTool->usedHits(trkTrack); - //trackTRTFloatDecorators[kTRTdEdx_noHT_divByLDecor] (*track) = m_TRTdEdxTool->dEdx(trkTrack); - //trackTRTFloatDecorators[kTRTusedHits_noHT_divByLDecor] (*track) = m_TRTdEdxTool->usedHits(trkTrack); + trackTRTFloatDecorators[kTRTdEdx_noHT_divByLDecor] (*track) = m_TRTdEdxTool->dEdx(trkTrack, false); + trackTRTFloatDecorators[kTRTusedHits_noHT_divByLDecor] (*track) = m_TRTdEdxTool->usedHits(trkTrack, false); } // Track extrapolation -- GitLab From fa14525dd0809d988f759c493319b01c8c1b6c0d Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Tue, 14 Jul 2020 14:00:13 +0200 Subject: [PATCH 339/459] Fix bug in larger island logic --- .../InDetRawData/src/TRT_LoLumRawData.cxx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx b/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx index 23cb9f08bba..28bd0cac4e0 100755 --- a/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx +++ b/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx @@ -14,7 +14,6 @@ // Implementation provided by A. Zalite, February 2003 /////////////////////////////////////////////////////////////////// -#include <new> #include "InDetRawData/TRT_LoLumRawData.h" #include "InDetRawData/TRT_RDORawData.h" @@ -71,18 +70,21 @@ bool TRT_LoLumRawData::findLargestIsland(unsigned int word, unsigned int& leadin bool SawZero = false; unsigned int k = 1; leadingEdge=0, trailingEdge=0; + unsigned int currentLeadingEdge=0, currentTrailingEdge=0; // shift bitmask to the right until end while (true) { if (!(wordLE & mask) && !SawZero) SawZero = true; // search for the first 0 to 1 transition if (SawZero) { if (wordLE & mask){ - if (currentLength==0) leadingEdge=k; - trailingEdge=k; + if (currentLength==0) currentLeadingEdge=k; + currentTrailingEdge=k; ++currentLength; } else { /* remember longest island */ - if (currentLength >= bestLength && leadingEdge<18 && trailingEdge>7 && currentLength>2) { + if (currentLength >= bestLength && currentLeadingEdge<18 && currentTrailingEdge>7 && currentLength>2) { bestLength = currentLength; + leadingEdge = currentLeadingEdge; + trailingEdge = currentTrailingEdge; } currentLength = 0; } -- GitLab From 0501b6e2a9b978418999f52eb10bf4a5889fe4d5 Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Fri, 17 Jul 2020 10:30:50 +0200 Subject: [PATCH 340/459] Small change in the noise supression for raw data. Change HT to only consider middle bit --- .../InDetRawData/InDetRawData/TRT_LoLumRawData.h | 16 +++++++++------- .../InDetRawData/src/TRT_LoLumRawData.cxx | 15 +++++++-------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/InnerDetector/InDetRawEvent/InDetRawData/InDetRawData/TRT_LoLumRawData.h b/InnerDetector/InDetRawEvent/InDetRawData/InDetRawData/TRT_LoLumRawData.h index 6fbf43e6310..7ff57fd5cc2 100755 --- a/InnerDetector/InDetRawEvent/InDetRawData/InDetRawData/TRT_LoLumRawData.h +++ b/InnerDetector/InDetRawEvent/InDetRawData/InDetRawData/TRT_LoLumRawData.h @@ -81,7 +81,7 @@ public: return m_driftTimeBinWidth; }; - // Find the relevant island of bits from the bit pattern, defined as the largest island with the earliest leading edge + // Find the relevant island of bits from the bit pattern, defined as the largest island with the latest leading edge static bool findLargestIsland(unsigned int word, unsigned int& leadingEdge, unsigned int& trailingEdge); // Determine the drift time bin, i.e. the leading edge of the relevant island, from the bit pattern @@ -93,8 +93,12 @@ public: // Determine the time over threshold, i.e. width of the relevant island, in ns from the bit pattern static double timeOverThreshold(unsigned int word); - // Create a new TRT_LoLumRawData and return a pointer to it: - // static TRT_LoLumRawData *newObject(const Identifier rdoId, const unsigned int word); + // Check if the middle HT bit is set + inline + static bool highLevel(unsigned int word) { + // return (m_word & 0x04020100); // check any of the three HT bits + return (word & 0x00020000); // check only middle HT bit + } public: // public default constructor needed for I/O, but should not be @@ -112,17 +116,15 @@ private: // Inline methods: /////////////////////////////////////////////////////////////////// - - /* * highLevel() - - * Returns true if there is a high threshold hit in any bunch crossing, false + * Returns true if there is a high threshold hit in the middle bunch crossing, false * otherwise */ inline bool TRT_LoLumRawData::highLevel() const { - return (m_word & 0x04020100); + return highLevel(m_word); } /* diff --git a/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx b/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx index 28bd0cac4e0..fc0201ccea4 100755 --- a/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx +++ b/InnerDetector/InDetRawEvent/InDetRawData/src/TRT_LoLumRawData.cxx @@ -63,7 +63,7 @@ bool TRT_LoLumRawData::findLargestIsland(unsigned int word, unsigned int& leadin unsigned int bestLength = 0; unsigned int currentLength = 0; - // Set 4 last bits to zero (to match data and MC bitmasks) + // set 4 last bits to zero (to match data and MC bitmasks) unsigned int wordLE = word & m_maskFourLastBits; mask >>=1; // 0 0 01000000 0 00000000 0 00000000 @@ -80,8 +80,8 @@ bool TRT_LoLumRawData::findLargestIsland(unsigned int word, unsigned int& leadin if (currentLength==0) currentLeadingEdge=k; currentTrailingEdge=k; ++currentLength; - } else { /* remember longest island */ - if (currentLength >= bestLength && currentLeadingEdge<18 && currentTrailingEdge>7 && currentLength>2) { + } else { // remember longest island, ignore islands of length 1 which are very likely noise + if (currentLength >= bestLength && currentLeadingEdge<18 && currentLength > 1) { bestLength = currentLength; leadingEdge = currentLeadingEdge; trailingEdge = currentTrailingEdge; @@ -90,14 +90,13 @@ bool TRT_LoLumRawData::findLargestIsland(unsigned int word, unsigned int& leadin } } mask >>= 1; - if (!(mask & m_maskThreeLastBits)) break; - if (k == 7 || k == 15) mask >>= 1; + if (!(mask & m_maskThreeLastBits)) break; // stop after checking 20 LT bits + if (k == 7 || k == 15) mask >>= 1; // ignore HT bits assert(k < 20); ++k; } assert(k == 20); - // check that we have found useful edges - if (leadingEdge>17) leadingEdge=0; - if (trailingEdge<8 || trailingEdge> 19) trailingEdge=0; + // avoid very early TE, most likely from previous BX. Hit will still be used for tracking if it has a valid LE + if (trailingEdge < 8) trailingEdge = 0; return leadingEdge && trailingEdge; } -- GitLab From 37f94b6dc3a0db79a813ebe8b1d29ca7946bdbd7 Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Fri, 17 Jul 2020 11:25:39 +0200 Subject: [PATCH 341/459] Remove outdated properties --- .../share/ConfiguredInDetPreProcessingTRT.py | 6 ------ .../InDetPrepRawData/TRT_DriftCircle.h | 2 +- .../TRT_DriftCircleTool/TRT_DriftCircleTool.h | 7 ------- .../TRT_DriftCircleToolCosmics.h | 6 ------ .../src/TRT_DriftCircleTool.cxx | 19 ++----------------- .../src/TRT_DriftCircleToolCosmics.cxx | 16 ++-------------- 6 files changed, 5 insertions(+), 51 deletions(-) diff --git a/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredInDetPreProcessingTRT.py b/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredInDetPreProcessingTRT.py index 2ab663f27a5..bf91fd9e6f8 100644 --- a/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredInDetPreProcessingTRT.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredInDetPreProcessingTRT.py @@ -138,9 +138,6 @@ class ConfiguredInDetPreProcessingTRT: ValidityGateSuppression = not InDetFlags.doCosmics(), LowGate = LowGate, HighGate = HighGate, - MaskFirstHTBit = False, - MaskMiddleHTBit = False, - MaskLastHTBit = False, SimpleOutOfTimePileupSupressionArgon = InDetFlags.doCosmics(), RejectIfFirstBitArgon = False, # fixes 50 nsec issue MinTrailingEdgeArgon = MinTrailingEdge, @@ -148,9 +145,6 @@ class ConfiguredInDetPreProcessingTRT: ValidityGateSuppressionArgon = not InDetFlags.doCosmics(), LowGateArgon = LowGate, HighGateArgon = HighGate, - MaskFirstHTBitArgon = False, - MaskMiddleHTBitArgon = False, - MaskLastHTBitArgon = False, useDriftTimeHTCorrection = True, useDriftTimeToTCorrection = True) if not usePhase: diff --git a/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h b/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h index 47313650956..9b58f7fd2ea 100755 --- a/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h +++ b/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h @@ -168,7 +168,7 @@ inline int TRT_DriftCircle::trailingEdge() const inline bool TRT_DriftCircle::highLevel() const { - return (m_word & 0x04020100); + return TRT_LoLumRawData::highLevel(m_word); } diff --git a/InnerDetector/InDetRecTools/TRT_DriftCircleTool/TRT_DriftCircleTool/TRT_DriftCircleTool.h b/InnerDetector/InDetRecTools/TRT_DriftCircleTool/TRT_DriftCircleTool/TRT_DriftCircleTool.h index 4d6c27297bd..bdd2894372d 100755 --- a/InnerDetector/InDetRecTools/TRT_DriftCircleTool/TRT_DriftCircleTool/TRT_DriftCircleTool.h +++ b/InnerDetector/InDetRecTools/TRT_DriftCircleTool/TRT_DriftCircleTool/TRT_DriftCircleTool.h @@ -100,13 +100,6 @@ public: float m_low_gate_argon; //! Low value for gate float m_high_gate; //! High value for gate float m_high_gate_argon; //! High value for gate - bool m_mask_first_HT_bit; // mask off ht bit in first (earliest) 25ns time bin - bool m_mask_first_HT_bit_argon; // mask off ht bit in first (earliest) 25ns time bin - bool m_mask_middle_HT_bit; // mask off ht bit in middle 25 ns time bin - bool m_mask_middle_HT_bit_argon; // mask off ht bit in middle 25 ns time bin - bool m_mask_last_HT_bit; // mask off ht bit in last (latest) 25 ns time bin - bool m_mask_last_HT_bit_argon; // mask off ht bit in last (latest) 25 ns time bin - }; } // end of namespace diff --git a/InnerDetector/InDetRecTools/TRT_DriftCircleTool/TRT_DriftCircleTool/TRT_DriftCircleToolCosmics.h b/InnerDetector/InDetRecTools/TRT_DriftCircleTool/TRT_DriftCircleTool/TRT_DriftCircleToolCosmics.h index dd5e1cb1746..a1cc954cc67 100755 --- a/InnerDetector/InDetRecTools/TRT_DriftCircleTool/TRT_DriftCircleTool/TRT_DriftCircleToolCosmics.h +++ b/InnerDetector/InDetRecTools/TRT_DriftCircleTool/TRT_DriftCircleTool/TRT_DriftCircleToolCosmics.h @@ -97,12 +97,6 @@ public: float m_low_gate_argon; //! Low value for gate float m_high_gate; //! High value for gate float m_high_gate_argon; //! High value for gate - bool m_mask_first_HT_bit; // mask off ht bit in first (earliest) 25ns time bin - bool m_mask_first_HT_bit_argon; // mask off ht bit in first (earliest) 25ns time bin - bool m_mask_middle_HT_bit; // mask off ht bit in middle 25 ns time bin - bool m_mask_middle_HT_bit_argon; // mask off ht bit in middle 25 ns time bin - bool m_mask_last_HT_bit; // mask off ht bit in last (latest) 25 ns time bin - bool m_mask_last_HT_bit_argon; // mask off ht bit in last (latest) 25 ns time bin }; } // end of namespace diff --git a/InnerDetector/InDetRecTools/TRT_DriftCircleTool/src/TRT_DriftCircleTool.cxx b/InnerDetector/InDetRecTools/TRT_DriftCircleTool/src/TRT_DriftCircleTool.cxx index d1c1d754782..cf6ef9e7955 100755 --- a/InnerDetector/InDetRecTools/TRT_DriftCircleTool/src/TRT_DriftCircleTool.cxx +++ b/InnerDetector/InDetRecTools/TRT_DriftCircleTool/src/TRT_DriftCircleTool.cxx @@ -57,13 +57,7 @@ InDet::TRT_DriftCircleTool::TRT_DriftCircleTool(const std::string& t, m_low_gate(18.0*CLHEP::ns), m_low_gate_argon(18.0*CLHEP::ns), m_high_gate(38.0*CLHEP::ns), - m_high_gate_argon(38.0*CLHEP::ns), - m_mask_first_HT_bit(false), - m_mask_first_HT_bit_argon(false), - m_mask_middle_HT_bit(false), - m_mask_middle_HT_bit_argon(false), - m_mask_last_HT_bit(false), - m_mask_last_HT_bit_argon(false) + m_high_gate_argon(38.0*CLHEP::ns) { declareInterface<ITRT_DriftCircleTool>(this); declareProperty("TRTDriftFunctionTool", m_driftFunctionTool); @@ -86,12 +80,6 @@ InDet::TRT_DriftCircleTool::TRT_DriftCircleTool(const std::string& t, declareProperty("LowGateArgon",m_low_gate_argon); declareProperty("HighGate",m_high_gate); declareProperty("HighGateArgon",m_high_gate_argon); - declareProperty("MaskFirstHTBit",m_mask_first_HT_bit); - declareProperty("MaskFirstHTBitArgon",m_mask_first_HT_bit_argon); - declareProperty("MaskMiddleHTBit",m_mask_middle_HT_bit); - declareProperty("MaskMiddleHTBitArgon",m_mask_middle_HT_bit_argon); - declareProperty("MaskLastHTBit",m_mask_last_HT_bit); - declareProperty("MaskLastHTBitArgon",m_mask_last_HT_bit_argon); } /////////////////////////////////////////////////////////////////// @@ -245,10 +233,7 @@ InDet::TRT_DriftCircleCollection* InDet::TRT_DriftCircleTool::convert(int Mode,c if (m_useToTCorrection) { rawTime -= m_driftFunctionTool->driftTimeToTCorrection((*r)->timeOverThreshold(), id, isArgonStraw); } - if (m_useHTCorrection && - ((!m_mask_first_HT_bit && (word & 0x04000000)) || - (!m_mask_middle_HT_bit && (word & 0x00020000)) || - (!m_mask_last_HT_bit && (word & 0x00000100)))) { + if (m_useHTCorrection && (*r)->highLevel()) { rawTime += m_driftFunctionTool->driftTimeHTCorrection(id, isArgonStraw); } diff --git a/InnerDetector/InDetRecTools/TRT_DriftCircleTool/src/TRT_DriftCircleToolCosmics.cxx b/InnerDetector/InDetRecTools/TRT_DriftCircleTool/src/TRT_DriftCircleToolCosmics.cxx index 1e4c8619f38..5dfd012a6a7 100755 --- a/InnerDetector/InDetRecTools/TRT_DriftCircleTool/src/TRT_DriftCircleToolCosmics.cxx +++ b/InnerDetector/InDetRecTools/TRT_DriftCircleTool/src/TRT_DriftCircleToolCosmics.cxx @@ -63,13 +63,7 @@ InDet::TRT_DriftCircleToolCosmics::TRT_DriftCircleToolCosmics(const std::string& m_low_gate(18.0*CLHEP::ns), m_low_gate_argon(18.0*CLHEP::ns), m_high_gate(38.0*CLHEP::ns), - m_high_gate_argon(38.0*CLHEP::ns), - m_mask_first_HT_bit(false), - m_mask_first_HT_bit_argon(false), - m_mask_middle_HT_bit(false), - m_mask_middle_HT_bit_argon(false), - m_mask_last_HT_bit(false), - m_mask_last_HT_bit_argon(false) + m_high_gate_argon(38.0*CLHEP::ns) { declareInterface<ITRT_DriftCircleTool>(this); @@ -94,12 +88,6 @@ InDet::TRT_DriftCircleToolCosmics::TRT_DriftCircleToolCosmics(const std::string& declareProperty("LowGateArgon",m_low_gate_argon); declareProperty("HighGate",m_high_gate); declareProperty("HighGateArgon",m_high_gate_argon); - declareProperty("MaskFirstHTBit",m_mask_first_HT_bit); - declareProperty("MaskFirstHTBitArgon",m_mask_first_HT_bit_argon); - declareProperty("MaskMiddleHTBit",m_mask_middle_HT_bit); - declareProperty("MaskMiddleHTBitArgon",m_mask_middle_HT_bit_argon); - declareProperty("MaskLastHTBit",m_mask_last_HT_bit); - declareProperty("MaskLastHTBitArgon",m_mask_last_HT_bit_argon); declareProperty("GlobalPhaseOffset",m_global_offset); } @@ -262,7 +250,7 @@ InDet::TRT_DriftCircleCollection* InDet::TRT_DriftCircleToolCosmics::convert(int bool isArgonStraw=true; if (m_useToTCorrection) rawTime -= m_driftFunctionTool->driftTimeToTCorrection((*r)->timeOverThreshold(), id, isArgonStraw); - if (m_useHTCorrection) rawTime += m_driftFunctionTool->driftTimeHTCorrection(id, isArgonStraw); + if (m_useHTCorrection && (*r)->highLevel()) rawTime += m_driftFunctionTool->driftTimeHTCorrection(id, isArgonStraw); //make tube hit if first bin is high and no later LE appears if( LTbin==0 || LTbin==24 ) { -- GitLab From 7003a29866e118c3978e1474130129c5d5ef4f3e Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Fri, 17 Jul 2020 11:27:55 +0200 Subject: [PATCH 342/459] Remove outdated properties --- .../InDetTrigRecExample/python/InDetTrigCommonTools.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigCommonTools.py b/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigCommonTools.py index 9951574a453..fec9295de25 100644 --- a/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigCommonTools.py +++ b/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigCommonTools.py @@ -105,9 +105,6 @@ InDetTrigTRT_DriftCircleTool = InDet__TRT_DriftCircleTool( name = "InDetTrigTRT_ ValidityGateSuppression = False, LowGate = LowGate, HighGate = HighGate, - MaskFirstHTBit = False, - MaskMiddleHTBit = False, - MaskLastHTBit = False, SimpleOutOfTimePileupSupressionArgon = False,# no OOT rejection for argon RejectIfFirstBitArgon = False, # no OOT rejection for argon MinTrailingEdgeArgon = 0, # no OOT rejection for argon @@ -115,9 +112,6 @@ InDetTrigTRT_DriftCircleTool = InDet__TRT_DriftCircleTool( name = "InDetTrigTRT_ ValidityGateSuppressionArgon = False,# no OOT rejection for argon LowGateArgon = 0,# no OOT rejection for argon HighGateArgon = 75*Units.ns,# no OOT rejection for argon - MaskFirstHTBitArgon = False, - MaskMiddleHTBitArgon = False, - MaskLastHTBitArgon = False, useDriftTimeHTCorrection = True, useDriftTimeToTCorrection = True, # reenable ToT -- GitLab From 2ae79cd0a4ecf1bc587d3333b0f7031d4ea3fc6b Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Wed, 22 Jul 2020 17:02:49 +0200 Subject: [PATCH 343/459] Remove some commented lines and change number of hits to unsigned int --- .../TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx | 31 +++++++------------ .../TRT_ElectronPidTools/src/TRT_ToT_dEdx.h | 2 +- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx index a525ddfd9cc..e20ffbd9f24 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.cxx @@ -229,9 +229,6 @@ bool TRT_ToT_dEdx::isGoodHit(const Trk::TrackStateOnSurface* trackState, bool us if(m_useTrackPartWithGasType != gasTypeInStraw(trackState)) return false; } - //unsigned int BitPattern = driftcircle->prepRawData()->getWord(); - //double ToT = getToT(BitPattern); - if (driftcircle->prepRawData()->timeOverThreshold()==0.) return false; // If ToT for this hit equal 0, skip it. return true; @@ -290,7 +287,7 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, bool useHitsHT) const } sort(vecToT.begin(), vecToT.end()); - int nhits = (int)vecToT.size(); + size_t nhits = vecToT.size(); if (m_divideByL) { nhits-=m_nTrunkateHits; @@ -343,15 +340,15 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, bool useHitsHT) const sort(vecToT_Ar.begin(), vecToT_Ar.end()); sort(vecToT_Kr.begin(), vecToT_Kr.end()); - int nhitsXe = (int)vecToT_Xe.size(); - int nhitsAr = (int)vecToT_Ar.size(); - int nhitsKr = (int)vecToT_Kr.size(); + size_t nhitsXe = vecToT_Xe.size(); + size_t nhitsAr = vecToT_Ar.size(); + size_t nhitsKr = vecToT_Kr.size(); if (m_divideByL) { if(m_toolScenario==kAlgReweight){ - if (nhitsXe>0) nhitsXe-=m_nTrunkateHits; - if (nhitsAr>0) nhitsAr-=m_nTrunkateHits; - if (nhitsKr>0) nhitsKr-=m_nTrunkateHits; + if (nhitsXe>=m_nTrunkateHits) nhitsXe-=m_nTrunkateHits; + if (nhitsAr>=m_nTrunkateHits) nhitsAr-=m_nTrunkateHits; + if (nhitsKr>=m_nTrunkateHits) nhitsKr-=m_nTrunkateHits; } else {// kAlgReweightTrunkOne int trunkGas = kUnset; double maxToT = 0.; @@ -378,19 +375,19 @@ double TRT_ToT_dEdx::dEdx(const Trk::Track* track, bool useHitsHT) const } // Boost speed. - int nhits = nhitsXe + nhitsAr + nhitsKr; + size_t nhits = nhitsXe + nhitsAr + nhitsKr; if(nhits<1) return 0.0; double ToTsumXe = 0; double ToTsumAr = 0; double ToTsumKr = 0; - for (int i = 0; i < nhitsXe;i++) { + for (size_t i = 0; i < nhitsXe;i++) { ToTsumXe+=vecToT_Xe.at(i); } - for (int i = 0; i < nhitsAr;i++) { + for (size_t i = 0; i < nhitsAr;i++) { ToTsumAr+=vecToT_Ar.at(i); } - for (int i = 0; i < nhitsKr;i++) { + for (size_t i = 0; i < nhitsKr;i++) { ToTsumKr+=vecToT_Kr.at(i); } @@ -859,10 +856,6 @@ double TRT_ToT_dEdx::fitFuncPol_corrRZ(EGasType gasType, int parameter, double d int offset = 0; if(m_isData){ if(set==0){ // long straws in barrel - //int layerindex = Layer*30+Strawlayer; - //int parId=0; - //parId=0; - //if(sign>0)parId=1620; // FIXME: parId is not used a = dEdxCorrection->paraLongCorrRZ[gasType][(6*parameter+0)*30*3+Layer*30+Strawlayer+offset]; b = dEdxCorrection->paraLongCorrRZ[gasType][(6*parameter+1)*30*3+Layer*30+Strawlayer+offset]; c = dEdxCorrection->paraLongCorrRZ[gasType][(6*parameter+2)*30*3+Layer*30+Strawlayer+offset]; @@ -1033,7 +1026,7 @@ double TRT_ToT_dEdx::hitOccupancyCorrection(const Trk::TrackStateOnSurface *itr) const Trk::MeasurementBase* trkM = itr->measurementOnTrack(); // Check if this is RIO on track - // annd if yes check if is TRT Drift Circle + // and if yes check if is TRT Drift Circle // then set the ptr const InDet::TRT_DriftCircleOnTrack* driftcircle = nullptr; if (trkM && trkM->type(Trk::MeasurementBaseType::RIO_OnTrack)) { diff --git a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h index 2475c430524..bf945babf1e 100644 --- a/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h +++ b/InnerDetector/InDetRecTools/TRT_ElectronPidTools/src/TRT_ToT_dEdx.h @@ -103,7 +103,7 @@ private: bool m_useZeroRHitCut; // skip tracks with where RHit=0 - int m_nTrunkateHits = 1; + unsigned int m_nTrunkateHits = 1; public: -- GitLab From 64b2933be7bad640668b4aa7684f2d1847f19ba8 Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Fri, 24 Jul 2020 17:44:54 +0200 Subject: [PATCH 344/459] Update references to include changes to TRT raw data --- Tools/PROCTools/data/master_q221_AOD_digest.ref | 6 +++--- Tools/PROCTools/data/master_q431_AOD_digest.ref | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Tools/PROCTools/data/master_q221_AOD_digest.ref b/Tools/PROCTools/data/master_q221_AOD_digest.ref index 8b781f01780..875c9e0059d 100644 --- a/Tools/PROCTools/data/master_q221_AOD_digest.ref +++ b/Tools/PROCTools/data/master_q221_AOD_digest.ref @@ -9,16 +9,16 @@ 284500 87473063 62 76 5 2 6 2 4 6 4 2 284500 87473068 26 35 1 1 0 0 0 0 0 0 284500 87473075 72 85 6 0 5 0 5 5 4 1 - 284500 87473084 83 86 7 2 15 1 14 9 4 5 + 284500 87473084 83 86 7 2 15 1 14 10 4 6 284500 87473091 43 49 3 0 2 1 1 5 2 3 284500 87473096 72 76 3 2 2 0 2 3 2 1 284500 87473104 61 63 6 0 6 1 5 5 4 1 284500 87473114 93 78 7 2 13 1 12 8 5 3 284500 87473121 93 100 6 3 16 4 12 6 5 1 - 284500 87473132 81 60 9 1 10 0 10 5 5 0 + 284500 87473132 81 58 9 1 11 0 11 4 4 0 284500 87473137 81 71 8 3 15 0 15 6 6 0 284500 87473144 83 67 7 1 6 0 6 8 5 3 - 284500 87473154 89 88 7 0 10 2 8 8 4 4 + 284500 87473154 89 89 7 0 10 2 8 8 4 4 284500 87473162 52 52 3 0 7 0 7 3 2 1 284500 87473167 74 54 6 3 12 2 10 13 8 5 284500 87473171 82 70 8 3 4 2 2 5 3 2 diff --git a/Tools/PROCTools/data/master_q431_AOD_digest.ref b/Tools/PROCTools/data/master_q431_AOD_digest.ref index ca6ae0b120c..7601ecfd0c0 100644 --- a/Tools/PROCTools/data/master_q431_AOD_digest.ref +++ b/Tools/PROCTools/data/master_q431_AOD_digest.ref @@ -1,22 +1,22 @@ run event nTopo nIdTracks nJets nMuons 330470 1183722158 1 0 0 0 330470 1183722342 394 415 18 0 - 330470 1183727953 532 570 13 4 + 330470 1183727953 532 569 11 4 330470 1183732647 467 452 12 1 330470 1183733040 381 285 6 1 330470 1183734651 361 363 14 3 330470 1183735332 406 372 9 1 - 330470 1183736475 741 654 17 3 + 330470 1183736475 741 654 15 2 330470 1183738728 1 0 0 0 - 330470 1183738949 368 419 9 1 + 330470 1183738949 368 420 9 1 330470 1183742489 152 125 2 1 330470 1183743040 285 305 5 0 330470 1183746343 492 465 14 0 330470 1183746710 6 0 0 0 - 330470 1183751782 239 235 5 0 + 330470 1183751782 239 235 4 0 330470 1183752624 347 342 8 2 330470 1183753006 357 377 11 3 - 330470 1183754806 470 406 14 0 + 330470 1183754806 470 406 15 0 330470 1183769295 342 317 8 1 330470 1183769939 348 341 11 3 330470 1183773832 307 198 7 0 -- GitLab From 26db4691c483955c31b7ac9f240101047a924723 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 08:56:25 +0200 Subject: [PATCH 345/459] AthAnalysisBaseComps: cmake cleanup - remove atlas_depends_on_subdirs - link component and dictionary against library --- Control/AthAnalysisBaseComps/CMakeLists.txt | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/Control/AthAnalysisBaseComps/CMakeLists.txt b/Control/AthAnalysisBaseComps/CMakeLists.txt index 4b171ae550f..c13ebc8ff61 100644 --- a/Control/AthAnalysisBaseComps/CMakeLists.txt +++ b/Control/AthAnalysisBaseComps/CMakeLists.txt @@ -1,18 +1,8 @@ -################################################################################ -# Package: AthAnalysisBaseComps -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthAnalysisBaseComps ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Control/StoreGate - Control/AthContainers - Database/IOVDbDataModel - GaudiKernel ) - # External dependencies: find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) @@ -26,15 +16,12 @@ atlas_add_library( AthAnalysisBaseCompsLib atlas_add_component( AthAnalysisBaseComps src/components/*.cxx - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES AthenaBaseComps IOVDbDataModel GaudiKernel StoreGateLib SGtests AthContainers AthAnalysisBaseCompsLib - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES}) + LINK_LIBRARIES AthAnalysisBaseCompsLib ) atlas_add_dictionary( AthAnalysisBaseCompsDict AthAnalysisBaseComps/AthAnalysisBaseCompsDict.h AthAnalysisBaseComps/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps StoreGateLib SGtests IOVDbDataModel GaudiKernel AthContainers AthAnalysisBaseCompsLib ) + LINK_LIBRARIES AthAnalysisBaseCompsLib ) # Install files from the package: atlas_install_joboptions( share/*.py ) -- GitLab From 67428488d002e8f05a96056c6bea574c24ffbca6 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 08:57:14 +0200 Subject: [PATCH 346/459] AthContainersInterfaces: cmake cleanup, remove Boost dependency --- Control/AthContainersInterfaces/CMakeLists.txt | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/Control/AthContainersInterfaces/CMakeLists.txt b/Control/AthContainersInterfaces/CMakeLists.txt index 06cdc743d6a..c743ac5c62a 100644 --- a/Control/AthContainersInterfaces/CMakeLists.txt +++ b/Control/AthContainersInterfaces/CMakeLists.txt @@ -1,33 +1,19 @@ -# $Id: CMakeLists.txt 781615 2016-11-01 16:20:50Z ssnyder $ -################################################################################ -# Package: AthContainersInterfaces -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthContainersInterfaces ) # Extra dependencies, based on the build environment: if( NOT XAOD_STANDALONE ) - set( extra_deps Control/AthenaKernel ) set( extra_libs AthenaKernel ) endif() -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/CxxUtils - ${extra_deps} ) - -# External dependencies: -find_package( Boost ) - # Interface library for the package: atlas_add_library( AthContainersInterfaces AthContainersInterfaces/*.h AthContainersInterfaces/*.icc INTERFACE PUBLIC_HEADERS AthContainersInterfaces - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} - LINK_LIBRARIES CxxUtils ${Boost_LIBRARIES} ${extra_libs} ) + LINK_LIBRARIES CxxUtils ${extra_libs} ) # Test(s) in the package: atlas_add_test( AuxStore_traits_test -- GitLab From 1828e49c50728d416ed60dc7fe0586042f6f3b55 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 08:58:01 +0200 Subject: [PATCH 347/459] AthAllocators: remove atlas_depends_on_subdirs --- Control/AthAllocators/CMakeLists.txt | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/Control/AthAllocators/CMakeLists.txt b/Control/AthAllocators/CMakeLists.txt index 59c14870c6f..175553176c3 100644 --- a/Control/AthAllocators/CMakeLists.txt +++ b/Control/AthAllocators/CMakeLists.txt @@ -1,18 +1,8 @@ -################################################################################ -# Package: AthAllocators -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthAllocators ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - GaudiKernel - PRIVATE - Control/CxxUtils - AtlasTest/TestTools ) - # External dependencies: find_package( Boost COMPONENTS thread ) -- GitLab From 1f7636fc7199106112cf8c2ae3f476916ac22c63 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 08:58:29 +0200 Subject: [PATCH 348/459] AthLinks: cmake fixes - boost becomes header-only dependency - minimize ROOT component dependencies - remove atlas_depends_on_subdirs - factorize test definition --- Control/AthLinks/CMakeLists.txt | 142 +++++++------------------------- 1 file changed, 29 insertions(+), 113 deletions(-) diff --git a/Control/AthLinks/CMakeLists.txt b/Control/AthLinks/CMakeLists.txt index 00722712564..3dded6a50af 100644 --- a/Control/AthLinks/CMakeLists.txt +++ b/Control/AthLinks/CMakeLists.txt @@ -1,22 +1,11 @@ -################################################################################ -# Package: AthLinks -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthLinks ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaKernel - Control/CxxUtils - Control/SGTools - GaudiKernel - PRIVATE - AtlasTest/TestTools ) - # External dependencies: -find_package( Boost COMPONENTS filesystem thread system ) -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) +find_package( Boost ) +find_package( ROOT COMPONENTS Core ) # Component(s) in the package: atlas_add_library( AthLinks @@ -25,106 +14,33 @@ atlas_add_library( AthLinks INCLUDE_DIRS ${Boost_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} LINK_LIBRARIES ${Boost_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} TestTools ) + PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ) atlas_add_dictionary( AthLinksDict AthLinks/AthLinksDict.h AthLinks/selection.xml - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( exceptions_test - SOURCES - test/exceptions_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( DataProxyHolder_test - SOURCES - test/DataProxyHolder_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( IndexHolder_test - SOURCES - test/IndexHolder_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( IdentContIndex_test - SOURCES - test/IdentContIndex_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( ForwardIndexingPolicy_test - SOURCES - test/ForwardIndexingPolicy_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( SetIndexingPolicy_test - SOURCES - test/SetIndexingPolicy_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( MapIndexingPolicy_test - SOURCES - test/MapIndexingPolicy_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( IdentContIndexingPolicy_test - SOURCES - test/IdentContIndexingPolicy_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( IsSTLSequence_test - SOURCES - test/IsSTLSequence_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( DataLinkBase_test - SOURCES - test/DataLinkBase_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( DataLink_test - SOURCES - test/DataLink_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( ElementLinkBase_test - SOURCES - test/ElementLinkBase_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( GenericElementLinkBase_test - SOURCES - test/GenericElementLinkBase_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( ElementLink_test - SOURCES - test/ElementLink_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( ElementLinkFwd_test - SOURCES - test/ElementLinkFwd_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) - -atlas_add_test( AssociationMap_test - SOURCES - test/AssociationMap_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthenaKernel CxxUtils SGTools GaudiKernel TestTools AthLinks ) + LINK_LIBRARIES AthLinks ) + +# Tests in the package: +function( _add_test name ) + atlas_add_test( ${name} + SOURCES test/${name}.cxx + LINK_LIBRARIES AthLinks TestTools ) +endfunction( _add_test ) + +_add_test( exceptions_test ) +_add_test( DataProxyHolder_test ) +_add_test( IndexHolder_test ) +_add_test( IdentContIndex_test ) +_add_test( ForwardIndexingPolicy_test ) +_add_test( SetIndexingPolicy_test ) +_add_test( MapIndexingPolicy_test ) +_add_test( IdentContIndexingPolicy_test ) +_add_test( IsSTLSequence_test ) +_add_test( DataLinkBase_test ) +_add_test( DataLink_test ) +_add_test( ElementLinkBase_test ) +_add_test( GenericElementLinkBase_test ) +_add_test( ElementLink_test ) +_add_test( ElementLinkFwd_test ) +_add_test( AssociationMap_test ) -- GitLab From 97adb87680c2363710da550d6172a2c7c6cbe4c8 Mon Sep 17 00:00:00 2001 From: Julie Kirk <Julie.Kirk@cern.ch> Date: Wed, 29 Jul 2020 09:04:00 +0200 Subject: [PATCH 349/459] fix conflict --- .../TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py | 2 +- .../TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py index a769494683e..3745db15c4e 100755 --- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py +++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80.py @@ -145,7 +145,7 @@ test.check_steps.append(comp4) comp5=TrigInDetCompStep('CompareStep5') comp5.chains='HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_TauCore_FTF HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_Tau_IDTrig' -comp4.output_dir = 'HLTEF-plots-tau' +comp5.output_dir = 'HLTEF-plots-tau' test.check_steps.append(comp5) diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py index 85cc39d0828..912bdf5095b 100755 --- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py +++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py @@ -135,7 +135,7 @@ test.check_steps.append(comp4) comp5=TrigInDetCompStep('CompareStep5') comp5.chains='HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_TauCore_FTF HLT_tau25_idperf_tracktwo_L1TAU12IM:HLT_IDTrack_Tau_IDTrig' -comp4.output_dir = 'HLTEF-plots-tau' +comp5.output_dir = 'HLTEF-plots-tau' test.check_steps.append(comp5) -- GitLab From 9bc61372b84f1229b23cbfccdd9efb4a946baa82 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 08:59:55 +0200 Subject: [PATCH 350/459] AthenaInterprocess+AthenaMPTools: remove atlas_depends_on_subdirs --- Control/AthenaInterprocess/CMakeLists.txt | 9 +-------- Control/AthenaMPTools/CMakeLists.txt | 12 +----------- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/Control/AthenaInterprocess/CMakeLists.txt b/Control/AthenaInterprocess/CMakeLists.txt index 96bae6c96ce..930a75e5053 100644 --- a/Control/AthenaInterprocess/CMakeLists.txt +++ b/Control/AthenaInterprocess/CMakeLists.txt @@ -1,15 +1,8 @@ -################################################################################ -# Package: AthenaInterprocess -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaInterprocess ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaKernel - GaudiKernel ) - # External dependencies: find_package( Boost ) find_package( UUID ) diff --git a/Control/AthenaMPTools/CMakeLists.txt b/Control/AthenaMPTools/CMakeLists.txt index ce4f961be10..dce52da4fed 100644 --- a/Control/AthenaMPTools/CMakeLists.txt +++ b/Control/AthenaMPTools/CMakeLists.txt @@ -1,18 +1,8 @@ -################################################################################ -# Package: AthenaMPTools -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaMPTools ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaInterprocess - GaudiKernel - PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel ) - # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) find_package( yampl ) -- GitLab From 09a178f35c70b33c61decbb7601db8261b7e6c9d Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 09:06:33 +0200 Subject: [PATCH 351/459] AthenaPython: cmake cleanup - remove atlas_depend_on_subdirs - minimize ROOT component dependencies - update link dependencies --- Control/AthenaPython/CMakeLists.txt | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/Control/AthenaPython/CMakeLists.txt b/Control/AthenaPython/CMakeLists.txt index 7f2e1eff24a..222c1fc684c 100644 --- a/Control/AthenaPython/CMakeLists.txt +++ b/Control/AthenaPython/CMakeLists.txt @@ -1,23 +1,11 @@ -################################################################################ -# Package: AthenaPython -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthenaPython ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Control/AthenaKernel - Control/StoreGate - GaudiKernel - PRIVATE - Control/RootUtils - Control/DataModelRoot ) - # External dependencies: find_package( Python COMPONENTS Development ) -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread PyROOT ) +find_package( ROOT COMPONENTS Core PyROOT ) # Component(s) in the package: atlas_add_library( AthenaPython @@ -25,18 +13,16 @@ atlas_add_library( AthenaPython PUBLIC_HEADERS AthenaPython PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Python_INCLUDE_DIRS} LINK_LIBRARIES AthenaBaseComps AthenaKernel GaudiKernel - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${Python_LIBRARIES} CxxUtils DataModelRoot ) + PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${Python_LIBRARIES} CxxUtils DataModelRoot RootUtils ) atlas_add_component( AthenaPythonComps src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Python_INCLUDE_DIRS} LINK_LIBRARIES AthenaPython ) atlas_add_dictionary( AthenaPythonDict AthenaPython/AthenaPythonDict.h AthenaPython/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Python_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${Python_LIBRARIES} AthenaBaseComps AthenaKernel GaudiKernel CxxUtils DataModelRoot AthenaPython ) + LINK_LIBRARIES AthenaPython ) # Install files from the package: atlas_install_python_modules( python/*.py python/tests -- GitLab From a4b5fd0a435262fce99a7a57c117a0b9e9cee2a3 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 09:07:42 +0200 Subject: [PATCH 352/459] CoWTools: remove atlas_depends_on_subdirs --- Control/CoWTools/CMakeLists.txt | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Control/CoWTools/CMakeLists.txt b/Control/CoWTools/CMakeLists.txt index e50e862715c..70b27fe1c50 100644 --- a/Control/CoWTools/CMakeLists.txt +++ b/Control/CoWTools/CMakeLists.txt @@ -1,15 +1,8 @@ -# $Id: CMakeLists.txt 739580 2016-04-12 07:51:11Z krasznaa $ -################################################################################ -# Package: CoWTools -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( CoWTools ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - GaudiKernel ) - # Component(s) in the package: atlas_add_library( CoWTools CoWTools/*.h src/*.cxx -- GitLab From 815ab9d5a05665ec42d15415aeca156218c5e411 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 09:09:22 +0200 Subject: [PATCH 353/459] CxxUtils: remove atlas_depends_on_subdirs --- Control/CxxUtils/CMakeLists.txt | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Control/CxxUtils/CMakeLists.txt b/Control/CxxUtils/CMakeLists.txt index 77a10b423aa..c585cbf5741 100644 --- a/Control/CxxUtils/CMakeLists.txt +++ b/Control/CxxUtils/CMakeLists.txt @@ -1,14 +1,8 @@ -################################################################################ -# Package: CxxUtils -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( CxxUtils ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PRIVATE AtlasTest/TestTools ) - # External dependencies: find_package( Boost COMPONENTS program_options regex filesystem thread system timer unit_test_framework ) find_package( TBB ) @@ -123,7 +117,6 @@ endforeach() # Needed because this executable directly uses multiversioned functions. set_property( TARGET CxxUtils_crc64_test PROPERTY POSITION_INDEPENDENT_CODE ON ) - # If we are in release rebuilding mode, stop here: if( ATLAS_RELEASE_MODE ) return() -- GitLab From acf8036f0505b2e358ed8e557a64dfa90f092696 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 09:13:42 +0200 Subject: [PATCH 354/459] Navigation: cmake fixes Remove atlas_depends_on_subdirs and update link dependencies. --- Control/Navigation/CMakeLists.txt | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/Control/Navigation/CMakeLists.txt b/Control/Navigation/CMakeLists.txt index f20b96dc791..bf3331d5582 100644 --- a/Control/Navigation/CMakeLists.txt +++ b/Control/Navigation/CMakeLists.txt @@ -1,22 +1,8 @@ -################################################################################ -# Package: Navigation -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( Navigation ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/AthAllocators - Control/AthLinks - Control/AthenaKernel - PRIVATE - Control/AthContainers - AtlasTest/TestTools - Control/StoreGate - GaudiKernel ) - # External dependencies: find_package( Boost ) find_package( UUID ) @@ -27,7 +13,7 @@ atlas_add_library( Navigation Navigation/*.h Navigation/*.icc src/*.cxx INCLUDE_DIRS ${Boost_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${UUID_INCLUDE_DIRS} LINK_LIBRARIES ${Boost_LIBRARIES} AthAllocators AthLinks AthenaKernel - PRIVATE_LINK_LIBRARIES ${UUID_LIBRARIES} ) + PRIVATE_LINK_LIBRARIES ${UUID_LIBRARIES} GaudiKernel ) atlas_add_dictionary( NavigationDict Navigation/NavigationDict.h Navigation/selection.xml @@ -40,13 +26,10 @@ atlas_add_test( NavigationToken_test atlas_add_test( NavigableIterator_test SOURCES test/NavigableIterator_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} AthContainers TestTools - StoreGateLib GaudiKernel Navigation + LINK_LIBRARIES AthContainers TestTools StoreGateLib GaudiKernel Navigation ENVIRONMENT "JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/share" ) atlas_add_test( AthenaBarCodeImpl_test SOURCES test/AthenaBarCodeImpl_test.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} Navigation + LINK_LIBRARIES Navigation POST_EXEC_SCRIPT nopost.sh ) -- GitLab From f4c2d055b71efad5fb83b9a36f9e47117ddb8bc6 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Wed, 29 Jul 2020 08:19:05 +0100 Subject: [PATCH 355/459] Restored longer variants of comps. creation --- .../TrigConfigSvc/python/TrigConfigSvcCfg.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/python/TrigConfigSvcCfg.py b/Trigger/TrigConfiguration/TrigConfigSvc/python/TrigConfigSvcCfg.py index 43495573eda..35c9ac9e5b2 100644 --- a/Trigger/TrigConfiguration/TrigConfigSvc/python/TrigConfigSvcCfg.py +++ b/Trigger/TrigConfiguration/TrigConfigSvc/python/TrigConfigSvcCfg.py @@ -178,8 +178,8 @@ def getL1ConfigSvc( flags = None ): generatedFile = generateL1Menu( flags=flags ) # configure config svc - - l1ConfigSvc = CompFactory.TrigConf.LVL1ConfigSvc("LVL1ConfigSvc") + TrigConf__LVL1ConfigSvc = CompFactory.getComp("TrigConf::LVL1ConfigSvc") + l1ConfigSvc = TrigConf__LVL1ConfigSvc("LVL1ConfigSvc") l1ConfigSvc.ConfigSource = "XML" l1XMLFile = TriggerFlags.inputLVL1configFile() if flags is None else flags.Trigger.LVL1ConfigFile @@ -210,7 +210,8 @@ def getL1ConfigSvc( flags = None ): @memoize def getHLTConfigSvc( flags = None ): log = logging.getLogger('TrigConfigSvcCfg') - hltConfigSvc = CompFactory.TrigConf.HLTConfigSvc("HLTConfigSvc") + TrigConf__HLTConfigSvc = CompFactory.getComp("TrigConf::HLTConfigSvc") + hltConfigSvc = TrigConf__HLTConfigSvc("HLTConfigSvc") hltXMLFile = "None" hltConfigSvc.ConfigSource = "None" @@ -230,7 +231,8 @@ def getHLTConfigSvc( flags = None ): @memoize def setupHLTPrescaleCondAlg( flags = None ): log = logging.getLogger('TrigConfigSvcCfg') - hltPrescaleCondAlg = CompFactory.TrigConf.HLTPrescaleCondAlg("HLTPrescaleCondAlg") + TrigConf__HLTPrescaleCondAlg = CompFactory.getComp("TrigConf::HLTPrescaleCondAlg") + hltPrescaleCondAlg = TrigConf__HLTPrescaleCondAlg("HLTPrescaleCondAlg") tc = getTrigConfigFromFlag( flags ) hltPrescaleCondAlg.Source = tc["source"] -- GitLab From 84c68c933e33185ded8756afa1fb96867281750a Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 09:15:03 +0200 Subject: [PATCH 356/459] RootUtils+xAODDataSource: remove atlas_depends_on_subdirs --- Control/RootUtils/CMakeLists.txt | 11 +---------- Control/xAODDataSource/CMakeLists.txt | 7 ------- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/Control/RootUtils/CMakeLists.txt b/Control/RootUtils/CMakeLists.txt index 9f5008148fa..806b64cd0aa 100644 --- a/Control/RootUtils/CMakeLists.txt +++ b/Control/RootUtils/CMakeLists.txt @@ -1,16 +1,8 @@ -################################################################################ -# Package: RootUtils -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( RootUtils ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/CxxUtils - PRIVATE - AtlasTest/TestTools ) - # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) find_package( Python COMPONENTS Development ) @@ -42,7 +34,6 @@ atlas_add_library( RootUtilsPyROOT LINK_LIBRARIES ${Python_LIBRARIES} ${Boost_LIBRARIES} RootUtils PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} TestTools ) - atlas_add_dictionary( RootUtilsPyROOTDict RootUtils/RootUtilsPyROOTDict.h RootUtils/selection_PyROOT.xml diff --git a/Control/xAODDataSource/CMakeLists.txt b/Control/xAODDataSource/CMakeLists.txt index eaa136f2594..cb80de80834 100644 --- a/Control/xAODDataSource/CMakeLists.txt +++ b/Control/xAODDataSource/CMakeLists.txt @@ -3,13 +3,6 @@ # Set the name of the package. atlas_subdir( xAODDataSource ) -# Set its dependencies on other packages. -atlas_depends_on_subdirs( - PUBLIC - Control/CxxUtils - Control/RootUtils - Control/xAODRootAccess ) - # External dependencies. VDT is necessary because the DataFrame code has # a public dependency on it. find_package( ROOT COMPONENTS Core Tree TreePlayer RIO ROOTDataFrame ) -- GitLab From 105cfc648fb3eb363270d09697c3e1b0d476ab3c Mon Sep 17 00:00:00 2001 From: Bastian Schlag <bastian.schlag@cern.ch> Date: Thu, 25 Jun 2020 15:55:43 +0200 Subject: [PATCH 357/459] replace MagFieldSvc by condition data in ActsGeometry package --- .../ActsGeometry/ATLASMagneticFieldWrapper.h | 116 +++++++++--------- .../ActsGeometry/ActsExtrapolationTool.h | 7 +- .../ActsGeometry/ActsWriteTrackingGeometry.h | 1 - .../ActsWriteTrackingGeometryTransforms.h | 1 - Tracking/Acts/ActsGeometry/CMakeLists.txt | 5 +- .../ActsGeometry/src/ActsExtrapolationAlg.cxx | 1 - .../src/ActsExtrapolationTool.cxx | 13 +- .../ActsGeometry/src/ActsMaterialMapping.cxx | 1 - .../src/ActsSurfaceMappingTool.cxx | 2 - .../src/ActsVolumeMappingTool.cxx | 1 - 10 files changed, 68 insertions(+), 80 deletions(-) diff --git a/Tracking/Acts/ActsGeometry/ActsGeometry/ATLASMagneticFieldWrapper.h b/Tracking/Acts/ActsGeometry/ActsGeometry/ATLASMagneticFieldWrapper.h index 29c875cca6b..ecb882fc408 100644 --- a/Tracking/Acts/ActsGeometry/ActsGeometry/ATLASMagneticFieldWrapper.h +++ b/Tracking/Acts/ActsGeometry/ActsGeometry/ATLASMagneticFieldWrapper.h @@ -5,7 +5,8 @@ #ifndef ACTSGEOMETRY_ATLASMAGNETICFIELDWRAPPER_H #define ACTSGEOMETRY_ATLASMAGNETICFIELDWRAPPER_H -#include "MagFieldInterfaces/IMagFieldSvc.h" +#include "StoreGate/ReadCondHandleKey.h" +#include "MagFieldConditions/AtlasFieldCacheCondObj.h" #include "Acts/Utilities/Definitions.hpp" #include "Acts/Utilities/Units.hpp" #include "Acts/MagneticField/MagneticFieldContext.hpp" @@ -24,58 +25,34 @@ public: } }; - // FieldCell is not needed anymore, keep it for backwards compatibility right now. - struct FieldCell { - public: - FieldCell(MagField::IMagFieldSvc* fieldService) - : m_fieldService(fieldService) - { - } - - Acts::Vector3D - getField(const Acts::Vector3D& pos) const - { - Acts::Vector3D bfield; - m_fieldService->getField(&pos, &bfield); - - bfield *= m_bFieldUnit; // kT -> T; - - return bfield; - } - - Acts::Vector3D - getFieldGradient(const Acts::Vector3D& position, Acts::ActsMatrixD<3, 3>& gradient) const - { - Acts::Vector3D bfield; - m_fieldService->getField(&position, &bfield, &gradient); - - bfield *= m_bFieldUnit; // kT -> T; - gradient *= m_bFieldUnit; - - return bfield; - } - - inline - bool isInside(const Acts::Vector3D&) const { - return true; - } - - private: - MagField::IMagFieldSvc *m_fieldService; - const double m_bFieldUnit = 1000.*Acts::UnitConstants::T; - }; - - ATLASMagneticFieldWrapper(MagField::IMagFieldSvc *fieldService) - : m_fieldCell(fieldService), - m_fieldService(fieldService) + ATLASMagneticFieldWrapper(const SG::ReadCondHandleKey<AtlasFieldCacheCondObj>& fieldCacheCondObjInputKey) + : m_fieldCacheCondObjInputKey(fieldCacheCondObjInputKey) { } Acts::Vector3D getField(const Acts::Vector3D& pos) const { - Acts::Vector3D bfield; - m_fieldService->getField(&pos, &bfield); + SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle{m_fieldCacheCondObjInputKey, Gaudi::Hive::currentContext()}; + if (!readHandle.isValid()) { + std::stringstream msg; + msg << "Failed to retrieve magmnetic field conditions data " << m_fieldCacheCondObjInputKey.key() << "."; + throw std::runtime_error(msg.str()); + } + const AtlasFieldCacheCondObj* fieldCondObj{*readHandle}; + + MagField::AtlasFieldCache fieldCache; + fieldCondObj->getInitializedCache (fieldCache); + + double posXYZ[3]; + posXYZ[0] = pos.x(); + posXYZ[0] = pos.y(); + posXYZ[0] = pos.z(); + double BField[3]; + fieldCache.getField(posXYZ, BField); + + // Magnetic field + Acts::Vector3D bfield{BField[0],BField[1],BField[2]}; bfield *= m_bFieldUnit; // kT -> T; @@ -91,8 +68,33 @@ public: Acts::Vector3D getFieldGradient(const Acts::Vector3D& position, Acts::ActsMatrixD<3, 3>& gradient) const { - Acts::Vector3D bfield; - m_fieldService->getField(&position, &bfield, &gradient); + + SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle{m_fieldCacheCondObjInputKey, Gaudi::Hive::currentContext()}; + if (!readHandle.isValid()) { + std::stringstream msg; + msg << "Failed to retrieve magmnetic field conditions data " << m_fieldCacheCondObjInputKey.key() << "."; + throw std::runtime_error(msg.str()); + } + const AtlasFieldCacheCondObj* fieldCondObj{*readHandle}; + + MagField::AtlasFieldCache fieldCache; + fieldCondObj->getInitializedCache (fieldCache); + + double posXYZ[3]; + posXYZ[0] = position.x(); + posXYZ[0] = position.y(); + posXYZ[0] = position.z(); + double BField[3]; + double grad[9]; + + fieldCache.getField(posXYZ, BField, grad); + + // Magnetic field + Acts::Vector3D bfield{BField[0], BField[1],BField[2]}; + Acts::ActsMatrixD<3, 3> tempGrad; + tempGrad << grad[0], grad[1], grad[2], grad[3], grad[4], grad[5], grad[6], grad[7], grad[8]; + gradient = tempGrad; + bfield *= m_bFieldUnit; // kT -> T; gradient *= m_bFieldUnit; @@ -108,18 +110,14 @@ public: return getFieldGradient(position, gradient); } - // only kept for backwards compatibility - FieldCell - getFieldCell(const Acts::Vector3D& /*position*/) const - { - return m_fieldCell; - } - private: - // only kept for backwards compatibility - FieldCell m_fieldCell; - MagField::IMagFieldSvc *m_fieldService; + + + // TODO: store pointer?? + SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey; + //{this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}; + const double m_bFieldUnit = 1000.*Acts::UnitConstants::T; }; diff --git a/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h b/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h index ddd2a3ca6fc..c71b63dc04d 100644 --- a/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h +++ b/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h @@ -29,10 +29,6 @@ #include <cmath> -namespace MagField { - class IMagFieldSvc; -} - namespace Acts { class Surface; class BoundaryCheck; @@ -105,7 +101,8 @@ public: private: std::unique_ptr<ActsExtrapolationDetail::VariantPropagator> m_varProp; - ServiceHandle<MagField::IMagFieldSvc> m_fieldServiceHandle; + SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}; + ToolHandle<IActsTrackingGeometryTool> m_trackingGeometryTool{this, "TrackingGeometryTool", "ActsTrackingGeometryTool"}; Gaudi::Property<std::string> m_fieldMode{this, "FieldMode", "ATLAS", "Either ATLAS or Constant"}; diff --git a/Tracking/Acts/ActsGeometry/ActsGeometry/ActsWriteTrackingGeometry.h b/Tracking/Acts/ActsGeometry/ActsGeometry/ActsWriteTrackingGeometry.h index 206e485aed9..9d79fb9e7ed 100755 --- a/Tracking/Acts/ActsGeometry/ActsGeometry/ActsWriteTrackingGeometry.h +++ b/Tracking/Acts/ActsGeometry/ActsGeometry/ActsWriteTrackingGeometry.h @@ -8,7 +8,6 @@ // ATHENA #include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "GaudiKernel/ServiceHandle.h" -#include "MagFieldInterfaces/IMagFieldSvc.h" #include "AthenaKernel/IAthRNGSvc.h" #include "GaudiKernel/Property.h" /*no forward decl: typedef*/ #include "GaudiKernel/ISvcLocator.h" diff --git a/Tracking/Acts/ActsGeometry/ActsGeometry/ActsWriteTrackingGeometryTransforms.h b/Tracking/Acts/ActsGeometry/ActsGeometry/ActsWriteTrackingGeometryTransforms.h index ee427c47165..14d1da49533 100644 --- a/Tracking/Acts/ActsGeometry/ActsGeometry/ActsWriteTrackingGeometryTransforms.h +++ b/Tracking/Acts/ActsGeometry/ActsGeometry/ActsWriteTrackingGeometryTransforms.h @@ -8,7 +8,6 @@ // ATHENA #include "AthenaBaseComps/AthAlgorithm.h" #include "GaudiKernel/ServiceHandle.h" -#include "MagFieldInterfaces/IMagFieldSvc.h" #include "AthenaKernel/IAthRNGSvc.h" #include "GaudiKernel/Property.h" /*no forward decl: typedef*/ #include "GaudiKernel/ISvcLocator.h" diff --git a/Tracking/Acts/ActsGeometry/CMakeLists.txt b/Tracking/Acts/ActsGeometry/CMakeLists.txt index 15827aae1bc..9f516690bfe 100755 --- a/Tracking/Acts/ActsGeometry/CMakeLists.txt +++ b/Tracking/Acts/ActsGeometry/CMakeLists.txt @@ -18,7 +18,7 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/GeoPrimitives Event/EventInfo GaudiKernel - MagneticField/MagFieldInterfaces + MagFieldElements MagFieldConditions Calorimeter/CaloDetDescr Tracking/Acts/ActsGeometryInterfaces Tracking/Acts/ActsInterop @@ -52,7 +52,8 @@ atlas_add_library( ActsGeometryLib TrkGeometry PixelReadoutGeometry SCT_ReadoutGeometry - TRT_ReadoutGeometry) + TRT_ReadoutGeometry + MagFieldElements MagFieldConditions) atlas_add_component( ActsGeometry src/ActsExtrapolationAlg.cxx diff --git a/Tracking/Acts/ActsGeometry/src/ActsExtrapolationAlg.cxx b/Tracking/Acts/ActsGeometry/src/ActsExtrapolationAlg.cxx index 84ada281557..30b177811a3 100755 --- a/Tracking/Acts/ActsGeometry/src/ActsExtrapolationAlg.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsExtrapolationAlg.cxx @@ -9,7 +9,6 @@ #include "AthenaKernel/RNGWrapper.h" #include "GaudiKernel/EventContext.h" #include "GaudiKernel/ISvcLocator.h" -#include "MagFieldInterfaces/IMagFieldSvc.h" // ACTS #include "Acts/Propagator/MaterialInteractor.hpp" diff --git a/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx b/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx index 5ba834fc0b9..cd0995ca7a0 100644 --- a/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx @@ -6,7 +6,6 @@ // ATHENA #include "GaudiKernel/IInterface.h" -#include "MagFieldInterfaces/IMagFieldSvc.h" // PACKAGE #include "ActsGeometry/ActsGeometryContext.h" @@ -51,8 +50,7 @@ using ActsExtrapolationDetail::VariantPropagator; ActsExtrapolationTool::ActsExtrapolationTool(const std::string& type, const std::string& name, const IInterface* parent) - : base_class(type, name, parent), - m_fieldServiceHandle("AtlasFieldSvc", name) + : base_class(type, name, parent) { } @@ -76,12 +74,13 @@ ActsExtrapolationTool::initialize() Acts::Navigator navigator(trackingGeometry); - if (m_fieldMode == "ATLAS"s) { - // we need the field service - ATH_CHECK( m_fieldServiceHandle.retrieve() ); + if (m_fieldMode == "ATLAS"s) { ATH_MSG_INFO("Using ATLAS magnetic field service"); using BField_t = ATLASMagneticFieldWrapper; - BField_t bField(m_fieldServiceHandle.get()); + + ATH_CHECK( m_fieldCacheCondObjInputKey.initialize() ); + + BField_t bField(m_fieldCacheCondObjInputKey); auto stepper = Acts::EigenStepper<BField_t>(std::move(bField)); auto propagator = Acts::Propagator<decltype(stepper), Acts::Navigator>(std::move(stepper), std::move(navigator)); diff --git a/Tracking/Acts/ActsGeometry/src/ActsMaterialMapping.cxx b/Tracking/Acts/ActsGeometry/src/ActsMaterialMapping.cxx index 7ecd32bcf82..ae6842218a4 100755 --- a/Tracking/Acts/ActsGeometry/src/ActsMaterialMapping.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsMaterialMapping.cxx @@ -10,7 +10,6 @@ #include "ActsGeometry/IActsPropStepRootWriterSvc.h" #include "GaudiKernel/EventContext.h" #include "GaudiKernel/ISvcLocator.h" -#include "MagFieldInterfaces/IMagFieldSvc.h" // ACTS #include "Acts/Propagator/detail/SteppingLogger.hpp" diff --git a/Tracking/Acts/ActsGeometry/src/ActsSurfaceMappingTool.cxx b/Tracking/Acts/ActsGeometry/src/ActsSurfaceMappingTool.cxx index ce6e4327358..68fff9b388d 100644 --- a/Tracking/Acts/ActsGeometry/src/ActsSurfaceMappingTool.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsSurfaceMappingTool.cxx @@ -6,8 +6,6 @@ // ATHENA #include "GaudiKernel/IInterface.h" -#include "MagFieldInterfaces/IMagFieldSvc.h" - // PACKAGE #include "ActsInterop/Logger.h" #include "ActsGeometry/ActsGeometryContext.h" diff --git a/Tracking/Acts/ActsGeometry/src/ActsVolumeMappingTool.cxx b/Tracking/Acts/ActsGeometry/src/ActsVolumeMappingTool.cxx index 627bc1cfdf8..97c4a7ad805 100644 --- a/Tracking/Acts/ActsGeometry/src/ActsVolumeMappingTool.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsVolumeMappingTool.cxx @@ -6,7 +6,6 @@ // ATHENA #include "GaudiKernel/IInterface.h" -#include "MagFieldInterfaces/IMagFieldSvc.h" // PACKAGE #include "ActsGeometry/ActsGeometryContext.h" -- GitLab From afe2c874392e61f1965d786163dd783fe67bf16f Mon Sep 17 00:00:00 2001 From: Bastian Schlag <bastian.schlag@cern.ch> Date: Thu, 25 Jun 2020 16:17:00 +0200 Subject: [PATCH 358/459] replace MagFieldSvc by condition data in ActsPriVtxFinder package --- .../ActsAdaptiveMultiPriVtxFinderTool.h | 6 +----- Tracking/Acts/ActsPriVtxFinder/CMakeLists.txt | 5 +++-- .../src/ActsAdaptiveMultiPriVtxFinderTool.cxx | 11 ++++------- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h b/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h index 412ae34e4a2..02b941722d8 100644 --- a/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h +++ b/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h @@ -43,10 +43,6 @@ #include <cmath> -namespace MagField { - class IMagFieldSvc; -} - namespace Acts { class Surface; class BoundaryCheck; @@ -114,7 +110,7 @@ private: std::shared_ptr<VertexFinder> m_vertexFinder = nullptr; - ServiceHandle<MagField::IMagFieldSvc> m_fieldServiceHandle; + SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}; ToolHandle<IActsTrackingGeometryTool> m_trackingGeometryTool{this, "TrackingGeometryTool", "", "ActsTrackingGeometryTool"}; ToolHandle<InDet::IInDetTrackSelectionTool> m_trkFilter{this, "TrackSelector", "", "InDetTrackSelectionTool"}; SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"}; diff --git a/Tracking/Acts/ActsPriVtxFinder/CMakeLists.txt b/Tracking/Acts/ActsPriVtxFinder/CMakeLists.txt index 27be7af70e0..bb78265c757 100644 --- a/Tracking/Acts/ActsPriVtxFinder/CMakeLists.txt +++ b/Tracking/Acts/ActsPriVtxFinder/CMakeLists.txt @@ -20,7 +20,7 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/GeoPrimitives Event/EventInfo GaudiKernel - MagneticField/MagFieldInterfaces + MagFieldElements MagFieldConditions Calorimeter/CaloDetDescr Tracking/Acts/ActsInterop Tracking/TrkEvent/TrkTrackLink @@ -68,7 +68,8 @@ atlas_add_library( ActsPriVtxFinderLib VxVertex TrkVertexFitterInterfaces AthenaMonitoringKernelLib - InDetRecToolInterfaces ) + InDetRecToolInterfaces + MagFieldElements MagFieldConditions) atlas_add_component( ActsPriVtxFinder src/*.cxx diff --git a/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx b/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx index 55d42bb2d89..d7e1c8e395b 100755 --- a/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx +++ b/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx @@ -6,7 +6,6 @@ // ATHENA #include "GaudiKernel/IInterface.h" -#include "MagFieldInterfaces/IMagFieldSvc.h" #include "TrkParticleBase/LinkToTrackParticleBase.h" #include "TrkLinks/LinkToXAODTrackParticle.h" #include "xAODTracking/TrackParticleContainer.h" @@ -42,8 +41,7 @@ namespace ActsAdaptiveMultiPriVtxFinderTool::ActsAdaptiveMultiPriVtxFinderTool(const std::string& type, const std::string& name, const IInterface* parent) - : base_class(type, name, parent), - m_fieldServiceHandle("AtlasFieldSvc", name) + : base_class(type, name, parent) {} StatusCode @@ -61,11 +59,10 @@ ActsAdaptiveMultiPriVtxFinderTool::initialize() Acts::Navigator navigator(trackingGeometry); - // We need the field service - ATH_CHECK( m_fieldServiceHandle.retrieve() ); - ATH_MSG_INFO("Using ATLAS magnetic field service"); using BField_t = ATLASMagneticFieldWrapper; - BField_t bField(m_fieldServiceHandle.get()); + ATH_CHECK( m_fieldCacheCondObjInputKey.initialize() ); + BField_t bField(m_fieldCacheCondObjInputKey); + auto stepper = Acts::EigenStepper<BField_t>(std::move(bField)); auto propagator = std::make_shared<Propagator>(std::move(stepper), std::move(navigator)); -- GitLab From f91b031e3b7ab1af5a47e26b572368caef6b1a1d Mon Sep 17 00:00:00 2001 From: Bastian Schlag <bastian.schlag@cern.ch> Date: Thu, 25 Jun 2020 23:08:02 +0200 Subject: [PATCH 359/459] encapsulate getFieldCache in separate function --- .../ActsGeometry/ATLASMagneticFieldWrapper.h | 38 ++++++++----------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/Tracking/Acts/ActsGeometry/ActsGeometry/ATLASMagneticFieldWrapper.h b/Tracking/Acts/ActsGeometry/ActsGeometry/ATLASMagneticFieldWrapper.h index ecb882fc408..616180f2227 100644 --- a/Tracking/Acts/ActsGeometry/ActsGeometry/ATLASMagneticFieldWrapper.h +++ b/Tracking/Acts/ActsGeometry/ActsGeometry/ATLASMagneticFieldWrapper.h @@ -33,16 +33,7 @@ public: Acts::Vector3D getField(const Acts::Vector3D& pos) const { - SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle{m_fieldCacheCondObjInputKey, Gaudi::Hive::currentContext()}; - if (!readHandle.isValid()) { - std::stringstream msg; - msg << "Failed to retrieve magmnetic field conditions data " << m_fieldCacheCondObjInputKey.key() << "."; - throw std::runtime_error(msg.str()); - } - const AtlasFieldCacheCondObj* fieldCondObj{*readHandle}; - - MagField::AtlasFieldCache fieldCache; - fieldCondObj->getInitializedCache (fieldCache); + MagField::AtlasFieldCache fieldCache = getFieldCache(); double posXYZ[3]; posXYZ[0] = pos.x(); @@ -69,16 +60,7 @@ public: getFieldGradient(const Acts::Vector3D& position, Acts::ActsMatrixD<3, 3>& gradient) const { - SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle{m_fieldCacheCondObjInputKey, Gaudi::Hive::currentContext()}; - if (!readHandle.isValid()) { - std::stringstream msg; - msg << "Failed to retrieve magmnetic field conditions data " << m_fieldCacheCondObjInputKey.key() << "."; - throw std::runtime_error(msg.str()); - } - const AtlasFieldCacheCondObj* fieldCondObj{*readHandle}; - - MagField::AtlasFieldCache fieldCache; - fieldCondObj->getInitializedCache (fieldCache); + MagField::AtlasFieldCache fieldCache = getFieldCache(); double posXYZ[3]; posXYZ[0] = position.x(); @@ -112,11 +94,23 @@ public: private: + MagField::AtlasFieldCache getFieldCache() const { + SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle{m_fieldCacheCondObjInputKey, Gaudi::Hive::currentContext()}; + if (!readHandle.isValid()) { + std::stringstream msg; + msg << "Failed to retrieve magmnetic field conditions data " << m_fieldCacheCondObjInputKey.key() << "."; + throw std::runtime_error(msg.str()); + } + const AtlasFieldCacheCondObj* fieldCondObj{*readHandle}; + MagField::AtlasFieldCache fieldCache; + fieldCondObj->getInitializedCache (fieldCache); + + return fieldCache; + } - // TODO: store pointer?? + // TODO: store pointer instead? SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey; - //{this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}; const double m_bFieldUnit = 1000.*Acts::UnitConstants::T; }; -- GitLab From 49c144c56f5b12eca2602a9c03f678826873b706 Mon Sep 17 00:00:00 2001 From: Bastian Schlag <bastian.schlag@cern.ch> Date: Tue, 14 Jul 2020 10:53:28 +0200 Subject: [PATCH 360/459] use bfield caching with Acts::MagneticFieldContext in Acts package --- .../ActsGeometry/ATLASMagneticFieldWrapper.h | 71 +++++-------------- .../ActsGeometry/ActsExtrapolationTool.h | 13 ++++ .../src/ActsExtrapolationTool.cxx | 4 +- .../ActsAdaptiveMultiPriVtxFinderTool.h | 1 - .../src/ActsAdaptiveMultiPriVtxFinderTool.cxx | 4 +- 5 files changed, 33 insertions(+), 60 deletions(-) diff --git a/Tracking/Acts/ActsGeometry/ActsGeometry/ATLASMagneticFieldWrapper.h b/Tracking/Acts/ActsGeometry/ActsGeometry/ATLASMagneticFieldWrapper.h index 616180f2227..1a3433422e0 100644 --- a/Tracking/Acts/ActsGeometry/ActsGeometry/ATLASMagneticFieldWrapper.h +++ b/Tracking/Acts/ActsGeometry/ActsGeometry/ATLASMagneticFieldWrapper.h @@ -18,29 +18,26 @@ class ATLASMagneticFieldWrapper public: struct Cache { - // empty, no cache for now - Cache(std::reference_wrapper<const Acts::MagneticFieldContext> /*mctx*/) { - // does nothing, but is required + Cache(std::reference_wrapper<const Acts::MagneticFieldContext> mctx) { + std::any_cast<const AtlasFieldCacheCondObj*>(mctx)->getInitializedCache(fieldCache); } + + MagField::AtlasFieldCache fieldCache; }; - ATLASMagneticFieldWrapper(const SG::ReadCondHandleKey<AtlasFieldCacheCondObj>& fieldCacheCondObjInputKey) - : m_fieldCacheCondObjInputKey(fieldCacheCondObjInputKey) - { - } + ATLASMagneticFieldWrapper() = default; Acts::Vector3D - getField(const Acts::Vector3D& pos) const + getField(const Acts::Vector3D& position, Cache& cache) const { - MagField::AtlasFieldCache fieldCache = getFieldCache(); - double posXYZ[3]; - posXYZ[0] = pos.x(); - posXYZ[0] = pos.y(); - posXYZ[0] = pos.z(); + posXYZ[0] = position.x(); + posXYZ[1] = position.y(); + posXYZ[2] = position.z(); double BField[3]; - fieldCache.getField(posXYZ, BField); + + cache.fieldCache.getField(posXYZ, BField); // Magnetic field Acts::Vector3D bfield{BField[0],BField[1],BField[2]}; @@ -51,25 +48,18 @@ public: } Acts::Vector3D - getField(const Acts::Vector3D& pos, Cache& /*cache*/) const - { - return getField(pos); - } - - Acts::Vector3D - getFieldGradient(const Acts::Vector3D& position, Acts::ActsMatrixD<3, 3>& gradient) const + getFieldGradient(const Acts::Vector3D& position, + Acts::ActsMatrixD<3, 3>& gradient, + Cache& cache) const { - - MagField::AtlasFieldCache fieldCache = getFieldCache(); - double posXYZ[3]; posXYZ[0] = position.x(); - posXYZ[0] = position.y(); - posXYZ[0] = position.z(); + posXYZ[1] = position.y(); + posXYZ[2] = position.z(); double BField[3]; double grad[9]; - fieldCache.getField(posXYZ, BField, grad); + cache.fieldCache.getField(posXYZ, BField, grad); // Magnetic field Acts::Vector3D bfield{BField[0], BField[1],BField[2]}; @@ -84,34 +74,7 @@ public: return bfield; } - Acts::Vector3D - getFieldGradient(const Acts::Vector3D& position, - Acts::ActsMatrixD<3, 3>& gradient, - Cache& /*cache*/) const - { - return getFieldGradient(position, gradient); - } - private: - - MagField::AtlasFieldCache getFieldCache() const { - SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle{m_fieldCacheCondObjInputKey, Gaudi::Hive::currentContext()}; - if (!readHandle.isValid()) { - std::stringstream msg; - msg << "Failed to retrieve magmnetic field conditions data " << m_fieldCacheCondObjInputKey.key() << "."; - throw std::runtime_error(msg.str()); - } - const AtlasFieldCacheCondObj* fieldCondObj{*readHandle}; - - MagField::AtlasFieldCache fieldCache; - fieldCondObj->getInitializedCache (fieldCache); - - return fieldCache; - } - - // TODO: store pointer instead? - SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey; - const double m_bFieldUnit = 1000.*Acts::UnitConstants::T; }; diff --git a/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h b/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h index c71b63dc04d..6a8b87bb3a8 100644 --- a/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h +++ b/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h @@ -98,6 +98,19 @@ public: } + Acts::MagneticFieldContext getMagneticFieldContext(const EventContext& ctx) const { + SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle{m_fieldCacheCondObjInputKey, ctx}; + if (!readHandle.isValid()) { + std::stringstream msg; + msg << "Failed to retrieve magnetic field condition data " << m_fieldCacheCondObjInputKey.key() << "."; + throw std::runtime_error(msg.str()); + } + const AtlasFieldCacheCondObj* fieldCondObj{*readHandle}; + + return Acts::MagneticFieldContext(fieldCondObj); + } + + private: std::unique_ptr<ActsExtrapolationDetail::VariantPropagator> m_varProp; diff --git a/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx b/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx index cd0995ca7a0..f532e0215e2 100644 --- a/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx @@ -80,7 +80,7 @@ ActsExtrapolationTool::initialize() ATH_CHECK( m_fieldCacheCondObjInputKey.initialize() ); - BField_t bField(m_fieldCacheCondObjInputKey); + BField_t bField; auto stepper = Acts::EigenStepper<BField_t>(std::move(bField)); auto propagator = Acts::Propagator<decltype(stepper), Acts::Navigator>(std::move(stepper), std::move(navigator)); @@ -114,7 +114,7 @@ ActsExtrapolationTool::propagationSteps(const EventContext& ctx, using namespace Acts::UnitLiterals; ATH_MSG_VERBOSE(name() << "::" << __FUNCTION__ << " begin"); - Acts::MagneticFieldContext mctx; + Acts::MagneticFieldContext mctx = getMagneticFieldContext(ctx); const ActsGeometryContext& gctx = m_trackingGeometryTool->getGeometryContext(ctx); diff --git a/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h b/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h index 02b941722d8..1ebda16e8df 100644 --- a/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h +++ b/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h @@ -110,7 +110,6 @@ private: std::shared_ptr<VertexFinder> m_vertexFinder = nullptr; - SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}; ToolHandle<IActsTrackingGeometryTool> m_trackingGeometryTool{this, "TrackingGeometryTool", "", "ActsTrackingGeometryTool"}; ToolHandle<InDet::IInDetTrackSelectionTool> m_trkFilter{this, "TrackSelector", "", "InDetTrackSelectionTool"}; SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"}; diff --git a/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx b/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx index d7e1c8e395b..95ecb2f6357 100755 --- a/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx +++ b/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx @@ -60,9 +60,7 @@ ActsAdaptiveMultiPriVtxFinderTool::initialize() Acts::Navigator navigator(trackingGeometry); using BField_t = ATLASMagneticFieldWrapper; - ATH_CHECK( m_fieldCacheCondObjInputKey.initialize() ); - BField_t bField(m_fieldCacheCondObjInputKey); - + BField_t bField; auto stepper = Acts::EigenStepper<BField_t>(std::move(bField)); auto propagator = std::make_shared<Propagator>(std::move(stepper), std::move(navigator)); -- GitLab From 3c7d7961f7d347f0836450a8186bfa15475e4e6c Mon Sep 17 00:00:00 2001 From: Bastian Schlag <bastian.schlag@cern.ch> Date: Tue, 14 Jul 2020 11:12:12 +0200 Subject: [PATCH 361/459] retrieve Acts::MagneticFieldContext from ActsExtrapolationTool --- Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx | 2 +- .../ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h | 3 +++ .../src/ActsAdaptiveMultiPriVtxFinderTool.cxx | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx b/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx index f532e0215e2..7e5821409dd 100644 --- a/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx @@ -319,7 +319,7 @@ ActsExtrapolationTool::propagate(const EventContext& ctx, using namespace Acts::UnitLiterals; ATH_MSG_VERBOSE(name() << "::" << __FUNCTION__ << " begin"); - Acts::MagneticFieldContext mctx; + Acts::MagneticFieldContext mctx = getMagneticFieldContext(ctx); const ActsGeometryContext& gctx = m_trackingGeometryTool->getGeometryContext(ctx); diff --git a/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h b/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h index 1ebda16e8df..5fc1fae0d92 100644 --- a/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h +++ b/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h @@ -19,6 +19,7 @@ // PACKAGE #include "ActsGeometryInterfaces/IActsTrackingGeometryTool.h" +#include "ActsGeometryInterfaces/IActsExtrapolationTool.h" #include "ActsGeometry/ActsGeometryContext.h" #include "ActsGeometry/ATLASMagneticFieldWrapper.h" @@ -111,9 +112,11 @@ private: std::shared_ptr<VertexFinder> m_vertexFinder = nullptr; ToolHandle<IActsTrackingGeometryTool> m_trackingGeometryTool{this, "TrackingGeometryTool", "", "ActsTrackingGeometryTool"}; + ToolHandle<IActsExtrapolationTool> m_extrapolationTool{this, "ExtrapolationTool", "", "ActsExtrapolationTool"}; ToolHandle<InDet::IInDetTrackSelectionTool> m_trkFilter{this, "TrackSelector", "", "InDetTrackSelectionTool"}; SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"}; + // Configuration variables // For details check ACTS documentation // diff --git a/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx b/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx index 95ecb2f6357..66c88b194b7 100755 --- a/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx +++ b/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx @@ -57,6 +57,8 @@ ActsAdaptiveMultiPriVtxFinderTool::initialize() std::shared_ptr<const Acts::TrackingGeometry> trackingGeometry = m_trackingGeometryTool->trackingGeometry(); + ATH_CHECK( m_extrapolationTool.retrieve() ); + Acts::Navigator navigator(trackingGeometry); using BField_t = ATLASMagneticFieldWrapper; @@ -216,7 +218,7 @@ ActsAdaptiveMultiPriVtxFinderTool::findVertex(const EventContext& ctx, std::vect Acts::Surface::makeShared<Acts::PerigeeSurface>(beamSpotPos); // TODO: Get the correct magnetic field context - Acts::MagneticFieldContext magFieldContext; + Acts::MagneticFieldContext magFieldContext = m_extrapolationTool.getMagneticFieldContext(ctx); const auto& geoContext = m_trackingGeometryTool->getGeometryContext(ctx).any(); -- GitLab From ab80e77c2d3b62844838b49d3b21f03d4aa96c0b Mon Sep 17 00:00:00 2001 From: Julie Kirk <Julie.Kirk@cern.ch> Date: Wed, 29 Jul 2020 10:29:46 +0200 Subject: [PATCH 362/459] fix unit test modified: Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py --- .../TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py index 912bdf5095b..dbf9b1d6b19 100755 --- a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py +++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_all_ttbar_pu80_mt.py @@ -27,7 +27,7 @@ from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps -from TrigInDetValidation.TrigInDetArtSteps import TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep +from TrigInDetValidation.TrigInDetArtSteps import TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep import sys,getopt -- GitLab From 34cb9fbbfcddca122df74a73371706eb45ed69d6 Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Wed, 29 Jul 2020 11:35:16 +0200 Subject: [PATCH 363/459] Pass flags to getL1ConfigSvc, prevent running L1 menu generation twice (since it's memoized) --- .../TriggerCommon/TriggerJobOpts/python/Lvl1SimulationConfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/Lvl1SimulationConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/Lvl1SimulationConfig.py index 6794393247c..d8193e398fe 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/Lvl1SimulationConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/Lvl1SimulationConfig.py @@ -27,7 +27,7 @@ def Lvl1SimulationSequence( flags = None ): TriggerFlags.outputLVL1configFile = None log.info("setting up LVL1ConfigSvc, including the menu generation") from TrigConfigSvc.TrigConfigSvcCfg import getL1ConfigSvc - svcMgr += conf2toConfigurable(getL1ConfigSvc()) + svcMgr += conf2toConfigurable(getL1ConfigSvc(flags)) ################################################## # Calo -- GitLab From cb96a34f8884a4a47f59181d643fdb25b01d29e7 Mon Sep 17 00:00:00 2001 From: Mark Hodgkinson <mhodgkin@aiatlas025.cern.ch> Date: Wed, 29 Jul 2020 12:28:28 +0200 Subject: [PATCH 364/459] Bug fix to usage of preExec via bash string for the q-tests. --- .../test_reco_tf_compare_SerialAndThreadedAthenas.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Reconstruction/RecExample/RecExRecoTest/test/test_reco_tf_compare_SerialAndThreadedAthenas.sh b/Reconstruction/RecExample/RecExRecoTest/test/test_reco_tf_compare_SerialAndThreadedAthenas.sh index ee46bc03edd..f34ebe17d75 100755 --- a/Reconstruction/RecExample/RecExRecoTest/test/test_reco_tf_compare_SerialAndThreadedAthenas.sh +++ b/Reconstruction/RecExample/RecExRecoTest/test/test_reco_tf_compare_SerialAndThreadedAthenas.sh @@ -1,10 +1,11 @@ #!/bin/bash -preExecString = 'RAWtoESD:from RecExConfig.RecFlags import rec;rec.doTrigger.set_Value_and_Lock(False);from AthenaMonitoring.DQMonFlags import jobproperties;jobproperties.DQMonFlagsCont.doMonitoring.set_Value_and_Lock(False)' +preExecString="RAWtoESD:from RecExConfig.RecFlags import rec;rec.doTrigger.set_Value_and_Lock(False);from AthenaMonitoring.DQMonFlags import jobproperties;jobproperties.DQMonFlagsCont.doMonitoring.set_Value_and_Lock(False)" +echo $preExecString echo "Creating new serial directory" mkdir serial; cd serial -Reco_tf.py --AMI=$1 --preExec=preExecString --outputAODFile=myAOD.pool.root --outputESDFile=myESD.pool.root | tee athenaSerial.log +Reco_tf.py --AMI=$1 --preExec="${preExecString}" --outputAODFile=myAOD.pool.root --outputESDFile=myESD.pool.root | tee athenaSerial.log rc=${PIPESTATUS[0]} echo "art-result: $rc Serial" @@ -14,7 +15,7 @@ cd ../ echo "Creating new threadOne directory" mkdir threadOne; cd threadOne -Reco_tf.py --athenaopts="--threads=1" --AMI=$1 --preExec=preExecString --outputAODFile=myAOD.pool.root --outputESDFile=myESD.pool.root | tee athenaOneThread.log +Reco_tf.py --athenaopts="--threads=1" --AMI=$1 --preExec="${preExecString}" --outputAODFile=myAOD.pool.root --outputESDFile=myESD.pool.root | tee athenaOneThread.log rc1=${PIPESTATUS[0]} echo "art-result: $rc1 OneThread" @@ -36,7 +37,7 @@ cd ../ echo "Creating new threadTwo directory" mkdir threadTwo; cd threadTwo -Reco_tf.py --athenaopts="--threads=2" --AMI=$1 --preExec=preExecString --outputAODFile=myAOD.pool.root --outputESDFile=myESD.pool.root | tee athenaTwoThreads.log +Reco_tf.py --athenaopts="--threads=2" --AMI=$1 --preExec="${preExecString}" --outputAODFile=myAOD.pool.root --outputESDFile=myESD.pool.root | tee athenaTwoThreads.log rc2=${PIPESTATUS[0]} echo "art-result: $rc2 TwoThreads" @@ -54,7 +55,7 @@ cd ../ echo "Creating new threadFive directory" mkdir threadFive; cd threadFive -Reco_tf.py --athenaopts="--threads=5" --AMI=$1 --preExec=preExecString --outputAODFile=myAOD.pool.root --outputESDFile=myESD.pool.root | tee athenaFiveThreads.log +Reco_tf.py --athenaopts="--threads=5" --AMI=$1 --preExec="${preExecString}" --outputAODFile=myAOD.pool.root --outputESDFile=myESD.pool.root | tee athenaFiveThreads.log rc5=${PIPESTATUS[0]} echo "art-result: $rc5 FiveThreads" -- GitLab From edbed6a1a05348df66c7ebe72b5d1370e22b783d Mon Sep 17 00:00:00 2001 From: Christian Grefe <christian.grefe@cern.ch> Date: Wed, 29 Jul 2020 12:33:54 +0200 Subject: [PATCH 365/459] Resolve conflict and move inline methods to icc --- .../InDetPrepRawData/TRT_DriftCircle.h | 118 ++---------------- .../InDetPrepRawData/TRT_DriftCircle.icc | 112 ++--------------- 2 files changed, 21 insertions(+), 209 deletions(-) diff --git a/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h b/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h index 9b58f7fd2ea..314efe47c2c 100755 --- a/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h +++ b/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.h @@ -117,7 +117,10 @@ class TRT_DriftCircle : public Trk::PrepRawData virtual bool driftTimeValid() const; /** return the detector element corresponding to this PRD */ - virtual const InDetDD::TRT_BaseElement* detectorElement() const; + virtual const InDetDD::TRT_BaseElement* detectorElement() const override final; + + /** Interface method checking the type*/ + virtual bool type(Trk::PrepRawDataType::Type type) const override final; // modifiers @@ -126,127 +129,32 @@ class TRT_DriftCircle : public Trk::PrepRawData //analysers + /** returns true if the hit is caused by noise with a high + probability. This is a temporary feature. To be replaced + by a tool that can be configured for different gas + speeds etc */ + virtual bool isNoise() const; + //debug printers /** dump information about the PRD object. */ - virtual MsgStream& dump( MsgStream& stream) const; + virtual MsgStream& dump( MsgStream& stream) const override; /** dump information about the PRD object. */ - virtual std::ostream& dump( std::ostream& stream) const; + virtual std::ostream& dump( std::ostream& stream) const override; private: // not const because of DataPool const InDetDD::TRT_BaseElement* m_detEl; unsigned int m_word; - }; MsgStream& operator << (MsgStream& stream, const TRT_DriftCircle& prd); std::ostream& operator << (std::ostream& stream, const TRT_DriftCircle& prd); - - -/////////////////////////////////////////////////////////////////// -// Inline methods: -/////////////////////////////////////////////////////////////////// - -inline unsigned int TRT_DriftCircle::getWord() const -{ - return m_word; } -inline int TRT_DriftCircle::driftTimeBin() const -{ - return TRT_LoLumRawData::driftTimeBin(m_word); -} - -inline int TRT_DriftCircle::trailingEdge() const -{ - return TRT_LoLumRawData::trailingEdge(m_word); -} - -inline bool TRT_DriftCircle::highLevel() const -{ - return TRT_LoLumRawData::highLevel(m_word); -} - - -inline bool -TRT_DriftCircle::firstBinHigh() const -{ - return (m_word & 0x02000000); -} - -inline bool -TRT_DriftCircle::lastBinHigh() const -{ - return (m_word & 0x1); -} - -inline double TRT_DriftCircle::timeOverThreshold() const -{ - return TRT_LoLumRawData::timeOverThreshold(m_word); -} - -inline double TRT_DriftCircle::rawDriftTime() const -{ - return (TRT_LoLumRawData::driftTimeBin(m_word)+0.5) * TRT_LoLumRawData::getDriftTimeBinWidth(); -} - -inline bool TRT_DriftCircle::driftTimeValid() const -{ - return m_word & 0x08000000; -} - -inline void TRT_DriftCircle::setDriftTimeValid(bool valid) -{ - unsigned maskfalse = 0xF7FFFFFF; - unsigned masktrue = 0x08000000; - if( valid ) { - m_word |= masktrue; - } else { - m_word &= maskfalse; } -} - -inline int TRT_DriftCircle::numberOfHighsBetweenEdges() const -{ - // should return always 0 with the largest island algorithm - int LE = driftTimeBin( ); - int TE = trailingEdge( ); - unsigned mask = 0x02000000; - int nhigh=0; - int i; - for (i = 0; i < 24; ++i) - { - if ( (m_word & mask) && i>=LE && i<=TE ) nhigh++; - mask >>= 1; - if (i == 7 || i == 15) mask >>= 1; - } - return nhigh; -} - -inline int TRT_DriftCircle::numberOfLowsBetweenEdges() const -{ - // should return always 0 with the largest island algorithm - int LE = driftTimeBin( ); - int TE = trailingEdge( ); - return (TE-LE+1-numberOfHighsBetweenEdges()); -} - - -inline bool TRT_DriftCircle::isNoise() const -{ - if( numberOfHighsBetweenEdges()<3 ) return true; - if( timeOverThreshold()<7.) return true; - return false; -} - -inline const InDetDD::TRT_BaseElement* TRT_DriftCircle::detectorElement() const -{ - return m_detEl; -} - -} +#include "InDetPrepRawData/TRT_DriftCircle.icc" #endif // TRKPREPRAWDATA_TRT_DRIFTCIRCLE_H diff --git a/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.icc b/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.icc index 90696e45840..c9dd69a96d4 100644 --- a/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.icc +++ b/InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/TRT_DriftCircle.icc @@ -13,107 +13,19 @@ TRT_DriftCircle::getWord() const inline int TRT_DriftCircle::driftTimeBin() const { - unsigned mask = 0x02000000; - unsigned word_LE = m_word >> 6; - word_LE = word_LE << 6; - - mask >>= 1; - bool SawZero = false; - int i; - for (i = 1; i < 18; ++i) { - if ((word_LE & mask) && SawZero) - break; - else if (!(word_LE & mask)) - SawZero = true; - mask >>= 1; - if (i == 7 || i == 15) - mask >>= 1; - } - if (i == 18) - i = 0; - return i; + return TRT_LoLumRawData::driftTimeBin(m_word); } inline int TRT_DriftCircle::trailingEdge() const { - unsigned mask = 0x00000001; - unsigned mask_word = 0x0001fff0; // 11111111 1 11110000 - unsigned mask_last_bit = 0x10; // 10000 - - unsigned word_TE = m_word & mask_word; - - bool SawZero = true; - bool SawZero1 = false; - bool SawZero2 = false; - bool SawUnit1 = false; - int i = 0; - int j = 0; - int k = 0; - - if (word_TE & mask_last_bit) { - - for (j = 0; j < 11; ++j) { - mask_last_bit = mask_last_bit << 1; - - if (j == 3) - mask_last_bit = mask_last_bit << 1; - - if (!(word_TE & mask_last_bit)) { - SawZero2 = true; - break; - } - } - - if (SawZero2 == false) - return 19; - - if (SawZero2 == true) { - for (k = j + 1; k < 11; ++k) { - mask_last_bit = mask_last_bit << 1; - - if (k == 3) - mask_last_bit = mask_last_bit << 1; - - if (word_TE & mask_last_bit) { - SawUnit1 = true; - break; - } - } - } - - if (SawUnit1 == false && SawZero2 == true) - return 19; - } - - //+++++++++++++++++++++++++++++++++++++ - - for (i = 0; i < 24; ++i) { - - if (!(word_TE & mask) && i > 3) { - SawZero1 = true; - } - if (SawZero1) { - if ((word_TE & mask) && SawZero) - break; - else if (!(word_TE & mask)) - SawZero = true; - } - mask <<= 1; - if (i == 7 || i == 15) - mask <<= 1; - } - - if (24 == i) - return i; - - return (23 - i); + return TRT_LoLumRawData::trailingEdge(m_word); } inline bool TRT_DriftCircle::highLevel() const { - return (m_word & 0x04020100); + return TRT_LoLumRawData::highLevel(m_word); } inline bool @@ -131,24 +43,13 @@ TRT_DriftCircle::lastBinHigh() const inline double TRT_DriftCircle::timeOverThreshold() const { - double binWidth = 3.125; - - int LE = driftTimeBin(); - int TE = trailingEdge(); - - if ((0 == LE) || (24 == LE) || (24 == TE) || (0 == TE) || (23 == LE)) { - return 0; - } - - double time = (double)(TE - LE + 1) * binWidth; - - return time; + return TRT_LoLumRawData::timeOverThreshold(m_word); } inline double TRT_DriftCircle::rawDriftTime() const { - return (driftTimeBin() + 0.5) * 3.125; + return (TRT_LoLumRawData::driftTimeBin(m_word)+0.5) * TRT_LoLumRawData::getDriftTimeBinWidth(); } inline bool @@ -172,6 +73,7 @@ TRT_DriftCircle::setDriftTimeValid(bool valid) inline int TRT_DriftCircle::numberOfHighsBetweenEdges() const { + // should return always 0 with the largest island algorithm int LE = driftTimeBin(); int TE = trailingEdge(); unsigned mask = 0x02000000; @@ -190,6 +92,7 @@ TRT_DriftCircle::numberOfHighsBetweenEdges() const inline int TRT_DriftCircle::numberOfLowsBetweenEdges() const { + // should return always 0 with the largest island algorithm int LE = driftTimeBin(); int TE = trailingEdge(); return (TE - LE + 1 - numberOfHighsBetweenEdges()); @@ -204,6 +107,7 @@ TRT_DriftCircle::isNoise() const return true; return false; } + inline bool TRT_DriftCircle::type(Trk::PrepRawDataType::Type type) const { -- GitLab From f011e86bb301d02e637ceea99cf21e2e76a1aa31 Mon Sep 17 00:00:00 2001 From: Bastian Schlag <bastian.schlag@cern.ch> Date: Wed, 29 Jul 2020 12:42:59 +0200 Subject: [PATCH 366/459] move getMagneticFieldContext defintion to ActsExtrapolationTool.cxx --- .../ActsGeometry/ActsExtrapolationTool.h | 14 +++----------- .../ActsGeometry/src/ActsExtrapolationTool.cxx | 12 ++++++++++++ .../IActsExtrapolationTool.h | 4 ++++ .../ActsAdaptiveMultiPriVtxFinderTool.h | 1 - .../src/ActsAdaptiveMultiPriVtxFinderTool.cxx | 4 ++-- 5 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h b/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h index 6a8b87bb3a8..2be0eca267f 100644 --- a/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h +++ b/Tracking/Acts/ActsGeometry/ActsGeometry/ActsExtrapolationTool.h @@ -98,17 +98,9 @@ public: } - Acts::MagneticFieldContext getMagneticFieldContext(const EventContext& ctx) const { - SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle{m_fieldCacheCondObjInputKey, ctx}; - if (!readHandle.isValid()) { - std::stringstream msg; - msg << "Failed to retrieve magnetic field condition data " << m_fieldCacheCondObjInputKey.key() << "."; - throw std::runtime_error(msg.str()); - } - const AtlasFieldCacheCondObj* fieldCondObj{*readHandle}; - - return Acts::MagneticFieldContext(fieldCondObj); - } + virtual + Acts::MagneticFieldContext + getMagneticFieldContext(const EventContext& ctx) const override; private: diff --git a/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx b/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx index 7e5821409dd..f572ebaf15b 100644 --- a/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsExtrapolationTool.cxx @@ -359,3 +359,15 @@ ActsExtrapolationTool::propagate(const EventContext& ctx, return parameters; } + +Acts::MagneticFieldContext ActsExtrapolationTool::getMagneticFieldContext(const EventContext& ctx) const { + SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle{m_fieldCacheCondObjInputKey, ctx}; + if (!readHandle.isValid()) { + std::stringstream msg; + msg << "Failed to retrieve magnetic field condition data " << m_fieldCacheCondObjInputKey.key() << "."; + throw std::runtime_error(msg.str()); + } + const AtlasFieldCacheCondObj* fieldCondObj{*readHandle}; + + return Acts::MagneticFieldContext(fieldCondObj); +} diff --git a/Tracking/Acts/ActsGeometryInterfaces/ActsGeometryInterfaces/IActsExtrapolationTool.h b/Tracking/Acts/ActsGeometryInterfaces/ActsGeometryInterfaces/IActsExtrapolationTool.h index 380aa667da0..c012a91e842 100644 --- a/Tracking/Acts/ActsGeometryInterfaces/ActsGeometryInterfaces/IActsExtrapolationTool.h +++ b/Tracking/Acts/ActsGeometryInterfaces/ActsGeometryInterfaces/IActsExtrapolationTool.h @@ -10,6 +10,7 @@ #include "GaudiKernel/IAlgTool.h" #include "GaudiKernel/EventContext.h" #include "ActsGeometry/ActsGeometryContext.h" +#include "Acts/MagneticField/MagneticFieldContext.hpp" #include "Acts/Propagator/MaterialInteractor.hpp" #include "Acts/Propagator/detail/SteppingLogger.hpp" @@ -63,6 +64,9 @@ class IActsExtrapolationTool : virtual public IAlgTool { virtual const IActsTrackingGeometryTool* trackingGeometryTool() const = 0; + + virtual + Acts::MagneticFieldContext getMagneticFieldContext(const EventContext& ctx) const = 0; }; #endif diff --git a/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h b/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h index 5fc1fae0d92..cfb416be91c 100644 --- a/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h +++ b/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h @@ -27,7 +27,6 @@ #include "Acts/Propagator/EigenStepper.hpp" #include "Acts/Propagator/Propagator.hpp" #include "Acts/Propagator/Navigator.hpp" -#include "Acts/MagneticField/MagneticFieldContext.hpp" #include "Acts/Utilities/Units.hpp" #include "Acts/Utilities/Helpers.hpp" #include "Acts/Vertexing/AdaptiveMultiVertexFinder.hpp" diff --git a/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx b/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx index 66c88b194b7..3cd5914f102 100755 --- a/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx +++ b/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx @@ -217,8 +217,8 @@ ActsAdaptiveMultiPriVtxFinderTool::findVertex(const EventContext& ctx, std::vect std::shared_ptr<Acts::PerigeeSurface> perigeeSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(beamSpotPos); - // TODO: Get the correct magnetic field context - Acts::MagneticFieldContext magFieldContext = m_extrapolationTool.getMagneticFieldContext(ctx); + // Get the magnetic field context + Acts::MagneticFieldContext magFieldContext = m_extrapolationTool->getMagneticFieldContext(ctx); const auto& geoContext = m_trackingGeometryTool->getGeometryContext(ctx).any(); -- GitLab From fb238a27bd4d3e4a7b5215af52a7407013616f27 Mon Sep 17 00:00:00 2001 From: Will Leight <wleight@cern.ch> Date: Wed, 29 Jul 2020 14:46:33 +0200 Subject: [PATCH 367/459] Another fix for ATLASRECTS-4909 In some extremely rare cases it may be impossible to obtain a caloExtension for a combined track. This seems to happen only for very low-pT muons, for which the extrapolation is not robust, so that starting from the perigee or the edge of the ID can determine whether it succeeds. For technical reasons, during the combined fit the caloExtension is usually determined from the perigee, while the caloIsolationTool will start from the edge of the ID. Therefore it is possible for a caloExtension to be successfully obtained during the combined fit but not later. This fix will prevent muons being built from combined tracks in the case that a caloExtension cannot be obtained. --- .../src/MuonCreatorTool.cxx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.cxx index 061c58b0485..1b97f630423 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.cxx @@ -1110,6 +1110,24 @@ namespace MuonCombined { } } } + //Same for low-pT MuidCo muons + if(tag->author()==xAOD::Muon::MuidCo){ + const CombinedFitTag* cfTag = static_cast<const CombinedFitTag*>(tag); + //this should be a problem only for low-pT muons, so to avoid too many extra calls I think it makes sense to put a pT cut here + //since this isn't really a tunable parameter of the reconstruction, I'm not making it a property + if(cfTag->combinedTrack() && cfTag->combinedTrack()->perigeeParameters()->pT()<3000){ + std::unique_ptr<xAOD::TrackParticle> combtp(m_particleCreator->createParticle(cfTag->combinedTrackLink(),nullptr,nullptr,xAOD::muon)); + std::unique_ptr<Trk::CaloExtension> caloExtension = m_caloExtTool->caloExtension(*combtp); + if(!caloExtension){ + ATH_MSG_WARNING("failed to get a calo extension for this combined muon, don't use it"); + continue; + } + if( caloExtension->caloLayerIntersections().empty()){ + ATH_MSG_WARNING("failed to retrieve any calo layers for this combined muon, don't use it"); + continue; + } + } + } tags.push_back(tag); } } -- GitLab From 4f8e2c7a1fe9fe75597ac3d44e1d58f3f75d2a2c Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 16:46:22 +0200 Subject: [PATCH 368/459] ElectronEfficiencyCorrection: cmake fixes Remove atlas_depends_on_subdirs and add missing AthAnalysisBaseCompsLib dependency. --- .../CMakeLists.txt | 35 ++----------------- 1 file changed, 2 insertions(+), 33 deletions(-) diff --git a/PhysicsAnalysis/ElectronPhotonID/ElectronEfficiencyCorrection/CMakeLists.txt b/PhysicsAnalysis/ElectronPhotonID/ElectronEfficiencyCorrection/CMakeLists.txt index 214581144d9..6cb851b4288 100644 --- a/PhysicsAnalysis/ElectronPhotonID/ElectronEfficiencyCorrection/CMakeLists.txt +++ b/PhysicsAnalysis/ElectronPhotonID/ElectronEfficiencyCorrection/CMakeLists.txt @@ -1,39 +1,8 @@ -################################################################################ -# Package: ElectronEfficiencyCorrection -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ElectronEfficiencyCorrection ) -# Extra dependencies when not in AnalysisBase: -set( extra_deps ) -if( NOT XAOD_STANDALONE ) - set( extra_deps Control/AthenaBaseComps GaudiKernel ) -else() - set( extra_deps Control/xAODRootAccess ) -endif() - -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/AthContainers - Control/AthToolSupport/AsgTools - Event/xAOD/xAODEgamma - PhysicsAnalysis/AnalysisCommon/PATCore - PhysicsAnalysis/AnalysisCommon/PATInterfaces - PhysicsAnalysis/Interfaces/AsgAnalysisInterfaces - PhysicsAnalysis/Interfaces/EgammaAnalysisInterfaces - PRIVATE - Control/AthAnalysisBaseComps - Tools/PathResolver - Control/CxxUtils - Event/xAOD/xAODCaloEvent - Event/xAOD/xAODCore - Event/xAOD/xAODEventInfo - Event/xAOD/xAODTracking - Event/xAOD/xAODMetaData - ${extra_deps} ) - # External dependencies: find_package( Boost ) find_package( ROOT COMPONENTS Core Hist MathCore) @@ -45,7 +14,7 @@ atlas_add_library( ElectronEfficiencyCorrectionLib INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} AthContainers AsgTools xAODEgamma PATInterfaces PATCoreLib AsgAnalysisInterfaces EgammaAnalysisInterfacesLib - PRIVATE_LINK_LIBRARIES xAODCaloEvent xAODCore xAODEventInfo xAODTracking + PRIVATE_LINK_LIBRARIES AthAnalysisBaseCompsLib xAODCaloEvent xAODCore xAODEventInfo xAODTracking xAODMetaData PathResolver ) if( NOT XAOD_STANDALONE ) -- GitLab From 85974c1e2c9a39e48a799490d1c7605f3993866f Mon Sep 17 00:00:00 2001 From: John Chapman <jchapman@cern.ch> Date: Wed, 29 Jul 2020 16:47:07 +0200 Subject: [PATCH 369/459] Clean up configuration of ForwardFieldSvc and related tools This commit tidies up the configuration of tools and services which use the ForwardFieldSvc. There will be another round of tidying when the ForwardFieldSvc is replaced by a conditions object. --- .../python/G4AtlasFieldServices.py | 159 +++++++++--------- .../python/G4AtlasServicesConfig.py | 83 +++++---- .../G4AtlasTools/python/G4FieldConfig.py | 3 +- .../G4AtlasTools/python/G4FieldConfigNew.py | 20 +-- 4 files changed, 128 insertions(+), 137 deletions(-) diff --git a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py index 9a4ca5784b3..b091f349ad9 100644 --- a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py +++ b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasFieldServices.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory StandardFieldSvc=CompFactory.StandardFieldSvc @@ -20,176 +20,175 @@ def ForwardFieldSvcCfg(ConfigFlags, name="ForwardField", **kwargs): # #FIXME Once it exists this version should use the new MagField Service defined in ForwardRegionMgField # kwargs.setdefault("MagneticFieldSvc", result.getService("AtlasFieldSvc")) # #kwargs.setdefault("FieldOn", True) - + kwargs.setdefault("UseMagFieldSvc", True) result.addService(StandardFieldSvc(name, **kwargs)) return result def Q1FwdG4FieldSvcCfg(ConfigFlags, name='Q1FwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q1", + result.addService( MagField__ForwardRegionFieldSvc("Q1", Magnet = 0, # FIXME find a better way to do this. MQXA_DataFile = "MQXA_NOMINAL.dat")) kwargs.setdefault("MagneticFieldSvc", result.getService("Q1")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result + def Q2FwdG4FieldSvcCfg(ConfigFlags, name='Q2FwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q2", + result.addService( MagField__ForwardRegionFieldSvc("Q2", Magnet = 1, # FIXME find a better way to do this. MQXA_DataFile = "MQXA_NOMINAL.dat")) kwargs.setdefault("MagneticFieldSvc", result.getService("Q2")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q3FwdG4FieldSvcCfg(ConfigFlags, name='Q3FwdG4FieldSvc', **kwargs): + +def Q3FwdG4FieldSvcCfg(ConfigFlags, name='Q3FwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q3", + result.addService( MagField__ForwardRegionFieldSvc("Q3", Magnet = 2, # FIXME find a better way to do this. MQXA_DataFile = "MQXA_NOMINAL.dat")) kwargs.setdefault("MagneticFieldSvc", result.getService("Q3")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def D1FwdG4FieldSvcCfg(ConfigFlags, name='D1FwdG4FieldSvc', **kwargs): + +def D1FwdG4FieldSvcCfg(ConfigFlags, name='D1FwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("D1", + result.addService( MagField__ForwardRegionFieldSvc("D1", Magnet = 3))# FIXME find a better way to do this. - + kwargs.setdefault("MagneticFieldSvc", result.getService("D1")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def D2FwdG4FieldSvcCfg(ConfigFlags, name='D2FwdG4FieldSvc', **kwargs): + +def D2FwdG4FieldSvcCfg(ConfigFlags, name='D2FwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("D2", + result.addService( MagField__ForwardRegionFieldSvc("D2", Magnet = 4))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("D2")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q4FwdG4FieldSvcCfg(ConfigFlags, name='Q4FwdG4FieldSvc', **kwargs): + +def Q4FwdG4FieldSvcCfg(ConfigFlags, name='Q4FwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q4", + result.addService( MagField__ForwardRegionFieldSvc("Q4", Magnet = 5))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q4")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q5FwdG4FieldSvcCfg(ConfigFlags, name='Q5FwdG4FieldSvc', **kwargs): + +def Q5FwdG4FieldSvcCfg(ConfigFlags, name='Q5FwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q5", + result.addService( MagField__ForwardRegionFieldSvc("Q5", Magnet = 6))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q5")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q6FwdG4FieldSvcCfg(ConfigFlags, name='Q6FwdG4FieldSvc', **kwargs): + +def Q6FwdG4FieldSvcCfg(ConfigFlags, name='Q6FwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q6", + result.addService( MagField__ForwardRegionFieldSvc("Q6", Magnet = 7))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q6")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q7FwdG4FieldSvcCfg(ConfigFlags, name='Q7FwdG4FieldSvc', **kwargs): + +def Q7FwdG4FieldSvcCfg(ConfigFlags, name='Q7FwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q7", + result.addService( MagField__ForwardRegionFieldSvc("Q7", Magnet = 8))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q7")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q1HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q1HKickFwdG4FieldSvc', **kwargs): + +def Q1HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q1HKickFwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q1HKick", + result.addService( MagField__ForwardRegionFieldSvc("Q1HKick", Magnet = 9))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q1HKick")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result + def Q1VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q1VKickFwdG4FieldSvc', **kwargs): #note is lower case "v" in ForwardRegionMgFieldConfig.py result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q1VKick", + result.addService( MagField__ForwardRegionFieldSvc("Q1VKick", Magnet = 10))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q1VKick")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q2HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q2HKickFwdG4FieldSvc', **kwargs): + +def Q2HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q2HKickFwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q2HKick", + result.addService( MagField__ForwardRegionFieldSvc("Q2HKick", Magnet = 11))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q2HKick")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q2VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q2VKickFwdG4FieldSvc', **kwargs): + +def Q2VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q2VKickFwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q2VKick", + result.addService( MagField__ForwardRegionFieldSvc("Q2VKick", Magnet = 12))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q2VKick")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q3HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q3HKickFwdG4FieldSvc', **kwargs): + +def Q3HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q3HKickFwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q3HKick", + result.addService( MagField__ForwardRegionFieldSvc("Q3HKick", Magnet = 13))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q3HKick")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q3VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q3VKickFwdG4FieldSvc', **kwargs): + +def Q3VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q3VKickFwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q3VKick", + result.addService( MagField__ForwardRegionFieldSvc("Q3VKick", Magnet = 14))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q3VKick")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q4VKickAFwdG4FieldSvcCfg(ConfigFlags, name='Q4VKickAFwdG4FieldSvc', **kwargs): + +def Q4VKickAFwdG4FieldSvcCfg(ConfigFlags, name='Q4VKickAFwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q4VKickA", + result.addService( MagField__ForwardRegionFieldSvc("Q4VKickA", Magnet = 15))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q4VKickA")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q4HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q4HKickFwdG4FieldSvc', **kwargs): + +def Q4HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q4HKickFwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q4HKick", + result.addService( MagField__ForwardRegionFieldSvc("Q4HKick", Magnet = 16))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q4HKick")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q4VKickBFwdG4FieldSvcCfg(ConfigFlags, name='Q4VKickBFwdG4FieldSvc', **kwargs): + +def Q4VKickBFwdG4FieldSvcCfg(ConfigFlags, name='Q4VKickBFwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q4VKickB", + result.addService( MagField__ForwardRegionFieldSvc("Q4VKickB", Magnet = 17))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q4VKickB")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q5HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q5HKickFwdG4FieldSvc', **kwargs): + +def Q5HKickFwdG4FieldSvcCfg(ConfigFlags, name='Q5HKickFwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q5HKick", + result.addService( MagField__ForwardRegionFieldSvc("Q5HKick", Magnet = 18))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q5HKick")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result -def Q6VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q6VKickFwdG4FieldSvc', **kwargs): + +def Q6VKickFwdG4FieldSvcCfg(ConfigFlags, name='Q6VKickFwdG4FieldSvc', **kwargs): result = ComponentAccumulator() - result.addService( MagField__ForwardRegionFieldSvc("Q6VKick", + result.addService( MagField__ForwardRegionFieldSvc("Q6VKick", Magnet = 19))# FIXME find a better way to do this. kwargs.setdefault("MagneticFieldSvc", result.getService("Q6VKick")) - kwargs.setdefault("UseMagFieldSvc", True) - result.addService(StandardFieldSvc(name, **kwargs)) + result.merge(ForwardFieldSvcCfg(ConfigFlags, name, **kwargs)) return result diff --git a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py index 27b66102a8b..ce513202dc5 100644 --- a/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py +++ b/Simulation/G4Atlas/G4AtlasServices/python/G4AtlasServicesConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration from __future__ import print_function from AthenaCommon import CfgMgr @@ -165,8 +165,6 @@ def getStandardFieldSvc(name="StandardField", **kwargs): return CfgMgr.StandardFieldSvc(name, **kwargs) def getForwardFieldSvc(name="ForwardField", **kwargs): - #FIXME Once it exists this version should use the new MagField Service defined in ForwardRegionMgField - # kwargs.setdefault("MagneticFieldSvc", "AtlasFieldSvc") kwargs.setdefault("MagneticFieldSvc", "ForwardRegionFieldSvc") #kwargs.setdefault("FieldOn", True) # Must switch on the use of a field svc to be able to have StandardFieldSvc use ForwardRegionFieldSvc @@ -175,84 +173,83 @@ def getForwardFieldSvc(name="ForwardField", **kwargs): def getQ1FwdG4FieldSvc(name='Q1FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q1") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ2FwdG4FieldSvc(name='Q2FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q2") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ3FwdG4FieldSvc(name='Q3FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q3") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getD1FwdG4FieldSvc(name='D1FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "D1") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getD2FwdG4FieldSvc(name='D2FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "D2") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ4FwdG4FieldSvc(name='Q4FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q4") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ5FwdG4FieldSvc(name='Q5FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q5") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ6FwdG4FieldSvc(name='Q6FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q6") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ7FwdG4FieldSvc(name='Q7FwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q7") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ1HKickFwdG4FieldSvc(name='Q1HKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q1HKick") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ1VKickFwdG4FieldSvc(name='Q1VKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q1VKick") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ2HKickFwdG4FieldSvc(name='Q2HKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q2HKick") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ2VKickFwdG4FieldSvc(name='Q2VKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q2VKick") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ3HKickFwdG4FieldSvc(name='Q3HKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q3HKick") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ3VKickFwdG4FieldSvc(name='Q3VKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q3VKick") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ4VKickAFwdG4FieldSvc(name='Q4VKickAFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q4VKickA") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ4HKickFwdG4FieldSvc(name='Q4HKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q4HKick") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ4VKickBFwdG4FieldSvc(name='Q4VKickBFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q4VKickB") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ5HKickFwdG4FieldSvc(name='Q5HKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q5HKick") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) + def getQ6VKickFwdG4FieldSvc(name='Q6VKickFwdG4FieldSvc', **kwargs): kwargs.setdefault("MagneticFieldSvc", "Q6VKick") - kwargs.setdefault("UseMagFieldSvc", True) - return CfgMgr.StandardFieldSvc(name, **kwargs) + return getForwardFieldSvc(name, **kwargs) def getATLAS_FieldMgrList(): fieldMgrList = [] diff --git a/Simulation/G4Atlas/G4AtlasTools/python/G4FieldConfig.py b/Simulation/G4Atlas/G4AtlasTools/python/G4FieldConfig.py index f8710d27761..e8fbc88377e 100644 --- a/Simulation/G4Atlas/G4AtlasTools/python/G4FieldConfig.py +++ b/Simulation/G4Atlas/G4AtlasTools/python/G4FieldConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration from AthenaCommon import CfgMgr @@ -78,7 +78,6 @@ def getBasicFwdFieldMangerTool(name='FwdFieldManagerTool', **kwargs): kwargs.setdefault('DeltaOneStep', 1e-8) kwargs.setdefault('MaximumEpsilonStep', 1e-8) kwargs.setdefault('MinimumEpsilonStep', 1e-9) - kwargs.setdefault("FieldSvc", "ForwardField") from G4AtlasApps.SimFlags import simFlags if simFlags.FwdStepLimitation.statusOn: kwargs.setdefault("MaximumStep", simFlags.FwdStepLimitation()) diff --git a/Simulation/G4Atlas/G4AtlasTools/python/G4FieldConfigNew.py b/Simulation/G4Atlas/G4AtlasTools/python/G4FieldConfigNew.py index 6c652773335..72a9ef731d0 100644 --- a/Simulation/G4Atlas/G4AtlasTools/python/G4FieldConfigNew.py +++ b/Simulation/G4Atlas/G4AtlasTools/python/G4FieldConfigNew.py @@ -1,9 +1,10 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # ComponentAccumulator based configuration +from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory GlobalFieldManagerTool, DetectorFieldManagerTool=CompFactory.getComps("GlobalFieldManagerTool","DetectorFieldManagerTool",) -from G4AtlasServices.G4AtlasFieldServices import StandardFieldSvcCfg, ForwardFieldSvcCfg, Q1FwdG4FieldSvcCfg, Q2FwdG4FieldSvcCfg, Q3FwdG4FieldSvcCfg, D1FwdG4FieldSvcCfg, D2FwdG4FieldSvcCfg, Q4FwdG4FieldSvcCfg, Q5FwdG4FieldSvcCfg, Q6FwdG4FieldSvcCfg, Q7FwdG4FieldSvcCfg, Q1HKickFwdG4FieldSvcCfg, Q1VKickFwdG4FieldSvcCfg, Q2HKickFwdG4FieldSvcCfg, Q2VKickFwdG4FieldSvcCfg, Q3HKickFwdG4FieldSvcCfg, Q3VKickFwdG4FieldSvcCfg, Q4VKickAFwdG4FieldSvcCfg, Q4HKickFwdG4FieldSvcCfg, Q4VKickBFwdG4FieldSvcCfg, Q5HKickFwdG4FieldSvcCfg, Q6VKickFwdG4FieldSvcCfg +from G4AtlasServices.G4AtlasFieldServices import StandardFieldSvcCfg, Q1FwdG4FieldSvcCfg, Q2FwdG4FieldSvcCfg, Q3FwdG4FieldSvcCfg, D1FwdG4FieldSvcCfg, D2FwdG4FieldSvcCfg, Q4FwdG4FieldSvcCfg, Q5FwdG4FieldSvcCfg, Q6FwdG4FieldSvcCfg, Q7FwdG4FieldSvcCfg, Q1HKickFwdG4FieldSvcCfg, Q1VKickFwdG4FieldSvcCfg, Q2HKickFwdG4FieldSvcCfg, Q2VKickFwdG4FieldSvcCfg, Q3HKickFwdG4FieldSvcCfg, Q3VKickFwdG4FieldSvcCfg, Q4VKickAFwdG4FieldSvcCfg, Q4HKickFwdG4FieldSvcCfg, Q4VKickBFwdG4FieldSvcCfg, Q5HKickFwdG4FieldSvcCfg, Q6VKickFwdG4FieldSvcCfg # Field Managers def ATLASFieldManagerToolCfg(ConfigFlags, name='ATLASFieldManager', **kwargs): @@ -31,11 +32,12 @@ def ClassicFieldManagerToolCfg(ConfigFlags, name='ClassicFieldManager', **kwargs kwargs.setdefault("IntegratorStepper", "ClassicalRK4") return ATLASFieldManagerToolCfg(ConfigFlags, name, **kwargs) -#not used in G4AtlasServicesConfigNew? def BasicDetectorFieldManagerToolCfg(ConfigFlags, name='BasicDetectorFieldManager', **kwargs): - result = StandardFieldSvcCfg(ConfigFlags) + result = ComponentAccumulator() + if 'FieldSvc' not in kwargs: # don't create the StandardFieldSvc if it is not required by this tool. + result.merge(StandardFieldSvcCfg(ConfigFlags)) + kwargs.setdefault("FieldSvc", result.getService("StandardField")) kwargs.setdefault("IntegratorStepper", ConfigFlags.Sim.G4Stepper) - kwargs.setdefault("FieldSvc", result.getService("StandardField")) kwargs.setdefault('MuonOnlyField', False) if len(ConfigFlags.Sim.G4EquationOfMotion)>0: kwargs.setdefault("EquationOfMotion", ConfigFlags.Sim.G4EquationOfMotion ) @@ -81,23 +83,17 @@ def MuonFieldManagerToolCfg(ConfigFlags, name='MuonFieldManager', **kwargs): #not used in G4AtlasServicesConfigNew? def BasicFwdFieldManagerToolCfg(ConfigFlags, name='FwdFieldManagerTool', **kwargs): - result = ForwardFieldSvcCfg(ConfigFlags) #kwargs.setdefault('DeltaChord', 0.00000002) kwargs.setdefault('DeltaIntersection', 1e-9) kwargs.setdefault('DeltaOneStep', 1e-8) kwargs.setdefault('MaximumEpsilonStep', 1e-8) kwargs.setdefault('MinimumEpsilonStep', 1e-9) - #kwargs.setdefault("FieldSvc", ForwardFieldSvcCfg(ConfigFlags)) - kwargs.setdefault("FieldSvc", result.getService("ForwardField")) #accessing the right service? #from G4AtlasApps.SimFlags import simFlags #if simFlags.FwdStepLimitation.statusOn: # kwargs.setdefault("MaximumStep", simFlags.FwdStepLimitation()) if False: kwargs.setdefault("MaximumStep", 1000.) - acc = BasicDetectorFieldManagerToolCfg(ConfigFlags, name, **kwargs) - tool = result.popToolsAndMerge(acc) - result.setPrivateTools(tool) - return result + return BasicDetectorFieldManagerToolCfg(ConfigFlags, name, **kwargs) def Q1FwdFieldManagerToolCfg(ConfigFlags, name='Q1FwdFieldManager', **kwargs): result = Q1FwdG4FieldSvcCfg(ConfigFlags) -- GitLab From a4e543ca379dc7e08c2139503c2d5de0a982035a Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 17:06:36 +0200 Subject: [PATCH 370/459] PerformanceMonitoring: cmake cleanup - remove atlas_depends_on_subdirs - do not install headers that are not used outside the package - update external and link dependencies - enable flake8 where applicable --- .../PerfMonAna/CMakeLists.txt | 8 +----- .../PerfMonComps/CMakeLists.txt | 18 +------------ .../PerfMonEvent/CMakeLists.txt | 8 +----- .../PerfMonGPerfTools/CMakeLists.txt | 14 ++-------- .../PerfMonKernel/CMakeLists.txt | 10 ++----- .../PerfMonTests/CMakeLists.txt | 27 +++---------------- .../PerfMonTests/python/IoTestsLib.py | 25 ++++++++--------- .../PerfMonTests/python/tests.py | 5 +--- .../PerfMonVTune/CMakeLists.txt | 12 +-------- 9 files changed, 25 insertions(+), 102 deletions(-) diff --git a/Control/PerformanceMonitoring/PerfMonAna/CMakeLists.txt b/Control/PerformanceMonitoring/PerfMonAna/CMakeLists.txt index 4427629d396..cd6c384f079 100644 --- a/Control/PerformanceMonitoring/PerfMonAna/CMakeLists.txt +++ b/Control/PerformanceMonitoring/PerfMonAna/CMakeLists.txt @@ -1,14 +1,8 @@ -################################################################################ -# Package: PerfMonAna -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( PerfMonAna ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/PerformanceMonitoring/PerfMonEvent ) - # External dependencies: find_package( pandas ) find_package( sqlalchemy ) diff --git a/Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt b/Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt index efa4b530d8c..891dbf0c5ab 100644 --- a/Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt +++ b/Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt @@ -1,24 +1,8 @@ -################################################################################ -# Package: PerfMonComps -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( PerfMonComps ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel - Control/RootUtils - Control/CxxUtils - Control/PerformanceMonitoring/PerfMonEvent - Control/PerformanceMonitoring/PerfMonKernel - Control/SGTools - Control/StoreGate - GaudiKernel - Tools/PyUtils ) - # External dependencies: find_package( AIDA ) find_package( Boost ) diff --git a/Control/PerformanceMonitoring/PerfMonEvent/CMakeLists.txt b/Control/PerformanceMonitoring/PerfMonEvent/CMakeLists.txt index 303cad9ae74..b8b87a5a403 100644 --- a/Control/PerformanceMonitoring/PerfMonEvent/CMakeLists.txt +++ b/Control/PerformanceMonitoring/PerfMonEvent/CMakeLists.txt @@ -1,14 +1,8 @@ -################################################################################ -# Package: PerfMonEvent -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( PerfMonEvent ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - GaudiKernel ) - # External dependencies: find_package( Python COMPONENTS Development ) find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) diff --git a/Control/PerformanceMonitoring/PerfMonGPerfTools/CMakeLists.txt b/Control/PerformanceMonitoring/PerfMonGPerfTools/CMakeLists.txt index 19e20715cca..80172bc979b 100644 --- a/Control/PerformanceMonitoring/PerfMonGPerfTools/CMakeLists.txt +++ b/Control/PerformanceMonitoring/PerfMonGPerfTools/CMakeLists.txt @@ -1,17 +1,8 @@ -################################################################################ -# Package: PerfMonGPerfTools -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( PerfMonGPerfTools ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - GaudiKernel - PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel ) - # External dependencies: find_package( gperftools COMPONENTS profiler ) @@ -29,8 +20,7 @@ atlas_add_component( PerfMonGPerfTools LINK_LIBRARIES ${GPERFTOOLS_LIBRARIES} GaudiKernel AthenaBaseComps AthenaKernel ) # Install files from the package: -atlas_install_headers( PerfMonGPerfTools ) -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) atlas_install_joboptions( share/*.py ) atlas_install_scripts( scripts/*.py scripts/gathena ) diff --git a/Control/PerformanceMonitoring/PerfMonKernel/CMakeLists.txt b/Control/PerformanceMonitoring/PerfMonKernel/CMakeLists.txt index e3068845381..9e25e283153 100644 --- a/Control/PerformanceMonitoring/PerfMonKernel/CMakeLists.txt +++ b/Control/PerformanceMonitoring/PerfMonKernel/CMakeLists.txt @@ -1,16 +1,10 @@ -################################################################################ -# Package: PerfMonKernel -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( PerfMonKernel ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - GaudiKernel ) - # External dependencies: -find_package( Boost COMPONENTS filesystem thread system ) +find_package( Boost ) # Component(s) in the package: atlas_add_library( PerfMonKernel diff --git a/Control/PerformanceMonitoring/PerfMonTests/CMakeLists.txt b/Control/PerformanceMonitoring/PerfMonTests/CMakeLists.txt index e7231f868e1..024fa60ea63 100644 --- a/Control/PerformanceMonitoring/PerfMonTests/CMakeLists.txt +++ b/Control/PerformanceMonitoring/PerfMonTests/CMakeLists.txt @@ -1,23 +1,8 @@ -################################################################################ -# Package: PerfMonTests -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( PerfMonTests ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel - Control/AthAllocators - Control/AthContainers - Control/PerformanceMonitoring/PerfMonComps - Control/PerformanceMonitoring/PerfMonKernel - Control/StoreGate - GaudiKernel - PhysicsAnalysis/TruthParticleID/McParticleTests - Reconstruction/Jet/JetRec ) - # External dependencies: find_package( CLHEP ) @@ -26,43 +11,37 @@ atlas_add_component( PerfMonTests src/*.cxx src/components/*.cxx INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps AthenaKernel AthAllocators AthContainers PerfMonKernel StoreGateLib SGtests GaudiKernel ) + LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps AthenaKernel AthAllocators AthContainers PerfMonKernel GaudiKernel ) # Install files from the package: -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) atlas_install_joboptions( share/*.py share/tests/*.py ) - atlas_add_test( NoopAlg SCRIPT test/NoopAlg.sh PROPERTIES TIMEOUT 600 LOG_IGNORE_PATTERN "running" ) - atlas_add_test( NoopAlg_WriteDataHdr SCRIPT test/NoopAlg_WriteDataHdr.sh PROPERTIES TIMEOUT 600 LOG_IGNORE_PATTERN "running" ) - atlas_add_test( NoopAlg_WriteEvtInfo SCRIPT test/NoopAlg_WriteEvtInfo.sh PROPERTIES TIMEOUT 600 LOG_IGNORE_PATTERN "running" ) - atlas_add_test( LeakyAlg SCRIPT test/LeakyAlg.sh PROPERTIES TIMEOUT 600 LOG_IGNORE_PATTERN "running" ) - atlas_add_test( BasicAlg SCRIPT test/BasicAlg.sh PROPERTIES TIMEOUT 600 LOG_IGNORE_PATTERN "running" ) - atlas_add_test( BaseLine SCRIPT test/BaseLine.sh PROPERTIES TIMEOUT 600 diff --git a/Control/PerformanceMonitoring/PerfMonTests/python/IoTestsLib.py b/Control/PerformanceMonitoring/PerfMonTests/python/IoTestsLib.py index d08ffc5d9dc..35865b6066f 100644 --- a/Control/PerformanceMonitoring/PerfMonTests/python/IoTestsLib.py +++ b/Control/PerformanceMonitoring/PerfMonTests/python/IoTestsLib.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration ## @file PerfMonTests.IoTestsLib ## @date April 2009 @@ -12,6 +12,7 @@ a set of simple minded functions to test ROOT I/O (from python) """ from array import array as carray +from builtins import range import random # set some dummy seed, for reproducibility @@ -62,7 +63,7 @@ def comp_delta(d, verbose=False): def import_ROOT(): import sys # for ROOT... - if not '-b' in sys.argv: + if '-b' not in sys.argv: sys.argv.insert(1, '-b') import ROOT return ROOT @@ -85,8 +86,8 @@ def io_test1_write(fname, nevts=1000, sz=1000, dtype='i'): from random import randint fill = t.Fill - for i in xrange(nevts): - for j in xrange(sz): + for i in range(nevts): + for j in range(sz): data[j] = randint(0, sz) fill() @@ -106,7 +107,7 @@ def io_test1_read(fname, verbose=False): tot_bytes = 0 get_entry = t.GetEntry start = pymon() - for ievt in xrange(nevts): + for ievt in range(nevts): # copy next entry into memory and verify nb = get_entry(ievt) if nb <= 0: @@ -144,10 +145,10 @@ def io_test2_write(fname, nevts=1000, sz=1000, dtype='i'): from random import randint fill = t.Fill - for i in xrange(nevts): + for i in range(nevts): jmax = randint(1, sz) n[0] = jmax - for j in xrange(jmax): + for j in range(jmax): data[j] = randint(0, sz) fill() @@ -167,7 +168,7 @@ def io_test2_read(fname, verbose=False): tot_bytes = 0 get_entry = t.GetEntry start = pymon() - for ievt in xrange(nevts): + for ievt in range(nevts): # copy next entry into memory and verify nb = get_entry(ievt) if nb <= 0: @@ -206,7 +207,7 @@ if __name__ == "__main__": nevts=100000, sz=1000, dtype='i') mon_data['io_test1-ints'] = [] - for _ in xrange(nreads): + for _ in range(nreads): mon_data['io_test1-ints'].append(comp_delta(io_test1_read(fname=fname))) # io_test1 - floats @@ -215,7 +216,7 @@ if __name__ == "__main__": nevts=100000, sz=1000, dtype='f') mon_data['io_test1-flts'] = [] - for _ in xrange(nreads): + for _ in range(nreads): mon_data['io_test1-flts'].append(comp_delta(io_test1_read(fname=fname))) # ----- @@ -228,7 +229,7 @@ if __name__ == "__main__": nevts=100000, sz=1000, dtype='i') mon_data['io_test2-ints'] = [] - for _ in xrange(nreads): + for _ in range(nreads): mon_data['io_test2-ints'].append(comp_delta(io_test2_read(fname=fname))) # io_test2 - floats @@ -237,7 +238,7 @@ if __name__ == "__main__": nevts=100000, sz=1000, dtype='f') mon_data['io_test2-flts'] = [] - for _ in xrange(nreads): + for _ in range(nreads): mon_data['io_test2-flts'].append(comp_delta(io_test2_read(fname=fname))) diff --git a/Control/PerformanceMonitoring/PerfMonTests/python/tests.py b/Control/PerformanceMonitoring/PerfMonTests/python/tests.py index a345c5ab605..fe292367180 100755 --- a/Control/PerformanceMonitoring/PerfMonTests/python/tests.py +++ b/Control/PerformanceMonitoring/PerfMonTests/python/tests.py @@ -1,14 +1,12 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration ## ## A little py-module holding methods to ease the scheduling of PerfMonTests ## @author: Sebastien Binet -## $Id: tests.py,v 1.5 2007-11-12 01:04:14 binet Exp $ from __future__ import print_function import os -import sys from AthenaCommon import ChapPy from future import standard_library @@ -22,7 +20,6 @@ from TestTools.iobench import workDir ###----------------------------------------------------- ## Little helper to validate output of jobs from TestTools.iobench import ScOutput -from TestTools.iobench import BenchSequence def testPerfMon( jobOptName = "PerfMonTests/test_perfMonSvc_noopalg.py", perfMonFileName = "perfmon.noopalg.root", diff --git a/Control/PerformanceMonitoring/PerfMonVTune/CMakeLists.txt b/Control/PerformanceMonitoring/PerfMonVTune/CMakeLists.txt index fa0737f564b..51ae73f5f86 100644 --- a/Control/PerformanceMonitoring/PerfMonVTune/CMakeLists.txt +++ b/Control/PerformanceMonitoring/PerfMonVTune/CMakeLists.txt @@ -1,17 +1,8 @@ -################################################################################ -# Package: PerfMonVTune -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( PerfMonVTune ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - GaudiKernel - PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel ) - #### # VTune hack for the time-being find_program( VTUNE_EXECUTABLE amplxe-cl ) @@ -31,7 +22,6 @@ atlas_add_component( PerfMonVTune LINK_LIBRARIES GaudiKernel AthenaBaseComps AthenaKernel ${ITT_LIBRARY} ${CMAKE_DL_LIBS} ) # Install files from the package: -atlas_install_headers( PerfMonVTune ) atlas_install_python_modules( python/*.py ) atlas_install_joboptions( share/*.py ) atlas_install_scripts( scripts/*.py ) -- GitLab From 1db83a7371f3c9386a66e61631f1dd89ae12fb08 Mon Sep 17 00:00:00 2001 From: Margherita Spalla <margherita.spalla@cern.ch> Date: Wed, 29 Jul 2020 17:22:54 +0200 Subject: [PATCH 371/459] resolve comments from merge request --- .../LArMonitoring/src/LArCosmicsMonAlg.cxx | 37 +++---------------- .../LArMonitoring/src/LArCosmicsMonAlg.h | 24 ++---------- 2 files changed, 8 insertions(+), 53 deletions(-) diff --git a/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.cxx b/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.cxx index f7aa8de98ac..8b7d4057f69 100755 --- a/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.cxx +++ b/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ // ******************************************************************** @@ -19,16 +19,7 @@ #include "Identifier/IdentifierHash.h" -#include <sstream> -#include <iomanip> -#include <fstream> -#include <string> -#include <vector> -#include <cstdlib> -#include <functional> -#include <map> -#include <utility> - +#include <algorithm> @@ -183,13 +174,7 @@ LArCosmicsMonAlg::fillHistograms(const EventContext& ctx) const { if(sampling != 1) continue; // Get highest energy sample - float sample_max = 0.; - int nsamples = samples.size(); - for (int im = 0 ; im < nsamples; im++) { - if (samples[im] > sample_max){ - sample_max = samples[im]; - } - } + float sample_max = * std::max_element(samples.begin(), samples.end()); sample_max = sample_max-pedestal; // If energy above threshold, we found a muon in the HEC @@ -215,13 +200,7 @@ LArCosmicsMonAlg::fillHistograms(const EventContext& ctx) const { if(sampling != 2) continue; // Get highest energy sample - float sample_max = 0.; - int nsamples = samples.size(); - for (int im = 0 ; im < nsamples; im++) { - if (samples[im] > sample_max){ - sample_max = samples[im]; - } - } + float sample_max = * std::max_element(samples.begin(), samples.end()); sample_max = sample_max-pedestal; // If energy above threshold, we found a muon in the FCAL @@ -245,13 +224,7 @@ LArCosmicsMonAlg::fillHistograms(const EventContext& ctx) const { if(sampling != 2) continue; // Get highest energy sample - float sample_max = 0.; - int nsamples = samples.size(); - for (int im = 0 ; im < nsamples; im++) { - if (samples[im] > sample_max){ - sample_max = samples[im]; - } - } + float sample_max = * std::max_element(samples.begin(), samples.end()); sample_max = sample_max-pedestal; // If energy above threshold, we found a muon in the barrel diff --git a/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.h b/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.h index b68db5dfd0b..fe7a1adcf35 100644 --- a/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.h +++ b/LArCalorimeter/LArMonitoring/src/LArCosmicsMonAlg.h @@ -32,29 +32,11 @@ #include "LArRecConditions/ILArBadChannelMasker.h" #include "LArCabling/LArOnOffIdMapping.h" -#include <map> -#include <string> -#include <bitset> -#include <vector> -#include "TH1.h" -#include "TH2I.h" -#include "TH2F.h" -#include "TMath.h" -#include "TProfile2D.h" -#include "TTree.h" - class LArEM_ID; class LArOnlineID; -class CaloDetDescrManager; -class CaloDetDescrElement; -class StoreGateSvc; -class ITHistSvc; - -class TH1I; -class TH2I; -class TH2F; -class TProfile2D; -class TTree; + + + class LArCosmicsMonAlg: public AthMonitorAlgorithm { -- GitLab From 765c5ea20810a254102bd63d5171a2800ba92ad3 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <frank.winklmeier@cern.ch> Date: Wed, 29 Jul 2020 15:41:29 +0000 Subject: [PATCH 372/459] DetDescrCondExample: cmake cleanup - remove unused Eigen dependency - do not install headers that are not used outside this package --- .../DetDescrCondAthenaPool/CMakeLists.txt | 15 +------ .../DetDescrCondExample/CMakeLists.txt | 28 ++----------- .../DetDescrCondTPCnv/CMakeLists.txt | 40 +++++-------------- .../DetDescrCondTools/CMakeLists.txt | 16 +------- .../DetDescrConditions/CMakeLists.txt | 22 ++-------- .../DetectorStatus/CMakeLists.txt | 11 +---- 6 files changed, 24 insertions(+), 108 deletions(-) diff --git a/DetectorDescription/DetDescrCond/DetDescrCondAthenaPool/CMakeLists.txt b/DetectorDescription/DetDescrCond/DetDescrCondAthenaPool/CMakeLists.txt index 3df4f31b232..90dd161089c 100644 --- a/DetectorDescription/DetDescrCond/DetDescrCondAthenaPool/CMakeLists.txt +++ b/DetectorDescription/DetDescrCond/DetDescrCondAthenaPool/CMakeLists.txt @@ -1,22 +1,11 @@ -################################################################################ -# Package: DetDescrCondAthenaPool -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DetDescrCondAthenaPool ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Database/AthenaPOOL/AthenaPoolUtilities - PRIVATE - Database/AthenaPOOL/AthenaPoolCnvSvc - DetectorDescription/DetDescrCond/DetDescrCondTPCnv - DetectorDescription/DetDescrCond/DetDescrConditions ) - # Component(s) in the package: atlas_add_poolcnv_library( DetDescrCondAthenaPoolPoolCnv src/*.cxx FILES DetDescrConditions/AlignableTransform.h DetDescrConditions/AlignableTransformContainer.h DetDescrConditions/DetCondCFloat.h DetDescrConditions/DetCondKeyTrans.h DetDescrConditions/DetStatusMap.h MULT_CHAN_TYPES AlignableTransformContainer - LINK_LIBRARIES AthenaPoolUtilities AthenaPoolCnvSvcLib DetDescrCondTPCnv DetDescrConditions ) - + LINK_LIBRARIES AthenaPoolCnvSvcLib DetDescrCondTPCnv DetDescrConditions ) diff --git a/DetectorDescription/DetDescrCond/DetDescrCondExample/CMakeLists.txt b/DetectorDescription/DetDescrCond/DetDescrCondExample/CMakeLists.txt index ee6c3b1a0b6..38ea725012f 100644 --- a/DetectorDescription/DetDescrCond/DetDescrCondExample/CMakeLists.txt +++ b/DetectorDescription/DetDescrCond/DetDescrCondExample/CMakeLists.txt @@ -1,28 +1,10 @@ -################################################################################ -# Package: DetDescrCondExample -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DetDescrCondExample ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Control/AthenaKernel - DetectorDescription/GeoPrimitives - DetectorDescription/Identifier - GaudiKernel - PRIVATE - Control/StoreGate - Database/AthenaPOOL/AthenaPoolUtilities - DetectorDescription/DetDescrCond/DetDescrCondTools - DetectorDescription/DetDescrCond/DetDescrConditions - DetectorDescription/GeoModel/GeoModelInterfaces - InnerDetector/InDetDetDescr/InDetReadoutGeometry ) - # External dependencies: -find_package( Eigen ) -find_package( ROOT COMPONENTS Hist Core Tree MathCore RIO pthread ) +find_package( ROOT COMPONENTS Hist Core RIO ) # Component(s) in the package: atlas_add_component( DetDescrCondExample @@ -31,10 +13,8 @@ atlas_add_component( DetDescrCondExample src/ReadWriteCoolStrFile.cxx src/CoolHistExample.cxx src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps AthenaKernel GeoPrimitives Identifier GaudiKernel StoreGateLib SGtests AthenaPoolUtilities DetDescrConditions InDetReadoutGeometry DetDescrCondToolsLib ) + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps AthenaKernel AthenaPoolUtilities DetDescrCondToolsLib DetDescrConditions GaudiKernel GeoModelInterfaces GeoPrimitives Identifier InDetReadoutGeometry ) # Install files from the package: -atlas_install_headers( DetDescrCondExample ) atlas_install_joboptions( share/*.py ) - diff --git a/DetectorDescription/DetDescrCond/DetDescrCondTPCnv/CMakeLists.txt b/DetectorDescription/DetDescrCond/DetDescrCondTPCnv/CMakeLists.txt index d24d9b81f6c..2f93c590e02 100644 --- a/DetectorDescription/DetDescrCond/DetDescrCondTPCnv/CMakeLists.txt +++ b/DetectorDescription/DetDescrCond/DetDescrCondTPCnv/CMakeLists.txt @@ -1,66 +1,48 @@ -################################################################################ -# Package: DetDescrCondTPCnv -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DetDescrCondTPCnv ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - AtlasTest/TestTools - Database/AthenaPOOL/AthenaPoolCnvSvc - Database/AthenaPOOL/RootConversions - DetectorDescription/DetDescrCond/DetDescrConditions - DetectorDescription/Identifier - PRIVATE - GaudiKernel ) - # External dependencies: find_package( CLHEP ) -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) +find_package( ROOT COMPONENTS Core ) # Component(s) in the package: atlas_add_tpcnv_library( DetDescrCondTPCnv src/*.cxx PUBLIC_HEADERS DetDescrCondTPCnv - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} TestTools AthenaPoolCnvSvcLib RootConversions DetDescrConditions Identifier GaudiKernel ) + LINK_LIBRARIES LINK_LIBRARIES AthenaPoolCnvSvcLib DetDescrConditions Identifier RootConversions + PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ) atlas_add_dictionary( DetDescrCondTPCnvDict DetDescrCondTPCnv/DetDescrCondTPCnvDict.h DetDescrCondTPCnv/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} TestTools AthenaPoolCnvSvcLib RootConversions DetDescrConditions Identifier GaudiKernel DetDescrCondTPCnv ) + LINK_LIBRARIES DetDescrCondTPCnv ) +# Test in the package: atlas_add_test( DetStatusMapCnv_p1_test SOURCES test/DetStatusMapCnv_p1_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} TestTools AthenaPoolCnvSvcLib RootConversions DetDescrConditions Identifier GaudiKernel DetDescrCondTPCnv ) + LINK_LIBRARIES DetDescrCondTPCnv GaudiKernel TestTools ) atlas_add_test( AlignableTransformCnv_p1_test SOURCES test/AlignableTransformCnv_p1_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} TestTools AthenaPoolCnvSvcLib RootConversions DetDescrConditions Identifier GaudiKernel DetDescrCondTPCnv ) + LINK_LIBRARIES DetDescrCondTPCnv GaudiKernel TestTools ) atlas_add_test( DetCondCFloatCnv_p1_test SOURCES test/DetCondCFloatCnv_p1_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} TestTools AthenaPoolCnvSvcLib RootConversions DetDescrConditions Identifier GaudiKernel DetDescrCondTPCnv ) + LINK_LIBRARIES DetDescrCondTPCnv GaudiKernel TestTools ) atlas_add_test( DetDescrCondIdentifier_old_cnv_test SOURCES test/DetDescrCondIdentifier_old_cnv_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} TestTools AthenaPoolCnvSvcLib RootConversions DetDescrConditions Identifier GaudiKernel DetDescrCondTPCnv ) + LINK_LIBRARIES ${ROOT_LIBRARIES} CxxUtils DetDescrCondTPCnv TestTools ) atlas_add_test( DetCondKeyTransCnv_p1_test SOURCES test/DetCondKeyTransCnv_p1_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} TestTools AthenaPoolCnvSvcLib RootConversions DetDescrConditions Identifier GaudiKernel DetDescrCondTPCnv ) - + LINK_LIBRARIES DetDescrCondTPCnv GaudiKernel TestTools ) diff --git a/DetectorDescription/DetDescrCond/DetDescrCondTools/CMakeLists.txt b/DetectorDescription/DetDescrCond/DetDescrCondTools/CMakeLists.txt index 4b38f781736..e3a6dd96302 100644 --- a/DetectorDescription/DetDescrCond/DetDescrCondTools/CMakeLists.txt +++ b/DetectorDescription/DetDescrCond/DetDescrCondTools/CMakeLists.txt @@ -1,22 +1,8 @@ -################################################################################ -# Package: DetDescrCondTools -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DetDescrCondTools ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Control/StoreGate - GaudiKernel - PRIVATE - Database/APR/FileCatalog - Database/AthenaPOOL/AthenaPoolUtilities - Database/AthenaPOOL/PoolSvc - DetectorDescription/DetDescrCond/DetDescrConditions - DetectorDescription/Identifier ) - # External dependencies: find_package( CLHEP ) find_package( ROOT COMPONENTS Hist Tree RIO Core MathCore pthread ) diff --git a/DetectorDescription/DetDescrCond/DetDescrConditions/CMakeLists.txt b/DetectorDescription/DetDescrCond/DetDescrConditions/CMakeLists.txt index d228f9320b1..80dd042d4b5 100644 --- a/DetectorDescription/DetDescrCond/DetDescrConditions/CMakeLists.txt +++ b/DetectorDescription/DetDescrCond/DetDescrConditions/CMakeLists.txt @@ -1,21 +1,11 @@ -################################################################################ -# Package: DetDescrConditions -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DetDescrConditions ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaKernel - Database/AthenaPOOL/AthenaPoolUtilities - DetectorDescription/Identifier - GaudiKernel ) - # External dependencies: -find_package( Boost COMPONENTS filesystem thread system ) +find_package( Boost ) find_package( CLHEP ) -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) # Component(s) in the package: atlas_add_library( DetDescrConditions @@ -27,14 +17,10 @@ atlas_add_library( DetDescrConditions src/DetStatusMap.cxx PUBLIC_HEADERS DetDescrConditions INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CLHEP_LIBRARIES} AthenaPoolUtilities Identifier GaudiKernel - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ) + LINK_LIBRARIES ${Boost_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel AthenaPoolUtilities GaudiKernel Identifier ) atlas_add_dictionary( DetDescrConditionsDict DetDescrConditions/DetDescrConditionsDict.h DetDescrConditions/selection.xml - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthenaPoolUtilities Identifier GaudiKernel DetDescrConditions ) - + LINK_LIBRARIES DetDescrConditions ) diff --git a/DetectorDescription/DetDescrCond/DetectorStatus/CMakeLists.txt b/DetectorDescription/DetDescrCond/DetectorStatus/CMakeLists.txt index 96942605f8f..1df633de731 100644 --- a/DetectorDescription/DetDescrCond/DetectorStatus/CMakeLists.txt +++ b/DetectorDescription/DetDescrCond/DetectorStatus/CMakeLists.txt @@ -1,17 +1,10 @@ -################################################################################ -# Package: DetectorStatus -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + # Package is now a rump of a few Python libraries kept around for potential # Run 1 compatibility - # Declare the package name: atlas_subdir( DetectorStatus ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/DetDescrCond/DetDescrConditions - ) - # Install files from the package: atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) -- GitLab From c9ca3d3238e7208f5a5a206ccc99e330ab00dbc7 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <frank.winklmeier@cern.ch> Date: Wed, 29 Jul 2020 15:42:45 +0000 Subject: [PATCH 373/459] Event/ByteStream*: cmake cleanup - remove atlas_depends_on_subdirs - update some link dependencies --- Event/ByteStreamCnvSvc/CMakeLists.txt | 25 +---------------- .../ATLAS_CHECK_THREAD_SAFETY | 1 + Event/ByteStreamCnvSvcBase/CMakeLists.txt | 28 ++++--------------- Event/ByteStreamCnvSvcLegacy/CMakeLists.txt | 5 +--- .../ByteStreamData/ATLAS_CHECK_THREAD_SAFETY | 1 + Event/ByteStreamData/CMakeLists.txt | 11 +------- .../ATLAS_CHECK_THREAD_SAFETY | 1 + .../ByteStreamEventAthenaPool/CMakeLists.txt | 12 +------- .../ATLAS_CHECK_THREAD_SAFETY | 1 + Event/ByteStreamEventPTCnv/CMakeLists.txt | 18 ++---------- .../ATLAS_CHECK_THREAD_SAFETY | 1 + Event/ByteStreamEventTPCnv/CMakeLists.txt | 22 +++------------ .../ATLAS_CHECK_THREAD_SAFETY | 1 + Event/ByteStreamStoragePlugins/CMakeLists.txt | 4 +-- Event/ByteStreamTest/CMakeLists.txt | 17 +---------- 15 files changed, 25 insertions(+), 123 deletions(-) create mode 100644 Event/ByteStreamCnvSvcBase/ByteStreamCnvSvcBase/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Event/ByteStreamData/ByteStreamData/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Event/ByteStreamEventAthenaPool/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Event/ByteStreamEventPTCnv/ByteStreamEventPTCnv/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Event/ByteStreamEventTPCnv/ByteStreamEventTPCnv/ATLAS_CHECK_THREAD_SAFETY create mode 100644 Event/ByteStreamStoragePlugins/ATLAS_CHECK_THREAD_SAFETY diff --git a/Event/ByteStreamCnvSvc/CMakeLists.txt b/Event/ByteStreamCnvSvc/CMakeLists.txt index 0a9a8bc4cfc..7ebfa49d91c 100644 --- a/Event/ByteStreamCnvSvc/CMakeLists.txt +++ b/Event/ByteStreamCnvSvc/CMakeLists.txt @@ -1,30 +1,8 @@ -################################################################################ -# Package: ByteStreamCnvSvc -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ByteStreamCnvSvc ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/AthenaBaseComps - Event/ByteStreamCnvSvcBase - Event/ByteStreamData - GaudiKernel - PRIVATE - Control/AthenaKernel - Control/SGTools - Control/StoreGate - Database/APR/CollectionBase - Database/APR/FileCatalog - Database/AthenaPOOL/AthenaPoolUtilities - Database/PersistentDataModel - Event/EventInfo - Event/xAOD/xAODEventInfo - Event/xAOD/xAODTrigger - Event/ByteStreamCnvSvcLegacy ) - # External dependencies: find_package( Boost COMPONENTS system ) find_package( CORAL COMPONENTS CoralBase ) @@ -62,7 +40,6 @@ atlas_add_executable( AtlListBSEvents test/AtlListBSEvents.cxx INCLUDE_DIRS ${TDAQ-COMMON_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} ${Boost_LIBRARIES} ) - # Test(s) in the package: atlas_add_test( BSEventSelector SCRIPT "athena.py ByteStreamCnvSvc/BSEventSelector_test_jobOptions.py" diff --git a/Event/ByteStreamCnvSvcBase/ByteStreamCnvSvcBase/ATLAS_CHECK_THREAD_SAFETY b/Event/ByteStreamCnvSvcBase/ByteStreamCnvSvcBase/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..a52a59a2d4d --- /dev/null +++ b/Event/ByteStreamCnvSvcBase/ByteStreamCnvSvcBase/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/ByteStreamCnvSvcBase diff --git a/Event/ByteStreamCnvSvcBase/CMakeLists.txt b/Event/ByteStreamCnvSvcBase/CMakeLists.txt index cec0ade0db7..b51e5a18b1c 100644 --- a/Event/ByteStreamCnvSvcBase/CMakeLists.txt +++ b/Event/ByteStreamCnvSvcBase/CMakeLists.txt @@ -1,21 +1,8 @@ -################################################################################ -# Package: ByteStreamCnvSvcBase -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ByteStreamCnvSvcBase ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthenaBaseComps - Control/AthenaKernel - Control/StoreGate - Event/ByteStreamData - GaudiKernel - PRIVATE - Control/SGTools - AtlasTest/TestTools ) - # External dependencies: find_package( tdaq-common COMPONENTS eformat eformat_write ) @@ -29,15 +16,12 @@ atlas_add_library( ByteStreamCnvSvcBaseLib atlas_add_component( ByteStreamCnvSvcBase src/components/*.cxx - INCLUDE_DIRS ${TDAQ-COMMON_INCLUDE_DIRS} - LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} AthenaBaseComps AthenaKernel StoreGateLib SGtests ByteStreamData ByteStreamData_test GaudiKernel SGTools ByteStreamCnvSvcBaseLib ) - - -atlas_add_test( ROBDataProviderSvcMT - SCRIPT test/test_ROBDataProviderSvcMT.sh - PROPERTIES TIMEOUT 1200 ) -# + LINK_LIBRARIES ByteStreamCnvSvcBaseLib ) # Install files from the package: atlas_install_joboptions( share/*.py ) +# Tests in the package: +atlas_add_test( ROBDataProviderSvcMT + SCRIPT test/test_ROBDataProviderSvcMT.sh + PROPERTIES TIMEOUT 1200 ) diff --git a/Event/ByteStreamCnvSvcLegacy/CMakeLists.txt b/Event/ByteStreamCnvSvcLegacy/CMakeLists.txt index 7561b31f5bf..775000f22bb 100644 --- a/Event/ByteStreamCnvSvcLegacy/CMakeLists.txt +++ b/Event/ByteStreamCnvSvcLegacy/CMakeLists.txt @@ -1,7 +1,4 @@ -# $Id: CMakeLists.txt 756859 2016-06-22 10:53:03Z krasznaa $ -################################################################################ -# Package: ByteStreamCnvSvcLegacy -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ByteStreamCnvSvcLegacy ) diff --git a/Event/ByteStreamData/ByteStreamData/ATLAS_CHECK_THREAD_SAFETY b/Event/ByteStreamData/ByteStreamData/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..797ff54a093 --- /dev/null +++ b/Event/ByteStreamData/ByteStreamData/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/ByteStreamData diff --git a/Event/ByteStreamData/CMakeLists.txt b/Event/ByteStreamData/CMakeLists.txt index 4b0fb94f8f2..1f8554f05be 100644 --- a/Event/ByteStreamData/CMakeLists.txt +++ b/Event/ByteStreamData/CMakeLists.txt @@ -1,17 +1,8 @@ -# $Id: CMakeLists.txt 782284 2016-11-04 08:07:16Z krasznaa $ -################################################################################ -# Package: ByteStreamData -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ByteStreamData ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/AthenaKernel - Control/AthContainers ) - # External dependencies: find_package( tdaq-common COMPONENTS DataReader ) diff --git a/Event/ByteStreamEventAthenaPool/ATLAS_CHECK_THREAD_SAFETY b/Event/ByteStreamEventAthenaPool/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..355444cf82c --- /dev/null +++ b/Event/ByteStreamEventAthenaPool/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/ByteStreamEventAthenaPool diff --git a/Event/ByteStreamEventAthenaPool/CMakeLists.txt b/Event/ByteStreamEventAthenaPool/CMakeLists.txt index 1e93fa1d651..43aba7ba3d2 100644 --- a/Event/ByteStreamEventAthenaPool/CMakeLists.txt +++ b/Event/ByteStreamEventAthenaPool/CMakeLists.txt @@ -1,18 +1,8 @@ -################################################################################ -# Package: ByteStreamEventAthenaPool -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ByteStreamEventAthenaPool ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Database/AthenaPOOL/AthenaPoolUtilities - PRIVATE - Database/AthenaPOOL/AthenaPoolCnvSvc - Event/ByteStreamData - Event/ByteStreamEventTPCnv ) - # Component(s) in the package: atlas_add_poolcnv_library( ByteStreamEventAthenaPoolPoolCnv src/*.cxx diff --git a/Event/ByteStreamEventPTCnv/ByteStreamEventPTCnv/ATLAS_CHECK_THREAD_SAFETY b/Event/ByteStreamEventPTCnv/ByteStreamEventPTCnv/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..7d0bf8761b3 --- /dev/null +++ b/Event/ByteStreamEventPTCnv/ByteStreamEventPTCnv/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/ByteStreamEventPTCnv diff --git a/Event/ByteStreamEventPTCnv/CMakeLists.txt b/Event/ByteStreamEventPTCnv/CMakeLists.txt index 4c1839c2daa..a564ac45180 100644 --- a/Event/ByteStreamEventPTCnv/CMakeLists.txt +++ b/Event/ByteStreamEventPTCnv/CMakeLists.txt @@ -1,27 +1,15 @@ -################################################################################ -# Package: ByteStreamEventPTCnv -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ByteStreamEventPTCnv ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Event/ByteStreamEventTPCnv ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - # Component(s) in the package: atlas_add_tpcnv_library( ByteStreamEventPTCnv src/*.cxx PUBLIC_HEADERS ByteStreamEventPTCnv - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ByteStreamEventTPCnv ) + LINK_LIBRARIES ByteStreamEventTPCnv ) atlas_add_dictionary( ByteStreamEventPTCnvDict ByteStreamEventPTCnv/ByteStreamEventPTCnvDict.h ByteStreamEventPTCnv/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ByteStreamEventTPCnv ByteStreamEventPTCnv ) - + LINK_LIBRARIES ByteStreamEventPTCnv ) diff --git a/Event/ByteStreamEventTPCnv/ByteStreamEventTPCnv/ATLAS_CHECK_THREAD_SAFETY b/Event/ByteStreamEventTPCnv/ByteStreamEventTPCnv/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..12c42e54706 --- /dev/null +++ b/Event/ByteStreamEventTPCnv/ByteStreamEventTPCnv/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/ByteStreamEventTPCnv diff --git a/Event/ByteStreamEventTPCnv/CMakeLists.txt b/Event/ByteStreamEventTPCnv/CMakeLists.txt index 22ff43f590d..7f569b61c52 100644 --- a/Event/ByteStreamEventTPCnv/CMakeLists.txt +++ b/Event/ByteStreamEventTPCnv/CMakeLists.txt @@ -1,34 +1,20 @@ -################################################################################ -# Package: ByteStreamEventTPCnv -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ByteStreamEventTPCnv ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Database/AthenaPOOL/AthenaPoolCnvSvc - Event/ByteStreamData ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - # Component(s) in the package: atlas_add_tpcnv_library( ByteStreamEventTPCnv src/*.cxx PUBLIC_HEADERS ByteStreamEventTPCnv - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib ByteStreamData ByteStreamData_test ) + LINK_LIBRARIES AthenaPoolCnvSvcLib ByteStreamData ) atlas_add_dictionary( ByteStreamEventTPCnvDict ByteStreamEventTPCnv/ByteStreamEventTPCnvDict.h ByteStreamEventTPCnv/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib ByteStreamData ByteStreamData_test ByteStreamEventTPCnv ) + LINK_LIBRARIES ByteStreamEventTPCnv ) atlas_add_dictionary( OLD_ByteStreamEventTPCnvDict ByteStreamEventTPCnv/ByteStreamEventTPCnvDict.h ByteStreamEventTPCnv/OLD_selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaPoolCnvSvcLib ByteStreamData ByteStreamData_test ByteStreamEventTPCnv ) - + LINK_LIBRARIES ByteStreamEventTPCnv ) diff --git a/Event/ByteStreamStoragePlugins/ATLAS_CHECK_THREAD_SAFETY b/Event/ByteStreamStoragePlugins/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..533126bc27a --- /dev/null +++ b/Event/ByteStreamStoragePlugins/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Event/ByteStreamStoragePlugins diff --git a/Event/ByteStreamStoragePlugins/CMakeLists.txt b/Event/ByteStreamStoragePlugins/CMakeLists.txt index 12c18db67f0..61811b70e08 100644 --- a/Event/ByteStreamStoragePlugins/CMakeLists.txt +++ b/Event/ByteStreamStoragePlugins/CMakeLists.txt @@ -1,6 +1,4 @@ -################################################################################ -# Package: ByteStreamStoragePlugins -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ByteStreamStoragePlugins ) diff --git a/Event/ByteStreamTest/CMakeLists.txt b/Event/ByteStreamTest/CMakeLists.txt index 4e6b4f54509..77ab2ace114 100644 --- a/Event/ByteStreamTest/CMakeLists.txt +++ b/Event/ByteStreamTest/CMakeLists.txt @@ -1,21 +1,8 @@ -################################################################################ -# Package: ByteStreamTest -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( ByteStreamTest ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/MinimalRunTime - PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel - Database/AthenaPOOL/AthenaPoolUtilities - Event/ByteStreamCnvSvc - Event/ByteStreamData - GaudiKernel ) - # Component(s) in the package: atlas_add_component( ByteStreamTest src/EvenEventsSelectorTool.cxx @@ -25,7 +12,6 @@ atlas_add_component( ByteStreamTest # Install files from the package: atlas_install_joboptions( share/*.py ) - function (bytestreamtest_run_test jo) cmake_parse_arguments( ARG "" "DEPENDS" "" ${ARGN} ) @@ -42,7 +28,6 @@ function (bytestreamtest_run_test jo) endif() endfunction (bytestreamtest_run_test) - #bytestreamtest_run_test( SkipAll ) bytestreamtest_run_test( SkipOne ) bytestreamtest_run_test( SkipNone ) -- GitLab From b17aff623458eb6d0064b5a7887a9f9cb5e8ec3f Mon Sep 17 00:00:00 2001 From: Nils Krumnack <Nils.Erik.Krumnack@cern.ch> Date: Wed, 29 Jul 2020 17:45:18 +0200 Subject: [PATCH 374/459] enable InDetTrackSystematicsTools in Athena build Since a user asked about it, and there seems to be no problem including it, I just added it. --- Projects/Athena/package_filters.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/Projects/Athena/package_filters.txt b/Projects/Athena/package_filters.txt index 5530f3b9e71..d52c8479ca1 100644 --- a/Projects/Athena/package_filters.txt +++ b/Projects/Athena/package_filters.txt @@ -43,7 +43,6 @@ - PhysicsAnalysis/TauID/DiTauMassTools - PhysicsAnalysis/TopPhys/TopPhysUtils/.* - PhysicsAnalysis/TopPhys/xAOD/.* -- PhysicsAnalysis/TrackingID/InDetTrackSystematicsTools - Reconstruction/Jet/JetAnalysisTools/JetTileCorrection - Reconstruction/Jet/JetReclustering - Trigger/TrigAnalysis/TrigTauAnalysis/TrigTauMatching -- GitLab From efd929886bf8b723e7c9d90780d9e29cd88b27b2 Mon Sep 17 00:00:00 2001 From: Shaun Roe <shaun.roe@cern.ch> Date: Wed, 29 Jul 2020 15:53:19 +0000 Subject: [PATCH 375/459] 22.0-cleanup-TrkAmbiguityProcessor --- ...enseEnvironmentsAmbiguityProcessorTool.cxx | 240 ++++------ .../DenseEnvironmentsAmbiguityProcessorTool.h | 432 +++++++++--------- ...nvironmentsAmbiguityScoreProcessorTool.cxx | 123 ++--- .../src/SimpleAmbiguityProcessorTool.cxx | 281 +++++------- .../src/SimpleAmbiguityProcessorTool.h | 44 +- .../src/TrackScoringTool.cxx | 16 +- .../src/TrackScoringTool.h | 34 +- .../src/TrackSelectionProcessorTool.cxx | 198 +++----- .../src/TrackSelectionProcessorTool.h | 43 +- 9 files changed, 609 insertions(+), 802 deletions(-) diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx index 9471609d450..2daa8c1f8b7 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx @@ -21,9 +21,9 @@ #include <iterator> //TODO: to be improved -bool Trk::DenseEnvironmentsAmbiguityProcessorTool::checkTrack( const Trk::Track *track) const { +bool +Trk::DenseEnvironmentsAmbiguityProcessorTool::checkTrack( const Trk::Track *track) const { if (!track )return true; - bool error=false; if (track->trackParameters()){ int counter=0; @@ -54,8 +54,7 @@ Trk::DenseEnvironmentsAmbiguityProcessorTool::DenseEnvironmentsAmbiguityProcesso m_extrapolatorTool("Trk::Extrapolator/AtlasExtrapolator"), m_selectionTool("InDet::InDetDenseEnvAmbiTrackSelectionTool/InDetAmbiTrackSelectionTool"), m_etaBounds{0.8, 1.6, 2.5, 4.0}, - m_stat(m_etaBounds) -{ + m_stat(m_etaBounds){ // statitics stuff m_fitterTool.push_back("Trk::KalmanFitter/InDetTrackFitter"); @@ -86,13 +85,12 @@ Trk::DenseEnvironmentsAmbiguityProcessorTool::DenseEnvironmentsAmbiguityProcesso } //================================================================================================== -Trk::DenseEnvironmentsAmbiguityProcessorTool::~DenseEnvironmentsAmbiguityProcessorTool() -{ +Trk::DenseEnvironmentsAmbiguityProcessorTool::~DenseEnvironmentsAmbiguityProcessorTool(){ } //================================================================================================== -StatusCode Trk::DenseEnvironmentsAmbiguityProcessorTool::initialize() -{ +StatusCode +Trk::DenseEnvironmentsAmbiguityProcessorTool::initialize(){ StatusCode sc = StatusCode::SUCCESS; ATH_CHECK( m_scoringTool.retrieve()); ATH_CHECK( m_assoMapName.initialize(!m_assoMapName.key().empty())); @@ -134,13 +132,13 @@ StatusCode Trk::DenseEnvironmentsAmbiguityProcessorTool::initialize() } //================================================================================================== -StatusCode Trk::DenseEnvironmentsAmbiguityProcessorTool::finalize() -{ +StatusCode +Trk::DenseEnvironmentsAmbiguityProcessorTool::finalize(){ return StatusCode::SUCCESS; } -void Trk::DenseEnvironmentsAmbiguityProcessorTool::statistics() -{ +void +Trk::DenseEnvironmentsAmbiguityProcessorTool::statistics(){ if (msgLvl(MSG::INFO)) { MsgStream &out=msg(MSG::INFO); out << " -- statistics \n"; @@ -150,28 +148,21 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::statistics() } } - - //================================================================================================== - - /** Do actual processing of event. Takes a track container, and then returns the tracks which have been selected*/ -TrackCollection* Trk::DenseEnvironmentsAmbiguityProcessorTool::process(const TracksScores *trackScoreTrackMap) const -{ +TrackCollection* +Trk::DenseEnvironmentsAmbiguityProcessorTool::process(const TracksScores *trackScoreTrackMap) const{ if (!trackScoreTrackMap) return nullptr; // clear prdAssociationTool via selection tool // @TODO remove : - std::unique_ptr<Trk::PRDtoTrackMap> prd_to_track_map( m_assoTool->createPRDtoTrackMap() ); + std::unique_ptr<Trk::PRDtoTrackMap> prdToTrackMap( m_assoTool->createPRDtoTrackMap() ); if (!m_assoMapName.key().empty()) { SG::ReadHandle<Trk::PRDtoTrackMap> input_prd_map(m_assoMapName); if (!input_prd_map.isValid()) { ATH_MSG_ERROR("Failed to retrieve prd to track map " << m_assoMapName.key() ); } - else { - // *prd_to_track_map = *input_prd_map; - } } std::vector<std::unique_ptr<const Trk::Track> > cleanup_tracks; reloadHadROIs(); @@ -179,14 +170,12 @@ TrackCollection* Trk::DenseEnvironmentsAmbiguityProcessorTool::process(const Tra // - take track with highest score // - remove shared hits from all other tracks // - take next highest scoring tracks, and repeat - ATH_MSG_DEBUG ("Solving Tracks"); - TrackCollection* finalTracks = new TrackCollection; { TrackStat stat(m_etaBounds); stat.newEvent(); - solveTracks(*trackScoreTrackMap, *prd_to_track_map, *finalTracks, cleanup_tracks,stat); + solveTracks(*trackScoreTrackMap, *prdToTrackMap, *finalTracks, cleanup_tracks,stat); { std::lock_guard<std::mutex> lock(m_statMutex); m_stat += stat; @@ -201,21 +190,21 @@ TrackCollection* Trk::DenseEnvironmentsAmbiguityProcessorTool::process(const Tra //================================================================================================== // taking ownership of input track -void Trk::DenseEnvironmentsAmbiguityProcessorTool::addTrack(Trk::Track* track, const bool fitted, +void +Trk::DenseEnvironmentsAmbiguityProcessorTool::addTrack(Trk::Track* track, const bool fitted, std::multimap<float, TrackPtr > &scoreTrackFitflagMap, - const Trk::PRDtoTrackMap &prd_to_track_map, + const Trk::PRDtoTrackMap &prdToTrackMap, std::vector<std::unique_ptr<const Trk::Track> >& cleanup_tracks, - TrackStat &stat) const{ + TrackStat &stat) const{ // compute score TrackScore score; bool suppressHoleSearch = fitted ? m_suppressHoleSearch : true; ATH_MSG_DEBUG ("addTrack()::Fitted "<< fitted); if (m_trackSummaryTool.isEnabled()) { - m_trackSummaryTool->computeAndReplaceTrackSummary(*track, - &prd_to_track_map, + m_trackSummaryTool->computeAndReplaceTrackSummary(*track, + &prdToTrackMap, suppressHoleSearch); } - // @TODO create track summary for track score = m_scoringTool->score( *track, suppressHoleSearch ); // do we accept the track ? @@ -227,10 +216,10 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::addTrack(Trk::Track* track, c } // do we try to recover the track ? if ( fitted && m_tryBremFit && - !track->info().trackProperties(Trk::TrackInfo::BremFit) && - track->trackParameters()->front()->pT() > m_pTminBrem && - (!m_caloSeededBrem || track->info().patternRecoInfo(Trk::TrackInfo::TrackInCaloROI))) - { + !track->info().trackProperties(Trk::TrackInfo::BremFit) && + track->trackParameters()->front()->pT() > m_pTminBrem && + (!m_caloSeededBrem || track->info().patternRecoInfo(Trk::TrackInfo::TrackInCaloROI))){ + // ATH_MSG_DEBUG ("Track score is zero, try to recover it via brem fit"); // run track fit using electron hypothesis Trk::Track* bremTrack = fit(*track,true,Trk::electron); @@ -243,7 +232,7 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::addTrack(Trk::Track* track, c track=nullptr; } else { if (m_trackSummaryTool.isEnabled()) { - m_trackSummaryTool->computeAndReplaceTrackSummary(*bremTrack,&prd_to_track_map,m_suppressHoleSearch); + m_trackSummaryTool->computeAndReplaceTrackSummary(*bremTrack,&prdToTrackMap,m_suppressHoleSearch); } stat.incrementCounterByRegion(EStatType::kNgoodFits,bremTrack); // rerun score @@ -270,15 +259,16 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::addTrack(Trk::Track* track, c // @TODO can delete this track ? cleanup_tracks.push_back(std::unique_ptr<const Trk::Track>(track) ); } - } +} //================================================================================================== -void Trk::DenseEnvironmentsAmbiguityProcessorTool::solveTracks(const TracksScores &trackScoreTrackMap, - Trk::PRDtoTrackMap &prd_to_track_map, +void +Trk::DenseEnvironmentsAmbiguityProcessorTool::solveTracks(const TracksScores &trackScoreTrackMap, + Trk::PRDtoTrackMap &prdToTrackMap, TrackCollection &finalTracks, std::vector<std::unique_ptr<const Trk::Track> > &cleanup_tracks, - TrackStat &stat) const{ + TrackStat &stat) const{ std::multimap<float, TrackPtr > scoreTrackFitflagMap; for(const std::pair< const Trk::Track *, float> &scoreTrack: trackScoreTrackMap){ scoreTrackFitflagMap.emplace(scoreTrack.second, TrackPtr(scoreTrack.first) ); @@ -295,55 +285,57 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::solveTracks(const TracksScore // clean it out to make sure not to many shared hits ATH_MSG_DEBUG ("--- Trying next track "<<atrack.track()<<"\t with score "<<-ascore); std::unique_ptr<Trk::Track> cleanedTrack; - auto [cleanedTrack_tmp, keep_orig] = m_selectionTool->getCleanedOutTrack( atrack.track() , -ascore, prd_to_track_map); - cleanedTrack.reset(cleanedTrack_tmp); + const auto & [tmpCleanedTrack, keepOriginal] = m_selectionTool->getCleanedOutTrack( atrack.track() , -ascore, prdToTrackMap); + cleanedTrack.reset(tmpCleanedTrack); ATH_MSG_DEBUG ("--- cleaned next track "<< cleanedTrack.get()); // cleaned track is input track and fitted - if (keep_orig && atrack.fitted()){ + if (keepOriginal && atrack.fitted()){ // track can be kept as is and is already fitted - ATH_MSG_DEBUG ("Accepted track "<<atrack.track()<<"\t has score "<<-ascore); - stat.incrementCounterByRegion(EStatType::kNaccepted, atrack.track() ); - if (m_tryBremFit && atrack.track()->info().trackProperties(Trk::TrackInfo::BremFit)) { - stat.incrementCounterByRegion(EStatType::kNacceptedBrem,atrack.track()); - } - + ATH_MSG_DEBUG ("Accepted track "<<atrack.track()<<"\t has score "<<-ascore); + stat.incrementCounterByRegion(EStatType::kNaccepted, atrack.track() ); + if (m_tryBremFit && atrack.track()->info().trackProperties(Trk::TrackInfo::BremFit)) { + stat.incrementCounterByRegion(EStatType::kNacceptedBrem,atrack.track()); + } //Compute the fitQuality double fitQual = 0; if (atrack->fitQuality() && atrack->fitQuality()->numberDoF()>0 ){ fitQual = atrack->fitQuality()->chiSquared()/atrack->fitQuality()->numberDoF(); } - if(fitQual > 1.3 && decideIfInHighPtBROI(atrack.track())){ std::unique_ptr<Trk::Track> refittedTrack( refitTracksFromB(atrack.track(), fitQual)); //Q: Is there the case atrack == refittedTrack ? if(refittedTrack){ // add track to PRD_AssociationTool - StatusCode sc = m_assoTool->addPRDs(prd_to_track_map, *refittedTrack); - if (sc.isFailure()) ATH_MSG_ERROR( "addPRDs() failed" ); + if ( m_assoTool->addPRDs(prdToTrackMap, *refittedTrack).isFailure()){ + ATH_MSG_ERROR( "addPRDs() failed" ); + } // add to output list finalTracks.push_back( refittedTrack.release() ); if (atrack.newTrack()) { cleanup_tracks.push_back(std::unique_ptr<const Trk::Track>(atrack.release()) ); } - }else{ + } else { // add track to PRD_AssociationTool - StatusCode sc = m_assoTool->addPRDs(prd_to_track_map, *atrack); - if (sc.isFailure()) ATH_MSG_ERROR( "addPRDs() failed" ); + StatusCode sc = m_assoTool->addPRDs(prdToTrackMap, *atrack); + if (m_assoTool->addPRDs(prdToTrackMap, *atrack).isFailure()){ + ATH_MSG_ERROR( "addPRDs() failed" ); + } // add to output list finalTracks.push_back( atrack.release() ); } - }else { + } else { // add track to PRD_AssociationTool - StatusCode sc = m_assoTool->addPRDs(prd_to_track_map, *atrack); - if (sc.isFailure()) ATH_MSG_ERROR( "addPRDs() failed" ); + if (m_assoTool->addPRDs(prdToTrackMap, *atrack).isFailure()){ + ATH_MSG_ERROR( "addPRDs() failed" ); + } // add to output list finalTracks.push_back( atrack.release() ); } - }else if ( keep_orig){ + } else if ( keepOriginal){ // track can be kept as is, but is not yet fitted ATH_MSG_DEBUG ("Good track("<< atrack.track() << ") but need to fit this track first, score, add it into map again and retry ! "); - Trk::Track *refittedTrack = refitTrack(atrack.track(),prd_to_track_map, stat); + Trk::Track *refittedTrack = refitTrack(atrack.track(),prdToTrackMap, stat); if(refittedTrack) { - addTrack( refittedTrack, true , scoreTrackFitflagMap, prd_to_track_map, cleanup_tracks, stat); + addTrack( refittedTrack, true , scoreTrackFitflagMap, prdToTrackMap, cleanup_tracks, stat); } // remove original copy, but delay removal since some pointer to it or its constituents may still be in used if (atrack.newTrack()) { @@ -353,7 +345,7 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::solveTracks(const TracksScore ATH_MSG_DEBUG ("Candidate excluded, add subtrack to map. Track "<<cleanedTrack.get()); stat.incrementCounterByRegion(EStatType::kNsubTrack,cleanedTrack.get()); // for this case clenedTrack is a new created object. - addTrack(cleanedTrack.release(), false, scoreTrackFitflagMap, prd_to_track_map, cleanup_tracks, stat); + addTrack(cleanedTrack.release(), false, scoreTrackFitflagMap, prdToTrackMap, cleanup_tracks, stat); // remove original copy, but delay removal since some pointer to it or its constituents may still be in used if (atrack.newTrack()) { cleanup_tracks.push_back(std::unique_ptr<const Trk::Track>(atrack.release()) ); @@ -364,7 +356,7 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::solveTracks(const TracksScore stat.incrementCounterByRegion(EStatType::kNnoSubTrack,atrack.track()); // remove original copy, but delay removal since some pointer to it or its constituents may still be in used if (atrack.newTrack()) { - cleanup_tracks.push_back(std::unique_ptr<const Trk::Track>(atrack.release()) ); + cleanup_tracks.push_back(std::unique_ptr<const Trk::Track>(atrack.release()) ); } } } @@ -375,14 +367,14 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::solveTracks(const TracksScore //================================================================================================== Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitTrack( const Trk::Track* track, - Trk::PRDtoTrackMap &prd_to_track_map, + Trk::PRDtoTrackMap &prdToTrackMap, TrackStat &stat) const{ Trk::Track* newTrack = nullptr; if (!m_suppressTrackFit){ if (m_refitPrds) { // simple case, fit PRD directly ATH_MSG_VERBOSE ("Refit track "<<track<<" from PRDs"); - newTrack = refitPrds (track,prd_to_track_map, stat); + newTrack = refitPrds (track,prdToTrackMap, stat); }else { // ok, we fit ROTs ATH_MSG_VERBOSE ("Refit track "<<track<<" from ROTs"); @@ -425,22 +417,18 @@ Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitTrack( const Trk: //================================================================================================== -Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitPrds( const Trk::Track* track, - Trk::PRDtoTrackMap &prd_to_track_map, - TrackStat &stat) const -{ - +Trk::Track* +Trk::DenseEnvironmentsAmbiguityProcessorTool::refitPrds( const Trk::Track* track, + Trk::PRDtoTrackMap &prdToTrackMap, + TrackStat &stat) const{ // get vector of PRDs // @TODO ensured that prds on track are registered for this track ? - std::vector<const Trk::PrepRawData*> prds = m_assoTool->getPrdsOnTrack(prd_to_track_map,*track); - + const auto & prds = m_assoTool->getPrdsOnTrack(prdToTrackMap,*track); if ( prds.empty() ) { ATH_MSG_WARNING( "No PRDs on track"); return nullptr; } - ATH_MSG_VERBOSE ("Track "<<track<<"\t has "<<prds.size()<<"\t PRDs"); - const TrackParameters* par = track->perigeeParameters(); if (par==nullptr) { ATH_MSG_DEBUG ("Track ("<<track<<") has no perigee! Try any other ?"); @@ -450,29 +438,19 @@ Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitPrds( const Trk:: return nullptr; } } - // refit using first parameter, do outliers Trk::Track* newTrack = nullptr; - - if (m_tryBremFit && track->info().trackProperties(Trk::TrackInfo::BremFit)) - { - + if (m_tryBremFit && track->info().trackProperties(Trk::TrackInfo::BremFit)){ stat.incrementCounterByRegion(EStatType::kNbremFits,track); - ATH_MSG_VERBOSE ("Brem track, refit with electron brem fit"); // TODO revert once GlobalChi2Fitter properly handles brem fits when // starting from prds // newTrack = fit(prds, *par, true, Trk::electron); newTrack = fit(*track, true, Trk::electron); - - } - else - { + } else { stat.incrementCounterByRegion(EStatType::kNfits,track); - ATH_MSG_VERBOSE ("Normal track, refit"); newTrack = fit(prds, *par, true, m_particleHypothesis); - if (!newTrack && m_tryBremFit && par->pT() > m_pTminBrem && (!m_caloSeededBrem || track->info().patternRecoInfo(Trk::TrackInfo::TrackInCaloROI))) { @@ -482,17 +460,14 @@ Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitPrds( const Trk:: // starting from prds // newTrack = fit(prds, *par, true, Trk::electron); newTrack = fit(*track, true, Trk::electron); - } } - if(newTrack) { stat.incrementCounterByRegion(EStatType::kNgoodFits,newTrack); //keeping the track of previously accumulated TrackInfo - const Trk::TrackInfo& old_info = track->info(); - newTrack->info().addPatternReco(old_info); - } - else { + const Trk::TrackInfo& originalInfo = track->info(); + newTrack->info().addPatternReco(originalInfo); + } else { stat.incrementCounterByRegion(EStatType::kNfailedFits,track); } return newTrack; @@ -500,29 +475,21 @@ Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitPrds( const Trk:: //================================================================================================== -Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitRots(const Trk::Track* track, - TrackStat &stat) const -{ - +Trk::Track* +Trk::DenseEnvironmentsAmbiguityProcessorTool::refitRots(const Trk::Track* track, + TrackStat &stat) const{ ATH_MSG_VERBOSE ("Refit track "<<track); - // refit using first parameter, do outliers Trk::Track* newTrack = nullptr; - if (m_tryBremFit && - track->info().trackProperties(Trk::TrackInfo::BremFit)) - { + track->info().trackProperties(Trk::TrackInfo::BremFit)){ stat.incrementCounterByRegion(EStatType::kNbremFits,track); ATH_MSG_VERBOSE ("Brem track, refit with electron brem fit"); newTrack = fit(*track, true, Trk::electron); - } - else - { - + } else { stat.incrementCounterByRegion(EStatType::kNfits,track); ATH_MSG_VERBOSE ("Normal track, refit"); newTrack = fit(*track, true, m_particleHypothesis); - if (!newTrack && m_tryBremFit && track->trackParameters()->front()->pT() > m_pTminBrem && (!m_caloSeededBrem || track->info().patternRecoInfo(Trk::TrackInfo::TrackInCaloROI))) @@ -533,14 +500,12 @@ Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitRots(const Trk::T } } - if(newTrack) - { + if(newTrack){ stat.incrementCounterByRegion(EStatType::kNgoodFits,newTrack); //keeping the track of previously accumulated TrackInfo - const Trk::TrackInfo& old_info = track->info(); - newTrack->info().addPatternReco(old_info); - } - else { + const Trk::TrackInfo& originalInfo = track->info(); + newTrack->info().addPatternReco(originalInfo); + } else { stat.incrementCounterByRegion(EStatType::kNfailedFits,track); } return newTrack; @@ -549,15 +514,15 @@ Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitRots(const Trk::T //================================================================================================== -void Trk::DenseEnvironmentsAmbiguityProcessorTool::storeTrkDistanceMapdR( TrackCollection& tracks, - std::vector<Trk::Track*> &refit_tracks_out ) -{ +void +Trk::DenseEnvironmentsAmbiguityProcessorTool::storeTrkDistanceMapdR( TrackCollection& tracks, + std::vector<Trk::Track*> &refittedTracks ){ ATH_MSG_VERBOSE ("Creating track Distance dR map"); SG::WriteHandle<InDet::DRMap> dRMapHandle (m_dRMap); dRMapHandle = std::make_unique<InDet::DRMap>(); if ( !dRMapHandle.isValid() ){ ATH_MSG_WARNING("Could not record Distance dR map."); - } else{ + } else { ATH_MSG_VERBOSE("Distance dR map recorded as '" << m_dRMap.key() <<"'."); } constexpr double twoPi = 2.*M_PI; @@ -643,13 +608,13 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::storeTrkDistanceMapdR( TrackC } } } - if(refit) refit_tracks_out.push_back(track); + if(refit) refittedTracks.push_back(track); } } //============================================================================================================ -bool Trk::DenseEnvironmentsAmbiguityProcessorTool::decideIfInHighPtBROI(const Trk::Track* ptrTrack) const -{ +bool +Trk::DenseEnvironmentsAmbiguityProcessorTool::decideIfInHighPtBROI(const Trk::Track* ptrTrack) const{ // Are we in a ROI? bool inROIandPTok(true); if( ptrTrack->trackParameters()->front() ){ @@ -658,31 +623,27 @@ bool Trk::DenseEnvironmentsAmbiguityProcessorTool::decideIfInHighPtBROI(const Tr return false; } if(inROIandPTok){ - bool inROI = m_useHClusSeed && isHadCaloCompatible(*ptrTrack->trackParameters()->front()); return inROI; } - - return false; - } return false; + } + return false; } //============================================================================================================ -bool Trk::DenseEnvironmentsAmbiguityProcessorTool::isHadCaloCompatible(const Trk::TrackParameters& Tp) const -{ +bool +Trk::DenseEnvironmentsAmbiguityProcessorTool::isHadCaloCompatible(const Trk::TrackParameters& Tp) const{ const double pi = M_PI; const double pi2 = 2.*M_PI; - if(m_hadF.empty()) return false; + if(m_hadF.empty()) return false; auto f = m_hadF.begin(); auto fe = m_hadF.end(); auto e = m_hadE.begin(); auto r = m_hadR.begin(); auto z = m_hadZ.begin(); - double F = Tp.momentum().phi(); double E = Tp.eta(); - for(; f!=fe; ++f) { double df = std::abs(F-(*f)); if(df > pi ) df = std::abs(pi2-df); @@ -701,8 +662,8 @@ bool Trk::DenseEnvironmentsAmbiguityProcessorTool::isHadCaloCompatible(const Trk } //============================================================================================================ -void Trk::DenseEnvironmentsAmbiguityProcessorTool::reloadHadROIs() const -{ +void +Trk::DenseEnvironmentsAmbiguityProcessorTool::reloadHadROIs() const{ // turn into conditions algorithm if(m_useHClusSeed) { m_hadF.clear(); @@ -721,8 +682,8 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::reloadHadROIs() const } //============================================================================================================ -void Trk::DenseEnvironmentsAmbiguityProcessorTool::removeInnerHits(std::vector<const Trk::MeasurementBase*>& measurements) const -{ +void +Trk::DenseEnvironmentsAmbiguityProcessorTool::removeInnerHits(std::vector<const Trk::MeasurementBase*>& measurements) const{ int count = 0; for (size_t i=0; i < measurements.size(); ++i){ const Trk::RIO_OnTrack* rio = dynamic_cast <const Trk::RIO_OnTrack*>(measurements.at(i)); @@ -736,19 +697,16 @@ void Trk::DenseEnvironmentsAmbiguityProcessorTool::removeInnerHits(std::vector<c measurements.erase(measurements.begin()+i); break; } - - break; - - } - break; + } + break; } } } //============================================================================================================ -Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitTracksFromB(const Trk::Track* track, double fitQualityOriginal) const -{ +Trk::Track* +Trk::DenseEnvironmentsAmbiguityProcessorTool::refitTracksFromB(const Trk::Track* track, double fitQualityOriginal) const{ const Trk::TrackParameters* par = track->perigeeParameters(); if (par==nullptr) { par = track->trackParameters()->front(); @@ -756,10 +714,8 @@ Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitTracksFromB(const ATH_MSG_DEBUG ("Track ("<<track<<") has no Track Parameters ! No refit !"); return nullptr; } - } - - //std::vector<const Trk::MeasurementBase*>* measurementSet = new std::vector<const Trk::MeasurementBase*>; - std::vector<const Trk::MeasurementBase*> measurementSet; + } + std::vector<const Trk::MeasurementBase*> measurementSet{}; //store all silicon measurements into the measurementset DataVector<const Trk::TrackStateOnSurface>::const_iterator trackStateOnSurface = track->trackStateOnSurfaces()->begin(); for ( ; trackStateOnSurface != track->trackStateOnSurfaces()->end(); ++trackStateOnSurface ) { diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.h b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.h index ebe80437b05..178af39e0e4 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.h +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.h @@ -69,227 +69,229 @@ namespace Trk { kNgoodFits, kNfailedFits, kNCounter - }; - using TrackStat = AmbiCounter<EStatType>; - // default methods - DenseEnvironmentsAmbiguityProcessorTool(const std::string&,const std::string&,const IInterface*); - virtual ~DenseEnvironmentsAmbiguityProcessorTool (); - virtual StatusCode initialize() override; - virtual StatusCode finalize () override; - void dumpStat(MsgStream &out) const; - - - /**Returns a processed TrackCollection from the passed 'tracks' - @param tracks collection of tracks which will have ambiguities resolved. Will not be - modified. - The tracks will be refitted if no fitQuality is given at input. - @return new collections of tracks, with ambiguities resolved. Ownership is passed on - (i.e. client handles deletion)*/ - virtual TrackCollection* process(const TracksScores *trackScoreTrackMap) const override; - - virtual TrackCollection* process(const TrackCollection*,Trk::PRDtoTrackMap *) const override {return nullptr;}; - - /** statistics output to be called by algorithm during finalize. */ - virtual void statistics() override; - private: - - //transfer ownership - void addTrack(Track* track, const bool fitted, - std::multimap<float, TrackPtr > &scoreTrackFitflagMap, - const Trk::PRDtoTrackMap &prd_to_track_map, - std::vector<std::unique_ptr<const Trk::Track> >& cleanup_tracks, - TrackStat &stat) const; - - void solveTracks(const TracksScores& trackScoreTrackMap, - Trk::PRDtoTrackMap &prd_to_track_map, - TrackCollection &finalTracks, - std::vector<std::unique_ptr<const Trk::Track> >& cleanup_tracks, - TrackStat &stat) const; - - /** refit track */ - Track* refitTrack( const Trk::Track* track, Trk::PRDtoTrackMap &prd_to_track_map, - TrackStat &stat) const; - - /** refit PRDs */ - Track* refitPrds( const Track* track, Trk::PRDtoTrackMap &prd_to_track_map, + }; + using TrackStat = AmbiCounter<EStatType>; + // default methods + DenseEnvironmentsAmbiguityProcessorTool(const std::string&,const std::string&,const IInterface*); + virtual ~DenseEnvironmentsAmbiguityProcessorTool (); + virtual StatusCode initialize() override; + virtual StatusCode finalize () override; + void dumpStat(MsgStream &out) const; + + + /**Returns a processed TrackCollection from the passed 'tracks' + @param tracks collection of tracks which will have ambiguities resolved. Will not be + modified. + The tracks will be refitted if no fitQuality is given at input. + @return new collections of tracks, with ambiguities resolved. Ownership is passed on + (i.e. client handles deletion)*/ + virtual TrackCollection* process(const TracksScores *trackScoreTrackMap) const override; + + virtual TrackCollection* process(const TrackCollection*,Trk::PRDtoTrackMap *) const override {return nullptr;}; + + /** statistics output to be called by algorithm during finalize. */ + virtual void statistics() override; + + private: + //transfer ownership + void addTrack(Track* track, const bool fitted, + std::multimap<float, TrackPtr > &scoreTrackFitflagMap, + const Trk::PRDtoTrackMap &prd_to_track_map, + std::vector<std::unique_ptr<const Trk::Track> >& cleanup_tracks, + TrackStat &stat) const; + + void solveTracks(const TracksScores& trackScoreTrackMap, + Trk::PRDtoTrackMap &prd_to_track_map, + TrackCollection &finalTracks, + std::vector<std::unique_ptr<const Trk::Track> >& cleanup_tracks, + TrackStat &stat) const; + + /** refit track */ + Track* refitTrack( const Trk::Track* track, Trk::PRDtoTrackMap &prd_to_track_map, TrackStat &stat) const; - /** refit ROTs corresponding to PRDs*/ - //TODO or Q: new created track, why const - Track* refitRots( const Track* track, TrackStat &stat) const; - - /** stores the minimal dist(trk,trk) for covariance correction*/ - void storeTrkDistanceMapdR(TrackCollection& tracks, - std::vector<Trk::Track*> &refit_tracks_out ); - - /** refit Tracks that are in the region of interest and removes inner hits that are wrongly assigned*/ - void removeInnerHits(std::vector<const Trk::MeasurementBase*>& measurements) const; - Trk::Track* refitTracksFromB(const Trk::Track* track,double fitQualityOriginal) const; - - /** see if we are in the region of interest for B tracks*/ - bool decideIfInHighPtBROI(const Trk::Track*) const; - - /** Check if the cluster is compatible with a hadronic cluster*/ - bool isHadCaloCompatible(const Trk::TrackParameters& Tp) const; - - /** Load the clusters to see if they are compatibles with ROI*/ - void reloadHadROIs() const; - - - Trk::Track *fit(std::vector<const Trk::PrepRawData*> &raw, - const TrackParameters ¶m, bool flag, Trk::ParticleHypothesis hypo) const; - Trk::Track *fit(std::vector<const Trk::MeasurementBase*> &measurements, - const TrackParameters ¶m, bool flag, Trk::ParticleHypothesis hypo) const; - template<typename... Args> - Trk::Track *fit(const Track &track, Args... args) const; - bool checkTrack(const Trk::Track *) const; + /** refit PRDs */ + Track* refitPrds( const Track* track, Trk::PRDtoTrackMap &prd_to_track_map, + TrackStat &stat) const; + + /** refit ROTs corresponding to PRDs*/ + //TODO or Q: new created track, why const + Track* refitRots( const Track* track, TrackStat &stat) const; + + /** stores the minimal dist(trk,trk) for covariance correction*/ + void storeTrkDistanceMapdR(TrackCollection& tracks, std::vector<Trk::Track*> &refit_tracks_out ); - // private data members - - /** brem recovery mode with brem fit ? */ - bool m_tryBremFit; - bool m_caloSeededBrem; - float m_pTminBrem; - - /** by default refit tracks from PRD */ - bool m_refitPrds; - - /** rescale pixel PRD covariances */ - bool m_applydRcorrection; - - /** suppress Hole Search */ - bool m_suppressHoleSearch; - - /** suppress Track Fit */ - bool m_suppressTrackFit; - - /** by default tracks at input get refitted */ - bool m_forceRefit; - - /** variables to decide if we are in a ROI */ - bool m_useHClusSeed; - float m_minPtBjetROI; - float m_phiWidth; - float m_etaWidth; - SG::ReadHandleKey<CaloClusterROI_Collection> m_inputHadClusterContainerName; - - mutable std::vector<double> m_hadF; - mutable std::vector<double> m_hadE; - mutable std::vector<double> m_hadR; - mutable std::vector<double> m_hadZ; - - /** control material effects (0=non-interacting, 1=pion, 2=electron, 3=muon, 4=pion) read in as an integer - read in as an integer and convert to particle hypothesis */ - int m_matEffects; - Trk::ParticleHypothesis m_particleHypothesis; - - /**Scoring tool - This tool is used to 'score' the tracks, i.e. to quantify what a good track is. - @todo The actual tool that is used should be configured through job options*/ - ToolHandle<ITrackScoringTool> m_scoringTool; - - /** refitting tool - used to refit tracks once shared hits are removed. - Refitting tool used is configured via jobOptions.*/ - ToolHandleArray<ITrackFitter> m_fitterTool; - /** extrapolator tool - used to refit tracks once shared hits are removed. - Extrapolator tool used is configured via jobOptions.*/ - ToolHandle<IExtrapolator> m_extrapolatorTool; - - ToolHandle<Trk::IPRDtoTrackMapTool> m_assoTool - {this, "AssociationTool", "InDet::InDetPRDtoTrackMapToolGangedPixels" }; - - ToolHandle<Trk::IExtendedTrackSummaryTool> m_trackSummaryTool - {this, "TrackSummaryTool", "InDetTrackSummaryToolNoHoleSearch"}; - - /** key for the PRDtoTrackMap to filled by the ambiguity score processor.**/ - SG::ReadHandleKey<Trk::PRDtoTrackMap> m_assoMapName - {this,"AssociationMapName",""}; ///< the key given to the newly created association map - - /** selection tool - here the decision which hits remain on a track and - which are removed are made */ - ToolHandle<IAmbiTrackSelectionTool> m_selectionTool; - - - /**These allow us to retrieve the helpers*/ - const PixelID* m_pixelId; - const AtlasDetectorID* m_idHelper; - std::vector<float> m_etaBounds; //!< eta intervals for internal monitoring - - SG::WriteHandleKey<InDet::DRMap> m_dRMap; //!< the actual dR map - - mutable std::mutex m_statMutex; - mutable TrackStat m_stat ATLAS_THREAD_SAFE; - - bool m_rejectInvalidTracks; - }; - inline - Trk::Track *DenseEnvironmentsAmbiguityProcessorTool::fit(std::vector<const Trk::PrepRawData*> &raw, - const TrackParameters ¶m, bool flag, - Trk::ParticleHypothesis hypo) const { - Trk::Track *new_track=nullptr; - for ( const ToolHandle<ITrackFitter> &a_fitter : m_fitterTool) { - delete new_track; - new_track=nullptr; - new_track = a_fitter->fit(raw, param, flag,hypo); - if (Trk::DenseEnvironmentsAmbiguityProcessorTool::checkTrack(new_track)) { - return new_track; - } - ATH_MSG_WARNING( "The track fitter, " << a_fitter->name() << ", produced a track with an invalid covariance matrix." ); - } - ATH_MSG_WARNING( "None of the " << m_fitterTool.size() << " track fitter(s) produced a track with a valid covariance matrix." ); - if (m_rejectInvalidTracks) { - delete new_track; - new_track=nullptr; - } - return new_track; - } + /** refit Tracks that are in the region of interest and removes inner hits that are wrongly assigned*/ + void removeInnerHits(std::vector<const Trk::MeasurementBase*>& measurements) const; + + Trk::Track* refitTracksFromB(const Trk::Track* track,double fitQualityOriginal) const; + + /** see if we are in the region of interest for B tracks*/ + bool decideIfInHighPtBROI(const Trk::Track*) const; + + /** Check if the cluster is compatible with a hadronic cluster*/ + bool isHadCaloCompatible(const Trk::TrackParameters& Tp) const; + + /** Load the clusters to see if they are compatibles with ROI*/ + void reloadHadROIs() const; + + + Trk::Track *fit(const std::vector<const Trk::PrepRawData*> &raw, + const TrackParameters ¶m, bool flag, Trk::ParticleHypothesis hypo) const; + + Trk::Track *fit(const std::vector<const Trk::MeasurementBase*> &measurements, + const TrackParameters ¶m, bool flag, Trk::ParticleHypothesis hypo) const; + + template<typename... Args> + Trk::Track *fit(const Track &track, Args... args) const; + + bool checkTrack(const Trk::Track *) const; + + // private data members - inline - Trk::Track *DenseEnvironmentsAmbiguityProcessorTool::fit(std::vector<const Trk::MeasurementBase*> &measurements, - const TrackParameters ¶m, - bool flag, - Trk::ParticleHypothesis hypo) const - { - Trk::Track *new_track=nullptr; - for ( const ToolHandle<ITrackFitter> &a_fitter : m_fitterTool) { - delete new_track; - new_track=nullptr; - new_track = a_fitter->fit(measurements, param, flag, hypo); - if (Trk::DenseEnvironmentsAmbiguityProcessorTool::checkTrack(new_track)) { - return new_track; - } - ATH_MSG_WARNING( "The track fitter, " << a_fitter->name() << ", produced a track with an invalid covariance matrix." ); - } - ATH_MSG_WARNING( "None of the " << m_fitterTool.size() << " track fitter(s) produced a track with a valid covariance matrix." ); - if (m_rejectInvalidTracks) { - delete new_track; - new_track=nullptr; - } - return new_track; - } + /** brem recovery mode with brem fit ? */ + bool m_tryBremFit; + bool m_caloSeededBrem; + float m_pTminBrem; - template<typename... Args> - inline - Trk::Track *DenseEnvironmentsAmbiguityProcessorTool::fit(const Track &track, Args... args) const - { - Trk::Track *new_track=nullptr; - for ( const ToolHandle<ITrackFitter> &a_fitter : m_fitterTool) { - delete new_track; - new_track=nullptr; - new_track = a_fitter->fit(track,args...); - if (Trk::DenseEnvironmentsAmbiguityProcessorTool::checkTrack(new_track)) { - return new_track; - } - ATH_MSG_WARNING( "The track fitter, " << a_fitter->name() << ", produced a track with an invalid covariance matrix." ); - //TODO: potential memory leakage - } - ATH_MSG_WARNING( "None of the " << m_fitterTool.size() << " track fitter(s) produced a track with a valid covariance matrix." ); - if (m_rejectInvalidTracks) { - delete new_track; - new_track=nullptr; - } - return new_track; + /** by default refit tracks from PRD */ + bool m_refitPrds; + + /** rescale pixel PRD covariances */ + bool m_applydRcorrection; + + /** suppress Hole Search */ + bool m_suppressHoleSearch; + + /** suppress Track Fit */ + bool m_suppressTrackFit; + + /** by default tracks at input get refitted */ + bool m_forceRefit; + + /** variables to decide if we are in a ROI */ + bool m_useHClusSeed; + float m_minPtBjetROI; + float m_phiWidth; + float m_etaWidth; + SG::ReadHandleKey<CaloClusterROI_Collection> m_inputHadClusterContainerName; + + mutable std::vector<double> m_hadF; + mutable std::vector<double> m_hadE; + mutable std::vector<double> m_hadR; + mutable std::vector<double> m_hadZ; + + /** control material effects (0=non-interacting, 1=pion, 2=electron, 3=muon, 4=pion) read in as an integer + read in as an integer and convert to particle hypothesis */ + int m_matEffects; + Trk::ParticleHypothesis m_particleHypothesis; + + /**Scoring tool + This tool is used to 'score' the tracks, i.e. to quantify what a good track is. + @todo The actual tool that is used should be configured through job options*/ + ToolHandle<ITrackScoringTool> m_scoringTool; + + /** refitting tool - used to refit tracks once shared hits are removed. + Refitting tool used is configured via jobOptions.*/ + ToolHandleArray<ITrackFitter> m_fitterTool; + /** extrapolator tool - used to refit tracks once shared hits are removed. + Extrapolator tool used is configured via jobOptions.*/ + ToolHandle<IExtrapolator> m_extrapolatorTool; + + ToolHandle<Trk::IPRDtoTrackMapTool> m_assoTool + {this, "AssociationTool", "InDet::InDetPRDtoTrackMapToolGangedPixels" }; + + ToolHandle<Trk::IExtendedTrackSummaryTool> m_trackSummaryTool + {this, "TrackSummaryTool", "InDetTrackSummaryToolNoHoleSearch"}; + + /** key for the PRDtoTrackMap to filled by the ambiguity score processor.**/ + SG::ReadHandleKey<Trk::PRDtoTrackMap> m_assoMapName + {this,"AssociationMapName",""}; ///< the key given to the newly created association map + + /** selection tool - here the decision which hits remain on a track and + which are removed are made */ + ToolHandle<IAmbiTrackSelectionTool> m_selectionTool; + + /**These allow us to retrieve the helpers*/ + const PixelID* m_pixelId; + const AtlasDetectorID* m_idHelper; + std::vector<float> m_etaBounds; //!< eta intervals for internal monitoring + + SG::WriteHandleKey<InDet::DRMap> m_dRMap; //!< the actual dR map + + mutable std::mutex m_statMutex; + mutable TrackStat m_stat ATLAS_THREAD_SAFE; + + bool m_rejectInvalidTracks; + }; + + inline Trk::Track * + DenseEnvironmentsAmbiguityProcessorTool::fit(const std::vector<const Trk::PrepRawData*> &raw, + const TrackParameters ¶m, bool flag, + Trk::ParticleHypothesis hypo) const { + Trk::Track *newTrack=nullptr; + for ( const ToolHandle<ITrackFitter> &thisFitter : m_fitterTool) { + delete newTrack; + newTrack=nullptr; + newTrack = thisFitter->fit(raw, param, flag,hypo); + if (Trk::DenseEnvironmentsAmbiguityProcessorTool::checkTrack(newTrack)) { + return newTrack; + } + ATH_MSG_WARNING( "The track fitter, " << thisFitter->name() << ", produced a track with an invalid covariance matrix." ); + } + ATH_MSG_WARNING( "None of the " << m_fitterTool.size() << " track fitter(s) produced a track with a valid covariance matrix." ); + if (m_rejectInvalidTracks) { + delete newTrack; + newTrack=nullptr; + } + return newTrack; + } + + inline Trk::Track * + DenseEnvironmentsAmbiguityProcessorTool::fit(const std::vector<const Trk::MeasurementBase*> &measurements, + const TrackParameters ¶m, + bool flag, + Trk::ParticleHypothesis hypo) const{ + Trk::Track *newTrack=nullptr; + for ( const ToolHandle<ITrackFitter> &thisFitter : m_fitterTool) { + delete newTrack; + newTrack = nullptr; + newTrack = thisFitter->fit(measurements, param, flag, hypo); + if (Trk::DenseEnvironmentsAmbiguityProcessorTool::checkTrack(newTrack)) { + return newTrack; + } + ATH_MSG_WARNING( "The track fitter, " << thisFitter->name() << ", produced a track with an invalid covariance matrix." ); + } + ATH_MSG_WARNING( "None of the " << m_fitterTool.size() << " track fitter(s) produced a track with a valid covariance matrix." ); + if (m_rejectInvalidTracks) { + delete newTrack; + newTrack = nullptr; + } + return newTrack; + } + + template<typename... Args> + inline Trk::Track * + DenseEnvironmentsAmbiguityProcessorTool::fit(const Track &track, Args... args) const{ + Trk::Track *newTrack=nullptr; + for ( const ToolHandle<ITrackFitter> &thisFitter : m_fitterTool) { + delete newTrack; + newTrack=nullptr; + newTrack = thisFitter->fit(track,args...); + if (Trk::DenseEnvironmentsAmbiguityProcessorTool::checkTrack(newTrack)) { + return newTrack; } + ATH_MSG_WARNING( "The track fitter, " << thisFitter->name() << ", produced a track with an invalid covariance matrix." ); + //TODO: potential memory leakage + } + ATH_MSG_WARNING( "None of the " << m_fitterTool.size() << " track fitter(s) produced a track with a valid covariance matrix." ); + if (m_rejectInvalidTracks) { + delete newTrack; + newTrack=nullptr; + } + return newTrack; + } + } //end ns diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityScoreProcessorTool.cxx b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityScoreProcessorTool.cxx index 1ba7763fe83..d05f9fcc88a 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityScoreProcessorTool.cxx +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityScoreProcessorTool.cxx @@ -46,13 +46,12 @@ Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::DenseEnvironmentsAmbiguitySco } //================================================================================================== -Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::~DenseEnvironmentsAmbiguityScoreProcessorTool() -{ +Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::~DenseEnvironmentsAmbiguityScoreProcessorTool(){ } //================================================================================================== -StatusCode Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::initialize() -{ +StatusCode +Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::initialize(){ StatusCode sc = StatusCode::SUCCESS; ATH_CHECK( m_scoringTool.retrieve()); ATH_CHECK( m_assoTool.retrieve()) ; @@ -76,12 +75,13 @@ StatusCode Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::initialize() } //================================================================================================== -StatusCode Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::finalize() -{ +StatusCode +Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::finalize(){ return StatusCode::SUCCESS; } -void Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::statistics() { +void +Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::statistics() { if (msgLvl(MSG::INFO)) { MsgStream &out=msg(MSG::INFO); out << " -- statistics " << "\n"; @@ -97,9 +97,9 @@ void Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::statistics() { /** Do actual processing of event. Takes a track container, and then returns the tracks which have been selected*/ -void Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::process(std::vector<const Track*>* tracks, - Trk::TracksScores* trackScoreTrackMap) const -{ +void +Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::process(std::vector<const Track*>* tracks, + Trk::TracksScores* trackScoreTrackMap) const{ InDet::PixelGangedClusterAmbiguities *splitClusterMap = nullptr; if(!m_splitClusterMapKey.key().empty()){ if(!m_splitClusterMapKey_last.key().empty()){ @@ -113,22 +113,19 @@ void Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::process(std::vector<cons splitClusterMap = new InDet::PixelGangedClusterAmbiguities(); } } - addNewTracks(tracks, trackScoreTrackMap); - std::unique_ptr<Trk::PRDtoTrackMap> prd_to_track_map( m_assoToolNotGanged.isEnabled() + std::unique_ptr<Trk::PRDtoTrackMap> prdToTrackMap( m_assoToolNotGanged.isEnabled() ? m_assoToolNotGanged->createPRDtoTrackMap() : m_assoTool->createPRDtoTrackMap() ); - overlappingTracks(trackScoreTrackMap, splitClusterMap, *prd_to_track_map); + overlappingTracks(trackScoreTrackMap, splitClusterMap, *prdToTrackMap); if (!m_assoMapName.key().empty()) { if (SG::WriteHandle<Trk::PRDtoTrackMap>(m_assoMapName).record( (m_assoToolNotGanged.isEnabled() - ? m_assoToolNotGanged->reduceToStorableMap(std::move(prd_to_track_map)) - : m_assoTool->reduceToStorableMap(std::move(prd_to_track_map)) )).isFailure()) { + ? m_assoToolNotGanged->reduceToStorableMap(std::move(prdToTrackMap)) + : m_assoTool->reduceToStorableMap(std::move(prdToTrackMap)) )).isFailure()) { ATH_MSG_FATAL("Failed to add PRD to track association map " << m_assoMapName.key() << "."); } } - - if(!m_splitClusterMapKey.key().empty()){ SG::WriteHandle<InDet::PixelGangedClusterAmbiguities> splitClusterMapHandle(m_splitClusterMapKey); splitClusterMapHandle = std::unique_ptr<InDet::PixelGangedClusterAmbiguities>(splitClusterMap); @@ -136,33 +133,30 @@ void Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::process(std::vector<cons ATH_MSG_ERROR("Could not record splitClusterMap."); } } - - } +} //================================================================================================== -void Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::addNewTracks(std::vector<const Track*>* tracks, - Trk::TracksScores* trackScoreTrackMap) const -{ +void +Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::addNewTracks(std::vector<const Track*>* tracks, + Trk::TracksScores* trackScoreTrackMap) const{ TrackStat3 stat(m_etaBounds); stat.newEvent(); - std::unique_ptr<Trk::PRDtoTrackMap> prd_to_track_map( m_assoTool->createPRDtoTrackMap() ); + std::unique_ptr<Trk::PRDtoTrackMap> prdToTrackMap( m_assoTool->createPRDtoTrackMap() ); PrdSignatureSet prdSigSet; ATH_MSG_DEBUG ("Number of tracks at Input: "<<tracks->size()); - for(const Track* a_track : *tracks) { ATH_MSG_DEBUG ("Processing track candidate "<<a_track); stat.incrementCounterByRegion(EStatType::kNcandidates,a_track); // @TODO should go to the score processor - // only fitted tracks get hole search, input is not fitted float score = m_scoringTool->score( *a_track, true); ATH_MSG_DEBUG ("Track Score is "<< score); // veto tracks with score 0 - bool reject = score==0; + bool reject = (score==0); if (reject){ stat.incrementCounterByRegion(EStatType::kNcandScoreZero,a_track); } else {// double track rejection - const std::vector<const Trk::PrepRawData*> & prds = m_assoTool->getPrdsOnTrack(*prd_to_track_map, *a_track); + const std::vector<const Trk::PrepRawData*> & prds = m_assoTool->getPrdsOnTrack(*prdToTrackMap, *a_track); // convert to set //PrdSignature prdSig( prds.begin(),prds.end() ); // we try to insert it into the set, if we fail (pair.second), it then exits already @@ -174,27 +168,24 @@ void Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::addNewTracks(std::vector ATH_MSG_DEBUG ("Insert new track in PrdSignatureSet"); } } - if (!reject) { // add track to map, map is sorted small to big ! set if fitted ATH_MSG_VERBOSE ("Track ("<< a_track <<" --> "<< *a_track << ") has score "<<score); trackScoreTrackMap->push_back( std::make_pair(a_track, -score)); } } - ATH_MSG_DEBUG ("Number of tracks in map:"<<trackScoreTrackMap->size()); { std::lock_guard<std::mutex> lock(m_statMutex); m_stat += stat; } - - } +} //================================================================================================== -void Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::updatePixelSplitInformationForCluster(const std::pair<const InDet::PixelCluster* const, - const Trk::TrackParameters*> & clusterTrkPara, - InDet::PixelGangedClusterAmbiguities *splitClusterMap) const -{ +void +Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::updatePixelSplitInformationForCluster(const std::pair<const InDet::PixelCluster* const, + const Trk::TrackParameters*> & clusterTrkPara, + InDet::PixelGangedClusterAmbiguities *splitClusterMap) const{ // Recalculate the split prob with the use of the track parameters InDet::PixelClusterSplitProb splitProb = m_splitProbTool->splitProbability( *clusterTrkPara.first, *clusterTrkPara.second ); @@ -213,7 +204,7 @@ void Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::updatePixelSplitInformat if ( splitProb.splitProbability(2) < 0 ){ pixelCluster->packSplitInformation( false, 0.0, 0.0 ); pixelCluster->setTooBigToBeSplit( true ); - }else{ + } else { pixelCluster->packSplitInformation( false, splitProb.splitProbability(2), splitProb.splitProbability(3) ) ; pixelCluster->setTooBigToBeSplit( false ); } @@ -233,20 +224,16 @@ void Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::updatePixelSplitInformat void Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::overlappingTracks(const TracksScores* scoredTracks, InDet::PixelGangedClusterAmbiguities *splitClusterMap, - Trk::PRDtoTrackMap &prd_to_track_map) const -{ + Trk::PRDtoTrackMap &prdToTrackMap) const{ const Trk::IPRDtoTrackMapTool *the_asso_tool = (m_assoToolNotGanged.isEnabled() ? &(*m_assoToolNotGanged) : &(*m_assoTool)); // Function currnetly does nothing useful expect for printout debug information ATH_MSG_DEBUG ("Starting to resolve overlapping tracks"); - // Map to add all pixel clusters on track to std::map< const InDet::PixelCluster*, const Trk::TrackParameters* > setOfPixelClustersOnTrack; std::map< const InDet::PixelCluster*, const Trk::Track* > setOfPixelClustersToTrackAssoc; - // Fill pixel cluster into the above map // Fill all PRD infromation into the association tool - for( const std::pair<const Track*, float>& scoredTracksItem : *scoredTracks ) - { + for( const std::pair<const Track*, float>& scoredTracksItem : *scoredTracks ){ // clean it out to make sure not to many shared hits ATH_MSG_VERBOSE ("--- Adding next track "<<scoredTracksItem.first << ":" << (scoredTracksItem.first->trackParameters() ? scoredTracksItem.first->trackParameters()->front()->pT() : -1.) @@ -255,38 +242,31 @@ Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::overlappingTracks(const Track // This should only be done in region defined by Jets // ..... for now let do the whole detector coudl be slow - if(the_asso_tool->addPRDs( prd_to_track_map, *scoredTracksItem.first ).isSuccess()){ + if(the_asso_tool->addPRDs( prdToTrackMap, *scoredTracksItem.first ).isSuccess()){ ATH_MSG_VERBOSE("--- Added hits to the association tool"); } else { ATH_MSG_VERBOSE("--- Failed to add hits to the association tool"); continue; } - // get all prds on 'track' const DataVector<const TrackStateOnSurface>* tsosVec = scoredTracksItem.first->trackStateOnSurfaces(); if(!tsosVec){ ATH_MSG_WARNING("TSOS vector does not exist"); continue; } - ATH_MSG_VERBOSE("---> Looping over TSOS's to allow for cluster updates: "<< tsosVec->size() ); - DataVector<const Trk::TrackStateOnSurface>::const_iterator tsos = tsosVec->begin(); for (; tsos != tsosVec->end(); ++tsos) { const MeasurementBase* measurement = (*tsos)->measurementOnTrack(); - if(!measurement || ! (*tsos)->trackParameters()){ ATH_MSG_VERBOSE("---- TSOS has either no measurement or parameters: "<< measurement << " " << (*tsos)->trackParameters() ); continue; } - if (!measurement->type(Trk::MeasurementBaseType::RIO_OnTrack)) continue; - const Trk::RIO_OnTrack* rio = static_cast<const Trk::RIO_OnTrack*>(measurement); if (rio->rioType(Trk::RIO_OnTrackType::PixelCluster)) { const InDet::PixelCluster* pixel = static_cast<const InDet::PixelCluster*> ( rio->prepRawData() ); assert( pixel); - //Update the pixel split information if the element is unique (The second element of the pair indiciates if the element was inserted into the map) auto ret = setOfPixelClustersOnTrack.insert(std::make_pair( pixel, (*tsos)->trackParameters() )); if (ret.second && m_splitProbTool.isEnabled()) { @@ -294,43 +274,38 @@ Trk::DenseEnvironmentsAmbiguityScoreProcessorTool::overlappingTracks(const Track } setOfPixelClustersToTrackAssoc.insert( std::make_pair( pixel, scoredTracksItem.first ) ); } - } } - // now loop as long as map is not empty - std::vector< std::pair< const InDet::PixelCluster*, const Trk::Track* > > sorted; - sorted.reserve( setOfPixelClustersToTrackAssoc.size() ); - for( const std::pair< const InDet::PixelCluster* const, const Trk::Track* > &pixelTrackItem : setOfPixelClustersToTrackAssoc ) { - sorted.push_back( pixelTrackItem ); - } - std::sort( sorted.begin(), sorted.end(), [](const std::pair< const InDet::PixelCluster*, const Trk::Track* > &a, - const std::pair< const InDet::PixelCluster*, const Trk::Track* > &b) { - return a.first->getHashAndIndex().collHash() < b.first->getHashAndIndex().collHash() - || ( a.first->getHashAndIndex().collHash() == b.first->getHashAndIndex().collHash() - && a.first->getHashAndIndex().objIndex() < b.first->getHashAndIndex().objIndex() ); - }); - // for( auto pixelTrackItem : setOfPixelClustersToTrackAssoc ) - for (const std::pair< const InDet::PixelCluster*, const Trk::Track* > &pixelTrackItem : sorted) { + std::vector< std::pair< const InDet::PixelCluster*, const Trk::Track* > > sorted; + sorted.reserve( setOfPixelClustersToTrackAssoc.size() ); + for( const std::pair< const InDet::PixelCluster* const, const Trk::Track* > &pixelTrackItem : setOfPixelClustersToTrackAssoc ) { + sorted.push_back( pixelTrackItem ); + } + std::sort( sorted.begin(), sorted.end(), [](const std::pair< const InDet::PixelCluster*, const Trk::Track* > &a, + const std::pair< const InDet::PixelCluster*, const Trk::Track* > &b) { + return a.first->getHashAndIndex().collHash() < b.first->getHashAndIndex().collHash() + || ( a.first->getHashAndIndex().collHash() == b.first->getHashAndIndex().collHash() + && a.first->getHashAndIndex().objIndex() < b.first->getHashAndIndex().objIndex() ); + }); + for (const std::pair< const InDet::PixelCluster*, const Trk::Track* > &pixelTrackItem : sorted) { ATH_MSG_VERBOSE ("---- Checking if track shares pixel hits if other tracks: " << pixelTrackItem.first << " with R " << pixelTrackItem.first->globalPosition().perp() ); - // find out how many tracks use this hit already - Trk::PRDtoTrackMap::ConstPrepRawDataTrackMapRange range = prd_to_track_map.onTracks( *pixelTrackItem.first ); + Trk::PRDtoTrackMap::ConstPrepRawDataTrackMapRange range = prdToTrackMap.onTracks( *pixelTrackItem.first ); int numberOfTracksWithThisPrd = std::distance(range.first,range.second); if (msgLvl(MSG::VERBOSE)) { TString tracks("---- number of tracks with this shared Prd: "); tracks += numberOfTracksWithThisPrd; for (Trk::IPRD_AssociationTool::ConstPRD_MapIt it =range.first; it != range.second;++it ){ - tracks += " "; - tracks += Form( " %p",(void*)(it->second)); - double pt = (it->second->trackParameters() ? it->second->trackParameters()->front()->pT() : -1); - tracks += Form(":%.3f", pt); - tracks += Form(",%i",static_cast<int>(it->second->measurementsOnTrack()->size())); + tracks += " "; + tracks += Form( " %p",(void*)(it->second)); + double pt = (it->second->trackParameters() ? it->second->trackParameters()->front()->pT() : -1); + tracks += Form(":%.3f", pt); + tracks += Form(",%i",static_cast<int>(it->second->measurementsOnTrack()->size())); } ATH_MSG_VERBOSE (tracks); } - - } + } } void diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/SimpleAmbiguityProcessorTool.cxx b/Tracking/TrkTools/TrkAmbiguityProcessor/src/SimpleAmbiguityProcessorTool.cxx index caa5b510de2..969ce2d25a4 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/SimpleAmbiguityProcessorTool.cxx +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/SimpleAmbiguityProcessorTool.cxx @@ -4,7 +4,6 @@ #include "SimpleAmbiguityProcessorTool.h" #include "AtlasDetDescr/AtlasDetectorID.h" -#include "GaudiKernel/MsgStream.h" #include "TrackScoringTool.h" #include "TrkParameters/TrackParameters.h" #include "TrkRIO_OnTrack/RIO_OnTrack.h" @@ -16,18 +15,15 @@ //================================================================================================== Trk::SimpleAmbiguityProcessorTool::SimpleAmbiguityProcessorTool(const std::string& t, - const std::string& n, - const IInterface* p ) + const std::string& n, + const IInterface* p ) : AthAlgTool(t,n,p), m_particleHypothesis{undefined}, m_scoringTool("Trk::TrackScoringTool/TrackScoringTool"), m_fitterTool ("Trk::KalmanFitter/InDetTrackFitter"), m_selectionTool("InDet::InDetAmbiTrackSelectionTool/InDetAmbiTrackSelectionTool"), - m_etabounds( {0.8, - 1.6, - 2.5, - 10.0} ), + m_etabounds( {0.8,1.6,2.5,10.0} ), m_stat(m_etabounds) { // statitics stuff @@ -75,7 +71,7 @@ StatusCode Trk::SimpleAmbiguityProcessorTool::initialize(){ // Print out memo that tracks have to be fitted if (!m_forceRefit) { ATH_MSG_INFO( "The forced refit of Tracks is switched off." ); - ATH_MSG_INFO( "Ensure, that the tracks are fitted after the ambiguity processing!"); + ATH_MSG_INFO( "Ensure that the tracks are fitted after the ambiguity processing!"); } // Configuration of the material effects Trk::ParticleSwitcher particleSwitch; @@ -84,7 +80,6 @@ StatusCode Trk::SimpleAmbiguityProcessorTool::initialize(){ if (m_tryBremFit) { ATH_MSG_INFO( "Try brem fit and recovery for electron like tracks."); } - // statistics if (m_etabounds.size() != Counter::nRegions) { ATH_MSG_ERROR( "There must be exactly " << Counter::nRegions @@ -112,35 +107,29 @@ void Trk::SimpleAmbiguityProcessorTool::statistics(){ //================================================================================================== - /** Do actual processing of event. Takes a track container, and then returns the tracks which have been selected*/ - TrackCollection* Trk::SimpleAmbiguityProcessorTool::process(const TrackCollection* trackCol, Trk::PRDtoTrackMap *prdToTrackMap) const { - std::vector<const Track*> tracks; - tracks.reserve(trackCol->size()); - for(const Track* e: *trackCol){ - tracks.push_back(e); - } - return process_vector(tracks, prdToTrackMap); + return processVector(*trackCol, prdToTrackMap); } -TrackCollection* Trk::SimpleAmbiguityProcessorTool::process(const TracksScores* tracksScores) const { - std::vector<const Track*> tracks; +TrackCollection* +Trk::SimpleAmbiguityProcessorTool::process(const TracksScores* tracksScores) const { + TrackCollection tracks(SG::VIEW_ELEMENTS); tracks.reserve(tracksScores->size()); for(const std::pair<const Trk::Track *, float>& e: *tracksScores){ - tracks.push_back(e.first); + auto atrack ATLAS_THREAD_SAFE = const_cast<Trk::Track *>(e.first); + tracks.push_back(atrack); } - - TrackCollection* re_tracks = process_vector(tracks,nullptr /* no external PRD-to-track map*/); + TrackCollection* re_tracks = processVector(tracks,nullptr /* no external PRD-to-track map*/); return re_tracks; } TrackCollection* -Trk::SimpleAmbiguityProcessorTool::process_vector(std::vector<const Track*> &tracks, Trk::PRDtoTrackMap *prdToTrackMap) const{ +Trk::SimpleAmbiguityProcessorTool::processVector(const TrackCollection &tracks, Trk::PRDtoTrackMap *prdToTrackMap) const{ TrackScoreMap trackScoreTrackMap; std::unique_ptr<Trk::PRDtoTrackMap> prdToTrackMap_cleanup; if (!prdToTrackMap) { @@ -160,7 +149,6 @@ Trk::SimpleAmbiguityProcessorTool::process_vector(std::vector<const Track*> &tra // - take track with highest score // - remove shared hits from all other tracks // - take next highest scoring tracks, and repeat - ATH_MSG_DEBUG ("Solving Tracks"); std::vector<std::unique_ptr<const Trk::Track> > cleanupTracks; TrackCollection* finalTracks = solveTracks(trackScoreTrackMap, *prdToTrackMap,cleanupTracks, stat); @@ -173,7 +161,7 @@ Trk::SimpleAmbiguityProcessorTool::process_vector(std::vector<const Track*> &tra } //================================================================================================== -void Trk::SimpleAmbiguityProcessorTool::addNewTracks(const std::vector<const Track*> &tracks, +void Trk::SimpleAmbiguityProcessorTool::addNewTracks(const TrackCollection &tracks, TrackScoreMap& trackScoreTrackMap, Trk::PRDtoTrackMap &prdToTrackMap, Counter &stat) const { @@ -197,7 +185,7 @@ void Trk::SimpleAmbiguityProcessorTool::addNewTracks(const std::vector<const Tra ATH_MSG_DEBUG ("Track Score is "<< score); // double track rejection if (m_dropDouble) { - std::vector<const Trk::PrepRawData*> prds = m_assoTool->getPrdsOnTrack(prdToTrackMap, *pTrack); + const auto & prds = m_assoTool->getPrdsOnTrack(prdToTrackMap, *pTrack); // unfortunately PrepRawDataSet is not a set ! PrdSignature prdSig; prdSig.insert( prds.begin(),prds.end() ); @@ -230,100 +218,69 @@ void Trk::SimpleAmbiguityProcessorTool::addTrack(Trk::Track* in_track, TrackScoreMap &trackScoreTrackMap, Trk::PRDtoTrackMap &prdToTrackMap, std::vector<std::unique_ptr<const Trk::Track> >& cleanupTracks, - Counter &stat) const -{ + Counter &stat) const { std::unique_ptr<Trk::Track> atrack(in_track); // compute score TrackScore score; bool suppressHoleSearch = fitted ? m_suppressHoleSearch : true; if (m_trackSummaryTool.isEnabled()) { - m_trackSummaryTool->computeAndReplaceTrackSummary(*atrack, - &prdToTrackMap, - suppressHoleSearch); + m_trackSummaryTool->computeAndReplaceTrackSummary(*atrack,&prdToTrackMap,suppressHoleSearch); } - score = m_scoringTool->score( *atrack, suppressHoleSearch ); - // do we accept the track ? - if (score!=0) - { - ATH_MSG_DEBUG ("Track ("<< atrack.get() <<") has score "<<score); - // statistic - stat.incrementCounterByRegion(ECounter::kNscoreOk,atrack.get()); - - // add track to map, map is sorted small to big ! - trackScoreTrackMap.insert( std::make_pair(-score, TrackPtr(atrack.release(), fitted)) ); - - return; - } - + if (score!=0){ + ATH_MSG_DEBUG ("Track ("<< atrack.get() <<") has score "<<score); + // statistic + stat.incrementCounterByRegion(ECounter::kNscoreOk,atrack.get()); + // add track to map, map is sorted small to big ! + trackScoreTrackMap.insert( std::make_pair(-score, TrackPtr(atrack.release(), fitted)) ); + return; + } // do we try to recover the track ? if (score==0 && fitted && m_tryBremFit && - !atrack->info().trackProperties(Trk::TrackInfo::BremFit) && - atrack->trackParameters()->front()->pT() > m_pTminBrem && - (!m_caloSeededBrem || atrack->info().patternRecoInfo(Trk::TrackInfo::TrackInCaloROI))) - { - - ATH_MSG_DEBUG ("Track score is zero, try to recover it via brem fit"); - - // run track fit using electron hypothesis - std::unique_ptr<Trk::Track> bremTrack( m_fitterTool->fit(*atrack,true,Trk::electron) ); - - if (!bremTrack) - { - ATH_MSG_DEBUG ("Brem refit failed, drop track"); - // statistic - stat.incrementCounterByRegion(ECounter::kNscoreZeroBremRefitFailed,atrack.get()); - stat.incrementCounterByRegion(ECounter::kNfailedFits,atrack.get()); - - // clean up - cleanupTracks.push_back(std::move(atrack)); - - } - else - { - - // statistic - stat.incrementCounterByRegion(ECounter::kNgoodFits,bremTrack.get()); - - // rerun score - if (m_trackSummaryTool.isEnabled()) { - m_trackSummaryTool->computeAndReplaceTrackSummary(*bremTrack, - &prdToTrackMap, - suppressHoleSearch); - } - score = m_scoringTool->score( *bremTrack, suppressHoleSearch ); - - // do we accept the track ? - if (score!=0) - { - ATH_MSG_DEBUG ("Brem refit successful, recovered track ("<< atrack.get() <<") has score "<<score); - // statistics - stat.incrementCounterByRegion(ECounter::kNscoreZeroBremRefit,bremTrack.get()); - - // add track to map, map is sorted small to big ! - trackScoreTrackMap.insert( std::make_pair(-score, TrackPtr(bremTrack.release(), fitted)) ); - return; - } - else - { - ATH_MSG_DEBUG ("Brem refit gave still track score zero, reject it"); - // statistic - stat.incrementCounterByRegion(ECounter::kNscoreZeroBremRefitScoreZero,bremTrack.get()); - - } - cleanupTracks.push_back(std::move(atrack)); - } - } - else - { - ATH_MSG_DEBUG ("Track score is zero, reject it"); + !atrack->info().trackProperties(Trk::TrackInfo::BremFit) && + atrack->trackParameters()->front()->pT() > m_pTminBrem && + (!m_caloSeededBrem || atrack->info().patternRecoInfo(Trk::TrackInfo::TrackInCaloROI))){ + ATH_MSG_DEBUG ("Track score is zero, try to recover it via brem fit"); + // run track fit using electron hypothesis + std::unique_ptr<Trk::Track> bremTrack( m_fitterTool->fit(*atrack,true,Trk::electron) ); + if (!bremTrack){ + ATH_MSG_DEBUG ("Brem refit failed, drop track"); // statistic - stat.incrementCounterByRegion(ECounter::kNscoreZero,atrack.get()); - + stat.incrementCounterByRegion(ECounter::kNscoreZeroBremRefitFailed,atrack.get()); + stat.incrementCounterByRegion(ECounter::kNfailedFits,atrack.get()); + // clean up + cleanupTracks.push_back(std::move(atrack)); + } else { + // statistic + stat.incrementCounterByRegion(ECounter::kNgoodFits,bremTrack.get()); + // rerun score + if (m_trackSummaryTool.isEnabled()) { + m_trackSummaryTool->computeAndReplaceTrackSummary(*bremTrack, &prdToTrackMap,suppressHoleSearch); + } + score = m_scoringTool->score( *bremTrack, suppressHoleSearch ); + // do we accept the track ? + if (score!=0){ + ATH_MSG_DEBUG ("Brem refit successful, recovered track ("<< atrack.get() <<") has score "<<score); + // statistics + stat.incrementCounterByRegion(ECounter::kNscoreZeroBremRefit,bremTrack.get()); + // add track to map, map is sorted small to big ! + trackScoreTrackMap.insert( std::make_pair(-score, TrackPtr(bremTrack.release(), fitted)) ); + return; + } else { + ATH_MSG_DEBUG ("Brem refit gave still track score zero, reject it"); + // statistic + stat.incrementCounterByRegion(ECounter::kNscoreZeroBremRefitScoreZero,bremTrack.get()); + } cleanupTracks.push_back(std::move(atrack)); } + } else { + ATH_MSG_DEBUG ("Track score is zero, reject it"); + // statistic + stat.incrementCounterByRegion(ECounter::kNscoreZero,atrack.get()); + cleanupTracks.push_back(std::move(atrack)); } +} //================================================================================================== TrackCollection *Trk::SimpleAmbiguityProcessorTool::solveTracks(TrackScoreMap& trackScoreTrackMap, @@ -363,20 +320,20 @@ TrackCollection *Trk::SimpleAmbiguityProcessorTool::solveTracks(TrackScoreMap& t if (atrack.newTrack()) { cleanupTracks.push_back( std::unique_ptr<Trk::Track>(atrack.release()) ); } - // delete original copy - } else if ( cleanedTrack ) { - // now delete original track + // delete original copy + } else if ( cleanedTrack ) { + // now delete original track if (atrack.newTrack()) { cleanupTracks.push_back( std::unique_ptr<Trk::Track>(atrack.release())); } - // don't forget to drop track from map + // don't forget to drop track from map // stripped down version should be reconsidered ATH_MSG_DEBUG ("Candidate excluded, add subtrack to map. Track "<<cleanedTrack.get()); // statistic stat.incrementCounterByRegion(ECounter::kNsubTrack,cleanedTrack.get()); // track needs fitting ! addTrack( cleanedTrack.release(), false, trackScoreTrackMap, prdToTrackMap, cleanupTracks, stat); - } else { + } else { // track should be discarded ATH_MSG_DEBUG ("Track "<< atrack.track() << " is excluded, no subtrack, reject"); // statistic @@ -384,8 +341,8 @@ TrackCollection *Trk::SimpleAmbiguityProcessorTool::solveTracks(TrackScoreMap& t if (atrack.newTrack()) { cleanupTracks.push_back( std::unique_ptr<Trk::Track>(atrack.release()) ); } - // don't forget to drop track from map - } + // don't forget to drop track from map + } } ATH_MSG_DEBUG ("Finished, number of track on output: "<<finalTracks->size()); return finalTracks.release(); @@ -393,7 +350,8 @@ TrackCollection *Trk::SimpleAmbiguityProcessorTool::solveTracks(TrackScoreMap& t //================================================================================================== -void Trk::SimpleAmbiguityProcessorTool::refitTrack( const Trk::Track* track, +void +Trk::SimpleAmbiguityProcessorTool::refitTrack( const Trk::Track* track, TrackScoreMap& trackScoreTrackMap, Trk::PRDtoTrackMap &prdToTrackMap, std::vector<std::unique_ptr<const Trk::Track> >& cleanupTracks, @@ -410,7 +368,8 @@ void Trk::SimpleAmbiguityProcessorTool::refitTrack( const Trk::Track* track, newTrack.reset( refitRots (track,stat) ); } }else{ - double reXi2 = 0.; int nDF = 0; + double reXi2 = 0.; + int nDF = 0; const DataVector<const TrackStateOnSurface>* tsos = track->trackStateOnSurfaces(); DataVector<const TrackStateOnSurface>* vecTsos = new DataVector<const TrackStateOnSurface>(); // loop over TSOS, copy TSOS and push into vector @@ -423,9 +382,9 @@ void Trk::SimpleAmbiguityProcessorTool::refitTrack( const Trk::Track* track, if ((*iTsos)->fitQualityOnSurface()) { reXi2 += (*iTsos)->fitQualityOnSurface()->chiSquared(); nDF += (*iTsos)->fitQualityOnSurface()->numberDoF(); - } - } - } + } + } + } Trk::FitQuality* fq = new Trk::FitQuality(reXi2,nDF-5); Trk::TrackInfo info; info.addPatternRecoAndProperties(track->info()); @@ -444,9 +403,10 @@ void Trk::SimpleAmbiguityProcessorTool::refitTrack( const Trk::Track* track, //================================================================================================== -Trk::Track* Trk::SimpleAmbiguityProcessorTool::refitPrds( const Trk::Track* track, - Trk::PRDtoTrackMap &prdToTrackMap, - Counter &stat) const{ +Trk::Track* +Trk::SimpleAmbiguityProcessorTool::refitPrds( const Trk::Track* track, + Trk::PRDtoTrackMap &prdToTrackMap, + Counter &stat) const{ // get vector of PRDs std::vector<const Trk::PrepRawData*> prds = m_assoTool->getPrdsOnTrack(prdToTrackMap,*track); if ( prds.empty() ) { @@ -487,8 +447,8 @@ Trk::Track* Trk::SimpleAmbiguityProcessorTool::refitPrds( const Trk::Track* trac // statistic stat.incrementCounterByRegion(ECounter::kNgoodFits,newTrack); //keeping the track of previously accumulated TrackInfo - const Trk::TrackInfo& old_info = track->info(); - newTrack->info().addPatternReco(old_info); + const Trk::TrackInfo& originalInfo = track->info(); + newTrack->info().addPatternReco(originalInfo); } else { // statistic stat.incrementCounterByRegion(ECounter::kNfailedFits,track); @@ -499,54 +459,37 @@ Trk::Track* Trk::SimpleAmbiguityProcessorTool::refitPrds( const Trk::Track* trac //================================================================================================== Trk::Track* Trk::SimpleAmbiguityProcessorTool::refitRots( const Trk::Track* track, - Counter &stat) const -{ - + Counter &stat) const { ATH_MSG_VERBOSE ("Refit track "<<track); - // refit using first parameter, do outliers Trk::Track* newTrack = nullptr; - - if (m_tryBremFit && - track->info().trackProperties(Trk::TrackInfo::BremFit)) - { + if (m_tryBremFit && track->info().trackProperties(Trk::TrackInfo::BremFit)) { + // statistics + stat.incrementCounterByRegion(ECounter::kNbremFits,track); + ATH_MSG_VERBOSE ("Brem track, refit with electron brem fit"); + newTrack = m_fitterTool->fit(*track, true, Trk::electron); + } else { + // statistics + stat.incrementCounterByRegion(ECounter::kNfits,track); + ATH_MSG_VERBOSE ("Normal track, refit"); + newTrack = m_fitterTool->fit(*track, true, m_particleHypothesis); + if (!newTrack && m_tryBremFit && + track->trackParameters()->front()->pT() > m_pTminBrem && + (!m_caloSeededBrem || track->info().patternRecoInfo(Trk::TrackInfo::TrackInCaloROI))){ // statistics - stat.incrementCounterByRegion(ECounter::kNbremFits,track); + stat.incrementCounterByRegion(ECounter::kNrecoveryBremFits,track); - ATH_MSG_VERBOSE ("Brem track, refit with electron brem fit"); + ATH_MSG_VERBOSE ("Normal fit failed, try brem recovery"); newTrack = m_fitterTool->fit(*track, true, Trk::electron); } - else - { - // statistics - stat.incrementCounterByRegion(ECounter::kNfits,track); - - ATH_MSG_VERBOSE ("Normal track, refit"); - newTrack = m_fitterTool->fit(*track, true, m_particleHypothesis); - - if (!newTrack && m_tryBremFit && - track->trackParameters()->front()->pT() > m_pTminBrem && - (!m_caloSeededBrem || track->info().patternRecoInfo(Trk::TrackInfo::TrackInCaloROI))) - { - // statistics - stat.incrementCounterByRegion(ECounter::kNrecoveryBremFits,track); - - ATH_MSG_VERBOSE ("Normal fit failed, try brem recovery"); - newTrack = m_fitterTool->fit(*track, true, Trk::electron); - } - } - - if(newTrack) - { + } + if(newTrack){ // statistic stat.incrementCounterByRegion(ECounter::kNgoodFits,newTrack); - //keeping the track of previously accumulated TrackInfo - const Trk::TrackInfo& old_info = track->info(); - newTrack->info().addPatternReco(old_info); - } - else - { + const Trk::TrackInfo& originalInfo = track->info(); + newTrack->info().addPatternReco(originalInfo); + } else { // statistic stat.incrementCounterByRegion(ECounter::kNfailedFits,track); } @@ -555,23 +498,19 @@ Trk::Track* Trk::SimpleAmbiguityProcessorTool::refitRots( const Trk::Track* trac //================================================================================================== -void Trk::SimpleAmbiguityProcessorTool::dumpTracks( const TrackCollection& tracks ) const -{ - +void Trk::SimpleAmbiguityProcessorTool::dumpTracks( const TrackCollection& tracks ) const{ ATH_MSG_VERBOSE ("Dumping tracks in collection"); int num=0; TrackScore totalScore = 0; TrackCollection::const_iterator it = tracks.begin(); TrackCollection::const_iterator itEnd = tracks.end(); for (; it != itEnd ; ++it){ - // score track: - const TrackScore score = m_scoringTool->score( **it, m_suppressHoleSearch ); - ATH_MSG_VERBOSE (num++<<"\tTrack :"<<*it<<"\tScore: "<<score); - totalScore+=score; - } + // score track: + const TrackScore score = m_scoringTool->score( **it, m_suppressHoleSearch ); + ATH_MSG_VERBOSE (num++<<"\tTrack :"<<*it<<"\tScore: "<<score); + totalScore+=score; + } ATH_MSG_DEBUG ("Total event score : "<<totalScore); - - } void diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/SimpleAmbiguityProcessorTool.h b/Tracking/TrkTools/TrkAmbiguityProcessor/src/SimpleAmbiguityProcessorTool.h index 1f7b0f441b4..074760b7f32 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/SimpleAmbiguityProcessorTool.h +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/SimpleAmbiguityProcessorTool.h @@ -58,15 +58,15 @@ namespace Trk { virtual StatusCode finalize () override; /**Returns a processed TrackCollection from the passed 'tracks' - @param tracks collection of tracks which will have ambiguities resolved. Will not be - modified. - The tracks will be refitted if no fitQuality is given at input. - @param prdToTrackMap on optional prd-to-track map being filled by the processor. - @return new collections of tracks, with ambiguities resolved. Ownership is passed on - (i.e. client handles deletion). - - If no prd-to-track map is given the processor will create - one internally (exported to storegate).*/ + @param tracks collection of tracks which will have ambiguities resolved. Will not be + modified. + The tracks will be refitted if no fitQuality is given at input. + @param prdToTrackMap on optional prd-to-track map being filled by the processor. + @return new collections of tracks, with ambiguities resolved. Ownership is passed on + (i.e. client handles deletion). + + If no prd-to-track map is given the processor will create + one internally (exported to storegate).*/ virtual TrackCollection* process(const TrackCollection*, Trk::PRDtoTrackMap *prdToTrackMap) const override; virtual TrackCollection* process(const TracksScores* scoredTracks) const override; @@ -74,13 +74,14 @@ namespace Trk { virtual void statistics() override; private: - TrackCollection* process_vector(std::vector<const Track*> &tracks, Trk::PRDtoTrackMap *prdToTrackMap) const; + TrackCollection* processVector(const TrackCollection &tracks, Trk::PRDtoTrackMap *prdToTrackMap) const; /**Add passed TrackCollection, and Trk::PrepRawData from tracks to caches - @param tracks the TrackCollection is looped over, - and each Trk::Track is added to the various caches. - The Trk::PrepRawData from each Trk::Track are added to the IPRD_AssociationTool*/ - void addNewTracks(const std::vector<const Track*> &tracks, + @param tracks the TrackCollection is looped over, + and each Trk::Track is added to the various caches. + The Trk::PrepRawData from each Trk::Track are added to the IPRD_AssociationTool*/ + //void addNewTracks(const std::vector<const Track*> &tracks, + void addNewTracks(const TrackCollection &tracks, TrackScoreMap& trackScoreTrackMap, Trk::PRDtoTrackMap &prdToTrackMap, Counter &stat) const; @@ -143,18 +144,17 @@ namespace Trk { bool m_suppressTrackFit; /** control material effects (0=non-interacting, 1=pion, 2=electron, 3=muon, 4=pion) read in as an integer - read in as an integer and convert to particle hypothesis */ + read in as an integer and convert to particle hypothesis */ int m_matEffects; Trk::ParticleHypothesis m_particleHypothesis; /**Scoring tool - This tool is used to 'score' the tracks, i.e. to quantify what a good track is. - @todo The actual tool that is used should be configured through job options*/ + This tool is used to 'score' the tracks, i.e. to quantify what a good track is. + @todo The actual tool that is used should be configured through job options*/ ToolHandle<ITrackScoringTool> m_scoringTool; - /** refitting tool - used to refit tracks once shared hits are removed. - Refitting tool used is configured via jobOptions.*/ + Refitting tool used is configured via jobOptions.*/ ToolHandle<ITrackFitter> m_fitterTool; ToolHandle<Trk::IPRDtoTrackMapTool> m_assoTool @@ -164,13 +164,13 @@ namespace Trk { {this, "TrackSummaryTool", "InDetTrackSummaryToolNoHoleSearch"}; /** selection tool - here the decision which hits remain on a track and - which are removed are made + which are removed are made */ ToolHandle<IAmbiTrackSelectionTool> m_selectionTool; /** monitoring statistics */ - //enum RegionIndex {iAll = 0, iBarrel = 1, iTransi = 2, iEndcap = 3, iDBM = 4, nRegions=5}; - std::vector<float> m_etabounds; //!< eta intervals for internal monitoring + //enum RegionIndex {iBarrel , iTransi , iEndcap , iDBM = 4, nRegions=4}; + std::vector<float> m_etabounds; //!< Four eta intervals for internal monitoring mutable std::mutex m_statMutex; mutable Counter m_stat ATLAS_THREAD_SAFE; diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackScoringTool.cxx b/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackScoringTool.cxx index 7486cfb338e..6c9a67ad3a2 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackScoringTool.cxx +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackScoringTool.cxx @@ -54,24 +54,23 @@ Trk::TrackScoringTool::TrackScoringTool(const std::string& t, m_summaryTypeScore[Trk::numberOfRpcEtaHits] = 10; } -Trk::TrackScoringTool::~TrackScoringTool() -{ +Trk::TrackScoringTool::~TrackScoringTool(){ } -StatusCode Trk::TrackScoringTool::initialize() -{ +StatusCode +Trk::TrackScoringTool::initialize(){ ATH_CHECK( AlgTool::initialize()); ATH_CHECK( m_trkSummaryTool.retrieve()); ATH_MSG_VERBOSE("Retrieved tool " << m_trkSummaryTool ); return StatusCode::SUCCESS; } -StatusCode Trk::TrackScoringTool::finalize() -{ +StatusCode Trk::TrackScoringTool::finalize(){ return AlgTool::finalize(); } -Trk::TrackScore Trk::TrackScoringTool::score( const Track& track, const bool suppressHoleSearch ) const{ +Trk::TrackScore +Trk::TrackScoringTool::score( const Track& track, const bool suppressHoleSearch ) const{ const TrackSummary* summary = nullptr; if (suppressHoleSearch) summary = m_trkSummaryTool->createSummaryNoHoleSearch(track); @@ -99,8 +98,7 @@ Trk::TrackScoringTool::simpleScore( const Track& track, const TrackSummary& trac } // --- summary score analysis - for (int i=0; i<Trk::numberOfTrackSummaryTypes; ++i) - { + for (int i=0; i<Trk::numberOfTrackSummaryTypes; ++i) { int value = trackSummary.get(static_cast<Trk::SummaryType>(i)); //value is -1 if undefined. if (value>0) { diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackScoringTool.h b/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackScoringTool.h index 234ec9187a5..1894f845d28 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackScoringTool.h +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackScoringTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ @@ -20,27 +20,25 @@ class ITrackSummaryTool; class TrackSummary; /**Concrete implementation of the ITrackScoringTool pABC*/ - class TrackScoringTool : virtual public ITrackScoringTool, public AthAlgTool - { + class TrackScoringTool : virtual public ITrackScoringTool, public AthAlgTool{ - public: - TrackScoringTool(const std::string&,const std::string&,const IInterface*); - virtual ~TrackScoringTool (); - virtual StatusCode initialize() override; - virtual StatusCode finalize () override; - /** create a score based on how good the passed track is*/ - TrackScore score( const Track& track, const bool suppressHoleSearch ) const override; + public: + TrackScoringTool(const std::string&,const std::string&,const IInterface*); + virtual ~TrackScoringTool (); + virtual StatusCode initialize() override; + virtual StatusCode finalize () override; + /** create a score based on how good the passed track is*/ + TrackScore score( const Track& track, const bool suppressHoleSearch ) const override; - /** create a score based on how good the passed TrackSummary is*/ - TrackScore simpleScore( const Track& track, const TrackSummary& trackSummary ) const override; + /** create a score based on how good the passed TrackSummary is*/ + TrackScore simpleScore( const Track& track, const TrackSummary& trackSummary ) const override; - private: + private: + /**\todo make this const, once createSummary method is const*/ + ToolHandle<ITrackSummaryTool> m_trkSummaryTool; - /**\todo make this const, once createSummary method is const*/ - ToolHandle<ITrackSummaryTool> m_trkSummaryTool; - - /**holds the scores assigned to each Trk::SummaryType from the track's Trk::TrackSummary*/ - std::vector<TrackScore> m_summaryTypeScore; + /**holds the scores assigned to each Trk::SummaryType from the track's Trk::TrackSummary*/ + std::vector<TrackScore> m_summaryTypeScore; }; } #endif diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackSelectionProcessorTool.cxx b/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackSelectionProcessorTool.cxx index f7eaca968e7..77476c2939b 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackSelectionProcessorTool.cxx +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackSelectionProcessorTool.cxx @@ -9,13 +9,11 @@ #include "AthContainers/ConstDataVector.h" #include "GaudiKernel/MsgStream.h" #include <map> -#include <ext/functional> -#include <iterator> //================================================================================================== Trk::TrackSelectionProcessorTool::TrackSelectionProcessorTool(const std::string& t, - const std::string& n, - const IInterface* p ) + const std::string& n, + const IInterface* p ) : AthAlgTool(t,n,p), m_scoringTool("Trk::TrackScoringTool/TrackScoringTool"), @@ -29,53 +27,30 @@ Trk::TrackSelectionProcessorTool::TrackSelectionProcessorTool(const std::string& } //================================================================================================== -Trk::TrackSelectionProcessorTool::~TrackSelectionProcessorTool() -{ +Trk::TrackSelectionProcessorTool::~TrackSelectionProcessorTool(){ } //================================================================================================== -StatusCode Trk::TrackSelectionProcessorTool::initialize() -{ - +StatusCode +Trk::TrackSelectionProcessorTool::initialize(){ StatusCode sc = AthAlgTool::initialize(); - if (sc.isFailure()) - { - msg(MSG::FATAL) << "AlgTool::initialise failed" << endmsg; - return StatusCode::FAILURE; - } - + if (sc.isFailure()) { + ATH_MSG_FATAL( "AlgTool::initialise failed" ); + return StatusCode::FAILURE; + } ATH_CHECK( m_assoMapName.initialize(!m_assoMapName.key().empty())); ATH_CHECK( m_assoTool.retrieve() ); - - sc = m_scoringTool.retrieve(); - if (sc.isFailure()) - { - msg(MSG::FATAL) << "Failed to retrieve tool " << m_scoringTool << endmsg; - return StatusCode::FAILURE; - } - - msg(MSG::INFO) << "Retrieved tool " << m_scoringTool << endmsg; - - sc = m_selectionTool.retrieve(); - if (sc.isFailure()) - { - msg(MSG::FATAL) << "Failed to retrieve tool " << m_selectionTool << endmsg; - return StatusCode::FAILURE; - } - - msg(MSG::INFO) << "Retrieved tool " << m_selectionTool << endmsg; - - - if(m_disableSorting) - msg(MSG::INFO) << "Internal sorting disabled, using external ordering!" << endmsg; - + ATH_CHECK( m_scoringTool.retrieve()); + ATH_CHECK(m_selectionTool.retrieve()); + if (m_disableSorting) ATH_MSG_INFO( "Internal sorting disabled, using external ordering!" ); return sc; } //================================================================================================== -StatusCode Trk::TrackSelectionProcessorTool::finalize() -{ - StatusCode sc = AlgTool::finalize(); return sc; +StatusCode +Trk::TrackSelectionProcessorTool::finalize(){ + StatusCode sc = AlgTool::finalize(); + return sc; } //================================================================================================== @@ -83,175 +58,140 @@ StatusCode Trk::TrackSelectionProcessorTool::finalize() /** Do actual processing of event. Takes a track container, and then returns the tracks which have been selected*/ -TrackCollection* Trk::TrackSelectionProcessorTool::process(const TrackCollection* tracksCol, - Trk::PRDtoTrackMap *prd_to_track_map) const -{ - +TrackCollection* +Trk::TrackSelectionProcessorTool::process(const TrackCollection* tracksCol, + Trk::PRDtoTrackMap *pPrdToTrackMap) const{ //TODO: make sure the ownership; delete origin tracks from map? std::vector<const Track*> tracks; tracks.reserve(tracksCol->size()); for(auto e: *tracksCol){ tracks.push_back(e); } - - using namespace std; - ATH_MSG_DEBUG ("Processing "<<tracks.size()<<" tracks"); - - std::unique_ptr<Trk::PRDtoTrackMap> prd_to_track_map_cleanup; - if (!prd_to_track_map) { - prd_to_track_map_cleanup = m_assoTool->createPRDtoTrackMap(); + std::unique_ptr<Trk::PRDtoTrackMap> tmpPrdToTrackMap; + if (!pPrdToTrackMap) { + tmpPrdToTrackMap = m_assoTool->createPRDtoTrackMap(); if (!m_assoMapName.key().empty()) { - SG::ReadHandle<Trk::PRDtoTrackMap> input_prd_map(m_assoMapName); - if (!input_prd_map.isValid()) { + SG::ReadHandle<Trk::PRDtoTrackMap> inputPrdMap(m_assoMapName); + if (!inputPrdMap.isValid()) { ATH_MSG_ERROR("Failed to retrieve prd to track map " << m_assoMapName.key() ); - } - else { - *prd_to_track_map_cleanup = *input_prd_map; + } else { + *tmpPrdToTrackMap = *inputPrdMap; } } - prd_to_track_map = prd_to_track_map_cleanup.get(); + pPrdToTrackMap = tmpPrdToTrackMap.get(); } - TrackScoreMap trackScoreTrackMap; //put tracks into maps etc - addNewTracks(trackScoreTrackMap,*prd_to_track_map, tracks); - + addNewTracks(trackScoreTrackMap,*pPrdToTrackMap, tracks); // going to do simple algorithm for now: // - take track with highest score // - remove shared hits from all other tracks // - take next highest scoring tracks, and repeat - - std::unique_ptr<TrackCollection> final_tracks(std::make_unique<TrackCollection>(SG::VIEW_ELEMENTS)); //TODO, old or new - solveTracks(trackScoreTrackMap, *prd_to_track_map, *final_tracks); - - if (msgLvl(MSG::DEBUG)) dumpTracks(*final_tracks); - - return final_tracks.release(); + std::unique_ptr<TrackCollection> result(std::make_unique<TrackCollection>(SG::VIEW_ELEMENTS)); //TODO, old or new + solveTracks(trackScoreTrackMap, *pPrdToTrackMap, *result); + if (msgLvl(MSG::DEBUG)) dumpTracks(*result); + return result.release(); } //================================================================================================== -void Trk::TrackSelectionProcessorTool::addNewTracks(TrackScoreMap &trackScoreTrackMap, - Trk::PRDtoTrackMap &prd_to_track_map, - const std::vector<const Track*> &tracks) const -{ - using namespace std; +void +Trk::TrackSelectionProcessorTool::addNewTracks(TrackScoreMap &trackScoreTrackMap, + Trk::PRDtoTrackMap &prdToTrackMap, + const std::vector<const Track*> &tracks) const{ ATH_MSG_DEBUG ("Number of tracks at Input: "<<tracks.size()); PrdSignatureSet prdSigSet; - TrackScore itrack=0; for (const Track*a_track : tracks ) { - if(m_disableSorting) { // add track to map using ordering provided by the collection - trackScoreTrackMap.insert( make_pair(itrack, TrackPtr(a_track)) ); + trackScoreTrackMap.insert( std::make_pair(itrack, TrackPtr(a_track)) ); itrack++; continue; } - bool reject = false; - // only fitted tracks get hole search, input is not fitted TrackScore score = m_scoringTool->score( *a_track, true ); // veto tracks with score 0 if (score==0) { ATH_MSG_DEBUG ("Track score is zero, reject it"); reject = true; - } else { - if (m_dropDouble) { - std::vector<const Trk::PrepRawData*> prds = m_assoTool->getPrdsOnTrack(prd_to_track_map, *a_track); - // unfortunately PrepRawDataSet is not a set ! - PrdSignature prdSig; - prdSig.insert( prds.begin(),prds.end() ); - // we try to insert it into the set, if we fail (pair.second), it then exits already - if ( !(prdSigSet.insert(prdSig)).second ) { - ATH_MSG_DEBUG ("Double track, reject it !"); - reject = true; - } else { - ATH_MSG_DEBUG ("Insert new track in PrdSignatureSet"); - } + const std::vector<const Trk::PrepRawData*> & prds = m_assoTool->getPrdsOnTrack(prdToTrackMap, *a_track); + // unfortunately PrepRawDataSet is not a set ! + PrdSignature prdSig; + prdSig.insert( prds.begin(),prds.end() ); + // we try to insert it into the set, if we fail (pair.second), it then exits already + if ( !(prdSigSet.insert(prdSig)).second ) { + ATH_MSG_DEBUG ("Double track, reject it !"); + reject = true; + } else { + ATH_MSG_DEBUG ("Insert new track in PrdSignatureSet"); + } } } - if (!reject) { // add track to map, map is sorted small to big ! set if fitted ATH_MSG_VERBOSE ("Track ("<< a_track <<") has score "<<score); - trackScoreTrackMap.insert( make_pair(-score, TrackPtr(a_track) ) ); - + trackScoreTrackMap.insert( std::make_pair(-score, TrackPtr(a_track) ) ); } } - ATH_MSG_DEBUG ("Number of tracks in map:"<<trackScoreTrackMap.size()); } -void Trk::TrackSelectionProcessorTool::solveTracks(TrackScoreMap &trackScoreTrackMap, - Trk::PRDtoTrackMap &prd_to_track_map, - TrackCollection &final_tracks) const -{ - using namespace std; - +void +Trk::TrackSelectionProcessorTool::solveTracks(TrackScoreMap &trackScoreTrackMap, + Trk::PRDtoTrackMap &prdToTrackMap, + TrackCollection &result) const{ ATH_MSG_VERBOSE ("Starting to solve tracks"); - // now loop as long as map is not empty while ( !trackScoreTrackMap.empty() ) { - TrackScoreMap::iterator itnext = trackScoreTrackMap.begin(); TrackPtr atrack( std::move(itnext->second) ); TrackScore ascore( itnext->first); trackScoreTrackMap.erase(itnext); - ATH_MSG_VERBOSE ("--- Trying next track "<<atrack.track()<<"\t with score "<<-ascore); std::unique_ptr<Trk::Track> cleanedTrack; - auto [cleanedTrack_tmp, keep_orig] = m_selectionTool->getCleanedOutTrack( atrack.track() , -(ascore), prd_to_track_map); + const auto &[cleanedTrack_tmp, keepOriginal] = m_selectionTool->getCleanedOutTrack( atrack.track() , -(ascore), prdToTrackMap); cleanedTrack.reset(cleanedTrack_tmp); - - if (keep_orig ){ + if (keepOriginal ){ // track can be kept as identical to the input track ATH_MSG_DEBUG ("Accepted track "<<atrack.track()<<"\t has score "<<-(ascore)); // add track to PRD_AssociationTool - StatusCode sc = m_assoTool->addPRDs(prd_to_track_map,*atrack); - if (sc.isFailure()) msg(MSG::ERROR) << "addPRDs() failed" << endmsg; + StatusCode sc = m_assoTool->addPRDs(prdToTrackMap,*atrack); + if (sc.isFailure()) ATH_MSG_ERROR( "addPRDs() failed" ); // add to output list - final_tracks.push_back( const_cast<Track*>(atrack.track()) ); - - }else if ( !cleanedTrack ) { + result.push_back( const_cast<Track*>(atrack.track()) ); + } else if ( !cleanedTrack ) { // track should be discarded ATH_MSG_DEBUG ("Track "<< atrack.track() << " doesn't meet the cuts of the AmbiTrack Selection tool"); - - } - else { - + } else { // delete cleaned track cleanedTrack.reset(); - // stripped down version cannot be handled discarding ATH_MSG_DEBUG("Selection tool returned a new track, cannot handle memory management of new track, deleting it. Check you configuration "); } // don't forget to drop track from map } - - ATH_MSG_DEBUG ("Finished, number of track on output: "<<final_tracks.size()); + ATH_MSG_DEBUG ("Finished, number of track on output: "<<result.size()); } //================================================================================================== -void Trk::TrackSelectionProcessorTool::dumpTracks( const TrackCollection& tracks ) const -{ - +void +Trk::TrackSelectionProcessorTool::dumpTracks( const TrackCollection& tracks ) const{ ATH_MSG_VERBOSE ("Dumping tracks in collection"); int num=0; TrackScore totalScore = 0; TrackCollection::const_iterator it = tracks.begin(); TrackCollection::const_iterator itEnd = tracks.end(); - for (; it != itEnd ; ++it) - { - // score track: - const TrackScore score = m_scoringTool->score( **it, true ); - ATH_MSG_VERBOSE (num++<<"\tTrack :"<<*it<<"\tScore: "<<score); - totalScore+=score; - } + for (; it != itEnd ; ++it){ + // score track: + const TrackScore score = m_scoringTool->score( **it, true ); + ATH_MSG_VERBOSE (num++<<"\tTrack :"<<*it<<"\tScore: "<<score); + totalScore+=score; + } ATH_MSG_DEBUG ("Total event score : "<<totalScore); } diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackSelectionProcessorTool.h b/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackSelectionProcessorTool.h index 1ff184ee494..229b3d322cd 100644 --- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackSelectionProcessorTool.h +++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/TrackSelectionProcessorTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TRACKSELECTIONPROCESSORTOOL_H @@ -23,7 +23,6 @@ #include <map> #include <set> #include <vector> -#include <functional> namespace Trk { @@ -51,22 +50,22 @@ namespace Trk { virtual StatusCode finalize () override; /**Returns a processed TrackCollection from the passed 'tracks' WITHOUT copying or refitting the input tracks. - The pointers of the tracks in the input collection are copied into the output collection which does NOT - own the pointers. Clients must ensure that the Input Collection is not deleted before the output collection - else all pointers in the output collection will be invalid! + The pointers of the tracks in the input collection are copied into the output collection which does NOT + own the pointers. Clients must ensure that the Input Collection is not deleted before the output collection + else all pointers in the output collection will be invalid! - @param tracks collection of tracks which will have ambiguities resolved. Will not be - modified. - @param prd_to_track_map on optional prd-to-track map being filled by the processor. + @param tracks collection of tracks which will have ambiguities resolved. Will not be + modified. + @param prdToTrackMap on optional prd-to-track map being filled by the processor. - @return new collections of tracks, with ambiguities resolved. - The returned track collection is a SG::VIEW_ELEMENTS container, meaning that it should NOT be written to disk. - Ownership of the collection is passed on (i.e. client handles deletion) + @return new collections of tracks, with ambiguities resolved. + The returned track collection is a SG::VIEW_ELEMENTS container, meaning that it should NOT be written to disk. + Ownership of the collection is passed on (i.e. client handles deletion) If no prd-to-track map is given the processor might create one internally (for internal use only, or exported to storegate). */ - virtual TrackCollection* process(const TrackCollection* tracksCol,Trk::PRDtoTrackMap *prd_to_track_map) const override; + virtual TrackCollection* process(const TrackCollection* tracksCol,Trk::PRDtoTrackMap *prdToTrackMap) const override; virtual TrackCollection* process(const TracksScores* /*trackScoreTrackMap*/) const override { return nullptr; } @@ -75,29 +74,29 @@ namespace Trk { private: /**Add passed TrackCollection, and Trk::PrepRawData from tracks to caches - @param tracks the TrackCollection is looped over, - and each Trk::Track is added to the various caches. - The Trk::PrepRawData from each Trk::Track are added to the IPRD_AssociationTool*/ - void addNewTracks(TrackScoreMap &trackScoreTrackMap, Trk::PRDtoTrackMap &prd_to_track_map, const std::vector<const Track*> &tracks ) const; + @param tracks the TrackCollection is looped over, + and each Trk::Track is added to the various caches. + The Trk::PrepRawData from each Trk::Track are added to the IPRD_AssociationTool*/ + void addNewTracks(TrackScoreMap &trackScoreTrackMap, Trk::PRDtoTrackMap &prdToTrackMap, const std::vector<const Track*> &tracks ) const; - void solveTracks(TrackScoreMap &trackScoreTrackMap, Trk::PRDtoTrackMap &prd_to_track_map, TrackCollection &final_tracks) const; + void solveTracks(TrackScoreMap &trackScoreTrackMap, Trk::PRDtoTrackMap &prdToTrackMap, TrackCollection &final_tracks) const; /** print out tracks and their scores for debugging*/ void dumpTracks(const TrackCollection& tracks) const; - + // private data members /** by default drop double tracks before refit*/ bool m_dropDouble; /**Scoring tool - This tool is used to 'score' the tracks, i.e. to quantify what a good track is. - @todo The actual tool that is used should be configured through job options*/ + This tool is used to 'score' the tracks, i.e. to quantify what a good track is. + @todo The actual tool that is used should be configured through job options*/ ToolHandle<ITrackScoringTool> m_scoringTool; /** selection tool - here the decision which hits remain on a track and - which are removed are made + which are removed are made */ ToolHandle<IAmbiTrackSelectionTool> m_selectionTool; @@ -109,7 +108,7 @@ namespace Trk { {this,"AssociationMapName",""}; ///< the key given to the newly created association map /** option to disable sorting based on track score and - use the ordering provided externally*/ + use the ordering provided externally*/ bool m_disableSorting; }; -- GitLab From f65b0be3836ac33090acf03ee33b119011e504f9 Mon Sep 17 00:00:00 2001 From: Christopher Don Milke <cmilke@smu.edu> Date: Wed, 29 Jul 2020 16:00:36 +0000 Subject: [PATCH 376/459] Adding Online Flavour Tagging Monitored Variables (ATR-20301) --- .../TrigBjetOnlineMonitoringMTConfig.py | 21 +++++ .../src/TrigBjetBtagHypoAlgMT.cxx | 77 +++++++++++++++++++ .../TrigBjetHypo/src/TrigBjetBtagHypoAlgMT.h | 2 + 3 files changed, 100 insertions(+) diff --git a/Trigger/TrigHypothesis/TrigBjetHypo/python/TrigBjetOnlineMonitoringMTConfig.py b/Trigger/TrigHypothesis/TrigBjetHypo/python/TrigBjetOnlineMonitoringMTConfig.py index e2a2b792ecc..82042b783b8 100755 --- a/Trigger/TrigHypothesis/TrigBjetHypo/python/TrigBjetOnlineMonitoringMTConfig.py +++ b/Trigger/TrigHypothesis/TrigBjetHypo/python/TrigBjetOnlineMonitoringMTConfig.py @@ -2,6 +2,11 @@ from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool class TrigBjetOnlineMonitoring(GenericMonitoringTool): + def make_btag_hists(self, btag_name, btag_opts): + self.defineHistogram('btag_'+btag_name+'_pb', title=btag_name+" PB", **btag_opts) + self.defineHistogram('btag_'+btag_name+'_pc', title=btag_name+" PC", **btag_opts) + self.defineHistogram('btag_'+btag_name+'_pu', title=btag_name+" PU", **btag_opts) + def __init__ (self, name="TrigBjetOnlineMonitoring"): super(TrigBjetOnlineMonitoring, self).__init__(name) self.name = "TrigBjetOnlineMonitoring" @@ -33,3 +38,19 @@ class TrigBjetOnlineMonitoring(GenericMonitoringTool): self.defineHistogram('jet_phi', title="Jet #phi;#phi", xbins = default_bin_count, xmin=-3.5, xmax=3.5, **TH1F_opts) self.defineHistogram('jet_eta,jet_phi', path='EXPERT', type='TH2F', title="Jet #eta vs #phi;#eta;#phi", xbins = default_bin_count, xmin=-5, xmax=5, ybins = default_bin_count, ymin=-4, ymax=4) + + + # B-Tagging Histograms + btag_options=TH1F_opts.copy() + btag_options.update({'xbins':default_bin_count, 'xmin':0, 'xmax':1}) + self.make_btag_hists('IP2D', btag_options) + self.make_btag_hists('IP3D', btag_options) + self.make_btag_hists('SV1', btag_options) + self.make_btag_hists('DL1r', btag_options) + self.make_btag_hists('RNNIP', btag_options) + self.defineHistogram('btag_MV2c10', title="MV2c10", xbins = default_bin_count, xmin=-1, xmax=1, **TH1F_opts) + + self.defineHistogram('btag_valD0wrtPVofTracks', title="Track d_{0} w/ Respect to PV of Tracks;d_{0} (mm)", xbins = default_bin_count, xmin=-2, xmax=2, **TH1F_opts) + self.defineHistogram('btag_sigD0wrtPVofTracks', title="Track d_{0} Significance w/ Respect to PV of Tracks;d_{0} #sigma", xbins = default_bin_count, xmin=-100, xmax=100, **TH1F_opts) + self.defineHistogram('btag_valZ0wrtPVofTracks', title="Track z_{0} w/ Respect to PV of Tracks;z_{0} (mm)", xbins = default_bin_count, xmin=-2, xmax=2, **TH1F_opts) + self.defineHistogram('btag_sigZ0wrtPVofTracks', title="Track z_{0} Significance w/ Respect to PV of Tracks;z_{0} #sigma", xbins = default_bin_count, xmin=-100, xmax=100, **TH1F_opts) diff --git a/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBjetBtagHypoAlgMT.cxx b/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBjetBtagHypoAlgMT.cxx index f0448c9b412..0292bb962e2 100644 --- a/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBjetBtagHypoAlgMT.cxx +++ b/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBjetBtagHypoAlgMT.cxx @@ -132,6 +132,15 @@ StatusCode TrigBjetBtagHypoAlgMT::execute( const EventContext& context ) const { toAdd->setObjectLink< xAOD::BTaggingContainer >( m_bTaggingLink.value(),bTaggingEL.front() ); + // online monitoring for btagging, with a check to ensure the PV is marked + ElementLink< xAOD::VertexContainer > vertexEL; + CHECK( retrieveObjectFromNavigation( m_prmVtxLink.value(), vertexEL, prevDecisionContainer->at(index) ) ); + + if ( (*vertexEL)->vertexType() == xAOD::VxType::VertexType::PriVtx ) { + CHECK( monitor_btagging( bTaggingEL ) ); + } + + // Add to Decision collection @@ -255,3 +264,71 @@ StatusCode TrigBjetBtagHypoAlgMT::monitor_tracks( const ElementLinkVector< xAOD: } +StatusCode TrigBjetBtagHypoAlgMT::monitor_flavor_tag_variable( const ElementLinkVector< xAOD::BTaggingContainer >& bTaggingEL, const std::string& var_name ) const { + auto monitor_pu = Monitored::Collection( "btag_"+var_name+"_pu", bTaggingEL, + [var_name](const ElementLink< xAOD::BTaggingContainer >& bTagLink) { + double pu = -1; + (*bTagLink)->pu( var_name, pu ); + return pu; + } ); + + auto monitor_pb = Monitored::Collection( "btag_"+var_name+"_pb", bTaggingEL, + [var_name](const ElementLink< xAOD::BTaggingContainer >& bTagLink) { + double pb = -1; + (*bTagLink)->pb( var_name, pb ); + return pb; + } ); + + auto monitor_pc = Monitored::Collection( "btag_"+var_name+"_pc", bTaggingEL, + [var_name](const ElementLink< xAOD::BTaggingContainer >& bTagLink) { + double pc = -1; + (*bTagLink)->pc( var_name, pc ); + return pc; + } ); + + auto monitor_group_for_flavor_tag_var = Monitored::Group( m_monTool, monitor_pu, monitor_pb, monitor_pc ); + + return StatusCode::SUCCESS; +} + + +StatusCode TrigBjetBtagHypoAlgMT::monitor_btagging( const ElementLinkVector< xAOD::BTaggingContainer >& bTaggingEL ) const { + // Monitor IP2D, IP3D, SV1, DL1r, RNNIP + CHECK( monitor_flavor_tag_variable(bTaggingEL, "IP2D") ); + CHECK( monitor_flavor_tag_variable(bTaggingEL, "IP3D") ); + CHECK( monitor_flavor_tag_variable(bTaggingEL, "SV1") ); + CHECK( monitor_flavor_tag_variable(bTaggingEL, "DL1r") ); + CHECK( monitor_flavor_tag_variable(bTaggingEL, "RNNIP") ); + + // Monitor MV2c10 + auto monitor_for_MV2c10 = Monitored::Collection( "btag_MV2c10", bTaggingEL, + [](const ElementLink< xAOD::BTaggingContainer >& bTagLink) { + double mv2c10_discriminant = -2; + (*bTagLink)->MVx_discriminant( "MV2c10", mv2c10_discriminant ); + return mv2c10_discriminant; + } ); + auto monitor_group_for_btagging = Monitored::Group( m_monTool, monitor_for_MV2c10); + + + // Monitor tracks used in calculating btagging quantities + for ( const ElementLink< xAOD::BTaggingContainer >& bTagLink : bTaggingEL ) { + auto monitor_for_btag_valD0wrtPVofTracks = Monitored::Collection( "btag_valD0wrtPVofTracks", + (*bTagLink)->auxdata< std::vector<float> >("IP3D_valD0wrtPVofTracks")); + auto monitor_for_btag_sigD0wrtPVofTracks = Monitored::Collection( "btag_sigD0wrtPVofTracks", + (*bTagLink)->auxdata< std::vector<float> >("IP3D_sigD0wrtPVofTracks")); + auto monitor_for_btag_valZ0wrtPVofTracks = Monitored::Collection( "btag_valZ0wrtPVofTracks", + (*bTagLink)->auxdata< std::vector<float> >("IP3D_valZ0wrtPVofTracks")); + auto monitor_for_btag_sigZ0wrtPVofTracks = Monitored::Collection( "btag_sigZ0wrtPVofTracks", + (*bTagLink)->auxdata< std::vector<float> >("IP3D_sigZ0wrtPVofTracks")); + + auto monitor_group_for_btag_track_vars = Monitored::Group( m_monTool, + monitor_for_btag_valD0wrtPVofTracks, monitor_for_btag_sigD0wrtPVofTracks, + monitor_for_btag_valZ0wrtPVofTracks, monitor_for_btag_sigZ0wrtPVofTracks + ); + } + + + + return StatusCode::SUCCESS; +} + diff --git a/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBjetBtagHypoAlgMT.h b/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBjetBtagHypoAlgMT.h index 60ae9a91fb2..8a064606bfc 100644 --- a/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBjetBtagHypoAlgMT.h +++ b/Trigger/TrigHypothesis/TrigBjetHypo/src/TrigBjetBtagHypoAlgMT.h @@ -37,6 +37,8 @@ class TrigBjetBtagHypoAlgMT : public TrigBjetHypoAlgBaseMT { // online monitoring virtual StatusCode monitor_jets( const ElementLinkVector<xAOD::JetContainer >& jetELs ) const ; virtual StatusCode monitor_tracks( const ElementLinkVector< xAOD::TrackParticleContainer >& trackELs ) const; + virtual StatusCode monitor_flavor_tag_variable( const ElementLinkVector< xAOD::BTaggingContainer >& bTaggingEL, const std::string& var_name) const; + virtual StatusCode monitor_btagging( const ElementLinkVector< xAOD::BTaggingContainer >& bTaggingEL ) const; private: ToolHandleArray< TrigBjetBtagHypoTool > m_hypoTools {this,"HypoTools",{},"Hypo Tools"}; -- GitLab From d09c46a4e37b39ec9e5b5a7f4dd2b53cc9be559e Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 18:01:24 +0200 Subject: [PATCH 377/459] IRegionSelector: Delete LUTCondData classes Delete the unused RegSel*LUTCondData classes (ATR-21807) to avoid a cyclic dependency on the RegionSelector library/package. Also cleanup the cmake configuration. --- .../IRegionSelector/CMakeLists.txt | 13 +-------- .../IRegionSelector/RegSelCaloLUTCondData.h | 29 ------------------- .../IRegionSelector/RegSelLUTCondData.h | 27 ----------------- 3 files changed, 1 insertion(+), 68 deletions(-) delete mode 100644 DetectorDescription/IRegionSelector/IRegionSelector/RegSelCaloLUTCondData.h delete mode 100644 DetectorDescription/IRegionSelector/IRegionSelector/RegSelLUTCondData.h diff --git a/DetectorDescription/IRegionSelector/CMakeLists.txt b/DetectorDescription/IRegionSelector/CMakeLists.txt index 8ab50c51f64..7be03db626a 100644 --- a/DetectorDescription/IRegionSelector/CMakeLists.txt +++ b/DetectorDescription/IRegionSelector/CMakeLists.txt @@ -1,19 +1,8 @@ -# $Id: CMakeLists.txt 749910 2016-05-26 15:00:09Z krasznaa $ -################################################################################ -# Package: IRegionSelector -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( IRegionSelector ) -# Declare the package's dependencies. But only for an Athena build: -if( NOT XAOD_STANDALONE ) - atlas_depends_on_subdirs( PUBLIC - Control/AthenaKernel - DetectorDescription/Identifier - GaudiKernel ) -endif() - # Component(s) in the package: if( XAOD_STANDALONE ) atlas_add_library( IRegionSelector diff --git a/DetectorDescription/IRegionSelector/IRegionSelector/RegSelCaloLUTCondData.h b/DetectorDescription/IRegionSelector/IRegionSelector/RegSelCaloLUTCondData.h deleted file mode 100644 index 345efdff5d8..00000000000 --- a/DetectorDescription/IRegionSelector/IRegionSelector/RegSelCaloLUTCondData.h +++ /dev/null @@ -1,29 +0,0 @@ -/* emacs: this is -*- c++ -*- */ -/** - ** @file RegSelCaloLUTCondData.h - ** - ** @author sutt - ** @date Tue 4 Feb 2020 15:25:00 CET - ** - ** $Id: RegSelCaloLUTCondData.h, v0.0 Sat 21 March 2020 15:25:00 CET sutt $ - ** - ** Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - **/ - -#ifndef REGSELCALOLUTCONDDATA_H -#define REGSELCALOLUTCONDDATA_H - -#include "AthenaKernel/CondCont.h" -#include "AthenaKernel/CLASS_DEF.h" - -#include "IRegionSelector/RegSelCondData.h" -#include "RegionSelector/RegSelectorHashMap.h" - -typedef RegSelCondData<RegSelectorHashMap> RegSelCaloLUTCondData; - -CLASS_DEF ( RegSelCaloLUTCondData, 232357481, 0 ) -CONDCONT_DEF ( RegSelCaloLUTCondData, 198043569 ); - - - -#endif // REGSELCALOLUTCONDDATA_H diff --git a/DetectorDescription/IRegionSelector/IRegionSelector/RegSelLUTCondData.h b/DetectorDescription/IRegionSelector/IRegionSelector/RegSelLUTCondData.h deleted file mode 100644 index 01341212f7a..00000000000 --- a/DetectorDescription/IRegionSelector/IRegionSelector/RegSelLUTCondData.h +++ /dev/null @@ -1,27 +0,0 @@ -/* emacs: this is -*- c++ -*- */ -/** - ** @file RegSelLUTCondData.h - ** - ** @author sutt - ** @date Tue 4 Feb 2020 15:25:00 CET - ** - ** $Id: RegSelLUTCondData.h, v0.0 Tue 4 Feb 2020 15:25:00 CET sutt $ - ** - ** Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - **/ - -#ifndef REGSELLUTCONDDATA_H -#define REGSELLUTCONDDATA_H - -#include "AthenaKernel/CondCont.h" -#include "AthenaKernel/CLASS_DEF.h" - -#include "RegSelLUT/RegSelSiLUT.h" -#include "IRegionSelector/RegSelCondData.h" - -typedef RegSelCondData<RegSelSiLUT> RegSelLUTCondData; - -CLASS_DEF ( RegSelLUTCondData, 244180796, 0 ) -CONDCONT_DEF ( RegSelLUTCondData, 30547718 ); - -#endif // REGSELLUTCONDDATA_H -- GitLab From 6fcda6215a51e3affca1c822c30d6ae6d4987b09 Mon Sep 17 00:00:00 2001 From: Andrii Verbytskyi <andrii.verbytskyi@cern.ch> Date: Wed, 29 Jul 2020 16:07:44 +0000 Subject: [PATCH 378/459] Use more std in generators --- .../src/BeamHaloGeneratorAlg.cxx | 4 +- .../CosmicGenerator/src/CosmicGenerator.cxx | 42 +++++++-------- Generators/CosmicGenerator/src/CosmicGun.cxx | 14 ++--- .../GeneratorFilters/src/AsymJetFilter.cxx | 2 +- .../GeneratorFilters/src/JetForwardFilter.cxx | 4 +- Generators/Hydjet_i/src/Hydjet_i.cxx | 2 +- .../ParticleDecayer/src/ParticleDecayer.cxx | 14 ++--- .../Pythia8B_i/Pythia8B_i/BsJpsiPhiAngles.h | 2 - .../Pythia8B_i/Pythia8B_i/UserSelections.h | 54 +++++++++---------- .../Pythia8_i/src/UserHooks/PowhegBB4L.cxx | 4 +- .../Pythia8_i/src/UserHooks/WprimeWZFlat.cxx | 4 +- 11 files changed, 72 insertions(+), 74 deletions(-) diff --git a/Generators/BeamHaloGenerator/src/BeamHaloGeneratorAlg.cxx b/Generators/BeamHaloGenerator/src/BeamHaloGeneratorAlg.cxx index 33d3db71016..2fd85be5659 100644 --- a/Generators/BeamHaloGenerator/src/BeamHaloGeneratorAlg.cxx +++ b/Generators/BeamHaloGenerator/src/BeamHaloGeneratorAlg.cxx @@ -97,8 +97,8 @@ StatusCode BeamHaloGeneratorAlg::genInitialize() { const Int_t nbins_E = 60; double xmin = 1e-2; double xmax = 3.5e3; - double logxmin = log10(xmin); - double logxmax = log10(xmax); + double logxmin = std::log10(xmin); + double logxmax = std::log10(xmax); double binwidth = (logxmax-logxmin)/nbins_E; Double_t xbins[nbins_E+1]; xbins[0] = xmin; diff --git a/Generators/CosmicGenerator/src/CosmicGenerator.cxx b/Generators/CosmicGenerator/src/CosmicGenerator.cxx index b4ba40d2303..11a0c08867e 100644 --- a/Generators/CosmicGenerator/src/CosmicGenerator.cxx +++ b/Generators/CosmicGenerator/src/CosmicGenerator.cxx @@ -351,11 +351,11 @@ StatusCode CosmicGenerator::callGenerator() { if (vert_radius>m_radius) { phi1=atan2(vert.z(),vert.x())+M_PI; - float delta_phi=asin(m_radius/vert_radius); + float delta_phi=std::asin(m_radius/vert_radius); phi1=phi1+CLHEP::RandFlat::shoot(engine, -delta_phi, delta_phi); } - pp.setX(mag1*sin(theta1)*cos(phi1)); - pp.setY(mag1*sin(theta1)*sin(phi1)); + pp.setX(mag1*sin(theta1)*std::cos(phi1)); + pp.setY(mag1*sin(theta1)*std::sin(phi1)); } else { vert = generateVertex(); @@ -368,9 +368,9 @@ StatusCode CosmicGenerator::callGenerator() { mag1=pp.rho(); } - CLHEP::Hep3Vector pp_corr(mag1*sin(theta1)*cos(phi1), - -mag1*cos(theta1), - mag1*sin(theta1)*sin(phi1)); + CLHEP::Hep3Vector pp_corr(mag1*sin(theta1)*std::cos(phi1), + -mag1*std::cos(theta1), + mag1*std::sin(theta1)*std::sin(phi1)); CLHEP::Hep3Vector direction(pp_corr.x(),pp_corr.y(), pp_corr.z()); // if optimization activated, check for the direction of the generated muon @@ -378,7 +378,7 @@ StatusCode CosmicGenerator::callGenerator() { CLHEP::Hep3Vector center_dir=m_center-vert3; double beta=direction.angle(center_dir); - double alpha=asin(m_radius/center_dir.r()); + double alpha=std::asin(m_radius/center_dir.r()); if(std::abs(beta)<alpha) { @@ -728,13 +728,13 @@ bool CosmicGenerator::exzCut(const CLHEP::Hep3Vector& pos,const CLHEP::HepLorent double r =0; bool cut = false; if(pos.z()<0){ - r = sqrt((pow(pos.x(),2)+pow(pos.z()+28000,2))) ; //FIXME Hardcoded values! + r = std::sqrt((std::pow(pos.x(),2)+std::pow(pos.z()+28000,2))) ; //FIXME Hardcoded values! double e = 0.45238*r+5000 ; //FIXME Hardcoded values! cut = p.e()*m_GeV>e; } else { - r = sqrt((pow(pos.x(),2)+pow(pos.z()-20000,2))) ; //FIXME Hardcoded values! + r = std::sqrt((std::pow(pos.x(),2)+std::pow(pos.z()-20000,2))) ; //FIXME Hardcoded values! if(r<15000) { //FIXME Hardcoded values! cut = true; } else @@ -767,10 +767,10 @@ double CosmicGenerator::pathLengthInRock(double xgen, double ygen, double zgen, // direction of trajectory // x=x0 - t sinth cosphi; y=y0 + t costh; z=z0 - t sinth sinphi - double cosphi = cos(phi); - double sinphi = sin(phi); - double costh = cos(theta); - double sinth = sin(theta); + double cosphi = std::cos(phi); + double sinphi = std::sin(phi); + double costh = std::cos(theta); + double sinth = std::sin(theta); double y0 = m_ysurface; double t = (ygen-y0)/costh; @@ -787,8 +787,8 @@ double CosmicGenerator::pathLengthInRock(double xgen, double ygen, double zgen, if (min_dist14<p14_radius) { // z values at intersections - double z_plus14 = -cosphi*z_mid14+sinphi*sqrt(pow(p14_radius,2.)-pow(z_mid14,2.)) + p14_z; - double z_minus14 = -cosphi*z_mid14-sinphi*sqrt(pow(p14_radius,2.)-pow(z_mid14,2.)) + p14_z; + double z_plus14 = -cosphi*z_mid14+sinphi*std::sqrt(std::pow(p14_radius,2.)-std::pow(z_mid14,2.)) + p14_z; + double z_minus14 = -cosphi*z_mid14-sinphi*std::sqrt(std::pow(p14_radius,2.)-std::pow(z_mid14,2.)) + p14_z; // y values at intersections double y_plus14 = y0-costh*(z_plus14-z0)/sinth/sinphi; @@ -811,8 +811,8 @@ double CosmicGenerator::pathLengthInRock(double xgen, double ygen, double zgen, if (min_dist16<p16_radius) { // z values at intersections - double z_plus16 = -cosphi*z_mid16+sinphi*sqrt(pow(p16_radius,2.)-pow(z_mid16,2.)) + p16_z; - double z_minus16 = -cosphi*z_mid16-sinphi*sqrt(pow(p16_radius,2.)-pow(z_mid16,2.)) + p16_z; + double z_plus16 = -cosphi*z_mid16+sinphi*std::sqrt(std::pow(p16_radius,2.)-std::pow(z_mid16,2.)) + p16_z; + double z_minus16 = -cosphi*z_mid16-sinphi*std::sqrt(std::pow(p16_radius,2.)-std::pow(z_mid16,2.)) + p16_z; // determine y values at intersections double y_plus16 = y0-costh*(z_plus16-z0)/sinth/sinphi; @@ -840,10 +840,10 @@ bool CosmicGenerator::pointsAtPixels(double xgen, double ygen, double zgen, doub // direction of trajectory // x=xgen+ t sinth cosphi; y=ygen+t costh; z=zgen+t sinth sinphi - double cosphi = cos(phi); - double sinphi = sin(phi); - double costh = cos(theta); - double sinth = sin(theta); + double cosphi = std::cos(phi); + double sinphi = std::sin(phi); + double costh = std::cos(theta); + double sinth = std::sin(theta); double t = ygen/costh; //for parameterized trajectory double x_pos = xgen + t*sinth*cosphi; //x position at y=0 double z_pos = zgen + t*sinth*sinphi; //z position at y=0 diff --git a/Generators/CosmicGenerator/src/CosmicGun.cxx b/Generators/CosmicGenerator/src/CosmicGun.cxx index 4af7a5dd349..31b0981999b 100644 --- a/Generators/CosmicGenerator/src/CosmicGun.cxx +++ b/Generators/CosmicGenerator/src/CosmicGun.cxx @@ -70,8 +70,8 @@ CosmicGun::CosmicGun(void){ m_printmod = 50; coscut_.ctcut = m_coscut; - genpar_.LEMIN = log10(m_emin); - genpar_.LEMAX = log10(m_emax); + genpar_.LEMIN = std::log10(m_emin); + genpar_.LEMAX = std::log10(m_emax); genpar_.NBIN = 100; genpar_.LBINWID = (genpar_.LEMAX-genpar_.LEMIN)/genpar_.NBIN; @@ -118,10 +118,10 @@ CLHEP::HepLorentzVector CosmicGun::GenerateEvent(void){ } m_event++; - float sinth = sqrt( 1-pow(cosevt_.COSTH,2) ); + float sinth = std::sqrt( 1-std::pow(cosevt_.COSTH,2) ); float e = cosevt_.ENER; - float px = cosevt_.ENER * sinth * sin( cosevt_.PHI); - float py = cosevt_.ENER * sinth * cos( cosevt_.PHI); + float px = cosevt_.ENER * sinth * std::sin( cosevt_.PHI); + float py = cosevt_.ENER * sinth * std::cos( cosevt_.PHI); float pz = cosevt_.ENER * cosevt_.COSTH; CLHEP::HepLorentzVector p(px,py,pz,e); @@ -147,8 +147,8 @@ void CosmicGun::SetEnergyRange(float emin, float emax){ m_emin = emin; m_emax = emax; - genpar_.LEMIN = log10(m_emin); - genpar_.LEMAX = log10(m_emax); + genpar_.LEMIN = std::log10(m_emin); + genpar_.LEMAX = std::log10(m_emax); genpar_.NBIN = 100; genpar_.LBINWID = (genpar_.LEMAX-genpar_.LEMIN)/genpar_.NBIN; diff --git a/Generators/GeneratorFilters/src/AsymJetFilter.cxx b/Generators/GeneratorFilters/src/AsymJetFilter.cxx index c1558ab2a4e..47e3078eb90 100644 --- a/Generators/GeneratorFilters/src/AsymJetFilter.cxx +++ b/Generators/GeneratorFilters/src/AsymJetFilter.cxx @@ -100,7 +100,7 @@ StatusCode AsymJetFilter::filterEvent() { &&(part->pdg_id() != 12 ) && (part->pdg_id() != -12 ) &&(part->pdg_id() != 14 ) && (part->pdg_id() != -14 ) &&(part->pdg_id() != 16 ) && (part->pdg_id() != -16 ) - && (fabs(part->momentum().pseudoRapidity()) <= m_emaxeta) + && (std::abs(part->momentum().pseudoRapidity()) <= m_emaxeta) ){ // no neutrinos or muons and particles must be in active range int ip,ie; // std::cout << part->momentum().phi() << "eta" << part->momentum().pseudoRapidity() << std::endl; diff --git a/Generators/GeneratorFilters/src/JetForwardFilter.cxx b/Generators/GeneratorFilters/src/JetForwardFilter.cxx index 79021bb498a..e140f452d94 100644 --- a/Generators/GeneratorFilters/src/JetForwardFilter.cxx +++ b/Generators/GeneratorFilters/src/JetForwardFilter.cxx @@ -176,8 +176,8 @@ double JetForwardFilter::evaluatePDF(double x, double y, int gausIndex) { // Split up bits of the exponential exp((-1/valA)*(valB+valC-valD)) double valA = 2.0*(1-rho*rho); - double valB = pow(x-muX, 2)/pow(sigmaX, 2); - double valC = pow(y-muY, 2)/pow(sigmaY, 2); + double valB = std::pow(x-muX, 2)/std::pow(sigmaX, 2); + double valC = std::pow(y-muY, 2)/std::pow(sigmaY, 2); double valD = 2.0*rho*(x-muX)*(y-muY)/(sigmaX*sigmaY); double pdf = normFactor*exp( (-1.0/valA)*(valB+valC-valD) ); diff --git a/Generators/Hydjet_i/src/Hydjet_i.cxx b/Generators/Hydjet_i/src/Hydjet_i.cxx index 7ed5ccca799..e58bf0fdd88 100644 --- a/Generators/Hydjet_i/src/Hydjet_i.cxx +++ b/Generators/Hydjet_i/src/Hydjet_i.cxx @@ -286,7 +286,7 @@ Hydjet::set_user_params (void) // copy of HYDJET calculations m_hyipar.AW() = m_a; - m_hyipar.RA() = 1.15 * pow(m_a,0.333333); + m_hyipar.RA() = 1.15 * std::pow(m_a,0.333333); m_ifb = 1; m_bmin = 0; diff --git a/Generators/ParticleDecayer/src/ParticleDecayer.cxx b/Generators/ParticleDecayer/src/ParticleDecayer.cxx index cc1eab0707e..184c12dee9e 100644 --- a/Generators/ParticleDecayer/src/ParticleDecayer.cxx +++ b/Generators/ParticleDecayer/src/ParticleDecayer.cxx @@ -107,10 +107,10 @@ StatusCode ParticleDecayer::changeMass( HepMC::GenParticlePtr genpart, double ne return StatusCode::FAILURE; } //At this point, we have e, theta, and phi. Put them together to get the four-momentum. - double p = sqrt(p2); - double px = p*sin(theta)*cos(phi); - double py = p*sin(theta)*sin(phi); - double pz = p*cos(theta); + double p = std::sqrt(p2); + double px = p*std::sin(theta)*std::cos(phi); + double py = p*std::sin(theta)*std::sin(phi); + double pz = p*std::cos(theta); //Fill the four-momentum const CLHEP::HepLorentzVector updatedLV(px,py,pz,e); genpart->set_momentum(HepMC::FourVector(updatedLV.x(),updatedLV.y(),updatedLV.z(),updatedLV.e())); @@ -546,12 +546,12 @@ StatusCode ParticleDecayer::getDecayProducts( CLHEP::HepLorentzVector parentLV, //Get the angles in the rest frame double phi_rf = rnd_DoubleRange(-CLHEP::pi, CLHEP::pi); double ct_rf = cosgen(decayType); - double theta_rf = acos(ct_rf); + double theta_rf = std::acos(ct_rf); //construct p1 particle momentum in rest-frame (_rf) double p1_rf = sqrt(parentMass*parentMass/4. - decayPartMass*decayPartMass); - double px_rf = p1_rf*cos(phi_rf)*sin(theta_rf); - double py_rf = p1_rf*sin(phi_rf)*sin(theta_rf); + double px_rf = p1_rf*std::cos(phi_rf)*std::sin(theta_rf); + double py_rf = p1_rf*std::sin(phi_rf)*std::sin(theta_rf); double pz_rf = p1_rf*ct_rf; CLHEP::HepLorentzVector hlv1( px_rf, py_rf, pz_rf, parentMass/2.); CLHEP::HepLorentzVector hlv2( -px_rf, -py_rf, -pz_rf, parentMass/2.); diff --git a/Generators/Pythia8B_i/Pythia8B_i/BsJpsiPhiAngles.h b/Generators/Pythia8B_i/Pythia8B_i/BsJpsiPhiAngles.h index 61004ced041..302a6759d99 100644 --- a/Generators/Pythia8B_i/Pythia8B_i/BsJpsiPhiAngles.h +++ b/Generators/Pythia8B_i/Pythia8B_i/BsJpsiPhiAngles.h @@ -6,8 +6,6 @@ #define BsJpsiPhiAngles_H #include "CLHEP/Vector/LorentzVector.h" -//using namespace CLHEP; -//double thispi = 3.14159265358979312e+00; class BsJpsiPhiAngles{ diff --git a/Generators/Pythia8B_i/Pythia8B_i/UserSelections.h b/Generators/Pythia8B_i/Pythia8B_i/UserSelections.h index 7bc39f5ed69..248d7b19379 100644 --- a/Generators/Pythia8B_i/Pythia8B_i/UserSelections.h +++ b/Generators/Pythia8B_i/Pythia8B_i/UserSelections.h @@ -65,18 +65,18 @@ double BsJpsiPhi_PDF(double *params, double *x, bool useHelicity) { double A[10], B1[10], B2[10], C[10]; // Define A cells - double sinphiS = sin(phiS); - double cosphiS = cos(phiS); + double sinphiS = std::sin(phiS); + double cosphiS = std::cos(phiS); A[0] = 0.5 * A0*A0; A[1] = 0.5 * Al*Al; A[2] = 0.5 * Ap*Ap; - A[3] = 0.5 * A0*Al * cos(delta_l); + A[3] = 0.5 * A0*Al * std::cos(delta_l); A[4] = Al*Ap; A[5] = A0*Ap; A[6] = 0.5 * As*As; A[7] = As*Al; - A[8] = 0.5 * As*Ap * sin(delta_p - delta_s); + A[8] = 0.5 * As*Ap * std::sin(delta_p - delta_s); A[9] = As*A0; @@ -96,21 +96,21 @@ double BsJpsiPhi_PDF(double *params, double *x, bool useHelicity) { // Calculate convolution of exp(-gammaL * time) with a gaussian. Not convoluted if sigma == 0. - double ExpGL = exp(-time * gammaL); + double ExpGL = std::exp(-time * gammaL); // Calculate convolution of exp(-gammaH * time) with a gaussian. Not convoluted if sigma == 0. - double ExpGH = exp(-time * gammaH); + double ExpGH = std::exp(-time * gammaH); B1[0] = ( (1. + cosphiS) * ExpGL + (1. - cosphiS) * ExpGH ) * norm1; B1[1] = B1[0]; B1[2] = ( (1. - cosphiS) * ExpGL + (1. + cosphiS) * ExpGH ) * norm2; B1[3] = B1[0]; - B1[4] = 0.5 * cos(delta_p - delta_l) * sinphiS * (ExpGL - ExpGH) * norm3; - B1[5] = 0.5 * cos(delta_p) * sinphiS * (ExpGL - ExpGH) * norm3; + B1[4] = 0.5 * std::cos(delta_p - delta_l) * sinphiS * (ExpGL - ExpGH) * norm3; + B1[5] = 0.5 * std::cos(delta_p) * sinphiS * (ExpGL - ExpGH) * norm3; B1[6] = B1[2]; - B1[7] = 0.5 * sinphiS * sin(delta_l - delta_s) * (ExpGL - ExpGH) * norm3; + B1[7] = 0.5 * sinphiS * std::sin(delta_l - delta_s) * (ExpGL - ExpGH) * norm3; B1[8] = B1[2]; - B1[9] = 0.5 * sinphiS * sin(delta_s) * (ExpGH - ExpGL) * norm3; + B1[9] = 0.5 * sinphiS * std::sin(delta_s) * (ExpGH - ExpGL) * norm3; @@ -120,20 +120,20 @@ double BsJpsiPhi_PDF(double *params, double *x, bool useHelicity) { if( std::abs(tagprob - 0.5) > 1e-6 ){ - ExpGSSinMT = exp(-time * GammaS) * sin(DeltaM * time); - ExpGSCosMT = exp(-time * GammaS) * cos(DeltaM * time); + ExpGSSinMT = std::exp(-time * GammaS) * sin(DeltaM * time); + ExpGSCosMT = std::exp(-time * GammaS) * cos(DeltaM * time); B2[0] = 2. * ExpGSSinMT * sinphiS * norm1; B2[1] = B2[0]; B2[2] = -2. * ExpGSSinMT * sinphiS * norm2; B2[3] = B2[0]; - B2[4] = ( ExpGSCosMT * sin(delta_p - delta_l) - cosphiS * cos(delta_p - delta_l) * ExpGSSinMT ) * norm3; - B2[5] = ( ExpGSCosMT * sin(delta_p) - cosphiS * cos(delta_p) * ExpGSSinMT ) * norm3; + B2[4] = ( ExpGSCosMT * std::sin(delta_p - delta_l) - cosphiS * cos(delta_p - delta_l) * ExpGSSinMT ) * norm3; + B2[5] = ( ExpGSCosMT * std::sin(delta_p) - cosphiS * std::cos(delta_p) * ExpGSSinMT ) * norm3; B2[6] = B2[2]; - B2[7] = ( ExpGSCosMT * cos(delta_l - delta_s) - cosphiS * sin(delta_l - delta_s) * ExpGSSinMT ) * norm3; + B2[7] = ( ExpGSCosMT * std::cos(delta_l - delta_s) - cosphiS * sin(delta_l - delta_s) * ExpGSSinMT ) * norm3; B2[8] = B2[2]; - B2[9] = ( ExpGSCosMT * cos(delta_s) + cosphiS * sin(delta_s) * ExpGSSinMT ) * norm3; + B2[9] = ( ExpGSCosMT * std::cos(delta_s) + cosphiS * std::sin(delta_s) * ExpGSSinMT ) * norm3; } // End of tagged terms else{ @@ -153,13 +153,13 @@ double BsJpsiPhi_PDF(double *params, double *x, bool useHelicity) { double sinsqthetal = 1. - (costhetal * costhetal); double sinsqthetak = 1. - (costhetak * costhetak); double cossqthetak = costhetak * costhetak; - double coschi = cos(chi); + double coschi = std::cos(chi); double cossqchi = coschi * coschi; - double sinchi = sin(chi); + double sinchi = std::sin(chi); double sinsqchi = sinchi * sinchi; - double sin2thetak = 2. * sqrt(1. - costhetak * costhetak) * costhetak; - double sin2thetal = 2. * sqrt(1. - costhetal * costhetal) * costhetal; - double sin2chi = sin(2. * chi); + double sin2thetak = 2. * std::sqrt(1. - costhetak * costhetak) * costhetak; + double sin2thetal = 2. * std::sqrt(1. - costhetal * costhetal) * costhetal; + double sin2chi = std::sin(2. * chi); double sinthetak = sqrt(sinsqthetak); C[0] = 2. * cossqthetak * sinsqthetal; //cossqpsi * (1. - sinsqtheta * cossqphi); @@ -184,14 +184,14 @@ double BsJpsiPhi_PDF(double *params, double *x, bool useHelicity) { double sinsqtheta = 1. - (costheta * costheta); double sinsqpsi = 1. - (cospsi * cospsi); double cossqpsi = cospsi * cospsi; - double sin2theta = 2. * sqrt(1. - costheta * costheta) * costheta; - double sin2psi = 2. * sqrt(1. - cospsi * cospsi) * cospsi; - double cosphi = cos(phi); + double sin2theta = 2. * std::sqrt(1. - costheta * costheta) * costheta; + double sin2psi = 2. * std::sqrt(1. - cospsi * cospsi) * cospsi; + double cosphi = std::cos(phi); double cossqphi = cosphi * cosphi; - double sinphi = sin(phi); + double sinphi = std::sin(phi); double sinsqphi = sinphi * sinphi; - double sin2phi = sin(2. * phi); - double sinpsi = sqrt(1. - cospsi*cospsi); + double sin2phi = std::sin(2. * phi); + double sinpsi = std::sqrt(1. - cospsi*cospsi); C[0] = 2. * cossqpsi * (1. - sinsqtheta * cossqphi); C[1] = sinsqpsi * (1.-sinsqtheta * sinsqphi); diff --git a/Generators/Pythia8_i/src/UserHooks/PowhegBB4L.cxx b/Generators/Pythia8_i/src/UserHooks/PowhegBB4L.cxx index 29efbb86061..9ee0d643c53 100644 --- a/Generators/Pythia8_i/src/UserHooks/PowhegBB4L.cxx +++ b/Generators/Pythia8_i/src/UserHooks/PowhegBB4L.cxx @@ -114,13 +114,13 @@ public: inline double qSplittingScale(Vec4 pt, Vec4 p1, Vec4 p2){ p1.bstback(pt); p2.bstback(pt); - return sqrt( 2*p1*p2*p2.e()/p1.e() ); + return std::sqrt( 2*p1*p2*p2.e()/p1.e() ); } inline double gSplittingScale(Vec4 pt, Vec4 p1, Vec4 p2){ p1.bstback(pt); p2.bstback(pt); - return sqrt( 2*p1*p2*p1.e()*p2.e()/(pow(p1.e(),2)+pow(p2.e(),2)) ); + return std::sqrt( 2*p1*p2*p1.e()*p2.e()/(std::pow(p1.e(),2)+std::pow(p2.e(),2)) ); } diff --git a/Generators/Pythia8_i/src/UserHooks/WprimeWZFlat.cxx b/Generators/Pythia8_i/src/UserHooks/WprimeWZFlat.cxx index 1c61b8296b3..de6b3eb6b90 100644 --- a/Generators/Pythia8_i/src/UserHooks/WprimeWZFlat.cxx +++ b/Generators/Pythia8_i/src/UserHooks/WprimeWZFlat.cxx @@ -56,9 +56,9 @@ namespace Pythia8 { if(mFrac > 0.6) return breitWignerDenom(0.6); if(mFrac < 0.0425) return 1e-12/(-1.293+1.098e+2*mFrac-2.800e+3*mFrac*mFrac+2.345e+4*mFrac*mFrac*mFrac); - if(mFrac < 0.073) return 1.248e-12*(exp(1.158+18.34*mFrac)); + if(mFrac < 0.073) return 1.248e-12*(std::exp(1.158+18.34*mFrac)); - return 5.733e-10*pow(mFrac,-3.798-0.6555*log(mFrac))/pow(1.427-mFrac,30.017); + return 5.733e-10*std::pow(mFrac,-3.798-0.6555*std::log(mFrac))/std::pow(1.427-mFrac,30.017); } }; -- GitLab From 9df6f924f0d1816418ed4d6e38b115b359f10a4b Mon Sep 17 00:00:00 2001 From: lbazzano <lisandro.tomas.bazzano.hurrell@cern.ch> Date: Wed, 29 Jul 2020 18:21:38 +0200 Subject: [PATCH 379/459] Erased unnecesary line --- Reconstruction/Jet/JetRecTools/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/Reconstruction/Jet/JetRecTools/CMakeLists.txt b/Reconstruction/Jet/JetRecTools/CMakeLists.txt index 79a35e4e060..b9796f9ea39 100644 --- a/Reconstruction/Jet/JetRecTools/CMakeLists.txt +++ b/Reconstruction/Jet/JetRecTools/CMakeLists.txt @@ -7,7 +7,6 @@ atlas_subdir( JetRecTools ) find_package( FastJet ) find_package( FastJetContrib COMPONENTS SoftKiller ConstituentSubtractor ) -set( mon_deps ) set( mon_lib ) if( NOT GENERATIONBASE ) set( mon_deps Control/AthenaMonitoringKernel ) -- GitLab From 9e6d88d8a4d32785ca64e1f80199b052ae05d1ad Mon Sep 17 00:00:00 2001 From: Tim Martin <Tim.Martin@cern.ch> Date: Wed, 29 Jul 2020 18:29:04 +0200 Subject: [PATCH 380/459] update tests and magic string parsing --- Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt | 2 +- Trigger/TrigSteer/TrigOutputHandling/share/test.txt | 4 ++-- Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMCLIDs.h | 4 ---- .../TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx | 6 +++--- .../TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx | 4 +++- .../TrigOutputHandling/test/serial_deserial_test.cxx | 7 +++++++ 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt b/Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt index e4139cad5b1..568ab360049 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt +++ b/Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt @@ -13,7 +13,7 @@ atlas_add_library( TrigOutputHandlingLib src/*.cxx PUBLIC_HEADERS TrigOutputHandling INCLUDE_DIRS ${TDAQ-COMMON_INCLUDE_DIRS} - LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} GaudiKernel AthViews AthenaBaseComps RootUtils TrigSteeringEvent TrigSerializeResultLib TrigConfData xAODTrigCalo xAODTrigRinger xAODTrigEgamma xAODEgamma xAODBTagging xAODTrigger xAODTracking xAODTrigMuon xAODMuon xAODTau xAODTrigBphys xAODTrigMissingET DecisionHandlingLib AthenaMonitoringKernelLib TrigPartialEventBuildingLib TrigSerializeTPLib AthContainersRoot AthContainers TrigCompositeUtilsLib TrigCostMonitorMTLib ) + LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} GaudiKernel AthViews AthenaBaseComps RootUtils TrigSteeringEvent TrigSerializeResultLib TrigConfData xAODTrigCalo xAODTrigRinger xAODTrigEgamma xAODEgamma xAODBTagging xAODTrigger xAODTracking xAODTrigMuon xAODMuon xAODTau xAODTrigBphys xAODTrigMissingET DecisionHandlingLib AthenaMonitoringKernelLib TrigPartialEventBuildingLib TrigSerializeTPLib AthContainersRoot TrigCompositeUtilsLib TrigCostMonitorMTLib ) atlas_add_component( TrigOutputHandling src/components/*.cxx diff --git a/Trigger/TrigSteer/TrigOutputHandling/share/test.txt b/Trigger/TrigSteer/TrigOutputHandling/share/test.txt index eb7583d4f75..071e555cf8d 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/share/test.txt +++ b/Trigger/TrigSteer/TrigOutputHandling/share/test.txt @@ -8,7 +8,7 @@ deserialised2.ModuleID=1; ToolSvc.serialiser.OutputLevel=1; ToolSvc.serialiser.CollectionsToSerialize = ["xAOD::TrigEMClusterContainer#EMClusters;0", - "xAOD::TrigEMClusterAuxContainer#EMClustersAux.viewIndex.testFloat.rawEt.testSmallFloat;0", + "xAOD::TrigEMClusterAuxContainer#EMClustersAux.viewIndex.testFloat.rawEt.testSmallFloat.testTypedElementLink;0", "xAOD::TrigCompositeContainer_v1#EMClustersDecisions;0,1", "xAOD::TrigCompositeAuxContainer_v2#EMClustersDecisionsAux.detail1.detail2;0,1", "TrigRoiDescriptorCollection_p3#RoIDescriptors;0"]; @@ -20,6 +20,6 @@ ToolSvc.serialiser.TrigSerTPTool.OutputLevel=1; ToolSvc.schemaTest.OutputLevel=1; ToolSvc.schemaTest.SaveDynamic=0; ToolSvc.schemaTest.CollectionsToSerialize = ["xAOD::TrigEMClusterContainer#EMClusters;0", - "xAOD::TrigEMClusterAuxContainer#EMClustersAux.viewIndex.testFloat.rawEt.testSmallFloat;0", + "xAOD::TrigEMClusterAuxContainer#EMClustersAux.viewIndex.testFloat.rawEt.testSmallFloat.testTypedElementLink;0", "xAOD::TrigCompositeContainer_v1#EMClustersDecisions;0,1", "xAOD::TrigCompositeAuxContainer_v2#EMClustersDecisionsAux.detail1.detail2;0,1"]; diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMCLIDs.h b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMCLIDs.h index 3e7baf5b287..c8591932244 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMCLIDs.h +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMCLIDs.h @@ -15,8 +15,6 @@ #include "xAODTracking/VertexContainer.h" #include "xAODBTagging/BTagVertexContainer.h" -#include "AthContainers/PackedContainer.h" - /** * @File TriggerEDMCLIDs.h * @brief Declaration of additional types which can be serialised. @@ -31,6 +29,4 @@ CLASS_DEF( std::vector<ElementLink<xAOD::JetContainer>>, 1210667800, 1 ) CLASS_DEF( std::vector<std::vector<ElementLink<xAOD::VertexContainer>>>, 1164463855, 1 ) CLASS_DEF( std::vector<std::vector<ElementLink<xAOD::BTagVertexContainer>>>, 1289535397, 1 ) -CLASS_DEF( SG::PackedContainer<float>, 1180188747, 1 ) - #endif //> !TRIGOUTPUTHANDLING_TRIGGEREDMCLIDS_H diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx index 5d481acfb5e..e5f4ed71f45 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx @@ -147,9 +147,9 @@ StatusCode TriggerEDMDeserialiserAlg::deserialise( const Payload* dataptr ) c ATH_MSG_ERROR( "Deserialisation of object of CLID " << clid << " and transientTypeName " << transientTypeName << " # " << key << " failed" ); ATH_CHECK(false); } - const bool isxAODInterfaceContainer = transientTypeName.find("xAOD") != std::string::npos and transientTypeName.find("Aux") == std::string::npos; + const bool isxAODInterfaceContainer = transientTypeName.find("xAOD") != std::string::npos and transientTypeName.find("Aux") == std::string::npos and transientTypeName.find("ElementLink") == std::string::npos; const bool isxAODAuxContainer = transientTypeName.find("xAOD") != std::string::npos and transientTypeName.find("Aux") != std::string::npos; - const bool isxAODDecoration = transientTypeName.find("vector") != std::string::npos or transientTypeName.find("SG::PackedContainer") != std::string::npos; + const bool isxAODDecoration = transientTypeName.find("vector") != std::string::npos; const bool isTPContainer = persistentTypeName.find("_p") != std::string::npos; ATH_CHECK( checkSanity( transientTypeName, isxAODInterfaceContainer, isxAODAuxContainer, isxAODDecoration, isTPContainer ) ); @@ -215,7 +215,7 @@ StatusCode TriggerEDMDeserialiserAlg::deserialiseDynAux( const std::string& tran SG::AuxTypeRegistry& registry = SG::AuxTypeRegistry::instance(); SG::auxid_t id = registry.findAuxID ( decorationName ); if (id != SG::null_auxid ) { - if ( stripStdVec( registry.getVecTypeName(id) ) != stripStdVec(transientTypeName) ) { + if ( stripStdVec( registry.getVecTypeName(id) ) != stripStdVec(transientTypeName) and transientTypeName.find("ElementLink") == std::string::npos ) { ATH_MSG_INFO( "Schema evolution required for decoration \"" << decorationName << "\" from " << transientTypeName << " to " << registry.getVecTypeName( id ) << " not handled yet"); return StatusCode::SUCCESS; } diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx index 54d579acccf..dc3b1d58980 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx @@ -218,7 +218,9 @@ StatusCode TriggerEDMSerialiserTool::serialiseDynAux( DataObject* dObj, const Ad << "' fulltype '" << fullTypeName << "' aux ID '" << auxVarID << "' class '" << cls->GetName() ); CLID clid; - ATH_CHECK( m_clidSvc->getIDOfTypeInfoName(fullTypeName, clid) ); + if ( m_clidSvc->getIDOfTypeName(typeName, clid).isFailure() ) { // First try + ATH_CHECK( m_clidSvc->getIDOfTypeInfoName(fullTypeName, clid) ); // Second try + } ATH_MSG_DEBUG( "CLID " << clid ); RootType classDesc = RootType::ByNameNoQuiet( cls->GetName() ); diff --git a/Trigger/TrigSteer/TrigOutputHandling/test/serial_deserial_test.cxx b/Trigger/TrigSteer/TrigOutputHandling/test/serial_deserial_test.cxx index eb33ab78636..b7db2dcb729 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/test/serial_deserial_test.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/test/serial_deserial_test.cxx @@ -21,6 +21,8 @@ #include "xAODTrigger/TrigCompositeContainer.h" #include "xAODTrigger/TrigCompositeAuxContainer.h" +#include "xAODBTagging/BTaggingContainer.h" + #include "../src/TriggerEDMSerialiserTool.h" #include "../src/TriggerEDMDeserialiserAlg.h" @@ -111,6 +113,7 @@ void testTrigEMContainerInsert(StoreGateSvc* pStore) { SG::AuxElement::Accessor< int > viewIndex( "viewIndex" ); SG::AuxElement::Accessor< float > testFloat( "testFloat" ); SG::AuxElement::Accessor< float > testSmallFloat( "testSmallFloat" ); + SG::AuxElement::Accessor< ElementLink<xAOD::BTaggingContainer> > testTypedElementLink( "testTypedElementLink" ); auto fill = [&]( double x) { @@ -136,6 +139,7 @@ void testTrigEMContainerInsert(StoreGateSvc* pStore) { viewIndex( *cluster ) = x+1; // for sake of change add 1 testFloat( *cluster ) = float(x)+0.1; // for sake of change add 0.1 testSmallFloat( *cluster ) = float(x); + testTypedElementLink( *cluster ) = ElementLink<xAOD::BTaggingContainer>(123, 456); }; @@ -165,6 +169,7 @@ void testTrigEMContainerReadAndCheck(StoreGateSvc* pStore) { SG::AuxElement::ConstAccessor< int > viewIndexReader( "viewIndex" ); SG::AuxElement::ConstAccessor< float > testFloatReader( "testFloat" ); SG::AuxElement::ConstAccessor< float > testSmallFloatReader( "testSmallFloat" ); + SG::AuxElement::ConstAccessor< ElementLink<xAOD::BTaggingContainer> > testTypedElementLinkReader( "testTypedElementLink" ); VALUE ( emback->size() ) EXPECTED ( 30 ); // as many fills were made @@ -176,12 +181,14 @@ void testTrigEMContainerReadAndCheck(StoreGateSvc* pStore) { float fl = testFloatReader( *cl ); float smallFl = testSmallFloatReader( *cl ); float rawEt = cl->rawEt(); + ElementLink<xAOD::BTaggingContainer> el = testTypedElementLinkReader( *cl ); std::cout << vi << " " << fl << " " << rawEt << " "; VALUE( vi ) EXPECTED ( i + 1 ); VALUE( fl ) EXPECTED ( 0.1 + i ); VALUE( (smallFl - i) < 0.1 ) EXPECTED ( true ); // precision is poor because we decided to reduce space for this variable VALUE( rawEt ) EXPECTED ( i - 0.2 ); + VALUE( el ) EXPECTED ( ElementLink<xAOD::BTaggingContainer>(123, 456) ); } std::cout << std::endl; } -- GitLab From 4839eccac4c98d4511bd7980b947b619289f234f Mon Sep 17 00:00:00 2001 From: Tim Martin <Tim.Martin@cern.ch> Date: Wed, 29 Jul 2020 18:31:01 +0200 Subject: [PATCH 381/459] Demote msg to DEBUG --- .../TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx index dc3b1d58980..aeda7185517 100644 --- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx +++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMSerialiserTool.cxx @@ -214,7 +214,7 @@ StatusCode TriggerEDMSerialiserTool::serialiseDynAux( DataObject* dObj, const Ad TClass* cls = TClass::GetClass (*tinfo); ATH_CHECK( cls != nullptr ); ATH_MSG_DEBUG( "" ); - ATH_MSG_ALWAYS( "Streaming '" << decorationName << "' of type '" << typeName + ATH_MSG_DEBUG( "Streaming '" << decorationName << "' of type '" << typeName << "' fulltype '" << fullTypeName << "' aux ID '" << auxVarID << "' class '" << cls->GetName() ); CLID clid; -- GitLab From 3de0593570f7dddebf29166755fca009e9edfff2 Mon Sep 17 00:00:00 2001 From: Rafal Bielski <rafal.bielski@cern.ch> Date: Wed, 29 Jul 2020 19:52:19 +0200 Subject: [PATCH 382/459] Fix phase-I configuration handling for RoIBResultToxAOD --- .../python/AnalysisTriggerAlgsCAConfig.py | 25 +++++++++++---- .../src/RoIBResultToxAOD.cxx | 32 ++++++++----------- .../TriggerJobOpts/python/TriggerConfig.py | 13 ++++---- 3 files changed, 37 insertions(+), 33 deletions(-) diff --git a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py index 7f84ee777dd..44761dd6072 100644 --- a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py +++ b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/python/AnalysisTriggerAlgsCAConfig.py @@ -4,8 +4,14 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory def RoIBResultToxAODCfg(flags, seqName=''): + if flags.Trigger.enableL1Phase1 and not flags.Trigger.enableL1CaloLegacy: + # No Run-2 L1 RoIs -> nothing to covert to xAOD -> don't add RoIBResultToxAOD + return ComponentAccumulator() + acc = ComponentAccumulator(sequenceName=seqName) alg = CompFactory.RoIBResultToxAOD('RoIBResultToxAOD') + alg.DoMuon = not flags.Trigger.enableL1Phase1 + alg.DoCalo = flags.Trigger.enableL1CaloLegacy acc.addEventAlgo(alg, sequenceName=seqName) if flags.Input.Format == 'BS': @@ -16,12 +22,17 @@ def RoIBResultToxAODCfg(flags, seqName=''): acc.merge(ByteStreamReadCfg(flags, typeNames)) # Create output list to return for use by the caller - outputList = [ - ("xAOD::MuonRoIContainer", alg.xAODKeyMuon), - ("xAOD::EmTauRoIContainer", alg.xAODKeyEmTau), - ("xAOD::EnergySumRoI", alg.xAODKeyEsum), - ("xAOD::JetEtRoI", alg.xAODKeyJetEt), - ("xAOD::JetRoIContainer", alg.xAODKeyJet), - ] + outputList = [] + if alg.DoMuon: + outputList += [ + ("xAOD::MuonRoIContainer", alg.xAODKeyMuon) + ] + if alg.DoCalo: + outputList += [ + ("xAOD::EmTauRoIContainer", alg.xAODKeyEmTau), + ("xAOD::EnergySumRoI", alg.xAODKeyEsum), + ("xAOD::JetEtRoI", alg.xAODKeyJetEt), + ("xAOD::JetRoIContainer", alg.xAODKeyJet) + ] return acc, outputList diff --git a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/src/RoIBResultToxAOD.cxx b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/src/RoIBResultToxAOD.cxx index 1af24987797..a9918802cf0 100644 --- a/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/src/RoIBResultToxAOD.cxx +++ b/PhysicsAnalysis/AnalysisTrigger/AnalysisTriggerAlgs/src/RoIBResultToxAOD.cxx @@ -44,12 +44,6 @@ namespace { } // private namespace -/// Helper macro for initialising SG keys that are allowed to be missing -#define INIT_SG_KEY(VAR) \ - do { \ - ATH_CHECK( VAR.initialize( ! VAR.key().empty() ) ); \ - } while( false ) - RoIBResultToxAOD::RoIBResultToxAOD( const std::string& name, ISvcLocator* svcLoc ) : AthAlgorithm( name, svcLoc ) { @@ -60,10 +54,10 @@ StatusCode RoIBResultToxAOD::initialize() { // Print system info. if( m_doCalo == false ) { - ATH_MSG_WARNING( "Inputs from LVL1 Calo systems switched off" ); + ATH_MSG_INFO( "Inputs from LVL1 Calo systems switched off" ); } if( m_doMuon == false ) { - ATH_MSG_WARNING( "Inputs from LVL1 Muon systems switched off" ); + ATH_MSG_INFO( "Inputs from LVL1 Muon systems switched off" ); } // Connect to the LVL1ConfigSvc for the trigger configuration. @@ -91,17 +85,13 @@ StatusCode RoIBResultToxAOD::initialize() { // Initialise the keys. ATH_CHECK( m_roibResultKey.initialize() ); - INIT_SG_KEY( m_cpmTowerKey ); - INIT_SG_KEY( m_jetElementKey ); - if( m_doMuon ) { - ATH_CHECK( m_muonRoIKey.initialize() ); - } - if( m_doCalo ) { - ATH_CHECK( m_emtauRoIKey.initialize() ); - ATH_CHECK( m_energysumRoIKey.initialize() ); - ATH_CHECK( m_jetetRoIKey.initialize() ); - ATH_CHECK( m_jetRoIKey.initialize() ); - } + ATH_CHECK( m_cpmTowerKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_jetElementKey.initialize(SG::AllowEmpty) ); + ATH_CHECK( m_muonRoIKey.initialize(m_doMuon) ); + ATH_CHECK( m_emtauRoIKey.initialize(m_doCalo) ); + ATH_CHECK( m_energysumRoIKey.initialize(m_doCalo) ); + ATH_CHECK( m_jetetRoIKey.initialize(m_doCalo) ); + ATH_CHECK( m_jetRoIKey.initialize(m_doCalo) ); // Return gracefully. return StatusCode::SUCCESS; @@ -114,6 +104,10 @@ StatusCode RoIBResultToxAOD::execute() { // Access the input object. auto roibResult = SG::makeHandle( m_roibResultKey, getContext() ); + if (!roibResult.isValid()) { + ATH_MSG_ERROR("Failed to retrieve " << m_roibResultKey.key()); + return StatusCode::FAILURE; + } // Create the muon RoIs: if( m_doMuon ) { diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py index 3dbed4c7b82..75d4b238dfe 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py @@ -439,13 +439,12 @@ def triggerPOOLOutputCfg(flags, decObj, decObjHypoOut, edmSet): ("xAOD::TrigDecision", decmaker.TrigDecisionKey), ("xAOD::TrigConfKeys", menuwriter.EventObjectName)] - # Produce xAOD L1 RoIs from RoIBResult (unless running with exclusively Phase-I L1) - if flags.Trigger.enableL1CaloLegacy or not flags.Trigger.enableL1Phase1: - from AnalysisTriggerAlgs.AnalysisTriggerAlgsCAConfig import RoIBResultToxAODCfg - xRoIBResultAcc, xRoIBResultOutputs = RoIBResultToxAODCfg(flags, acc.getSequence().name) - acc.merge(xRoIBResultAcc) - # Ensure outputs are produced before streamAlg runs - streamAlg.ExtraInputs += xRoIBResultOutputs + # Produce xAOD L1 RoIs from RoIBResult + from AnalysisTriggerAlgs.AnalysisTriggerAlgsCAConfig import RoIBResultToxAODCfg + xRoIBResultAcc, xRoIBResultOutputs = RoIBResultToxAODCfg(flags, acc.getSequence().name) + acc.merge(xRoIBResultAcc) + # Ensure outputs are produced before streamAlg runs + streamAlg.ExtraInputs += xRoIBResultOutputs return acc -- GitLab From b496bf1e677984fd9620bbc79a49837208fd73e3 Mon Sep 17 00:00:00 2001 From: James Richard Catmore <james.catmore@cern.ch> Date: Wed, 29 Jul 2020 19:56:17 +0200 Subject: [PATCH 383/459] Commenting out broken trigger matching lines in DAOD_PHYS https://its.cern.ch/jira/browse/ATR-21817 The way the trigger matching is set up in DAOD_PHYS no longer works because of a change in the trigger menu metadata. In order to allow the validation with DAOD_PHYS to proceed the relevant lines are commented out. --- .../DerivationFrameworkPhys/share/PHYS.py | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py index d605a59b3d5..2b68f07cc31 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/share/PHYS.py @@ -77,33 +77,34 @@ if (DerivationFrameworkIsMonteCarlo): #==================================================================== # TRIGGER CONTENT #==================================================================== -# See https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerAPI -# Get single and multi mu, e, photon triggers -# Jet, tau, multi-object triggers not available in the matching code -allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34 -trig_el = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, livefraction=0.8) -trig_mu = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu, livefraction=0.8) -trig_g = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.g, livefraction=0.8) -trig_tau = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.tau, livefraction=0.8) -# Add cross-triggers for some sets -trig_em = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, additionalTriggerType=TriggerType.mu, livefraction=0.8) -trig_et = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, additionalTriggerType=TriggerType.tau, livefraction=0.8) -trig_mt = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu, additionalTriggerType=TriggerType.tau, livefraction=0.8) -# Note that this seems to pick up both isolated and non-isolated triggers already, so no need for extra grabs -trig_txe = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.tau, additionalTriggerType=TriggerType.xe, livefraction=0.8) - -# Merge and remove duplicates -trigger_names_full_notau = list(set(trig_el+trig_mu+trig_g+trig_em+trig_et+trig_mt)) -trigger_names_full_tau = list(set(trig_tau+trig_txe)) - -# Now reduce the list... -from RecExConfig.InputFilePeeker import inputFileSummary -trigger_names_notau = [] -trigger_names_tau = [] -for trig_item in inputFileSummary['metadata']['/TRIGGER/HLT/Menu']: - if not 'ChainName' in trig_item: continue - if trig_item['ChainName'] in trigger_names_full_notau: trigger_names_notau += [ trig_item['ChainName'] ] - if trig_item['ChainName'] in trigger_names_full_tau: trigger_names_tau += [ trig_item['ChainName'] ] +## Lines commented out temporarily 29th July 2020 to allow validation to proceed. Will need a new MR to fix. +## See https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerAPI +## Get single and multi mu, e, photon triggers +## Jet, tau, multi-object triggers not available in the matching code +#allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34 +#trig_el = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, livefraction=0.8) +#trig_mu = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu, livefraction=0.8) +#trig_g = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.g, livefraction=0.8) +#trig_tau = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.tau, livefraction=0.8) +## Add cross-triggers for some sets +#trig_em = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, additionalTriggerType=TriggerType.mu, livefraction=0.8) +#trig_et = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, additionalTriggerType=TriggerType.tau, livefraction=0.8) +#trig_mt = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu, additionalTriggerType=TriggerType.tau, livefraction=0.8) +## Note that this seems to pick up both isolated and non-isolated triggers already, so no need for extra grabs +#trig_txe = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.tau, additionalTriggerType=TriggerType.xe, livefraction=0.8) +# +## Merge and remove duplicates +#trigger_names_full_notau = list(set(trig_el+trig_mu+trig_g+trig_em+trig_et+trig_mt)) +#trigger_names_full_tau = list(set(trig_tau+trig_txe)) +# +## Now reduce the list... +#from RecExConfig.InputFilePeeker import inputFileSummary +#trigger_names_notau = [] +#trigger_names_tau = [] +#for trig_item in inputFileSummary['metadata']['/TRIGGER/HLT/Menu']: +# if not 'ChainName' in trig_item: continue +# if trig_item['ChainName'] in trigger_names_full_notau: trigger_names_notau += [ trig_item['ChainName'] ] +# if trig_item['ChainName'] in trigger_names_full_tau: trigger_names_tau += [ trig_item['ChainName'] ] #==================================================================== -- GitLab From eacbb3021d9b2786359a68ac555db400ff24a53a Mon Sep 17 00:00:00 2001 From: Xiaozhong Huang <xiaozhong.huang@cern.ch> Date: Thu, 30 Jul 2020 06:13:33 +0800 Subject: [PATCH 384/459] replace TMath::Min/Max with std::min/max --- Reconstruction/tauRecTools/Root/TauWPDecorator.cxx | 6 +++--- Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx b/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx index f8ed0b3bc30..31dfd4c4add 100644 --- a/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx +++ b/Reconstruction/tauRecTools/Root/TauWPDecorator.cxx @@ -6,7 +6,7 @@ #include "AsgDataHandles/ReadHandle.h" -#include <utility> +#include <algorithm> #include "TFile.h" #include "TH2.h" @@ -216,8 +216,8 @@ StatusCode TauWPDecorator::execute(xAOD::TauJet& pTau) const { ATH_MSG_DEBUG("original mu:\t" << yVariable); } - xVariable = TMath::Min(m_xMax.at(nProng), TMath::Max(m_xMin.at(nProng), xVariable)); - yVariable = TMath::Min(m_yMax.at(nProng), TMath::Max(m_yMin.at(nProng), yVariable)); + xVariable = std::min(m_xMax.at(nProng), std::max(m_xMin.at(nProng), xVariable)); + yVariable = std::min(m_yMax.at(nProng), std::max(m_yMin.at(nProng), yVariable)); ATH_MSG_DEBUG("final pT:\t" << xVariable); if (m_electronMode) { diff --git a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h index 52c37b71b32..64997de2ada 100644 --- a/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h +++ b/Reconstruction/tauRecTools/tauRecTools/TauWPDecorator.h @@ -11,6 +11,9 @@ #include "xAODEventInfo/EventInfo.h" #include "AsgDataHandles/ReadHandleKey.h" +#include <utility> +#include <memory> +#include <vector> #include <map> class TH2; -- GitLab From 1619d8bfe59968caeea000911679b3bbb916cb0b Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Wed, 29 Jul 2020 03:27:40 +0200 Subject: [PATCH 385/459] CaloMonitoring: Make sure CaloNoiseCondAlg is configured. The old configuration for LArCellMonAlg needs to ensure that CaloNoiseCondAlg is configured. See ATLASRECTS-5579. --- Calorimeter/CaloMonitoring/python/LArCellMonAlg.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Calorimeter/CaloMonitoring/python/LArCellMonAlg.py b/Calorimeter/CaloMonitoring/python/LArCellMonAlg.py index cc06f3cb0f7..f0e1d87ec01 100644 --- a/Calorimeter/CaloMonitoring/python/LArCellMonAlg.py +++ b/Calorimeter/CaloMonitoring/python/LArCellMonAlg.py @@ -27,6 +27,9 @@ def LArCellMonConfigOld(inputFlags): from LumiBlockComps.LuminosityCondAlgDefault import LuminosityCondAlgDefault LuminosityCondAlgDefault() + from CaloTools.CaloNoiseCondAlg import CaloNoiseCondAlg + CaloNoiseCondAlg() + LArCellMonConfigCore(helper, LArCellMonAlg,inputFlags,isCosmics, isMC) from AthenaMonitoring.AtlasReadyFilterTool import GetAtlasReadyFilterTool -- GitLab From edb3c231a859275bbb8f1384dd926e0e4c17d1f5 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Wed, 29 Jul 2020 15:50:16 +0200 Subject: [PATCH 386/459] MuonCompetingRIOsOnTrack: Change associatedSurfaceRaw to return a pointer. It is possible for CompetingMuonClustersOnTrack::m_associatedSurface to be null. So change associatedSurfaceRaw to retrun it as a pointer, rather than as a reference. Fixes an ubsan warning. --- .../CompetingMuonClustersOnTrack.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonCompetingRIOsOnTrack/MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrack.h b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonCompetingRIOsOnTrack/MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrack.h index 822a224ae90..ed02414f281 100755 --- a/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonCompetingRIOsOnTrack/MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrack.h +++ b/MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonCompetingRIOsOnTrack/MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrack.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -107,7 +107,7 @@ namespace Muon { /** returns the surface for the local to global transformation . - interface from MeasurementBase */ const Trk::Surface& associatedSurface() const; - const Trk::Surface& associatedSurfaceRaw() const; + const Trk::Surface* associatedSurfaceRaw() const; /**Interface method to get the global Position. - interface from MeasurementBase */ @@ -159,9 +159,9 @@ namespace Muon { return ((*(m_containedChildRots->begin()))->associatedSurface()); } - inline const Trk::Surface& CompetingMuonClustersOnTrack::associatedSurfaceRaw() const + inline const Trk::Surface* CompetingMuonClustersOnTrack::associatedSurfaceRaw() const { - return *m_associatedSurface; + return m_associatedSurface; } inline unsigned int CompetingMuonClustersOnTrack::numberOfContainedROTs() const { -- GitLab From ce2f7b8674cd7b555756cc83116f3db5f8b05fa6 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Wed, 29 Jul 2020 15:52:19 +0200 Subject: [PATCH 387/459] MuonEventTPCnv: associatedSurfaceRaw changed to return a pointer. CompetingMuonClustersOnTrack::associatedSurfaceRaw was changed to return a pointer rather than a reference. Fixes an ubsan warning. --- .../CompetingMuonClustersOnTrackCnv_p2.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrackCnv_p2.cxx b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrackCnv_p2.cxx index 1eaa56155c6..1eca696113f 100755 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrackCnv_p2.cxx +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/src/MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrackCnv_p2.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ //----------------------------------------------------------------------------- @@ -51,7 +51,7 @@ CompetingMuonClustersOnTrackCnv_p2::transToPers( const Muon::CompetingMuonCluste persObj->m_containedChildRots.push_back( toPersistent(&rotCnv, p, log) ); } - persObj->m_associatedSurface = toPersistent(&m_surfCnv, &transObj->associatedSurfaceRaw(), log); + persObj->m_associatedSurface = toPersistent(&m_surfCnv, transObj->associatedSurfaceRaw(), log); } -- GitLab From 69aa7ac940397e3e337dacaeeb68b0b1d4d85bce Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Wed, 29 Jul 2020 18:30:47 +0200 Subject: [PATCH 388/459] TriggerMenu: Fix irreproducibilty. Some of the jet menu code was using the builtin hash() function to form trigger element names. With py3, however, the result of hash() can vary from run to run. This implies that the HLTResult object written to AOD files can also change from run to run. Change the use of hash() to crc32() in order to make this reproducible. --- .../TriggerMenu/python/jet/SequenceTree.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenu/python/jet/SequenceTree.py b/Trigger/TriggerCommon/TriggerMenu/python/jet/SequenceTree.py index 7b7c21a11d6..4d9f98a4bfa 100644 --- a/Trigger/TriggerCommon/TriggerMenu/python/jet/SequenceTree.py +++ b/Trigger/TriggerCommon/TriggerMenu/python/jet/SequenceTree.py @@ -1,7 +1,8 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration from collections import defaultdict from .Sequence import Sequence +import binascii # def _update_if_diagnostic_sequence(sequence): # # diagnostic sequences monitor sequences. Ensure diagnostic @@ -94,13 +95,18 @@ class SequenceTree(object): # sequence. Keep this for human readers toks = alias.split('_') # hash the rest to get a shorter name - ah = hash(alias) + # Don't use the builtin hash(). With py3, that changes run-to-run, + # which ultimately implies that the HLTResult objects + # we write will also vary from run to run. + ah = binascii.crc32 (alias.encode()) alias = '%s_%d' % (toks[0], ah) if te_in: # te_out = te_in + '__' + alglist.alias - hash_in = ('%s' % hash(te_in)).replace('-', '_') + # Similarly, don't use builtin hash() here. + h = binascii.crc32 (te_in.encode()) + hash_in = ('%s' % h).replace('-', '_') te_out = '%s_%s' % (hash_in, alias) else: te_out = alias -- GitLab From e10b7a574f57acba36dc0fec1edddc88e5b47884 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Wed, 29 Jul 2020 22:31:22 +0200 Subject: [PATCH 389/459] MuonD3PDMaker: Don't crash if isolation variables are missing. Don't crash if isolation variables are missing. --- .../MuonD3PDMaker/python/MuonD3PDObject.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/PhysicsAnalysis/D3PDMaker/MuonD3PDMaker/python/MuonD3PDObject.py b/PhysicsAnalysis/D3PDMaker/MuonD3PDMaker/python/MuonD3PDObject.py index 5545fd25094..d5846675be3 100644 --- a/PhysicsAnalysis/D3PDMaker/MuonD3PDMaker/python/MuonD3PDObject.py +++ b/PhysicsAnalysis/D3PDMaker/MuonD3PDMaker/python/MuonD3PDObject.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration import MuonD3PDMaker @@ -50,12 +50,12 @@ MuonD3PDObject.defineBlock (1, 'NumberOfSegments', MuonD3PDObject.defineBlock ( 1, 'Isolation', D3PDMakerCoreComps.AuxDataFillerTool, - Vars = ['etcone20', - 'etcone30', - 'etcone40', - 'ptcone20', - 'ptcone30', - 'ptcone40', + Vars = ['etcone20 < float: 0', + 'etcone30 < float: 0', + 'etcone40 < float: 0', + 'ptcone20 < float: 0', + 'ptcone30 < float: 0', + 'ptcone40 < float: 0', 'scatteringCurvatureSignificance < float: 0', 'scatteringNeighbourSignificance < float: 0', 'momentumBalanceSignificance < float: 0']) -- GitLab From 95478d61d5f0839fccbd1d1a086d7c27e7677cf3 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Tue, 28 Jul 2020 21:22:02 +0200 Subject: [PATCH 390/459] InDetLowBetaFinder: Protect against out-of-bounds array access. An out-of-bounds array access was flagged by ubsan in TrtToolBetaLiklihood when running in the debug build. This was seen in the third event while trying to reproduce ATR-21791: ``` /build/atnight/localbuilds/nightlies/master/athena/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/TrtToolsBetaLiklihood.cxx:339:69: runtime error: index 44 out of bounds for type 'double [24]' /build/atnight/localbuilds/nightlies/master/athena/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/TrtToolsBetaLiklihood.cxx:339:128: runtime error: index 45 out of bounds for type 'double [24]' ``` The problem was at this line: ``` prob = remain*LBitProb[idx1][EtaBin][becIdx][bit-binShift-1] + (1.-remain)*LBitProb[idx1][EtaBin][becIdx][bit-binShift]; ``` The last array has size 24, but here bit==19, binShift==-26, so bit-binShift == 45. Also, tShift==-25.218409847322423, nominalDrift==4.53986979, and estDriftA[i]==95.2978058 (i=4). Added an additional test to treat bin-binShift >= 24 the same way that the code currently treats bin-binShift-1 < 0. --- .../InDetLowBetaFinder/src/TrtToolsBetaLiklihood.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/TrtToolsBetaLiklihood.cxx b/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/TrtToolsBetaLiklihood.cxx index 341cb3b00c4..a92be98d31d 100644 --- a/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/TrtToolsBetaLiklihood.cxx +++ b/InnerDetector/InDetRecAlgs/InDetLowBetaFinder/src/TrtToolsBetaLiklihood.cxx @@ -319,7 +319,7 @@ void TRT_FEbeta_fcn ATLAS_NOT_THREAD_SAFE // Global variables are used without p //std::cout << "FEbeta_fcn 2" << std::endl; // beta so small we've shifted off the map - if (bit-binShift-1 < 0) { + if (bit-binShift-1 < 0 || bit-binShift >= 24) { prob = 1.E-15; // give some very low prob to get away from here //std::cout << prob << std::endl; } else { -- GitLab From 64a43103592ab87ce1072a8eee3a1b3bff71d019 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Wed, 29 Jul 2020 16:44:32 +0200 Subject: [PATCH 391/459] AthenaCommon: python 2 fix Fix for python 2 compatibility. RecursionError is py3 only. But this is anyway a bad way to check for recursion, so rework this to check for recursion explicitly. --- Control/AthenaCommon/python/CFElements.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/Control/AthenaCommon/python/CFElements.py b/Control/AthenaCommon/python/CFElements.py index c38f5de86c4..baa105312be 100755 --- a/Control/AthenaCommon/python/CFElements.py +++ b/Control/AthenaCommon/python/CFElements.py @@ -84,19 +84,17 @@ def getAllSequenceNames(seq, depth=0): def checkSequenceConsistency( seq ): """ Enforce rules for sequence graph - identical items can not be added to itself (even indirectly) """ - def __noSubSequenceOfName( s, n ): + def __noSubSequenceOfName( s, n, seen = set() ): + seen = seen.copy() + seen.add (s) for c in getSequenceChildren( s ): + if c in seen: + raise RuntimeError("Sequence {} contains itself".format(compName(c)) ) if isSequence( c ): if compName(c) == n: raise RuntimeError("Sequence {} contains sub-sequence of the same name".format(n) ) - try: - __noSubSequenceOfName( c, compName(c) ) # check each sequence for repetition as well - except RecursionError: - raise RuntimeError("Sequence {} contains itself".format(compName(c)) ) - try: - __noSubSequenceOfName( c, n ) - except RecursionError: - raise RuntimeError("Sequence {} contains itself".format(n) ) + __noSubSequenceOfName( c, compName(c), seen ) # check each sequence for repetition as well + __noSubSequenceOfName( c, n, seen ) __noSubSequenceOfName( seq, compName(seq) ) -- GitLab From abbeceb8992f468f128332b74a3b8649df5ff127 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Wed, 29 Jul 2020 23:30:46 +0200 Subject: [PATCH 392/459] TrigValTools: Increase test timeout. Test has been timing out in debug builds. --- Trigger/TrigValidation/TrigValTools/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigValidation/TrigValTools/CMakeLists.txt b/Trigger/TrigValidation/TrigValTools/CMakeLists.txt index 45e23e0bfbd..81fe27447d3 100644 --- a/Trigger/TrigValidation/TrigValTools/CMakeLists.txt +++ b/Trigger/TrigValidation/TrigValTools/CMakeLists.txt @@ -32,5 +32,5 @@ atlas_add_test( TrigValSteering_unit_test atlas_add_test( rootcomp SCRIPT test/test_rootcomp.sh ${CMAKE_CURRENT_SOURCE_DIR}/test/test_rootcomp.C - PROPERTIES TIMEOUT 120 + PROPERTIES TIMEOUT 450 POST_EXEC_SCRIPT nopost.sh ) -- GitLab From 052814454614b2913b5742c3aca1e9076f21aa91 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 12 Jul 2020 00:14:10 -0400 Subject: [PATCH 393/459] InDetTrigRawDataProvider: cmake fixes Library dependency fixes. --- .../InDetTrigRecAlgs/InDetTrigRawDataProvider/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/CMakeLists.txt b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/CMakeLists.txt index 0f556b1f9aa..5ee1a07c24d 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/CMakeLists.txt +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigRawDataProvider/CMakeLists.txt @@ -31,7 +31,7 @@ atlas_depends_on_subdirs( PUBLIC atlas_add_component( InDetTrigRawDataProvider src/*.cxx src/components/*.cxx - LINK_LIBRARIES AthenaBaseComps GaudiKernel InDetRawData AthenaKernel StoreGateLib SGtests IRegionSelector ByteStreamCnvSvcBaseLib InDetByteStreamErrors InDetIdentifier SCT_CablingLib TrigSteeringEvent PixelCablingLib ) + LINK_LIBRARIES AthenaBaseComps GaudiKernel InDetRawData AthenaKernel StoreGateLib SGtests IRegionSelector ByteStreamCnvSvcBaseLib InDetByteStreamErrors InDetIdentifier SCT_CablingLib TrigSteeringEvent PixelCablingLib InDetTrigToolInterfacesLib SCT_RawDataByteStreamCnvLib PixelRawDataByteStreamCnvLib TRT_ConditionsServicesLib TRT_CablingLib TRT_RawDataByteStreamCnvLib ) # Install files from the package: atlas_install_headers( InDetTrigRawDataProvider ) -- GitLab From 4d6e84de53b532059d6827415cfa4c4ba380d7a6 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 12 Jul 2020 00:17:09 -0400 Subject: [PATCH 394/459] SiTrigSpacePointFormation: cmake fixes Library dependency fixes. --- .../InDetTrigRecAlgs/SiTrigSpacePointFormation/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InnerDetector/InDetTrigRecAlgs/SiTrigSpacePointFormation/CMakeLists.txt b/InnerDetector/InDetTrigRecAlgs/SiTrigSpacePointFormation/CMakeLists.txt index 0bdaa5352c9..264ac0f79ea 100644 --- a/InnerDetector/InDetTrigRecAlgs/SiTrigSpacePointFormation/CMakeLists.txt +++ b/InnerDetector/InDetTrigRecAlgs/SiTrigSpacePointFormation/CMakeLists.txt @@ -31,7 +31,7 @@ include_directories(src) atlas_add_component( SiTrigSpacePointFormation src/*.cxx src/components/*.cxx - LINK_LIBRARIES Identifier GaudiKernel InDetPrepRawData TrigInterfacesLib AthenaBaseComps IRegionSelector EventPrimitives InDetIdentifier InDetReadoutGeometry SiSpacePointFormationLib SiSpacePointToolLib TrkSpacePoint TrigSteeringEvent TrigTimeAlgsLib ) + LINK_LIBRARIES Identifier GaudiKernel InDetPrepRawData TrigInterfacesLib AthenaBaseComps IRegionSelector EventPrimitives InDetIdentifier InDetReadoutGeometry SiSpacePointFormationLib SiSpacePointToolLib TrkSpacePoint TrigSteeringEvent TrigTimeAlgsLib InDetTrigToolInterfacesLib ) # Install files from the package: atlas_install_headers( SiTrigSpacePointFormation ) -- GitLab From df3f87670813543d537981355bef768cb8059bb7 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 12 Jul 2020 00:11:11 -0400 Subject: [PATCH 395/459] InDetTrigTruthAlgs: cmake fixes Library dependency fixes. --- .../InDetTrigRecAlgs/InDetTrigTruthAlgs/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigTruthAlgs/CMakeLists.txt b/InnerDetector/InDetTrigRecAlgs/InDetTrigTruthAlgs/CMakeLists.txt index 8c77cb3565c..2afd6e6a43c 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigTruthAlgs/CMakeLists.txt +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigTruthAlgs/CMakeLists.txt @@ -26,7 +26,7 @@ atlas_depends_on_subdirs( PUBLIC atlas_add_component( InDetTrigTruthAlgs src/*.cxx src/components/*.cxx - LINK_LIBRARIES GaudiKernel InDetSimData TrkTruthData TrigInterfacesLib AthLinks StoreGateLib SGtests InDetPrepRawData Particle ParticleTruth TrkTrack TrkToolInterfaces TrigParticle ) + LINK_LIBRARIES GaudiKernel InDetSimData TrkTruthData TrigInterfacesLib AthLinks StoreGateLib SGtests InDetPrepRawData Particle ParticleTruth TrkTrack TrkToolInterfaces TrigParticle InDetTruthInterfaces ) # Install files from the package: atlas_install_headers( InDetTrigTruthAlgs ) -- GitLab From 639d231a4ae1539ad5edf4f16b45d1a54f76efe6 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 12 Jul 2020 00:12:08 -0400 Subject: [PATCH 396/459] InDetTrigPrepRawDataFormat: cmake fixes Library dependency fixes. --- .../InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/CMakeLists.txt b/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/CMakeLists.txt index 61e6485b73d..3913c930f85 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/CMakeLists.txt +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigPrepRawDataFormat/CMakeLists.txt @@ -39,7 +39,7 @@ atlas_depends_on_subdirs( PUBLIC atlas_add_component( InDetTrigPrepRawDataFormat src/*.cxx src/components/*.cxx - LINK_LIBRARIES Identifier GaudiKernel InDetPrepRawData TrigInterfacesLib AthenaKernel StoreGateLib SGtests AtlasDetDescr IRegionSelector InDetByteStreamErrors ByteStreamCnvSvcBaseLib TRT_ConditionsServicesLib InDetIdentifier InDetReadoutGeometry TRT_ReadoutGeometry InDetRawData SiClusterizationToolLib TrkTrack TrigSteeringEvent TrigTimeAlgsLib ) + LINK_LIBRARIES Identifier GaudiKernel InDetPrepRawData TrigInterfacesLib AthenaKernel StoreGateLib SGtests AtlasDetDescr IRegionSelector InDetByteStreamErrors ByteStreamCnvSvcBaseLib TRT_ConditionsServicesLib InDetIdentifier InDetReadoutGeometry TRT_ReadoutGeometry InDetRawData SiClusterizationToolLib TrkTrack TrigSteeringEvent TrigTimeAlgsLib PixelConditionsToolsLib TRT_DriftCircleToolLib InDetTrigToolInterfacesLib SCT_ConditionsData ) # Install files from the package: atlas_install_headers( InDetTrigPrepRawDataFormat ) -- GitLab From a347291e5d02ece081306245a318ee8968d12550 Mon Sep 17 00:00:00 2001 From: Tadej Novak <tadej.novak@cern.ch> Date: Wed, 29 Jul 2020 11:07:22 +0200 Subject: [PATCH 397/459] Migrate new hybrid overlay transform to OverlayConfiguration --- .../scripts/Overlay_tf.py | 50 --- .../share/skeleton.Overlay_tf.py | 243 --------------- .../OverlayConfiguration/CMakeLists.txt | 5 +- .../python/OverlayTransformHelpers.py | 72 +++++ .../scripts/Overlay_tf.py | 55 ++++ .../share/skeleton_LegacyOverlay.py | 287 ++++++++++++++++++ 6 files changed, 417 insertions(+), 295 deletions(-) delete mode 100755 Event/EventOverlay/EventOverlayJobTransforms/scripts/Overlay_tf.py delete mode 100644 Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.Overlay_tf.py create mode 100644 Simulation/Overlay/OverlayConfiguration/python/OverlayTransformHelpers.py create mode 100755 Simulation/Overlay/OverlayConfiguration/scripts/Overlay_tf.py create mode 100644 Simulation/Overlay/OverlayConfiguration/share/skeleton_LegacyOverlay.py diff --git a/Event/EventOverlay/EventOverlayJobTransforms/scripts/Overlay_tf.py b/Event/EventOverlay/EventOverlayJobTransforms/scripts/Overlay_tf.py deleted file mode 100755 index 8a0cea69531..00000000000 --- a/Event/EventOverlay/EventOverlayJobTransforms/scripts/Overlay_tf.py +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env python - -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration - -""" -Run overlay between either pre-mixed MC background RDO or zero-bias data RDO and hard scatter HITS -""" - -import sys -import time - -# Setup core logging here -from PyJobTransforms.trfLogger import msg -msg.info('logging set in %s' % sys.argv[0]) - -from PyJobTransforms.transform import transform -from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments, addTriggerArguments -from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace - -# Prodsys hack... -ListOfDefaultPositionalKeys=['--AFPOn', '--ALFAOn', '--AMIConfig', '--AMITag', '--AddCaloDigi', '--DBRelease', '--FwdRegionOn', '--LucidOn', '--ReadByteStream', '--ZDCOn', '--argJSON', '--asetup', '--athena', '--athenaMPMergeTargetSize', '--athenaopts', '--attempt', '--beamType', '--checkEventCount', '--command', '--conditionsTag', '--digiRndmSvc', '--digiSeedOffset1', '--digiSeedOffset2', '--digiSteeringConf', '--doAllNoise', '--dumpJSON', '--dumpPickle', '--env', '--eventAcceptanceEfficiency', '--execOnly', '--fSampltag', '--fileValidation', '--geometryVersion', '--ignoreErrors', '--ignoreFiles', '--ignorePatterns', '--imf', '--inputFileValidation', '--inputHITSFile', '--inputRDO_BKGFile', '--jobid', '--maxEvents', '--orphanKiller', '--outputFileValidation', '--outputRDOFile', '--outputRDO_FILTFile', '--outputRDO_SGNLFile', '--parallelFileValidation', '--postExec', '--postInclude', '--preExec', '--preInclude', '--reportName', '--reportType', '--runNumber', '--samplingFractionDbTag', '--showGraph', '--showPath', '--showSteps', '--skipEvents', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation', '--steering', '--taskid', '--tcmalloc', '--tmpRDO', '--tmpRDO_FILT', '--triggerConfig', '--valgrind', '--valgrindbasicopts', '--valgrindextraopts'] - -@stdTrfExceptionHandler -@sigUsrStackTrace - -def main(): - - msg.info('This is %s' % sys.argv[0]) - - trf = getTransform() - trf.parseCmdLineArgs(sys.argv[1:]) - trf.execute() - trf.generateReport() - - msg.info("%s stopped at %s, trf exit code %d" % (sys.argv[0], time.asctime(), trf.exitCode)) - sys.exit(trf.exitCode) - -def getTransform(): - executorSet = set() - from EventOverlayJobTransforms.overlayTransformUtils import addOverlayArguments, addOverlaySubstep - addOverlaySubstep(executorSet) - trf = transform(executor = executorSet, description = 'ATLAS Overlay transform. Inputs must be HITS. Outputs must be RDO.') - addAthenaArguments(trf.parser) - addDetectorArguments(trf.parser) - addTriggerArguments(trf.parser, addTrigFilter=False) - addOverlayArguments(trf.parser) - return trf - -if __name__ == '__main__': - main() diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.Overlay_tf.py b/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.Overlay_tf.py deleted file mode 100644 index 5900f11b765..00000000000 --- a/Event/EventOverlay/EventOverlayJobTransforms/share/skeleton.Overlay_tf.py +++ /dev/null @@ -1,243 +0,0 @@ -# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration - -#------------------------------------- -# Common data and MC overlay skeleton -#------------------------------------- -from AthenaCommon.Logging import logging -OverlayLog = logging.getLogger('overlay') -OverlayLog.info('****************** STARTING OVERLAY *****************') - -OverlayLog.info('**** Transformation run arguments') -OverlayLog.info(str(runArgs)) - -# PerfMon -from PerfMonComps.PerfMonFlags import jobproperties as pm -pm.PerfMonFlags.doMonitoring = True # to enable monitoring -pm.PerfMonFlags.doFastMon = True # to only enable a lightweight monitoring - -# Pre-exec -if hasattr(runArgs, "preExec") and runArgs.preExec != 'NONE': - for cmd in runArgs.preExec: - exec(cmd) - -# Pre-include -if hasattr(runArgs, 'preInclude'): - for cf in runArgs.preInclude: - include(cf) - -#---------------------------- -# Set flags from job options -#---------------------------- -from AthenaCommon.GlobalFlags import globalflags -from Digitization.DigitizationFlags import digitizationFlags -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -from OverlayCommonAlgs.OverlayFlags import overlayFlags - -# TODO: handle MC and data overlay in the same transform -globalflags.isOverlay.set_Value_and_Lock(True) -globalflags.DataSource.set_Value_and_Lock('geant4') - -overlayFlags.isDataOverlay.set_Value_and_Lock(False) -# TODO: temporarily force MT -overlayFlags.isOverlayMT.set_Value_and_Lock(True) - -# Common athena flags -if hasattr(runArgs, "skipEvents"): - athenaCommonFlags.SkipEvents.set_Value_and_Lock(runArgs.skipEvents) -if hasattr(runArgs, "maxEvents"): - athenaCommonFlags.EvtMax.set_Value_and_Lock(runArgs.maxEvents) - -if hasattr(runArgs, "inputHITSFile"): - athenaCommonFlags.PoolHitsInput.set_Value_and_Lock(runArgs.inputHITSFile) -else: - raise RuntimeError("No input HITS file defined") - -if hasattr(runArgs, "inputRDO_BKGFile"): - athenaCommonFlags.PoolRDOInput.set_Value_and_Lock(runArgs.inputRDO_BKGFile) -else: - raise RuntimeError("No input RDO file defined") - -if hasattr(runArgs, "outputRDOFile"): - athenaCommonFlags.PoolRDOOutput.set_Value_and_Lock(runArgs.outputRDOFile) -else: - raise RuntimeError("No output RDO file defined") - -if hasattr(runArgs, "outputRDO_SGNLFile"): - overlayFlags.signalOnlyOutput.set_Value_and_Lock(True) - overlayFlags.PoolSignalRDOOutput.set_Value_and_Lock(runArgs.outputRDO_SGNLFile) -else: - overlayFlags.signalOnlyOutput.set_Value_and_Lock(False) - -if hasattr(runArgs, "geometryVersion"): - globalflags.DetDescrVersion.set_Value_and_Lock(runArgs.geometryVersion) -if hasattr(runArgs, "conditionsTag"): - globalflags.ConditionsTag.set_Value_and_Lock(runArgs.conditionsTag) - -# Digitization flags -if hasattr(runArgs, "digiSeedOffset1"): - digitizationFlags.rndmSeedOffset1 = int(runArgs.digiSeedOffset1) -if hasattr(runArgs, "digiSeedOffset2"): - digitizationFlags.rndmSeedOffset2 = int(runArgs.digiSeedOffset2) -if hasattr(runArgs, "samplingFractionDbTag"): - digitizationFlags.physicsList = runArgs.samplingFractionDbTag -if hasattr(runArgs, "digiRndmSvc"): - digitizationFlags.rndmSvc = runArgs.digiRndmSvc -if hasattr(runArgs, "AddCaloDigi"): - digitizationFlags.experimentalDigi += ["AddCaloDigi"] - -# TODO: investigate why this is even needed -from RecExConfig.RecFlags import rec -rec.projectName = 'IS_SIMULATION' - - -#---------------------------- -# Setup detector flags -#---------------------------- -OverlayLog.info("================ DetFlags ================ ") -if 'DetFlags' in dir(): - OverlayLog.warning("DetFlags already defined! This means DetFlags should have been fully configured already..") -else: - from AthenaCommon.DetFlags import DetFlags - DetFlags.all_setOn() - DetFlags.bpipe_setOff() - DetFlags.FTK_setOff() - - if hasattr(runArgs, "triggerConfig") and runArgs.triggerConfig == "NONE": - DetFlags.LVL1_setOff() - else: - DetFlags.LVL1_setOn() - - DetFlags.digitize.LVL1_setOff() - -from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags -if not MuonGeometryFlags.hasCSC(): DetFlags.CSC_setOff() -if not MuonGeometryFlags.hasSTGC(): DetFlags.sTGC_setOff() -if not MuonGeometryFlags.hasMM(): DetFlags.Micromegas_setOff() - -# TODO: need to do it better -# DetFlags.makeRIO.all_setOff() # needed for MT TRT conditions -DetFlags.pileup.all_setOff() -DetFlags.readRDOBS.all_setOff() -DetFlags.readRDOPool.all_setOff() -DetFlags.readRIOBS.all_setOff() -DetFlags.readRIOPool.all_setOff() -DetFlags.simulate.all_setOff() -DetFlags.writeBS.all_setOff() -DetFlags.writeRIOPool.all_setOff() - -DetFlags.Print() - - -#------------------------------------------------------------- -# Read Simulation MetaData (unless override flag set to True) -# ------------------------------------------------------------ -if 'ALL' in digitizationFlags.overrideMetadata.get_Value(): - OverlayLog.info("Skipping input file MetaData check.") -else: - from EventOverlayJobTransforms.OverlayReadMetaData import readInputFileMetadata - readInputFileMetadata() - -DetFlags.Print() - -#------------------------- -# Conditions -#------------------------- -from IOVDbSvc.CondDB import conddb -if hasattr(runArgs, 'conditionsTag') and runArgs.conditionsTag not in ['', 'NONE']: - globalflags.ConditionsTag = runArgs.conditionsTag - if len(globalflags.ConditionsTag()) != 0: - conddb.setGlobalTag(globalflags.ConditionsTag()) - - -# LVL1 Trigger Menu -if hasattr(runArgs, "triggerConfig") and runArgs.triggerConfig!="NONE": - # LVL1 Trigger Menu - # PJB 9/2/2009 Setup the new triggerConfig flags here - from TriggerJobOpts.TriggerFlags import TriggerFlags - triggerArg = runArgs.triggerConfig - #if not prefixed with LVL1: add it here - Args = triggerArg.split(":") - if Args[0] != "LVL1": - TriggerFlags.triggerConfig ="LVL1:"+triggerArg - else: - TriggerFlags.triggerConfig =triggerArg - overlaylog.info( 'triggerConfig argument is: %s ', TriggerFlags.triggerConfig.get_Value() ) - from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter - cfg = TriggerConfigGetter("HIT2RDO") - - -#------------------------- -# Configuration -#------------------------- -OverlayLog.info("================ Configure ================= ") - -# Initialise overlay -include("EventOverlayJobTransforms/ConfiguredOverlayMT_jobOptions.py") - -# load the input properly -include("EventOverlayJobTransforms/OverlayInput_jobOptions.py") - -if DetFlags.overlay.Truth_on(): - include("EventOverlayJobTransforms/TruthOverlay_jobOptions.py") - -if DetFlags.overlay.BCM_on() or DetFlags.overlay.Lucid_on(): - include ( "EventOverlayJobTransforms/BeamOverlay_jobOptions.py" ) - -if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay.TRT_on(): - include("EventOverlayJobTransforms/InnerDetectorOverlay_jobOptions.py") - -if DetFlags.overlay.LAr_on() or DetFlags.overlay.Tile_on(): - include ( "EventOverlayJobTransforms/CaloOverlay_jobOptions.py" ) - -if (MuonGeometryFlags.hasCSC() and DetFlags.overlay.CSC_on()) or DetFlags.overlay.MDT_on() or DetFlags.overlay.RPC_on() or DetFlags.overlay.TGC_on() or (MuonGeometryFlags.hasSTGC() and DetFlags.overlay.sTGC_on()) or (MuonGeometryFlags.hasMM() and DetFlags.overlay.Micromegas_on()): - include ( "EventOverlayJobTransforms/MuonOverlay_jobOptions.py" ) - -if DetFlags.overlay.LVL1_on(): - include ( "EventOverlayJobTransforms/Level1Overlay_jobOptions.py" ) - -# save the overlay output -include("EventOverlayJobTransforms/OverlayOutput_jobOptions.py") - -# save the signal-only output -if overlayFlags.signalOnlyOutput() == True: - include("EventOverlayJobTransforms/SignalOutput_jobOptions.py") - - -#------------------------- -# Random numbers -#------------------------- -# TODO: move somewhere more appropriate -from AthenaCommon.ConfigurableDb import getConfigurable -from AthenaCommon.AppMgr import ServiceMgr -ServiceMgr += getConfigurable(digitizationFlags.rndmSvc.get_Value())() -digitizationFlags.rndmSeedList.addtoService() -digitizationFlags.rndmSeedList.printSeeds() - - -#------------------------- -# Logging -#------------------------- -ServiceMgr.MessageSvc.OutputLevel = INFO -ServiceMgr.MessageSvc.Format = "% F%45W%S%5W%e%s%7W%R%T %0W%M" - -# Post-include -if hasattr(runArgs, "postInclude"): - for fragment in runArgs.postInclude: - include(fragment) - -# Post-exec -if hasattr(runArgs, "postExec") and runArgs.postExec != 'NONE': - for cmd in runArgs.postExec: - exec(cmd) - -# Patch /TagInfo metadata container -# TODO: move somewhere more appropriate -ServiceMgr.TagInfoMgr.ExtraTagValuePairs.update(overlayFlags.extraTagInfoPairs.get_Value()) - -if hasattr(runArgs, 'AMITag'): - if runArgs.AMITag != "NONE": - ServiceMgr.TagInfoMgr.ExtraTagValuePairs.update({"AMITag" : runArgs.AMITag}) - -#================================================================ -OverlayLog.info("\nOverlay: OutputStream = \n" + str(outStream)) -OverlayLog.info("\nOverlay: ServiceMgr = \n" + str(ServiceMgr)) diff --git a/Simulation/Overlay/OverlayConfiguration/CMakeLists.txt b/Simulation/Overlay/OverlayConfiguration/CMakeLists.txt index 6c078af2f3c..0749929896c 100644 --- a/Simulation/Overlay/OverlayConfiguration/CMakeLists.txt +++ b/Simulation/Overlay/OverlayConfiguration/CMakeLists.txt @@ -5,11 +5,12 @@ # Declare the package name: atlas_subdir( OverlayConfiguration ) -# External dependencies: - # Install files from the package: +atlas_install_joboptions( share/*.py + POST_BUILD_CMD ${ATLAS_FLAKE8} ) atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) +atlas_install_runtime( scripts/*.py ) atlas_install_runtime( test/OverlayTest.py ) # Setup and run tests diff --git a/Simulation/Overlay/OverlayConfiguration/python/OverlayTransformHelpers.py b/Simulation/Overlay/OverlayConfiguration/python/OverlayTransformHelpers.py new file mode 100644 index 00000000000..a0cbaa1dd8b --- /dev/null +++ b/Simulation/Overlay/OverlayConfiguration/python/OverlayTransformHelpers.py @@ -0,0 +1,72 @@ +"""Main overlay transform configuration helpers + +Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +""" + +from PyJobTransforms.trfArgClasses import argBSFile, argFactory, argRDOFile, argSubstep +from PyJobTransforms.trfExe import athenaExecutor + + +def addOverlayTrfArgs(parser): + """Add common overlay command-line parser arguments.""" + parser.defineArgGroup('Overlay', 'Common Overlay Options') + parser.add_argument('--outputRDO_SGNLFile', nargs='+', + type=argFactory(argRDOFile, io='output'), + help='The output RDO file of the MC signal alone', + group='Overlay') + + +def addDataOverlayTrfArgs(parser): + """Add data overlay command-line parser arguments.""" + parser.defineArgGroup('DataOverlay', 'Data Overlay Options') + parser.add_argument('--inputBS_SKIMFile', nargs='+', + type=argFactory(argBSFile, io='input'), + help='Input skimmed RAW BS for pileup overlay', + group='DataOverlay') + parser.add_argument('--fSampltag', + type=argFactory(argSubstep, defaultSubstep='overlay'), + help='The cool tag for /LAR/ElecCalib/fSampl/Symmetry, see https://twiki.cern.ch/twiki/bin/viewauth/Atlas/LArCalibMCPoolCool', + group='DataOverlay') + + +def addMCOverlayTrfArgs(parser): + """Add MC overlay command-line parser arguments.""" + parser.defineArgGroup('MCOverlay', 'MC Overlay Options') + parser.add_argument('--inputRDO_BKGFile', nargs='+', + type=argFactory(argRDOFile, io='input'), + help='Input background RDO for MC+MC overlay', + group='MCOverlay') + + +def addOverlayArguments(parser): + """Add all overlay command-line parser arguments.""" + # TODO: are forward detectors really needed? + from SimuJobTransforms.simTrfArgs import addBasicDigiArgs # , addForwardDetTrfArgs + addBasicDigiArgs(parser) + # addForwardDetTrfArgs(parser) + addOverlayTrfArgs(parser) + addMCOverlayTrfArgs(parser) + addDataOverlayTrfArgs(parser) + + +def addOverlaySubstep(executor_set, in_reco_chain=False): + executor = athenaExecutor(name='Overlay', + skeletonFile='OverlayConfiguration/skeleton_LegacyOverlay.py', + substep='overlay', + tryDropAndReload=False, + perfMonFile='ntuple.pmon.gz', + inData=['RDO_BKG', 'BS_SKIM', 'HITS'], + outData=['RDO', 'RDO_SGNL']) + + if in_reco_chain: + executor.inData = [] + executor.outData = [] + + executor_set.add(executor) + + +def appendOverlaySubstep(trf, in_reco_chain=False): + """Add overlay transform substep.""" + executor = set() + addOverlaySubstep(executor, in_reco_chain) + trf.appendToExecutorSet(executor) diff --git a/Simulation/Overlay/OverlayConfiguration/scripts/Overlay_tf.py b/Simulation/Overlay/OverlayConfiguration/scripts/Overlay_tf.py new file mode 100755 index 00000000000..6723fc838a0 --- /dev/null +++ b/Simulation/Overlay/OverlayConfiguration/scripts/Overlay_tf.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python + +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +""" +Run overlay between either pre-mixed MC background RDO or zero-bias data RDO and hard scatter HITS +""" + +import sys +import time + +from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace +from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments, addTriggerArguments +from PyJobTransforms.transform import transform + +# Setup core logging here +from PyJobTransforms.trfLogger import msg +msg.info('logging set in %s', sys.argv[0]) + + +# Prodsys hack... +ListOfDefaultPositionalKeys = ['--AMIConfig', '--AMITag', '--AddCaloDigi', '--CA', '--DBRelease', '--PileUpPremixing', '--argJSON', '--asetup', '--athena', '--athenaMPEventsBeforeFork', '--athenaMPMergeTargetSize', '--athenaMPStrategy', '--athenaMPUseEventOrders', '--athenaopts', '--attempt', '--beamType', '--checkEventCount', '--command', '--conditionsTag', '--digiRndmSvc', '--digiSeedOffset1', '--digiSeedOffset2', '--digiSteeringConf', '--doAllNoise', '--dumpJSON', '--dumpPickle', '--env', '--eventAcceptanceEfficiency', '--eventService', '--execOnly', '--fSampltag', '--fileValidation', '--geometryVersion', '--ignoreErrors', '--ignoreFiles', + '--ignorePatterns', '--imf', '--inputBS_SKIMFile', '--inputFileValidation', '--inputHITSFile', '--inputRDO_BKGFile', '--jobid', '--maxEvents', '--multiprocess', '--multithreaded', '--outputFileValidation', '--outputRDOFile', '--outputRDO_FILTFile', '--outputRDO_SGNLFile', '--parallelFileValidation', '--postExec', '--postInclude', '--preExec', '--preInclude', '--reportName', '--reportType', '--runNumber', '--samplingFractionDbTag', '--sharedWriter', '--showGraph', '--showPath', '--showSteps', '--skipEvents', '--steering', '--taskid', '--tcmalloc', '--triggerConfig', '--valgrind', '--valgrindDefaultOpts', '--valgrindExtraOpts'] + + +@stdTrfExceptionHandler +@sigUsrStackTrace +def main(): + msg.info('This is %s', sys.argv[0]) + + trf = getTransform() + trf.parseCmdLineArgs(sys.argv[1:]) + trf.execute() + trf.generateReport() + + msg.info('%s stopped at %s, trf exit code %d', + sys.argv[0], time.asctime(), trf.exitCode) + sys.exit(trf.exitCode) + + +def getTransform(): + executor_set = set() + from OverlayConfiguration.OverlayTransformHelpers import addOverlayArguments, addOverlaySubstep + addOverlaySubstep(executor_set) + trf = transform(executor=executor_set, + description='ATLAS Overlay transform. Inputs must be HITS. Outputs must be RDO.') + addAthenaArguments(trf.parser) + addDetectorArguments(trf.parser) + addTriggerArguments(trf.parser, addTrigFilter=False) + addOverlayArguments(trf.parser) + return trf + + +if __name__ == '__main__': + main() diff --git a/Simulation/Overlay/OverlayConfiguration/share/skeleton_LegacyOverlay.py b/Simulation/Overlay/OverlayConfiguration/share/skeleton_LegacyOverlay.py new file mode 100644 index 00000000000..39a6f8798a1 --- /dev/null +++ b/Simulation/Overlay/OverlayConfiguration/share/skeleton_LegacyOverlay.py @@ -0,0 +1,287 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +# ------------------------------------- +# Common data and MC overlay skeleton +# ------------------------------------- +# flake8 hack +overlayArgs = runArgs # noqa F821 + +from AthenaCommon.Logging import logging +logOverlay = logging.getLogger('Overlay') +logOverlay.info('****************** STARTING OVERLAY *****************') + +logOverlay.info('**** Transformation run arguments') +logOverlay.info(str(overlayArgs)) + +# PerfMon +from PerfMonComps.PerfMonFlags import jobproperties as pm +pm.PerfMonFlags.doMonitoring = True # to enable monitoring +pm.PerfMonFlags.doFastMon = True # to only enable a lightweight monitoring + +# Pre-exec +if hasattr(overlayArgs, 'preExec') and overlayArgs.preExec != 'NONE': + for cmd in overlayArgs.preExec: + exec(cmd) + +# Pre-include +if hasattr(overlayArgs, 'preInclude'): + for cf in overlayArgs.preInclude: + include(cf) # noqa F821 + +# ---------------------------- +# Set flags from job options +# ---------------------------- +from AthenaCommon.GlobalFlags import globalflags +from AthenaCommon.AthenaCommonFlags import athenaCommonFlags +from Digitization.DigitizationFlags import digitizationFlags +from OverlayCommonAlgs.OverlayFlags import overlayFlags + +hasRDO_BKGInput = hasattr(overlayArgs, 'inputRDO_BKGFile') +hasBS_SKIMInput = hasattr(overlayArgs, 'inputBS_SKIMFile') + +if hasRDO_BKGInput and hasBS_SKIMInput: + raise RuntimeError('Both RDO_BKG and BS_SKIM are defined') +if not hasRDO_BKGInput and not hasBS_SKIMInput: + raise RuntimeError('Define one of RDO_BKG and BS_SKIM file types') + +# Set overlay specifics +globalflags.isOverlay.set_Value_and_Lock(True) +if hasRDO_BKGInput: + logOverlay.info('Running MC+MC overlay') + globalflags.DataSource.set_Value_and_Lock('geant4') +else: + logOverlay.info('Running MC+data overlay') + overlayFlags.isDataOverlay.set_Value_and_Lock(True) + globalflags.DataSource.set_Value_and_Lock('data') + globalflags.DetGeo = 'commis' # TODO: why? + globalflags.InputFormat.set_Value_and_Lock('bytestream') + + from AthenaCommon.BeamFlags import jobproperties + jobproperties.Beam.beamType.set_Value_and_Lock('collisions') + +overlayFlags.isDataOverlay.set_Value_and_Lock(False) +# TODO: temporarily force MT +overlayFlags.isOverlayMT.set_Value_and_Lock(True) + +# Common athena flags +if hasattr(overlayArgs, 'skipEvents'): + athenaCommonFlags.SkipEvents.set_Value_and_Lock(overlayArgs.skipEvents) +if hasattr(overlayArgs, 'maxEvents'): + athenaCommonFlags.EvtMax.set_Value_and_Lock(overlayArgs.maxEvents) + +if hasattr(overlayArgs, 'inputHITSFile'): + athenaCommonFlags.PoolHitsInput.set_Value_and_Lock(overlayArgs.inputHITSFile) +else: + raise RuntimeError('No input HITS file defined') + +if hasattr(overlayArgs, 'inputRDO_BKGFile'): + athenaCommonFlags.PoolRDOInput.set_Value_and_Lock(overlayArgs.inputRDO_BKGFile) +elif hasattr(overlayArgs, 'inputBS_SKIMFile'): + athenaCommonFlags.FilesInput.set_Value_and_Lock(overlayArgs.inputBS_SKIMFile) + +if hasattr(overlayArgs, 'outputRDOFile'): + athenaCommonFlags.PoolRDOOutput.set_Value_and_Lock(overlayArgs.outputRDOFile) +else: + raise RuntimeError('No output RDO file defined') + +if hasattr(overlayArgs, 'outputRDO_SGNLFile'): + overlayFlags.signalOnlyOutput.set_Value_and_Lock(True) + overlayFlags.PoolSignalRDOOutput.set_Value_and_Lock( + overlayArgs.outputRDO_SGNLFile) +else: + overlayFlags.signalOnlyOutput.set_Value_and_Lock(False) + +if hasattr(overlayArgs, 'geometryVersion'): + globalflags.DetDescrVersion.set_Value_and_Lock(overlayArgs.geometryVersion) +if hasattr(overlayArgs, 'conditionsTag'): + globalflags.ConditionsTag.set_Value_and_Lock(overlayArgs.conditionsTag) + +# Digitization flags +if hasattr(overlayArgs, 'digiSeedOffset1'): + digitizationFlags.rndmSeedOffset1 = int(overlayArgs.digiSeedOffset1) +if hasattr(overlayArgs, 'digiSeedOffset2'): + digitizationFlags.rndmSeedOffset2 = int(overlayArgs.digiSeedOffset2) +if hasattr(overlayArgs, 'samplingFractionDbTag'): + digitizationFlags.physicsList = overlayArgs.samplingFractionDbTag +if hasattr(overlayArgs, 'digiRndmSvc'): + digitizationFlags.rndmSvc = overlayArgs.digiRndmSvc +if hasattr(overlayArgs, 'AddCaloDigi'): + digitizationFlags.experimentalDigi += ['AddCaloDigi'] + +# LAr flags +if overlayFlags.isDataOverlay(): + from LArConditionsCommon.LArCondFlags import larCondFlags + larCondFlags.LArCoolChannelSelection.set_Value_and_Lock('') + larCondFlags.useShape.set_Value_and_Lock(True) + larCondFlags.OFCShapeFolder.set_Value_and_Lock('') + if hasattr(overlayArgs, 'fSampltag'): + larCondFlags.LArfSamplTag.set_Value_and_Lock(overlayArgs.fSampltag + digitizationFlags.physicsList.get_Value()) + else: + raise RuntimeError ('--fSampltag not specified on command-line - see --help message') + +# TODO: investigate why this is even needed +from RecExConfig.RecFlags import rec +rec.projectName = 'IS_SIMULATION' + + +# ---------------------------- +# Setup detector flags +# ---------------------------- +logOverlay.info('================ DetFlags ================ ') +if 'DetFlags' in dir(): + logOverlay.warning( + 'DetFlags already defined! This means DetFlags should have been fully configured already..') +else: + from AthenaCommon.DetFlags import DetFlags + DetFlags.all_setOn() + DetFlags.bpipe_setOff() + DetFlags.FTK_setOff() + + if hasattr(overlayArgs, 'triggerConfig') and overlayArgs.triggerConfig == 'NONE': + DetFlags.LVL1_setOff() + else: + DetFlags.LVL1_setOn() + + DetFlags.digitize.LVL1_setOff() + +from AtlasGeoModel.MuonGMJobProperties import MuonGeometryFlags +if not MuonGeometryFlags.hasCSC(): + DetFlags.CSC_setOff() +if not MuonGeometryFlags.hasSTGC(): + DetFlags.sTGC_setOff() +if not MuonGeometryFlags.hasMM(): + DetFlags.Micromegas_setOff() + +# TODO: need to do it better +# DetFlags.makeRIO.all_setOff() # needed for MT TRT conditions +DetFlags.pileup.all_setOff() +if not overlayFlags.isDataOverlay(): + DetFlags.readRDOBS.all_setOff() + DetFlags.readRIOBS.all_setOff() + DetFlags.readRIOPool.all_setOff() +DetFlags.readRDOPool.all_setOff() +DetFlags.simulate.all_setOff() +DetFlags.writeBS.all_setOff() +DetFlags.writeRIOPool.all_setOff() + +DetFlags.Print() + + +# ------------------------------------------------------------- +# Read Simulation MetaData (unless override flag set to True) +# ------------------------------------------------------------ +if 'ALL' in digitizationFlags.overrideMetadata.get_Value(): + logOverlay.info('Skipping input file MetaData check.') +else: + from EventOverlayJobTransforms.OverlayReadMetaData import readInputFileMetadata + readInputFileMetadata() + +DetFlags.Print() + +# ------------------------- +# Conditions +# ------------------------- +from IOVDbSvc.CondDB import conddb +if hasattr(overlayArgs, 'conditionsTag') and overlayArgs.conditionsTag not in ['', 'NONE']: + globalflags.ConditionsTag = overlayArgs.conditionsTag + if len(globalflags.ConditionsTag()) != 0: + conddb.setGlobalTag(globalflags.ConditionsTag()) + + +# LVL1 Trigger Menu +if hasattr(overlayArgs, 'triggerConfig') and overlayArgs.triggerConfig != 'NONE': + # LVL1 Trigger Menu + # PJB 9/2/2009 Setup the new triggerConfig flags here + from TriggerJobOpts.TriggerFlags import TriggerFlags + triggerArg = overlayArgs.triggerConfig + # if not prefixed with LVL1: add it here + Args = triggerArg.split(':') + if Args[0] != 'LVL1': + TriggerFlags.triggerConfig = 'LVL1:'+triggerArg + else: + TriggerFlags.triggerConfig = triggerArg + logOverlay.info('triggerConfig argument is: %s ', + TriggerFlags.triggerConfig.get_Value()) + from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter + cfg = TriggerConfigGetter('HIT2RDO') + + +# ------------------------- +# Configuration +# ------------------------- +logOverlay.info('================ Configure ================= ') + +# Initialise overlay +include('EventOverlayJobTransforms/ConfiguredOverlayMT_jobOptions.py') # noqa F821 + +# load the input properly +include('EventOverlayJobTransforms/OverlayInput_jobOptions.py') # noqa F821 + +if DetFlags.overlay.Truth_on(): + include('EventOverlayJobTransforms/TruthOverlay_jobOptions.py') # noqa F821 + +if DetFlags.overlay.BCM_on() or DetFlags.overlay.Lucid_on(): + include('EventOverlayJobTransforms/BeamOverlay_jobOptions.py') # noqa F821 + +if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay.TRT_on(): + include('EventOverlayJobTransforms/InnerDetectorOverlay_jobOptions.py') # noqa F821 + +if DetFlags.overlay.LAr_on() or DetFlags.overlay.Tile_on(): + include('EventOverlayJobTransforms/CaloOverlay_jobOptions.py') # noqa F821 + +if (MuonGeometryFlags.hasCSC() and DetFlags.overlay.CSC_on()) or DetFlags.overlay.MDT_on() or DetFlags.overlay.RPC_on() or DetFlags.overlay.TGC_on() or (MuonGeometryFlags.hasSTGC() and DetFlags.overlay.sTGC_on()) or (MuonGeometryFlags.hasMM() and DetFlags.overlay.Micromegas_on()): + include('EventOverlayJobTransforms/MuonOverlay_jobOptions.py') # noqa F821 + +if DetFlags.overlay.LVL1_on(): + include('EventOverlayJobTransforms/Level1Overlay_jobOptions.py') # noqa F821 + +# save the overlay output +include('EventOverlayJobTransforms/OverlayOutput_jobOptions.py') # noqa F821 + +# save the signal-only output +if overlayFlags.signalOnlyOutput(): + include('EventOverlayJobTransforms/SignalOutput_jobOptions.py') # noqa F821 + + +# ------------------------- +# Random numbers +# ------------------------- +# TODO: move somewhere more appropriate +from AthenaCommon.ConfigurableDb import getConfigurable +from AthenaCommon.AppMgr import ServiceMgr +ServiceMgr += getConfigurable(digitizationFlags.rndmSvc.get_Value())() +digitizationFlags.rndmSeedList.addtoService() +digitizationFlags.rndmSeedList.printSeeds() + + +# ------------------------- +# Logging +# ------------------------- +from AthenaCommon.Constants import INFO +ServiceMgr.MessageSvc.OutputLevel = INFO +ServiceMgr.MessageSvc.Format = '% F%45W%S%5W%e%s%7W%R%T %0W%M' + +# Post-include +if hasattr(overlayArgs, 'postInclude'): + for fragment in overlayArgs.postInclude: + include(fragment) # noqa F821 + +# Post-exec +if hasattr(overlayArgs, 'postExec') and overlayArgs.postExec != 'NONE': + for cmd in overlayArgs.postExec: + exec(cmd) + +# Patch /TagInfo metadata container +# TODO: move somewhere more appropriate +if not overlayFlags.isDataOverlay(): + ServiceMgr.TagInfoMgr.ExtraTagValuePairs.update( + overlayFlags.extraTagInfoPairs.get_Value()) + +if hasattr(overlayArgs, 'AMITag'): + if overlayArgs.AMITag != 'NONE': + ServiceMgr.TagInfoMgr.ExtraTagValuePairs.update( + {'AMITag': overlayArgs.AMITag}) + +# ================================================================ +logOverlay.info('\nOverlay: OutputStream = \n' + str(outStream)) # noqa F821 +logOverlay.info('\nOverlay: ServiceMgr = \n' + str(ServiceMgr)) -- GitLab From 3ddb3f338c622825eeea55b20e51eba65c845920 Mon Sep 17 00:00:00 2001 From: Tadej Novak <tadej.novak@cern.ch> Date: Wed, 29 Jul 2020 11:07:56 +0200 Subject: [PATCH 398/459] Make legacy data overlay configuration run in MT mode --- .../python/ReadAthenaPoolDouble.py | 44 ++++++++++++++++--- .../share/BeamOverlay_jobOptions.py | 7 ++- .../share/CaloOverlay_jobOptions.py | 31 +++++++++---- .../share/ConfiguredOverlayMT_jobOptions.py | 23 +++++++--- .../share/InnerDetectorOverlay_jobOptions.py | 21 ++++++--- .../MuonCnvExample/python/MuonReadBSConfig.py | 20 +++++++-- .../RecExCommon/share/BSRead_config.py | 2 +- 7 files changed, 116 insertions(+), 32 deletions(-) diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/python/ReadAthenaPoolDouble.py b/Database/AthenaPOOL/AthenaPoolCnvSvc/python/ReadAthenaPoolDouble.py index d864e50325c..dc683bc12cc 100644 --- a/Database/AthenaPOOL/AthenaPoolCnvSvc/python/ReadAthenaPoolDouble.py +++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/python/ReadAthenaPoolDouble.py @@ -48,8 +48,39 @@ def _configureReadAthenaPoolDouble(): if not hasattr (svcMgr.ToolSvc, 'IOVDbMetaDataTool'): svcMgr.ToolSvc += CfgMgr.IOVDbMetaDataTool() + # BS specifics + from OverlayCommonAlgs.OverlayFlags import overlayFlags + if overlayFlags.isDataOverlay(): + # Load ByteStreamEventStorageInputSvc + if not hasattr (svcMgr, 'ByteStreamInputSvc'): + svcMgr += CfgMgr.ByteStreamEventStorageInputSvc ("ByteStreamInputSvc", + EventInfoKey=overlayFlags.bkgPrefix() + "EventInfo") + + # Load ROBDataProviderSvc + if not hasattr (svcMgr, 'ROBDataProviderSvc'): + svcMgr += CfgMgr.ROBDataProviderSvc ("ROBDataProviderSvc") + + # Load ByteStreamCnvSvc + if not hasattr (svcMgr, 'ByteStreamCnvSvc'): + svcMgr += CfgMgr.ByteStreamCnvSvc ("ByteStreamCnvSvc") + + svcMgr.EventPersistencySvc.CnvServices += [ "ByteStreamCnvSvc" ] + + # Add in ByteStreamAddressProviderSvc + if not hasattr (svcMgr, 'ByteStreamAddressProviderSvc'): + svcMgr += CfgMgr.ByteStreamAddressProviderSvc ("ByteStreamAddressProviderSvc") + svcMgr.ProxyProviderSvc.ProviderNames += [ "ByteStreamAddressProviderSvc" ] + + # Enable ByteStream to read MetaData + svcMgr.MetaDataSvc.MetaDataTools += [ "ByteStreamMetadataTool" ] + if not hasattr (svcMgr.ToolSvc, 'ByteStreamMetadataTool'): + svcMgr.ToolSvc += CfgMgr.ByteStreamMetadataTool() + # Add in EventSelector - svcMgr += CfgMgr.EventSelectorAthenaPool("SecondaryEventSelector", IsSecondary=True) + if overlayFlags.isDataOverlay(): + svcMgr += CfgMgr.EventSelectorByteStream("SecondaryEventSelector", IsSecondary=True, ByteStreamInputSvc="ByteStreamInputSvc") + else: + svcMgr += CfgMgr.EventSelectorAthenaPool("SecondaryEventSelector", IsSecondary=True) svcMgr += CfgMgr.DoubleEventSelectorAthenaPool("DoubleEventSelector") theApp.EvtSel = "DoubleEventSelectorAthenaPool/DoubleEventSelector" @@ -58,11 +89,12 @@ def _configureReadAthenaPoolDouble(): svcMgr += CfgMgr.AthenaPoolAddressProviderSvc ("AthenaPoolAddressProviderSvcPrimary") svcMgr.ProxyProviderSvc.ProviderNames += [ "AthenaPoolAddressProviderSvc/AthenaPoolAddressProviderSvcPrimary" ] svcMgr.AthenaPoolAddressProviderSvcPrimary.DataHeaderKey = "EventSelector" - svcMgr.AthenaPoolAddressProviderSvcPrimary.AttributeListKey = "Input" - if not hasattr (svcMgr, 'AthenaPoolAddressProviderSvcSecondary'): - svcMgr += CfgMgr.AthenaPoolAddressProviderSvc ("AthenaPoolAddressProviderSvcSecondary") - svcMgr.ProxyProviderSvc.ProviderNames += [ "AthenaPoolAddressProviderSvc/AthenaPoolAddressProviderSvcSecondary" ] - svcMgr.AthenaPoolAddressProviderSvcSecondary.DataHeaderKey = "SecondaryEventSelector" + if not overlayFlags.isDataOverlay(): + svcMgr.AthenaPoolAddressProviderSvcPrimary.AttributeListKey = "Input" + if not hasattr (svcMgr, 'AthenaPoolAddressProviderSvcSecondary'): + svcMgr += CfgMgr.AthenaPoolAddressProviderSvc ("AthenaPoolAddressProviderSvcSecondary") + svcMgr.ProxyProviderSvc.ProviderNames += [ "AthenaPoolAddressProviderSvc/AthenaPoolAddressProviderSvcSecondary" ] + svcMgr.AthenaPoolAddressProviderSvcSecondary.DataHeaderKey = "SecondaryEventSelector" # Set up DataVector/DataProxyStorage backwards compatibility. #from DataModelAthenaPool import DataModelCompatSvc diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/BeamOverlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/BeamOverlay_jobOptions.py index 8dfc573dad6..98881914bf5 100644 --- a/Event/EventOverlay/EventOverlayJobTransforms/share/BeamOverlay_jobOptions.py +++ b/Event/EventOverlay/EventOverlayJobTransforms/share/BeamOverlay_jobOptions.py @@ -5,10 +5,13 @@ from AthenaCommon.DetFlags import DetFlags if DetFlags.overlay.BCM_on(): if overlayFlags.isDataOverlay(): - job.InDetBCMRawDataProvider.RDOKey = overlayFlags.dataStore() + "+BCM_RDOs" + if overlayFlags.isOverlayMT(): + job.InDetBCMRawDataProvider.RDOKey = overlayFlags.bkgPrefix() + "BCM_RDOs" + else: + job.InDetBCMRawDataProvider.RDOKey = overlayFlags.dataStore() + "+BCM_RDOs" from AthenaCommon import CfgGetter job += CfgGetter.getAlgorithm("BCM_OverlayDigitization") job += CfgGetter.getAlgorithm("BCMOverlay") if DetFlags.overlay.Truth_on(): - job += CfgGetter.getAlgorithm("BCMSDOOverlay") \ No newline at end of file + job += CfgGetter.getAlgorithm("BCMSDOOverlay") diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/CaloOverlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/CaloOverlay_jobOptions.py index ecf033ea093..79a9ebf8093 100644 --- a/Event/EventOverlay/EventOverlayJobTransforms/share/CaloOverlay_jobOptions.py +++ b/Event/EventOverlay/EventOverlayJobTransforms/share/CaloOverlay_jobOptions.py @@ -34,11 +34,18 @@ if DetFlags.overlay.LAr_on(): #inhibit the reading of LArawChanels, they are created offline from the overlaid LArDigits: job.LArRawDataReadingAlg.LArRawChannelKey="" #Configure the reading of the background digits from ByteStream - job.LArRawDataReadingAlg.LArDigitKey=overlayFlags.dataStore()+"+FREE" + if overlayFlags.isOverlayMT(): + job.LArRawDataReadingAlg.LArDigitKey="FREE" + else: + job.LArRawDataReadingAlg.LArDigitKey=overlayFlags.dataStore()+"+FREE" except AttributeError: #in case the LArRawDataReadingAlg was not set up by someone: - job+=LArRawDataReadingAlg(LArRawChannelKey="", - LArDigitKey=overlayFlags.dataStore()+"+FREE") + if overlayFlags.isOverlayMT(): + job+=LArRawDataReadingAlg(LArRawChannelKey="", + LArDigitKey="FREE") + else: + job+=LArRawDataReadingAlg(LArRawChannelKey="", + LArDigitKey=overlayFlags.dataStore()+"+FREE") pass from LArDigitization.LArDigitGetter import LArDigitGetter @@ -84,10 +91,18 @@ if DetFlags.overlay.Tile_on(): theTileDigitsMaker.OnlyUseContainerName = False if overlayFlags.isDataOverlay(): theApp.Dlls += [ "TileByteStream"] - ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileRawChannelContainer/TileRawChannelCnt"] - ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileDigitsContainer/TileDigitsCnt"] - ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileL2Container/TileL2Cnt"] - ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileRawChannelContainer/MuRcvRawChCnt"] - ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileDigitsContainer/MuRcvDigitsCnt"] + + if overlayFlags.isOverlayMT(): + ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileRawChannelContainer/" + overlayFlags.bkgPrefix() + "TileRawChannelCnt"] + ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileDigitsContainer/" + overlayFlags.bkgPrefix() + "TileDigitsCnt"] + ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileL2Container/" + overlayFlags.bkgPrefix() + "TileL2Cnt"] + ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileRawChannelContainer/" + overlayFlags.bkgPrefix() + "MuRcvRawChCnt"] + ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileDigitsContainer/" + overlayFlags.bkgPrefix() + "MuRcvDigitsCnt"] + else: + ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileRawChannelContainer/TileRawChannelCnt"] + ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileDigitsContainer/TileDigitsCnt"] + ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileL2Container/TileL2Cnt"] + ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileRawChannelContainer/MuRcvRawChCnt"] + ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TileDigitsContainer/MuRcvDigitsCnt"] #-------------------- diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/ConfiguredOverlayMT_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/ConfiguredOverlayMT_jobOptions.py index e3e6e80525e..6efe458c0d1 100644 --- a/Event/EventOverlay/EventOverlayJobTransforms/share/ConfiguredOverlayMT_jobOptions.py +++ b/Event/EventOverlay/EventOverlayJobTransforms/share/ConfiguredOverlayMT_jobOptions.py @@ -27,12 +27,14 @@ try: from RecAlgs.RecAlgsConf import TimingAlg job += TimingAlg("OverlayTimerBegin", TimingObjOutputName="HITStoRDO_timings") -except: - OverlayLog.warning('Could not add TimingAlg, no timing info will be written out.') +except Exception: + from AthenaCommon.Logging import logging + logOverlay = logging.getLogger('Overlay') + logOverlay.warning('Could not add TimingAlg, no timing info will be written out.') # Copy over timings if needed -job += CfgGetter.getAlgorithm("CopyTimings") - +if not overlayFlags.isDataOverlay(): + job += CfgGetter.getAlgorithm("CopyTimings") #------------------------- # Double event selector @@ -40,8 +42,13 @@ job += CfgGetter.getAlgorithm("CopyTimings") import AthenaPoolCnvSvc.ReadAthenaPoolDouble from AthenaCommon.AppMgr import ServiceMgr from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -ServiceMgr.DoubleEventSelector.InputCollections = athenaCommonFlags.PoolRDOInput() -ServiceMgr.SecondaryEventSelector.InputCollections = athenaCommonFlags.PoolHitsInput() +if overlayFlags.isDataOverlay(): + ServiceMgr.DoubleEventSelector.InputCollections = athenaCommonFlags.PoolHitsInput() + ServiceMgr.SecondaryEventSelector.Input = athenaCommonFlags.FilesInput() + ServiceMgr.SecondaryEventSelector.ProcessBadEvent = True +else: + ServiceMgr.DoubleEventSelector.InputCollections = athenaCommonFlags.PoolRDOInput() + ServiceMgr.SecondaryEventSelector.InputCollections = athenaCommonFlags.PoolHitsInput() if athenaCommonFlags.SkipEvents.statusOn: ServiceMgr.DoubleEventSelector.SkipEvents = athenaCommonFlags.SkipEvents() @@ -91,3 +98,7 @@ if overlayFlags.processLegacyEventInfo() and not hasattr(job, "xAODMaker::EventI # Run the xAOD::EventInfo overlay job += CfgGetter.getAlgorithm("EventInfoOverlay") + +# Setup BS conversion for data overlay +if overlayFlags.isDataOverlay(): + include("RecExCommon/BSRead_config.py") diff --git a/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py b/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py index 3707ba1695c..3b8446676e9 100644 --- a/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py +++ b/Event/EventOverlay/EventOverlayJobTransforms/share/InnerDetectorOverlay_jobOptions.py @@ -20,7 +20,10 @@ if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay. job += CfgGetter.getAlgorithm("PixelSDOOverlay") if overlayFlags.isDataOverlay(): - job.InDetPixelRawDataProvider.RDOKey = overlayFlags.dataStore()+"+PixelRDOs" + if overlayFlags.isOverlayMT(): + job.InDetPixelRawDataProvider.RDOKey = overlayFlags.bkgPrefix()+"PixelRDOs" + else: + job.InDetPixelRawDataProvider.RDOKey = overlayFlags.dataStore()+"+PixelRDOs" #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "PixelRDO_Container/PixelRDOs" ] #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "Trk::PixelClusterContainer/PixelOnlineClusters" ] else: @@ -51,9 +54,14 @@ if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay. if overlayFlags.isDataOverlay(): include("InDetRecExample/InDetRecConditionsAccess.py") - job.InDetSCTRawDataProvider.RDOKey = overlayFlags.dataStore()+"+SCT_RDOs" - job.InDetSCTRawDataProvider.LVL1IDKey = overlayFlags.dataStore()+"+SCT_LVL1ID" - job.InDetSCTRawDataProvider.BCIDKey = overlayFlags.dataStore()+"+SCT_BCID" + if overlayFlags.isOverlayMT(): + job.InDetSCTRawDataProvider.RDOKey = overlayFlags.bkgPrefix()+"SCT_RDOs" + job.InDetSCTRawDataProvider.LVL1IDKey = overlayFlags.bkgPrefix()+"SCT_LVL1ID" + job.InDetSCTRawDataProvider.BCIDKey = overlayFlags.bkgPrefix()+"SCT_BCID" + else: + job.InDetSCTRawDataProvider.RDOKey = overlayFlags.dataStore()+"+SCT_RDOs" + job.InDetSCTRawDataProvider.LVL1IDKey = overlayFlags.dataStore()+"+SCT_LVL1ID" + job.InDetSCTRawDataProvider.BCIDKey = overlayFlags.dataStore()+"+SCT_BCID" #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "SCT_RDO_Container/SCT_RDOs" ] #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "Trk::SCT_ClusterContainer/SCT_OnlineClusters" ] @@ -77,7 +85,10 @@ if DetFlags.overlay.pixel_on() or DetFlags.overlay.SCT_on() or DetFlags.overlay. include("InDetRecExample/InDetRecConditionsAccess.py") if overlayFlags.isDataOverlay(): - job.InDetTRTRawDataProvider.RDOKey = overlayFlags.dataStore()+"+TRT_RDOs" + if overlayFlags.isOverlayMT(): + job.InDetTRTRawDataProvider.RDOKey = overlayFlags.bkgPrefix()+"TRT_RDOs" + else: + job.InDetTRTRawDataProvider.RDOKey = overlayFlags.dataStore()+"+TRT_RDOs" #ServiceMgr.ByteStreamAddressProviderSvc.TypeNames += [ "TRT_RDO_Container/TRT_RDOs" ] #from IOVDbSvc.CondDB import conddb diff --git a/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonReadBSConfig.py b/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonReadBSConfig.py index d141a9df088..30a246695cb 100644 --- a/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonReadBSConfig.py +++ b/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonReadBSConfig.py @@ -27,7 +27,10 @@ def MdtROD_Decoder(name="MdtROD_Decoder",**kwargs): def MdtRawDataProviderTool(name="MdtRawDataProviderTool",**kwargs): kwargs.setdefault("Decoder", "MdtROD_Decoder") if DetFlags.overlay.MDT_on() and overlayFlags.isDataOverlay(): - kwargs.setdefault("RdoLocation",overlayFlags.dataStore()+"+MDTCSM") + if overlayFlags.isOverlayMT(): + kwargs.setdefault("RdoLocation",overlayFlags.bkgPrefix()+"MDTCSM") + else: + kwargs.setdefault("RdoLocation",overlayFlags.dataStore()+"+MDTCSM") return CfgMgr.Muon__MDT_RawDataProviderToolMT(name,**kwargs) @@ -44,7 +47,10 @@ def RpcROD_Decoder(name="RpcROD_Decoder",**kwargs): def RpcRawDataProviderTool(name = "RpcRawDataProviderTool",**kwargs): kwargs.setdefault("Decoder", "RpcROD_Decoder") if DetFlags.overlay.RPC_on() and overlayFlags.isDataOverlay(): - kwargs.setdefault("RdoLocation", overlayFlags.dataStore()+"+RPCPAD") + if overlayFlags.isOverlayMT(): + kwargs.setdefault("RdoLocation", overlayFlags.bkgPrefix()+"RPCPAD") + else: + kwargs.setdefault("RdoLocation", overlayFlags.dataStore()+"+RPCPAD") return CfgMgr.Muon__RPC_RawDataProviderToolMT(name,**kwargs) @@ -61,7 +67,10 @@ def TgcROD_Decoder(name = "TgcROD_Decoder",**kwargs): def TgcRawDataProviderTool(name = "TgcRawDataProviderTool",**kwargs): kwargs.setdefault("Decoder", "TgcROD_Decoder") if DetFlags.overlay.TGC_on() and overlayFlags.isDataOverlay(): - kwargs.setdefault("RdoLocation", overlayFlags.dataStore()+"+TGCRDO") + if overlayFlags.isOverlayMT(): + kwargs.setdefault("RdoLocation", overlayFlags.bkgPrefix()+"TGCRDO") + else: + kwargs.setdefault("RdoLocation", overlayFlags.dataStore()+"+TGCRDO") return CfgMgr.Muon__TGC_RawDataProviderToolMT(name,**kwargs) @@ -77,7 +86,10 @@ def CscROD_Decoder(name = "CscROD_Decoder",**kwargs): def CscRawDataProviderTool(name = "CscRawDataProviderTool",**kwargs): kwargs.setdefault("Decoder", "CscROD_Decoder") if DetFlags.overlay.CSC_on() and overlayFlags.isDataOverlay(): - kwargs.setdefault("RdoLocation", overlayFlags.dataStore()+"+CSCRDO") + if overlayFlags.isOverlayMT(): + kwargs.setdefault("RdoLocation", overlayFlags.bkgPrefix()+"CSCRDO") + else: + kwargs.setdefault("RdoLocation", overlayFlags.dataStore()+"+CSCRDO") return CfgMgr.Muon__CSC_RawDataProviderToolMT(name,**kwargs) diff --git a/Reconstruction/RecExample/RecExCommon/share/BSRead_config.py b/Reconstruction/RecExample/RecExCommon/share/BSRead_config.py index 84739a1f3ba..46d1e16359f 100644 --- a/Reconstruction/RecExample/RecExCommon/share/BSRead_config.py +++ b/Reconstruction/RecExample/RecExCommon/share/BSRead_config.py @@ -15,7 +15,7 @@ svcMgr = theApp.serviceMgr() if not hasattr( svcMgr, "ByteStreamAddressProviderSvc" ): logBSRead.error("Can't find ByteStreamAddressProviderSvc!") -if not athenaCommonFlags.isOnline() and not rec.readTAG(): +if not athenaCommonFlags.isOnline() and not rec.readTAG() and not globalflags.isOverlay(): try: svcMgr.EventSelector.ProcessBadEvent=True except Exception: -- GitLab From cebe1a4d5be15cc006520f19979ea92f5c803e7b Mon Sep 17 00:00:00 2001 From: Tadej Novak <tadej.novak@cern.ch> Date: Wed, 29 Jul 2020 11:08:13 +0200 Subject: [PATCH 399/459] Add a test to compare old and new data overlay transform --- .../test/test_DataOverlay_Zmumu_Old_vs_New.sh | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100755 Simulation/Tests/OverlayTests/test/test_DataOverlay_Zmumu_Old_vs_New.sh diff --git a/Simulation/Tests/OverlayTests/test/test_DataOverlay_Zmumu_Old_vs_New.sh b/Simulation/Tests/OverlayTests/test/test_DataOverlay_Zmumu_Old_vs_New.sh new file mode 100755 index 00000000000..c806de37b8e --- /dev/null +++ b/Simulation/Tests/OverlayTests/test/test_DataOverlay_Zmumu_Old_vs_New.sh @@ -0,0 +1,66 @@ +#!/bin/sh + +# art-description: MC+data Overlay with MT support, sequential running +# art-type: grid +# art-include: master/Athena + +# art-output: *.root +# art-output: log.* +# art-output: mem.summary.* +# art-output: mem.full.* +# art-output: runargs.* + + +Overlay_tf.py \ +--inputHITSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.OverlaySim/HITS.pool.root \ +--inputBS_SKIMFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 \ +--outputRDOFile MC_plus_data.NEW.RDO.pool.root \ +--triggerConfig 'Overlay=NONE' \ +--maxEvents 5 \ +--conditionsTag CONDBR2-BLKPA-2016-12 \ +--samplingFractionDbTag FTFP_BERT_BIRK \ +--fSampltag LARElecCalibMCfSampl-G496-19213- \ +--preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.nSamples.set_Value_and_Lock(4);from LArConditionsCommon.LArCondFlags import larCondFlags; larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase")' \ +--postInclude 'EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py' \ +--imf False + +rc=$? +echo "art-result: $rc overlay_tf" + +OverlayBS_tf.py \ +--inputHITSFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc16_13TeV.361107.PowhegPythia8EvtGen_AZNLOCTEQ6L1_Zmumu.OverlaySim/HITS.pool.root \ +--inputBS_SKIMFile /cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/OverlayMonitoringRTT/mc15_valid.00200010.overlay_streamsAll_2016_pp_1.skim.DRAW.r8381/DRAW.09331084._000146.pool.root.1 \ +--outputRDOFile MC_plus_data.OLD.RDO.pool.root \ +--maxEvents 5 \ +--conditionsTag CONDBR2-BLKPA-2016-12 \ +--samplingFractionDbTag FTFP_BERT_BIRK \ +--fSampltag LARElecCalibMCfSampl-G496-19213- \ +--preExec 'from LArROD.LArRODFlags import larRODFlags;larRODFlags.nSamples.set_Value_and_Lock(4);from LArConditionsCommon.LArCondFlags import larCondFlags; larCondFlags.OFCShapeFolder.set_Value_and_Lock("4samples1phase")' \ +--postInclude 'EventOverlayJobTransforms/Rt_override_CONDBR2-BLKPA-2015-12.py' \ +--postExec 'outStream.ItemList.remove("xAOD::EventInfoContainer#*"); outStream.ItemList.remove("xAOD::EventInfoAuxContainer#*");' \ +--imf False + +rc2=$? +echo "art-result: $rc2 overlaybs_tf" + + +rc3=-9999 +if [ $rc2 -eq 0 ] +then + acmd.py diff-root MC_plus_data.OLD.RDO.pool.root MC_plus_data.NEW.RDO.pool.root \ + --mode=semi-detailed \ + --ignore-leaves index_ref \ + RecoTimingObj_p1_HITStoRDO_timings.timings \ + RecoTimingObj_p1_EVNTtoHITS_timings.timings \ + xAOD::EventAuxInfo_v2_EventInfoAuxDyn.subEventIndex \ + xAOD::EventAuxInfo_v2_EventInfoAuxDyn.subEventTime \ + xAOD::EventAuxInfo_v2_EventInfoAuxDyn.subEventType \ + xAOD::EventAuxInfo_v2_EventInfoAux.detectorMask0 \ + xAOD::EventAuxInfo_v2_EventInfoAux.detectorMask1 \ + xAOD::EventAuxInfo_v2_EventInfoAux.detectorMask2 \ + xAOD::EventAuxInfo_v2_EventInfoAux.detectorMask3 \ + xAOD::EventAuxInfo_v2_EventInfoAux.actualInteractionsPerCrossing \ + xAOD::EventAuxInfo_v2_EventInfoAux.averageInteractionsPerCrossing + rc3=$? +fi +echo "art-result: $rc3 comparison" -- GitLab From b485c6a07bc53743be797ed627f7bced24a26810 Mon Sep 17 00:00:00 2001 From: Tadej Novak <tadej.novak@cern.ch> Date: Thu, 30 Jul 2020 11:10:24 +0200 Subject: [PATCH 400/459] Initial overlay metadata infrastructure in new-style config --- .../OverlayConfiguration/CMakeLists.txt | 5 + .../python/OverlayMetadata.py | 206 ++++++++++++++++++ .../test/OverlayMetadataConfig_test.py | 38 ++++ 3 files changed, 249 insertions(+) create mode 100644 Simulation/Overlay/OverlayConfiguration/python/OverlayMetadata.py create mode 100755 Simulation/Overlay/OverlayConfiguration/test/OverlayMetadataConfig_test.py diff --git a/Simulation/Overlay/OverlayConfiguration/CMakeLists.txt b/Simulation/Overlay/OverlayConfiguration/CMakeLists.txt index 6c078af2f3c..3aa56aa21a8 100644 --- a/Simulation/Overlay/OverlayConfiguration/CMakeLists.txt +++ b/Simulation/Overlay/OverlayConfiguration/CMakeLists.txt @@ -22,3 +22,8 @@ atlas_add_test( OverlayTest_data SCRIPT test/OverlayTest.py -d PROPERTIES TIMEOUT 900 POST_EXEC_SCRIPT nopost.sh ) + +atlas_add_test( OverlayMetadataConfig_test + SCRIPT test/OverlayMetadataConfig_test.py + PROPERTIES TIMEOUT 300 + POST_EXEC_SCRIPT nopost.sh ) diff --git a/Simulation/Overlay/OverlayConfiguration/python/OverlayMetadata.py b/Simulation/Overlay/OverlayConfiguration/python/OverlayMetadata.py new file mode 100644 index 00000000000..9244b5c2418 --- /dev/null +++ b/Simulation/Overlay/OverlayConfiguration/python/OverlayMetadata.py @@ -0,0 +1,206 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +import re + +from AthenaCommon.Logging import logging +from PyUtils.MetaReader import read_metadata + +logger = logging.getLogger("OverlayMetadataConfig") + +# Module level cache of file-metadata: +_fileMetadata = dict() + +def _getFileMD(filenames): + if type(filenames) == list: + filename = filenames[0] + else: + filename = filenames + + if filename not in _fileMetadata: + logger.info("Obtaining full metadata of %s", filename) + + thisFileMD = read_metadata(filename, None, 'full') + _fileMetadata.update(thisFileMD) + + return _fileMetadata[filename] + + +def signalMetadataCheck(flags, simDict, tagInfoDict): + """Check the metadata for signal HITS file""" + logger.info("Checking Overlay configuration against Signal Simulation metadata...") + + simKeys = simDict.keys() + tagInfoKeys = tagInfoDict.keys() + + # Check the PhysicsList set agrees with that used in the simulation + if "PhysicsList" in simKeys: + if re.match(simDict["PhysicsList"], flags.Sim.PhysicsList): + logger.debug("Overlay configuration matches Signal Simulation metadata. [Sim.PhysicsList = %s]", flags.Sim.PhysicsList) + else: + flags.Sim.PhysicsList = simDict["PhysicsList"] + logger.warning("Overlay Sim.PhysicsList does not match the PhysicsList used in the Signal Simulation step! Assume the value from the Signal Simulation step is correct!") + logger.warning("Set Sim.PhysicsList = %s", flags.Sim.PhysicsList) + else: + logger.error("'PhysicsList' key not found in Signal Simulation metadata!") + raise AssertionError("Signal Simulation metadata key not found") + + # Check the DetDescrVersion set agrees with that used in the simulation + if "SimLayout" in simKeys: + if re.match(simDict["SimLayout"], flags.GeoModel.AtlasVersion): + logger.debug("Overlay configuration matches Signal Simulation metadata. [Geomodel.AtlasVersion = %s]", + flags.GeoModel.AtlasVersion) + else: + flags.GeoModel.AtlasVersion = simDict["SimLayout"] + logger.warning("Overlay Geomodel.AtlasVersion does not match the value used in the Signal Simulation step! Assume the value from the Signal Simulation step is correct!") + logger.warning("Set Geomodel.AtlasVersion = %s", flags.GeoModel.AtlasVersion) + else: + logger.error("'SimLayout' key not found in Signal Simulation metadata!") + raise AssertionError("Signal Simulation metadata key not found") + + # Check the Conditions Tag set against that used in the simulation + if "IOVDbGlobalTag" in tagInfoKeys: + if not re.match(tagInfoDict["IOVDbGlobalTag"], flags.IOVDb.GlobalTag): + logger.debug("Overlay configuration: [IOVDb.GlobalTag = %s], Signal Simulation metadata: [IOVDb.GlobalTag = %s]", + flags.IOVDb.GlobalTag, tagInfoDict['IOVDbGlobalTag']) + else: + logger.error("'IOVDbGlobalTag' key not found in Signal Simulation metadata!") + raise AssertionError("Signal Simulation metadata key not found") + + # Set the TRTRangeCut digitizationFlag based on what was used during the simulation. + if "TRTRangeCut" in simKeys: + if not re.match(simDict["TRTRangeCut"], str(flags.Digitization.TRTRangeCut)): + flags.Digitization.TRTRangeCut = simDict["TRTRangeCut"] + logger.warning("Overlay Digitization.TRTRangeCut does not match the value used in the Signal Simulation step! Assume the value from the Signal Simulation step is correct!") + logger.warning("Set Digitization.TRTRangeCut = %s", flags.Digitization.TRTRangeCut) + else: + logger.warning("'TRTRangeCut' key not found in Signal Simulation metadata!") + + # Check which sub-detectors were simulated + # TODO: needed? + + logger.info("Completed checks of Overlay configuration against Signal Simulation metadata.") + + +def simulationMetadataCheck(sigdict, pudict): + """Check the simulation metadata for pre-mixed pileup RDO file""" + sigkeys = sigdict.keys() + pukeys = pudict.keys() + + # Loop over metadata keys which must have matching values + warningKeys = ['G4Version'] + sigKeysToCheck = ['PhysicsList', 'SimLayout', 'MagneticField', 'hitFileMagicNumber'] + warningKeys + for o in sigKeysToCheck: + try: + assert o in pukeys + except AssertionError: + logger.error("%s key missing from Pre-mixed pile-up Simulation metadata!", o) + raise AssertionError("Pre-mixed pile-up Simulation metadata key not found") + try: + assert o in sigkeys + except AssertionError: + logger.error("%s key missing from Signal Simulation metadata!", o) + raise AssertionError("Signal Simulation metadata key not found") + try: + if not isinstance(pudict[o], type(sigdict[o])): + assert re.match(str(pudict[o]), str(sigdict[o])) + else: + if isinstance(pudict[o], str): + assert re.match(pudict[o], sigdict[o]) + elif isinstance(pudict[o], int): + assert (pudict[o] == sigdict[o]) + else: + assert re.match(str(pudict[o]), str(sigdict[o])) + except AssertionError: + if o in warningKeys: + logger.warning("Simulation metadata mismatch! Pre-mixed pile-up: [%s = %s] Signal: [%s = %s]", o, pudict[o], o, sigdict[o]) + else: + logger.error("Simulation metadata mismatch! Pre-mixed pile-up: [%s = %s] Signal: [%s = %s]", o, pudict[o], o, sigdict[o]) + raise AssertionError("Simulation metadata mismatch") + + +def tagInfoMetadataCheck(sigdict, pudict): + """Check the tag info metadata for pre-mixed pileup RDO File""" + sigkeys = sigdict.keys() + pukeys = pudict.keys() + + logger.debug("Signal /TagInfo ", sigdict) + logger.debug("Pileup /TagInfo ", pudict) + + sigOnlyDict = dict() + sigOnlyKeySet = set(sigkeys).difference(set(pukeys)) + logger.debug("The following keys only appear in Signal /TagInfo metadata:") + logger.debug(sigOnlyKeySet) + for key in sigOnlyKeySet: + sigOnlyDict[key] = sigdict[key] + logger.debug(" key: ", key, "value: ", sigdict[key]) + pass + # TODO: extra + keysToCompareSet = set(sigkeys).intersection(set(pukeys)) + logger.debug("The following keys appear in Signal and Pre-mixed pile-up /TagInfo metadata:") + logger.debug(keysToCompareSet) + + # Loop over metadata keys which must have matching values + warningKeys = ['IOVDbGlobalTag'] + sigKeysToCheck = warningKeys + for o in sigKeysToCheck: + try: + assert o in pukeys + except AssertionError: + logger.error("%s key missing from Pre-mixed pile-up Simulation metadata!", o) + raise AssertionError("Pre-mixed pile-up Simulation metadata key not found") + try: + assert o in sigkeys + except AssertionError: + logger.error("%s key missing from Signal Simulation metadata!", o) + raise AssertionError("Signal Simulation metadata key not found") + try: + if not isinstance(pudict[o], type(sigdict[o])): + assert re.match(str(pudict[o]), str(sigdict[o])) + else: + if isinstance(pudict[o], str): + assert re.match(pudict[o], sigdict[o]) + elif isinstance(pudict[o], int): + assert (pudict[o] == sigdict[o]) + else: + assert re.match(str(pudict[o]), str(sigdict[o])) + except AssertionError: + if o in warningKeys: + logger.warning("Simulation metadata mismatch! Pre-mixed pile-up: [%s = %s] Signal: [%s = %s]", o, pudict[o], o, sigdict[o]) + else: + logger.error("Simulation metadata mismatch! Pre-mixed pile-up: [%s = %s] Signal: [%s = %s]", o, pudict[o], o, sigdict[o]) + raise AssertionError("Simulation metadata mismatch") + + +def overlayMetadataCheck(flags): + """Check overlay metadata""" + if flags.Overlay.DataOverlay: + files = flags.Input.Files + filesPileup = flags.Input.SecondaryFiles + else: + files = flags.Input.SecondaryFiles + filesPileup = flags.Input.Files + + signalMetadata = _getFileMD(files) + signalSimulationMetadata = signalMetadata["/Simulation/Parameters"] + signalTagInfoMetadata = signalMetadata["/TagInfo"] + + # signal check + signalMetadataCheck(flags, signalSimulationMetadata, signalTagInfoMetadata) + + # pile-up check + if not flags.Overlay.DataOverlay: + pileupMetaDataCheck = _getFileMD(filesPileup) + pileupSimulationMetadata = pileupMetaDataCheck["/Simulation/Parameters"] + pileupTagInfoMetadata = pileupMetaDataCheck["/TagInfo"] + + logger.info("Checking Pre-mixed pile-up metadata against Signal Simulation metadata...") + simulationMetadataCheck(signalSimulationMetadata, pileupSimulationMetadata) + tagInfoMetadataCheck(signalTagInfoMetadata, pileupTagInfoMetadata) + logger.info("Completed all checks against Pre-mixed pile-up Simulation metadata.") + + +def overlayMetadataWrite(flags): + """Write overlay metadata""" + from IOVDbSvc.IOVDbSvcConfig import IOVDbSvcCfg + acc = IOVDbSvcCfg(flags) + return acc diff --git a/Simulation/Overlay/OverlayConfiguration/test/OverlayMetadataConfig_test.py b/Simulation/Overlay/OverlayConfiguration/test/OverlayMetadataConfig_test.py new file mode 100755 index 00000000000..8e3740ede83 --- /dev/null +++ b/Simulation/Overlay/OverlayConfiguration/test/OverlayMetadataConfig_test.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +"""Run tests for overlay metadata + +Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +""" +import sys + +from AthenaCommon.Configurable import Configurable +from AthenaConfiguration.AllConfigFlags import ConfigFlags +from AthenaConfiguration.MainServicesConfig import MainServicesCfg +from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg +from xAODEventInfoCnv.xAODEventInfoCnvConfig import EventInfoOverlayCfg + +from OverlayConfiguration.OverlayMetadata import overlayMetadataCheck, overlayMetadataWrite +from OverlayConfiguration.OverlayTestHelpers import defaultTestFlags, postprocessAndLockFlags, printAndRun, CommonTestArgumentParser + +# Set up logging and new style config +Configurable.configurableRun3Behavior = True + +# Argument parsing +parser = CommonTestArgumentParser("OverlayMetadataConfig_test.py") +args = parser.parse_args() + +# Configure +defaultTestFlags(ConfigFlags, args) +overlayMetadataCheck(ConfigFlags) +postprocessAndLockFlags(ConfigFlags, args) + +# Construct our accumulator to run +acc = MainServicesCfg(ConfigFlags) +acc.merge(PoolReadCfg(ConfigFlags)) +acc.merge(overlayMetadataWrite(ConfigFlags)) + +# Add event info overlay for minimal output +acc.merge(EventInfoOverlayCfg(ConfigFlags)) + +# Print and run +sys.exit(printAndRun(acc, ConfigFlags, args)) -- GitLab From 21a2588624416b5851dff9a7af75fdeb5953b628 Mon Sep 17 00:00:00 2001 From: Tadej Novak <tadej.novak@cern.ch> Date: Fri, 1 May 2020 10:48:54 +0200 Subject: [PATCH 401/459] Cleanup obsolete references to CutFlowSvc --- .../AthenaPoolTools/share/EventCount_jobOptions.py | 3 --- .../RecExCommon/share/AnalysisCommon_topOptions.py | 9 +-------- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/Database/AthenaPOOL/AthenaPoolTools/share/EventCount_jobOptions.py b/Database/AthenaPOOL/AthenaPoolTools/share/EventCount_jobOptions.py index 1e3f7f990d8..1fa766038c5 100755 --- a/Database/AthenaPOOL/AthenaPoolTools/share/EventCount_jobOptions.py +++ b/Database/AthenaPOOL/AthenaPoolTools/share/EventCount_jobOptions.py @@ -20,9 +20,6 @@ from xAODEventInfoCnv.xAODEventInfoCnvConf import xAODMaker__EventInfoCnvAlg alg = xAODMaker__EventInfoCnvAlg() topSequence += alg -# from EventBookkeeperTools.CutFlowHelpers import CreateBookkeeperDumperTool -# CreateBookkeeperDumperTool() - from AthenaPoolTools.AthenaPoolToolsConf import EventCount topSequence += EventCount( OutputLevel = INFO, Dump = True ) diff --git a/Reconstruction/RecExample/RecExCommon/share/AnalysisCommon_topOptions.py b/Reconstruction/RecExample/RecExCommon/share/AnalysisCommon_topOptions.py index 32e792cb595..016939583cb 100644 --- a/Reconstruction/RecExample/RecExCommon/share/AnalysisCommon_topOptions.py +++ b/Reconstruction/RecExample/RecExCommon/share/AnalysisCommon_topOptions.py @@ -321,8 +321,6 @@ if rec.doFileMetaData(): if not hasattr(svcMgr,"CutFlowSvc"): from EventBookkeeperTools.CutFlowHelpers import CreateCutFlowSvc CreateCutFlowSvc( svcName="CutFlowSvc", seq=topSequence, addMetaDataToAllOutputFiles=False ) - #from EventBookkeeperTools.EventBookkeeperToolsConf import CutFlowSvc - #svcMgr+=CutFlowSvc() pass if rec.readAOD() or rec.readESD(): #force CutFlowSvc execution (necessary for file merging) @@ -425,13 +423,9 @@ if rec.doDPD() and (rec.DPDMakerScripts()!=[] or rec.doDPD.passThroughMode): # MSMgr.WriteSkimDecisionsOfAllStreams() # pass - #Configure CutFlowSv and common metadata + #Configure CutFlowSvc and common metadata if rec.doFileMetaData(): - # # Determine current skimming cycle and input stream name - # svcMgr.CutFlowSvc.InputStream=rec.mergingStreamName() - # #svcMgr.CutFlowSvc.OutputLevel=DEBUG - #Exception for DPD pass-through mode if rec.doDPD.passThroughMode: svcMgr.CutFlowSvc.InputStream="Virtual" @@ -443,7 +437,6 @@ if rec.doDPD() and (rec.DPDMakerScripts()!=[] or rec.doDPD.passThroughMode): MSMgr.AddMetaDataItemToAllStreams( "LumiBlockCollection#*" ) MSMgr.AddMetaDataItemToAllStreams( "xAOD::CutBookkeeperContainer#*" ) MSMgr.AddMetaDataItemToAllStreams( "xAOD::CutBookkeeperAuxContainer#*" ) - #MSMgr.AddMetaDataItemToAllStreams( "EventBookkeeperCollection#*" ) MSMgr.AddMetaDataItemToAllStreams( "IOVMetaDataContainer#*" ) pass pass -- GitLab From b69326a4a2e92c8607054b5de1c9fae4e1eca5db Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Thu, 30 Jul 2020 14:44:43 +0200 Subject: [PATCH 402/459] AthenaCommon: Remove setting of CoreDumpSvc.FatalHandler Follow-up to !35076 where we removed the explicit setting of `CoreDumpSvc.FatalHandler` in various job options. However, `athena.py` is setting this value to `-1` (only handle `SIGINT`) by default and this leads to missing stacktraces for real crashes (e.g. ATR-21816). Not clear why this setting was chosen as a default in athena. Also update boostrap pickle files to match new default. --- Control/AthenaCommon/share/Preparation.py | 4 ---- Control/AthenaCommon/share/bootstrap.pkl | Bin 7958 -> 7201 bytes .../AthenaCommon/share/bootstrap_threaded.pkl | Bin 9405 -> 8634 bytes 3 files changed, 4 deletions(-) diff --git a/Control/AthenaCommon/share/Preparation.py b/Control/AthenaCommon/share/Preparation.py index 5787138fd8c..8bf10b03a4d 100644 --- a/Control/AthenaCommon/share/Preparation.py +++ b/Control/AthenaCommon/share/Preparation.py @@ -82,10 +82,6 @@ if min_cppyy_vmem_growth: del vmem_before_cppyy del min_cppyy_vmem_growth, grow_vmem, vmem_mb -if not (not opts.run_batch and theApp.EventLoop == "PyAthenaEventLoopMgr"): - # make SIG_INT fatal - svcMgr.CoreDumpSvc.FatalHandler = -1 - pass ## now import the top-level module which eases interactive work and/or ## python-based components: a pure python module diff --git a/Control/AthenaCommon/share/bootstrap.pkl b/Control/AthenaCommon/share/bootstrap.pkl index 23d4121dede4e14939bf33368f9ffaa649d061fa..693d4fce1c1f243c19c772defff3334222c7fa1b 100644 GIT binary patch literal 7201 zcmbVRXJ8ap4mQ0*fB=C&aFR>xB!<P5Ku9%f8%%J)_Q52MLuPj$>p8|Vt0{|}+}v>` z*L&~1_uhN&z4v~(-g}Fr8SU)z4Cl-JvFAy8?@8a&lk~J_=9SB?ZL4x%xsJcIqE4Ej z9aOAxuoPO#rO>hii|9<4b0^FlhI#GA@|KpCu3)0euJ+V}5d|<mf(7lyG9>p*1)kaG z)WX1rg~nW@jE%!0p24iaFks$d;Vm&%q0oR*6;&Blz8iXF<-<~8FEbX?s<=(ydJ2~F zO8kA$4Ae-y3@ccoTO|@JjZHYAS)zbEG|=_pB~}@WP@rE;mXzniImQT%#@f&vG$d3` zS$PE<98guuK}uUkYlhcl+i3b(m_1H~IODKdRILrxmFHO%1#67?xY?)|Dp+eQB{g}= zz%p$(H|4DhjU~v85k?VMAHjw!yypo<8?*3k65jc_@NO3N79HLTL}yP4yjyj6TW5p! zLJi)FWTT6XHE2>_)xlHjMXyrckm>uX0{2SozC?CU5xX?ywuQ`QR1*B5J%Y=!z+5hy zUXcZ+LwMVAf!QwXf)30MQ7r|gQwL_}Y{2Z&fZ1*AK|Hd4S9D|l$#pySxpCMd%A`15 znc}oJ<crwk!>})ctFkcd7hA8+!gP)BuFZw%I$>Y0!*qjamcrDf!*pOan2H)q-Nqq- zsn03*TAuRo>J|8Q#stf$B89Fgj`5N?!I0;cNodBn6Ypft%v;x+;&w1(CgPTy0UU~; zFALjYvHiv@Y)6FGp9|Z7um^S6hO)37)nOZ+4Ym;two%#W-m-G)D#ucjk2eBM9JRoR z;HIp_H_K{cS&MHG-gvIXw+j1&Zt-oRSL!IHZgFWgi_4nD6{9!LQP8e?=q5YSP1H;` zIhkTsZG@qI)5kDI@p&QwD+}9w#P(BJ*lgiV=ECL(+tp#KWnlvyHg7iAd=0k1I4ZEk zxhP40cz@#5o|peHhof*FXILd6D!xnclAPY^DT1dPUKcL}QxQyO;k#WhxFZYSeT5h0 z!goJm-(QFCOcuTe=<q#oHuxT-!S`U<=uTNVy=M<eEq-Xj;us)!SOgExTKouE?U7lF zA0@m;=UV(2VLw*4_;I3Fde0uOTl|FCEPkS9@snhuC(FvI#ZO5sergg-!-_?P7nW&H zi{R<Jb5~6B;Tc9-?0a?<BW|Fkf`nB-@6#!GC!gsXt5G}?`Qcd+JUff!b41VQX0d#p z@SdNG<qL%ULLJK&iNz_FFV?Yq$!u7@lnXmaOg_BKSjiBuRXue~UTEpdIr>np8&MvW zhOaOdpj5AE`wCte8Y^&6obX)79SO{UuzghouV!=(S#@=M!V1&@*YqmHdQEITE!}Mf zCXrt2^9Ds53$VU!qP#AG*K^TOJkr<QeE{n-EWzJkY-ZicwpH0)DbaO5XyVzO5W+aT z(P#ZBUt08lhzsmDMeyc!;~bofnRsd%|I{%rvlF}}pZr$dTwo!M-j<=fJuYjCSU+}$ zlQj~0M+EO==Nz%B4x$6^Vr<4bJ3CtUcC_y9Xx%ps@AjFfzX9G8!F$i5;`{Pde1Arv z4`e7G4B4M%<Q(`=1Ru^i=tsoMKALsVj|uPNxeodXVSiG0&`)I@^wYY7er7fY{p<_} z{Twej)`m8TdwzbVdw!wGJ--+lYw_S&b_m~B7N$t2JWZ$dr3k*vkQJReI(FTncivaT zl&|`X`yrg*Ry}i4ob_uFe7&7du+N#WN>(sr1`{~(8#3{mygR=*;afudcATVnHE%k0 z%kM<+-Lste_wvvD`<WB|L5A|fkmri;CbefL{3wDSXAk`+qTo-nhklpvewKUaKNt2d za(CPbzl`8l*&Tl^(|(iP@wdYJUG9#*7xo|G^ffRV)@*)q|1p9;<sHhOWyW8c4&|>x z{F|{5T_bJ)z~6=XkNBwgjO5Mv&j|i?mZSQ2{!#sB=D~O^b6Q$5#5qU|<B$<}%AEAQ zxk!n;dH6Sjoj0GBh+7!m0{W)DM{^g$Ti7JAh`w`r8Q$V1p(XU)+|lrs5``9SM!;Jp za?;oEmJ{W_w>G>LB-7O0@KzEbv0xQ`hvD`!|5wL{(o|QiW?N;G0)2ngOL{(Zq@!*P zGd8w+w%{Q9q;1s6nA;X{e4)CJ@rR~15T&&SV|2Qvun9yx1ALGv$Bf-3nYE15PQUVf zvq}!h(#tt6r9^BDQNeK7Ee+PVyCs4vIh<&8SjCf3qTj65@JWe%p?1Uz17BV8W`ToR z5|=0&;?X3dMu(}1+lXYiXrVD^7AU#yDU5~t_fw!`DWZ@l4rqg6*9~Z>2?;TgLH+bN z8>^|)5^Z&2Lus8%vJG{0R%(V$$8%lHn4(UIwLrK=uJ~HM_^4^WIfZ>L^2cqRur8)f zaRsy9xQpQ)bzPgFNdA*DNl{4D^phCrQ5VurVn{HiDNWzR`k&!yKtPK$22ID;h=zs6 z7i}=?R3;B9hi0Xp#Lz0Xf;J*{^X)G*4>C-xlF4vc)g<L*n0lc`?6e3hq@TpVTi1<E z-y^OWmu}P()d)O0EyfB>g&DE5>s8Q3=q?-BT`-g)PDKpF0cP~`n#zcc{F3Olv8LN3 zUUWWR`gA3}^qX05U~r%Zw#?vDp#T>c=xi;p)i_rR1w*bMbaBrcS|_%0$&xNS<f(*r zA@V4k4u_6evK3s!YGWM4_$RcBIihiFIO4iB>}RGyt3joBd5PSD5oN=rxH75K@T{gA z1#PKOaZ-wd-w{>EnU@)OQCfDv<*XU%GGI<BxPpzJ5urOcs3GwfRbs9K+i+LPP-I>m zK~J0owohziI=v@Czvxy}aYB_(K>_Jp$J-%x!@E@}tj0?0U?p}yCmSE1ARZ;`OuFfL z*La5i+#`n?hh4EP^me4heb|k<QOe+$(5NT(B$hB0lalLM!NjBwS0bH%o^a|GzMLlU zIRtyzv+jsspRoZK>T~c7W7^j3oZ;v!V-T*wsY!mW4Lb2t1NI|vJx)Tz@Yj>LHtu(E z1>6v`$JL1%SPs^d7g)+4LV5t#Af5XD!zu_phk%A_6DY6aY{g=zw=dloxE`l)_O+|z z@m;oM`gmJz5aqk#mv$Nf;Xnk%tlxAeeiOGqeHEZnlw5pK_R0l2$b|`V_@LpC(EHfa zklyE<bm6d&Z)8i5eBAULGP<exNfi!qdOXkdU`E#y>Am<8wP8qBI?7&z^e+3fIqk!+ zFh<z>@YfSkwCLKd$B;F3Hwl>v`DMyICbN&Te^{t=$~1&|6EA%_Rz2n4%tnp1O)J}W zPh+GSWAO3!8`@hGxP>Q=wVkG?Hbpy6RZw=EWlxfEsqC$Mv&Py=cGx6(f~h9ko66oM z+L`POSoUDl83}7O4@(`oz@@aqQa0A1?f7F`Sz(LQq#Lb9l3&j%vX06=nomYh<pY&R S^8~}BKbkF{3dM0~*?u=$y25V& literal 7958 zcmbVR%W~UD61?*(9CM)$UX$H?&rOzOTN{?G5FI-Q$AkkSVG1!2fCWL?nvMPU&8%uP z8V_&m?8O%QS)G+t*<IM}@-&TiRg!1N(LVkboziNb?5a^=MlW|?zdoFjv`VtCUq{+% zN7a2X8*RtiDlg-AQ5A2`yYZ-)k6!MJ1=?@2U9yj}N}HFxmeuIE9p9Dtk7xXI#?Vqn zt}$|;c{4g<{N-brXZf~@+_GlM?To>k_sKc_?J=q1H+fX<buDAjaeamrS5XzYwwbJS zQ9Zti4@tI-{|T#&m~CkH^^dBIKAo!KR2|tv%fI~2zr^C}b0sHc15NE5-@s0{#!cpy zu+w@8YuJk|PcSKoQY>O=;^*=d^KY289pA=J4{^!8?R>QT<;xhR0?fBb8J8F7VIpR0 zLy{fPGJf^KqYdPC98{z4ew*>{zhJ!u*Z&yD`*?pJAM;bWi)9~wMk{B$iv1aF_ly&C zf+l%cqhOt9z=EsOQ=uTw#4j`YWt$wbDCIUY9`%bcuU@QPy_mmxu_mfBIrCe%Cw(7f z`!p`uh=Y&+X80FOhRqkJeZoD3VzVWkK3idoYnRnwDZxq)mw8sjKPuNZ>9q(JGiP=h z9gjCxy6{}Ap3~~f4>wm=Z{8-U05pf?SbLWy``7yi;{7gyMPKU%f;;!T0(q2Gb79qd zfK_vk_`J)ic^7e@Fdtym!n10jtg7<j(>X3ngc7DK0$wdTyjl=m;q>Asj97U47F|Xx zy7u)Lu~2CHJRKEFL3l}oJ8`xYa*z>Au{MaaCC%-`*-{LbHGG^cz0pfCnh~>&OO3N7 z&3+3a5}c*rS;q+3vjUp%u-GgKLrAg`WcvZL^2V;j*dSn5U1NLjtQ@7QM-X+dOj!w~ zSEO_Ymlf?6U#*k`P5xPv0Ucb{VsRUnwYPRH)?!M?lr=4O8E7rAHW_H`AzcfkeJIx6 zzO~pFK(XoC*MnjMYZ=|u<85@Tpa7DLH<t0ep}2Iw*m&Y@)c*|_8(P`{W23RfgzibQ z@%C=S-c~X;Q=06sFjK*@0mDoIq~>FtwTsIMY)672TVXpA1AezUT{0NxxsMN=!`xw} z;+Q_VX6jFDrgG!}Uo-8Vxd*VB0s=+2v6B0(MK`CLKE?)`S}Pue6_bNdG@_^-n2phh zZQ*PnseT!;Tw!stXGB+Pq*YowyfmV(eu#K0a0XR%z!_fD2N1tVQ=sq@M_p?yiaS)N z2izfQt+xRc>(CvP>lOw3?w|szJKT2gg_YPhklr5OjmWRtuN(dbBHP{%dCWj_>9V#j zRC(nRqk7x+g~)9UG!-|zgc!)J13J8g!2Z8@2eC?Z=r-0Lz;@;%(@>nZ;}Ba&bNj4) zY@yo@TNhbC1H#SwA+))VE!4RtC?uMoHQB_7KzDiWw7QM0=(V~?Wx7ja5$YOU)#`x8 zqSHEEWqJUaMz4(uc8H8fb!cfH8EQDs*Krx}ftV8?D0UwoXmyPb1iOQe$aT0Yx#yI- zjgP3e9#BQQCCf%cyVhl+!W{~;p>QM4VSJ;@Mg@ETD(ZNBT^FN6s6@6yqx(=%&vDdk zRmRa1F9rsJPKcn|eTX32emB*cfI_0&;cl{;MsXV=5psn{^*i84Bi=^Ud*INb;BLM! zIXtvTcxXod(A0Ju`s3$Qk-BG`fv)q|5OqG~9+QWpx{InuxegmqcHNK?&JlR)@O;qj z8W9LMdh{hFT}`}Ez0oHQy~A54f%s>;XZJvZlyhsSH}2ut8CSS-q7N0*sJEefV-3|` z=5)MoAm5m2A>2J*S&FwZ!>ZagAlpV|t*UI03T#hhWhZra%a0bS>bDR-1NQKyWkp(D zDzGZ9H-`)_Cp<K8{kg+iB;Ip*ky$_RCzk`;NUX)v6<`E@w<56r)$f+FTSHhYBR3b< zTRdg^C<bp?70D1OQO9sg9z}JsEl5_RQV3-AQQAccqUbMTR$rxozbK0X+F#$N2c_R% zwk%()LkeU?P}M4x(GXA3(C~1*II`4MtX!ur|Mmt7kXSMk;@ZcQ0_&LhGjX(yI9e6Q z4xplsYP!?Gjun=^P&u?ia%dYlv?_=FL}Qz0s~yrp+i0Ps7Ahm#)dHv?fq)J+Kxy1t zk;2;Sx=px0P!F;qih~`RTu6q5<t*_TPY<P(t(jN4+c0vwZ9<cw9Yh%iJM;?j9{DUk zl+jaDb+QmlZVrj$Mw%^cqm5Rzv72da^QN`bMj$GSm(TuG&_`KV6LnZ~vm%C_Q|Xg- z$aqo5!4A^;_3r;I5MH(_LlOs!f~GDc^zW2~B)xX3LiCXog_K$sMUf`Eh%UZ8uxb<( z1Mg2+^pNtYFPRiWF(hadR^7+dsmv~Osh3DDosO9qKIa9V37iW%2hvRQR+Y!Xl5_6L zB&#s%s5k4KY)zv1tIe9jMDaf4dBN4`G00b(MZQ@Nf+WkaKUn0v#6_giDxDb}keb<( zofFhSpHM`^I+At&^>6+q$NGEz@TrhGE(M#-6ka*mRVsxzq})2;i1FCwHYy5K6FC}I z^S*ViYo-&iuBI|_E3%^d<x^nL>&cH*C;mq`;33cdfUf`gE2UpXv4unNgKy~jJg@k( zHK=ZMV_;wV=AdS_+qf94Z8v(O+sz#7&24uz$7r|9g9cgzmw;g(qbGVD>LNee+=R4n z6w8>weFiGyT*@+m+&QsA^IFr#+6AieXOKXwE1x-HUe7}*9A$gG8sFv_i=^sCD2-eC z2Cb-pC4Wk&kbIYq@$L^Uv#iH7oB_O_p9>yD3aqUTHp*$6*1IyMd3nY@o?Ljw0{!X8 z$f~!3J~?v)gU@*`OoUd|&FO*rUZhEM^flM9(3+K1h7OQp#ax6+wz*4BsNi4452wS2 z_^h3zwuZ6ZJbeeV%uJ@iSO4IpQ;dd=Iis<`ZS;d1_(bC#bmtucs)>+p<yAwJywtKQ zqKD^0!^HjX3PV@;p7J4&^iu~bN38}93UcKn_*;mk&qE~WA}*^WK1#~rmYxiaTbv8= zTEs=?)5mKLlTi0Ot4HwonuHWD&q6#6fjVTS_>^g`<|3QgUz(lJL^1ryiG9(2;%f0O zc5mb3F*@+2F=_tf@dK^$UohO9|2f`$40Cz^BgjAgnKSW!aqs(V|MV`-IIH<nd=h?h znzX+_VV(%F`~Ecve{gR2+vgo=?De|n9`5X1X0Y<5|8OyB{^X)vTKy%SVSYm*Lecsq zG}KyvI23w^bW=UbLm3ww7s?*=AX}0sy!tpY;^G5xHO_Zz#3d+f<s@NkW5r#5tbD@3 zjYwj*wG=1Gl?XM0?HC_K9`a*+nWuT_l)fnu=w0X-S2x+W9P_$mebkM2G0I#K6L7rs z-^--NFPClB^0#BGaFKqGp5;S=zs#eWkG?&#Q)_!>7o98@%t&U2Bbsu6Rs(QBz+Gm0 zDvA<;qiIXZ0`7sRb%A!elahd@yYEq%K@(a#0B6MPbDXC6ckwE!1TYp~j|fwP6)FQ9 z_?_QXNv;ylQ(k&d9nf<lkrH2kCzS#@7pep3On_;)6bc3I+^7-gWXar^Dy4p%D!c%m za`j^u8KGTbA-b+<B)jN+?GkIg@f%`mM-TwUKcx7$8raSvzwZB=B7?P9>vxN>%8%>r K%M>5JU;hWR_NcP} diff --git a/Control/AthenaCommon/share/bootstrap_threaded.pkl b/Control/AthenaCommon/share/bootstrap_threaded.pkl index 5792db164840bfecbd343f40b20fc39d7a21d99c..0a97d6d7b29e0ca07ce3e49a6b7a526e6efa920c 100644 GIT binary patch literal 8634 zcmbVScYNH$5;iR%g@kkn2{FakfRl?;NHEoLi}T#@86q$S<h#wCh)%j$Nf$djy~iuO z-h1!xdhfmW-h1!8_c}Aup0p<g|9F4ovYMIQo%wclXLi<io>D5gwk=A&<vQN-vN&P} zwqLeN{&Hw5%>|b2TSRBVNq51?Q*cU`vAV6Tt<SDZ3C|5=Nldz~4X1{1T9>f`ITL|j z5ByQl5H>6^PD09VSZXZ6|EJwLc7xN6Gx1}lv(K-NnVv6XQ9$P`EDMa4NJlCP4K{qF z!txMSM57MQ`_de7aAXfw8Yj~Lvv3CYU{*A%2dflsHLE!;L|K%TrXHNB*lUc_aSWQq zccp-}JQBBuO<xonC0NH210t4KZ*0a6X^8^z5II*yLu@dXqQID_%?atjMx#hNl96ag zAe@qr1^hT5DwabAceiJFeYTCJpMW{&l!-G7o0O{ciH4BUDhoKvI29+GmVtn?jpd{! zPw88x4Vx3*If1bZnGwP$0$W1ZnuYgVh0(SwyzPp2UM{@nEA|CCyca5+rBLv8=<r^& z7`&Ytyj{jNhPOD(J~8T=WyDweLZ~h_)}qu%#la;WLSGhg()2u0hD#DqE>)@}aCRr$ z?J1{>7YBBPP{^XTQ<>hAMQxYj?aoDQk7DoDQM*j3mY}vzM{WONs9mn1)@$r#)LNbL z#9r6$D!02rDU;xIWrEXH0q^~kgTvJ!T$6?AT4ifr7N!G=*Pjd1fMO5oFbyfq5}1Z{ zm<}!m(})JsA>*KeX~ZcFSyD(usK8q{B3MoZDYS?28+V}NPfE8$LM`7t=!N%d-IAjT zZesy65w{p=7!P403)`f!{kkk{Q;Jv2g>71~uh(I_Aq(4K9X4Yz*lyHdyGcznqef0# z<>tiX+2$z}9cge&2)AY}zD<p0W-Xpmyi%^kWyKb{#YdE0iKA3>i>r%SY-twXZVcr) z3fgra-DDTK$<bCfu@lT{&10w;F~JGJ&B9h!wnG*+sd!#4Y`$U#I&6(BY{zui<`;u) zL4)nMah-xK3RH1y#QhV+{k-6a0iNPtPS~6h95ZL(j#dQkpCA}Ey)GIE9uUF<v+&)i zFnCZFz6UGbLvrDJsAAux!}qW(d=J;*d&FY!JyL`3QEH+`tC5p^_L#)t$2KjF0D{Mb z@c697Pf(*hF>CRY6z|Eo7C%L?pQ>B@G^JOv&z`PZ{EWpcex_#ev(!Y-RwE}CKPR#H zx$$8dlr752Fo%0y2+!x4`y!eLFE9>8zGqkP#P!9zAF~SReL97FtvKB8)@oK$sO1~C z?F&6)1CH3&Fm2N*RYej1l>-~ITAcqyA-p((Je?K4q`K5tg?*;0QkZ2*pNrOU0e5q< z+ynO*YmnJr6{VvCqAnZ^FC|NO@Y2N6ml<cE$bjjaQRaiX!^@ebr9kisV?D|htL`z9 z)kb@zaT>CQOxqLiDqda^BLt*t583W9cy&tRH32J?34!q15MGycs@JOpdqdW#-l%wQ z%5|zYEB0G-r+TYe`oyW;raRT!7jvq2aQdqvv<L6xRha2ys|Fhw#c@5~#fJz5{i2YR zK)*W$!+Qb-xxXr1$1VD%PmBEC5Z=e=9JCtZaMkj~0oRmeV!b~ypN6IdAkqgso}k~x zOmt*`C?5>rL!3SJkB$rs9Kb{s7yHA;7F?d0&XR4Fca-PI7l%!B;#(DA7Cz#!{**Xa zbbpJkAs-FlV_kg1!jxow0e>2pps+W7JfHjto?O8~8htWD`BaqO^<yGE5Y*}<^yv^j z!@IO-RUC99_$*^H)6>)4zOTD|Pj~zNS@@h6d8&3(`g{mqIDv{^%vbSC8HK)_p?oD^ ze`*Q7@YN8$mUYmtD=+&-)<M6ic;Cu(&~GdDcXS8+Zq`A+r#tBP7jw`bv^eMwdB~Yg zv`M+=k6PXH$0_&xNt7nAtn#;?hVZj49*5kMeS}u;=UHuk!I$*$qV3`x`<K;w0%IMz zAP+W)S6U0N>P~5aI{zw!Uo-ywP6KyI!z!W2{zl>QTaOp<Aa-yo(yS>>eiy>;yVxB@ zoT@cv`IDw!#g2ba9skIt@P!Wkq=<ixY~s=6LgeFr3E{6NaG<~CJJ8=V?(&Ze<(~of zRU0AB=zHK_A^bb*LH|(-{+E$V7a?RDRy|_2Jc-&=F=;79$dgk-r(ipG_FeK+WQFoH z{LSbfm!yVRN^L5jXqud!l2}IVJWZCTgjQfXN*u<ggSt(X5V;a*p*#bBbCyr8O7&h% zZHg<ri1N%7YYnxj3KT^`xi-aHhwbQO)xwutkMvM(z~8Lx8&mx^Q9EP%St*ILshwy0 z=9JJm)J~U$<QAgP!0dN%=|XN*a;i8a&n3#e*N5ablA*9YWLoyfk#U#LXW35VW+;~D z(I-`ND6q@(=_@LB$qTR@?FCJl3y~bk4*bpE5%MA$gDP&V@j!MGhe~$J<!Q0I@`x8B zF^CR(A9I$PCoe%tC@;m|?9z185V6+VshwGx9Vv+dweyx{XG*At+S=0WB1&dyb}PB& z((ED1B1^NEWKz{Tc^MI63-)0<ihk2pP1u&hdtyIQLwPy=c5xJ*5+zrbm4xi20aQ^= zUO`_p{-i0XC?~HZLbB*r;b#!+xby$2#!@EPSFhVv$)qe`tRmxLY^vnC#Mp{b*=l6- zHi?PPQVu?JJK`nAGHqOCUB+J9WK1vA1uW;v8kQ}DV@4Y~?zMu^7!#gnRtPATUdih_ z;t1&{9IW0_o_olho2Ya7SxK+r`7}DLj;?l%(wJGVWAz0Kx#XxA8XGFJDx||6<xA)S zap-AQYU6L>Hp3H6TWEfy1?F7$C<eIRUW$G!MHCXn4;o_1b$$BOgcLEBLH+dL8L6q$ zVr_L|Q)!*7>8`U9GjuvG?i$7vbwaEaglp9Tuj6wWH61hOVLel~_rQjTI?p-oM&oYu zhMCT3x~w2z@&BYue19Tp(j-Q*)P<x;jMQ<{te4$axSA_Q^EN+H%hwEFg=UN9o^r~y zVc}4(q)7}dr!Qz<#7>{Nh4e>;sl5thxU6cN$7Gm#Do^a>novlZ#K5gLfUh#q^^dV{ zA#m>`T`#0kcb<2+x0ez^JT9nr>)yc&rFt}>`zc+H)8DK?-i^1Adk>Bk#<PN^<he#& zw~lkulSmGkI;gXh)JwIArJW50?F)T<6Z<-*LD;h&qm_?2=2^*Ui%%qUFb~*xW!bE@ zz&U(uB_r{%wS@)8C&mY1YYU%JS2)+eaoS)TU$T?Fldk9Y@rxR?SGREzonlH6^Ugya z#e}KAG3RUn=d;>)k|QjNb^)KsO~BwnV<Yy+#|%2uHZJ1J+eJ7!-Tj+eBXuM|XJS|s zy`v*Mdb7JYezUuTwL^Wz&6<Eq8Gx2J)6J(c5^tdUf$P9_oRva3nb<(!V{eBY)w7vS zSLVR$cgupy8&E(xrzUoQ&td~&E~rFG>|`Z&LJtEFts*Wb?24b&^3I`_4M47?Z4vUE z)Gp9=#4PNNY@s?44er4n)Q!?LKGd4GoV~FnOvPQ{O3Sa-Jh-eG?O`A1RD({#!YV-x zul}%~-RzDKE;lyeh$9Z(*G=0x&H<ZtLWD*yjvZ$-^$91sR>KuYq(w*Q@S!%k2adTo z0?v$a@XA;pOz!F!Ua?LziF6;XLOQ(!P6<Dd4j~R#$CzHjahJu=08f=*;acp%$%I`Y z_wTbU)5ERPr<6YsmDiH99Qs2T$U4wq>_9{8k3+7knLZ5jgI!1aP{*E~hdYWLdk%L@ zb%+kHV?Q;f+dGgt1_xPZPx$Cib1qh<M$`s9#MvKm*h%nBB~DI8*-Mc=;v8{dOp(Xc zK!;7~5Ka?{GpPm|l+u-OouW@E`VbasY$z)FG<zUU&}Sbr7d*ILF>YYb#V1%&wBNN| z$tWLIe1pL(lTRny8x{8^_ALvQPM9-_c{2}vEK)t;&$3Z7oeRRo`W&8gx9}AB2uyP; z1#aceGo8n%5=A~QMHyvpW7#8QTq0}ouAJ$dvxAiA98*oUH<2wV?aJ(=@!txJT38(g z5xdqAb}c;6@jxpE^}577kj{llbstwr@eRKu@NvYX^Fb8(&j&oHs*$bW-p;q%Lpa*S zJ{A8Vfvx)0T2fa>F<dr!l4^PMM-I`(Zh0cn3byiIin&oKiwk^ns=((*cbjy9FWM!1 kW^<kZdG9CLa@u?d(JP56ryXYx(aULfcyvpcg|;341NIM3AOHXW literal 9405 zcmbVSO>f&s620qJ7y}s2AsdOLtdHCrJ9fN?9m6s<hruAAB}OKOCb<-)#536czVB5v zo82Tm*xAEm#Qv<VdR4Ew+Us?ZWy!iui+nfQB;VtGR&UaEJt~9IoAtMEkNY&M)BM}F zk+z1T`o4@ttCLk-RLNCbC#%EyWK>Q^Z#LyA+OP9<x=Hd{n`gb2`DnK~xvPqwFZkzx zp_PtYVB|paa<s$v^QWrFi&Y()WrGQ~3j)mflpd0=PidWeDB^0PYXu=XJ{};&MO??G zEs~YGts-|o!MTte%8aMzokIp9{Ou|$>K)D;Q0Cx7);+7AJ|x>TUnT!$&yw<m6N>S( zuHrBIy4=g0kTU=J8^(koHSzIK%O-3XP-{4qL0scHZ<e66y2OmV*m94frg6qa=IDH= z_6dJ4*nN{cKPDCB4VR<UFTb8ZR2b<pt&-|2+m1zSZAkMiT29^`Su4UKYYu9xYQBS$ z-+mdD(S+;YCdnq*+$XzYU#%1F6WKFHa>k3qo-yj4ag0vDuc#U=L^v^4eMp~^EX@tN zqEqTKqDk)J${aP~Q7_|c$FoLq*85~#RGVfln{nhu9aD&lmCp`w7U%1yWQG4W`>X-r z6oB89Q$pwAsY>F_T~TDK^bf8+rP#Fe>O@WXIXNU$_jHPmNID3$&qWMCQ-|oHnO0X~ zHf?94TI{L#abDzgRb-c0@q_K|S*CK9^QUC}`$bYFIoxTTie{(IaZW}1D=fvGI|EN? zf<`x|umU9S%5oa<z^6Px2c)MKVW%Q5#fOlm6jFe9DiU7CX?Fenwh*^vKc#Cnor!o3 zyk``t<4`m80T13Y>RNW03HbZ?npyE?BA$b<8AWtA>EUYz(V>iUM6ZkebE(cg6Mvo4 zUsvfi2c~eGxxhFG-X6{09!=jKE$Fp#k@ylC&pyTZ2IyfUMg9lyQO*^;XZuY`OiO5- z3wY-QuW6UnAt{|P+Y$-M&)W2jdoA?G)zx|N{G8fBoo{i+xj9)D?{?Q0W^Xyzf(JYQ ze0_28;WEtxNedhf+pn{9^KSFVEv{k+{jF)Be=ig_h!+682DXJ@W-)-7g*D1TjN({+ z(KQMbwGade?rdON5I<u1rDD4-$}fkcs=yMMvZOssXj_UI+R(PNpjo~Gnx&O**#*tA zD_;*ZOI2+@R6;7za4;E&^}$3CMA!rqMS2_Ug9$};p(?{fdS5NU#EKqFM0UpRRZ?lh z4<;19al2q5if!UGkrqs#SJ+yl7yc8t1Rzm3Lf^dt;Z?Ci04Bv4$H9W2D|Sy=L13Jq zegd>Nh7rNBh&Dk$H|T_$0K94pAAnP_p#z=(T-w(YsFlOKz!9|E8YsC!yDoqNVOWEp zK&iEbP!P6i4n@rasu6ls)hN5Vsv*C67VWEslnKG%QaACg2K8vV0LG+pK$m^x2xaP) z<VIgPAVz;n+8aFCSB|iySw?j1r44~glmVI2O&kJnqsbg});g)iI0HfzErl~6e&E~d zG%;hK=RVnT4ns@;zQtApnik4cc|o!m<7!&D)yY8nnkLg?mM10mn~SDFv3*SoyXuxo zt}YCPQM>L+X6?ZcyxO1{<cfY(i^*C7A=d_k%CB9V3enmjVl4-!q*+blJbl~rb3o%~ zSq58C=>we~)knn~%Gv|w5cXExC~3Rq5XyFS(>DjXT+Ly&gDt@0L_J8nZwn!EvtKVH zfUf(f2YdHzp&Tv|See_mg%Ee6XmYoQdJwl!w3{zO{=b<mhYEFM09b!OxAQjqk;8qc z&%0;s>lXAby3Mvt7S7a_kpL`D4TH$LiE98RZ!*`1q69i*JcwPP)rKd*1=!t~&p0m^ zpXuV1z8ld&?~M<D)oB-p`M~ad^MTzt%#Y}x`DPg~Jo>wy0=Bm~K>&)!5XV!%^me*l z-FkPG0Mu^Bh@=j%Lt*v51a=6Hr)IjSz-<eZ59No#^Bw(!6Ur^{4#Do6-|8m>$@laV zg5^2P(@zMpx66p|US<%2;oHn01g&EQH!}!%QHH%Ce47`9V0et{<1_@XH@kt&F~(Ju z5c^-Niq~h%TGhB+Ju@>2!S+;<P<&TKa(h-4f!Hz6RT22TuOiSphxsZ3%{M}W;L+dW zBLvOczE|)Og68d*9zH<lz8F2{3_<NY^zFmG%*<^z1kdx>!tB@iQ~H?JcX9nBiFpW; zZ#D$GW2)rG)Rx?TRU=??^ypnwx>_m0<N`>RKkjhxPmyQj>leKbgrIhAO+r68&kx8V z52@bTL%I6u@*rQXq2x*0!0upSnaPZ!Yb%g#BQppVGaV(9YJoBD_Br;xBs_*-Urcn3 z3=;OWOEJL19OfGtJlyOL_C<duPK0vHHGw_^17pbbHpd+h_aUTVcepYoyyAu+WE)UI z@Gu4rcmnRfcE27dz@fg_eNcc+t$rJ3#^zvFs#xf>t6~snvn6<wDsUo(P^jyCJPIh3 z!+cHQ`fHaF$-A18OK_tp&?lB~j0qAo1mWc#uO}DH4S*~Xf^LWP3F>X60_kFm8(HM$ z>>jSKPcSI;*~B(mrQ)6%VuVJ!I+c5|A|6aREShkq88Z}L<SuObA$nhmkhV~+4CN-= zlcF_=a^(QvgfexPA)*Xhq6|rtszI-=7J@1XF1ZIciZVe#c(U6j=#kP6{&5Pmp)lrP zhejTnJY_*yY=+ZEpiyic$#vM@CIU&ec2jX8FeVN#utOxYIoP49|Ab&yY^(UWt@}n` zQ`wwpN)t+>mN+Baj>Twx7><NHMdJ~P6GLS2>cyT4<jIBQLfko(FlDz*fITF<Q0HI= zVf}9X|CZ?e8keomw-qjl+T8*dwQ=d!w+K)vZ>fPn3rQZcUM^X~=b|WYwyc9WW%)Lz zw4qt^3SJ8(0pNJ+_L@(~a*cj_2?ZwzC_9B)DZ{^3)kSK7^T-3iWBWj$m3jYxK$DC+ zR#x~R@_-atauh2+(+jM1R+d@1jtOu*H8Ko37J2c0pU01x)ZVFE48;(qQN+Jb>V1`; z7gE%c^kO0fWUI2aPVWU-KPA`V`(2ghHKOmX8A*2|w>R}5t-xD5v73qit0puhhM#<B zIY*vWOHzVFWNTK+4=LVao{?N|EuQkv|L~U_?VrWtmr~x6n9s18(9!aEChC+rgSeFz z8L-VwT$Xrwz-Uuu0J9nY9gE<NGvn?GUTC`TQv#gRYuz8Kj_rp#;ISxvN80oLJu@R2 z#TE|52QSC>MN#w98`LzKF_6zstW-?Djf+7<ztJ+6-^{UAT)(S5hTkqZlNL{avfKFC zK2!AYspS(XFFWZTN+`ypu1B_soaS+7co{qZ1R`DaLK`ibd3cV))1lrRZi<`*Z)3(~ zGvpers8XhXh`TUQ$g2jHL2hTZZ!rV)KD?AXh!k7A4mL`$rEP_)QoJH(A3-fR<0IjI zNAI#*O`EMm2aRJR3p5hIf4J{imc~1QyCi`EYs~<eYRPkt<bATuUAD(--$nAc-!^YS z^8BH$tciKkAqin5(_ox`F(((HrKTdy*x)AqiE|(WG@%wrAc7540*7inq|E{~2~-y) zE-@F*h(w#`L&Mno-&A}q@TRM;Q0#;Idkq}qu*KN<EkM&$5)@S?czsKD5_Y(y1w(5V zV?wFX+<v+Jh+$fqu{bj$q&B00NcClT!IWxPz0H-axJcC43kj5-m}%oHC$<kTWAm=U z893!lvfIU5Uc|=jPj)zLZC^Xhod4P1tq*f~`{BeNdkY-fU)=jX-#lL>IcK#$#U}2% z_t<|0$2_4*^9Db5KRDO@wsA+vwcBgFd$_Zc&SCDkePJ56Ke=TWR(}g;6zb~zd!`j2 zP3oc>{Nbl=fr~F??zc!V^td}7P7YMyflP*C4>WWA=4qMYIltM}dH_4UFYzJ0*a#XS zIAUe}Bt;Op-k1v)?=dFPWESg$d^!NRwDBlOYgz;wmy!$3bq*(OyD(EPH?2r_#jduY zQ!Y4&LfF`!)IRm$4eqhnCFey}R3>lfKKI4hkN5>)*BN1}n)=qaOX}<VdqHtn(v%!P z-}&&z4eJC&)tF?HtnA+r$b+AblhBV9&SV>`(S7i{EUM?2DT&-~j*l*nr<1S8tK;d{ z<NM>}cz3+ukB6gUwBB%-6l2XFynIgaw8}<`tPvdcM<Tb{mt}>Bq463QpRHQRkMDQ_ zY)Yv=;wlFTx_XeOK}4ySB;#AZlv7zWT%F)$llp8`##cfHv>*I?7GkPGQ9>sO8$bbI z51InP25k+IFN9ccLpJi)lMG)UAO%_}EZ~o@mrp(uViD{iti~PMI}qOlwNtJJ(rFW8 zz6omQN1jMJ+ss~5`|rF_csnz{$5|gU{H=<6RL$`r##hy)EZ0iOgnsw#O;!e@cmD;# CL1&c! -- GitLab From 8701e8fa6a3d516ee4dc8e020674772815e2cb2a Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 15:50:43 +0200 Subject: [PATCH 403/459] DataModelAthenaPool: cmake cleanup Cleanup cmake configuration, update link dependencies and factorize test definition. --- Control/DataModelAthenaPool/CMakeLists.txt | 98 +++++----------------- 1 file changed, 23 insertions(+), 75 deletions(-) diff --git a/Control/DataModelAthenaPool/CMakeLists.txt b/Control/DataModelAthenaPool/CMakeLists.txt index e09566b6213..19e155bd76f 100644 --- a/Control/DataModelAthenaPool/CMakeLists.txt +++ b/Control/DataModelAthenaPool/CMakeLists.txt @@ -1,29 +1,11 @@ -################################################################################ -# Package: DataModelAthenaPool -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DataModelAthenaPool ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthContainers - Control/AthLinks - Control/AthenaBaseComps - Control/AthenaKernel - Control/Navigation - Control/RootUtils - Database/AthenaPOOL/AthenaPoolCnvSvc - GaudiKernel - PRIVATE - AtlasTest/TestTools - Control/SGTools - Database/AthenaPOOL/AthenaPoolUtilities - Database/AthenaPOOL/RootConversions ) - # External dependencies: find_package( CLHEP ) -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) +find_package( ROOT COMPONENTS Core RIO ) # Component(s) in the package: atlas_add_library( DataModelAthenaPoolLib @@ -31,70 +13,36 @@ atlas_add_library( DataModelAthenaPoolLib PUBLIC_HEADERS DataModelAthenaPool PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES AthContainers AthLinks AthenaBaseComps AthenaKernel Navigation RootUtils GaudiKernel RootUtilsPyROOT AthenaPoolCnvSvcLib - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} TestTools SGTools AthenaPoolUtilities RootConversions ) + LINK_LIBRARIES AthLinks AthenaBaseComps AthenaKernel AthenaPoolCnvSvcLib GaudiKernel Navigation RootUtils + PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} ${ROOT_LIBRARIES} AthContainers RootConversions ) atlas_add_component( DataModelAthenaPool src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} LINK_LIBRARIES DataModelAthenaPoolLib ) atlas_add_dictionary( DataModelAthenaPoolDictDict DataModelAthenaPool/DataModelAthenaPoolDict.h DataModelAthenaPool/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthContainers AthLinks AthenaBaseComps AthenaKernel Navigation RootUtils RootUtilsPyROOT GaudiKernel TestTools SGTools AthenaPoolCnvSvcLib AthenaPoolUtilities RootConversions DataModelAthenaPoolLib ) - -atlas_add_test( DataLink_p2_test - SOURCES - test/DataLink_p2_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthContainers AthLinks AthenaBaseComps AthenaKernel Navigation RootUtils RootUtilsPyROOT GaudiKernel TestTools SGTools AthenaPoolCnvSvcLib AthenaPoolUtilities RootConversions DataModelAthenaPoolLib ) - -atlas_add_test( ElementLinkCnv_p1_test - SOURCES - test/ElementLinkCnv_p1_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthContainers AthLinks AthenaBaseComps AthenaKernel Navigation RootUtils RootUtilsPyROOT GaudiKernel TestTools SGTools AthenaPoolCnvSvcLib AthenaPoolUtilities RootConversions DataModelAthenaPoolLib ) - -atlas_add_test( ElementLinkCnv_p2_test - SOURCES - test/ElementLinkCnv_p2_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthContainers AthLinks AthenaBaseComps AthenaKernel Navigation RootUtils RootUtilsPyROOT GaudiKernel TestTools SGTools AthenaPoolCnvSvcLib AthenaPoolUtilities RootConversions DataModelAthenaPoolLib ) - -atlas_add_test( ElementLinkCnv_p3_test - SOURCES - test/ElementLinkCnv_p3_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthContainers AthLinks AthenaBaseComps AthenaKernel Navigation RootUtils RootUtilsPyROOT GaudiKernel TestTools SGTools AthenaPoolCnvSvcLib AthenaPoolUtilities RootConversions DataModelAthenaPoolLib ) - -atlas_add_test( NavigableCnv_p1_test - SOURCES - test/NavigableCnv_p1_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthContainers AthLinks AthenaBaseComps AthenaKernel Navigation RootUtils RootUtilsPyROOT GaudiKernel TestTools SGTools AthenaPoolCnvSvcLib AthenaPoolUtilities RootConversions DataModelAthenaPoolLib ) - -atlas_add_test( NavigableCnv_p2_test - SOURCES - test/NavigableCnv_p2_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthContainers AthLinks AthenaBaseComps AthenaKernel Navigation RootUtils RootUtilsPyROOT GaudiKernel TestTools SGTools AthenaPoolCnvSvcLib AthenaPoolUtilities RootConversions DataModelAthenaPoolLib ) - -atlas_add_test( ElementLinkVectorCnv_p1_test - SOURCES - test/ElementLinkVectorCnv_p1_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthContainers AthLinks AthenaBaseComps AthenaKernel Navigation RootUtils RootUtilsPyROOT GaudiKernel TestTools SGTools AthenaPoolCnvSvcLib AthenaPoolUtilities RootConversions DataModelAthenaPoolLib ) - -atlas_add_test( VectorElementLinkCnv_p1_test - SOURCES - test/VectorElementLinkCnv_p1_test.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthContainers AthLinks AthenaBaseComps AthenaKernel Navigation RootUtils RootUtilsPyROOT GaudiKernel TestTools SGTools AthenaPoolCnvSvcLib AthenaPoolUtilities RootConversions DataModelAthenaPoolLib ) + LINK_LIBRARIES DataModelAthenaPoolLib ) # Install files from the package: -atlas_install_python_modules( python/*.py - POST_BUILD_CMD ${ATLAS_FLAKE8} ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) atlas_install_joboptions( share/DataModelAthenaPool_jobOptions.py ) +# Tests in the package: +function( _add_test name ) + atlas_add_test( ${name} + SOURCES + test/${name}.cxx + LINK_LIBRARIES DataModelAthenaPoolLib SGTools ) +endfunction( _add_test ) + +_add_test( DataLink_p2_test ) +_add_test( ElementLinkCnv_p1_test ) +_add_test( ElementLinkCnv_p2_test ) +_add_test( ElementLinkCnv_p3_test ) +_add_test( NavigableCnv_p1_test ) +_add_test( NavigableCnv_p2_test ) +_add_test( ElementLinkVectorCnv_p1_test ) +_add_test( VectorElementLinkCnv_p1_test ) + -- GitLab From 28cfd98fa258619699eea533e28876e8bd2070ed Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 16:14:31 +0200 Subject: [PATCH 404/459] DataModelRoot: cmake cleanup --- Control/DataModelRoot/CMakeLists.txt | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/Control/DataModelRoot/CMakeLists.txt b/Control/DataModelRoot/CMakeLists.txt index ba8b1ba365f..d440eb34ca0 100644 --- a/Control/DataModelRoot/CMakeLists.txt +++ b/Control/DataModelRoot/CMakeLists.txt @@ -1,29 +1,20 @@ -################################################################################ -# Package: DataModelRoot -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DataModelRoot ) -atlas_depends_on_subdirs ( - PUBLIC - Control/CxxUtils - PRIVATE - Control/RootUtils ) - # External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) +find_package( ROOT COMPONENTS Core RIO ) # Component(s) in the package: atlas_add_library( DataModelRoot src/*.cxx PUBLIC_HEADERS DataModelRoot INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES RootUtils ${ROOT_LIBRARIES} ) + LINK_LIBRARIES ${ROOT_LIBRARIES} CxxUtils + PRIVATE_LINK_LIBRARIES RootUtils ) atlas_add_dictionary( DataModelRootDict DataModelRoot/DataModelRootDict.h DataModelRoot/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} DataModelRoot ) - + LINK_LIBRARIES DataModelRoot ) -- GitLab From 6ca9154357773fa8b2c5a4e211fbc41f3df855ca Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Wed, 29 Jul 2020 16:39:45 +0200 Subject: [PATCH 405/459] DataModelTest: cmake cleanup - remove atlas_depends_on_subdirs - update link and external dependencies --- .../DataModelTestDataCommon/CMakeLists.txt | 40 +++++-------------- .../DataModelTestDataRead/CMakeLists.txt | 39 +++--------------- .../DataModelTestDataReadCnv/CMakeLists.txt | 15 +------ .../DataModelTestDataWrite/CMakeLists.txt | 40 +++---------------- .../DataModelTestDataWriteCnv/CMakeLists.txt | 19 +-------- 5 files changed, 24 insertions(+), 129 deletions(-) diff --git a/Control/DataModelTest/DataModelTestDataCommon/CMakeLists.txt b/Control/DataModelTest/DataModelTestDataCommon/CMakeLists.txt index 58266754b72..1be2dece114 100644 --- a/Control/DataModelTest/DataModelTestDataCommon/CMakeLists.txt +++ b/Control/DataModelTest/DataModelTestDataCommon/CMakeLists.txt @@ -1,28 +1,8 @@ -################################################################################ -# Package: DataModelTestDataCommon -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DataModelTestDataCommon ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthContainers - Control/AthContainersInterfaces - Control/AthenaKernel - Event/xAOD/xAODCore - Event/xAOD/xAODTrigger - GaudiKernel - PRIVATE - Event/EventInfo - Control/AthLinks - Control/StoreGate - Control/AthenaBaseComps - Database/AthenaPOOL/AthenaPoolUtilities - Database/RegistrationServices - Database/PersistentDataModel - Trigger/TrigDataAccess/TrigSerializeCnvSvc ) - # External dependencies: find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) @@ -31,29 +11,27 @@ atlas_add_library( DataModelTestDataCommonLib src/*.cxx PUBLIC_HEADERS DataModelTestDataCommon PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES AthContainers AthenaKernel xAODCore xAODTrigger EventInfo GaudiKernel - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthLinks StoreGateLib AthenaBaseComps AthenaPoolUtilities RegistrationServicesLib ) + LINK_LIBRARIES AthContainers AthContainersInterfaces AthenaPoolUtilities AthLinks AthenaKernel EventInfo GaudiKernel RegistrationServicesLib xAODCore xAODTrigger + PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps CxxUtils PersistentDataModel StoreGateLib ) atlas_add_component( DataModelTestDataCommon src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib AthenaKernel xAODCore GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests TrigSteeringEvent DataModelTestDataCommonLib PersistentDataModel RegistrationServicesLib ) + LINK_LIBRARIES DataModelTestDataCommonLib ) atlas_add_dictionary( DataModelTestDataCommonDict DataModelTestDataCommon/DataModelTestDataCommonDict.h DataModelTestDataCommon/selection.xml INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthenaKernel xAODCore xAODTrigger GaudiKernel AthLinks DataModelTestDataCommonLib + LINK_LIBRARIES DataModelTestDataCommonLib NO_ROOTMAP_MERGE EXTRA_FILES src/dict/*.cxx ELEMENT_LINKS DMTest::BAuxVec DMTest::CVec_v1 ) - atlas_add_sercnv_library ( DataModelTestDataCommonSerCnv - FILES DataModelTestDataCommon/CVec.h DataModelTestDataCommon/CView.h DataModelTestDataCommon/CAuxContainer.h - TYPES_WITH_NAMESPACE DMTest::CVec DMTest::CView DMTest::CAuxContainer - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthenaKernel xAODCore xAODTrigger GaudiKernel AthLinks TrigSerializeCnvSvcLib DataModelTestDataCommonLib ) + FILES DataModelTestDataCommon/CVec.h DataModelTestDataCommon/CView.h DataModelTestDataCommon/CAuxContainer.h + TYPES_WITH_NAMESPACE DMTest::CVec DMTest::CView DMTest::CAuxContainer + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} DataModelTestDataCommonLib TrigSerializeCnvSvcLib ) # Install files from the package: atlas_install_scripts( scripts/*.py ) diff --git a/Control/DataModelTest/DataModelTestDataRead/CMakeLists.txt b/Control/DataModelTest/DataModelTestDataRead/CMakeLists.txt index f50079e43ee..7d7b724a907 100644 --- a/Control/DataModelTest/DataModelTestDataRead/CMakeLists.txt +++ b/Control/DataModelTest/DataModelTestDataRead/CMakeLists.txt @@ -1,55 +1,28 @@ -################################################################################ -# Package: DataModelTestDataRead -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DataModelTestDataRead ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthContainers - Control/AthLinks - Control/AthenaKernel - Control/DataModelAthenaPool - Control/DataModelTest/DataModelTestDataCommon - GaudiKernel - PRIVATE - Control/AthContainersInterfaces - Control/AthenaBaseComps - Control/CxxUtils - Control/StoreGate - Event/xAOD/xAODCore - Trigger/TrigEvent/TrigSteeringEvent - Trigger/TrigEvent/TrigNavigation ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - # Component(s) in the package: atlas_add_library( DataModelTestDataReadLib src/*.cxx PUBLIC_HEADERS DataModelTestDataRead - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES AthContainers AthLinks DataModelTestDataCommonLib GaudiKernel DataModelAthenaPoolLib StoreGateLib SGtests TrigSteeringEvent TrigNavigationLib - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps AthenaKernel CxxUtils xAODCore ) + LINK_LIBRARIES AthContainers AthLinks AthenaKernel DataModelAthenaPoolLib DataModelTestDataCommonLib TrigNavigationLib xAODCore + PRIVATE_LINK_LIBRARIES AthContainersInterfaces AthenaBaseComps CxxUtils GaudiKernel StoreGateLib TrigSteeringEvent ) atlas_add_component( DataModelTestDataRead src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib DataModelTestDataCommonLib GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests xAODCore TrigSteeringEvent DataModelTestDataReadLib ) + LINK_LIBRARIES DataModelTestDataReadLib ) atlas_add_dictionary( DataModelTestDataReadDict DataModelTestDataRead/DataModelTestDataReadDict.h DataModelTestDataRead/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib DataModelTestDataCommonLib GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests xAODCore DataModelTestDataReadLib + LINK_LIBRARIES DataModelTestDataReadLib NO_ROOTMAP_MERGE EXTRA_FILES src/dict/*.cxx ELEMENT_LINKS DataVector<DMTest::B> ) - atlas_add_sercnv_library ( DataModelTestDataReadSerCnv FILES DataModelTestDataRead/HVec.h DataModelTestDataRead/HView.h DataModelTestDataRead/HAuxContainer.h TYPES_WITH_NAMESPACE DMTest::HVec DMTest::HView DMTest::HAuxContainer - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers xAODCore xAODTrigger GaudiKernel AthLinks TrigSerializeCnvSvcLib DataModelTestDataCommonLib DataModelTestDataReadLib ) + LINK_LIBRARIES DataModelTestDataReadLib TrigSerializeCnvSvcLib ) diff --git a/Control/DataModelTest/DataModelTestDataReadCnv/CMakeLists.txt b/Control/DataModelTest/DataModelTestDataReadCnv/CMakeLists.txt index a9ade5a9343..410f15da91d 100644 --- a/Control/DataModelTest/DataModelTestDataReadCnv/CMakeLists.txt +++ b/Control/DataModelTest/DataModelTestDataReadCnv/CMakeLists.txt @@ -1,21 +1,8 @@ -################################################################################ -# Package: DataModelTestDataReadCnv -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DataModelTestDataReadCnv ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Database/AthenaPOOL/AthenaPoolUtilities - PRIVATE - Control/AthenaKernel - Control/DataModelTest/DataModelTestDataCommon - Control/DataModelTest/DataModelTestDataRead - Database/AthenaPOOL/AthenaPoolCnvSvc ) - -# tag no_merge_componentslist was not recognized in automatic conversion in cmt2cmake - # Component(s) in the package: atlas_add_poolcnv_library( DataModelTestDataReadCnvPoolCnv src/*.cxx diff --git a/Control/DataModelTest/DataModelTestDataWrite/CMakeLists.txt b/Control/DataModelTest/DataModelTestDataWrite/CMakeLists.txt index 66ec36d5e5e..2e619ecb3f8 100644 --- a/Control/DataModelTest/DataModelTestDataWrite/CMakeLists.txt +++ b/Control/DataModelTest/DataModelTestDataWrite/CMakeLists.txt @@ -1,56 +1,28 @@ -################################################################################ -# Package: DataModelTestDataWrite -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DataModelTestDataWrite ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/AthContainers - Control/AthLinks - Control/AthenaKernel - Control/DataModelAthenaPool - Control/DataModelTest/DataModelTestDataCommon - Event/xAOD/xAODCore - GaudiKernel - PRIVATE - Trigger/TrigEvent/TrigSteeringEvent - Trigger/TrigEvent/TrigNavigation - Control/AthContainersInterfaces - Control/AthenaBaseComps - Control/CxxUtils - Control/StoreGate ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - # Component(s) in the package: atlas_add_library( DataModelTestDataWriteLib src/*.cxx PUBLIC_HEADERS DataModelTestDataWrite - PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES AthContainers AthLinks DataModelTestDataCommonLib xAODCore GaudiKernel DataModelAthenaPoolLib StoreGateLib SGtests TrigNavigationLib TrigSteeringEvent - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps AthenaKernel CxxUtils ) + LINK_LIBRARIES AthContainers AthLinks AthenaKernel DataModelAthenaPoolLib DataModelTestDataCommonLib TrigNavigationLib xAODCore + PRIVATE_LINK_LIBRARIES AthContainersInterfaces AthenaBaseComps GaudiKernel StoreGateLib TrigSteeringEvent ) atlas_add_component( DataModelTestDataWrite src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib DataModelTestDataCommonLib xAODCore GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests TrigSteeringEvent DataModelTestDataWriteLib ) + LINK_LIBRARIES DataModelTestDataWriteLib ) atlas_add_dictionary( DataModelTestDataWriteDict DataModelTestDataWrite/DataModelTestDataWriteDict.h DataModelTestDataWrite/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib DataModelTestDataCommonLib xAODCore GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests DataModelTestDataWriteLib + LINK_LIBRARIES DataModelTestDataWriteLib NO_ROOTMAP_MERGE EXTRA_FILES src/dict/*.cxx ELEMENT_LINKS DataVector<DMTest::B> ) - - atlas_add_sercnv_library ( DataModelTestDataWriteSerCnv FILES DataModelTestDataWrite/HVec.h DataModelTestDataWrite/HView.h DataModelTestDataWrite/HAuxContainer.h TYPES_WITH_NAMESPACE DMTest::HVec DMTest::HView DMTest::HAuxContainer - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers xAODCore xAODTrigger GaudiKernel AthLinks TrigSerializeCnvSvcLib DataModelTestDataCommonLib DataModelTestDataWriteLib ) + LINK_LIBRARIES DataModelTestDataWriteLib TrigSerializeCnvSvcLib ) diff --git a/Control/DataModelTest/DataModelTestDataWriteCnv/CMakeLists.txt b/Control/DataModelTest/DataModelTestDataWriteCnv/CMakeLists.txt index 6c2c91a569f..e629baee950 100644 --- a/Control/DataModelTest/DataModelTestDataWriteCnv/CMakeLists.txt +++ b/Control/DataModelTest/DataModelTestDataWriteCnv/CMakeLists.txt @@ -1,21 +1,8 @@ -################################################################################ -# Package: DataModelTestDataWriteCnv -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( DataModelTestDataWriteCnv ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Database/AthenaPOOL/AthenaPoolUtilities - PRIVATE - Control/DataModelTest/DataModelTestDataCommon - Control/DataModelTest/DataModelTestDataWrite - Database/AthenaPOOL/AthenaPoolCnvSvc ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - atlas_add_library( DataModelTestDataWriteCnv DataModelTestDataWriteCnv/CLinksAOD_p1.h INTERFACE @@ -29,11 +16,9 @@ atlas_add_poolcnv_library( DataModelTestDataWriteCnvPoolCnv TYPES_WITH_NAMESPACE DMTest::BVec DMTest::DVec DMTest::DDer DMTest::BDer DMTest::ELVec DMTest::BAux DMTest::BAuxVec DMTest::BAuxStandalone DMTest::C DMTest::CVec DMTest::CAuxContainer DMTest::G DMTest::GVec DMTest::GAuxContainer DMTest::CVecWithData DMTest::CInfoAuxContainer DMTest::CTrigAuxContainer DMTest::CView DMTest::H DMTest::HVec DMTest::HAuxContainer DMTest::HView DMTest::S1 DMTest::S2 DMTest::CLinks DMTest::CLinksContainer DMTest::CLinksAuxInfo DMTest::CLinksAuxContainer DMTest::CLinksAOD LINK_LIBRARIES AthenaPoolUtilities DataModelTestDataCommonLib DataModelTestDataWriteLib AthenaPoolCnvSvcLib DataModelTestDataWriteCnv ) - atlas_add_dictionary( DataModelTestDataWriteCnvDict DataModelTestDataWriteCnv/DataModelTestDataWriteCnvDict.h DataModelTestDataWriteCnv/selection.xml - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} DataModelTestDataCommonLib DataModelTestDataWriteCnv + LINK_LIBRARIES DataModelTestDataCommonLib DataModelTestDataWriteCnv NO_ROOTMAP_MERGE ) -- GitLab From 309acf57a15724af11ba13bfbe2ae0bd40731891 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Thu, 30 Jul 2020 09:39:06 +0200 Subject: [PATCH 406/459] OverlayByteStreamAlgs: cmake fixes/cleanup --- .../OverlayByteStreamAlgs/CMakeLists.txt | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/Event/EventOverlay/OverlayByteStreamAlgs/CMakeLists.txt b/Event/EventOverlay/OverlayByteStreamAlgs/CMakeLists.txt index a4998e22dfb..899ed6e11c7 100644 --- a/Event/EventOverlay/OverlayByteStreamAlgs/CMakeLists.txt +++ b/Event/EventOverlay/OverlayByteStreamAlgs/CMakeLists.txt @@ -1,24 +1,14 @@ -################################################################################ -# Package: OverlayByteStreamAlgs -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( OverlayByteStreamAlgs ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - GaudiKernel - PRIVATE - Control/AthenaBaseComps - Control/StoreGate - Event/ByteStreamCnvSvc - Trigger/TrigConfiguration/TrigConfInterfaces - Trigger/TrigEvent/TrigSteeringEvent - Trigger/TrigT1/TrigT1Result ) +# External dependencies: +find_package( ROOT COMPONENTS MathCore ) # Component(s) in the package: atlas_add_component( OverlayByteStreamAlgs src/*.cxx src/components/*.cxx - LINK_LIBRARIES GaudiKernel AthenaBaseComps ByteStreamCnvSvcLib StoreGateLib - TrigSteeringEvent TrigT1Result ) + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps AthenaKernel ByteStreamCnvSvcLib GaudiKernel StoreGateLib TrigConfHLTData TrigConfInterfaces TrigSteeringEvent TrigT1Result ) -- GitLab From bc853323352b05537a5ab9d76c6e8465a5d8779c Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Thu, 30 Jul 2020 09:39:23 +0200 Subject: [PATCH 407/459] AthContainersRoot: cmake fixes/cleanup --- Control/AthContainersRoot/CMakeLists.txt | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/Control/AthContainersRoot/CMakeLists.txt b/Control/AthContainersRoot/CMakeLists.txt index 7e80cbc8b66..4458818f049 100644 --- a/Control/AthContainersRoot/CMakeLists.txt +++ b/Control/AthContainersRoot/CMakeLists.txt @@ -1,30 +1,18 @@ -################################################################################ -# Package: AthContainersRoot -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( AthContainersRoot ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - GaudiKernel - Control/AthContainersInterfaces - Control/RootUtils - PRIVATE - AtlasTest/TestTools - Control/AthContainers - Control/AthLinks - Control/CxxUtils ) - # External dependencies: -find_package( ROOT COMPONENTS Core ) +find_package( ROOT COMPONENTS Core Tree ) # Component(s) in the package: atlas_add_library( AthContainersRoot src/*.cxx PUBLIC_HEADERS AthContainersRoot PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks RootUtils ) + PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks CxxUtils RootUtils + LINK_LIBRARIES AthenaKernel GaudiKernel AthContainersInterfaces ) atlas_add_dictionary( AthContainersRootTestDict -- GitLab From 0d55a49989d396c4b13453764559b68b50ab52ea Mon Sep 17 00:00:00 2001 From: Stephen Nicholas Swatman <stephen.nicholas.swatman@cern.ch> Date: Thu, 30 Jul 2020 14:46:29 +0200 Subject: [PATCH 408/459] Fix DEBUG mode segfault in GlobalChi2Fitter This commit fixes a sloppy segmentation fault I introduced in !35126. The segmentation fault occurs only in debug mode, as it concerns the deferencing of a smart pointer after release. We simply re-order the lines to fix the issue. Affects ATR-21725. --- .../TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx index e7620d2bb50..64e6cb74a50 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx @@ -7354,11 +7354,9 @@ namespace Trk { std::bitset<TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern; typePattern.set(TrackStateOnSurface::Perigee); - std::unique_ptr<const TrackStateOnSurface> pertsos = std::make_unique<const TrackStateOnSurface>(nullptr, per.release(), nullptr, nullptr, typePattern); - ATH_MSG_DEBUG("Final perigee: " << *per << " pos: " << per->position() << " pT: " << per->pT()); - return pertsos; + return std::make_unique<const TrackStateOnSurface>(nullptr, per.release(), nullptr, nullptr, typePattern); } std::unique_ptr<Track> GlobalChi2Fitter::makeTrack( -- GitLab From 08c8009ace28b4de0043a174d92aab7e8fec39da Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <fwinkl@cern> Date: Thu, 30 Jul 2020 14:48:13 +0200 Subject: [PATCH 409/459] AthenaMonitoring: Add missing MathCore ROOT link dependency --- Control/AthenaMonitoring/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Control/AthenaMonitoring/CMakeLists.txt b/Control/AthenaMonitoring/CMakeLists.txt index 2be46e86971..ca5e9b503c1 100644 --- a/Control/AthenaMonitoring/CMakeLists.txt +++ b/Control/AthenaMonitoring/CMakeLists.txt @@ -5,7 +5,7 @@ atlas_subdir( AthenaMonitoring ) # External dependencies: find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) -find_package( ROOT COMPONENTS Core Hist ) +find_package( ROOT COMPONENTS Core Hist MathCore ) find_package( Boost ) # Component(s) in the package: -- GitLab From 3789471f46327796241349fa9dc9b601371712a3 Mon Sep 17 00:00:00 2001 From: Tamara Vazquez Schroeder <tvazquez@cern.ch> Date: Thu, 30 Jul 2020 14:58:11 +0200 Subject: [PATCH 410/459] removing L1RDO noalg from Beamspot stream --- .../python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py index 73f9826eae5..a099c413c9b 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/PhysicsP1_pp_run3_v1.py @@ -64,9 +64,9 @@ def addP1Signatures(): ChainProp(name='HLT_tilecalib_laser_TilePEB_L1CALREQ2', l1SeedThresholds=['FSNOSEED'], stream=['Tile'], groups=['RATE:TileCalibration','BW:Detector']) ] TriggerFlags.StreamingSlice.signatures = TriggerFlags.StreamingSlice.signatures() + [ - ChainProp(name='HLT_noalg_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream, 'BeamSpot'], groups=MinBiasGroup), # FIXME: BeamSpot stream added just for testing, to be removed - ChainProp(name='HLT_noalg_L1RD0_FILLED', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream, 'BeamSpot'], groups=MinBiasGroup), # FIXME: BeamSpot stream added just for testing, to be removed - ChainProp(name='HLT_noalg_idmon_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring','express'],groups=['RATE:Monitoring','BW:Detector']), + ChainProp(name='HLT_noalg_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=MinBiasGroup), + ChainProp(name='HLT_noalg_L1RD0_FILLED', l1SeedThresholds=['FSNOSEED'], stream=[PhysicsStream], groups=MinBiasGroup), + ChainProp(name='HLT_noalg_idmon_L1RD0_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring','express'],groups=['RATE:Monitoring','BW:Detector']), ChainProp(name='HLT_noalg_idmon_L1RD0_FILLED', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring'],groups=['RATE:Monitoring','BW:Detector']), ChainProp(name='HLT_noalg_idmon_L1RD0_UNPAIRED_ISO', l1SeedThresholds=['FSNOSEED'], stream=['IDMonitoring'],groups=['RATE:Monitoring','BW:Detector']), -- GitLab From cdd9669eb0f29e798050a4f44557fb78a67c2d53 Mon Sep 17 00:00:00 2001 From: yoyamagu <yohei.yamaguchi@cern.ch> Date: Fri, 31 Jul 2020 00:44:06 +0900 Subject: [PATCH 411/459] modify the size of forMS --- .../TrigL2MuonSA/src/MuFastSteering.cxx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx index 9b17f0b7a69..79fe09ef4fa 100644 --- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx +++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx @@ -1340,14 +1340,18 @@ bool MuFastSteering::storeMSRoiDescriptor(const TrigRoiDescriptor* // store TrigRoiDescriptor if (fabs(muonSA->pt()) > ZERO_LIMIT ) { + // set width of 0.1 so that ID tracking monitoring works + const float phiHalfWidth = 0.1; + const float etaHalfWidth = 0.1; + TrigRoiDescriptor* MSroiDescriptor = new TrigRoiDescriptor(roids->l1Id(), roids->roiId(), pattern.etaMap, - pattern.etaMap, - pattern.etaMap, - pattern.phiMS, + pattern.etaMap - etaHalfWidth, + pattern.etaMap + etaHalfWidth, pattern.phiMS, - pattern.phiMS); + pattern.phiMS - phiHalfWidth, + pattern.phiMS + phiHalfWidth); ATH_MSG_VERBOSE("...TrigRoiDescriptor for MS " << "pattern.etaMap/pattern.phiMS=" -- GitLab From 739c7024d0362f8e2623501edaefd9ffdb8ebbc2 Mon Sep 17 00:00:00 2001 From: Ian Connelly <ian.connelly@cern.ch> Date: Thu, 30 Jul 2020 17:12:37 +0100 Subject: [PATCH 412/459] Fixes to mutable const --- .../MuonTGC_CnvTools/src/TgcRDO_Decoder.cxx | 16 ++++++++++++---- .../MuonTGC_CnvTools/src/TgcRDO_Decoder.h | 4 ++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRDO_Decoder.cxx b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRDO_Decoder.cxx index bed05226500..20f2d990abe 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRDO_Decoder.cxx +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRDO_Decoder.cxx @@ -45,7 +45,11 @@ void Muon::TgcRDO_Decoder::applyPatch(bool patch) TgcDigit* Muon::TgcRDO_Decoder::getDigit(const TgcRawData * rawData, bool orFlag) const { - if(!m_cabling && getCabling().isFailure()) return 0; + // ITGCcablingSvc should be configured at initialise + if(!m_cabling){ + ATH_MSG_ERROR("ITGCcablingSvc is not available in TgcRDO_Decoder::getDigit()"); + return 0; + } int offset=0, offsetORed=0; @@ -95,7 +99,12 @@ Identifier Muon::TgcRDO_Decoder::getOfflineData(const TgcRawData * rawData, bool { Identifier chanId(0); - if(!m_cabling && getCabling().isFailure()) return chanId; + // ITGCcablingSvc should be configured at initialise + if(!m_cabling){ + ATH_MSG_ERROR("ITGCcablingSvc is not available in TgcRDO_Decoder::getOfflineData()"); + return chanId; + } + bctag=TgcDigit::BC_UNDEFINED; @@ -142,7 +151,7 @@ Identifier Muon::TgcRDO_Decoder::getOfflineData(const TgcRawData * rawData, bool return chanId; } -StatusCode Muon::TgcRDO_Decoder::getCabling() const { +StatusCode Muon::TgcRDO_Decoder::getCabling() { // get TGC cablingSvc const ITGCcablingServerSvc* TgcCabGet = 0; @@ -155,7 +164,6 @@ StatusCode Muon::TgcRDO_Decoder::getCabling() const { sc = TgcCabGet->giveCabling(m_cabling); if(!sc.isSuccess()) { msg(sc.isFailure() ? MSG::FATAL : MSG::ERROR) << "Could not get ITGCcablingSvc from Server!" << endmsg; - m_cabling = 0; return sc; } else { ATH_MSG_DEBUG("Found the ITGCcablingSvc."); diff --git a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRDO_Decoder.h b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRDO_Decoder.h index 7bb17d73960..43881a9a5dc 100644 --- a/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRDO_Decoder.h +++ b/MuonSpectrometer/MuonCnv/MuonTGC_CnvTools/src/TgcRDO_Decoder.h @@ -53,9 +53,9 @@ namespace Muon Identifier getOfflineData(const TgcRawData * rawData, bool orFlag, uint16_t& bctag) const; private: - StatusCode getCabling() const; + StatusCode getCabling(); - mutable const ITGCcablingSvc *m_cabling ATLAS_THREAD_SAFE; + const ITGCcablingSvc *m_cabling; bool m_applyPatch; }; -- GitLab From ea9970ea29053cf9db259fddb2b9f2ee9f0318b3 Mon Sep 17 00:00:00 2001 From: Tim Martin <tim.martin@cern.ch> Date: Thu, 30 Jul 2020 17:35:05 +0000 Subject: [PATCH 413/459] Update HLTCFConfig.py to remove HLTAcceptedEventAlgsSeq due to ATR-21824 --- .../TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py index e1378a67088..99862eee0e4 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py @@ -141,9 +141,6 @@ def makeHLTTree(newJO=False, triggerConfigHLT = None): hltFinalizeSeq = seqAND("HLTFinalizeSeq") - # TODO - this is not currently used, but can host any algs which need to run conditional on the HLT accepting the event - hltAcceptedEventAlgsSeq = parOR("HLTAcceptedEventAlgsSeq") - # make DF and CF tree from chains finalDecisions = decisionTreeFromChains(steps, triggerConfigHLT.configsList(), triggerConfigHLT.dictsList(), newJO) @@ -175,7 +172,7 @@ def makeHLTTree(newJO=False, triggerConfigHLT = None): appendCAtoAthena( summaryAcc ) # B) Then (if true), we run the accepted event algorithms. - hltFinalizeSeq += hltAcceptedEventAlgsSeq + # Add any required algs to hltFinalizeSeq here # More collections required to configure the algs below decObj = collectDecisionObjects( hypos, filters, l1decoder[0], summaryAlg ) -- GitLab From 2aa0be0c7eec1af01e22ae2f25ce92f3a3c72e80 Mon Sep 17 00:00:00 2001 From: Tim Martin <Tim.Martin@cern.ch> Date: Thu, 30 Jul 2020 19:38:43 +0200 Subject: [PATCH 414/459] Add visitedCache to findLinks, plus some general cleanup --- .../TrigCompositeUtils/TrigCompositeUtils.h | 65 ++++++++++++------- .../TrigCompositeUtils/TrigCompositeUtils.icc | 29 +++++++-- 2 files changed, 63 insertions(+), 31 deletions(-) diff --git a/Trigger/TrigSteer/TrigCompositeUtils/TrigCompositeUtils/TrigCompositeUtils.h b/Trigger/TrigSteer/TrigCompositeUtils/TrigCompositeUtils/TrigCompositeUtils.h index fa3fff465c6..1f62fa70f4a 100644 --- a/Trigger/TrigSteer/TrigCompositeUtils/TrigCompositeUtils/TrigCompositeUtils.h +++ b/Trigger/TrigSteer/TrigCompositeUtils/TrigCompositeUtils/TrigCompositeUtils.h @@ -202,10 +202,10 @@ namespace TrigCompositeUtils { /** - * @brief traverses TC links for another TC fufilling the prerequisite specified by the filter - * @return matching TC or nullptr + * @brief traverses Decision object links for another Decision object fufilling the prerequisite specified by the filter + * @return matching Decision object or nullptr **/ - const xAOD::TrigComposite* find(const xAOD::TrigComposite*, const std::function<bool(const xAOD::TrigComposite*)>& filter); + const Decision* find(const Decision*, const std::function<bool(const Decision*)>& filter); /** * @brief Prerequisite object usable with @see filter allowing to find TC having a link to an object of name @@ -220,7 +220,7 @@ namespace TrigCompositeUtils { * @brief checks if the arg TC has link of name specified at construction * @warning method for internal consumption within @see find function **/ - bool operator()(const xAOD::TrigComposite* ) const; + bool operator()(const Decision* ) const; private: std::string m_name; }; @@ -235,10 +235,10 @@ namespace TrigCompositeUtils { **/ HasObjectCollection(const std::string& name): m_name(name) {} /** - * @brief checks if the arg TC has link collection of name specified at construction + * @brief checks if the arg Decision object has link collection of name specified at construction * @warning method for internal consumption within @see find function **/ - bool operator()(const xAOD::TrigComposite* ) const; + bool operator()(const Decision* ) const; private: std::string m_name; }; @@ -286,13 +286,13 @@ namespace TrigCompositeUtils { }; /** - * @brief Helper to keep the TC & object it has linked together (for convenience) + * @brief Helper to keep a Decision object, ElementLink and ActiveState (with respect to some requested ChainGroup) linked together (for convenience) **/ template<typename T> struct LinkInfo { LinkInfo() : source{0} {} - LinkInfo(const xAOD::TrigComposite *s, const ElementLink<T>& l, ActiveState as = ActiveState::UNSET) + LinkInfo(const Decision* s, const ElementLink<T>& l, ActiveState as = ActiveState::UNSET) : source{s}, link{l}, state{as} {} bool isValid() const { @@ -305,7 +305,7 @@ namespace TrigCompositeUtils { return (isValid() ? StatusCode::SUCCESS : StatusCode::FAILURE); } - const xAOD::TrigComposite *source; + const Decision* source; ElementLink<T> link; ActiveState state; }; @@ -345,45 +345,60 @@ namespace TrigCompositeUtils { const DecisionIDContainer chainIDs = DecisionIDContainer()); /** - * @brief search back the TC links for the object of type T linked to the one of TC (recursively). + * @brief Perform a recursive search for ElementLinks of type T and name 'linkName', starting from Decision object 'start' * For the case of multiple links, this function only returns the first one found. @see findLinks - * @arg start the TC from where the link back is to be looked for - * @arg linkName the name with which the Link was added to the source TC - * @arg suppressMultipleLinksWarning findLink will print a warning if more than one link is found, this can be silenced here - * @return pair of link and TC with which it was associated, + * @param[in] start the Decision Object from where recursive search should begin + * @param[in] linkName the name of the ElementLink stored inside one or more DecisionObjects. + * @param[in] suppressMultipleLinksWarning findLink will print a warning if more than one ElementLink is found, this can be silenced here. + * @return LinkInfo A wrapper around an ElementLink and the location in the graph */ template<typename T> LinkInfo<T> - findLink(const xAOD::TrigComposite* start, const std::string& linkName, const bool suppressMultipleLinksWarning = false); + findLink(const Decision* start, + const std::string& linkName, + const bool suppressMultipleLinksWarning = false); /** * @brief search back the TC links for the object of type T linked to the one of TC (recursively) - * Populates provided vector with all located links to T of the corresponding name. - * @arg start the TC from where the link back is to be looked for - * @arg linkName the name with which the Link was added to the source TC - * @arg links Reference to vector, this will be populated with the found links. + * Populates provided vector with all located links to T of the corresponding linkName. + * @param[in] start the Decision Object from where recursive search should begin + * @param[in] linkName the name of the ElementLink stored inside one or more DecisionObjects. + * @param[inout] links Reference to vector, this will be populated with the found links. + * @param[in] behaviour TrigDefs::allFeaturesOfType to explore all branches of the navigation graph all the + way back to the L1 decoder, or TrigDefs::lastFeatureOfType to exit early from each + branch once a link has been located and collected. + * @param[inout] visitedCache Optional cache used by the recursive algorithm to avoid exploring each node multiple times. */ template<typename T> void - findLinks(const xAOD::TrigComposite* start, const std::string& linkName, std::vector<LinkInfo<T>>& links, unsigned int behaviour = TrigDefs::allFeaturesOfType); + findLinks(const Decision* start, + const std::string& linkName, + std::vector<LinkInfo<T>>& links, + unsigned int behaviour = TrigDefs::allFeaturesOfType, + std::set<const xAOD::TrigComposite*>* visitedCache = nullptr); /** * @brief search back the TC links for the object of type T linked to the one of TC (recursively) * This version returns a vector rather than requiring that one be passed to it. - * @arg start the TC from where the link back is to be looked for - * @arg linkName the name with which the Link was added to the source TC + * @param[in] start the Decision Object from where recursive search should begin + * @param[in] linkName the name of the ElementLink stored inside one or more DecisionObjects. + * @param[in] behaviour TrigDefs::allFeaturesOfType to explore all branches of the navigation graph all the + way back to the L1 decoder, or TrigDefs::lastFeatureOfType to exit early from each + branch once a link has been located and collected. * @return Vector with the found links. */ template<typename T> std::vector<LinkInfo<T>> - findLinks(const xAOD::TrigComposite* start, const std::string& linkName, unsigned int behaviour = TrigDefs::allFeaturesOfType); + findLinks(const Decision* start, + const std::string& linkName, + unsigned int behaviour = TrigDefs::allFeaturesOfType); /** - * Prints the TC including the linked seeds + * Prints the Decision object including the linked seeds * @warnign expensive call **/ - std::string dump( const xAOD::TrigComposite* tc, std::function< std::string( const xAOD::TrigComposite* )> printerFnc ); + std::string dump( const Decision* tc, std::function< std::string( const Decision* )> printerFnc ); diff --git a/Trigger/TrigSteer/TrigCompositeUtils/TrigCompositeUtils/TrigCompositeUtils.icc b/Trigger/TrigSteer/TrigCompositeUtils/TrigCompositeUtils/TrigCompositeUtils.icc index 7233c3560bf..87952570993 100644 --- a/Trigger/TrigSteer/TrigCompositeUtils/TrigCompositeUtils/TrigCompositeUtils.icc +++ b/Trigger/TrigSteer/TrigCompositeUtils/TrigCompositeUtils/TrigCompositeUtils.icc @@ -24,7 +24,7 @@ namespace TrigCompositeUtils { /** * @brief Creates and right away records the Container CONT with the key. - * With Aux store. + * With Aux store. * Returns the WriteHandle. * If possible provide the context that comes via an argument to execute otherwise it will default to looking it up which is slower. **/ @@ -42,8 +42,18 @@ namespace TrigCompositeUtils { template<typename T> void - findLinks(const xAOD::TrigComposite* start, const std::string& linkName, std::vector<LinkInfo<T>>& links, unsigned int behaviour) { + findLinks(const Decision* start, const std::string& linkName, std::vector<LinkInfo<T>>& links, unsigned int behaviour, std::set<const Decision*>* visitedCache) { + if (visitedCache != nullptr) { + // We only need to recursivly explore back from each node in the graph once. + // We can keep a record of nodes which we have already explored, these we can safely skip over. + if (visitedCache->count(start) == 1) { + return; // Early exit + } else { + visitedCache->insert(start); + } + } ElementLinkVector<T> featureLinks; + // if (start->hasObjectCollectionLinks(linkName, ClassID_traits<T>::ID())) { featureLinks = start->objectCollectionLinks<T>(linkName); } @@ -90,16 +100,23 @@ namespace TrigCompositeUtils { template<typename T> std::vector<LinkInfo<T>> - findLinks(const xAOD::TrigComposite* start, const std::string& linkName, unsigned int behaviour) { + findLinks(const Decision* start, const std::string& linkName, unsigned int behaviour) { std::vector<LinkInfo<T>> links; - findLinks(start, linkName, links, behaviour); + std::set<const Decision*> visitedCache; + findLinks(start, linkName, links, behaviour, &visitedCache); return links; } template<typename T> LinkInfo<T> - findLink(const xAOD::TrigComposite* start, const std::string& linkName, const bool suppressMultipleLinksWarning) { - std::vector<LinkInfo<T>> links = findLinks<T>(start, linkName); + findLink(const Decision* start, const std::string& linkName, const bool suppressMultipleLinksWarning) { + // We use findLink in cases where there is only one link to be found, or if there are multiple then we + // only want the most recent. + // Hence we can supply TrigDefs::lastFeatureOfType. /--> parent3(link) + // We can still have more then one link found if there is a branch in the navigation. E.g. start --> parent1 --> parent2(link) + // If both parent2 and parent3 posessed an admisable ElementLink, then the warning below will trigger, and only one of the + // links will be returned (whichever of parent2 or parent3 happened to be the first seed of parent1). + std::vector<LinkInfo<T>> links = findLinks<T>(start, linkName, TrigDefs::lastFeatureOfType); if (links.size() > 1 && !suppressMultipleLinksWarning) { MsgStream(Athena::getMessageSvc(), "TrigCompositeUtils::findLink") << MSG::WARNING << links.size() << " links found for " << linkName -- GitLab From e2e5e0707e5c75c9584853de33b20c316510d37f Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Wed, 20 May 2020 00:15:19 -0400 Subject: [PATCH 415/459] TriggerMenuMT: Fix some warnings. Fix some formatting warnings seen with python 3.8. --- .../CalibCosmicMon/GenerateBeamspotChainDefs.py | 2 +- .../CalibCosmicMon/GenerateCosmicChainDefs.py | 2 +- .../CalibCosmicMon/GenerateStreamingChainDefs.py | 2 +- .../python/HLTMenuConfig/Menu/MenuComponents.py | 11 ++++++++++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/GenerateBeamspotChainDefs.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/GenerateBeamspotChainDefs.py index 78d8905d443..72234e1d743 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/GenerateBeamspotChainDefs.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/GenerateBeamspotChainDefs.py @@ -17,7 +17,7 @@ def generateChainConfigs( chainDict ): log.debug('dictionary is: %s\n', pprint.pformat(chainDict)) listOfChainDicts = splitChainDict(chainDict) - log.debug("Will generate Config for streamer: ",chainDict['chainName']) + log.debug("Will generate Config for streamer: %s", chainDict['chainName']) listOfChainDefs = [] diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/GenerateCosmicChainDefs.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/GenerateCosmicChainDefs.py index bc324550b32..42067d9f2ed 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/GenerateCosmicChainDefs.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/GenerateCosmicChainDefs.py @@ -14,7 +14,7 @@ log.info("Importing %s",__name__) def generateChainConfigs( chainDict ): listOfChainDicts = splitChainDict(chainDict) - log.debug("Will generate Config for streamer: ",chainDict['chainName']) + log.debug("Will generate Config for streamer: %s", chainDict['chainName']) listOfChainDefs = [] diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/GenerateStreamingChainDefs.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/GenerateStreamingChainDefs.py index 547a8f43e4a..e4121d18631 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/GenerateStreamingChainDefs.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CalibCosmicMon/GenerateStreamingChainDefs.py @@ -14,7 +14,7 @@ log.info("Importing %s",__name__) def generateChainConfigs( chainDict ): listOfChainDicts = splitChainDict(chainDict) - log.debug("Will generate Config for streamer: ",chainDict['chainName']) + log.debug("Will generate Config for streamer: %s", chainDict['chainName']) listOfChainDefs = [] diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py index f2255c33a50..7668d2ebc2a 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuComponents.py @@ -883,7 +883,16 @@ class ChainStep(object): if not self.isCombo: return "--- ChainStep %s ---\n , multiplicity = %d ChainDict = %s \n + MenuSequences = %s "%(self.name, sum(self.multiplicity), ' '.join(map(str, [dic['chainName'] for dic in self.chainDicts])), ' '.join(map(str, [seq.name for seq in self.sequences]) )) else: - return "--- ChainStep %s ---\n + isCombo, multiplicity = %d ChainDict = %s \n + MenuSequences = %s \n + ComboHypo = %s, ComboHypoTools = %s"%(self.name, sum(self.multiplicity), ' '.join(map(str, [dic['chainName'] for dic in self.chainDicts])), ' '.join(map(str, [seq.name for seq in self.sequences]) ), self.combo.Alg.name(), ' '.join(map(str, [tool.__name__ for tool in self.comboToolConfs]))) + if self.combo: + calg = self.combo.Alg.name() + else: + calg = 'NONE' + return "--- ChainStep %s ---\n + isCombo, multiplicity = %d ChainDict = %s \n + MenuSequences = %s \n + ComboHypo = %s, ComboHypoTools = %s" %\ + (self.name, sum(self.multiplicity), + ' '.join(map(str, [dic['chainName'] for dic in self.chainDicts])), + ' '.join(map(str, [seq.name for seq in self.sequences]) ), + calg, + ' '.join(map(str, [tool.__name__ for tool in self.comboToolConfs]))) def createComboAlg(dummyFlags, name, multiplicity, comboHypoCfg): -- GitLab From cdb30283e5e596206606968230d54490ed1fcbc4 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Thu, 30 Jul 2020 20:54:32 +0100 Subject: [PATCH 416/459] Do not write GSF Trk::Tracks by default in data AOD --- .../ParticleBuilderOptions/python/AODFlags.py | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/PhysicsAnalysis/AnalysisCommon/ParticleBuilderOptions/python/AODFlags.py b/PhysicsAnalysis/AnalysisCommon/ParticleBuilderOptions/python/AODFlags.py index 666a812b595..7f4071058ee 100755 --- a/PhysicsAnalysis/AnalysisCommon/ParticleBuilderOptions/python/AODFlags.py +++ b/PhysicsAnalysis/AnalysisCommon/ParticleBuilderOptions/python/AODFlags.py @@ -3,7 +3,7 @@ #======================================================================= # File: ParticleBuilderOptions/python/AODFlags.py #======================================================================= -""" AOD Building specific flags and job properties. +""" AOD Building specific flags and job properties. """ @@ -41,7 +41,7 @@ class Electron(JobProperty): statusOn=True allowedTypes=['bool'] StoredValue=True - + class egammaTrackSlimmer(JobProperty): """ If True, add egammaTrackSlimmer """ @@ -55,7 +55,7 @@ class AddEgammaMuonTracksInAOD(JobProperty): """ statusOn=True allowedTypes=['bool'] - StoredValue=True + StoredValue=False class AddEgammaTracksInMCAOD(JobProperty): @@ -86,7 +86,7 @@ class ThinNegativeEnergyNeutralPFOs(JobProperty): statusOn=True allowedTypes=['bool'] StoredValue=True - + class ThinInDetForwardTrackParticles(JobProperty): """ If True, add ThinInDetForwardTrackParticles """ @@ -94,21 +94,21 @@ class ThinInDetForwardTrackParticles(JobProperty): allowedTypes=['bool'] StoredValue=True - + class Muon(JobProperty): """ If True, add Muon """ statusOn=True allowedTypes=['bool'] StoredValue=True - + class Tau(JobProperty): """ If True, add Tau """ statusOn=True allowedTypes=['bool'] StoredValue=True - + class TrackParticleSlimmer(JobProperty): """ If True, add TrackParticleSlimmer which slims last hit """ @@ -129,7 +129,7 @@ class ParticleJet(JobProperty): statusOn=True allowedTypes=['bool'] StoredValue=True - + class JetTag(JobProperty): """ If True, add JetTag """ @@ -137,28 +137,28 @@ class JetTag(JobProperty): allowedTypes=['bool'] # disable jet tagging since done at rdo->esd StoredValue=False - + class SpclMC(JobProperty): """ If True, add SpclMC """ statusOn=True allowedTypes=['bool'] StoredValue=True - + class TruthParticleJet(JobProperty): """ If True, add TruthParticleJet """ statusOn=True allowedTypes=['bool'] StoredValue=True - + class Trigger(JobProperty): """ If True, add Trigger """ statusOn=True allowedTypes=['bool'] StoredValue=True - + class Streaming(JobProperty): """ If True, add Streaming """ @@ -174,7 +174,7 @@ class TauRec(JobProperty): statusOn=True allowedTypes=['bool'] StoredValue=True - + class Tau1p3p(JobProperty): """ If True, add Tau1p3p """ @@ -182,14 +182,14 @@ class Tau1p3p(JobProperty): allowedTypes=['bool'] StoredValue=True -# Fast Simulation AOD Builder +# Fast Simulation AOD Builder class FastSimulation(JobProperty): """ If True, add FastSimulation """ statusOn=True allowedTypes=['bool'] StoredValue=False - + class MissingEtTruth(JobProperty): """ If True, add Streaming """ @@ -198,7 +198,7 @@ class MissingEtTruth(JobProperty): # disable MissingEtTruth. # should be ON only if fasst AOD produced in standalone mode StoredValue=False - + class FastTrackParticle(JobProperty): """ If True, add Streaming """ @@ -221,12 +221,12 @@ class McEventKeyStr(JobProperty): class AODFlagsContainer(JobPropertyContainer): """ The AOD building flag/job propertycontainer. """ - + JobProperty._log.info("AODFlags:: now uses JobProperty mechanisms") # Key member for McEventCollection, but overloaded by McEventKeyStr # via __getattribute__ and __setattr__ methods : see bellow - + McEventKey="DummyStringValue" def __getattribute__(self, name): @@ -282,13 +282,13 @@ class AODFlagsContainer(JobPropertyContainer): def fastSetOn(self): self._log.info("AODFlags:: using fastSetOn method. Is it usefull ?") self.FastSimulation.set_Value(True) - self.MissingEtTruth.set_Value(True) + self.MissingEtTruth.set_Value(True) self.FastTrackParticle.set_Value(True) - -# add the aod flags container to the top container + +# add the aod flags container to the top container jobproperties.add_Container(AODFlagsContainer) -# I want always the following flags in the AOD container +# I want always the following flags in the AOD container _list_AOD=[ \ Photon,Electron,egammaTrackSlimmer, \ AddEgammaMuonTracksInAOD, \ @@ -307,7 +307,7 @@ _list_AOD=[ \ FastSimulation,MissingEtTruth,FastTrackParticle, \ McEventKeyStr ] -for j in _list_AOD: +for j in _list_AOD: jobproperties.AODFlagsContainer.add_JobProperty(j) del _list_AOD -- GitLab From 59cb70208fdfc3f4d2d4903722cedaf9a6964a63 Mon Sep 17 00:00:00 2001 From: scott snyder <sss@karma> Date: Sun, 12 Jul 2020 00:15:12 -0400 Subject: [PATCH 417/459] InDetTrigTrackResidualMonitor: cmake fixes Library dependency fixes. --- .../InDetTrigTrackResidualMonitor/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/CMakeLists.txt b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/CMakeLists.txt index 33f93154b6b..b68ab0673a2 100644 --- a/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/CMakeLists.txt +++ b/InnerDetector/InDetTrigRecAlgs/InDetTrigTrackResidualMonitor/CMakeLists.txt @@ -46,7 +46,7 @@ atlas_add_component( InDetTrigTrackResidualMonitor src/*.cxx src/components/*.cxx INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps AthContainers AtlasDetDescr Identifier GaudiKernel InDetReadoutGeometry InDetPrepRawData TrkEventPrimitives TrkParameters TrkTrack TrkValEvent TrigSteeringEvent TrigInterfacesLib IdDictDetDescr InDetIdentifier MagFieldInterfaces TrkGeometry TrkSurfaces TrkMaterialOnTrack TrkMeasurementBase TrkRIO_OnTrack TrkTrackSummary TrkExInterfaces TrkToolInterfaces TrigParticle ) + LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps AthContainers AtlasDetDescr Identifier GaudiKernel InDetReadoutGeometry InDetPrepRawData TrkEventPrimitives TrkParameters TrkTrack TrkValEvent TrigSteeringEvent TrigInterfacesLib IdDictDetDescr InDetIdentifier MagFieldInterfaces TrkGeometry TrkSurfaces TrkMaterialOnTrack TrkMeasurementBase TrkRIO_OnTrack TrkTrackSummary TrkExInterfaces TrkToolInterfaces TrigParticle TrkValToolsLib InDetAlignGenToolsLib ) # Install files from the package: atlas_install_headers( InDetTrigTrackResidualMonitor ) -- GitLab From 94baca95744324582b668d44dbd01ce72387894b Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Thu, 30 Jul 2020 16:41:28 +0200 Subject: [PATCH 418/459] LArSim: Remove use of StoreGate::instance(). Remove use of obsolete function StoreGate::instance(). (However, this package is not usually built as part of Athena.) --- LArCalorimeter/LArSim/LArSim/LArHitMaker.h | 6 ++--- LArCalorimeter/LArSim/LArSim/LArHitReader.h | 27 +++++++------------ .../LArSim/src/LArFakeHitProducer.cxx | 6 ++--- LArCalorimeter/LArSim/src/LArHitMaker.cxx | 6 ++--- LArCalorimeter/LArSim/src/LArHitReader.cxx | 27 +++++-------------- 5 files changed, 24 insertions(+), 48 deletions(-) diff --git a/LArCalorimeter/LArSim/LArSim/LArHitMaker.h b/LArCalorimeter/LArSim/LArSim/LArHitMaker.h index 8ab973a468d..0f7e6b6fed1 100755 --- a/LArCalorimeter/LArSim/LArSim/LArHitMaker.h +++ b/LArCalorimeter/LArSim/LArSim/LArHitMaker.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /* Generated by Together */ @@ -17,7 +17,7 @@ #include <string> -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthLegacySequence.h" /** * Specialized ATHENA algorithm which can be used to store <br> @@ -33,7 +33,7 @@ * @version 00-00-05 * */ -class LArHitMaker : public AthAlgorithm { +class LArHitMaker : public AthLegacySequence { public: diff --git a/LArCalorimeter/LArSim/LArSim/LArHitReader.h b/LArCalorimeter/LArSim/LArSim/LArHitReader.h index 3a3c6cfeafd..6f45a924ff2 100755 --- a/LArCalorimeter/LArSim/LArSim/LArHitReader.h +++ b/LArCalorimeter/LArSim/LArSim/LArHitReader.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /* Generated by Together */ @@ -17,31 +17,24 @@ #include <string> -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "LArSimEvent/LArHitContainer.h" +#include "StoreGate/ReadHandleKey.h" -class LArHitReader : public AthAlgorithm { +class LArHitReader : public AthReentrantAlgorithm { public: - - /** usual ATHENA constructor of an algorithm*/ - LArHitReader(const std::string & name, ISvcLocator * pSvcLocator); - - /** Destructor */ - virtual ~LArHitReader() { } - + using AthReentrantAlgorithm::AthReentrantAlgorithm; /** Initialize method , executed once at the beginning <br> of the job execution by the control framework */ - virtual StatusCode initialize(); + virtual StatusCode initialize() override; /** execute() method executed for each event <br> by the LArHitMaker instance which owns <br> this producer */ - virtual StatusCode execute(); - - /** finalize() method executed at the end <br> of the job execution by the control framework */ - virtual StatusCode finalize(); + virtual StatusCode execute (const EventContext& ctx) const override; private: - - + SG::ReadHandleKey<LArHitContainer> m_hitKey + { this, "HitKey", "LArHitFake", "" }; + }; #endif //LARHITPRODUCER_H diff --git a/LArCalorimeter/LArSim/src/LArFakeHitProducer.cxx b/LArCalorimeter/LArSim/src/LArFakeHitProducer.cxx index 1bfe59dbea9..7ec4b8eec73 100755 --- a/LArCalorimeter/LArSim/src/LArFakeHitProducer.cxx +++ b/LArCalorimeter/LArSim/src/LArFakeHitProducer.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "LArSim/LArFakeHitProducer.h" @@ -12,8 +12,6 @@ #include "LArSimEvent/LArHit.h" #include "LArSimEvent/LArHitContainer.h" -#include "StoreGate/StoreGate.h" - // Constructor LArFakeHitProducer::LArFakeHitProducer(const std::string& name, ISvcLocator* pSvcLocator ) : @@ -39,7 +37,7 @@ StatusCode LArFakeHitProducer::hitConstruction(){ ATH_MSG_DEBUG(" Filled the container, size = "<< cont->size() ); - ATH_CHECK( StoreGate::instance().record(cont,"LArHitFake") ); + ATH_CHECK( evtStore()->record(cont,"LArHitFake") ); return StatusCode::SUCCESS; } diff --git a/LArCalorimeter/LArSim/src/LArHitMaker.cxx b/LArCalorimeter/LArSim/src/LArHitMaker.cxx index 6a1f599bc64..5a49c6f4b34 100755 --- a/LArCalorimeter/LArSim/src/LArHitMaker.cxx +++ b/LArCalorimeter/LArSim/src/LArHitMaker.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "LArSim/LArHitMaker.h" @@ -15,7 +15,7 @@ // Constructor LArHitMaker::LArHitMaker(const std::string& name, ISvcLocator* pSvcLocator ) : - AthAlgorithm(name , pSvcLocator), + AthLegacySequence(name , pSvcLocator), m_HitRetrieverNameAndType("LArHitProducerTest/producer1"), m_HitContainerLocation("LArHits"), m_HitRetrieverAlgorithm(0) , @@ -70,7 +70,7 @@ StatusCode LArHitMaker::initialize(){ StatusCode LArHitMaker::execute(){ ATH_MSG_DEBUG(" Start executing execute() method of "<< m_HitRetrieverNameAndType ); - ATH_CHECK( m_HitRetrieverAlgorithm -> execute() ); + ATH_CHECK( m_HitRetrieverAlgorithm -> execute(Gaudi::Hive::currentContext()) ); LArHitProducer * producer = dynamic_cast<LArHitProducer*> ( m_HitRetrieverAlgorithm ) ; if(producer == NULL ) { diff --git a/LArCalorimeter/LArSim/src/LArHitReader.cxx b/LArCalorimeter/LArSim/src/LArHitReader.cxx index 8bf7c97538e..2de954abf10 100755 --- a/LArCalorimeter/LArSim/src/LArHitReader.cxx +++ b/LArCalorimeter/LArSim/src/LArHitReader.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "LArSim/LArHitReader.h" @@ -8,27 +8,19 @@ #include "GaudiKernel/IDataProviderSvc.h" #include "LArSimEvent/LArHit.h" -#include "StoreGate/StoreGate.h" - -// Constructor -LArHitReader::LArHitReader(const std::string& name, ISvcLocator* pSvcLocator ) : - AthAlgorithm(name , pSvcLocator) -{ - -} - +#include "StoreGate/ReadHandle.h" //Initialize method StatusCode LArHitReader::initialize(){ - ATH_MSG_DEBUG("LArHitReader "<< this->name()<<" initialized"); + ATH_CHECK( m_hitKey.initialize() ); return StatusCode::SUCCESS ; } //Execute method -StatusCode LArHitReader::execute(){ - const LArHitContainer* cont = nullptr; - ATH_CHECK( StoreGate::instance().retrieve(cont,"LArHitFake") ); +StatusCode LArHitReader::execute (const EventContext& ctx) const +{ + SG::ReadHandle<LArHitContainer> cont (m_hitKey, ctx); ATH_MSG_DEBUG(" LArHitContainer Dump ----------- " ); ATH_MSG_DEBUG( (std::string)(*cont) ); @@ -36,10 +28,3 @@ StatusCode LArHitReader::execute(){ return StatusCode::SUCCESS ; } -//Finalize method -StatusCode LArHitReader::finalize(){ - ATH_MSG_DEBUG("finalize() completed correctly"); - return StatusCode::SUCCESS ; -} - - -- GitLab From bfc8334a19979c624ef7bd65e8db37419f86bf97 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Thu, 30 Jul 2020 16:22:04 +0200 Subject: [PATCH 419/459] MuonRPC_Cabling: cmake fix Use MuonCablingTools, not CablingTools (they're duplicates). --- MuonSpectrometer/MuonCablings/MuonRPC_Cabling/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MuonSpectrometer/MuonCablings/MuonRPC_Cabling/CMakeLists.txt b/MuonSpectrometer/MuonCablings/MuonRPC_Cabling/CMakeLists.txt index 287b8d36756..7bce580933b 100644 --- a/MuonSpectrometer/MuonCablings/MuonRPC_Cabling/CMakeLists.txt +++ b/MuonSpectrometer/MuonCablings/MuonRPC_Cabling/CMakeLists.txt @@ -25,7 +25,7 @@ atlas_depends_on_subdirs( PUBLIC atlas_add_library( MuonRPC_CablingLib MuonRPC_Cabling/*.h src/*.cxx PUBLIC_HEADERS MuonRPC_Cabling - LINK_LIBRARIES AthenaBaseComps AthenaKernel Identifier GaudiKernel MuonCablingTools CablingTools RPCcablingInterfaceLib MuonIdHelpersLib + LINK_LIBRARIES AthenaBaseComps AthenaKernel Identifier GaudiKernel MuonCablingTools RPCcablingInterfaceLib MuonIdHelpersLib PRIVATE_LINK_LIBRARIES StoreGateLib AthenaPoolUtilities MuonCondInterface PathResolver RPC_CondCablingLib) atlas_add_component( MuonRPC_Cabling src/components/*.cxx -- GitLab From cff69c4ffcaad514acb44f4325b413b3d54b3d88 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Thu, 30 Jul 2020 16:24:00 +0200 Subject: [PATCH 420/459] RPCcablingInterface: cmake fix Use MuonCablingTools, not CablingTools (they're duplicates). --- .../MuonCablings/RPCcablingInterface/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MuonSpectrometer/MuonCablings/RPCcablingInterface/CMakeLists.txt b/MuonSpectrometer/MuonCablings/RPCcablingInterface/CMakeLists.txt index 91a09a6c576..e95851e9d25 100644 --- a/MuonSpectrometer/MuonCablings/RPCcablingInterface/CMakeLists.txt +++ b/MuonSpectrometer/MuonCablings/RPCcablingInterface/CMakeLists.txt @@ -20,5 +20,5 @@ atlas_depends_on_subdirs( PUBLIC atlas_add_library( RPCcablingInterfaceLib src/*.cxx PUBLIC_HEADERS RPCcablingInterface - LINK_LIBRARIES AthenaKernel Identifier GaudiKernel MuonCablingTools CablingTools MuonIdHelpersLib StoreGateLib SGtests RPC_CondCablingLib) + LINK_LIBRARIES AthenaKernel Identifier GaudiKernel MuonCablingTools MuonIdHelpersLib StoreGateLib SGtests RPC_CondCablingLib) -- GitLab From 380c0642e0927c8d1ac50c26193229ac23f370f6 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Thu, 30 Jul 2020 16:25:08 +0200 Subject: [PATCH 421/459] TrigT1RPClogic: cmake fix Use MuonCablingTools, not CablingTools (they're duplicates). --- Trigger/TrigT1/TrigT1RPClogic/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigT1/TrigT1RPClogic/CMakeLists.txt b/Trigger/TrigT1/TrigT1RPClogic/CMakeLists.txt index 9f591871a78..09143e81a29 100644 --- a/Trigger/TrigT1/TrigT1RPClogic/CMakeLists.txt +++ b/Trigger/TrigT1/TrigT1RPClogic/CMakeLists.txt @@ -7,4 +7,4 @@ atlas_subdir( TrigT1RPClogic ) atlas_add_library( TrigT1RPClogicLib src/*.cxx PUBLIC_HEADERS TrigT1RPClogic - LINK_LIBRARIES CablingTools GaudiKernel RPC_CondCablingLib RPCcablingInterfaceLib TrigT1RPChardwareLib ) + LINK_LIBRARIES MuonCablingTools GaudiKernel RPC_CondCablingLib RPCcablingInterfaceLib TrigT1RPChardwareLib ) -- GitLab From ce30090e9c913de295c9dc6b9d5ec82f2f885fe3 Mon Sep 17 00:00:00 2001 From: Rachid Mazini <rachid.mazini@cern.ch> Date: Thu, 30 Jul 2020 08:58:16 +0000 Subject: [PATCH 422/459] Merge branch 'fix_parsing_issue' into '21.0' fix runtime error test_MC16_G4FastCalo_ttbar.sh ( ATLASSIM-4674) See merge request atlas/athena!35066 (cherry picked from commit 8b1782f4c5a323d3af1ab35bb8b15daeb72551ad) 5f48c6bd Update test_MC16_G4FastCalo_ttbar.sh --- .../ISF/ISF_Validation/test/test_MC16_G4FastCalo_ttbar.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Simulation/ISF/ISF_Validation/test/test_MC16_G4FastCalo_ttbar.sh b/Simulation/ISF/ISF_Validation/test/test_MC16_G4FastCalo_ttbar.sh index 7a1d99faab2..b4787ba82e9 100755 --- a/Simulation/ISF/ISF_Validation/test/test_MC16_G4FastCalo_ttbar.sh +++ b/Simulation/ISF/ISF_Validation/test/test_MC16_G4FastCalo_ttbar.sh @@ -18,7 +18,7 @@ Sim_tf.py \ --simulator 'G4FastCalo' \ --postInclude 'default:PyJobTransforms/UseFrontier.py' \ --preInclude 'EVNTtoHITS:SimulationJobOptions/preInclude.BeamPipeKill.py,SimulationJobOptions/preInclude.FrozenShowersFCalOnly.py' \ ---preExec 'EVNTtoHITS:simFlags.TightMuonStepping=True' 'from ISF_FastCaloSimServices.ISF_FastCaloSimJobProperties import ISF_FastCaloSimFlags;ISF_FastCaloSimFlags.ParamsInputFilename="/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/FastCaloSim/MC16/TFCSparam_v012.root"'\ +--preExec 'EVNTtoHITS:simFlags.TightMuonStepping=True' 'from ISF_FastCaloSimServices.ISF_FastCaloSimJobProperties import ISF_FastCaloSimFlags;ISF_FastCaloSimFlags.ParamsInputFilename="/cvmfs/atlas.cern.ch/repo/sw/database/GroupData/FastCaloSim/MC16/TFCSparam_v012.root"' \ --DataRunNumber '284500' \ --geometryVersion 'default:ATLAS-R2-2016-01-00-01' \ --inputEVNTFile "/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/SimCoreTests/valid1.410000.PowhegPythiaEvtGen_P2012_ttbar_hdamp172p5_nonallhad.evgen.EVNT.e4993.EVNT.08166201._000012.pool.root.1" \ -- GitLab From da9937daadb026bbc7cace3fa7a9099b2b135b04 Mon Sep 17 00:00:00 2001 From: christos <christos@cern.ch> Date: Fri, 31 Jul 2020 02:06:29 +0100 Subject: [PATCH 423/459] try to avoid vector re-allocations --- .../src/egammaTrkRefitterTool.cxx | 162 +++++++++--------- 1 file changed, 82 insertions(+), 80 deletions(-) diff --git a/Reconstruction/egamma/egammaTrackTools/src/egammaTrkRefitterTool.cxx b/Reconstruction/egamma/egammaTrackTools/src/egammaTrkRefitterTool.cxx index 1c45a6ffbb0..1abba788f42 100644 --- a/Reconstruction/egamma/egammaTrackTools/src/egammaTrkRefitterTool.cxx +++ b/Reconstruction/egamma/egammaTrackTools/src/egammaTrkRefitterTool.cxx @@ -23,24 +23,24 @@ #include "TrkRIO_OnTrack/RIO_OnTrack.h" -#include <algorithm> +#include <algorithm> #include <cmath> #include <vector> // INCLUDE GAUDI HEADER FILES: -#include "GaudiKernel/ObjectVector.h" +#include "GaudiKernel/ObjectVector.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Property.h" #include "GaudiKernel/ListItem.h" -egammaTrkRefitterTool::egammaTrkRefitterTool(const std::string& type, - const std::string& name, +egammaTrkRefitterTool::egammaTrkRefitterTool(const std::string& type, + const std::string& name, const IInterface* parent) : AthAlgTool(type, name, parent), - m_ParticleHypothesis(Trk::electron), - m_idHelper(nullptr) + m_ParticleHypothesis(Trk::electron), + m_idHelper(nullptr) { declareInterface< IegammaTrkRefitterTool >(this) ; } @@ -49,18 +49,18 @@ egammaTrkRefitterTool::~egammaTrkRefitterTool() { } - + StatusCode egammaTrkRefitterTool::initialize() { ATH_MSG_DEBUG("Initializing egammaTrackRefitter"); - + // Retrieve fitter ATH_CHECK(m_ITrackFitter.retrieve()); // configure Atlas extrapolator - ATH_CHECK(m_extrapolator.retrieve()); - - ATH_CHECK(detStore()->retrieve(m_idHelper, "AtlasID")); + ATH_CHECK(m_extrapolator.retrieve()); + + ATH_CHECK(detStore()->retrieve(m_idHelper, "AtlasID")); ATH_CHECK(m_beamSpotKey.initialize(m_useBeamSpot)); @@ -74,7 +74,7 @@ StatusCode egammaTrkRefitterTool::initialize() // Set the particle hypothesis to match the material effects Trk::ParticleSwitcher particleSwitch; m_ParticleHypothesis = particleSwitch.particle[m_matEffects]; - + ATH_MSG_INFO("Initialization completed successfully"); return StatusCode::SUCCESS; } @@ -91,14 +91,14 @@ StatusCode egammaTrkRefitterTool::refitElectronTrack(const EventContext& ctx, ATH_MSG_DEBUG("Refitting a track associated with an electron"); // protection against bad pointers if (eg==nullptr) return StatusCode::SUCCESS; - // Set the pointer to the egamma object. + // Set the pointer to the egamma object. cache.electron = eg; const xAOD::TrackParticle *trackParticle = eg->trackParticle(); return refitTrackParticle(ctx,trackParticle,cache); } StatusCode egammaTrkRefitterTool::refitTrackParticle(const EventContext& ctx, - const xAOD::TrackParticle* trackParticle, + const xAOD::TrackParticle* trackParticle, Cache& cache) const { ATH_MSG_DEBUG("Refitting a track associated with a TrackParticle"); @@ -111,30 +111,30 @@ StatusCode egammaTrkRefitterTool::refitTrackParticle(const EventContext& ctx, uint8_t dummy(0); if(trackParticle->summaryValue(dummy,xAOD::numberOfSCTHits)){ nSiliconHits_trk += dummy; - } + } if(trackParticle->summaryValue(dummy,xAOD::numberOfPixelHits)){ nSiliconHits_trk += dummy; - } - + } + if( nSiliconHits_trk <= m_MinNoSiHits ) { ATH_MSG_DEBUG( "Not enough Si hits on track particle. The current min is set at " << m_MinNoSiHits ); return StatusCode::FAILURE; } - - if ( trackParticle->trackLink().isValid()) { + + if ( trackParticle->trackLink().isValid()) { // retrieve and refit original track return refitTrack( ctx,trackParticle->track() , cache); - } + } ATH_MSG_WARNING("Could not get TrackElementLink of the TrackParticle"); return StatusCode::FAILURE; - + return StatusCode::SUCCESS; } StatusCode egammaTrkRefitterTool::refitTrack(const EventContext& ctx, - const Trk::Track* track, + const Trk::Track* track, Cache& cache) const -{ +{ cache.refittedTrack=nullptr; cache.refittedTrackPerigee=nullptr; cache.originalTrack=nullptr; @@ -144,24 +144,24 @@ StatusCode egammaTrkRefitterTool::refitTrack(const EventContext& ctx, } //Set the pointer to the track cache.originalTrack=track; - + //Set pointer to the original perigee cache.originalTrackPerigee=cache.originalTrack->perigeeParameters(); - + if (cache.originalTrackPerigee!=nullptr){ double od0 = cache.originalTrackPerigee->parameters()[Trk::d0]; double oz0 = cache.originalTrackPerigee->parameters()[Trk::z0]; double ophi0 = cache.originalTrackPerigee->parameters()[Trk::phi0]; double otheta = cache.originalTrackPerigee->parameters()[Trk::theta]; - double oqOverP = cache.originalTrackPerigee->parameters()[Trk::qOverP]; - ATH_MSG_DEBUG("Original parameters " << od0 << " " + double oqOverP = cache.originalTrackPerigee->parameters()[Trk::qOverP]; + ATH_MSG_DEBUG("Original parameters " << od0 << " " << oz0 << " " << ophi0 << " " << otheta << " " << oqOverP << " " << 1/oqOverP) ; } else { ATH_MSG_WARNING("Could not get Trk::Perigee of original track"); } - + // Refit the track with the beam spot if desired otherwise just refit the original track - if (m_useBeamSpot || m_useClusterPosition){ + if (m_useBeamSpot || m_useClusterPosition){ egammaTrkRefitterTool::MeasurementsAndTrash collect= addPointsToTrack(ctx, cache.originalTrack, cache.electron); @@ -178,7 +178,7 @@ StatusCode egammaTrkRefitterTool::refitTrack(const EventContext& ctx, ctx, *cache.originalTrack, m_runOutlier, m_ParticleHypothesis); } } else { - std::vector<const Trk::MeasurementBase*> measurements = getIDHits(cache.originalTrack); + std::vector<const Trk::MeasurementBase*> measurements = getIDHits(cache.originalTrack); if(measurements.size()>4){ cache.refittedTrack = m_ITrackFitter->fit(ctx, @@ -188,90 +188,90 @@ StatusCode egammaTrkRefitterTool::refitTrack(const EventContext& ctx, m_ParticleHypothesis); } else { ATH_MSG_DEBUG("Not enough measurements on tracks"); - cache.refittedTrack=nullptr; + cache.refittedTrack=nullptr; } } // Store refitted perigee pointers if (cache.refittedTrack) { - cache.refittedTrackPerigee=cache.refittedTrack->perigeeParameters(); + cache.refittedTrackPerigee=cache.refittedTrack->perigeeParameters(); if (cache.refittedTrackPerigee==nullptr){ - ATH_MSG_WARNING("Could not get refitted Trk::Perigee"); + ATH_MSG_WARNING("Could not get refitted Trk::Perigee"); return StatusCode::FAILURE; } return StatusCode::SUCCESS; - } + } ATH_MSG_DEBUG("Refit Failed"); return StatusCode::FAILURE; - + } const Trk::TrackParameters* egammaTrkRefitterTool::lastTrackParameters(const Trk::Track* track) const -{ - ATH_MSG_DEBUG("Getting the final track parameters"); - +{ + ATH_MSG_DEBUG("Getting the final track parameters"); + if (track == nullptr ){ - ATH_MSG_DEBUG("Track == 0 returning 0"); + ATH_MSG_DEBUG("Track == 0 returning 0"); return nullptr; } - + const DataVector<const Trk::TrackStateOnSurface>* oldTrackStates = track->trackStateOnSurfaces(); if (oldTrackStates == nullptr) { ATH_MSG_DEBUG("Track has no TSOS vector! Skipping track, returning 0."); return nullptr; } - - const Trk::TrackParameters* lastValidTrkParameters(nullptr); - for ( DataVector<const Trk::TrackStateOnSurface>::const_reverse_iterator rItTSoS = oldTrackStates->rbegin(); + + const Trk::TrackParameters* lastValidTrkParameters(nullptr); + for ( DataVector<const Trk::TrackStateOnSurface>::const_reverse_iterator rItTSoS = oldTrackStates->rbegin(); rItTSoS != oldTrackStates->rend(); ++rItTSoS) - { + { if (lastValidTrkParameters!=nullptr){ break; } - if ( (*rItTSoS)->type(Trk::TrackStateOnSurface::Measurement) && + if ( (*rItTSoS)->type(Trk::TrackStateOnSurface::Measurement) && (*rItTSoS)->trackParameters()!=nullptr && (*rItTSoS)->measurementOnTrack()!=nullptr) { lastValidTrkParameters = (*rItTSoS)->trackParameters()->clone(); } } - + if (lastValidTrkParameters!=nullptr){ ATH_MSG_DEBUG ("Last Valid Trk Q/P" << lastValidTrkParameters->parameters()[Trk::qOverP] ); return lastValidTrkParameters; } - ATH_MSG_DEBUG("Last Track Parameters"); + ATH_MSG_DEBUG("Last Track Parameters"); return nullptr; } double egammaTrkRefitterTool::getMaterialTraversed(Trk::Track* track) const { - ATH_MSG_DEBUG("Calculating Material Traversed by the Track"); - + ATH_MSG_DEBUG("Calculating Material Traversed by the Track"); + if (!track) return 0.; - + double material(0); //Note I am not sure if this is the correct way of accessing the information - DataVector<const Trk::TrackStateOnSurface>::const_iterator - trackStateOnSurface = track->trackStateOnSurfaces()->begin(); + DataVector<const Trk::TrackStateOnSurface>::const_iterator + trackStateOnSurface = track->trackStateOnSurfaces()->begin(); for (;trackStateOnSurface < track->trackStateOnSurfaces()->end(); ++ trackStateOnSurface){ - // This could be a problebm + // This could be a problebm const Trk:: MaterialEffectsBase* materialEffects = (*trackStateOnSurface)->materialEffectsOnTrack(); if (materialEffects) material += materialEffects->thicknessInX0(); } if (material<=0){ - ATH_MSG_DEBUG(" Material Traversed by the Track >=0"); + ATH_MSG_DEBUG(" Material Traversed by the Track >=0"); return 0.; - } + } return material; } egammaTrkRefitterTool::MeasurementsAndTrash egammaTrkRefitterTool::addPointsToTrack(const EventContext& ctx, - const Trk::Track* track, + const Trk::Track* track, const xAOD::Electron* eg) const { - ATH_MSG_DEBUG("Adding Points to the Track"); + ATH_MSG_DEBUG("Adding Points to the Track"); egammaTrkRefitterTool::MeasurementsAndTrash collect {}; /* The issue here is that some of the returned measurements are owned by storegate * some not. For the ones that are not put them in a vector of unique_ptr which @@ -284,7 +284,7 @@ egammaTrkRefitterTool::MeasurementsAndTrash egammaTrkRefitterTool::addPointsToTr collect.m_trash.push_back(std::move(vot)); collect.m_measurements.push_back(collect.m_trash.back().get()); } - std::vector<const Trk::MeasurementBase*> vecIDHits = getIDHits(track); + std::vector<const Trk::MeasurementBase*> vecIDHits = getIDHits(track); std::vector<const Trk::MeasurementBase*>::const_iterator it = vecIDHits.begin(); std::vector<const Trk::MeasurementBase*>::const_iterator itend = vecIDHits.end(); // Fill the track , these are not trash @@ -297,21 +297,21 @@ egammaTrkRefitterTool::MeasurementsAndTrash egammaTrkRefitterTool::addPointsToTr } if (m_useClusterPosition && eg->caloCluster()){ int charge(0); - if( track->perigeeParameters() ) charge = (int)track->perigeeParameters()->charge(); + if( track->perigeeParameters() ) charge = (int)track->perigeeParameters()->charge(); std::unique_ptr<const Trk::CaloCluster_OnTrack> ccot (m_CCOTBuilder->buildClusterOnTrack(eg->caloCluster(),charge)); if (ccot!=nullptr){ collect.m_trash.push_back(std::move(ccot)); collect.m_measurements.push_back(collect.m_trash.back().get()); } } - return collect; + return collect; } -const Trk::VertexOnTrack* egammaTrkRefitterTool::provideVotFromBeamspot(const EventContext& ctx, +const Trk::VertexOnTrack* egammaTrkRefitterTool::provideVotFromBeamspot(const EventContext& ctx, const Trk::Track* track) const{ - + const Trk::VertexOnTrack* vot = nullptr; - + SG::ReadCondHandle<InDet::BeamSpotData> beamSpotData{m_beamSpotKey, ctx}; /* * Perhaps usefull in serial Athena @@ -319,7 +319,7 @@ const Trk::VertexOnTrack* egammaTrkRefitterTool::provideVotFromBeamspot(const Ev if(!(beamSpotData.isValid())){ return nullptr; } - + Amg::Vector3D bpos =beamSpotData->beamPos(); float beamSpotX = bpos.x(); float beamSpotY = bpos.y(); @@ -338,31 +338,31 @@ const Trk::VertexOnTrack* egammaTrkRefitterTool::provideVotFromBeamspot(const Ev ATH_MSG_DEBUG("constructing beam point (x,y,z) = ( "<<beamX<<" , "<<beamY<<" , "<<z0<<" )"); const Trk::PerigeeSurface * surface = nullptr; - + // covariance matrix of the beam-spot AmgSymMatrix(2) beamSpotCov; beamSpotCov.setZero(); beamSpotCov(0,0) = beamSigmaX * beamSigmaX; - beamSpotCov(1,1) = beamSigmaY * beamSigmaY; + beamSpotCov(1,1) = beamSigmaY * beamSigmaY; const Amg::Vector3D& globPos(BSC); surface = new Trk::PerigeeSurface(globPos); - + // create a measurement for the beamspot const Amg::Vector2D Par0(0.,Trk::d0); Trk::LocalParameters beamSpotParameters(Par0); - + // calculate perigee parameters wrt. beam-spot const Trk::Perigee * perigee = nullptr; const Trk::TrackParameters* tmp =m_extrapolator->extrapolate(*track, *surface); if(tmp->associatedSurface().type()==Trk::Surface::Perigee){ perigee= static_cast<const Trk::Perigee*> (tmp); } - if (!perigee) {// if failure + if (!perigee) {// if failure const Trk::Perigee * trackPerigee = track->perigeeParameters(); if ( trackPerigee && ((trackPerigee->associatedSurface())) == *surface ) perigee = trackPerigee->clone(); } - + Eigen::Matrix<double,1,2> Jacobian; Jacobian.setZero(); if(perigee){ @@ -371,7 +371,7 @@ const Trk::VertexOnTrack* egammaTrkRefitterTool::provideVotFromBeamspot(const Ev Jacobian(0,1) = ptInv * perigee->momentum().x(); } - Amg::MatrixX errorMatrix(Jacobian*(beamSpotCov*Jacobian.transpose())); + Amg::MatrixX errorMatrix(Jacobian*(beamSpotCov*Jacobian.transpose())); vot = new Trk::VertexOnTrack(beamSpotParameters, errorMatrix, *surface); ATH_MSG_DEBUG(" the VertexOnTrack objects created from BeamSpot are " << *vot); @@ -382,23 +382,25 @@ const Trk::VertexOnTrack* egammaTrkRefitterTool::provideVotFromBeamspot(const Ev std::vector<const Trk::MeasurementBase*> egammaTrkRefitterTool::getIDHits(const Trk::Track* track) const -{ - std::vector<const Trk::MeasurementBase*> measurementSet; +{ //store all silicon measurements into the measurementset - DataVector<const Trk::TrackStateOnSurface>::const_iterator + DataVector<const Trk::TrackStateOnSurface>::const_iterator trackStateOnSurface = track->trackStateOnSurfaces()->begin(); - + + std::vector<const Trk::MeasurementBase*> measurementSet; + measurementSet.reserve(track->trackStateOnSurfaces()->size()); + for ( ; trackStateOnSurface != track->trackStateOnSurfaces()->end(); ++trackStateOnSurface ) { if ( !(*trackStateOnSurface) ){ ATH_MSG_WARNING( "This track contains an empty MeasurementBase object that won't be included in the fit" ); continue; - } + } if ( (*trackStateOnSurface)->measurementOnTrack() ){ if ( (*trackStateOnSurface)->type( Trk::TrackStateOnSurface::Measurement) ){ const Trk::RIO_OnTrack* rio = nullptr; const Trk::MeasurementBase* tmp = (*trackStateOnSurface)->measurementOnTrack() ; if(tmp->type(Trk::MeasurementBaseType::RIO_OnTrack)){ - rio =static_cast <const Trk::RIO_OnTrack*>( tmp); + rio =static_cast <const Trk::RIO_OnTrack*>( tmp); } if (rio != nullptr) { const Identifier& surfaceID = (rio->identify()) ; @@ -407,13 +409,13 @@ std::vector<const Trk::MeasurementBase*> egammaTrkRefitterTool::getIDHits(const } else if( !m_RemoveTRT && m_idHelper->is_trt(surfaceID) ) { measurementSet.push_back( (*trackStateOnSurface)->measurementOnTrack() ); } - } + } } else if ( m_reintegrateOutliers && (*trackStateOnSurface)->type( Trk::TrackStateOnSurface::Outlier) ){ const Trk::RIO_OnTrack* rio = nullptr; const Trk::MeasurementBase* tmp = (*trackStateOnSurface)->measurementOnTrack() ; if(tmp->type(Trk::MeasurementBaseType::RIO_OnTrack)){ - rio =static_cast <const Trk::RIO_OnTrack*>( tmp); + rio =static_cast <const Trk::RIO_OnTrack*>( tmp); } if (rio != nullptr) { const Identifier& surfaceID = (rio->identify()) ; @@ -423,7 +425,7 @@ std::vector<const Trk::MeasurementBase*> egammaTrkRefitterTool::getIDHits(const measurementSet.push_back( (*trackStateOnSurface)->measurementOnTrack() ); } } - } + } } } return measurementSet; -- GitLab From 1cf0e3e334cb2a18b857099031a8ba7f4ea79fc1 Mon Sep 17 00:00:00 2001 From: Julie Kirk <Julie.Kirk@cern.ch> Date: Fri, 31 Jul 2020 10:53:21 +0200 Subject: [PATCH 424/459] Add new bjet test with different config new file: Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_test_pu40.py --- .../test/test_trigID_bjet_test_pu40.py | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100755 Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_test_pu40.py diff --git a/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_test_pu40.py b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_test_pu40.py new file mode 100755 index 00000000000..fa70d6ec429 --- /dev/null +++ b/Trigger/TrigValidation/TrigInDetValidation/test/test_trigID_bjet_test_pu40.py @@ -0,0 +1,136 @@ +#!/usr/bin/env python + +# art-description: art job for all_ttbar_pu80_grid +# art-type: grid +# art-include: master/Athena +# art-input-nfiles: 3 +# art-athena-mt: 4 +# art-output: *.txt +# art-output: *.log +# art-output: log.* +# art-output: *.out +# art-output: *.err +# art-output: *.log.tar.gz +# art-output: *.new +# art-output: *.json +# art-output: *.root +# art-output: *.check* +# art-output: HLT* +# art-output: times* +# art-output: cost-perCall +# art-output: cost-perEvent +# art-output: cost-perCall-chain +# art-output: cost-perEvent-chain +# art-output: *.dat + + +from TrigValTools.TrigValSteering import Test, ExecStep, CheckSteps +from TrigInDetValidation.TrigInDetArtSteps import TrigInDetAna, TrigInDetdictStep, TrigInDetCompStep, TrigInDetCpuCostStep + + +import sys,getopt + +try: + opts, args = getopt.getopt(sys.argv[1:],"lxp",["local"]) +except getopt.GetoptError: + print("Usage: ") + print("-l(--local) run locally with input file from art eos grid-input") + print("-x don't run athena or post post-processing, only plotting") + print("-p run post-processing, even if -x is set") + + +local=False +exclude=False +postproc=False +for opt,arg in opts: + if opt in ("-l", "--local"): + local=True + if opt=="-x": + exclude=True + if opt=="-p": + postproc=True + + +chains = [ + 'HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20' +] + +preexec_trig = ';'.join([ + 'doEmptyMenu=True', + 'doBjetSlice=True', + 'selectChains='+str(chains), + 'from TrigBjetHypo.TrigSuperRoiBuilderAllTEConfig import getSuperRoiBuilderAllTEInstance as super; super.EtaHalfWidth = 0.2; super.PhiHalfWidth = 0.2' +]) + + +preexec_reco = ';'.join([ + 'from RecExConfig.RecFlags import rec', + 'rec.doForwardDet=False', + 'rec.doEgamma=False', + 'rec.doMuonCombined=False', + 'rec.doJetMissingETTag=False', + 'rec.doTau=False' +]) + +preexec_aod = ';'.join([ + preexec_reco, + 'from ParticleBuilderOptions.AODFlags import AODFlags', + 'AODFlags.ThinGeantTruth.set_Value_and_Lock(False)', + 'AODFlags.ThinNegativeEnergyCaloClusters.set_Value_and_Lock(False)', + 'AODFlags.ThinNegativeEnergyNeutralPFOs.set_Value_and_Lock(False)', + 'AODFlags.ThinInDetForwardTrackParticles.set_Value_and_Lock(False)' +]) + + + +preexec_all = ';'.join([ + 'from TriggerJobOpts.TriggerFlags import TriggerFlags', + 'TriggerFlags.AODEDMSet.set_Value_and_Lock(\\\"AODFULL\\\")', +]) + +rdo2aod = ExecStep.ExecStep() +rdo2aod.type = 'Reco_tf' +rdo2aod.max_events = 1000 # TODO: 2000 events +rdo2aod.threads = 1 # TODO: change to 4 +rdo2aod.concurrent_events = 1 # TODO: change to 4 +rdo2aod.perfmon = False +rdo2aod.timeout = 18*3600 +rdo2aod.args = '--outputAODFile=AOD.pool.root --steering="doRDO_TRIG" ' +rdo2aod.input = 'ttbar' + +rdo2aod.args += ' --preExec "RDOtoRDOTrigger:{:s};" "all:{:s};" "RAWtoESD:{:s};" "ESDtoAOD:{:s};"'.format( + preexec_trig, preexec_all, preexec_reco, preexec_aod) + +test = Test.Test() +test.art_type = 'grid' +if (not exclude): + test.exec_steps = [rdo2aod] + test.exec_steps.append(TrigInDetAna()) # Run analysis to produce TrkNtuple + test.check_steps = CheckSteps.default_check_steps(test) + +# Run Tidardict +if ((not exclude) or postproc ): + rdict = TrigInDetdictStep() + rdict.args='TIDAdata-run3.dat -f data-hists.root -b Test_bin.dat ' + test.check_steps.append(rdict) + + +# Now the comparitor steps +comp1=TrigInDetCompStep('CompareStep1') +comp1.chains='HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20:HLT_IDTrack_Bjet_FTF HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20:HLT_IDTrack_Bjet_IDTrig' +comp1.output_dir = 'HLTEF-plots-bjet' +test.check_steps.append(comp1) + + + +cpucost=TrigInDetCpuCostStep('CpuCostStep1') +test.check_steps.append(cpucost) + +cpucost2=TrigInDetCpuCostStep('CpuCostStep2') +cpucost2.args += ' -p FastTrack' +cpucost2.output_dir = 'times-FTF' +test.check_steps.append(cpucost2) + + +import sys +sys.exit(test.run()) -- GitLab From 0111a9a3875f9fe406667da980139edee3717a67 Mon Sep 17 00:00:00 2001 From: Rupert Tombs <rt500@cam.ac.uk> Date: Tue, 14 Jul 2020 13:27:11 +0100 Subject: [PATCH 425/459] ISF selections - Fatras dependences MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Import and use FastCalo cfgs Initial commit of new fatras services config Add some fatras flags. Add flake8 to touched packages Replace a bunch of the getPublicTools calls to locally defined functions Replace some more getPublicTool uses Add more Fatras tuning flags. Replace more tool getters Link more tools. Begin to understand circular dependence with ​ISF_SimulationSelectorsConfigNew.py Split Fatras (Sim) config to avoid circular dependence. Attach many private tools to returned accumulators Attach more private tools. Begin migration of some necessary tracking config Search functions in ISF_FatrasConfig.py for those duplicated in ConfigNew version. Merge in differing config. Link elsewhere. Combine new config Fatras services Fix errors pointed out by flake8 Only add simulator in single threaded mode Fix naming errors, Link correct extrapolator for *Engine --- .../G4AtlasApps/python/SimConfigFlags.py | 10 + .../ISF_Tools/python/ISF_ToolsConfigNew.py | 2 +- .../python/ISF_FatrasConfig.py | 668 ++++++++++++++++-- .../python/ISF_FatrasServicesSimConfigNew.py | 49 ++ .../ISF_SimulationSelectors/CMakeLists.txt | 2 +- .../ISF_SimulationSelectorsConfigNew.py | 296 +++++--- 6 files changed, 898 insertions(+), 129 deletions(-) create mode 100644 Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasServicesSimConfigNew.py diff --git a/Simulation/G4Atlas/G4AtlasApps/python/SimConfigFlags.py b/Simulation/G4Atlas/G4AtlasApps/python/SimConfigFlags.py index 51d3efbd297..e807a507c54 100644 --- a/Simulation/G4Atlas/G4AtlasApps/python/SimConfigFlags.py +++ b/Simulation/G4Atlas/G4AtlasApps/python/SimConfigFlags.py @@ -95,5 +95,15 @@ def createSimConfigFlags(): scf.addFlag("Sim.FastChain.PUWeights_lar_hec", [1.0]) # LAr HEC scf.addFlag("Sim.FastChain.PUWeights_lar_bapre", [1.0]) # LAr Barrel presampler scf.addFlag("Sim.FastChain.PUWeights_tile", [1.0]) # Tile + + # Fatras + scf.addFlag("Sim.Fatras.RandomStreamName", "FatrasRnd") + scf.addFlag("Sim.Fatras.G4RandomStreamName", "FatrasG4") + scf.addFlag("Sim.Fatras.TrkExRandomStreamName", "TrkExRnd") + # Fatras fine tuning + scf.addFlag("Sim.Fatras.MomCutOffSec", 50.) # common momentum cut-off for secondaries + scf.addFlag("Sim.Fatras.HadronIntProb", 1.) # hadronic interaction scale factor + scf.addFlag("Sim.Fatras.GaussianMixtureModel", True) # use Gaussian mixture model for Multiple Scattering + scf.addFlag("Sim.Fatras.BetheHeitlerScale", 1.) # scale to Bethe-Heitler contribution return scf diff --git a/Simulation/ISF/ISF_Core/ISF_Tools/python/ISF_ToolsConfigNew.py b/Simulation/ISF/ISF_Core/ISF_Tools/python/ISF_ToolsConfigNew.py index b985690499a..a06608032d5 100644 --- a/Simulation/ISF/ISF_Core/ISF_Tools/python/ISF_ToolsConfigNew.py +++ b/Simulation/ISF/ISF_Core/ISF_Tools/python/ISF_ToolsConfigNew.py @@ -11,7 +11,7 @@ from BarcodeServices.BarcodeServicesConfigNew import BarcodeSvcCfg def ParticleHelperCfg(flags, name="ISF_ParticleHelper", **kwargs): acc = BarcodeSvcCfg(flags) kwargs.setdefault("BarcodeSvc", acc.getPrimary()) - acc.setPrivateTools(CompFactory.ISF.ParticleHelper(name, **kwargs)) + acc.addPublicTool(CompFactory.ISF.ParticleHelper(name, **kwargs)) return acc diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasConfig.py b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasConfig.py index 8916d22761b..5444dd2e355 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasConfig.py +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasConfig.py @@ -6,6 +6,12 @@ from AthenaCommon.Logging import logging from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory from ISF_Algorithms.collection_merger_helpers import generate_mergeable_collection_name +from ISF_Tools.ISF_ToolsConfigNew import ParticleHelperCfg +from ISF_Services.ISF_ServicesCoreConfigNew import ( + ParticleBrokerSvcCfg, TruthServiceCfg, +) +from RngComps.RandomServices import RNG +from TrkConfig.AtlasTrackingGeometrySvcConfig import TrackingGeometrySvcCfg ################################################################################ # HIT CREATION SECTION @@ -20,12 +26,15 @@ def fatrasHitCreatorPixelCfg(flags, name="ISF_FatrasHitCreatorPixel", **kwargs): mlog = logging.getLogger(name) mlog.debug('Start configuration') - acc = ComponentAccumulator() + result = ComponentAccumulator() hits_collection_name = generate_mergeable_collection_name(bare_collection_name="PixelHits", mergeable_collection_suffix="_Fatras", merger_input_property="PixelHits") + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) kwargs.setdefault("IdHelperName", 'PixelID') kwargs.setdefault("CollectionName", hits_collection_name) @@ -34,8 +43,8 @@ def fatrasHitCreatorPixelCfg(flags, name="ISF_FatrasHitCreatorPixel", **kwargs): kwargs.setdefault("UseConditionsTool", False) iFatras__HitCreatorSilicon = CompFactory.iFatras.HitCreatorSilicon - acc.addPublicTool(iFatras__HitCreatorSilicon(name=name, **kwargs)) - return acc + result.addPublicTool(iFatras__HitCreatorSilicon(name=name, **kwargs)) + return result def fatrasHitCreatorSCTCfg(flags, name="ISF_FatrasHitCreatorSCT", **kwargs): @@ -43,34 +52,59 @@ def fatrasHitCreatorSCTCfg(flags, name="ISF_FatrasHitCreatorSCT", **kwargs): mlog = logging.getLogger(name) mlog.debug('Start configuration') - acc = ComponentAccumulator() + result = ComponentAccumulator() hits_collection_name = generate_mergeable_collection_name(bare_collection_name="SCT_Hits", mergeable_collection_suffix="_Fatras", merger_input_property="SCTHits") + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) kwargs.setdefault("IdHelperName", 'SCT_ID') kwargs.setdefault("CollectionName", hits_collection_name) kwargs.setdefault("UseConditionsTool", False) iFatras__HitCreatorSilicon = CompFactory.iFatras.HitCreatorSilicon - acc.addPublicTool(iFatras__HitCreatorSilicon(name=name, **kwargs)) - return acc + result.addPublicTool(iFatras__HitCreatorSilicon(name=name, **kwargs)) + return result def fatrasHitCreatorTRTCfg(flags, name="ISF_FatrasHitCreatorTRT", **kwargs): + """Return ISF_FatrasHitCreatorTRT configured with ComponentAccumulator""" mlog = logging.getLogger(name) mlog.debug('Start configuration') - acc = ComponentAccumulator() + result = ComponentAccumulator() hits_collection_name = generate_mergeable_collection_name(bare_collection_name="TRTUncompressedHits", mergeable_collection_suffix="_Fatras", merger_input_property="TRTUncompressedHits") + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) kwargs.setdefault("CollectionName", hits_collection_name) iFatras__HitCreatorTRT = CompFactory.iFatras.HitCreatorTRT - acc.addPublicTool(iFatras__HitCreatorTRT(name=name, **kwargs)) - return acc + result.addPublicTool(iFatras__HitCreatorTRT(name=name, **kwargs)) + return result + + +def fatrasPileupHitCreatorPixelCfg(flags, name="ISF_FatrasPileupHitCreatorPixel", **kwargs): + """Return ISF_FatrasHitCreatorPixel configured for pileup with ComponentAccumulator""" + kwargs.setdefault("CollectionName", "PileupPixelHits") + return fatrasHitCreatorPixelCfg(flags, name, **kwargs) + + +def fatrasPileupHitCreatorSCTCfg(flags, name="ISF_FatrasPileupHitCreatorSCT", **kwargs): + """Return ISF_FatrasHitCreatorSCT configured for pileup with ComponentAccumulator""" + kwargs.setdefault("CollectionName", "PileupSCT_Hits") + return fatrasHitCreatorSCTCfg(flags, name, **kwargs) + + +def fatrasPileupHitCreatorTRTCfg(flags, name="ISF_FatrasPileupHitCreatorTRT", **kwargs): + """Return ISF_FatrasHitCreatorTRT configured with ComponentAccumulator""" + kwargs.setdefault("CollectionName", "PileupTRTUncompressedHits") + return fatrasHitCreatorTRTCfg(flags, name, **kwargs) ################################################################################ @@ -100,13 +134,39 @@ def fatrasSimHitCreatorIDCfg(flags, name="ISF_FatrasSimHitCreatorID", **kwargs): result.merge(acc) kwargs.setdefault("TrtHitCreator", trt_hit_cfg) - kwargs.setdefault("OutputLevel", 3) + kwargs.setdefault("OutputLevel", flags.Exec.OutputLevel) iFatras__SimHitCreatorID = CompFactory.iFatras.SimHitCreatorID result.addPublicTool(iFatras__SimHitCreatorID(name=name, **kwargs)) return result +def fatrasPileupSimHitCreatorIDCfg(flags, name="ISF_FatrasPileupSimHitCreatorID", **kwargs): + """Return ISF_FatrasSimHitCreatorID configured for pileup with ComponentAccumulator""" + + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + acc = fatrasPileupHitCreatorPixelCfg(flags) + pixel_hit_cfg = acc.getPublicTool('ISF_FatrasHitCreatorPixel') + result.merge(acc) + kwargs.setdefault("PixelHitCreator", pixel_hit_cfg) + + acc = fatrasPileupHitCreatorSCTCfg(flags) + sct_hit_cfg = acc.getPublicTool('ISF_FatrasHitCreatorSCT') + result.merge(acc) + kwargs.setdefault("SctHitCreator", sct_hit_cfg) + + acc = fatrasPileupHitCreatorTRTCfg(flags) + trt_hit_cfg = acc.getPublicTool("ISF_FatrasHitCreatorTRT") + result.merge(acc) + kwargs.setdefault("TrtHitCreator", trt_hit_cfg) + + return fatrasSimHitCreatorIDCfg(flags, name, **kwargs) + + def fatrasSimHitCreatorMSCfg(flags, name="ISF_FatrasSimHitCreatorMS", **kwargs): """Return ISF_FatrasSimHitCreatorMS configured with ComponentAccumulator""" @@ -132,9 +192,11 @@ def fatrasSimHitCreatorMSCfg(flags, name="ISF_FatrasSimHitCreatorMS", **kwargs): csc_hits_collection_name = generate_mergeable_collection_name(bare_collection_name="CSC_Hits", mergeable_collection_suffix=mergeable_collection_suffix, merger_input_property="CSCHits") - + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) ##### - # Extrapolator from ACTS to be added + # Extrapolator from ACTS to be added TODO # kwargs.setdefault("Extrapolator" , getPublicTool('ISF_FatrasExtrapolator')) ##### kwargs.setdefault("MDTCollectionName", mdt_hits_collection_name) @@ -192,23 +254,20 @@ def G4RunManagerHelperCfg(flags, name="ISF_G4RunManagerHelper", **kwargs): return result -def fatrasParticleHelperCfg(flags, name="ISF_ParticleHelper", **kwargs): +def fatrasParticleDecayHelperCfg(flags, name="ISF_FatrasParticleDecayHelper", **kwargs): mlog = logging.getLogger(name) mlog.debug('Start configuration') result = ComponentAccumulator() - ISF__ParticleHelper = CompFactory.ISF.ParticleHelper - result.addPublicTool(ISF__ParticleHelper(name=name, **kwargs)) - - return result + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) + kwargs.setdefault("G4RandomStreamName", flags.Sim.Fatras.G4RandomStreamName) + kwargs.setdefault("ValidationMode", flags.Sim.ISF.ValidationMode) - -def fatrasParticleDecayHelperCfg(flags, name="ISF_FatrasParticleDecayHelper", **kwargs): - mlog = logging.getLogger(name) - mlog.debug('Start configuration') - - result = ComponentAccumulator() + result.merge(ParticleBrokerSvcCfg(flags)) + kwargs.setdefault("ParticleBroker", result.getService("ISF_ParticleBrokerSvc")) acc = fatrasPdgG4ParticleCfg(flags) pdg_g4part_cfg = acc.getPublicTool('ISF_FatrasPdgG4Particle') @@ -223,13 +282,14 @@ def fatrasParticleDecayHelperCfg(flags, name="ISF_FatrasParticleDecayHelper", ** acc = G4RunManagerHelperCfg(flags) g4run_man_cfg = acc.getPublicTool('ISF_G4RunManagerHelper') result.merge(acc) - kwargs.setdefault("PDGToG4ParticleConverter", g4run_man_cfg) + kwargs.setdefault("G4RunManagerHelper", g4run_man_cfg) iFatras__G4ParticleDecayHelper = CompFactory.iFatras.G4ParticleDecayHelper result.addPublicTool(iFatras__G4ParticleDecayHelper(name=name, **kwargs)) return result + ################################################################################ # Extrapolator ################################################################################ @@ -238,9 +298,8 @@ def fatrasNavigatorCfg(flags, name="ISF_FatrasNavigator", **kwargs): mlog = logging.getLogger(name) mlog.debug('Start configuration') - result = ComponentAccumulator() + result = ComponentAccumulator() - from TrkConfig.AtlasTrackingGeometrySvcConfig import TrackingGeometrySvcCfg acc = TrackingGeometrySvcCfg(flags) kwargs.setdefault("TrackingGeometrySvc", acc.getPrimary()) result.merge(acc) @@ -250,32 +309,178 @@ def fatrasNavigatorCfg(flags, name="ISF_FatrasNavigator", **kwargs): return result + +def fatrasNeutralPropagatorIDCfg(flags, name="ISF_FatrasNeutralPropagatorID", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + Trk__StraightLinePropagator = CompFactory.Trk.StraightLinePropagator + result.addPublicTool(Trk__StraightLinePropagator(name=name, **kwargs)) + + return result + + +def fatrasPropagatorCfg(flags, name="ISF_FatrasPropagator", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + Trk__RungeKuttaPropagator = CompFactory.Trk.RungeKuttaPropagator + result.addPublicTool(Trk__RungeKuttaPropagator(name=name, **kwargs)) + + return result + + +# from the Propagator create a Propagation engine to handle path length +def fatrasStaticPropagatorCfg(flags, name="ISF_FatrasStaticPropagator", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(fatrasPropagatorCfg(flags)) + kwargs.setdefault("Propagator", result.getPublicTool("ISF_FatrasPropagator")) + + # configure output formatting + kwargs.setdefault("OutputPrefix", "[SP] - ") + kwargs.setdefault("OutputPostfix", " - ") + kwargs.setdefault("OutputLevel", flags.Exec.OutputLevel) + + Trk__PropagationEngine = CompFactory.Trk.PropagationEngine + result.addPublicTool(Trk__PropagationEngine(name, **kwargs)) + + return result + + +# load the static navigation engine +def fatrasStaticNavigationEngineCfg(flags, name="ISF_FatrasStaticNavigationEngine", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(fatrasStaticPropagatorCfg(flags)) + kwargs.setdefault("PropagationEngine", result.getPublicTool("ISF_FatrasStaticPropagator")) + result.merge(fatrasMaterialEffectsEngineCfg(flags)) + kwargs.setdefault("MaterialEffectsEngine", result.getPublicTool("ISF_FatrasMaterialEffectsEngine")) + acc = TrackingGeometrySvcCfg(flags) + kwargs.setdefault("TrackingGeometrySvc", acc.getPrimary()) + result.merge(acc) + + # configure output formatting + kwargs.setdefault("OutputPrefix", "[SN] - ") + kwargs.setdefault("OutputPostfix", " - ") + kwargs.setdefault("OutputLevel", flags.Exec.OutputLevel) + Trk__StaticNavigationEngine = CompFactory.Trk.StaticNavigationEngine + acc.setPrivateTools(Trk__StaticNavigationEngine(name, **kwargs)) + return acc + + def fatrasEnergyLossUpdatorCfg(flags, name="ISF_FatrasEnergyLossUpdator", **kwargs): mlog = logging.getLogger(name) mlog.debug('Start configuration') result = ComponentAccumulator() + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) + kwargs.setdefault("UsePDG_EnergyLossFormula", True) kwargs.setdefault("EnergyLossDistribution", 2) - + iFatras__McEnergyLossUpdator = CompFactory.iFatras.McEnergyLossUpdator result.addPublicTool(iFatras__McEnergyLossUpdator(name=name, **kwargs)) return result + +def fatrasEnergyLossSamplerBetheHeitlerCfg(flags, name="ISF_FatrasEnergyLossSamplerBetheHeitler", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) + + kwargs.setdefault("ScaleFactor", flags.Sim.Fatras.BetheHeitlerScale) + + iFatras__EnergyLossSamplerBetheHeitler = CompFactory.iFatras.EnergyLossSamplerBetheHeitler + result.addPublicTool(iFatras__EnergyLossSamplerBetheHeitler(name=name, **kwargs)) + + return result + + def fatrasMultipleScatteringUpdatorCfg(flags, name="ISF_FatrasMultipleScatteringUpdator", **kwargs): mlog = logging.getLogger(name) mlog.debug('Start configuration') result = ComponentAccumulator() - kwargs.setdefault("GaussianMixtureModel", True) + + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.TrkExRandomStreamName) + kwargs.setdefault("GaussianMixtureModel", flags.Sim.Fatras.GaussianMixtureModel) Trk__MultipleScatteringUpdator = CompFactory.Trk.MultipleScatteringUpdator result.addPublicTool(Trk__MultipleScatteringUpdator(name=name, **kwargs)) return result + +def fatrasMultipleScatteringSamplerHighlandCfg(flags, name="ISF_MultipleScatteringSamplerHighland", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.TrkExRandomStreamName) + + Trk__MultipleScatteringSamplerHighland = CompFactory.Trk.MultipleScatteringSamplerHighland + result.addPublicTool(Trk__MultipleScatteringSamplerHighland(name=name, **kwargs)) + + return result + + +def fatrasMultipleScatteringSamplerGaussianMixtureCfg(flags, name="ISF_MultipleScatteringSamplerGaussianMixture", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.TrkExRandomStreamName) + + Trk__MultipleScatteringSamplerGaussianMixture = CompFactory.Trk.MultipleScatteringSamplerGaussianMixture + result.addPublicTool(Trk__MultipleScatteringSamplerGaussianMixture(name=name, **kwargs)) + + return result + + +def fatrasMultipleScatteringSamplerGeneralMixtureCfg(flags, name="ISF_MultipleScatteringSamplerGeneralMixture", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.TrkExRandomStreamName) + + Trk__MultipleScatteringSamplerGeneralMixture = CompFactory.Trk.MultipleScatteringSamplerGeneralMixture + result.addPublicTool(Trk__MultipleScatteringSamplerGeneralMixture(name=name, **kwargs)) + + return result + + # Combining all in the MaterialEffectsUpdator def fatrasMaterialUpdatorCfg(flags, name="ISF_FatrasMaterialUpdator", **kwargs): mlog = logging.getLogger(name) @@ -283,12 +488,15 @@ def fatrasMaterialUpdatorCfg(flags, name="ISF_FatrasMaterialUpdator", **kwargs): result = ComponentAccumulator() + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) + # Geometry Svc - from TrkConfig.AtlasTrackingGeometrySvcConfig import TrackingGeometrySvcCfg acc = TrackingGeometrySvcCfg(flags) kwargs.setdefault("TrackingGeometrySvc", acc.getPrimary()) result.merge(acc) - + # hadronic interactions kwargs.setdefault("HadronicInteraction", True) acc = fatrasG4HadIntProcessorCfg(flags) @@ -315,10 +523,14 @@ def fatrasMaterialUpdatorCfg(flags, name="ISF_FatrasMaterialUpdator", **kwargs): ph_conv_cfg = acc.getPublicTool('ISF_FatrasConversionCreator') result.merge(acc) kwargs.setdefault("PhotonConversionTool", ph_conv_cfg) - + # the validation output - ## NOTE to be checked - ### kwargs.setdefault("ValidationMode", ISF_Flags.ValidationMode()) + kwargs.setdefault("ValidationMode", flags.Sim.ISF.ValidationMode) + kwargs.setdefault("BremPhotonValidation", False) + kwargs.setdefault("EnergyDepositValidation", False) + + kwargs.setdefault("MomentumCut", flags.Sim.Fatras.MomCutOffSec) + kwargs.setdefault("MinimumBremPhotonMomentum", flags.Sim.Fatras.MomCutOffSec) acc = fatrasPhysicsValidationToolCfg(flags) phys_val_cfg = acc.getPublicTool('ISF_FatrasPhysicsValidationTool') @@ -335,12 +547,82 @@ def fatrasMaterialUpdatorCfg(flags, name="ISF_FatrasMaterialUpdator", **kwargs): result.merge(acc) kwargs.setdefault("ParticleDecayHelper", pdhelper_cfg) + # MCTruth Process Code + kwargs.setdefault("BremProcessCode", 3) # TODO: to be taken from central definition + acc = TrackingGeometrySvcCfg(flags) + kwargs.setdefault("TrackingGeometrySvc", acc.getPrimary()) + result.merge(acc) iFatras__McMaterialEffectsUpdator = CompFactory.iFatras.McMaterialEffectsUpdator result.addPublicTool(iFatras__McMaterialEffectsUpdator(name=name, **kwargs)) return result + + +def fatrasMaterialEffectsEngineCfg(flags, name="ISF_FatrasMaterialEffectsEngine", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) + + result.merge(ParticleBrokerSvcCfg(flags)) + kwargs.setdefault("ParticleBroker", result.getService("ISF_ParticleBrokerSvc")) + + acc = TruthServiceCfg(flags) + kwargs.setdefault("TruthRecordSvc", acc.getPrimary()) + result.merge(acc) + + result.merge(fatrasProcessSamplingToolCfg(flags)) + kwargs.setdefault("ProcessSamplingTool", result.getPublicTool("ISF_FatrasProcessSamplingTool")) + + result.merge(fatrasParticleDecayHelperCfg(flags)) + kwargs.setdefault("ParticleDecayHelper", result.getPublicTool("ISF_FatrasParticleDecayHelper")) + + # energy loss + result.merge(fatrasEnergyLossUpdatorCfg(flags)) + kwargs.setdefault("EnergyLossSampler", result.getPublicTool("ISF_FatrasEnergyLossUpdator")) + kwargs.setdefault("EnergyLoss", True) + + result.merge(fatrasEnergyLossSamplerBetheHeitlerCfg(flags)) + tool = result.getPublicTool("ISF_FatrasEnergyLossSamplerBetheHeitler") + kwargs.setdefault("ElectronEnergyLossSampler", tool) + kwargs.setdefault("UseElectronSampler", True) + kwargs.setdefault("CreateBremPhotons", True) + + # multiple scattering + result.merge(fatrasMultipleScatteringSamplerHighlandCfg(flags)) + tool = result.getPublicTool("ISF_MultipleScatteringSamplerHighland") + kwargs.setdefault("MultipleScatteringSampler", tool) + kwargs.setdefault("MultipleScattering", True) + + # the properties given throuth the JobProperties interface + kwargs.setdefault("MomentumCut", flags.Sim.Fatras.MomCutOffSec) + kwargs.setdefault("MinimumBremPhotonMomentum", flags.Sim.Fatras.MomCutOffSec) + + # MCTruth Process Code + kwargs.setdefault("BremProcessCode", 3) # TODO: to be taken from central definition + + # the validation output + result.merge(fatrasPhysicsValidationToolCfg(flags)) + tool = acc.getPublicTool('ISF_FatrasPhysicsValidationTool') + kwargs.setdefault("PhysicsValidationTool", tool) + kwargs.setdefault("ValidationMode", flags.Sim.ISF.ValidationMode) + + kwargs.setdefault("OutputPrefix", "[McME] - ") + kwargs.setdefault("OutputPostfix", " - ") + kwargs.setdefault("OutputLevel", flags.Exec.OutputLevel) + + iFatras__McMaterialEffectsEngine = CompFactory.iFatras.McMaterialEffectsEngine + result.setPublicTool(iFatras__McMaterialEffectsEngine(name, **kwargs)) + + return result + + def fatrasChargedPropagatorCfg(flags, name="ISF_FatrasChargedPropagator", **kwargs): mlog = logging.getLogger(name) mlog.debug('Start configuration') @@ -357,6 +639,7 @@ def fatrasSTEP_PropagatorCfg(flags, name="ISF_FatrasSTEP_Propagator", **kwargs): mlog.debug('Start configuration') result = ComponentAccumulator() + kwargs.setdefault("MomentumCutOff", flags.Sim.Fatras.MomCutOffSec) kwargs.setdefault("SimulationMode", True) acc = fatrasMaterialUpdatorCfg(flags) @@ -402,6 +685,7 @@ def fatrasExtrapolatorCfg(flags, name="ISF_FatrasExtrapolator", **kwargs): # Fatras specific: stop the trajectory kwargs.setdefault("StopWithNavigationBreak", True) kwargs.setdefault("StopWithUpdateKill", True) + kwargs.setdefault("RobustSampling", True) kwargs.setdefault("ResolveMuonStation", True) kwargs.setdefault("UseMuonMatApproximation", True) @@ -410,6 +694,56 @@ def fatrasExtrapolatorCfg(flags, name="ISF_FatrasExtrapolator", **kwargs): return result + +def fatrasStaticExtrapolatorCfg(flags, name="ISF_FatrasStaticExEngine", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(fatrasStaticPropagatorCfg(flags)) + kwargs.setdefault("PropagationEngine", result.getPublicTool("ISF_FatrasStaticPropagator")) + result.merge(fatrasMaterialEffectsEngineCfg(flags)) + kwargs.setdefault("MaterialEffectsEngine", result.getPublicTool("ISF_FatrasMaterialEffectsEngine")) + result.merge(fatrasStaticNavigationEngineCfg(flags)) + kwargs.setdefault("NavigationEngine", result.getPublicTool("ISF_FatrasStaticNavigationEngine")) + + # configure output formatting + kwargs.setdefault("OutputPrefix", "[SE] - ") + kwargs.setdefault("OutputPostfix", " - ") + kwargs.setdefault("OutputLevel", flags.Exec.OutputLevel) + + Trk__StaticEngine = CompFactory.Trk.StaticEngine + result.setPrivateTools(Trk__StaticEngine(name, **kwargs)) + return result + + +def fatrasExEngineCfg(flags, name="ISF_FatrasExEngine", **kwargs): + # load the tracking geometry service + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + # assign the tools + result.merge(fatrasStaticExtrapolatorCfg(flags)) + tool = result.getPublicTool("ISF_FatrasStaticExEngine") + kwargs.setdefault("ExtrapolationEngines", [tool]) + acc = TrackingGeometrySvcCfg(flags) + kwargs.setdefault("TrackingGeometrySvc", acc.getPrimary()) + result.merge(acc) + result.merge(fatrasStaticPropagatorCfg(flags)) + kwargs.setdefault("PropagationEngine", result.getPublicTool("ISF_FatrasStaticPropagator")) + + # configure output formatting + kwargs.setdefault("OutputPrefix", "[ME] - ") + kwargs.setdefault("OutputPostfix", " - ") + kwargs.setdefault("OutputLevel", flags.Exec.OutputLevel) + + Trk__ExtrapolationEngine = CompFactory.Trk.ExtrapolationEngine + result.setPrivateTools(Trk__ExtrapolationEngine(name, **kwargs)) + return result + ################################################################################ # SIMULATION TOOL and SERVICE ################################################################################ @@ -421,6 +755,7 @@ def fatrasKinematicFilterCfg(flags, name="ISF_FatrasKinematicFilter", **kwargs): result = ComponentAccumulator() kwargs.setdefault("MaxEtaSymmetric", 10.) + kwargs.setdefault("MinMomentum", flags.Sim.Fatras.MomCutOffSec) ISF__KinematicParticleFilter = CompFactory.ISF.KinematicParticleFilter result.addPublicTool(ISF__KinematicParticleFilter(name=name, **kwargs)) @@ -435,11 +770,21 @@ def fatrasConversionCreatorCfg(flags, name="ISF_FatrasConversionCreator", **kwar result = ComponentAccumulator() + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) + + result.merge(ParticleBrokerSvcCfg(flags)) + kwargs.setdefault("ParticleBroker", result.getService("ISF_ParticleBrokerSvc")) + acc = fatrasPhysicsValidationToolCfg(flags) phys_val_cfg = acc.getPublicTool('ISF_FatrasPhysicsValidationTool') result.merge(acc) kwargs.setdefault("PhysicsValidationTool", phys_val_cfg) + kwargs.setdefault("PhysicsProcessCode", 14) # TODO: to be taken from central definition + kwargs.setdefault("ValidationMode", flags.Sim.ISF.ValidationMode) + iFatras__PhotonConversionTool = CompFactory.iFatras.PhotonConversionTool result.addPublicTool(iFatras__PhotonConversionTool(name=name, **kwargs)) @@ -452,23 +797,79 @@ def fatrasG4HadIntProcessorCfg(flags, name="ISF_FatrasG4HadIntProcessor", **kwar result = ComponentAccumulator() - acc = fatrasPhysicsValidationToolCfg(flags) - phys_val_cfg = acc.getPublicTool('ISF_FatrasPhysicsValidationTool') + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) + + result.merge(ParticleBrokerSvcCfg(flags)) + kwargs.setdefault("ParticleBroker", result.getService("ISF_ParticleBrokerSvc")) + + acc = TruthServiceCfg(flags) + kwargs.setdefault("TruthRecordSvc", acc.getPrimary()) result.merge(acc) + + result.merge(fatrasPhysicsValidationToolCfg(flags)) + phys_val_cfg = acc.getPublicTool('ISF_FatrasPhysicsValidationTool') kwargs.setdefault("PhysicsValidationTool", phys_val_cfg) + kwargs.setdefault("ValidationMode", flags.Sim.ISF.ValidationMode) + kwargs.setdefault("MomentumCut", flags.Sim.Fatras.MomCutOffSec) + iFatras__G4HadIntProcessor = CompFactory.iFatras.G4HadIntProcessor result.addPublicTool(iFatras__G4HadIntProcessor(name=name, **kwargs)) return result +# Fatras Hadronic Interaction Processor +def fatrasParametricHadIntProcessorCfg(flags, name="ISF_FatrasParametricHadIntProcessor", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + kwargs.setdefault("RandomStreamName", flags.Sim.Fatras.RandomStreamName) + + result.merge(ParticleBrokerSvcCfg(flags)) + kwargs.setdefault("ParticleBroker", result.getService("ISF_ParticleBrokerSvc")) + + acc = TruthServiceCfg(flags) + kwargs.setdefault("TruthRecordSvc", acc.getPrimary()) + result.merge(acc) + + kwargs.setdefault("HadronicInteractionScaleFactor", flags.Sim.Fatras.HadronIntProb) + kwargs.setdefault("MinimumHadronicInitialEnergy", flags.Sim.Fatras.MomCutOffSec) + kwargs.setdefault("MinimumHadronicOutEnergy", flags.Sim.Fatras.MomCutOffSec) + kwargs.setdefault("HadronicInteractionValidation", False) + kwargs.setdefault("PhysicsProcessCode", 121) # TODO: to be taken from central definition + + result.merge(fatrasPhysicsValidationToolCfg(flags)) + phys_val_cfg = acc.getPublicTool('ISF_FatrasPhysicsValidationTool') + kwargs.setdefault("PhysicsValidationTool", phys_val_cfg) + kwargs.setdefault("ValidationMode", flags.Sim.ISF.ValidationMode) + + iFatras__HadIntProcessorParametric = CompFactory.iFatras.HadIntProcessorParametric + result.setPrivateTools(iFatras__HadIntProcessorParametric(name, **kwargs)) + + return result + + def fatrasProcessSamplingToolCfg(flags, name="ISF_FatrasProcessSamplingTool", **kwargs): mlog = logging.getLogger(name) mlog.debug('Start configuration') result = ComponentAccumulator() + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + + # truth record + acc = TruthServiceCfg(flags) + kwargs.setdefault("TruthRecordSvc", acc.getPrimary()) + result.merge(acc) + # decays acc = fatrasParticleDecayHelperCfg(flags) pd_helper_cfg = acc.getPublicTool('ISF_FatrasParticleDecayHelper') @@ -486,12 +887,14 @@ def fatrasProcessSamplingToolCfg(flags, name="ISF_FatrasProcessSamplingTool", ** g4had_proc_cfg = acc.getPublicTool('ISF_FatrasG4HadIntProcessor') result.merge(acc) kwargs.setdefault("HadronicInteractionProcessor", g4had_proc_cfg) + kwargs.setdefault("HadronicInteraction", True) # Validation Tool acc = fatrasPhysicsValidationToolCfg(flags) phys_val_cfg = acc.getPublicTool('ISF_FatrasPhysicsValidationTool') result.merge(acc) kwargs.setdefault("PhysicsValidationTool", phys_val_cfg) + kwargs.setdefault("ValidationMode", flags.Sim.ISF.ValidationMode) iFatras__ProcessSamplingTool = CompFactory.iFatras.ProcessSamplingTool result.addPublicTool(iFatras__ProcessSamplingTool(name=name, **kwargs)) @@ -505,10 +908,11 @@ def fatrasSimToolCfg(flags, name="ISF_FatrasSimTool", **kwargs): result = ComponentAccumulator() - acc = fatrasSimHitCreatorIDCfg(flags) - id_cfg = acc.getPublicTool('ISF_FatrasSimHitCreatorID') - result.merge(acc) - kwargs.setdefault("SimHitCreatorID", id_cfg) + if "SimHitCreatorID" not in kwargs: + acc = fatrasSimHitCreatorIDCfg(flags) + id_cfg = acc.getPublicTool('ISF_FatrasSimHitCreatorID') + result.merge(acc) + kwargs.setdefault("SimHitCreatorID", id_cfg) acc = fatrasSimHitCreatorMSCfg(flags) ms_cfg = acc.getPublicTool('ISF_FatrasSimHitCreatorMS') @@ -520,7 +924,7 @@ def fatrasSimToolCfg(flags, name="ISF_FatrasSimTool", **kwargs): result.merge(acc) kwargs.setdefault("ParticleDecayHelper", pdhelper_cfg) - acc = fatrasParticleHelperCfg(flags) + acc = ParticleHelperCfg(flags) part_helper_cfg = acc.getPublicTool('ISF_ParticleHelper') result.merge(acc) kwargs.setdefault("ParticleHelper", part_helper_cfg) @@ -547,6 +951,188 @@ def fatrasSimToolCfg(flags, name="ISF_FatrasSimTool", **kwargs): result.merge(acc) kwargs.setdefault("ProcessSamplingTool", proc_samp_cfg) + kwargs.setdefault("OutputLevel", flags.Exec.OutputLevel) + kwargs.setdefault("ValidationOutput", flags.Sim.ISF.ValidationMode) + + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + iFatras__TransportTool = CompFactory.iFatras.TransportTool - result.setPrivateTools(iFatras__TransportTool(name=name, **kwargs)) + result.addPublicTool(iFatras__TransportTool(name=name, **kwargs)) + return result + + +def fatrasSimEngineCfg(flags, name="ISF_FatrasSimEngine", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + acc = fatrasSimHitCreatorIDCfg(flags) + id_cfg = acc.getPublicTool('ISF_FatrasSimHitCreatorID') + result.merge(acc) + kwargs.setdefault("SimHitCreatorID", id_cfg) + + acc = fatrasParticleDecayHelperCfg(flags) + pdhelper_cfg = acc.getPublicTool('ISF_FatrasParticleDecayHelper') + result.merge(acc) + kwargs.setdefault("ParticleDecayHelper", pdhelper_cfg) + + acc = fatrasKinematicFilterCfg(flags) + kin_filter_cfg = acc.getPublicTool('ISF_FatrasKinematicFilter') + result.merge(acc) + kwargs.setdefault("TrackFilter", kin_filter_cfg) + kwargs.setdefault("NeutralFilter", kin_filter_cfg) + kwargs.setdefault("PhotonFilter", kin_filter_cfg) + + acc = fatrasExEngineCfg(flags) + extrapolator_cfg = acc.getPublicTool('ISF_FatrasExEngine') + kwargs.setdefault("Extrapolator", extrapolator_cfg) + result.merge(acc) + + acc = fatrasProcessSamplingToolCfg(flags) + proc_samp_cfg = acc.getPublicTool('ISF_FatrasProcessSamplingTool') + result.merge(acc) + kwargs.setdefault("ProcessSamplingTool", proc_samp_cfg) + + kwargs.setdefault("OutputLevel", flags.Exec.OutputLevel) + kwargs.setdefault("ValidationOutput", flags.Sim.ISF.ValidationMode) + + result.merge(fatrasPhysicsValidationToolCfg(flags)) + tool = result.getPublicTool("ISF_FatrasPhysicsValidationTool") + kwargs.setdefault("PhysicsValidationTool", tool) + + result.merge(RNG(flags.Random.Engine)) + kwargs.setdefault("RandomNumberService", result.getService("AthRNGSvc")) + + iFatras__TransportEngine = CompFactory.iFatras.TransportEngine + result.addPublicTool(iFatras__TransportEngine(name=name, **kwargs)) + return result + + +def fatrasPileupSimToolCfg(flags, name="ISF_FatrasPileupSimTool", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(fatrasPileupSimHitCreatorIDCfg(flags)) + tool = result.getPublicTool("ISF_FatrasPileupSimHitCreatorID") + kwargs.setdefault("SimHitCreatorID", tool) + + result.merge(fatrasSimToolCfg(flags, name, **kwargs)) + return result + + +# FatrasSimulatorTool +def fatrasSimulatorToolSTCfg(flags, name="ISF_FatrasSimulatorToolST", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(fatrasSimToolCfg(flags)) + tool = result.getPublicTool("ISF_FatrasSimTool") + kwargs.setdefault("IDSimulationTool", tool) + kwargs.setdefault("SimulationTool", tool) + + kwargs.setdefault("OutputLevel", flags.Exec.OutputLevel) + + ISF__FatrasSimTool = CompFactory.ISF.FatrasSimTool + result.addPublicTool(ISF__FatrasSimTool(name, **kwargs)) + return result + + +def fatrasNewExtrapolationSimulatorToolSTCfg(flags, name="ISF_FatrasNewExtrapolationSimulatorToolST", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(fatrasSimEngineCfg(flags)) + tool = result.getPrivateTool("ISF_FatrasSimEngine") + kwargs.setdefault("IDSimulationTool", tool) + kwargs.setdefault("UseSimulationTool", True) + + result.merge(fatrasSimulatorToolSTCfg(flags, name, **kwargs)) + return result + + +def fatrasPileupSimulatorToolSTCfg(flags, name="ISF_FatrasPileupSimulatorToolST", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(fatrasPileupSimToolCfg(flags)) + tool = result.getPrivateTool("ISF_FatrasPileupSimTool") + kwargs.setdefault("IDSimulationTool", tool) + + result.merge(fatrasSimToolCfg(flags)) + tool = result.getPrivateTool("ISF_FatrasSimTool") + kwargs.setdefault("SimulationTool", tool) + + result.merge(fatrasSimulatorToolSTCfg(flags, name, **kwargs)) + return result + + +# FatrasSimulationSvc +def fatrasSimServiceIDCfg(flags, name="ISF_FatrasSimSvc", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + kwargs.setdefault("Identifier", "Fatras") + + result.merge(fatrasSimulatorToolSTCfg(flags)) + tool = result.getPublicTool("ISF_FatrasSimulatorToolST") + kwargs.setdefault("SimulatorTool", tool) + + result.addService(CompFactory.ISF.LegacySimSvc(name, **kwargs)) + + return result + + +def fatrasNewExtrapolationSimServiceIDCfg(flags, name="ISF_FatrasNewExtrapolationSimSvc", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(fatrasNewExtrapolationSimulatorToolSTCfg(flags)) + tool = result.getPublicTool("ISF_FatrasNewExtrapolationSimulatorToolST") + kwargs.setdefault("SimulatorTool", tool) + + result.merge(fatrasSimServiceIDCfg(flags, name, **kwargs)) + + return result + + +def fatrasGeoIDFixSimServiceIDCfg(flags, name="ISF_FatrasGeoIDFixSimSvc", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + kwargs.setdefault("EnableGeoIDOverride", True) + kwargs.setdefault("GeoIDOverrideZ", 3150.) + kwargs.setdefault("GeoIDOverride", 3) # ISF::fAtlasCalo + + result.merge(fatrasSimServiceIDCfg(flags, name, **kwargs)) + + return result + + +def fatrasPileupSimServiceIDCfg(flags, name="ISF_FatrasPileupSimSvc", **kwargs): + mlog = logging.getLogger(name) + mlog.debug('Start configuration') + + result = ComponentAccumulator() + + result.merge(fatrasPileupSimulatorToolSTCfg(flags)) + tool = result.getPublicTool("ISF_FatrasPileupSimulatorToolST") + kwargs.setdefault("SimulatorTool", tool) + + result.merge(fatrasSimServiceIDCfg(flags, name, **kwargs)) return result diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasServicesSimConfigNew.py b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasServicesSimConfigNew.py new file mode 100644 index 00000000000..dfb396b4613 --- /dev/null +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasServicesSimConfigNew.py @@ -0,0 +1,49 @@ +""" +ComponentAccumulator service configuration for ISF_Fatras simulator tool FatrasSimTool +Separated from main config to avoid circular dependences + +Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +""" +from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator +from ISF_FatrasServices.ISF_FatrasServicesConfigNew import ( + FatrasSimulatorToolSTCfg, + FatrasNewExtrapolationSimulatorToolSTCfg, + FatrasPileupSimulatorToolSTCfg, +) +from ISF_SimulationSelectors.ISF_SimulationSelectorsConfigNew import ( + DefaultFatrasSelectorCfg, MuonFatrasSelectorCfg, +) + +def FatrasSimulatorToolCfg(flags, name="ISF_FatrasSimulatorTool", **kwargs): + acc = ComponentAccumulator() + deftool = acc.popToolsAndMerge(DefaultFatrasSelectorCfg(flags)) + muontool = acc.popToolsAndMerge(MuonFatrasSelectorCfg(flags)) + kwargs.setdefault("IDSimulationSelectors", [deftool]) + kwargs.setdefault("CaloSimulationSelectors", [muontool]) + kwargs.setdefault("MSSimulationSelectors", [deftool]) + tool = acc.popToolsAndMerge(FatrasSimulatorToolSTCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc + + +def FatrasNewExtrapolationSimulatorToolCfg(flags, name="ISF_FatrasSNewExtrapolationimulatorTool", **kwargs): + acc = ComponentAccumulator() + deftool = acc.popToolsAndMerge(DefaultFatrasSelectorCfg(flags)) + muontool = acc.popToolsAndMerge(MuonFatrasSelectorCfg(flags)) + kwargs.setdefault("IDSimulationSelectors", [deftool]) + kwargs.setdefault("CaloSimulationSelectors", [muontool]) + kwargs.setdefault("MSSimulationSelectors", [deftool]) + tool = acc.popToolsAndMerge(FatrasNewExtrapolationSimulatorToolSTCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return tool + +def FatrasPileupSimulatorToolCfg(flags, name="ISF_FatrasPileupSimulatorTool", **kwargs): + acc = ComponentAccumulator() + deftool = acc.popToolsAndMerge(DefaultFatrasSelectorCfg(flags)) + muontool = acc.popToolsAndMerge(MuonFatrasSelectorCfg(flags)) + kwargs.setdefault("IDSimulationSelectors", [deftool]) + kwargs.setdefault("CaloSimulationSelectors", [muontool]) + kwargs.setdefault("MSSimulationSelectors", [deftool]) + tool = acc.popToolsAndMerge(FatrasPileupSimulatorToolSTCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return tool diff --git a/Simulation/ISF/ISF_SimulationSelectors/CMakeLists.txt b/Simulation/ISF/ISF_SimulationSelectors/CMakeLists.txt index c45118e877e..9aea9edd201 100644 --- a/Simulation/ISF/ISF_SimulationSelectors/CMakeLists.txt +++ b/Simulation/ISF/ISF_SimulationSelectors/CMakeLists.txt @@ -17,5 +17,5 @@ atlas_add_component( ISF_SimulationSelectors LINK_LIBRARIES ${ROOT_LIBRARIES} ${HEPPDT_LIBRARIES} AtlasHepMCLib GaudiKernel BarcodeServicesLib ISF_Event ISF_InterfacesLib ISF_TrackingInterfacesLib ) # Install files from the package: -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) diff --git a/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfigNew.py b/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfigNew.py index fde6340e3d4..2901ef2bf10 100644 --- a/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfigNew.py +++ b/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfigNew.py @@ -10,7 +10,18 @@ from ISF_SimulationSelectors import SimulationFlavor from ISF_Services.ISF_ServicesConfigNew import ParticleKillerSvcCfg from ISF_Geant4Services.ISF_Geant4ServicesConfigNew import ( Geant4SimCfg, AFIIGeant4SimCfg, LongLivedGeant4SimCfg, AFII_QS_Geant4SimCfg, - FullGeant4SimCfg, PassBackGeant4SimCfg + FullGeant4SimCfg, PassBackGeant4SimCfg, +) +from ISF_FastCaloSimServices.ISF_FastCaloSimServicesConfigNew import ( + FastCaloSimSvcCfg, LegacyAFIIFastCaloSimSvcCfg, + FastCaloSimSvcV2Cfg, DNNCaloSimSvcCfg, + FastHitConvAlgFastCaloSimSvcCfg, + FastHitConvAlgLegacyAFIIFastCaloSimSvcCfg, + FastCaloSimPileupSvcCfg, FastCaloSimPileupOTSvcCfg, +) +from ISF_FatrasServices.ISF_FatrasServicesConfigNew import ( + FatrasSimServiceIDCfg, FatrasNewExtrapolationSimServiceIDCfg, + FatrasPileupSimServiceIDCfg, ) @@ -22,16 +33,19 @@ def DefaultSimSelectorCfg(flags, name="ISF_DefaultSimSelector", **kwargs): def DefaultParticleKillerSelectorCfg(flags, name="ISF_DefaultParticleKillerSelector", **kwargs): acc = ParticleKillerSvcCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_ParticleKillerSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_ParticleKillerSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.ParticleKiller) - acc.merge(DefaultSimSelectorCfg(flags, name, **kwargs)) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) return acc def PileupParticleKillerSelectorCfg(flags, name="ISF_PileupParticleKillerSelector", **kwargs): acc = ParticleKillerSvcCfg(flags) kwargs.setdefault("PileupBCID", [1]) - kwargs.setdefault("Simulator", acc.getService("ISF_ParticleKillerSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_ParticleKillerSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.ParticleKiller) acc.setPrivateTools(CompFactory.ISF.KinematicPileupSimSelector(name, **kwargs)) return acc @@ -39,99 +53,151 @@ def PileupParticleKillerSelectorCfg(flags, name="ISF_PileupParticleKillerSelecto def DefaultGeant4SelectorCfg(flags, name="ISF_DefaultGeant4Selector", **kwargs): acc = Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) - acc.merge(DefaultSimSelectorCfg(flags, name, **kwargs)) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) return acc def DefaultAFIIGeant4SelectorCfg(flags, name="ISF_DefaultAFIIGeant4Selector", **kwargs): acc = AFIIGeant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_AFIIGeant4SimSvc")) - acc.merge(DefaultGeant4SelectorCfg(flags, name, **kwargs)) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_AFIIGeant4SimSvc")) + tool = acc.popToolsAndMerge(DefaultGeant4SelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) return acc def DefaultLongLivedGeant4SelectorCfg(flags, name="ISF_DefaultLongLivedGeant4Selector", **kwargs): acc = LongLivedGeant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_LongLivedGeant4SimSvc")) - acc.merge(DefaultGeant4SelectorCfg(flags, name, **kwargs)) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_LongLivedGeant4SimSvc")) + tool = acc.popToolsAndMerge(DefaultGeant4SelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) return acc def DefaultAFII_QS_Geant4SelectorCfg(flags, name="ISF_DefaultAFII_QS_Geant4Selector", **kwargs): acc = AFII_QS_Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_AFII_QS_Geant4SimSvc")) - acc.merge(DefaultGeant4SelectorCfg(flags, name, **kwargs)) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_AFII_QS_Geant4SimSvc")) + tool = acc.popToolsAndMerge(DefaultGeant4SelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) return acc def FullGeant4SelectorCfg(flags, name="ISF_FullGeant4Selector", **kwargs): acc = FullGeant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_FullGeant4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FullGeant4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) - acc.merge(DefaultSimSelectorCfg(flags, name, **kwargs)) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) return acc def PassBackGeant4SelectorCfg(flags, name="ISF_PassBackGeant4Selector", **kwargs): acc = PassBackGeant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_PassBackGeant4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_PassBackGeant4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) - acc.merge(DefaultSimSelectorCfg(flags, name, **kwargs)) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) return acc def DefaultFastCaloSimSelectorCfg(flags, name="ISF_DefaultFastCaloSimSelector", **kwargs): - kwargs.setdefault("Simulator", "ISF_FastCaloSimSvc") # TODO + acc = FastCaloSimSvcCfg(flags) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FastCaloSimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.FastCaloSim) - return DefaultSimSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc def DefaultLegacyAFIIFastCaloSimSelectorCfg(flags, name="ISF_DefaultLegacyAFIIFastCaloSimSelector", **kwargs): - kwargs.setdefault("Simulator", "ISF_LegacyAFIIFastCaloSimSvc") # TODO + acc = LegacyAFIIFastCaloSimSvcCfg(flags) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_LegacyAFIIFastCaloSimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.FastCaloSim) - return DefaultSimSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc def DefaultFastCaloSimV2SelectorCfg(flags, name="ISF_DefaultFastCaloSimV2Selector", **kwargs): - kwargs.setdefault("Simulator", "ISF_FastCaloSimSvcV2") # TODO + acc = FastCaloSimSvcV2Cfg(flags) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FastCaloSimSvcV2")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.FastCaloSimV2) - return DefaultSimSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc def DefaultDNNCaloSimSelectorCfg(flags, name="ISF_DefaultDNNCaloSimSelector", **kwargs): - kwargs.setdefault("Simulator", "ISF_DNNCaloSimSvc") # TODO - return DefaultSimSelectorCfg(flags, name, **kwargs) + acc = DNNCaloSimSvcCfg(flags) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_DNNCaloSimSvc")) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc def FastHitConvAlgFastCaloSimSelectorCfg(flags, name="ISF_FastHitConvAlgFastCaloSimSelector", **kwargs): - kwargs.setdefault("Simulator", "ISF_FastHitConvAlgFastCaloSimSvc") # TODO + acc = ComponentAccumulator() + acc.merge(FastHitConvAlgFastCaloSimSvcCfg(flags)) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FastHitConvAlgFastCaloSimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.FastCaloSim) - return DefaultSimSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc + def FastHitConvAlgLegacyAFIIFastCaloSimSelectorCfg(flags, name="ISF_FastHitConvAlgLegacyAFIIFastCaloSimSelector", **kwargs): - kwargs.setdefault("Simulator", "ISF_FastHitConvAlgLegacyAFIIFastCaloSimSvc") # TODO + acc = ComponentAccumulator() + acc.merge(FastHitConvAlgLegacyAFIIFastCaloSimSvcCfg(flags)) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FastHitConvAlgLegacyAFIIFastCaloSimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.FastCaloSim) - return DefaultSimSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc def DefaultFatrasSelectorCfg(flags, name="ISF_DefaultFatrasSelector", **kwargs): - kwargs.setdefault("Simulator", "ISF_FatrasSimSvc") # TODO + acc = FatrasSimServiceIDCfg(flags) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FatrasSimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Fatras) - return DefaultSimSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc def DefaultFatrasNewExtrapolationSelectorCfg(flags, name="ISF_DefaultFatrasNewExtrapolationSelector", **kwargs): - kwargs.setdefault("Simulator", "ISF_FatrasNewExtrapolationSimSvc") # TODO + acc = ComponentAccumulator() + acc.merge(FatrasNewExtrapolationSimServiceIDCfg(flags)) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FatrasNewExtrapolationSimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Fatras) - return DefaultSimSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc def DefaultParametricSimulationSelectorCfg(flags, name="ISF_DefaultParametricSimulationSelector", **kwargs): - kwargs.setdefault("Simulator", "ISF_ParametricSimSvc") # TODO + acc = ComponentAccumulator() + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", "ISF_ParametricSimSvc") # TODO kwargs.setdefault("SimulationFlavor", SimulationFlavor.Parametric) - return DefaultSimSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(DefaultSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc # PileUpSimSelector Configurations @@ -142,38 +208,50 @@ def PileupSimSelectorCfg(flags, name="ISF_PileupSimSelector", **kwargs): def FatrasPileupSelectorCfg(flags, name="ISF_FatrasPileupSelector", **kwargs): + acc = ComponentAccumulator() + acc.merge(FatrasPileupSimServiceIDCfg(flags)) kwargs.setdefault("PileupBCID", [1]) - kwargs.setdefault("Simulator", "ISF_FatrasPileupSimSvc") # TODO + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FatrasPileupSimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.FatrasPileup) - return PileupSimSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(PileupSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc -def FatrasPileupSelector_noHits(flags, name="ISF_FatrasPileupSelector_noHits", **kwargs): - kwargs.setdefault("PileupBCID", [2]) - kwargs.setdefault("Simulator", "ISF_FatrasPileupSimSvc_noHits") # TODO - kwargs.setdefault("SimulationFlavor", SimulationFlavor.FatrasPileup) - return PileupSimSelectorCfg(flags, name, **kwargs) +# FatrasPileupSelector_noHits not migrated +# due to missing getter for Simulator "ISF_FatrasPileupSimSvc_noHits" def FastCaloSimPileupSelectorCfg(flags, name="ISF_FastCaloSimPileupSelector", **kwargs): + acc = FastCaloSimPileupSvcCfg(flags) kwargs.setdefault("PileupBCID" , flags.Sim.FastChain.BCID) - kwargs.setdefault("Simulator", "ISF_FastCaloSimPileupSvc") # TODO + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FastCaloSimPileupSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.FastCaloSimPileup) - return PileupSimSelectorCfg(flags, name, **kwargs) + acc.merge(PileupSimSelectorCfg(flags, name, **kwargs)) + tool = acc.popToolsAndMerge(PileupSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc def FastCaloSimPileupOTSelectorCfg(flags, name="ISF_FastCaloSimPileupOTSelector", **kwargs): + acc = FastCaloSimPileupOTSvcCfg(flags) kwargs.setdefault("PileupBCID", flags.Sim.FastChain.BCID) - kwargs.setdefault("Simulator", "ISF_FastCaloSimPileupOTSvc") # TODO + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FastCaloSimPileupOTSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.FastCaloSimPileup) - return PileupSimSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(PileupSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc # KinematicSimSelector Configurations def ElectronGeant4SelectorCfg(flags, name="ISF_ElectronGeant4Selector", **kwargs): acc = Geant4SimCfg(flags) kwargs.setdefault("ParticlePDG", 11) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) acc.setPrivateTools(CompFactory.ISF.KinematicSimSelector(name, **kwargs)) return acc @@ -182,7 +260,8 @@ def ElectronGeant4SelectorCfg(flags, name="ISF_ElectronGeant4Selector", **kwargs def NeutralGeant4SelectorCfg(flags, name="ISF_NeutralGeant4Selector", **kwargs): acc = Geant4SimCfg(flags) kwargs.setdefault("Charge", 0) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) acc.setPrivateTools(CompFactory.ISF.KinematicSimSelector(name, **kwargs)) return acc @@ -192,7 +271,8 @@ def ProtonAFIIGeant4SelectorCfg(flags, name="ISF_ProtonAFIIGeant4Selector", **kw acc = AFIIGeant4SimCfg(flags) kwargs.setdefault("MaxMom", 750) kwargs.setdefault("ParticlePDG", 2212) - kwargs.setdefault("Simulator", acc.getService("ISF_AFIIGeant4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_AFIIGeant4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) acc.setPrivateTools(CompFactory.ISF.KinematicSimSelector(name, **kwargs)) return acc @@ -200,7 +280,8 @@ def ProtonAFIIGeant4SelectorCfg(flags, name="ISF_ProtonAFIIGeant4Selector", **kw def ProtonAFII_QS_Geant4SelectorCfg(flags, name="ISF_ProtonAFII_QS_Geant4Selector", **kwargs): acc = AFII_QS_Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_AFII_QS_Geant4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_AFII_QS_Geant4SimSvc")) acc.merge(ProtonAFIIGeant4SelectorCfg(flags, name, **kwargs)) return acc @@ -209,7 +290,8 @@ def PionAFIIGeant4SelectorCfg(flags, name="ISF_PionAFIIGeant4Selector", **kwargs acc = AFIIGeant4SimCfg(flags) kwargs.setdefault("MaxMom", 200) kwargs.setdefault("ParticlePDG", 211) - kwargs.setdefault("Simulator", acc.getService("ISF_AFIIGeant4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_AFIIGeant4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) acc.setPrivateTools(CompFactory.ISF.KinematicSimSelector(name, **kwargs)) return acc @@ -217,7 +299,8 @@ def PionAFIIGeant4SelectorCfg(flags, name="ISF_PionAFIIGeant4Selector", **kwargs def PionAFII_QS_Geant4SelectorCfg(flags, name="ISF_PionAFII_QS_Geant4Selector", **kwargs): acc = AFII_QS_Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_AFII_QS_Geant4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_AFII_QS_Geant4SimSvc")) acc.merge(PionAFIIGeant4SelectorCfg(flags, name, **kwargs)) return acc @@ -226,7 +309,8 @@ def ChargedKaonAFIIGeant4SelectorCfg(flags, name="ISF_ChargedKaonAFIIGeant4Selec acc = AFIIGeant4SimCfg(flags) kwargs.setdefault("MaxMom", 750) kwargs.setdefault("ParticlePDG", 321) - kwargs.setdefault("Simulator", acc.getService("ISF_AFIIGeant4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_AFIIGeant4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) acc.setPrivateTools(CompFactory.ISF.KinematicSimSelector(name, **kwargs)) return acc @@ -234,7 +318,8 @@ def ChargedKaonAFIIGeant4SelectorCfg(flags, name="ISF_ChargedKaonAFIIGeant4Selec def ChargedKaonAFII_QS_Geant4SelectorCfg(flags, name="ISF_ChargedKaonAFII_QS_Geant4Selector", **kwargs): acc = AFII_QS_Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_AFII_QS_Geant4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_AFII_QS_Geant4SimSvc")) acc.merge(ChargedKaonAFIIGeant4SelectorCfg(flags, name, **kwargs)) return acc @@ -243,7 +328,8 @@ def KLongAFIIGeant4SelectorCfg(flags, name="ISF_KLongAFIIGeant4Selector", **kwar acc = AFIIGeant4SimCfg(flags) kwargs.setdefault("MaxMom", 750) kwargs.setdefault("ParticlePDG", 130) - kwargs.setdefault("Simulator", acc.getService("ISF_AFIIGeant4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_AFIIGeant4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) acc.setPrivateTools(CompFactory.ISF.KinematicSimSelector(name, **kwargs)) return acc @@ -251,7 +337,8 @@ def KLongAFIIGeant4SelectorCfg(flags, name="ISF_KLongAFIIGeant4Selector", **kwar def KLongAFII_QS_Geant4SelectorCfg(flags, name="ISF_KLongAFII_QS_Geant4Selector", **kwargs): acc = AFII_QS_Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_AFII_QS_Geant4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_AFII_QS_Geant4SimSvc")) acc.merge(KLongAFIIGeant4SelectorCfg(flags, name, **kwargs)) return acc @@ -262,46 +349,63 @@ def MuonSelectorCfg(flags, name="ISF_MuonSelector", **kwargs): acc.setPrivateTools(CompFactory.ISF.KinematicSimSelector(name, **kwargs)) return acc + def MuonGeant4SelectorCfg(flags, name="ISF_MuonGeant4Selector", **kwargs): acc = Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) - acc.merge(MuonSelectorCfg(flags, name, **kwargs)) + tool = acc.popToolsAndMerge(MuonSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) return acc def MuonAFIIGeant4SelectorCfg(flags, name="ISF_MuonAFIIGeant4Selector", **kwargs): acc = AFIIGeant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_AFIIGeant4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_AFIIGeant4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) - acc.merge(MuonGeant4SelectorCfg(flags, name, **kwargs)) + tool = acc.popToolsAndMerge(MuonGeant4SelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) return acc def MuonAFII_QS_Geant4SelectorCfg(flags, name="ISF_MuonAFII_QS_Geant4Selector", **kwargs): acc = AFII_QS_Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_AFII_QS_Geant4SimSvc")) - acc.merge(MuonGeant4SelectorCfg(flags, name, **kwargs)) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_AFII_QS_Geant4SimSvc")) + tool = acc.popToolsAndMerge(MuonGeant4SelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) return acc def MuonFatrasSelectorCfg(flags, name="ISF_MuonFatrasSelector", **kwargs): - kwargs.setdefault("Simulator", "ISF_FatrasSimSvc") # TODO + acc = FatrasSimServiceIDCfg(flags) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FatrasSimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Fatras) - return MuonSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(MuonSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc def MuonFatrasPileupSelectorCfg(flags, name="ISF_MuonFatrasPileupSelector", **kwargs): - kwargs.setdefault("Simulator", "ISF_FatrasPileupSimSvc") # TODO + acc = ComponentAccumulator() + acc.merge(FatrasPileupSimServiceIDCfg(flags)) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FatrasPileupSimSvc")) kwargs.setdefault("PileupBCID", [1]) kwargs.setdefault("ParticlePDG", 13) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Fatras) - return PileupSimSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(PileupSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc def WithinEta5FastCaloSimSelectorCfg(flags, name="ISF_WithinEta5FastCaloSimSelector", **kwargs): - acc = ComponentAccumulator() - kwargs.setdefault("Simulator", "ISF_FastCaloSimSvc") # TODO + acc = FastCaloSimSvcCfg(flags) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FastCaloSimSvc")) kwargs.setdefault("MinPosEta", -5.0) kwargs.setdefault("MaxPosEta", 5.0) kwargs.setdefault("SimulationFlavor", SimulationFlavor.FastCaloSim) @@ -311,7 +415,8 @@ def WithinEta5FastCaloSimSelectorCfg(flags, name="ISF_WithinEta5FastCaloSimSelec def EtaGreater5ParticleKillerSimSelectorCfg(flags, name="ISF_EtaGreater5ParticleKillerSimSelector", **kwargs): acc = ParticleKillerSvcCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_ParticleKillerSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_ParticleKillerSvc")) kwargs.setdefault("MinPosEta", -5.0) kwargs.setdefault("MaxPosEta", 5.0) kwargs.setdefault("InvertCuts", True) @@ -322,7 +427,8 @@ def EtaGreater5ParticleKillerSimSelectorCfg(flags, name="ISF_EtaGreater5Particle def EtaGreater5PileupParticleKillerSimSelectorCfg(flags, name="ISF_EtaGreater5PileupParticleKillerSimSelector", **kwargs): acc = ParticleKillerSvcCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISF_ParticleKillerSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_ParticleKillerSvc")) kwargs.setdefault("MinPosEta", -5.0) kwargs.setdefault("MaxPosEta", 5.0) kwargs.setdefault("InvertCuts", True) @@ -343,14 +449,19 @@ def PhotonConeSelectorCfg(flags, name="ISF_PhotonConeSelector", **kwargs): def PhotonConeFatrasSelectorCfg(flags, name="ISF_PhotonConeFatrasSelector", **kwargs): - kwargs.setdefault("Simulator", "ISF_FatrasSimSvc") # TODO + acc = FatrasSimServiceIDCfg(flags) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FatrasSimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Fatras) - return PhotonConeSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(PhotonConeSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc def PhotonConeGeant4SelectorCfg(flags, name="ISF_PhotonConeGeant4Selector", **kwargs): acc = Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) acc.merge(PhotonConeSelectorCfg(flags, name, **kwargs)) return acc @@ -372,7 +483,8 @@ def HiggsLeptonsConeSimSelectorCfg(flags, name="ISF_HiggsLeptonsConeSimSelector" def HiggsLeptonsConeGeant4SelectorCfg(flags, name="ISF_HiggsLeptonsConeGeant4Selector", **kwargs): acc = Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) acc.merge(HiggsLeptonsConeSimSelectorCfg(flags, name, **kwargs)) return acc @@ -393,7 +505,8 @@ def HiggsLeptonsConeGeant4CaloSelectorCfg(flags, name="ISF_HiggsLeptonsConeGeant def WLeptonsConeGeant4SelectorCfg(flags, name="ISF_WLeptonsConeGeant4Selector", **kwargs): acc = Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) kwargs.setdefault("ConeCreatorMinPt", 0.) kwargs.setdefault("ConeSize", 0.4) @@ -410,7 +523,8 @@ def ZLeptonsDirectionConeGeant4SelectorCfg(flags, name="ISF_ZLeptonsDirectionCon # this selector picks all particles with a mometum direction # within DeltaR<ConeSize relative to the Z decay lepton directions acc = Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) kwargs.setdefault("ConeCreatorMinPt", 0.) kwargs.setdefault("ConeSize", 0.4) @@ -432,7 +546,8 @@ def ZLeptonsPositionConeGeant4SelectorCfg(flags, name="ISF_ZLeptonsPositionConeG def JPsiLeptonsConeGeant4SelectorCfg(flags, name="ISF_JPsiLeptonsConeGeant4Selector", **kwargs): acc = Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) kwargs.setdefault("ConeCreatorMinPt", 0.) kwargs.setdefault("ConeSize", 0.4) @@ -463,16 +578,22 @@ def BHadronProductsSimSelectorCfg(flags, name="ISF_BHadronProductsSimSelector", def BHadronProductsGeant4SelectorCfg(flags, name="ISF_BHadronProductsGeant4Selector", **kwargs): acc = Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) - acc.merge(BHadronProductsSimSelectorCfg(flags, name, **kwargs)) + tool = acc.popToolsAndMerge(BHadronProductsSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) return acc def BHadronProductsFatrasSelectorCfg(flags, name="ISF_BHadronProductsFatrasSelector", **kwargs): - kwargs.setdefault("Simulator", "ISF_FatrasSimSvc") # TODO + acc = FatrasSimServiceIDCfg(flags) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISF_FatrasSimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Fatras) - return BHadronProductsSimSelectorCfg(flags, name, **kwargs) + tool = acc.popToolsAndMerge(BHadronProductsSimSelectorCfg(flags, name, **kwargs)) + acc.setPrivateTools(tool) + return acc def TauProductsSimSelectorCfg(flags, name="ISF_TauProductsSimSelector", **kwargs): @@ -487,7 +608,8 @@ def TauProductsSimSelectorCfg(flags, name="ISF_TauProductsSimSelector", **kwargs def TauProductsGeant4SelectorCfg(flags, name="ISF_TauProductsGeant4Selector", **kwargs): acc = Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) acc.merge(TauProductsSimSelectorCfg(flags, name, **kwargs)) return acc @@ -505,7 +627,8 @@ def ZProductsSimSelectorCfg(flags, name="ISF_ZProductsSimSelector", **kwargs): def ZProductsGeant4SelectorCfg(flags, name="ISF_ZProductsGeant4Selector", **kwargs): acc = Geant4SimCfg(flags) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) acc.merge(ZProductsSimSelectorCfg(flags, name, **kwargs)) return acc @@ -514,10 +637,10 @@ def ZProductsGeant4SelectorCfg(flags, name="ISF_ZProductsGeant4Selector", **kwar # HistorySimSelector Configurations def SubDetStickyGeant4SimSelectorCfg(flags, name="ISF_SubDetStickyGeant4SimSelector", **kwargs): acc = Geant4SimCfg(flags) - kwargs.setdefault("PrevSimSvc", acc.getService("ISFG4SimSvc")) kwargs.setdefault("RequiresUnchangedGeoID", True) - kwargs.setdefault("Simulator", "ISF_Geant4SimSvc") - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("PrevSimSvc", acc.getService("ISFG4SimSvc")) + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) acc.setPrivateTools(CompFactory.ISF.HistorySimSelector(name, **kwargs)) return acc @@ -527,7 +650,8 @@ def GlobalStickyGeant4SimSelectorCfg(flags, name="ISF_GlobalStickyGeant4SimSelec acc = Geant4SimCfg(flags) kwargs.setdefault("PrevSimSvc", acc.getService("ISFG4SimSvc")) kwargs.setdefault("RequiresUnchangedGeoID", False) - kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) + if flags.Concurrency.NumThreads == 0: + kwargs.setdefault("Simulator", acc.getService("ISFG4SimSvc")) kwargs.setdefault("SimulationFlavor", SimulationFlavor.Geant4) acc.setPrivateTools(CompFactory.ISF.HistorySimSelector(name, **kwargs)) return acc -- GitLab From dd5be9264b2016baf936002322068a1d0a25d1c4 Mon Sep 17 00:00:00 2001 From: Rupert Tombs <rt500@cam.ac.uk> Date: Fri, 31 Jul 2020 11:28:12 +0100 Subject: [PATCH 426/459] Add post build flake8 test to ISF_FatrasServices. Change old config to pass without warnings --- .../ISF_FatrasServices/CMakeLists.txt | 2 +- .../python/FatrasTrackingGeometrySvc.py | 1 - .../python/ISF_FatrasServicesConfig.py | 49 +++++++++---------- .../python/ISF_FatrasServicesConfigDb.py | 12 +---- 4 files changed, 25 insertions(+), 39 deletions(-) diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/CMakeLists.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/CMakeLists.txt index cbf9e111272..5f5c8c28792 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/CMakeLists.txt +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/CMakeLists.txt @@ -12,5 +12,5 @@ atlas_add_component( ISF_FatrasServices LINK_LIBRARIES AthenaBaseComps AtlasDetDescr GaudiKernel ISF_InterfacesLib TrkTrack ISF_Event ) # Install files from the package: -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/FatrasTrackingGeometrySvc.py b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/FatrasTrackingGeometrySvc.py index 6a34bd83096..64267826250 100755 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/FatrasTrackingGeometrySvc.py +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/FatrasTrackingGeometrySvc.py @@ -4,7 +4,6 @@ from __future__ import print_function class FatrasTrackingGeometrySvc: def __init__(self): - from AthenaCommon.Include import include from AthenaCommon.AppMgr import ToolSvc ################################################################################## diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasServicesConfig.py b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasServicesConfig.py index 48393250ef1..88d3c195bc7 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasServicesConfig.py +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasServicesConfig.py @@ -8,18 +8,14 @@ KG Tan, 04/12/2012 from __future__ import print_function from AthenaCommon import CfgMgr -from AthenaCommon.CfgGetter import getPrivateTool,getPrivateToolClone,getPublicTool,getPublicToolClone,\ - getService,getServiceClone,getAlgorithm,getAlgorithmClone +from AthenaCommon.CfgGetter import getPublicTool -from AthenaCommon.Constants import * # FATAL,ERROR etc. -from AthenaCommon.SystemOfUnits import * from AthenaCommon.DetFlags import DetFlags from TrkDetDescrSvc.TrkDetDescrJobProperties import TrkDetFlags from ISF_Config.ISF_jobProperties import ISF_Flags # IMPORTANT: Flags must be set before tools are retrieved from ISF_FatrasServices.ISF_FatrasJobProperties import ISF_FatrasFlags from ISF_FatrasServices.FatrasTuning import FatrasTuningFlags -from ISF_FatrasServices.FatrasValidation import FatrasValidationFlags from ISF_Algorithms.collection_merger_helpers import generate_mergeable_collection_name ################################################################################# @@ -36,7 +32,7 @@ def initialiseCoolDataBaseFolder(): print ('[ TrackingGeometrySvc ]') # check whether the material retrieval is ment to be from COOL - if TrkDetFlags.MaterialSource() is 'COOL' : + if TrkDetFlags.MaterialSource() == 'COOL' : # the tag names CoolDataBaseFolder = TrkDetFlags.MaterialStoreGateKey() AtlasMaterialTag = TrkDetFlags.MaterialTagBase()+str(TrkDetFlags.MaterialVersion())+'_' @@ -238,7 +234,7 @@ def getFatrasPdgG4Particle(name="ISF_FatrasPdgG4Particle", **kwargs): return iFatras__PDGToG4Particle(name, **kwargs ) def getFatrasParticleDecayHelper(name="ISF_FatrasParticleDecayHelper", **kwargs): - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags if not simFlags.RandomSeedList.checkForExistingSeed( "FatrasG4" ): simFlags.RandomSeedList.addSeed( "FatrasG4" , 23491234, 23470291 ) kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) @@ -265,7 +261,7 @@ def getFatrasParticleDecayHelper(name="ISF_FatrasParticleDecayHelper", **kwargs) # the G4 MaterialEffectsUpdator def getFatrasG4HadIntProcessor(name="ISF_FatrasG4HadIntProcessor", **kwargs): - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("ParticleBroker" , ISF_Flags.ParticleBroker()) @@ -278,7 +274,7 @@ def getFatrasG4HadIntProcessor(name="ISF_FatrasG4HadIntProcessor", **kwargs): return iFatras__G4HadIntProcessor(name, **kwargs ) def getFatrasParametricHadIntProcessor(name="ISF_FatrasParametricHadIntProcessor", **kwargs): - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags # Fatras Hadronic Interaction Processor # hadronic interaction creator kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) @@ -301,7 +297,7 @@ def getFatrasParametricHadIntProcessor(name="ISF_FatrasParametricHadIntProcessor def getFatrasConversionCreator(name="ISF_FatrasConversionCreator", **kwargs): # Fatras Hadronic Interaction Processor # hadronic interaction creator - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("ParticleBroker" , ISF_Flags.ParticleBroker()) @@ -316,7 +312,7 @@ def getFatrasConversionCreator(name="ISF_FatrasConversionCreator", **kwargs): def getFatrasProcessSamplingTool(name="ISF_FatrasProcessSamplingTool", **kwargs): # random number service - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags kwargs.setdefault( "RandomNumberService", simFlags.RandomSvc()) # truth record kwargs.setdefault("TruthRecordSvc" , simFlags.TruthStrategy.TruthServiceName()) @@ -339,7 +335,7 @@ def getFatrasProcessSamplingTool(name="ISF_FatrasProcessSamplingTool", **kwargs) # - Ionization and Bremstrahlung loss # - assing the Bethe-Heitler Eloss updator def getFatrasEnergyLossUpdator(name="ISF_FatrasEnergyLossUpdator", **kwargs): - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("UsePDG_EnergyLossFormula", True) @@ -350,7 +346,7 @@ def getFatrasEnergyLossUpdator(name="ISF_FatrasEnergyLossUpdator", **kwargs): return iFatras__McEnergyLossUpdator(name, **kwargs ) def getFatrasEnergyLossSamplerBetheHeitler(name="ISF_FatrasEnergyLossSamplerBetheHeitler", **kwargs): - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("ScaleFactor" , FatrasTuningFlags.BetheHeitlerScalor()) @@ -361,7 +357,7 @@ def getFatrasEnergyLossSamplerBetheHeitler(name="ISF_FatrasEnergyLossSamplerBeth # # (iii) Multiple scattering def getFatrasMultipleScatteringUpdator(name="ISF_FatrasMultipleScatteringUpdator", **kwargs): - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags if not simFlags.RandomSeedList.checkForExistingSeed( "TrkExRnd" ): simFlags.RandomSeedList.addSeed( "TrkExRnd" , 12412330, 37849324 ) kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) @@ -372,7 +368,7 @@ def getFatrasMultipleScatteringUpdator(name="ISF_FatrasMultipleScatteringUpdator return Trk__MultipleScatteringUpdator(name, **kwargs ) def getFatrasMultipleScatteringSamplerHighland(name="ISF_MultipleScatteringSamplerHighland", **kwargs): - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags if not simFlags.RandomSeedList.checkForExistingSeed( "TrkExRnd" ): simFlags.RandomSeedList.addSeed( "TrkExRnd" , 12412330, 37849324 ) kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) @@ -381,7 +377,7 @@ def getFatrasMultipleScatteringSamplerHighland(name="ISF_MultipleScatteringSampl return iFatras__MultipleScatteringSamplerHighland(name, **kwargs ) def getFatrasMultipleScatteringSamplerGaussianMixture(name="ISF_MultipleScatteringSamplerGaussianMixture", **kwargs): - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags if not simFlags.RandomSeedList.checkForExistingSeed( "TrkExRnd" ): simFlags.RandomSeedList.addSeed( "TrkExRnd" , 12412330, 37849324 ) kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) @@ -390,7 +386,7 @@ def getFatrasMultipleScatteringSamplerGaussianMixture(name="ISF_MultipleScatteri return iFatras__MultipleScatteringSamplerGaussianMixture(name, **kwargs ) def getFatrasMultipleScatteringSamplerGeneralMixture(name="ISF_MultipleScatteringSamplerGeneralMixture", **kwargs): - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags if not simFlags.RandomSeedList.checkForExistingSeed( "TrkExRnd" ): simFlags.RandomSeedList.addSeed( "TrkExRnd" , 12412330, 37849324 ) kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) @@ -400,7 +396,7 @@ def getFatrasMultipleScatteringSamplerGeneralMixture(name="ISF_MultipleScatterin # Combining all in the MaterialEffectsUpdator def getFatrasMaterialUpdator(name="ISF_FatrasMaterialUpdator", **kwargs): - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags from TrkDetDescrSvc.AtlasTrackingGeometrySvc import AtlasTrackingGeometrySvc kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) @@ -437,7 +433,7 @@ def getFatrasMaterialUpdator(name="ISF_FatrasMaterialUpdator", **kwargs): return iFatras__McMaterialEffectsUpdator(name, **kwargs ) def getFatrasMaterialEffectsEngine(name="ISF_FatrasMaterialEffectsEngine", **kwargs): - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("ParticleBroker" , ISF_Flags.ParticleBroker()) @@ -538,13 +534,12 @@ def getFatrasHitCreatorPixel(name="ISF_FatrasHitCreatorPixel", **kwargs): mergeable_collection_suffix, merger_input_property) - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("IdHelperName" , 'PixelID') kwargs.setdefault("CollectionName" , hits_collection_name) - from FastCaloSimHit.FastCaloSimHitConf import FastHitConvertTool kwargs.setdefault("UseConditionsTool", False) from ISF_FatrasToolsID.ISF_FatrasToolsIDConf import iFatras__HitCreatorSilicon @@ -557,7 +552,7 @@ def getFatrasHitCreatorSCT(name="ISF_FatrasHitCreatorSCT", **kwargs): hits_collection_name = generate_mergeable_collection_name(bare_collection_name, mergeable_collection_suffix, merger_input_property) - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("IdHelperName" , 'SCT_ID') @@ -574,7 +569,7 @@ def getFatrasHitCreatorTRT(name="ISF_FatrasHitCreatorTRT", **kwargs): hits_collection_name = generate_mergeable_collection_name(bare_collection_name, mergeable_collection_suffix, merger_input_property) - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("CollectionName" , hits_collection_name) @@ -636,7 +631,7 @@ def getFatrasSimHitCreatorMS(name="ISF_FatrasSimHitCreatorMS", **kwargs): mergeable_collection_suffix, csc_merger_input_property) - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags kwargs.setdefault("RandomNumberService" , simFlags.RandomSvc() ) kwargs.setdefault("RandomStreamName" , ISF_FatrasFlags.RandomStreamName()) kwargs.setdefault("Extrapolator" , getPublicTool('ISF_FatrasExtrapolator')) @@ -684,7 +679,7 @@ def getFatrasSimTool(name="ISF_FatrasSimTool", **kwargs): kwargs.setdefault("OutputLevel" , ISF_FatrasFlags.OutputLevelGeneral()) kwargs.setdefault("ValidationOutput" , ISF_Flags.ValidationMode()) # random number service - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags kwargs.setdefault( "RandomNumberService", simFlags.RandomSvc()) from ISF_FatrasTools.ISF_FatrasToolsConf import iFatras__TransportTool @@ -708,7 +703,7 @@ def getFatrasSimEngine(name="ISF_FatrasSimEngine", **kwargs): kwargs.setdefault("ValidationMode" , ISF_Flags.ValidationMode()) kwargs.setdefault("PhysicsValidationTool" , getPublicTool('ISF_FatrasPhysicsValidationTool')) # random number service - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags kwargs.setdefault( "RandomNumberService", simFlags.RandomSvc()) from ISF_FatrasTools.ISF_FatrasToolsConf import iFatras__TransportEngine @@ -752,7 +747,7 @@ def getFatrasSimulatorToolST(name="ISF_FatrasSimulatorToolST", **kwargs): # set the output level kwargs.setdefault("OutputLevel" , ISF_FatrasFlags.OutputLevelGeneral()) # register Fatras random number stream if not already registered - from G4AtlasApps.SimFlags import SimFlags,simFlags + from G4AtlasApps.SimFlags import simFlags if not simFlags.RandomSeedList.checkForExistingSeed( "FatrasRnd" ): simFlags.RandomSeedList.addSeed( "FatrasRnd", 81234740, 23474923 ) return CfgMgr.ISF__FatrasSimTool(name, **kwargs) diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasServicesConfigDb.py b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasServicesConfigDb.py index 5cbb63294b8..254e92cd4c0 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasServicesConfigDb.py +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasServices/python/ISF_FatrasServicesConfigDb.py @@ -1,19 +1,11 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration """ Configuration database for ISF Elmar Ritsch, 10/11/2014 """ -from AthenaCommon.CfgGetter import addTool, addToolClone, addService, addAlgorithm, \ - addTypesToExcludeIfDefaultValue, addNamesToExcludeIfDefaultValue, addFullNamesToExcludeIfDefaultValue, \ - addPropertiesToExcludeIfDefault, \ - addTypesToSkipIfNotAvailable, addNamesToSkipIfNotAvailable, addFullNamesToSkipIfNotAvailable, \ - addTypesOnlyToSkip - -from AthenaCommon.Constants import * # FATAL,ERROR etc. -import AthenaCommon.SystemOfUnits as Units - +from AthenaCommon.CfgGetter import addTool, addService addTool("ISF_FatrasServices.ISF_FatrasServicesConfig.getInDetTrackingGeometryBuilder", "ISF_InDetTrackingGeometryBuilder") addTool("ISF_FatrasServices.ISF_FatrasServicesConfig.getFatrasCaloTrackingGeometryBuilder", "ISF_FatrasCaloTrackingGeometryBuilder") -- GitLab From 0915f8c1ef670ddfedeaa1052d3a73861fcf96f9 Mon Sep 17 00:00:00 2001 From: Rupert Tombs <rt500@cam.ac.uk> Date: Fri, 31 Jul 2020 11:40:44 +0100 Subject: [PATCH 427/459] Correct "yet to be migrated comment" - these have been migrated --- .../ISF_HepMC_Tools/python/ISF_HepMC_ToolsConfigNew.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/Simulation/ISF/ISF_HepMC/ISF_HepMC_Tools/python/ISF_HepMC_ToolsConfigNew.py b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Tools/python/ISF_HepMC_ToolsConfigNew.py index 554e8709079..c95349dde3b 100644 --- a/Simulation/ISF/ISF_HepMC/ISF_HepMC_Tools/python/ISF_HepMC_ToolsConfigNew.py +++ b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Tools/python/ISF_HepMC_ToolsConfigNew.py @@ -7,9 +7,6 @@ from AthenaConfiguration.ComponentFactory import CompFactory from AthenaCommon.SystemOfUnits import MeV, mm from ISF_Services.ISF_ServicesCoreConfigNew import GeoIDSvcCfg -#Functions yet to be migrated: -#getParticlePositionFilterMS -#getTruthStrategyGroupID, getTruthStrategyGroupIDHadInt, getTruthStrategyGroupCaloMuBrem_MC15, getTruthStrategyGroupCaloDecay, getValidationTruthStrategy, getLLPTruthStrategy # GenParticleFilters def ParticleFinalStateFilterCfg(ConfigFlags, name="ISF_ParticleFinalStateFilter", **kwargs): -- GitLab From bcda5a390a98ce496ee0504c85174f49db237707 Mon Sep 17 00:00:00 2001 From: Rupert Tombs <rt500@cam.ac.uk> Date: Fri, 31 Jul 2020 11:41:14 +0100 Subject: [PATCH 428/459] Enable post build flake8 test, tweak old config to disable warning --- .../ISF_HepMC/ISF_HepMC_Tools/CMakeLists.txt | 2 +- .../python/ISF_HepMC_ToolsConfig.py | 29 +++++++++---------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/Simulation/ISF/ISF_HepMC/ISF_HepMC_Tools/CMakeLists.txt b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Tools/CMakeLists.txt index f8974a2b0b8..c59950c012e 100644 --- a/Simulation/ISF/ISF_HepMC/ISF_HepMC_Tools/CMakeLists.txt +++ b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Tools/CMakeLists.txt @@ -38,5 +38,5 @@ atlas_add_test( GenParticleLifetimeFilter_test LINK_LIBRARIES ${GTEST_LIBRARIES} ${GMOCK_LIBRARIES} AtlasHepMCLib AthenaBaseComps TruthUtils ISF_HepMC_Interfaces ) # Install files from the package: -atlas_install_python_modules( python/*.py ) +atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) diff --git a/Simulation/ISF/ISF_HepMC/ISF_HepMC_Tools/python/ISF_HepMC_ToolsConfig.py b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Tools/python/ISF_HepMC_ToolsConfig.py index 34bbfc0de32..1b1bbf1f607 100644 --- a/Simulation/ISF/ISF_HepMC/ISF_HepMC_Tools/python/ISF_HepMC_ToolsConfig.py +++ b/Simulation/ISF/ISF_HepMC/ISF_HepMC_Tools/python/ISF_HepMC_ToolsConfig.py @@ -6,7 +6,6 @@ KG Tan, 17/06/2012 """ from AthenaCommon import CfgMgr -from AthenaCommon.Constants import * # FATAL,ERROR etc. from AthenaCommon.SystemOfUnits import MeV, mm #-------------------------------------------------------------------------------------------------- @@ -132,7 +131,7 @@ def getTruthStrategyGroupID_MC15(name="ISF_MCTruthStrategyGroupID_MC15", **kwarg kwargs.setdefault('VertexTypeRangeLow' , 201) # All kinds of decay processes kwargs.setdefault('VertexTypeRangeHigh' , 298) # ... kwargs.setdefault('Regions', [1,2]) # Could import AtlasDetDescr::AtlasRegion enum as in TruthService CfgGetter methods here - return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs); + return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs) def getTruthStrategyGroupID(name="ISF_MCTruthStrategyGroupID", **kwargs): @@ -142,7 +141,7 @@ def getTruthStrategyGroupID(name="ISF_MCTruthStrategyGroupID", **kwargs): kwargs.setdefault('VertexTypeRangeLow' , 201) # All kinds of decay processes kwargs.setdefault('VertexTypeRangeHigh' , 298) # ... kwargs.setdefault('Regions', [1,2]) - return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs); + return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs) def getTruthStrategyGroupIDHadInt_MC15(name="ISF_MCTruthStrategyGroupIDHadInt_MC15", **kwargs): @@ -151,7 +150,7 @@ def getTruthStrategyGroupIDHadInt_MC15(name="ISF_MCTruthStrategyGroupIDHadInt_MC kwargs.setdefault('VertexTypes' , [ 111, 121, 131, 141, 151, 161, 210 ]) kwargs.setdefault('AllowChildrenOrParentPassKineticCuts' , True) kwargs.setdefault('Regions', [1]) - return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs); + return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs) def getTruthStrategyGroupIDHadInt(name="ISF_MCTruthStrategyGroupIDHadInt", **kwargs): @@ -160,7 +159,7 @@ def getTruthStrategyGroupIDHadInt(name="ISF_MCTruthStrategyGroupIDHadInt", **kwa kwargs.setdefault('VertexTypes' , [ 111, 121, 131, 141, 151, 161, 210 ]) kwargs.setdefault('AllowChildrenOrParentPassKineticCuts' , True) kwargs.setdefault('Regions', [1]) - return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs); + return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs) def getTruthStrategyGroupCaloMuBrem_MC15(name="ISF_MCTruthStrategyGroupCaloMuBrem_MC15", **kwargs): @@ -169,7 +168,7 @@ def getTruthStrategyGroupCaloMuBrem_MC15(name="ISF_MCTruthStrategyGroupCaloMuBre kwargs.setdefault('VertexTypes' , [ 3 ]) kwargs.setdefault('ParentPDGCodes' , [ 13, -13 ]) kwargs.setdefault('Regions', [3]) - return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs); + return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs) def getTruthStrategyGroupCaloMuBrem(name="ISF_MCTruthStrategyGroupCaloMuBrem", **kwargs): kwargs.setdefault('ParentMinEkin' , 500.*MeV) @@ -177,7 +176,7 @@ def getTruthStrategyGroupCaloMuBrem(name="ISF_MCTruthStrategyGroupCaloMuBrem", * kwargs.setdefault('VertexTypes' , [ 3 ]) kwargs.setdefault('ParentPDGCodes' , [ 13, -13 ]) kwargs.setdefault('Regions', [3]) - return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs); + return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs) def getTruthStrategyGroupCaloDecay_MC15(name="ISF_MCTruthStrategyGroupCaloDecay_MC15", **kwargs): kwargs.setdefault('ParentMinEkin' , 1000.*MeV) @@ -186,7 +185,7 @@ def getTruthStrategyGroupCaloDecay_MC15(name="ISF_MCTruthStrategyGroupCaloDecay_ kwargs.setdefault('VertexTypeRangeLow' , 201) # All kinds of decay processes kwargs.setdefault('VertexTypeRangeHigh' , 298) # ... kwargs.setdefault('Regions', [3]) - return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs); + return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs) def getTruthStrategyGroupCaloDecay(name="ISF_MCTruthStrategyGroupCaloDecay", **kwargs): kwargs.setdefault('ParentMinPt' , 1000.*MeV) @@ -195,12 +194,12 @@ def getTruthStrategyGroupCaloDecay(name="ISF_MCTruthStrategyGroupCaloDecay", **k kwargs.setdefault('VertexTypeRangeLow' , 201) # All kinds of decay processes kwargs.setdefault('VertexTypeRangeHigh' , 298) # ... kwargs.setdefault('Regions', [3]) - return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs); + return CfgMgr.ISF__GenericTruthStrategy(name, **kwargs) def getValidationTruthStrategy(name="ISF_ValidationTruthStrategy", **kwargs): kwargs.setdefault('ParentMinP' , 50.*MeV) kwargs.setdefault('Regions', [1,3]) - return CfgMgr.ISF__ValidationTruthStrategy(name, **kwargs); + return CfgMgr.ISF__ValidationTruthStrategy(name, **kwargs) def getLLPTruthStrategy(name="ISF_LLPTruthStrategy", **kwargs): kwargs.setdefault('PassProcessCodeRangeLow', 200 ) @@ -209,7 +208,7 @@ def getLLPTruthStrategy(name="ISF_LLPTruthStrategy", **kwargs): # http://www-geant4.kek.jp/lxr/source//processes/management/include/G4ProcessType.hh kwargs.setdefault('PassProcessCategory', 9 ) # == kwargs.setdefault('Regions', [1,2,3,4]) - return CfgMgr.ISF__LLPTruthStrategy(name, **kwargs); + return CfgMgr.ISF__LLPTruthStrategy(name, **kwargs) def getKeepLLPDecayChildrenStrategy(name="ISF_KeepLLPDecayChildrenStrategy", **kwargs): # ProcessCategory==9 corresponds to the 'fUserDefined' G4ProcessType: @@ -218,12 +217,12 @@ def getKeepLLPDecayChildrenStrategy(name="ISF_KeepLLPDecayChildrenStrategy", **k kwargs.setdefault('VertexTypeRangeLow' , 200) # All kinds of decay processes kwargs.setdefault('VertexTypeRangeHigh' , 299) # ... kwargs.setdefault('BSMParent' , True) - return CfgMgr.ISF__KeepChildrenTruthStrategy(name, **kwargs); + return CfgMgr.ISF__KeepChildrenTruthStrategy(name, **kwargs) def getKeepLLPHadronicInteractionChildrenStrategy(name="ISF_KeepLLPHadronicInteractionChildrenStrategy", **kwargs): kwargs.setdefault('VertexTypes' , [ 111, 121, 131, 141, 151, 161, 210 ]) kwargs.setdefault('BSMParent' , True) - return CfgMgr.ISF__KeepChildrenTruthStrategy(name, **kwargs); + return CfgMgr.ISF__KeepChildrenTruthStrategy(name, **kwargs) def getKeepAllDecayChildrenStrategy(name="ISF_KeepAllDecayChildrenStrategy", **kwargs): # ProcessCategory==9 corresponds to the 'fUserDefined' G4ProcessType: @@ -231,8 +230,8 @@ def getKeepAllDecayChildrenStrategy(name="ISF_KeepAllDecayChildrenStrategy", **k kwargs.setdefault('PassProcessCategory' , 9 ) # == kwargs.setdefault('VertexTypeRangeLow' , 200) # All kinds of decay processes kwargs.setdefault('VertexTypeRangeHigh' , 299) # ... - return CfgMgr.ISF__KeepChildrenTruthStrategy(name, **kwargs); + return CfgMgr.ISF__KeepChildrenTruthStrategy(name, **kwargs) def getKeepHadronicInteractionChildrenStrategy(name="ISF_KeepHadronicInteractionChildrenStrategy", **kwargs): kwargs.setdefault('VertexTypes' , [ 111, 121, 131, 141, 151, 161, 210 ]) - return CfgMgr.ISF__KeepChildrenTruthStrategy(name, **kwargs); + return CfgMgr.ISF__KeepChildrenTruthStrategy(name, **kwargs) -- GitLab From 6968f5372fe0147e3aef20d62b21d37555d8cf85 Mon Sep 17 00:00:00 2001 From: Michael Duehrssen <michael.duehrssen@cern.ch> Date: Tue, 28 Jul 2020 18:22:48 +0200 Subject: [PATCH 429/459] Update special Fatras G4DetectorConstruction to either use the ATLAS Vacuum as material or a special one with a different name --- .../src/G4DetectorConstruction.cxx | 20 +++++++++---------- .../src/G4DetectorConstruction.h | 9 +-------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4DetectorConstruction.cxx b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4DetectorConstruction.cxx index 96971e087ab..b98cc9d2876 100644 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4DetectorConstruction.cxx +++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4DetectorConstruction.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -20,16 +20,9 @@ #include "G4PVPlacement.hh" #include "globals.hh" -// G4 material : vacuum setup -G4Material* G4DetectorConstruction::s_g4vacuum = new G4Material("Vacuum",1.,1.01*CLHEP::g/CLHEP::mole, - CLHEP::universe_mean_density, - kStateGas,0.1*CLHEP::kelvin, 1.e-19*CLHEP::pascal); - G4DetectorConstruction::G4DetectorConstruction() : m_worldLog(nullptr), - //m_detectorLog(nullptr), m_worldPhys(nullptr) - ///m_detectorPhys(nullptr), {} @@ -44,8 +37,15 @@ void G4DetectorConstruction::dummyDetector() // (1) WORLD // create the world setup G4Box* worldBox = new G4Box("WorldBox",25000.,25000.,25000.); - m_worldLog = m_worldLog ? new(m_worldLog) G4LogicalVolume(worldBox,s_g4vacuum,"WorldLogical", 0, 0, 0) : - new G4LogicalVolume(worldBox,s_g4vacuum,"WorldLogical", 0, 0, 0); + + // G4 material : vacuum setup + G4Material* g4vacuum = G4Material::GetMaterial("Vacuum",false); + if(!g4vacuum) g4vacuum = new G4Material("FatrasDummyVacuum",1.,1.01*CLHEP::g/CLHEP::mole, + CLHEP::universe_mean_density, + kStateGas,0.1*CLHEP::kelvin, 1.e-19*CLHEP::pascal); + + m_worldLog = m_worldLog ? new(m_worldLog) G4LogicalVolume(worldBox,g4vacuum,"WorldLogical", 0, 0, 0) : + new G4LogicalVolume(worldBox,g4vacuum,"WorldLogical", 0, 0, 0); m_worldPhys = m_worldPhys ? new(m_worldPhys) G4PVPlacement(0,G4ThreeVector(0.,0.,0),"WorldPhysical",m_worldLog,0,false,0) : new G4PVPlacement(0,materialPosition,"WorldPhysical",m_worldLog,0,false,0); diff --git a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4DetectorConstruction.h b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4DetectorConstruction.h index 885f2b3222a..90107de37e1 100644 --- a/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4DetectorConstruction.h +++ b/Simulation/ISF/ISF_Geant4/ISF_Geant4Tools/src/G4DetectorConstruction.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /////////////////////////////////////////////////////////////////// @@ -36,17 +36,10 @@ private: // Logical volumes // G4LogicalVolume* m_worldLog; - //G4LogicalVolume* m_detectorLog; // Physical volumes // G4VPhysicalVolume* m_worldPhys; - //G4VPhysicalVolume* m_detectorPhys; - - // Vaccum material - // - static G4Material* s_g4vacuum; - }; #endif -- GitLab From ae118c636ab9135b9f62fa4a7c1c4deb80a33d84 Mon Sep 17 00:00:00 2001 From: Michael Duehrssen <michael.duehrssen@cern.ch> Date: Fri, 31 Jul 2020 10:58:31 +0200 Subject: [PATCH 430/459] Update RunTier0TestsTools.py to take the updated reference file --- Tools/PROCTools/python/RunTier0TestsTools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tools/PROCTools/python/RunTier0TestsTools.py b/Tools/PROCTools/python/RunTier0TestsTools.py index 1550daabc9b..ecf1561ef03 100644 --- a/Tools/PROCTools/python/RunTier0TestsTools.py +++ b/Tools/PROCTools/python/RunTier0TestsTools.py @@ -25,7 +25,7 @@ ciRefFileMap = { 's3505-21.0' : 'v1', 's3505-21.3' : 'v1', 's3505-21.9' : 'v1', - 's3505-22.0' : 'v5', + 's3505-22.0' : 'v6', # OverlayTier0Test_required-test 'overlay-d1498-21.0' : 'v2', 'overlay-d1498-22.0' : 'v33', -- GitLab From fd5e8dc09c6cdd877ed553b56c9a7ceb2c3e552b Mon Sep 17 00:00:00 2001 From: Rupert Tombs <rt500@cam.ac.uk> Date: Fri, 31 Jul 2020 14:25:22 +0100 Subject: [PATCH 431/459] Fix flake8 warnings in old config --- .../python/ISF_SimulationSelectorsConfig.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfig.py b/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfig.py index ac7fb2086c9..f253c348e76 100644 --- a/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfig.py +++ b/Simulation/ISF/ISF_SimulationSelectors/python/ISF_SimulationSelectorsConfig.py @@ -6,8 +6,6 @@ Elmar Ritsch, 04/02/2013 from AthenaCommon import CfgMgr -from AthenaCommon.Constants import * # FATAL,ERROR etc. -from AthenaCommon.SystemOfUnits import * from ISF_SimulationSelectors import SimulationFlavor ### DefaultSimSelector configurations -- GitLab From 40c14f6204f6be36672a609e2ccff8c0ead0fda3 Mon Sep 17 00:00:00 2001 From: Dan Guest <dguest@cern.ch> Date: Fri, 31 Jul 2020 16:15:24 +0200 Subject: [PATCH 432/459] Harden DL2 --- .../FlavorTagDiscriminants/DL2.h | 22 +++++++++++++++++-- .../Root/DL2HighLevel.cxx | 3 ++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/DL2.h b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/DL2.h index 1427d6c572c..e150d0c4edd 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/DL2.h +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/DL2.h @@ -22,6 +22,7 @@ #include <vector> #include <functional> #include <exception> +#include <type_traits> // forward declarations namespace lwt { @@ -122,7 +123,17 @@ namespace FlavorTagDiscriminants { NamedVar operator()(const xAOD::Jet& jet) const { const xAOD::BTagging* btag = jet.btagging(); if (!btag) throw std::runtime_error("can't find btagging object"); - return {m_name, m_default_flag(*btag) ? NAN : m_getter(*btag)}; + T ret_value = m_getter(*btag); + bool is_default = m_default_flag(*btag); + if constexpr (std::is_floating_point<T>::value) { + if (std::isnan(ret_value) && !is_default) { + throw std::runtime_error( + "Found NAN value for '" + m_name + + "'. This is only allowed when using a default" + " value for this input"); + } + } + return {m_name, is_default ? NAN : ret_value}; } }; @@ -142,7 +153,14 @@ namespace FlavorTagDiscriminants { NamedVar operator()(const xAOD::Jet& jet) const { const xAOD::BTagging* btag = jet.btagging(); if (!btag) throw std::runtime_error("can't find btagging object"); - return {m_name, m_getter(*btag)}; + T ret_value = m_getter(*btag); + if constexpr (std::is_floating_point<T>::value) { + if (std::isnan(ret_value)) { + throw std::runtime_error( + "Found NAN value for '" + m_name + "'."); + } + } + return {m_name, ret_value}; } }; diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/DL2HighLevel.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/DL2HighLevel.cxx index 339a116cc4e..127db489ca7 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/DL2HighLevel.cxx +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/Root/DL2HighLevel.cxx @@ -100,7 +100,8 @@ namespace FlavorTagDiscriminants { {"JetFitterFlip_.*"_r, "JetFitterFlip_isDefaults"}, {"JetFitterSecondaryVertex_.*"_r, "JetFitterSecondaryVertex_isDefaults"}, {"JetFitterSecondaryVertexFlip_.*"_r, "JetFitterSecondaryVertexFlip_isDefaults"}, - {".*TrackRelativeEta(Flip)?"_r, ""}, + {".*TrackRelativeEta"_r, "JetFitterSecondaryVertex_isDefaults"}, + {".*TrackRelativeEtaFlip"_r, "JetFitterSecondaryVertexFlip_isDefaults"}, {"rnnip_.*"_r, "rnnip_isDefaults"}, {"rnnipflip_.*"_r, "rnnipflip_isDefaults"}, {"iprnn_.*"_r, ""}, -- GitLab From ec00dbd8c2931e5dc1d870b34ece8541c423dd99 Mon Sep 17 00:00:00 2001 From: Rafal Bielski <rafal.bielski@cern.ch> Date: Fri, 31 Jul 2020 16:47:42 +0200 Subject: [PATCH 433/459] TrigValSteering.CheckSteps: Merge Trig_reco_tf sub-step logs --- .../TrigValTools/python/TrigValSteering/CheckSteps.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/CheckSteps.py b/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/CheckSteps.py index 56e9eda2d1e..62710f0657c 100644 --- a/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/CheckSteps.py +++ b/Trigger/TrigValidation/TrigValTools/python/TrigValSteering/CheckSteps.py @@ -662,7 +662,7 @@ class MessageCountStep(Step): ret, cmd = super(MessageCountStep, self).run(dry_run) self.auto_report_result = auto_report if ret != 0: - self.log.error('%s failed') + self.log.error('%s failed', self.name) self.result = 1 if self.auto_report_result: self.report_result() @@ -742,12 +742,12 @@ def default_check_steps(test): log_to_zip = check_steps[-1].merged_name # Reco_tf log merging - reco_tf_steps = [step for step in test.exec_steps if step.type=='Reco_tf'] + reco_tf_steps = [step for step in test.exec_steps if step.type in ['Reco_tf', 'Trig_reco_tf']] if len(reco_tf_steps) > 0: reco_tf_logmerge = LogMergeStep('LogMerge_Reco_tf') reco_tf_logmerge.warn_if_missing = False tf_names = ['HITtoRDO', 'RDOtoRDOTrigger', 'RAWtoESD', 'ESDtoAOD', - 'PhysicsValidation', 'RAWtoALL'] + 'PhysicsValidation', 'RAWtoALL', 'BSRDOtoRAW'] reco_tf_logmerge.log_files = ['log.'+tf_name for tf_name in tf_names] if not get_step_from_list('LogMerge', check_steps): for step in reco_tf_steps: -- GitLab From ba42e2ab75723f96f175c6295b3b406cab26a2a3 Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Fri, 31 Jul 2020 17:36:42 +0200 Subject: [PATCH 434/459] Change RDO to POOL, to match agreed options --- Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py b/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py index 0ca6148175b..a774de1d5ae 100644 --- a/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py +++ b/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py @@ -170,7 +170,7 @@ def L1DecoderCfg(flags, seqName = None): decoderAlg.ctpUnpacker = CompFactory.CTPUnpackingTool( ForceEnableAllChains = flags.Trigger.L1Decoder.forceEnableAllChains, MonTool = CTPUnpackingMonitoring(512, 200) ) #Transient bytestream - if flags.Input.Format == "RDO": + if flags.Input.Format == "POOL": transTypeKey = ("TransientBSOutType","StoreGateSvc+TransientBSOutKey") decoderAlg.ExtraInputs += [transTypeKey] -- GitLab From 2d2929a6193fc4331792bb4ebd81029aff598049 Mon Sep 17 00:00:00 2001 From: Stewart Martin-Haugh <smh@cern.ch> Date: Fri, 31 Jul 2020 18:46:37 +0200 Subject: [PATCH 435/459] Make failing to find L1Decoder or SummaryMaker an error, find L1Decoder correctly --- .../TriggerJobOpts/share/runHLT_standalone.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py index 4169acf46b7..3af59c67023 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py @@ -452,13 +452,11 @@ hltBeginSeq = parOR("HLTBeginSeq") hltTop += hltBeginSeq topSequence += hltTop -l1decoder = None if opt.doL1Unpacking: if globalflags.InputFormat.is_bytestream() or opt.doL1Sim: ConfigFlags.Trigger.L1Decoder.forceEnableAllChains = opt.forceEnableAllChains from L1Decoder.L1DecoderConfig import L1DecoderCfg CAtoGlobalWrapper(L1DecoderCfg, ConfigFlags, seqName="HLTBeginSeq") - l1Decoder = hltBeginSeq.L1Decoder else: from TrigUpgradeTest.TestUtils import L1EmulationTest hltBeginSeq += L1EmulationTest() @@ -582,8 +580,7 @@ if opt.doWriteBS or opt.doWriteRDOTrigger: filters = collectFilters(findSubSequence(topSequence, "HLTAllSteps")) summaryMakerAlg = findAlgorithm(topSequence, "DecisionSummaryMakerAlg") - if not summaryMakerAlg: - log.warning("Failed to find DecisionSummaryMakerAlg") + l1decoder = findAlgorithm(topSequence, "L1Decoder") if l1decoder and summaryMakerAlg: decObj = collectDecisionObjects( hypos, filters, l1decoder, summaryMakerAlg ) @@ -591,7 +588,7 @@ if opt.doWriteBS or opt.doWriteRDOTrigger: log.debug("Decision Objects to write to output [hack method - should be replaced with triggerRunCfg()]") log.debug(decObj) else: - log.warning("Failed to find L1Decoder or DecisionSummaryMakerAlg, cannot determine Decision names for output configuration") + log.error("Failed to find L1Decoder or DecisionSummaryMakerAlg, cannot determine Decision names for output configuration") decObj = [] decObjHypoOut = [] CAtoGlobalWrapper( triggerOutputCfg, ConfigFlags, decObj=decObj, decObjHypoOut=decObjHypoOut, summaryAlg=summaryMakerAlg) -- GitLab From 39caab35c713136b8f56d5ce9444b8b9b18b1130 Mon Sep 17 00:00:00 2001 From: Kate Whalen <kate.whalen@cern.ch> Date: Fri, 31 Jul 2020 19:01:31 +0200 Subject: [PATCH 436/459] Adding more PPM histograms --- .../python/PprMonitorAlgorithm.py | 54 ++++++++++----- .../src/PprMonitorAlgorithm.cxx | 65 +++++++++++++++++-- 2 files changed, 97 insertions(+), 22 deletions(-) diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/python/PprMonitorAlgorithm.py b/Trigger/TrigT1/TrigT1CaloMonitoring/python/PprMonitorAlgorithm.py index e45055c60fd..34d39834237 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/python/PprMonitorAlgorithm.py +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/python/PprMonitorAlgorithm.py @@ -57,52 +57,72 @@ def PprMonitoringConfig(inputFlags): ####################### # PPM inputs (LUT-CP) # ####################### - histPath = trigPath+'/LUT-CP' + histPath = trigPath+'/LUT-CP/Distributions' # EM distributions - myGroup.defineHistogram('etaTT_EM;h_ppm_em_1d_tt_lutcp_Eta', title='EM LUT-CP: Distribution of peak in #eta; #eta', type='TH1F', path=histPath+'/Distributions', xbins=etabins, cutmask='mask_EM_cpET_0_noPhi') + myGroup.defineHistogram('etaTT_EM;h_ppm_em_1d_tt_lutcp_Eta', title='EM LUT-CP: Distribution of peak in #eta; #eta', type='TH1F', path=histPath, xbins=etabins, cutmask='mask_EM_cpET_0_noPhi') - myGroup.defineHistogram('phiTT_1d_EM;h_ppm_em_1d_tt_lutcp_Phi', title='EM LUT-CP: Distribution of peak in #phi; #phi', type='TH1F', path=histPath+'/Distributions', xbins=phibins, xmin=phimin, xmax=phimax_1d, cutmask='mask_EM_cpET_0_phiBins') + myGroup.defineHistogram('phiTT_1d_EM;h_ppm_em_1d_tt_lutcp_Phi', title='EM LUT-CP: Distribution of peak in #phi; #phi', type='TH1F', path=histPath, xbins=phibins, xmin=phimin, xmax=phimax_1d, cutmask='mask_EM_cpET_0_phiBins') - myGroup.defineHistogram('cpET_EM;h_ppm_em_1d_tt_lutcp_Et', title='EM LUT-CP: Distribution of peak; EM LUT peak [GeV/2]', type='TH1F', path=histPath+'/Distributions', xbins=maxEnergyRange-1, xmin=1, xmax=maxEnergyRange, cutmask='mask_EM_cpET_0_noPhi') + myGroup.defineHistogram('cpET_EM;h_ppm_em_1d_tt_lutcp_Et', title='EM LUT-CP: Distribution of peak; EM LUT peak [GeV/2]', type='TH1F', path=histPath, xbins=maxEnergyRange-1, xmin=1, xmax=maxEnergyRange, cutmask='mask_EM_cpET_0_noPhi') + # HAD distributions + myGroup.defineHistogram('etaTT_HAD;h_ppm_had_1d_tt_lutcp_Eta', title='HAD LUT-CP: Distribution of peak in #eta; #eta', type='TH1F', path=histPath, xbins=etabins, cutmask='mask_HAD_cpET_0_noPhi') + + myGroup.defineHistogram('phiTT_1d_HAD;h_ppm_had_1d_tt_lutcp_Phi', title='HAD LUT-CP: Distribution of peak in #phi; #phi', type='TH1F', path=histPath, xbins=phibins, xmin=phimin, xmax=phimax_1d, cutmask='mask_HAD_cpET_0_phiBins') + + myGroup.defineHistogram('cpET_HAD;h_ppm_had_1d_tt_lutcp_Et', title='HAD LUT-CP: Distribution of peak; HAD LUT peak [GeV/2]', type='TH1F', path=histPath, xbins=maxEnergyRange-1, xmin=1, xmax=maxEnergyRange, cutmask='mask_HAD_cpET_0_noPhi') # Eta-phi maps - myGroup.defineHistogram('etaTT_EM,phiTT_2d_EM;h_ppm_em_2d_etaPhi_tt_lutcp_AverageEt', title='EM Average LUT-CP Et for Et > 5 GeV/2', type='TH2F', path=histPath+'/EtaPhiMaps', xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_EM_cpET_5_phiBins', weight='cpET_EM') + histPath = trigPath+'/LUT-CP/EtaPhiMaps' + + myGroup.defineHistogram('etaTT_EM,phiTT_2d_EM;h_ppm_em_2d_etaPhi_tt_lutcp_AverageEt', title='EM Average LUT-CP Et for Et > 5 GeV/2', type='TH2F', path=histPath, xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_EM_cpET_5_phiBins', weight='cpET_EM') + + myGroup.defineHistogram('etaTT_HAD,phiTT_2d_HAD;h_ppm_had_2d_etaPhi_tt_lutcp_AverageEt', title='HAD Average LUT-CP Et for Et > 5 GeV/2', type='TH2F', path=histPath, xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_HAD_cpET_5_phiBins', weight='cpET_HAD') + - ######################## # PPM inputs (LUT-JEP) # ######################## - histPath = trigPath+'/LUT-JEP' + histPath = trigPath+'/LUT-JEP/Distributions' # EM distributions - myGroup.defineHistogram('etaTT_EM;h_ppm_em_1d_tt_lutjep_Eta', title='EM LUT-JEP: Distribution of peak in #eta', type='TH1F', path=histPath+'/Distributions', xbins=etabins, cutmask='mask_EM_jepET_0_noPhi') + myGroup.defineHistogram('etaTT_EM;h_ppm_em_1d_tt_lutjep_Eta', title='EM LUT-JEP: Distribution of peak in #eta', type='TH1F', path=histPath, xbins=etabins, cutmask='mask_EM_jepET_0_noPhi') - myGroup.defineHistogram('phiTT_1d_EM;h_ppm_em_1d_tt_lutjep_Phi', title='EM LUT-JEP: Distribution of peak in #phi; #phi', type='TH1F', path=histPath+'/Distributions', xbins=phibins, xmin=phimin, xmax=phimax_1d, cutmask='mask_EM_jepET_0_phiBins') + myGroup.defineHistogram('phiTT_1d_EM;h_ppm_em_1d_tt_lutjep_Phi', title='EM LUT-JEP: Distribution of peak in #phi; #phi', type='TH1F', path=histPath, xbins=phibins, xmin=phimin, xmax=phimax_1d, cutmask='mask_EM_jepET_0_phiBins') - myGroup.defineHistogram('jepET_EM;h_ppm_em_1d_tt_lutjep_Et', title='EM LUT-JEP: Distribution of peak; EM LUT peak [GeV]', type='TH1F', path=histPath+'/Distributions', xbins=maxEnergyRange-1, xmin=1, xmax=maxEnergyRange, cutmask='mask_EM_jepET_0_noPhi') + myGroup.defineHistogram('jepET_EM;h_ppm_em_1d_tt_lutjep_Et', title='EM LUT-JEP: Distribution of peak; EM LUT peak [GeV]', type='TH1F', path=histPath, xbins=maxEnergyRange-1, xmin=1, xmax=maxEnergyRange, cutmask='mask_EM_jepET_0_noPhi') + + # HAD distributions + myGroup.defineHistogram('etaTT_HAD;h_ppm_had_1d_tt_lutjep_Eta', title='HAD LUT-JEP: Distribution of peak in #eta', type='TH1F', path=histPath, xbins=etabins, cutmask='mask_HAD_jepET_0_noPhi') + + myGroup.defineHistogram('phiTT_1d_HAD;h_ppm_had_1d_tt_lutjep_Phi', title='HAD LUT-JEP: Distribution of peak in #phi; #phi', type='TH1F', path=histPath, xbins=phibins, xmin=phimin, xmax=phimax_1d, cutmask='mask_HAD_jepET_0_phiBins') + + myGroup.defineHistogram('jepET_HAD;h_ppm_had_1d_tt_lutjep_Et', title='HAD LUT-JEP: Distribution of peak; HAD LUT peak [GeV]', type='TH1F', path=histPath, xbins=maxEnergyRange-1, xmin=1, xmax=maxEnergyRange, cutmask='mask_HAD_jepET_0_noPhi') # Eta-phi maps - myGroup.defineHistogram('etaTT_EM,phiTT_2d_EM;h_ppm_em_2d_etaPhi_tt_lutjep_AverageEt', title='EM Average LUT-JEP Et for Et > 5 GeV', type='TH2F', path=histPath+'/EtaPhiMaps', xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_EM_jepET_5_phiBins', weight='jepET_EM') + histPath = trigPath+'/LUT-JEP/EtaPhiMaps' + + myGroup.defineHistogram('etaTT_EM,phiTT_2d_EM;h_ppm_em_2d_etaPhi_tt_lutjep_AverageEt', title='EM Average LUT-JEP Et for Et > 5 GeV', type='TH2F', path=histPath, xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_EM_jepET_5_phiBins', weight='jepET_EM') + + myGroup.defineHistogram('etaTT_HAD,phiTT_2d_HAD;h_ppm_had_2d_etaPhi_tt_lutjep_AverageEt', title='HAD Average LUT-JEP Et for Et > 5 GeV', type='TH2F', path=histPath, xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_HAD_jepET_5_phiBins', weight='jepET_HAD') - #################### # PPM inputs (ADC) # #################### - histPath = trigPath+'/ADC' + histPath = trigPath+'/ADC/EtaPhiMaps' # EM tower maps - myGroup.defineHistogram('etaTT_EM,phiTT_2d_EM;h_ppm_em_2d_etaPhi_tt_adc_HitMap', title='#eta - #phi map of EM FADC > ' +str(threshADC)+ ' for triggered timeslice; Tower #eta; Tower #phi', type='TH2F', path=histPath+'/EtaPhiMaps', xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_EM_timeslice') + myGroup.defineHistogram('etaTT_EM,phiTT_2d_EM;h_ppm_em_2d_etaPhi_tt_adc_HitMap', title='#eta - #phi map of EM FADC > ' +str(threshADC)+ ' for triggered timeslice; Tower #eta; Tower #phi', type='TH2F', path=histPath, xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_EM_timeslice') - myGroup.defineHistogram('etaTT_EM,phiTT_2d_EM;h_ppm_em_2d_etaPhi_tt_adc_ProfileHitMap', title='#eta - #phi profile map of EM FADC > ' +str(threshADC)+ ' for triggered timeslice; Tower #eta; Tower #phi', type='TH2F', path=histPath+'/EtaPhiMaps', xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_EM_timeslice', weight='emTT_ADC') + myGroup.defineHistogram('etaTT_EM,phiTT_2d_EM;h_ppm_em_2d_etaPhi_tt_adc_ProfileHitMap', title='#eta - #phi profile map of EM FADC > ' +str(threshADC)+ ' for triggered timeslice; Tower #eta; Tower #phi', type='TH2F', path=histPath, xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_EM_timeslice', weight='emTT_ADC') # HAD tower maps - myGroup.defineHistogram('etaTT_HAD,phiTT_2d_HAD;h_ppm_had_2d_etaPhi_tt_adc_HitMap', title='#eta - #phi map of HAD FADC > ' +str(threshADC)+ ' for triggered timeslice; Tower #eta; Tower #phi', type='TH2F', path=histPath+'/EtaPhiMaps', xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_HAD_timeslice') + myGroup.defineHistogram('etaTT_HAD,phiTT_2d_HAD;h_ppm_had_2d_etaPhi_tt_adc_HitMap', title='#eta - #phi map of HAD FADC > ' +str(threshADC)+ ' for triggered timeslice; Tower #eta; Tower #phi', type='TH2F', path=histPath, xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_HAD_timeslice') - myGroup.defineHistogram('etaTT_HAD,phiTT_2d_HAD;h_ppm_had_2d_etaPhi_tt_adc_ProfileHitMap', title='#eta - #phi profile map of HAD FADC > ' +str(threshADC)+ ' for triggered timeslice; Tower #eta; Tower #phi', type='TH2F', path=histPath+'/EtaPhiMaps', xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_HAD_timeslice', weight='hadTT_ADC') + myGroup.defineHistogram('etaTT_HAD,phiTT_2d_HAD;h_ppm_had_2d_etaPhi_tt_adc_ProfileHitMap', title='#eta - #phi profile map of HAD FADC > ' +str(threshADC)+ ' for triggered timeslice; Tower #eta; Tower #phi', type='TH2F', path=histPath, xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d, cutmask='mask_HAD_timeslice', weight='hadTT_ADC') diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/PprMonitorAlgorithm.cxx b/Trigger/TrigT1/TrigT1CaloMonitoring/src/PprMonitorAlgorithm.cxx index 9ec864201c7..831506ae818 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/PprMonitorAlgorithm.cxx +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/PprMonitorAlgorithm.cxx @@ -98,7 +98,13 @@ StatusCode PprMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const auto phiTT_1d_HAD = Monitored::Collection("phiTT_1d_HAD", vecMonTT_HAD, []( const auto &hadTower ){return hadTower.phi1d;}); variables.push_back(phiTT_1d_HAD); - // Cutmasks + auto cpET_HAD = Monitored::Collection("cpET_HAD", vecMonTT_HAD, []( const auto &hadTower ){return hadTower.tower->cpET();}); + variables.push_back(cpET_HAD); + + auto jepET_HAD = Monitored::Collection("jepET_HAD", vecMonTT_HAD, []( const auto &hadTower ){return hadTower.jepET;}); + variables.push_back(jepET_HAD); + + // Cutmasks (EM) std::vector<int> vec_EM_timeslice = {}; std::vector<int> vec_EM_cpET_0 = {}; // includes "duplicate" towers for phi maps std::vector<int> vec_EM_cpET_0_noDuplicates = {}; // no duplicates: for plots not binned in phi @@ -115,8 +121,6 @@ StatusCode PprMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const for (auto& emTower : vecMonTT_EM) { - - // -------- LUT -------- int cpET = (emTower.tower)->cpET(); int jepET = emTower.jepET; @@ -155,15 +159,41 @@ StatusCode PprMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const } // End loop over vector of EM towers - // HAD cutmasks + // Cutmasks (HAD) std::vector<int> vec_HAD_timeslice = {}; + std::vector<int> vec_HAD_cpET_0 = {}; // includes "duplicate" towers for phi maps + std::vector<int> vec_HAD_cpET_0_noDuplicates = {}; // no duplicates: for plots not binned in phi + std::vector<int> vec_HAD_cpET_5 = {}; + std::vector<int> vec_HAD_cpET_5_noDuplicates = {}; + std::vector<int> vec_HAD_jepET_0 = {}; + std::vector<int> vec_HAD_jepET_0_noDuplicates = {}; + std::vector<int> vec_HAD_jepET_5 = {}; + std::vector<int> vec_HAD_jepET_5_noDuplicates = {}; + // HAD weights std::vector<int> vec_HAD_ADC = {}; for (auto& hadTower : vecMonTT_HAD) { - // Timeslice + // -------- LUT -------- + int cpET = (hadTower.tower)->cpET(); + int jepET = hadTower.jepET; + bool isDuplicate = hadTower.isDuplicate; + + if (cpET > 0) ATH_MSG_DEBUG("HAD tower cpET: " << cpET << " jepET: " << jepET); + + // Fill the cutmasks for HAD LUT-CP and LUT-JEP energy distributions + vec_HAD_cpET_0.push_back(cpET > 0); // For phi distributions / maps + vec_HAD_cpET_0_noDuplicates.push_back((cpET > 0) && !isDuplicate); // For plots not binned in phi + vec_HAD_cpET_5.push_back(cpET > 5); + vec_HAD_cpET_5_noDuplicates.push_back((cpET > 5) && !isDuplicate); + vec_HAD_jepET_0.push_back(jepET > 0); + vec_HAD_jepET_0_noDuplicates.push_back((jepET > 0) && !isDuplicate); + vec_HAD_jepET_5.push_back(jepET > 5); + vec_HAD_jepET_5_noDuplicates.push_back((jepET > 5) && !isDuplicate); + + // -------- ADC hitmaps per timeslice -------- unsigned int tslice = (hadTower.tower)->adcPeak(); unsigned int adcSize = ((hadTower.tower)->adc()).size(); @@ -223,6 +253,31 @@ StatusCode PprMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const auto hadTT_ADC = Monitored::Collection("hadTT_ADC", vec_HAD_ADC); variables.push_back(hadTT_ADC); + auto mask_HAD_cpET_0_phiBins = Monitored::Collection("mask_HAD_cpET_0_phiBins", vec_HAD_cpET_0); + variables.push_back(mask_HAD_cpET_0_phiBins); + + auto mask_HAD_cpET_0_noPhi = Monitored::Collection("mask_HAD_cpET_0_noPhi", vec_HAD_cpET_0_noDuplicates); + variables.push_back(mask_HAD_cpET_0_noPhi); + + auto mask_HAD_cpET_5_phiBins = Monitored::Collection("mask_HAD_cpET_5_phiBins", vec_HAD_cpET_5); + variables.push_back(mask_HAD_cpET_5_phiBins); + + auto mask_HAD_cpET_5_noPhi = Monitored::Collection("mask_HAD_cpET_5_noPhi", vec_HAD_cpET_5_noDuplicates); + variables.push_back(mask_HAD_cpET_5_noPhi); + + auto mask_HAD_jepET_0_phiBins = Monitored::Collection("mask_HAD_jepET_0_phiBins", vec_HAD_jepET_0); + variables.push_back(mask_HAD_jepET_0_phiBins); + + auto mask_HAD_jepET_0_noPhi = Monitored::Collection("mask_HAD_jepET_0_noPhi", vec_HAD_jepET_0_noDuplicates); + variables.push_back(mask_HAD_jepET_0_noPhi); + + auto mask_HAD_jepET_5_phiBins = Monitored::Collection("mask_HAD_jepET_5_phiBins", vec_HAD_jepET_5); + variables.push_back(mask_HAD_jepET_5_phiBins); + + auto mask_HAD_jepET_5_noPhi = Monitored::Collection("mask_HAD_jepET_5_noPhi", vec_HAD_jepET_5_noDuplicates); + variables.push_back(mask_HAD_jepET_5_noPhi); + + fill(m_packageName, variables); variables.clear(); return StatusCode::SUCCESS; -- GitLab From 1fc1a85b6bedd92ad2a093a1c7417d6352d98e66 Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Fri, 31 Jul 2020 16:33:24 +0200 Subject: [PATCH 437/459] AthExStoreGateExample: Remove references to StoreGate::pointer(). Remove references to obsolete function StoreGate::pointer(). --- .../AthExStoreGateExample/src/ReadPileUpData.cxx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Control/AthenaExamples/AthExStoreGateExample/src/ReadPileUpData.cxx b/Control/AthenaExamples/AthExStoreGateExample/src/ReadPileUpData.cxx index acd60bea60f..1b9e3e0f880 100755 --- a/Control/AthenaExamples/AthExStoreGateExample/src/ReadPileUpData.cxx +++ b/Control/AthenaExamples/AthExStoreGateExample/src/ReadPileUpData.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #undef NDEBUG @@ -40,8 +40,6 @@ StatusCode ReadPileUpData::initialize(){ ATH_MSG_ERROR ("Could not find StoreGateSvc"); return StatusCode::FAILURE; } - //another way of doing the above (not mt-safe) - // p_SGevent = StoreGate::pointer(); //locate the PileUpMergeSvc and initialize our local ptr if (!(service("PileUpMergeSvc", p_mergeSvc)).isSuccess() || 0 == p_mergeSvc) { -- GitLab From 51f79248f7dd35763a3ddfa6a2cb9d88a180fdbd Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Fri, 31 Jul 2020 16:44:33 +0200 Subject: [PATCH 438/459] InDetSimEvent: Remove references to StoreGate::pointer(). Remove references to obsolete function StoreGate::pointer(). (nb. Retrieving a service and SG retrieves should be thread-safe.) --- InnerDetector/InDetSimEvent/src/SiHitIdHelper.cxx | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/InnerDetector/InDetSimEvent/src/SiHitIdHelper.cxx b/InnerDetector/InDetSimEvent/src/SiHitIdHelper.cxx index 5add7978d97..f36e3fe6344 100755 --- a/InnerDetector/InDetSimEvent/src/SiHitIdHelper.cxx +++ b/InnerDetector/InDetSimEvent/src/SiHitIdHelper.cxx @@ -6,8 +6,8 @@ #include "InDetSimEvent/SiHitIdHelper.h" #include "StoreGate/StoreGateSvc.h" -#include "StoreGate/StoreGate.h" #include "InDetIdentifier/PixelID.h" +#include "GaudiKernel/ServiceHandle.h" #include "G4Types.hh" #ifdef G4MULTITHREADED @@ -38,12 +38,9 @@ void SiHitIdHelper::Initialize() { // determine whether hits were created with an SLHC dictionary // in which case eta module field is expanded. - // Need to lock this thread-unsafe retrieval - const PixelID* pix; - StoreGateSvc* detStore(nullptr); - { - std::lock_guard<std::mutex> lock(sgMutex); - detStore = StoreGate::pointer("DetectorStore"); + const PixelID* pix = nullptr; + ServiceHandle<StoreGateSvc> detStore ("DetectorStore", "SiHitIdHelper"); + if (detStore.retrieve().isSuccess()) { if (detStore->retrieve(pix, "PixelID").isFailure()) { pix = 0; } } bool isSLHC = (pix != 0 && pix->dictionaryVersion() == "SLHC"); -- GitLab From 1baafea225750a2d02aebd47044f2e771f6f561c Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Fri, 31 Jul 2020 17:02:20 +0200 Subject: [PATCH 439/459] MuonMDT_CnvTools: Remove references to StoreGate::pointer(). Remove references to obsolete function StoreGate::pointer(). --- .../src/MdtCsmContByteStreamTool.cxx | 25 +++++++++---------- .../MuonMDT_CnvTools/src/MdtROD_Encoder.cxx | 14 ++++------- .../MuonMDT_CnvTools/src/MdtROD_Encoder.h | 7 +++--- 3 files changed, 20 insertions(+), 26 deletions(-) diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtCsmContByteStreamTool.cxx b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtCsmContByteStreamTool.cxx index b60e60d2194..32010ab07ac 100755 --- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtCsmContByteStreamTool.cxx +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtCsmContByteStreamTool.cxx @@ -8,6 +8,7 @@ #include "MuonRDO/MdtCsm.h" #include "MuonRDO/MdtCsmContainer.h" #include "ByteStreamData/RawEvent.h" +#include "MuonReadoutGeometry/MuonDetectorManager.h" // default constructor Muon::MdtCsmContByteStreamTool::MdtCsmContByteStreamTool @@ -49,29 +50,27 @@ StatusCode Muon::MdtCsmContByteStreamTool::convert(CONTAINER* cont, RawEventWrit FullEventAssembler<MDT_Hid2RESrcID>::RODDATA* theROD ; - MdtCsmContainer::const_iterator it_coll = cont->begin(); - MdtCsmContainer::const_iterator it_coll_end = cont->end(); - std::map<uint32_t, MdtROD_Encoder> mapEncoder; + + const MuonGM::MuonDetectorManager* mdm = nullptr; + ATH_CHECK( detStore()->retrieve (mdm,"Muon") ); + const MdtIdHelper& mdtIdHelper = *mdm->mdtIdHelper(); ATH_MSG_DEBUG(" number of collections "<< cont->size()); - for( ; it_coll!=it_coll_end;++it_coll) { - Identifier coll_id = (*it_coll)->identify(); + for (const MdtCsm* csm : *cont) { + Identifier coll_id = csm->identify(); uint32_t rodId = m_hid2re->getRodID(coll_id); - mapEncoder[rodId].add(*it_coll); + mapEncoder.try_emplace (rodId, mdtIdHelper).first->second.add(csm); } - std::map<uint32_t,MdtROD_Encoder>::iterator it = mapEncoder.begin(); - std::map<uint32_t,MdtROD_Encoder>::iterator it_end = mapEncoder.end(); - // MdtCsm_Encoder has collected all the csm, now can fill the // ROD block data. ATH_MSG_DEBUG(" start to fill Rod "); - - for (; it!=it_end;++it) { - theROD = m_fea.getRodData( (*it).first ); - ((*it).second).fillROD( *theROD ) ; + + for (auto& p : mapEncoder) { + theROD = m_fea.getRodData( p.first ); + p.second.fillROD( *theROD ) ; } ATH_MSG_DEBUG(" filling the Raw Event ... "); diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtROD_Encoder.cxx b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtROD_Encoder.cxx index 90ce38fed44..805bfa915b1 100755 --- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtROD_Encoder.cxx +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtROD_Encoder.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // Implementation of MdtROD_Encoder class @@ -11,8 +11,6 @@ #include "MdtROD_Encoder.h" #include "StoreGate/StoreGateSvc.h" -#include "StoreGate/StoreGate.h" -#include "MuonReadoutGeometry/MuonDetectorManager.h" #include "MuonIdHelpers/MdtIdHelper.h" #include "MDT_Hid2RESrcID.h" @@ -24,12 +22,10 @@ /** constructor */ -MdtROD_Encoder::MdtROD_Encoder() : m_mdm(0), m_BMGid(-1) +MdtROD_Encoder::MdtROD_Encoder (const MdtIdHelper& mdtIdHelper) + : m_mdtIdHelper (mdtIdHelper), + m_BMGid (mdtIdHelper.stationNameIndex("BMG")) { - StoreGateSvc *detStore = StoreGate::pointer("DetectorStore"); - if(detStore->retrieve(m_mdm,"Muon").isSuccess()) - m_mdtIdHelper = m_mdm->mdtIdHelper(); - m_BMGid = m_mdtIdHelper->stationNameIndex("BMG"); } /** destructor @@ -111,7 +107,7 @@ void MdtROD_Encoder::fillROD(std::vector<uint32_t>& v) for ( ; it != it_end ; ++it) { const MdtCsm * csm = (*it); - bool isBMG = m_mdtIdHelper->stationName(csm->identify()) == m_BMGid; + bool isBMG = m_mdtIdHelper.stationName(csm->identify()) == m_BMGid; uint16_t ctwc = 0; // Trailer word count initialized diff --git a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtROD_Encoder.h b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtROD_Encoder.h index 8272085448b..48d12b64858 100755 --- a/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtROD_Encoder.h +++ b/MuonSpectrometer/MuonCnv/MuonMDT_CnvTools/src/MdtROD_Encoder.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONBYTESTREAM_MDTROD_ENCODER_H @@ -41,7 +41,7 @@ public: /** constructor */ - MdtROD_Encoder(); + MdtROD_Encoder (const MdtIdHelper& mdtIdHelper); /** destructor @@ -70,8 +70,7 @@ private: // RPC_Hid2RESrcID* m_hid2re; std::vector<const MdtCsm*> m_vMdtCsm; - const MdtIdHelper* m_mdtIdHelper; - const MuonGM::MuonDetectorManager* m_mdm; + const MdtIdHelper& m_mdtIdHelper; int m_BMGid; } ; -- GitLab From ef79e7f7628dab36572c54dfe376f66dfe5b02cd Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Fri, 31 Jul 2020 17:06:56 +0200 Subject: [PATCH 440/459] TBCaloGeometry: Remove references to StoreGate::pointer(). Remove references to obsolete function StoreGate::pointer(). --- .../TBCaloGeometry/src/TBCaloCoordinate.cxx | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/TestBeam/TBCaloGeometry/src/TBCaloCoordinate.cxx b/TestBeam/TBCaloGeometry/src/TBCaloCoordinate.cxx index 986fb9f8651..64f47ec3785 100755 --- a/TestBeam/TBCaloGeometry/src/TBCaloCoordinate.cxx +++ b/TestBeam/TBCaloGeometry/src/TBCaloCoordinate.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // *************************************************************************** @@ -16,12 +16,8 @@ #include "GaudiKernel/IToolSvc.h" #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/IMessageSvc.h" -#include "StoreGate/StoreGate.h" #include <vector> -#include "EventInfo/EventInfo.h" -#include "EventInfo/EventID.h" - #include "TBCaloConditions/ITBCaloPosTool.h" #include "CaloGeoHelpers/CaloPhiRange.h" @@ -31,6 +27,7 @@ //#include "CLHEP/Geometry/Transform3D.h" #include "GeoPrimitives/GeoPrimitives.h" +#include "GaudiKernel/ThreadLocalContext.h" #include <iostream> #include <iomanip> @@ -220,14 +217,9 @@ void TBCaloCoordinate::read_table_position() { if ( m_firstevt == 0 ) { - const EventInfo* eventInfo; - StatusCode sc = StoreGate::pointer()->retrieve(eventInfo); - if ( !sc.isFailure()) { - const EventID* myEventID=eventInfo->event_ID(); - m_runNumber=myEventID->run_number(); - - m_firstevt = 1; - } + const EventContext& ctx = Gaudi::Hive::currentContext(); + m_runNumber = ctx.eventID().run_number(); + m_firstevt = 1; } if ( m_DBRead >= 0 ) { -- GitLab From 936badecbe01341a02491b8e36d9c118405017e9 Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Sat, 1 Aug 2020 08:23:41 +0200 Subject: [PATCH 441/459] Cleanup of the cmake configuration of LAr GeoModel packages --- .../LArGeoModel/LArGeoAlgsNV/CMakeLists.txt | 9 ++---- .../LArGeoModel/LArGeoBarrel/CMakeLists.txt | 9 ++---- .../LArGeoModel/LArGeoCode/CMakeLists.txt | 4 +-- .../LArGeoModel/LArGeoEndcap/CMakeLists.txt | 9 ++---- .../LArGeoModel/LArGeoFcal/CMakeLists.txt | 8 ++---- .../LArGeoH62002Algs/CMakeLists.txt | 25 ++--------------- .../LArGeoH62003Algs/CMakeLists.txt | 24 ++-------------- .../LArGeoH62004Algs/CMakeLists.txt | 28 ++----------------- .../LArGeoH6Cryostats/CMakeLists.txt | 19 +++---------- .../LArGeoModel/LArGeoHec/CMakeLists.txt | 9 ++---- .../LArGeoModel/LArGeoRAL/CMakeLists.txt | 20 +++---------- .../LArGeoModel/LArGeoTBBarrel/CMakeLists.txt | 17 ++--------- .../LArGeoModel/LArGeoTBEC/CMakeLists.txt | 27 ++---------------- .../LArReadoutGeometry/CMakeLists.txt | 10 ++----- 14 files changed, 41 insertions(+), 177 deletions(-) diff --git a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/CMakeLists.txt index b377202b33f..2fb0bc94a89 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/CMakeLists.txt @@ -1,20 +1,17 @@ -################################################################################ -# Package: LArGeoAlgsNV -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoAlgsNV ) # External dependencies: -find_package( Eigen ) find_package( GeoModelCore ) # Component(s) in the package: atlas_add_component( LArGeoAlgsNV src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODELCORE_INCLUDE_DIRS} - LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} ${EIGEN_LIBRARIES} GeoModelUtilities LArReadoutGeometry SGTools StoreGateLib SGtests DetDescrConditions GaudiKernel LArGeoBarrel LArGeoCode LArGeoEndcap LArGeoRAL LArGeoTBBarrel LArHV RDBAccessSvcLib ) + INCLUDE_DIRS ${GEOMODELCORE_INCLUDE_DIRS} + LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} GeoModelUtilities LArReadoutGeometry SGTools StoreGateLib SGtests DetDescrConditions GaudiKernel LArGeoBarrel LArGeoCode LArGeoEndcap LArGeoRAL LArGeoTBBarrel LArHV RDBAccessSvcLib ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoBarrel/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoBarrel/CMakeLists.txt index 605a2256750..428c469718b 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoBarrel/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoBarrel/CMakeLists.txt @@ -1,19 +1,16 @@ -################################################################################ -# Package: LArGeoBarrel -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoBarrel ) # External dependencies: -find_package( Eigen ) find_package( GeoModelCore ) # Component(s) in the package: atlas_add_library( LArGeoBarrel src/*.cxx PUBLIC_HEADERS LArGeoBarrel - INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODELCORE_INCLUDE_DIRS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODELCORE_LIBRARIES} LArGeoCode StoreGateLib SGtests + INCLUDE_DIRS ${GEOMODELCORE_INCLUDE_DIRS} + LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} LArGeoCode StoreGateLib SGtests PRIVATE_LINK_LIBRARIES GeoModelUtilities GaudiKernel LArReadoutGeometry RDBAccessSvcLib ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoCode/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoCode/CMakeLists.txt index 9c90099e749..2d15b97aa58 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoCode/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoCode/CMakeLists.txt @@ -1,6 +1,4 @@ -################################################################################ -# Package: LArGeoCode -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoCode ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoEndcap/CMakeLists.txt index bd34b62ceef..990847ecdbb 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/CMakeLists.txt @@ -1,19 +1,16 @@ -################################################################################ -# Package: LArGeoEndcap -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoEndcap ) # External dependencies: -find_package( Eigen ) find_package( GeoModelCore ) # Component(s) in the package: atlas_add_library( LArGeoEndcap src/*.cxx PUBLIC_HEADERS LArGeoEndcap - INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODELCORE_INCLUDE_DIRS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODELCORE_LIBRARIES} LArGeoFcal LArGeoHec StoreGateLib SGtests CaloDetDescrLib + INCLUDE_DIRS ${GEOMODELCORE_INCLUDE_DIRS} + LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} LArGeoFcal LArGeoHec StoreGateLib SGtests CaloDetDescrLib PRIVATE_LINK_LIBRARIES CaloIdentifier GeoModelUtilities GeoSpecialShapes GaudiKernel LArGeoCode LArGeoMiniFcal RDBAccessSvcLib ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoFcal/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoFcal/CMakeLists.txt index c201654de36..65c28690895 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoFcal/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoFcal/CMakeLists.txt @@ -1,12 +1,9 @@ -################################################################################ -# Package: LArGeoFcal -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoFcal ) # External dependencies: -find_package( Eigen ) find_package( GeoModelCore ) # tag NEEDS_CORAL_BASE was not recognized in automatic conversion in cmt2cmake @@ -16,7 +13,6 @@ atlas_add_library( LArGeoFcal src/*.cxx PUBLIC_HEADERS LArGeoFcal INCLUDE_DIRS ${GEOMODELCORE_INCLUDE_DIRS} - PRIVATE_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${EIGEN_LIBRARIES} GeoModelUtilities GaudiKernel LArReadoutGeometry RDBAccessSvcLib ) + PRIVATE_LINK_LIBRARIES GeoModelUtilities GaudiKernel LArReadoutGeometry RDBAccessSvcLib ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/CMakeLists.txt index b03d70eb2a8..9d95a52b2f3 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/CMakeLists.txt @@ -1,33 +1,14 @@ -################################################################################ -# Package: LArGeoH62002Algs -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoH62002Algs ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelUtilities - LArCalorimeter/LArGeoModel/LArReadoutGeometry - PRIVATE - Control/StoreGate - Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelInterfaces - GaudiKernel - LArCalorimeter/LArG4/LArG4RunControl - LArCalorimeter/LArGeoModel/LArGeoCode - LArCalorimeter/LArGeoModel/LArGeoEndcap - LArCalorimeter/LArGeoModel/LArGeoH6Cryostats ) - # External dependencies: -find_package( Boost COMPONENTS filesystem thread system ) -find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) -find_package( Eigen ) find_package( GeoModelCore ) # Component(s) in the package: atlas_add_component( LArGeoH62002Algs src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODELCORE_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODELCORE_LIBRARIES} GeoModelUtilities LArReadoutGeometry StoreGateLib SGtests GaudiKernel LArG4RunControl LArGeoCode LArGeoEndcap LArGeoH6Cryostats RDBAccessSvcLib ) + PRIVATE_INCLUDE_DIRS ${GEOMODELCORE_INCLUDE_DIRS} + PRIVATE_LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} GeoModelUtilities LArReadoutGeometry StoreGateLib SGtests GaudiKernel LArG4RunControl LArGeoCode LArGeoEndcap LArGeoH6Cryostats RDBAccessSvcLib ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/CMakeLists.txt index 2b6c64ca13c..d8185218197 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/CMakeLists.txt @@ -1,32 +1,14 @@ -################################################################################ -# Package: LArGeoH62003Algs -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoH62003Algs ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelUtilities - LArCalorimeter/LArGeoModel/LArReadoutGeometry - PRIVATE - Control/StoreGate - Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelInterfaces - GaudiKernel - LArCalorimeter/LArG4/LArG4RunControl - LArCalorimeter/LArGeoModel/LArGeoFcal - LArCalorimeter/LArGeoModel/LArGeoH6Cryostats ) - # External dependencies: -find_package( Boost COMPONENTS filesystem thread system ) -find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) -find_package( Eigen ) find_package( GeoModelCore ) # Component(s) in the package: atlas_add_component( LArGeoH62003Algs src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODELCORE_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODELCORE_LIBRARIES} GeoModelUtilities LArReadoutGeometry StoreGateLib SGtests GaudiKernel LArG4RunControl LArGeoFcal LArGeoH6Cryostats RDBAccessSvcLib ) + PRIVATE_INCLUDE_DIRS ${GEOMODELCORE_INCLUDE_DIRS} + PRIVATE_LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} GeoModelUtilities LArReadoutGeometry StoreGateLib SGtests GaudiKernel LArG4RunControl LArGeoFcal LArGeoH6Cryostats RDBAccessSvcLib ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/CMakeLists.txt index 2455af7cbcf..bef244ad12b 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/CMakeLists.txt @@ -1,39 +1,17 @@ -################################################################################ -# Package: LArGeoH62004Algs -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoH62004Algs ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - Control/StoreGate - DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelUtilities - LArCalorimeter/LArGeoModel/LArReadoutGeometry - PRIVATE - Calorimeter/CaloDetDescr - Control/AthContainers - Database/RDBAccessSvc - GaudiKernel - LArCalorimeter/LArG4/LArG4RunControl - LArCalorimeter/LArGeoModel/LArGeoCode - LArCalorimeter/LArGeoModel/LArGeoEndcap - LArCalorimeter/LArGeoModel/LArGeoH6Cryostats - LArCalorimeter/LArGeoModel/LArGeoTBEC ) - # External dependencies: -find_package( Boost COMPONENTS filesystem thread system ) -find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) -find_package( Eigen ) find_package( GeoModelCore ) # Component(s) in the package: atlas_add_component( LArGeoH62004Algs src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODELCORE_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODELCORE_LIBRARIES} StoreGateLib SGtests GeoModelUtilities LArReadoutGeometry CaloDetDescrLib AthContainers GaudiKernel LArG4RunControl LArGeoCode LArGeoEndcap LArGeoH6Cryostats LArGeoTBECLib RDBAccessSvcLib ) + PRIVATE_INCLUDE_DIRS ${GEOMODELCORE_INCLUDE_DIRS} + PRIVATE_LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} StoreGateLib SGtests GeoModelUtilities LArReadoutGeometry CaloDetDescrLib AthContainers GaudiKernel LArG4RunControl LArGeoCode LArGeoEndcap LArGeoH6Cryostats LArGeoTBECLib RDBAccessSvcLib ) # Install files from the package: atlas_install_joboptions( share/*.py ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/CMakeLists.txt index 7c2b9517bb8..2003ba0a87a 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/CMakeLists.txt @@ -1,20 +1,9 @@ -################################################################################ -# Package: LArGeoH6Cryostats -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoH6Cryostats ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - Control/StoreGate - Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelInterfaces - GaudiKernel ) - # External dependencies: -find_package( Boost COMPONENTS filesystem thread system ) -find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) find_package( Eigen ) find_package( GeoModelCore ) @@ -22,7 +11,7 @@ find_package( GeoModelCore ) atlas_add_library( LArGeoH6Cryostats src/*.cxx PUBLIC_HEADERS LArGeoH6Cryostats - PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODELCORE_INCLUDE_DIRS} - LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} GaudiKernel GeoModelInterfaces RDBAccessSvcLib ) + PRIVATE_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODELCORE_INCLUDE_DIRS} + LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODELCORE_LIBRARIES} StoreGateLib SGtests + PRIVATE_LINK_LIBRARIES GaudiKernel GeoModelInterfaces RDBAccessSvcLib ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoHec/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoHec/CMakeLists.txt index 998da7a407b..a00736eb756 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoHec/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoHec/CMakeLists.txt @@ -1,19 +1,16 @@ -################################################################################ -# Package: LArGeoHec -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoHec ) # External dependencies: -find_package( Eigen ) find_package( GeoModelCore ) # Component(s) in the package: atlas_add_library( LArGeoHec src/*.cxx PUBLIC_HEADERS LArGeoHec - PRIVATE_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODELCORE_INCLUDE_DIRS} + PRIVATE_INCLUDE_DIRS ${GEOMODELCORE_INCLUDE_DIRS} LINK_LIBRARIES StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODELCORE_LIBRARIES} AthenaKernel GeoModelUtilities GaudiKernel RDBAccessSvcLib ) + PRIVATE_LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} AthenaKernel GeoModelUtilities GaudiKernel RDBAccessSvcLib ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoRAL/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoRAL/CMakeLists.txt index d0be64f6691..c31ec831a81 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoRAL/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoRAL/CMakeLists.txt @@ -1,30 +1,18 @@ -################################################################################ -# Package: LArGeoRAL -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoRAL ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - LArCalorimeter/LArGeoModel/LArGeoCode - PRIVATE - Control/StoreGate - Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelInterfaces - GaudiKernel ) - # External dependencies: -find_package( Boost COMPONENTS filesystem thread system ) +find_package( Boost COMPONENTS system ) find_package( CLHEP ) -find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) # Component(s) in the package: atlas_add_library( LArGeoRAL src/*.cxx PUBLIC_HEADERS LArGeoRAL - PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} + PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} LINK_LIBRARIES LArGeoCode StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel RDBAccessSvcLib GeoModelInterfaces ) + PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel RDBAccessSvcLib GeoModelInterfaces ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/CMakeLists.txt index ba856353119..28833dfb5ff 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/CMakeLists.txt @@ -1,27 +1,16 @@ -################################################################################ -# Package: LArGeoTBBarrel -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoTBBarrel ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - Control/StoreGate - DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelUtilities - GaudiKernel - LArCalorimeter/LArGeoModel/LArGeoBarrel ) - # External dependencies: -find_package( Eigen ) find_package( GeoModelCore ) # Component(s) in the package: atlas_add_library( LArGeoTBBarrel src/*.cxx PUBLIC_HEADERS LArGeoTBBarrel - PRIVATE_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODELCORE_INCLUDE_DIRS} + PRIVATE_INCLUDE_DIRS ${GEOMODELCORE_INCLUDE_DIRS} LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${EIGEN_LIBRARIES} GeoModelUtilities GaudiKernel LArGeoBarrel ) + PRIVATE_LINK_LIBRARIES GeoModelUtilities GaudiKernel LArGeoBarrel ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoTBEC/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoTBEC/CMakeLists.txt index a9b59c86669..f581a4b4f94 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoTBEC/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoTBEC/CMakeLists.txt @@ -1,41 +1,20 @@ -################################################################################ -# Package: LArGeoTBEC -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArGeoTBEC ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelUtilities - LArCalorimeter/LArGeoModel/LArReadoutGeometry - PRIVATE - Control/StoreGate - Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoSpecialShapes - GaudiKernel - LArCalorimeter/LArG4/LArG4RunControl - LArCalorimeter/LArGeoModel/LArGeoCode - LArCalorimeter/LArGeoModel/LArGeoEndcap - LArCalorimeter/LArGeoModel/LArGeoRAL ) - # External dependencies: -find_package( Boost COMPONENTS filesystem thread system ) -find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) -find_package( Eigen ) find_package( GeoModelCore ) # Component(s) in the package: atlas_add_library( LArGeoTBECLib src/*.cxx PUBLIC_HEADERS LArGeoTBEC - PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODELCORE_INCLUDE_DIRS} + PRIVATE_INCLUDE_DIRS ${GEOMODELCORE_INCLUDE_DIRS} LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} GeoModelUtilities LArReadoutGeometry StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} GeoSpecialShapes GaudiKernel LArG4RunControl LArGeoCode LArGeoEndcap LArGeoRAL RDBAccessSvcLib ) + PRIVATE_LINK_LIBRARIES GeoSpecialShapes GaudiKernel LArG4RunControl LArGeoCode LArGeoEndcap LArGeoRAL RDBAccessSvcLib ) atlas_add_component( LArGeoTBEC src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} LINK_LIBRARIES LArGeoTBECLib ) diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/CMakeLists.txt index 65e1a56fc48..cf7e9856a6f 100644 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/CMakeLists.txt @@ -1,23 +1,19 @@ -################################################################################ -# Package: LArReadoutGeometry -################################################################################ +#Copyright (C) 2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( LArReadoutGeometry ) # External dependencies: -find_package( Boost COMPONENTS filesystem thread system ) +find_package( Boost COMPONENTS system ) find_package( CLHEP ) -find_package( Eigen ) find_package( GeoModelCore ) # Component(s) in the package: atlas_add_library( LArReadoutGeometry src/*.cxx PUBLIC_HEADERS LArReadoutGeometry - INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODELCORE_LIBRARIES} AthenaKernel GeoPrimitives Identifier LArHV StoreGateLib SGtests + LINK_LIBRARIES ${GEOMODELCORE_LIBRARIES} AthenaKernel GeoPrimitives Identifier LArHV StoreGateLib SGtests PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CLHEP_LIBRARIES} GeoModelUtilities GaudiKernel RDBAccessSvcLib GeoModelInterfaces ) -- GitLab From 96231cc32758f00142adf260220754e7a4261a7d Mon Sep 17 00:00:00 2001 From: Joerg Stelzer <joerg.stelzer@cern.ch> Date: Thu, 23 Jul 2020 13:02:22 +0200 Subject: [PATCH 442/459] Generation of L1 meta-item seeds from the correct menu * added old-style trigger flags to pick between xml and json as primary L1 source * Implement reading of the xml file reading for this purpose --- .../TriggerJobOpts/python/TriggerFlags.py | 1 + .../TriggerMenuMT/CMakeLists.txt | 1 + .../HLTMenuConfig/Menu/DictFromChainName.py | 28 ++++++++ .../python/LVL1MenuConfig/LVL1Menu/L1Seeds.py | 27 ++++---- .../scripts/trigCompareOldandNewL1Menus.py | 69 +++++++++++++++++++ 5 files changed, 113 insertions(+), 13 deletions(-) create mode 100755 Trigger/TriggerCommon/TriggerMenuMT/scripts/trigCompareOldandNewL1Menus.py diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py index f84b0849ca2..08064a73756 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py @@ -45,6 +45,7 @@ default_true_flags = [ ] default_false_flags = [ + "readLVL1FromJSON", # the authoritative L1 menu (xml or json) - this flag will be removed after the transition to json has been completed "readLVL1Calo", # read LVL1 Calo info from pool or BS """ "readLVL1Muon", # read LVL1 Muon in from Pool or BS """ "fakeLVL1", # create fake RoI from KINE info """ diff --git a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt index 1772c38bdca..37fe3d314a3 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt +++ b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt @@ -117,6 +117,7 @@ atlas_install_scripts( scripts/generateLVL1MenuMT.py ) atlas_install_scripts( scripts/generateL1TopoMenuMT.py ) atlas_install_scripts( scripts/test_HLTmenu.sh ) atlas_install_scripts( scripts/generateL1MenuRun3.py ) +atlas_install_scripts( scripts/trigCompareOldandNewL1Menus.py ) atlas_install_scripts( scripts/verify_menu_config.py ) atlas_install_xmls( data/*.dtd data/*.xml ) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/DictFromChainName.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/DictFromChainName.py index bd60349da4c..ba67d57d906 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/DictFromChainName.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/DictFromChainName.py @@ -23,6 +23,11 @@ def getOverallL1item(chainName): There are though more complicated names like ...._L1...._L1..._L1... in such cases the L1 seed item is the last one """ assert '_L1' in chainName, 'ERROR IN CHAIN {}, missing L1 seed at the end i.e. _L1...' .format(chainName) + + from TriggerMenuMT.LVL1MenuConfig.LVL1Menu.L1Seeds import getSpecificL1Seeds + from TrigConfIO.L1TriggerConfigAccess import L1MenuAccess + from TrigConfigSvc.TrigConfigSvcCfg import getL1MenuFileName + # this assumes that the last string of a chain name is the overall L1 item cNameParts = chainName.split("_L1") l1seed = 'L1_' + cNameParts[-1] @@ -32,6 +37,29 @@ def getOverallL1item(chainName): return '' if l1seed == 'L1_test': #Multiseeded chains are build like this return 'L1_EM24VHI,L1_MU20' + if l1seed == 'L1_Bkg' or l1seed == 'L1_Standby' or l1seed == 'L1_Calo' or l1seed == 'L1_Calo_EMPTY': + # For these item seed specifications we need to derive the precise list of item names from the L1Menu. + # During the transition period to the new menu format it is important to pick the correct kind based + # on the temporary TriggerFlag readLVL1FromJSON. + from TriggerJobOpts.TriggerFlags import TriggerFlags + if TriggerFlags.readLVL1FromJSON(): + lvl1name = getL1MenuFileName() + lvl1access = L1MenuAccess(lvl1name) + itemsDict = lvl1access.items(includeKeys = ['name','ctpid','triggerType']) + else: + from TriggerMenuMT.LVL1MenuConfig.LVL1.XMLReader import L1MenuXMLReader + fileName = TriggerFlags.inputLVL1configFile() + l1menu = L1MenuXMLReader(fileName) + l1items = l1menu.getL1Items() + itemsDict = {} + for item in l1items: + itemsDict[item['name']] = { + 'name' : item['name'], + 'ctpid' : item['ctpid'], + 'triggerType' : item['trigger_type'], + } + l1seedlist = getSpecificL1Seeds(l1seed, itemsDict) + return l1seedlist return l1seed diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/L1Seeds.py b/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/L1Seeds.py index e0b9ff63e96..b6ec67e952d 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/L1Seeds.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/LVL1MenuConfig/LVL1Menu/L1Seeds.py @@ -32,20 +32,21 @@ calo_exceptions = set([]) # obtain the l1 items according to the the trigger type # function taken originally from TriggerPythonConfig ####################################################### -def Lvl1ItemByTriggerType(l1object, triggertypebit, triggertypebitmask): - """For a triggertypebit between 0 and 7, returns a list of names of - those Lvl1 items that have that bit set in the triggertype""" - if triggertypebit<0 or triggertypebit>0xFF: - raise RuntimeError('TriggerPythonConfig.Lvl1ItemByTriggerType(triggertypebit,triggertypebitmask) needs to be called with 0<=triggertypebit<=0xFF, ' + \ - + 'but is called with triggertypebit=%i' % triggertypebit) - if triggertypebitmask<0 or triggertypebitmask>0xFF: - raise RuntimeError('TriggerPythonConfig.Lvl1ItemByTriggerType(triggertypebit,triggertypebitmask) needs to be called with 0<=triggertypebitmask<=0xFF, ' + \ - + 'but is called with triggertypebitmask=%i' % triggertypebitmask) - - itemsForMenu = [item for item in l1object if item.ctpid != -1] +def Lvl1ItemByTriggerType(l1object, triggertype_pattern, triggertype_bitmask): + """ + The function returns those items where the items triggertype, after applying the mask, matches the pattern. + With this one can also select items where a certain bit is disabled + """ + if triggertype_pattern<0 or triggertype_pattern>0xFF: + raise RuntimeError('TriggerPythonConfig.Lvl1ItemByTriggerType(triggertype_pattern,triggertype_bitmask) needs to be called with 0<=triggertype_pattern<=0xFF, ' + \ + + 'but is called with triggertype_pattern=%i' % triggertype_pattern) + if triggertype_bitmask<0 or triggertype_bitmask>0xFF: + raise RuntimeError('TriggerPythonConfig.Lvl1ItemByTriggerType(triggertype_pattern,triggertype_bitmask) needs to be called with 0<=triggertype_bitmask<=0xFF, ' + \ + + 'but is called with triggertype_bitmask=%i' % triggertype_bitmask) + itemsForMenu = [item for item in l1object if l1object[item]['ctpid'] != -1] if not itemsForMenu: log.error('No item defined for the L1 Menu, the TriggerConfL1 object does not contain items') - res = [item.name for item in itemsForMenu if (triggertypebitmask & item.trigger_type)==triggertypebit ] + res = [item for item in itemsForMenu if ( (triggertype_bitmask & int(l1object[item]['triggerType'],2)) == triggertype_pattern)] return res ############################## @@ -303,7 +304,7 @@ def getL1LowLumi(l1seed): # assigned the seeds to the L1 names ##################################### def getSpecificL1Seeds(l1seedname, l1itemobject): - l1items = [i.name for i in l1itemobject] + l1items = l1itemobject.keys() L1Seed = '' if l1seedname == 'L1_J': L1Seed = getL1JetBS() diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/trigCompareOldandNewL1Menus.py b/Trigger/TriggerCommon/TriggerMenuMT/scripts/trigCompareOldandNewL1Menus.py new file mode 100755 index 00000000000..5252e73f7ec --- /dev/null +++ b/Trigger/TriggerCommon/TriggerMenuMT/scripts/trigCompareOldandNewL1Menus.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + + +# this script is to help find differences between the old (xml) and new (json) L1 menus +# it also checks inputs of to the HLT and if they are available in L1 + +# this helps with the consistent transition from old to new L1 menu. It should be +# deleted once we have concluded this transition + +import os +import sys +import json + +from TriggerMenuMT.LVL1MenuConfig.LVL1.XMLReader import L1MenuXMLReader +from TrigConfIO.L1TriggerConfigAccess import L1MenuAccess +from TrigConfIO.HLTTriggerConfigAccess import HLTMenuAccess + +def main(): + + l1items_xml = None + l1items_json = None + hltinput = None + + if len(sys.argv) <3: + print("Please specify at least two menu files (L1Menu.xml, L1Menu.json, HLTMenu.json)") + + for fileName in sys.argv[1:]: + if fileName.endswith(".json"): + if fileName.startswith("L1"): + l1menu = L1MenuAccess(fileName) + l1items_json = l1menu.items() + else: + hltmenu = HLTMenuAccess(fileName) + hltinput = hltmenu.chains() + elif fileName.endswith(".xml"): + l1menu = L1MenuXMLReader(fileName) + l1items_xml = l1menu.getL1Items() + + legacyCaloItems = [ k for k,v in l1items_json.items() if 'legacy' in v ] + + itemNames_xml = [x['name'] for x in l1items_xml] + itemNames_json = l1items_json.keys() + ids_xml = dict([ (x['name'],int(x['ctpid'])) for x in l1items_xml]) + ids_json = dict([ (x['name'],x['ctpid']) for x in l1items_json.values()]) + + if l1items_xml and l1items_json: + itemsOnlyInJson = list( set(itemNames_json) - set(itemNames_xml) ) + itemsOnlyInXML = list( set(itemNames_xml) - set(itemNames_json) ) + print("These %i items are new in the json version" % len(itemsOnlyInJson)) + print(itemsOnlyInJson) + print("\nThese %i items have disappeared in the json version" % len(itemsOnlyInXML)) + print(itemsOnlyInXML) + + inboth = set(itemNames_json).intersection(set(itemNames_xml)) + noMatchId = [] + for name in sorted(inboth): + if ids_xml[name] != ids_json[name]: + noMatchId += [(name, ids_xml[name], ids_json[name])] + + print("\nFrom %i items that are in both, these %i have non-matching CTP id's" % (len(inboth),len(noMatchId))) + print("Name, CTPID in xml, CTPID in json") + for x in noMatchId: + print(x) + + return 0 + +if __name__ == "__main__": + sys.exit(main()) -- GitLab From 166bbcbdaccec06f8eec860c0a01aef1bb8b7f1e Mon Sep 17 00:00:00 2001 From: Joerg Stelzer <joerg.stelzer@cern.ch> Date: Thu, 23 Jul 2020 13:05:40 +0200 Subject: [PATCH 443/459] Add noalg L1Calo, Standby and Background streamers (ATR-21343) * Added streamers as listed in ATR-21343 (from @astruebi) --- .../TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py | 7 +++++++ .../TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py | 3 +++ 2 files changed, 10 insertions(+) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py index 1fb99d65fe6..0fdbdb8ba94 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py @@ -268,6 +268,13 @@ def setupMenu(): ] TriggerFlags.StreamingSlice.signatures = TriggerFlags.StreamingSlice.signatures() + [ + # L1 calo streamers + ChainProp(name='HLT_noalg_bkg_L1Bkg', l1SeedThresholds=['FSNOSEED'], stream=['Background'], groups=['RATE:SeededStreamers', 'BW:Other']), + ChainProp(name='HLT_noalg_L1Standby', l1SeedThresholds=['FSNOSEED'], stream=['Standby'], groups=['RATE:SeededStreamers', 'BW:Other']), + ChainProp(name='HLT_noalg_L1Calo', l1SeedThresholds=['FSNOSEED'], stream=['L1Calo'], groups=['RATE:SeededStreamers', 'BW:Other']), + ChainProp(name='HLT_noalg_L1Calo_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['L1Calo'], groups=['RATE:SeededStreamers', 'BW:Other']), + ChainProp(name='HLT_noalg_l1calo_L1J400', l1SeedThresholds=['FSNOSEED'], stream=['L1Calo'], groups=['RATE:SeededStreamers', 'BW:Other']), + ChainProp(name='HLT_noalg_mb_L1RD2_EMPTY', l1SeedThresholds=['FSNOSEED'], stream=['MinBias'], groups=MinBiasGroup), ChainProp(name='HLT_noalg_zb_L1ZB', l1SeedThresholds=['FSNOSEED'], stream=['ZeroBias'], groups=ZeroBiasGroup), ] diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py index 49cdb71088d..c7365ef4c5f 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/StreamInfo.py @@ -39,6 +39,9 @@ _all_streams = [ StreamInfo('CosmicCalo', 'physics', True, True), StreamInfo('IDCosmic', 'physics', True, True), StreamInfo('ZeroBias', 'physics', True, True), + StreamInfo('Background', 'physics', True, True), + StreamInfo('Standby', 'physics', True, True), + StreamInfo('L1Calo', 'physics', True, True), # EXPRESS STREAM StreamInfo('express', 'express', True, True), # MONITORING STREAMS -- GitLab From 192cfc5f9792fe96d73de592ec54a153d1ad61e4 Mon Sep 17 00:00:00 2001 From: Joerg Stelzer <joerg.stelzer@cern.ch> Date: Thu, 23 Jul 2020 18:12:17 +0200 Subject: [PATCH 444/459] Enable TrigSignatureMoniMT to deal with multi-item seeded chains Demote a warning to info for such chains, as there is currently some discrepancy between the L1 menu that the HLTMenu was generated with, and the L1Menu that the monitoring uses --- .../src/TrigSignatureMoniMT.cxx | 32 ++++++++++++++----- .../src/TrigSignatureMoniMT.h | 1 + 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.cxx b/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.cxx index 3e8d5c06365..affd288ed12 100644 --- a/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.cxx +++ b/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.cxx @@ -3,6 +3,9 @@ */ #include <algorithm> #include <regex> + +#include<boost/algorithm/string.hpp> + #include "GaudiKernel/IIncidentSvc.h" #include "GaudiKernel/Property.h" #include "AthenaInterprocess/Incidents.h" @@ -57,15 +60,28 @@ StatusCode TrigSignatureMoniMT::start() { } if( gotL1Menu && !chain.l1item().empty() ) { + bool isMultiItemSeeded = chain.l1item().find(',') != std::string::npos; try { - TrigConf::L1Item item = l1MenuHandle->item(chain.l1item()); - for ( const std::string & group : item.bunchgroups() ) { - if ( group != "BGRP0" ) { - m_chainIDToBunchMap[HLT::Identifier(chain.name())].insert(group); - } - } - } catch(...) { - ATH_MSG_WARNING("The item " << chain.l1item() << " is not part of the L1 menu" ); + std::vector<std::string> seedingItems{}; + if( isMultiItemSeeded ) { + boost::split(seedingItems, chain.l1item(), boost::is_any_of(",")); + } else { + seedingItems = { chain.l1item() }; + } + for( const std::string & itemName : seedingItems ) { + TrigConf::L1Item item = l1MenuHandle->item(itemName); + for ( const std::string & group : item.bunchgroups() ) { + if ( group != "BGRP0" ) { + m_chainIDToBunchMap[HLT::Identifier(chain.name())].insert(group); + } + } + } + } catch(std::exception & ex) { + if( isMultiItemSeeded ) { + ATH_MSG_INFO("The L1 seed to multi-item-seeded chain " << chain.name() << " could not be completely resolved. This is currently OK. Exception from menu access: " << ex.what()); + } else { + ATH_MSG_WARNING("The L1 seed to chain " << chain.name() << " could not be resolved. Exception from menu access: " << ex.what()); + } } } } diff --git a/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.h b/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.h index 4ed41f5a1df..2a671905547 100644 --- a/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.h +++ b/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.h @@ -7,6 +7,7 @@ #include <string> #include <mutex> #include <memory> +#include <vector> #include <TH2.h> #include "AthenaBaseComps/AthReentrantAlgorithm.h" -- GitLab From e4dac4c6cef4ea920cbe22604c20fab03c16f9c7 Mon Sep 17 00:00:00 2001 From: Joerg Stelzer <joerg.stelzer@cern.ch> Date: Fri, 24 Jul 2020 11:46:16 +0200 Subject: [PATCH 445/459] Update test references --- .../share/ref_RDOtoRDOTrig_mt1_build.ref | 1445 ++++++++--------- .../share/ref_data_v1Dev_build.ref | 17 + .../scripts/trigCompareOldandNewL1Menus.py | 63 +- 3 files changed, 759 insertions(+), 766 deletions(-) diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref index a630bc33e2b..958bb3d156f 100644 --- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref +++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref @@ -1,741 +1,704 @@ -TrigSignatureMoniMT INFO HLT_2e17_etcut_L12EM15VH #3136730292 -TrigSignatureMoniMT INFO -- #3136730292 Events 2 2 2 2 2 - - - 2 -TrigSignatureMoniMT INFO -- #3136730292 Features 12 296 14 - - - -TrigSignatureMoniMT INFO HLT_2e17_lhvloose_L12EM15VH #2280638160 -TrigSignatureMoniMT INFO -- #2280638160 Events 2 2 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #2280638160 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_2e17_lhvloose_L12EM3 #1767768251 -TrigSignatureMoniMT INFO -- #1767768251 Events 20 20 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1767768251 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_2e3_etcut_L12EM3 #2613484113 -TrigSignatureMoniMT INFO -- #2613484113 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #2613484113 Features 342 3686 780 - - - -TrigSignatureMoniMT INFO HLT_2g20_tight_L12EM15VH #3837353071 -TrigSignatureMoniMT INFO -- #3837353071 Events 2 2 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #3837353071 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_2g35_etcut_L12EM20VH #58053304 -TrigSignatureMoniMT INFO -- #58053304 Events 2 2 1 1 0 - - - 0 -TrigSignatureMoniMT INFO -- #58053304 Features 4 4 0 - - - -TrigSignatureMoniMT INFO HLT_2g35_medium_L12EM20VH #3965466087 -TrigSignatureMoniMT INFO -- #3965466087 Events 2 2 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #3965466087 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J100 #1295975955 -TrigSignatureMoniMT INFO -- #1295975955 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #1295975955 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_2j60_L1J15 #927735533 -TrigSignatureMoniMT INFO -- #927735533 Events 20 20 10 - - - - - 10 -TrigSignatureMoniMT INFO -- #927735533 Features 28 - - - - - -TrigSignatureMoniMT INFO HLT_2mu10_bJpsimumu_L12MU10 #3498558358 -TrigSignatureMoniMT INFO -- #3498558358 Events 3 3 3 3 3 2 - - 0 -TrigSignatureMoniMT INFO -- #3498558358 Features 12 12 16 4 - - -TrigSignatureMoniMT INFO HLT_2mu10_bUpsimumu_L12MU10 #234102568 -TrigSignatureMoniMT INFO -- #234102568 Events 3 3 3 3 3 2 - - 0 -TrigSignatureMoniMT INFO -- #234102568 Features 12 12 16 4 - - -TrigSignatureMoniMT INFO HLT_2mu14_L12MU10 #2619091790 -TrigSignatureMoniMT INFO -- #2619091790 Events 3 3 3 1 1 1 - - 1 -TrigSignatureMoniMT INFO -- #2619091790 Features 12 4 4 4 - - -TrigSignatureMoniMT INFO HLT_2mu15_L12MU10 #557204938 -TrigSignatureMoniMT INFO -- #557204938 Events 3 3 3 1 1 1 - - 1 -TrigSignatureMoniMT INFO -- #557204938 Features 12 4 4 4 - - -TrigSignatureMoniMT INFO HLT_2mu4_L12MU4 #2999632714 -TrigSignatureMoniMT INFO -- #2999632714 Events 4 4 4 4 4 4 - - 4 -TrigSignatureMoniMT INFO -- #2999632714 Features 16 16 24 36 - - -TrigSignatureMoniMT INFO HLT_2mu4_bDimu_L12MU4 #1730084172 -TrigSignatureMoniMT INFO -- #1730084172 Events 4 4 4 4 4 4 - - 0 -TrigSignatureMoniMT INFO -- #1730084172 Features 16 16 24 18 - - -TrigSignatureMoniMT INFO HLT_2mu4_bJpsimumu_L12MU4 #4276347155 -TrigSignatureMoniMT INFO -- #4276347155 Events 4 4 4 4 4 4 - - 0 -TrigSignatureMoniMT INFO -- #4276347155 Features 16 16 24 18 - - -TrigSignatureMoniMT INFO HLT_2mu4_bUpsimumu_L12MU4 #4008168535 -TrigSignatureMoniMT INFO -- #4008168535 Events 4 4 4 4 4 4 - - 0 -TrigSignatureMoniMT INFO -- #4008168535 Features 16 16 24 18 - - -TrigSignatureMoniMT INFO HLT_2mu4_muonqual_L12MU4 #1584776935 -TrigSignatureMoniMT INFO -- #1584776935 Events 4 4 4 4 4 4 - - 4 -TrigSignatureMoniMT INFO -- #1584776935 Features 16 16 24 36 - - -TrigSignatureMoniMT INFO HLT_2mu6Comb_L12MU6 #2046267508 -TrigSignatureMoniMT INFO -- #2046267508 Events 4 4 4 3 - - - - 3 -TrigSignatureMoniMT INFO -- #2046267508 Features 16 12 - - - - -TrigSignatureMoniMT INFO HLT_2mu6_10invm70_L1MU6 #1316992871 -TrigSignatureMoniMT INFO -- #1316992871 Events 10 10 4 3 3 3 - - 3 -TrigSignatureMoniMT INFO -- #1316992871 Features 16 12 18 28 - - -TrigSignatureMoniMT INFO HLT_2mu6_Dr_L12MU4 #3304584056 -TrigSignatureMoniMT INFO -- #3304584056 Events 4 4 4 3 - - - - 3 -TrigSignatureMoniMT INFO -- #3304584056 Features 16 12 - - - - -TrigSignatureMoniMT INFO HLT_2mu6_L12MU6 #1747073535 -TrigSignatureMoniMT INFO -- #1747073535 Events 4 4 4 3 3 3 - - 3 -TrigSignatureMoniMT INFO -- #1747073535 Features 16 12 18 28 - - -TrigSignatureMoniMT INFO HLT_2mu6_muonqual_L12MU6 #2398136098 -TrigSignatureMoniMT INFO -- #2398136098 Events 4 4 4 3 3 3 - - 3 -TrigSignatureMoniMT INFO -- #2398136098 Features 16 12 18 28 - - -TrigSignatureMoniMT INFO HLT_3j200_L1J100 #2199422919 -TrigSignatureMoniMT INFO -- #2199422919 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #2199422919 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_3j200_L1J20 #493765146 -TrigSignatureMoniMT INFO -- #493765146 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #493765146 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_3mu6_L13MU6 #1832399408 -TrigSignatureMoniMT INFO -- #1832399408 Events 0 0 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1832399408 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_3mu6_msonly_L13MU6 #1199773318 -TrigSignatureMoniMT INFO -- #1199773318 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1199773318 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_3mu8_msonly_L13MU6 #424835335 -TrigSignatureMoniMT INFO -- #424835335 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #424835335 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_4mu4_L14MU4 #1834383636 -TrigSignatureMoniMT INFO -- #1834383636 Events 0 0 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1834383636 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_5j70_0eta240_L14J20 #1175391812 -TrigSignatureMoniMT INFO -- #1175391812 Events 7 7 1 - - - - - 1 -TrigSignatureMoniMT INFO -- #1175391812 Features 5 - - - - - -TrigSignatureMoniMT INFO HLT_beamspot_allTE_trkfast_BeamSpotPEB_L1J15 #3989372080 -TrigSignatureMoniMT INFO -- #3989372080 Events 20 20 20 20 - - - - 20 -TrigSignatureMoniMT INFO -- #3989372080 Features 20 20 - - - - -TrigSignatureMoniMT INFO HLT_beamspot_trkFS_trkfast_BeamSpotPEB_L1J15 #628534730 -TrigSignatureMoniMT INFO -- #628534730 Events 20 20 20 20 - - - - 20 -TrigSignatureMoniMT INFO -- #628534730 Features 20 20 - - - - -TrigSignatureMoniMT INFO HLT_costmonitor_CostMonDS_L1All #843341480 -TrigSignatureMoniMT INFO -- #843341480 Events 20 20 20 - - - - - 20 -TrigSignatureMoniMT INFO -- #843341480 Features 20 - - - - - -TrigSignatureMoniMT INFO HLT_e140_lhloose_L1EM22VHI #3471067710 -TrigSignatureMoniMT INFO -- #3471067710 Events 6 6 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #3471067710 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_e140_lhloose_nod0_L1EM22VHI #4128870680 -TrigSignatureMoniMT INFO -- #4128870680 Events 6 6 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #4128870680 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_e17_lhloose_mu14_L1EM15VH_MU10 #899946230 -TrigSignatureMoniMT INFO -- #899946230 Events 3 3 2 2 2 2 - - 2 -TrigSignatureMoniMT INFO -- #899946230 Features 2 45 4 2 - - -TrigSignatureMoniMT INFO HLT_e17_lhvloose_nod0_L1EM15VH #140779220 -TrigSignatureMoniMT INFO -- #140779220 Events 8 8 6 6 6 5 - - 5 -TrigSignatureMoniMT INFO -- #140779220 Features 6 78 10 5 - - -TrigSignatureMoniMT INFO HLT_e26_etcut_L1EM22VHI #1703681121 -TrigSignatureMoniMT INFO -- #1703681121 Events 6 6 6 6 6 - - - 6 -TrigSignatureMoniMT INFO -- #1703681121 Features 7 133 7 - - - -TrigSignatureMoniMT INFO HLT_e26_lhtight_L1EM22VHI #1995263521 -TrigSignatureMoniMT INFO -- #1995263521 Events 6 6 5 5 5 4 - - 4 -TrigSignatureMoniMT INFO -- #1995263521 Features 5 64 8 4 - - -TrigSignatureMoniMT INFO HLT_e26_lhtight_nod0_L1EM22VHI #939763520 -TrigSignatureMoniMT INFO -- #939763520 Events 6 6 5 5 5 4 - - 4 -TrigSignatureMoniMT INFO -- #939763520 Features 5 64 8 4 - - -TrigSignatureMoniMT INFO HLT_e26_lhtight_nod0_L1EM24VHI #4227411116 -TrigSignatureMoniMT INFO -- #4227411116 Events 6 6 5 5 5 4 - - 4 -TrigSignatureMoniMT INFO -- #4227411116 Features 5 64 8 4 - - -TrigSignatureMoniMT INFO HLT_e300_etcut_L1EM22VHI #2128128255 -TrigSignatureMoniMT INFO -- #2128128255 Events 6 6 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #2128128255 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_e3_etcut1step_mu26_L1EM8I_MU10 #2209076666 -TrigSignatureMoniMT INFO -- #2209076666 Events 5 5 3 1 1 1 - - 1 -TrigSignatureMoniMT INFO -- #2209076666 Features 3 1 1 1 - - -TrigSignatureMoniMT INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU10 #2086577378 -TrigSignatureMoniMT INFO -- #2086577378 Events 5 5 3 - - - - - 3 -TrigSignatureMoniMT INFO -- #2086577378 Features 3 - - - - - -TrigSignatureMoniMT INFO HLT_e3_etcut_L1EM3 #683953566 -TrigSignatureMoniMT INFO -- #683953566 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #683953566 Features 171 1843 390 - - - -TrigSignatureMoniMT INFO HLT_e5_etcut_L1EM3 #324908483 -TrigSignatureMoniMT INFO -- #324908483 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #324908483 Features 137 1654 190 - - - -TrigSignatureMoniMT INFO HLT_e5_lhloose_noringer_L1EM3 #1053337356 -TrigSignatureMoniMT INFO -- #1053337356 Events 20 20 17 17 17 4 - - 4 -TrigSignatureMoniMT INFO -- #1053337356 Features 56 651 116 5 - - -TrigSignatureMoniMT INFO HLT_e5_lhmedium_noringer_L1EM3 #176627878 -TrigSignatureMoniMT INFO -- #176627878 Events 20 20 16 16 16 4 - - 4 -TrigSignatureMoniMT INFO -- #176627878 Features 48 531 93 5 - - -TrigSignatureMoniMT INFO HLT_e5_lhtight_noringer_L1EM3 #2758326765 -TrigSignatureMoniMT INFO -- #2758326765 Events 20 20 16 16 16 4 - - 4 -TrigSignatureMoniMT INFO -- #2758326765 Features 45 513 84 5 - - -TrigSignatureMoniMT INFO HLT_e5_lhtight_noringer_nod0_L1EM3 #1690619419 -TrigSignatureMoniMT INFO -- #1690619419 Events 20 20 16 16 16 4 - - 4 -TrigSignatureMoniMT INFO -- #1690619419 Features 45 513 84 5 - - -TrigSignatureMoniMT INFO HLT_e60_lhmedium_L1EM22VHI #298591874 -TrigSignatureMoniMT INFO -- #298591874 Events 6 6 2 2 2 2 - - 2 -TrigSignatureMoniMT INFO -- #298591874 Features 2 33 4 2 - - -TrigSignatureMoniMT INFO HLT_e60_lhmedium_nod0_L1EM22VHI #4115486024 -TrigSignatureMoniMT INFO -- #4115486024 Events 6 6 2 2 2 2 - - 2 -TrigSignatureMoniMT INFO -- #4115486024 Features 2 33 4 2 - - -TrigSignatureMoniMT INFO HLT_e7_etcut_L1EM3 #1959043579 -TrigSignatureMoniMT INFO -- #1959043579 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #1959043579 Features 89 1135 112 - - - -TrigSignatureMoniMT INFO HLT_e7_lhmedium_mu24_L1MU20 #2970063918 -TrigSignatureMoniMT INFO -- #2970063918 Events 8 8 7 5 5 1 - - 1 -TrigSignatureMoniMT INFO -- #2970063918 Features 9 72 14 1 - - -TrigSignatureMoniMT INFO HLT_g140_etcut_L1EM22VHI #3879926061 -TrigSignatureMoniMT INFO -- #3879926061 Events 6 6 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #3879926061 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_g140_etcut_L1EM24VHI #1045486446 -TrigSignatureMoniMT INFO -- #1045486446 Events 6 6 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1045486446 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_g140_loose_L1EM22VHI #1776910226 -TrigSignatureMoniMT INFO -- #1776910226 Events 6 6 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1776910226 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_g20_etcut_LArPEB_L1EM15 #2706532790 -TrigSignatureMoniMT INFO -- #2706532790 Events 14 14 14 14 12 12 - - 12 -TrigSignatureMoniMT INFO -- #2706532790 Features 24 24 22 20 - - -TrigSignatureMoniMT INFO HLT_g25_loose_L1EM15VH #531040386 -TrigSignatureMoniMT INFO -- #531040386 Events 8 8 7 7 7 6 - - 6 -TrigSignatureMoniMT INFO -- #531040386 Features 9 9 18 7 - - -TrigSignatureMoniMT INFO HLT_g25_medium_L1EM15VH #3776886359 -TrigSignatureMoniMT INFO -- #3776886359 Events 8 8 7 7 7 6 - - 6 -TrigSignatureMoniMT INFO -- #3776886359 Features 7 7 13 6 - - -TrigSignatureMoniMT INFO HLT_g25_medium_mu24_ivarmedium_L1MU20 #1007052793 -TrigSignatureMoniMT INFO -- #1007052793 Events 8 8 2 1 1 1 0 - 0 -TrigSignatureMoniMT INFO -- #1007052793 Features 2 1 3 1 0 - -TrigSignatureMoniMT INFO HLT_g25_tight_L1EM15VH #3691147775 -TrigSignatureMoniMT INFO -- #3691147775 Events 8 8 7 7 7 5 - - 5 -TrigSignatureMoniMT INFO -- #3691147775 Features 7 7 13 5 - - -TrigSignatureMoniMT INFO HLT_g35_medium_g25_medium_L12EM20VH #1158879722 -TrigSignatureMoniMT INFO -- #1158879722 Events 2 2 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1158879722 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_g5_etcut_L1EM3 #471243435 -TrigSignatureMoniMT INFO -- #471243435 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #471243435 Features 137 137 190 - - - -TrigSignatureMoniMT INFO HLT_g5_etcut_LArPEB_L1EM3 #3486231698 -TrigSignatureMoniMT INFO -- #3486231698 Events 20 20 20 20 20 20 - - 20 -TrigSignatureMoniMT INFO -- #3486231698 Features 137 137 190 118 - - -TrigSignatureMoniMT INFO HLT_g5_loose_L1EM3 #3230088967 -TrigSignatureMoniMT INFO -- #3230088967 Events 20 20 17 17 17 9 - - 9 -TrigSignatureMoniMT INFO -- #3230088967 Features 56 56 116 12 - - -TrigSignatureMoniMT INFO HLT_g5_medium_L1EM3 #385248610 -TrigSignatureMoniMT INFO -- #385248610 Events 20 20 16 16 16 9 - - 9 -TrigSignatureMoniMT INFO -- #385248610 Features 48 48 93 12 - - -TrigSignatureMoniMT INFO HLT_g5_tight_L1EM3 #3280865118 -TrigSignatureMoniMT INFO -- #3280865118 Events 20 20 16 16 16 9 - - 9 -TrigSignatureMoniMT INFO -- #3280865118 Features 45 45 84 9 - - -TrigSignatureMoniMT INFO HLT_j0_perf_L1J12_EMPTY #1341875780 -TrigSignatureMoniMT INFO -- #1341875780 Events 0 0 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #1341875780 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 #4034799151 -TrigSignatureMoniMT INFO -- #4034799151 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #4034799151 Features 425 - - - - - -TrigSignatureMoniMT INFO HLT_j225_ftf_subjesgscIS_bmv2c1040_split_L1J100 #3992507557 -TrigSignatureMoniMT INFO -- #3992507557 Events 3 3 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #3992507557 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_j260_320eta490_L1J20 #3084792704 -TrigSignatureMoniMT INFO -- #3084792704 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3084792704 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j260_320eta490_L1J75_31ETA49 #3769257182 -TrigSignatureMoniMT INFO -- #3769257182 Events 2 2 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3769257182 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J100 #1211559599 -TrigSignatureMoniMT INFO -- #1211559599 Events 3 3 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #1211559599 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J100 #3706723666 -TrigSignatureMoniMT INFO -- #3706723666 Events 3 3 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #3706723666 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J100 #1837565816 -TrigSignatureMoniMT INFO -- #1837565816 Events 3 3 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #1837565816 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_j420_L1J100 #2659902019 -TrigSignatureMoniMT INFO -- #2659902019 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #2659902019 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j420_L1J20 #2205518067 -TrigSignatureMoniMT INFO -- #2205518067 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #2205518067 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j420_ftf_subjesgscIS_L1J20 #4179085188 -TrigSignatureMoniMT INFO -- #4179085188 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #4179085188 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j45_L1J15 #1364976160 -TrigSignatureMoniMT INFO -- #1364976160 Events 20 20 19 - - - - - 19 -TrigSignatureMoniMT INFO -- #1364976160 Features 50 - - - - - -TrigSignatureMoniMT INFO HLT_j45_cssktc_nojcalib_L1J20 #3295122398 -TrigSignatureMoniMT INFO -- #3295122398 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #3295122398 Features 27 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_L1J15 #868405538 -TrigSignatureMoniMT INFO -- #868405538 Events 20 20 19 - - - - - 19 -TrigSignatureMoniMT INFO -- #868405538 Features 50 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_csskpf_nojcalib_L1J20 #3533281867 -TrigSignatureMoniMT INFO -- #3533281867 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #3533281867 Features 25 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_pf_L1J20 #1335156103 -TrigSignatureMoniMT INFO -- #1335156103 Events 19 19 16 - - - - - 16 -TrigSignatureMoniMT INFO -- #1335156103 Features 31 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_pf_nojcalib_L1J20 #3658890913 -TrigSignatureMoniMT INFO -- #3658890913 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #3658890913 Features 29 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_011jvt_L1J15 #2857031468 -TrigSignatureMoniMT INFO -- #2857031468 Events 20 20 12 - - - - - 12 -TrigSignatureMoniMT INFO -- #2857031468 Features 20 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_015jvt_L1J15 #2938374624 -TrigSignatureMoniMT INFO -- #2938374624 Events 20 20 12 - - - - - 12 -TrigSignatureMoniMT INFO -- #2938374624 Features 19 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_059jvt_L1J15 #1593009344 -TrigSignatureMoniMT INFO -- #1593009344 Events 20 20 12 - - - - - 12 -TrigSignatureMoniMT INFO -- #1593009344 Features 19 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_L1J15 #3341539267 -TrigSignatureMoniMT INFO -- #3341539267 Events 20 20 19 - - - - - 19 -TrigSignatureMoniMT INFO -- #3341539267 Features 51 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J20 #991419339 -TrigSignatureMoniMT INFO -- #991419339 Events 19 19 19 4 - - - - 4 -TrigSignatureMoniMT INFO -- #991419339 Features 50 8 - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20 #1961149049 -TrigSignatureMoniMT INFO -- #1961149049 Events 19 19 19 19 - - - - 19 -TrigSignatureMoniMT INFO -- #1961149049 Features 50 50 - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_pf_L1J20 #761060030 -TrigSignatureMoniMT INFO -- #761060030 Events 19 19 16 - - - - - 16 -TrigSignatureMoniMT INFO -- #761060030 Features 31 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_L1J15 #1509925407 -TrigSignatureMoniMT INFO -- #1509925407 Events 20 20 18 - - - - - 18 -TrigSignatureMoniMT INFO -- #1509925407 Features 44 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_pf_L1J20 #4012311417 -TrigSignatureMoniMT INFO -- #4012311417 Events 19 19 16 - - - - - 16 -TrigSignatureMoniMT INFO -- #4012311417 Features 31 - - - - - -TrigSignatureMoniMT INFO HLT_j45_nojcalib_L1J20 #2042444294 -TrigSignatureMoniMT INFO -- #2042444294 Events 19 19 17 - - - - - 17 -TrigSignatureMoniMT INFO -- #2042444294 Features 39 - - - - - -TrigSignatureMoniMT INFO HLT_j45_sktc_nojcalib_L1J20 #1542468090 -TrigSignatureMoniMT INFO -- #1542468090 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #1542468090 Features 26 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10_lcw_subjes_L1J100 #3327656707 -TrigSignatureMoniMT INFO -- #3327656707 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3327656707 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10_lcw_subjes_L1J20 #215408633 -TrigSignatureMoniMT INFO -- #215408633 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #215408633 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10r_L1J100 #1151767619 -TrigSignatureMoniMT INFO -- #1151767619 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #1151767619 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10r_L1J20 #3875082669 -TrigSignatureMoniMT INFO -- #3875082669 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3875082669 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J100 #2296827117 -TrigSignatureMoniMT INFO -- #2296827117 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #2296827117 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10t_lcw_jes_L1J100 #436385969 -TrigSignatureMoniMT INFO -- #436385969 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #436385969 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20 #3634067472 -TrigSignatureMoniMT INFO -- #3634067472 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3634067472 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j80_L1J15 #2440872308 -TrigSignatureMoniMT INFO -- #2440872308 Events 20 20 13 - - - - - 13 -TrigSignatureMoniMT INFO -- #2440872308 Features 23 - - - - - -TrigSignatureMoniMT INFO HLT_j80_j60_L1J15 #582699527 -TrigSignatureMoniMT INFO -- #582699527 Events 20 20 8 - - - - - 8 -TrigSignatureMoniMT INFO -- #582699527 Features 23 - - - - - -TrigSignatureMoniMT INFO HLT_j85_L1J20 #510475538 -TrigSignatureMoniMT INFO -- #510475538 Events 19 19 13 - - - - - 13 -TrigSignatureMoniMT INFO -- #510475538 Features 21 - - - - - -TrigSignatureMoniMT INFO HLT_j85_ftf_L1J20 #877042532 -TrigSignatureMoniMT INFO -- #877042532 Events 19 19 13 - - - - - 13 -TrigSignatureMoniMT INFO -- #877042532 Features 21 - - - - - -TrigSignatureMoniMT INFO HLT_j85_ftf_pf_L1J20 #1538535401 -TrigSignatureMoniMT INFO -- #1538535401 Events 19 19 8 - - - - - 8 -TrigSignatureMoniMT INFO -- #1538535401 Features 13 - - - - - -TrigSignatureMoniMT INFO HLT_mb_sptrk_L1RD0_FILLED #4097312640 -TrigSignatureMoniMT INFO -- #4097312640 Events 20 20 20 20 - - - - 20 -TrigSignatureMoniMT INFO -- #4097312640 Features 20 20 - - - - -TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU20 #997163309 -TrigSignatureMoniMT INFO -- #997163309 Events 8 8 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #997163309 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU4_EMPTY #782182242 -TrigSignatureMoniMT INFO -- #782182242 Events 0 0 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #782182242 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_mu10_L1MU10 #209090273 -TrigSignatureMoniMT INFO -- #209090273 Events 10 10 10 10 10 9 - - 9 -TrigSignatureMoniMT INFO -- #209090273 Features 13 12 13 11 - - -TrigSignatureMoniMT INFO HLT_mu10_ivarmedium_mu10_10invm70_L12MU10 #2386882549 -TrigSignatureMoniMT INFO -- #2386882549 Events 3 3 3 2 2 2 2 - 2 -TrigSignatureMoniMT INFO -- #2386882549 Features 6 4 4 4 2 - -TrigSignatureMoniMT INFO HLT_mu10_lateMu_L1MU10 #48780310 -TrigSignatureMoniMT INFO -- #48780310 Events 10 10 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #48780310 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_mu11_mu6_bJpsimumu_L1MU11_2MU6 #2504965945 -TrigSignatureMoniMT INFO -- #2504965945 Events 4 4 4 0 3 0 - - 0 -TrigSignatureMoniMT INFO -- #2504965945 Features 8 0 6 0 - - -TrigSignatureMoniMT INFO HLT_mu11_mu6_bUpsimumu_L1MU11_2MU6 #1171632195 -TrigSignatureMoniMT INFO -- #1171632195 Events 4 4 4 0 3 0 - - 0 -TrigSignatureMoniMT INFO -- #1171632195 Features 8 0 6 0 - - -TrigSignatureMoniMT INFO HLT_mu14_L1MU10 #1696906927 -TrigSignatureMoniMT INFO -- #1696906927 Events 10 10 10 7 7 7 - - 7 -TrigSignatureMoniMT INFO -- #1696906927 Features 13 8 8 8 - - -TrigSignatureMoniMT INFO HLT_mu20_2mu4noL1_L1MU20 #1029128679 -TrigSignatureMoniMT INFO -- #1029128679 Events 8 8 8 5 5 5 1 1 1 -TrigSignatureMoniMT INFO -- #1029128679 Features 10 6 6 6 2 2 -TrigSignatureMoniMT INFO HLT_mu20_ivar_L1MU6 #2083734526 -TrigSignatureMoniMT INFO -- #2083734526 Events 10 10 10 5 5 - - - 5 -TrigSignatureMoniMT INFO -- #2083734526 Features 14 6 5 - - - -TrigSignatureMoniMT INFO HLT_mu22_2mu4noL1_L1MU20 #3427670100 -TrigSignatureMoniMT INFO -- #3427670100 Events 8 8 8 5 5 5 1 1 1 -TrigSignatureMoniMT INFO -- #3427670100 Features 10 6 6 6 2 2 -TrigSignatureMoniMT INFO HLT_mu22_mu8noL1_L1MU20 #3165652409 -TrigSignatureMoniMT INFO -- #3165652409 Events 8 8 8 5 5 5 2 2 2 -TrigSignatureMoniMT INFO -- #3165652409 Features 10 6 6 6 3 3 -TrigSignatureMoniMT INFO HLT_mu24_2mu4noL1_L1MU20 #3233544630 -TrigSignatureMoniMT INFO -- #3233544630 Events 8 8 8 5 5 5 1 1 1 -TrigSignatureMoniMT INFO -- #3233544630 Features 10 6 6 6 2 2 -TrigSignatureMoniMT INFO HLT_mu24_L1MU20 #417425162 -TrigSignatureMoniMT INFO -- #417425162 Events 8 8 8 5 5 5 - - 5 -TrigSignatureMoniMT INFO -- #417425162 Features 10 6 6 6 - - -TrigSignatureMoniMT INFO HLT_mu24_idperf_L1MU20 #677658909 -TrigSignatureMoniMT INFO -- #677658909 Events 8 8 6 6 6 6 - - 6 -TrigSignatureMoniMT INFO -- #677658909 Features 7 7 7 7 - - -TrigSignatureMoniMT INFO HLT_mu24_mu10noL1_L1MU20 #2563354236 -TrigSignatureMoniMT INFO -- #2563354236 Events 8 8 8 5 5 5 2 2 2 -TrigSignatureMoniMT INFO -- #2563354236 Features 10 6 6 6 3 3 -TrigSignatureMoniMT INFO HLT_mu26_L1MU20 #311138376 -TrigSignatureMoniMT INFO -- #311138376 Events 8 8 8 5 4 3 - - 3 -TrigSignatureMoniMT INFO -- #311138376 Features 10 6 5 4 - - -TrigSignatureMoniMT INFO HLT_mu26_ivarmedium_L1MU20 #3411723090 -TrigSignatureMoniMT INFO -- #3411723090 Events 8 8 8 5 4 3 2 - 2 -TrigSignatureMoniMT INFO -- #3411723090 Features 10 6 5 4 2 - -TrigSignatureMoniMT INFO HLT_mu26_mu10noL1_L1MU20 #2318302287 -TrigSignatureMoniMT INFO -- #2318302287 Events 8 8 8 5 4 3 1 1 1 -TrigSignatureMoniMT INFO -- #2318302287 Features 10 6 5 4 2 2 -TrigSignatureMoniMT INFO HLT_mu26_mu8noL1_L1MU20 #2233067926 -TrigSignatureMoniMT INFO -- #2233067926 Events 8 8 8 5 4 3 1 1 1 -TrigSignatureMoniMT INFO -- #2233067926 Features 10 6 5 4 2 2 -TrigSignatureMoniMT INFO HLT_mu28_ivarmedium_L1MU20 #1963262787 -TrigSignatureMoniMT INFO -- #1963262787 Events 8 8 8 5 4 3 2 - 2 -TrigSignatureMoniMT INFO -- #1963262787 Features 10 6 5 3 2 - -TrigSignatureMoniMT INFO HLT_mu28_mu8noL1_L1MU20 #86648125 -TrigSignatureMoniMT INFO -- #86648125 Events 8 8 8 5 4 3 1 1 1 -TrigSignatureMoniMT INFO -- #86648125 Features 10 6 5 3 1 1 -TrigSignatureMoniMT INFO HLT_mu35_ivarmedium_L1MU20 #597064890 -TrigSignatureMoniMT INFO -- #597064890 Events 8 8 8 5 3 2 1 - 1 -TrigSignatureMoniMT INFO -- #597064890 Features 10 6 4 2 1 - -TrigSignatureMoniMT INFO HLT_mu50_L1MU20 #3657158931 -TrigSignatureMoniMT INFO -- #3657158931 Events 8 8 8 5 1 1 - - 1 -TrigSignatureMoniMT INFO -- #3657158931 Features 10 6 1 1 - - -TrigSignatureMoniMT INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU20 #827327262 -TrigSignatureMoniMT INFO -- #827327262 Events 8 8 8 5 1 1 1 - 1 -TrigSignatureMoniMT INFO -- #827327262 Features 10 6 1 1 1 - -TrigSignatureMoniMT INFO HLT_mu60_0eta105_msonly_L1MU20 #1642591450 -TrigSignatureMoniMT INFO -- #1642591450 Events 8 8 1 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1642591450 Features 2 0 0 - - - -TrigSignatureMoniMT INFO HLT_mu60_L1MU20 #2871837722 -TrigSignatureMoniMT INFO -- #2871837722 Events 8 8 8 5 1 1 - - 1 -TrigSignatureMoniMT INFO -- #2871837722 Features 10 6 1 1 - - -TrigSignatureMoniMT INFO HLT_mu6Comb_L1MU6 #996392590 -TrigSignatureMoniMT INFO -- #996392590 Events 10 10 10 10 - - - - 10 -TrigSignatureMoniMT INFO -- #996392590 Features 14 13 - - - - -TrigSignatureMoniMT INFO HLT_mu6_L1MU6 #2560542253 -TrigSignatureMoniMT INFO -- #2560542253 Events 10 10 10 10 10 10 - - 10 -TrigSignatureMoniMT INFO -- #2560542253 Features 14 13 16 21 - - -TrigSignatureMoniMT INFO HLT_mu6_idperf_L1MU6 #934918532 -TrigSignatureMoniMT INFO -- #934918532 Events 10 10 10 10 10 10 - - 10 -TrigSignatureMoniMT INFO -- #934918532 Features 14 14 17 27 - - -TrigSignatureMoniMT INFO HLT_mu6_ivarmedium_L1MU6 #1012713062 -TrigSignatureMoniMT INFO -- #1012713062 Events 10 10 10 10 10 10 6 - 6 -TrigSignatureMoniMT INFO -- #1012713062 Features 14 13 16 21 6 - -TrigSignatureMoniMT INFO HLT_mu6_msonly_L1MU6 #3895421032 -TrigSignatureMoniMT INFO -- #3895421032 Events 10 10 10 0 10 - - - 10 -TrigSignatureMoniMT INFO -- #3895421032 Features 14 0 17 - - - -TrigSignatureMoniMT INFO HLT_mu6_mu4_L12MU4 #1713982776 -TrigSignatureMoniMT INFO -- #1713982776 Events 4 4 4 4 4 4 - - 4 -TrigSignatureMoniMT INFO -- #1713982776 Features 8 8 12 18 - - -TrigSignatureMoniMT INFO HLT_mu6_mu6noL1_L1MU6 #451489897 -TrigSignatureMoniMT INFO -- #451489897 Events 10 10 10 10 10 10 5 4 4 -TrigSignatureMoniMT INFO -- #451489897 Features 14 13 16 21 8 7 -TrigSignatureMoniMT INFO HLT_mu6fast_L1MU6 #3518031697 -TrigSignatureMoniMT INFO -- #3518031697 Events 10 10 10 - - - - - 10 -TrigSignatureMoniMT INFO -- #3518031697 Features 14 - - - - - -TrigSignatureMoniMT INFO HLT_mu80_L1MU20 #387900377 -TrigSignatureMoniMT INFO -- #387900377 Events 8 8 8 5 0 0 - - 0 -TrigSignatureMoniMT INFO -- #387900377 Features 10 6 0 0 - - -TrigSignatureMoniMT INFO HLT_mu80_msonly_3layersEC_L1MU20 #761101109 -TrigSignatureMoniMT INFO -- #761101109 Events 8 8 8 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #761101109 Features 10 0 0 - - - -TrigSignatureMoniMT INFO HLT_mu8_L1MU6 #1467711434 -TrigSignatureMoniMT INFO -- #1467711434 Events 10 10 10 10 10 10 - - 10 -TrigSignatureMoniMT INFO -- #1467711434 Features 14 13 15 19 - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM10VH #314199913 -TrigSignatureMoniMT INFO -- #314199913 Events 11 11 - - - - - - 11 -TrigSignatureMoniMT INFO -- #314199913 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM12 #3885916609 -TrigSignatureMoniMT INFO -- #3885916609 Events 16 16 - - - - - - 16 -TrigSignatureMoniMT INFO -- #3885916609 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM15 #480733925 -TrigSignatureMoniMT INFO -- #480733925 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #480733925 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM15VH #2374865899 -TrigSignatureMoniMT INFO -- #2374865899 Events 8 8 - - - - - - 8 -TrigSignatureMoniMT INFO -- #2374865899 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM20VH #3719542824 -TrigSignatureMoniMT INFO -- #3719542824 Events 7 7 - - - - - - 7 -TrigSignatureMoniMT INFO -- #3719542824 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM22VHI #1723589313 -TrigSignatureMoniMT INFO -- #1723589313 Events 6 6 - - - - - - 6 -TrigSignatureMoniMT INFO -- #1723589313 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM3 #4169267792 -TrigSignatureMoniMT INFO -- #4169267792 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #4169267792 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM7 #3226970354 -TrigSignatureMoniMT INFO -- #3226970354 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #3226970354 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM8VH #4065285611 -TrigSignatureMoniMT INFO -- #4065285611 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #4065285611 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J100 #1026959128 -TrigSignatureMoniMT INFO -- #1026959128 Events 3 3 - - - - - - 3 -TrigSignatureMoniMT INFO -- #1026959128 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J12 #2640820608 -TrigSignatureMoniMT INFO -- #2640820608 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #2640820608 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J120 #2116228652 -TrigSignatureMoniMT INFO -- #2116228652 Events 1 1 - - - - - - 1 -TrigSignatureMoniMT INFO -- #2116228652 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J15 #1976430774 -TrigSignatureMoniMT INFO -- #1976430774 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #1976430774 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J20 #2241112369 -TrigSignatureMoniMT INFO -- #2241112369 Events 19 19 - - - - - - 19 -TrigSignatureMoniMT INFO -- #2241112369 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J25 #39428635 -TrigSignatureMoniMT INFO -- #39428635 Events 17 17 - - - - - - 17 -TrigSignatureMoniMT INFO -- #39428635 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J30 #3523994129 -TrigSignatureMoniMT INFO -- #3523994129 Events 17 17 - - - - - - 17 -TrigSignatureMoniMT INFO -- #3523994129 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J40 #1497591431 -TrigSignatureMoniMT INFO -- #1497591431 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #1497591431 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J400 #2494874701 -TrigSignatureMoniMT INFO -- #2494874701 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2494874701 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J50 #3346352675 -TrigSignatureMoniMT INFO -- #3346352675 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #3346352675 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J75 #1651897827 -TrigSignatureMoniMT INFO -- #1651897827 Events 6 6 - - - - - - 6 -TrigSignatureMoniMT INFO -- #1651897827 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J85 #166231461 -TrigSignatureMoniMT INFO -- #166231461 Events 5 5 - - - - - - 5 -TrigSignatureMoniMT INFO -- #166231461 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1RD0_EMPTY #914660695 -TrigSignatureMoniMT INFO -- #914660695 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #914660695 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1RD0_FILLED #211699639 -TrigSignatureMoniMT INFO -- #211699639 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #211699639 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU12 #4248050338 -TrigSignatureMoniMT INFO -- #4248050338 Events 18 18 - - - - - - 18 -TrigSignatureMoniMT INFO -- #4248050338 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU12IM #357557968 -TrigSignatureMoniMT INFO -- #357557968 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #357557968 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU20 #3602376876 -TrigSignatureMoniMT INFO -- #3602376876 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #3602376876 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU20IM #1931583332 -TrigSignatureMoniMT INFO -- #1931583332 Events 10 10 - - - - - - 10 -TrigSignatureMoniMT INFO -- #1931583332 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU30 #1944789678 -TrigSignatureMoniMT INFO -- #1944789678 Events 13 13 - - - - - - 13 -TrigSignatureMoniMT INFO -- #1944789678 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU40 #1394621652 -TrigSignatureMoniMT INFO -- #1394621652 Events 7 7 - - - - - - 7 -TrigSignatureMoniMT INFO -- #1394621652 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU60 #3332424451 -TrigSignatureMoniMT INFO -- #3332424451 Events 5 5 - - - - - - 5 -TrigSignatureMoniMT INFO -- #3332424451 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU8 #3165115874 -TrigSignatureMoniMT INFO -- #3165115874 Events 19 19 - - - - - - 19 -TrigSignatureMoniMT INFO -- #3165115874 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE10 #1583053368 -TrigSignatureMoniMT INFO -- #1583053368 Events 19 19 - - - - - - 19 -TrigSignatureMoniMT INFO -- #1583053368 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE30 #2047368922 -TrigSignatureMoniMT INFO -- #2047368922 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #2047368922 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE300 #1315853555 -TrigSignatureMoniMT INFO -- #1315853555 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #1315853555 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE35 #2313039014 -TrigSignatureMoniMT INFO -- #2313039014 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #2313039014 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE40 #4293469116 -TrigSignatureMoniMT INFO -- #4293469116 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #4293469116 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE45 #2365048177 -TrigSignatureMoniMT INFO -- #2365048177 Events 13 13 - - - - - - 13 -TrigSignatureMoniMT INFO -- #2365048177 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE50 #1168752081 -TrigSignatureMoniMT INFO -- #1168752081 Events 10 10 - - - - - - 10 -TrigSignatureMoniMT INFO -- #1168752081 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE55 #268928384 -TrigSignatureMoniMT INFO -- #268928384 Events 8 8 - - - - - - 8 -TrigSignatureMoniMT INFO -- #268928384 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE60 #4154240531 -TrigSignatureMoniMT INFO -- #4154240531 Events 8 8 - - - - - - 8 -TrigSignatureMoniMT INFO -- #4154240531 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE70 #3765216228 -TrigSignatureMoniMT INFO -- #3765216228 Events 4 4 - - - - - - 4 -TrigSignatureMoniMT INFO -- #3765216228 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE80 #2742079961 -TrigSignatureMoniMT INFO -- #2742079961 Events 3 3 - - - - - - 3 -TrigSignatureMoniMT INFO -- #2742079961 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM3_EMPTY #2458124284 -TrigSignatureMoniMT INFO -- #2458124284 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2458124284 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM7_EMPTY #299938202 -TrigSignatureMoniMT INFO -- #299938202 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #299938202 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J12_EMPTY #3144024902 -TrigSignatureMoniMT INFO -- #3144024902 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3144024902 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J12_FIRSTEMPTY #3840098930 -TrigSignatureMoniMT INFO -- #3840098930 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3840098930 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_31ETA49_EMPTY #4143623058 -TrigSignatureMoniMT INFO -- #4143623058 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #4143623058 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_EMPTY #2991490897 -TrigSignatureMoniMT INFO -- #2991490897 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2991490897 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY #2214697960 -TrigSignatureMoniMT INFO -- #2214697960 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2214697960 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1RD1_BGRP10 #48519027 -TrigSignatureMoniMT INFO -- #48519027 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #48519027 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1RD1_EMPTY #3925252528 -TrigSignatureMoniMT INFO -- #3925252528 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3925252528 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_EMPTY #56818284 -TrigSignatureMoniMT INFO -- #56818284 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #56818284 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_FILLED #1198298874 -TrigSignatureMoniMT INFO -- #1198298874 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #1198298874 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_UNPAIRED_ISO #2536676873 -TrigSignatureMoniMT INFO -- #2536676873 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2536676873 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_mb_L1RD2_EMPTY #3788962163 -TrigSignatureMoniMT INFO -- #3788962163 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3788962163 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_zb_L1ZB #1289992951 -TrigSignatureMoniMT INFO -- #1289992951 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #1289992951 Features - - - - - - -TrigSignatureMoniMT INFO HLT_sct_noise_SCTPEB_L1RD0_EMPTY #3024203296 -TrigSignatureMoniMT INFO -- #3024203296 Events 0 0 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3024203296 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU100 #2342716369 -TrigSignatureMoniMT INFO -- #2342716369 Events 0 0 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #2342716369 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU12 #372992233 -TrigSignatureMoniMT INFO -- #372992233 Events 18 18 18 18 - - - - 18 -TrigSignatureMoniMT INFO -- #372992233 Features 42 42 - - - - -TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU60 #1376650121 -TrigSignatureMoniMT INFO -- #1376650121 Events 5 5 5 5 - - - - 5 -TrigSignatureMoniMT INFO -- #1376650121 Features 6 6 - - - - -TrigSignatureMoniMT INFO HLT_tau160_idperf_track_L1TAU100 #714660857 -TrigSignatureMoniMT INFO -- #714660857 Events 0 0 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #714660857 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_tau160_idperf_tracktwoMVA_L1TAU100 #2725693236 -TrigSignatureMoniMT INFO -- #2725693236 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #2725693236 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau160_idperf_tracktwo_L1TAU100 #886074432 -TrigSignatureMoniMT INFO -- #886074432 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #886074432 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100 #1747754287 -TrigSignatureMoniMT INFO -- #1747754287 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1747754287 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau160_perf_tracktwoMVA_L1TAU100 #2334140248 -TrigSignatureMoniMT INFO -- #2334140248 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #2334140248 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau160_perf_tracktwo_L1TAU100 #1799096347 -TrigSignatureMoniMT INFO -- #1799096347 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1799096347 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_idperf_track_L1TAU12IM #554271976 -TrigSignatureMoniMT INFO -- #554271976 Events 14 14 14 14 - - - - 14 -TrigSignatureMoniMT INFO -- #554271976 Features 24 24 - - - - -TrigSignatureMoniMT INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM #988149859 -TrigSignatureMoniMT INFO -- #988149859 Events 14 14 14 13 13 - - - 13 -TrigSignatureMoniMT INFO -- #988149859 Features 24 17 17 - - - -TrigSignatureMoniMT INFO HLT_tau25_idperf_tracktwo_L1TAU12IM #3346942453 -TrigSignatureMoniMT INFO -- #3346942453 Events 14 14 14 13 13 - - - 13 -TrigSignatureMoniMT INFO -- #3346942453 Features 24 17 17 - - - -TrigSignatureMoniMT INFO HLT_tau25_looseRNN_tracktwoMVA_L1TAU12IM #169452969 -TrigSignatureMoniMT INFO -- #169452969 Events 14 14 12 11 10 - - - 10 -TrigSignatureMoniMT INFO -- #169452969 Features 22 15 13 - - - -TrigSignatureMoniMT INFO HLT_tau25_looseRNN_tracktwo_L1TAU12IM #2490017573 -TrigSignatureMoniMT INFO -- #2490017573 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #2490017573 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwoEF_L1TAU12IM #506456080 -TrigSignatureMoniMT INFO -- #506456080 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #506456080 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwoMVA_L1TAU12IM #4055280067 -TrigSignatureMoniMT INFO -- #4055280067 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #4055280067 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwo_L1TAU12IM #1433975745 -TrigSignatureMoniMT INFO -- #1433975745 Events 14 14 12 11 7 - - - 7 -TrigSignatureMoniMT INFO -- #1433975745 Features 22 15 7 - - - -TrigSignatureMoniMT INFO HLT_tau25_mediumRNN_tracktwoMVA_L1TAU12IM #2222894847 -TrigSignatureMoniMT INFO -- #2222894847 Events 14 14 12 11 7 - - - 7 -TrigSignatureMoniMT INFO -- #2222894847 Features 22 15 9 - - - -TrigSignatureMoniMT INFO HLT_tau25_mediumRNN_tracktwo_L1TAU12IM #698603885 -TrigSignatureMoniMT INFO -- #698603885 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #698603885 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_perf_tracktwoMVA_L1TAU12IM #112814536 -TrigSignatureMoniMT INFO -- #112814536 Events 14 14 14 13 13 - - - 13 -TrigSignatureMoniMT INFO -- #112814536 Features 24 17 17 - - - -TrigSignatureMoniMT INFO HLT_tau25_perf_tracktwo_L1TAU12IM #1129072492 -TrigSignatureMoniMT INFO -- #1129072492 Events 14 14 14 13 13 - - - 13 -TrigSignatureMoniMT INFO -- #1129072492 Features 24 17 17 - - - -TrigSignatureMoniMT INFO HLT_tau25_tightRNN_tracktwoMVA_L1TAU12IM #2472860683 -TrigSignatureMoniMT INFO -- #2472860683 Events 14 14 12 11 5 - - - 5 -TrigSignatureMoniMT INFO -- #2472860683 Features 22 15 6 - - - -TrigSignatureMoniMT INFO HLT_tau25_tightRNN_tracktwo_L1TAU12IM #2537544560 -TrigSignatureMoniMT INFO -- #2537544560 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #2537544560 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_verylooseRNN_tracktwoMVA_L1TAU12IM #2992830434 -TrigSignatureMoniMT INFO -- #2992830434 Events 14 14 12 11 10 - - - 10 -TrigSignatureMoniMT INFO -- #2992830434 Features 22 15 14 - - - -TrigSignatureMoniMT INFO HLT_tau25_verylooseRNN_tracktwo_L1TAU12IM #1275052132 -TrigSignatureMoniMT INFO -- #1275052132 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #1275052132 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM #2456480859 -TrigSignatureMoniMT INFO -- #2456480859 Events 14 14 11 10 6 - - - 6 -TrigSignatureMoniMT INFO -- #2456480859 Features 20 14 8 - - - -TrigSignatureMoniMT INFO HLT_tilecalib_laser_TilePEB_L1CALREQ2 #1063154655 -TrigSignatureMoniMT INFO -- #1063154655 Events 0 0 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #1063154655 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_timeburner_L1All #819160059 -TrigSignatureMoniMT INFO -- #819160059 Events 20 20 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #819160059 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_xe100_mht_L1XE50 #532175988 -TrigSignatureMoniMT INFO -- #532175988 Events 10 10 6 - - - - - 6 -TrigSignatureMoniMT INFO -- #532175988 Features 6 - - - - - -TrigSignatureMoniMT INFO HLT_xe100_pfsum_L1XE50 #1890237897 -TrigSignatureMoniMT INFO -- #1890237897 Events 10 10 2 - - - - - 2 -TrigSignatureMoniMT INFO -- #1890237897 Features 2 - - - - - -TrigSignatureMoniMT INFO HLT_xe100_tcpufit_L1XE50 #2803198799 -TrigSignatureMoniMT INFO -- #2803198799 Events 10 10 6 - - - - - 6 -TrigSignatureMoniMT INFO -- #2803198799 Features 6 - - - - - -TrigSignatureMoniMT INFO HLT_xe100_trkmht_L1XE50 #1055916731 -TrigSignatureMoniMT INFO -- #1055916731 Events 10 10 4 - - - - - 4 -TrigSignatureMoniMT INFO -- #1055916731 Features 4 - - - - - -TrigSignatureMoniMT INFO HLT_xe110_mht_L1XE50 #3030733259 -TrigSignatureMoniMT INFO -- #3030733259 Events 10 10 6 - - - - - 6 -TrigSignatureMoniMT INFO -- #3030733259 Features 6 - - - - - -TrigSignatureMoniMT INFO HLT_xe110_tc_em_L1XE50 #607113828 -TrigSignatureMoniMT INFO -- #607113828 Events 10 10 5 - - - - - 5 -TrigSignatureMoniMT INFO -- #607113828 Features 5 - - - - - -TrigSignatureMoniMT INFO HLT_xe110_tcpufit_L1XE50 #892853397 -TrigSignatureMoniMT INFO -- #892853397 Events 10 10 6 - - - - - 6 -TrigSignatureMoniMT INFO -- #892853397 Features 6 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_cell_L1XE10 #1649696554 -TrigSignatureMoniMT INFO -- #1649696554 Events 19 19 17 - - - - - 17 -TrigSignatureMoniMT INFO -- #1649696554 Features 17 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_cell_xe30_tcpufit_L1XE10 #3768353779 -TrigSignatureMoniMT INFO -- #3768353779 Events 19 19 14 - - - - - 14 -TrigSignatureMoniMT INFO -- #3768353779 Features 14 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_mht_L1XE10 #3626903018 -TrigSignatureMoniMT INFO -- #3626903018 Events 19 19 19 - - - - - 19 -TrigSignatureMoniMT INFO -- #3626903018 Features 19 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_pfsum_L1XE10 #998713382 -TrigSignatureMoniMT INFO -- #998713382 Events 19 19 14 - - - - - 14 -TrigSignatureMoniMT INFO -- #998713382 Features 14 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_tcpufit_L1XE10 #1583719916 -TrigSignatureMoniMT INFO -- #1583719916 Events 19 19 14 - - - - - 14 -TrigSignatureMoniMT INFO -- #1583719916 Features 14 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_trkmht_L1XE10 #2468872349 -TrigSignatureMoniMT INFO -- #2468872349 Events 19 19 17 - - - - - 17 -TrigSignatureMoniMT INFO -- #2468872349 Features 17 - - - - - -TrigSignatureMoniMT INFO HLT_xe65_cell_L1XE50 #531141817 -TrigSignatureMoniMT INFO -- #531141817 Events 10 10 7 - - - - - 7 -TrigSignatureMoniMT INFO -- #531141817 Features 7 - - - - - -TrigSignatureMoniMT INFO HLT_xe65_cell_xe110_tcpufit_L1XE50 #115518400 -TrigSignatureMoniMT INFO -- #115518400 Events 10 10 5 - - - - - 5 -TrigSignatureMoniMT INFO -- #115518400 Features 5 - - - - - +TrigSignatureMoniMT 0 INFO The L1 seed to multi-item-seeded chain HLT_noalg_L1Standby could not be completely resolved. This is currently OK. Exception from menu access: L1Item L1_2EM13VH does not exist in the menu +TrigSignatureMoniMT 0 INFO The L1 seed to multi-item-seeded chain HLT_noalg_L1Calo could not be completely resolved. This is currently OK. Exception from menu access: L1Item L1_2EM13VH does not exist in the menu +TrigSignatureMoniMT INFO HLT_2e17_etcut_L12EM15VH #3136730292 +TrigSignatureMoniMT INFO -- #3136730292 Events 2 2 2 2 2 - - - 2 +TrigSignatureMoniMT INFO -- #3136730292 Features 12 298 14 - - - +TrigSignatureMoniMT INFO HLT_2e17_lhvloose_L12EM15VH #2280638160 +TrigSignatureMoniMT INFO -- #2280638160 Events 2 2 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #2280638160 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2e17_lhvloose_L12EM3 #1767768251 +TrigSignatureMoniMT INFO -- #1767768251 Events 20 20 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1767768251 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2e3_etcut_L12EM3 #2613484113 +TrigSignatureMoniMT INFO -- #2613484113 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #2613484113 Features 342 3696 780 - - - +TrigSignatureMoniMT INFO HLT_2g20_tight_L12EM15VH #3837353071 +TrigSignatureMoniMT INFO -- #3837353071 Events 2 2 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #3837353071 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2g35_etcut_L12EM20VH #58053304 +TrigSignatureMoniMT INFO -- #58053304 Events 2 2 1 1 0 - - - 0 +TrigSignatureMoniMT INFO -- #58053304 Features 4 4 0 - - - +TrigSignatureMoniMT INFO HLT_2g35_medium_L12EM20VH #3965466087 +TrigSignatureMoniMT INFO -- #3965466087 Events 2 2 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #3965466087 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J100 #1295975955 +TrigSignatureMoniMT INFO -- #1295975955 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #1295975955 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_2j60_L1J15 #927735533 +TrigSignatureMoniMT INFO -- #927735533 Events 20 20 10 - - - - - 10 +TrigSignatureMoniMT INFO -- #927735533 Features 28 - - - - - +TrigSignatureMoniMT INFO HLT_2mu10_bJpsimumu_L12MU10 #3498558358 +TrigSignatureMoniMT INFO -- #3498558358 Events 3 3 3 3 3 2 - - 0 +TrigSignatureMoniMT INFO -- #3498558358 Features 12 12 16 4 - - +TrigSignatureMoniMT INFO HLT_2mu10_bUpsimumu_L12MU10 #234102568 +TrigSignatureMoniMT INFO -- #234102568 Events 3 3 3 3 3 2 - - 0 +TrigSignatureMoniMT INFO -- #234102568 Features 12 12 16 4 - - +TrigSignatureMoniMT INFO HLT_2mu14_L12MU10 #2619091790 +TrigSignatureMoniMT INFO -- #2619091790 Events 3 3 3 1 1 1 - - 1 +TrigSignatureMoniMT INFO -- #2619091790 Features 12 4 4 4 - - +TrigSignatureMoniMT INFO HLT_2mu15_L12MU10 #557204938 +TrigSignatureMoniMT INFO -- #557204938 Events 3 3 3 1 1 1 - - 1 +TrigSignatureMoniMT INFO -- #557204938 Features 12 4 4 4 - - +TrigSignatureMoniMT INFO HLT_2mu4_bDimu_L12MU4 #1730084172 +TrigSignatureMoniMT INFO -- #1730084172 Events 4 4 4 4 4 4 - - 1 +TrigSignatureMoniMT INFO -- #1730084172 Features 16 16 24 19 - - +TrigSignatureMoniMT INFO HLT_2mu4_bJpsimumu_L12MU4 #4276347155 +TrigSignatureMoniMT INFO -- #4276347155 Events 4 4 4 4 4 4 - - 1 +TrigSignatureMoniMT INFO -- #4276347155 Features 16 16 24 19 - - +TrigSignatureMoniMT INFO HLT_2mu4_bUpsimumu_L12MU4 #4008168535 +TrigSignatureMoniMT INFO -- #4008168535 Events 4 4 4 4 4 4 - - 0 +TrigSignatureMoniMT INFO -- #4008168535 Features 16 16 24 18 - - +TrigSignatureMoniMT INFO HLT_2mu4_muonqual_L12MU4 #1584776935 +TrigSignatureMoniMT INFO -- #1584776935 Events 4 4 4 4 4 4 - - 4 +TrigSignatureMoniMT INFO -- #1584776935 Features 16 16 24 36 - - +TrigSignatureMoniMT INFO HLT_2mu6Comb_L12MU6 #2046267508 +TrigSignatureMoniMT INFO -- #2046267508 Events 4 4 4 3 - - - - 3 +TrigSignatureMoniMT INFO -- #2046267508 Features 16 12 - - - - +TrigSignatureMoniMT INFO HLT_2mu6_10invm70_L1MU6 #1316992871 +TrigSignatureMoniMT INFO -- #1316992871 Events 10 10 4 3 3 3 - - 3 +TrigSignatureMoniMT INFO -- #1316992871 Features 16 12 18 28 - - +TrigSignatureMoniMT INFO HLT_2mu6_Dr_L12MU4 #3304584056 +TrigSignatureMoniMT INFO -- #3304584056 Events 4 4 4 3 - - - - 3 +TrigSignatureMoniMT INFO -- #3304584056 Features 16 12 - - - - +TrigSignatureMoniMT INFO HLT_2mu6_L12MU6 #1747073535 +TrigSignatureMoniMT INFO -- #1747073535 Events 4 4 4 3 3 3 - - 3 +TrigSignatureMoniMT INFO -- #1747073535 Features 16 12 18 28 - - +TrigSignatureMoniMT INFO HLT_2mu6_muonqual_L12MU6 #2398136098 +TrigSignatureMoniMT INFO -- #2398136098 Events 4 4 4 3 3 3 - - 3 +TrigSignatureMoniMT INFO -- #2398136098 Features 16 12 18 28 - - +TrigSignatureMoniMT INFO HLT_3j200_L1J100 #2199422919 +TrigSignatureMoniMT INFO -- #2199422919 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #2199422919 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_3j200_L1J20 #493765146 +TrigSignatureMoniMT INFO -- #493765146 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #493765146 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_3mu6_L13MU6 #1832399408 +TrigSignatureMoniMT INFO -- #1832399408 Events 0 0 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1832399408 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_3mu6_msonly_L13MU6 #1199773318 +TrigSignatureMoniMT INFO -- #1199773318 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1199773318 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_3mu8_msonly_L13MU6 #424835335 +TrigSignatureMoniMT INFO -- #424835335 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #424835335 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_4mu4_L14MU4 #1834383636 +TrigSignatureMoniMT INFO -- #1834383636 Events 0 0 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1834383636 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_5j70_0eta240_L14J20 #1175391812 +TrigSignatureMoniMT INFO -- #1175391812 Events 7 7 1 - - - - - 1 +TrigSignatureMoniMT INFO -- #1175391812 Features 5 - - - - - +TrigSignatureMoniMT INFO HLT_beamspot_allTE_trkfast_BeamSpotPEB_L1J15 #3989372080 +TrigSignatureMoniMT INFO -- #3989372080 Events 20 20 20 20 - - - - 20 +TrigSignatureMoniMT INFO -- #3989372080 Features 20 20 - - - - +TrigSignatureMoniMT INFO HLT_beamspot_trkFS_trkfast_BeamSpotPEB_L1J15 #628534730 +TrigSignatureMoniMT INFO -- #628534730 Events 20 20 20 20 - - - - 20 +TrigSignatureMoniMT INFO -- #628534730 Features 20 20 - - - - +TrigSignatureMoniMT INFO HLT_costmonitor_CostMonDS_L1All #843341480 +TrigSignatureMoniMT INFO -- #843341480 Events 20 20 20 - - - - - 20 +TrigSignatureMoniMT INFO -- #843341480 Features 20 - - - - - +TrigSignatureMoniMT INFO HLT_e140_lhloose_L1EM22VHI #3471067710 +TrigSignatureMoniMT INFO -- #3471067710 Events 6 6 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #3471067710 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_e140_lhloose_nod0_L1EM22VHI #4128870680 +TrigSignatureMoniMT INFO -- #4128870680 Events 6 6 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #4128870680 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_e17_lhloose_mu14_L1EM15VH_MU10 #899946230 +TrigSignatureMoniMT INFO -- #899946230 Events 3 3 2 2 2 2 - - 2 +TrigSignatureMoniMT INFO -- #899946230 Features 2 46 4 2 - - +TrigSignatureMoniMT INFO HLT_e17_lhvloose_nod0_L1EM15VH #140779220 +TrigSignatureMoniMT INFO -- #140779220 Events 8 8 6 6 6 5 - - 5 +TrigSignatureMoniMT INFO -- #140779220 Features 6 79 10 5 - - +TrigSignatureMoniMT INFO HLT_e26_etcut_L1EM22VHI #1703681121 +TrigSignatureMoniMT INFO -- #1703681121 Events 6 6 6 6 6 - - - 6 +TrigSignatureMoniMT INFO -- #1703681121 Features 7 134 7 - - - +TrigSignatureMoniMT INFO HLT_e26_lhtight_L1EM22VHI #1995263521 +TrigSignatureMoniMT INFO -- #1995263521 Events 6 6 5 5 5 3 - - 3 +TrigSignatureMoniMT INFO -- #1995263521 Features 5 65 8 3 - - +TrigSignatureMoniMT INFO HLT_e26_lhtight_nod0_L1EM22VHI #939763520 +TrigSignatureMoniMT INFO -- #939763520 Events 6 6 5 5 5 3 - - 3 +TrigSignatureMoniMT INFO -- #939763520 Features 5 65 8 3 - - +TrigSignatureMoniMT INFO HLT_e26_lhtight_nod0_L1EM24VHI #4227411116 +TrigSignatureMoniMT INFO -- #4227411116 Events 6 6 5 5 5 3 - - 3 +TrigSignatureMoniMT INFO -- #4227411116 Features 5 65 8 3 - - +TrigSignatureMoniMT INFO HLT_e300_etcut_L1EM22VHI #2128128255 +TrigSignatureMoniMT INFO -- #2128128255 Events 6 6 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #2128128255 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_e3_etcut1step_mu26_L1EM8I_MU10 #2209076666 +TrigSignatureMoniMT INFO -- #2209076666 Events 5 5 3 1 1 1 - - 1 +TrigSignatureMoniMT INFO -- #2209076666 Features 3 1 1 1 - - +TrigSignatureMoniMT INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU10 #2086577378 +TrigSignatureMoniMT INFO -- #2086577378 Events 5 5 3 - - - - - 3 +TrigSignatureMoniMT INFO -- #2086577378 Features 3 - - - - - +TrigSignatureMoniMT INFO HLT_e3_etcut_L1EM3 #683953566 +TrigSignatureMoniMT INFO -- #683953566 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #683953566 Features 171 1848 390 - - - +TrigSignatureMoniMT INFO HLT_e5_etcut_L1EM3 #324908483 +TrigSignatureMoniMT INFO -- #324908483 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #324908483 Features 137 1657 190 - - - +TrigSignatureMoniMT INFO HLT_e5_lhloose_noringer_L1EM3 #1053337356 +TrigSignatureMoniMT INFO -- #1053337356 Events 20 20 17 17 17 4 - - 4 +TrigSignatureMoniMT INFO -- #1053337356 Features 56 656 116 5 - - +TrigSignatureMoniMT INFO HLT_e5_lhmedium_noringer_L1EM3 #176627878 +TrigSignatureMoniMT INFO -- #176627878 Events 20 20 16 16 16 4 - - 4 +TrigSignatureMoniMT INFO -- #176627878 Features 48 534 93 5 - - +TrigSignatureMoniMT INFO HLT_e5_lhtight_noringer_L1EM3 #2758326765 +TrigSignatureMoniMT INFO -- #2758326765 Events 20 20 16 16 16 3 - - 3 +TrigSignatureMoniMT INFO -- #2758326765 Features 45 516 84 4 - - +TrigSignatureMoniMT INFO HLT_e5_lhtight_noringer_nod0_L1EM3 #1690619419 +TrigSignatureMoniMT INFO -- #1690619419 Events 20 20 16 16 16 3 - - 3 +TrigSignatureMoniMT INFO -- #1690619419 Features 45 516 84 4 - - +TrigSignatureMoniMT INFO HLT_e60_lhmedium_L1EM22VHI #298591874 +TrigSignatureMoniMT INFO -- #298591874 Events 6 6 2 2 2 2 - - 2 +TrigSignatureMoniMT INFO -- #298591874 Features 2 34 4 2 - - +TrigSignatureMoniMT INFO HLT_e60_lhmedium_nod0_L1EM22VHI #4115486024 +TrigSignatureMoniMT INFO -- #4115486024 Events 6 6 2 2 2 2 - - 2 +TrigSignatureMoniMT INFO -- #4115486024 Features 2 34 4 2 - - +TrigSignatureMoniMT INFO HLT_e7_etcut_L1EM3 #1959043579 +TrigSignatureMoniMT INFO -- #1959043579 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #1959043579 Features 89 1136 112 - - - +TrigSignatureMoniMT INFO HLT_e7_lhmedium_mu24_L1MU20 #2970063918 +TrigSignatureMoniMT INFO -- #2970063918 Events 8 8 7 5 5 1 - - 1 +TrigSignatureMoniMT INFO -- #2970063918 Features 9 72 14 1 - - +TrigSignatureMoniMT INFO HLT_g140_etcut_L1EM22VHI #3879926061 +TrigSignatureMoniMT INFO -- #3879926061 Events 6 6 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #3879926061 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_g140_etcut_L1EM24VHI #1045486446 +TrigSignatureMoniMT INFO -- #1045486446 Events 6 6 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1045486446 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_g140_loose_L1EM22VHI #1776910226 +TrigSignatureMoniMT INFO -- #1776910226 Events 6 6 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1776910226 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_g20_etcut_LArPEB_L1EM15 #2706532790 +TrigSignatureMoniMT INFO -- #2706532790 Events 14 14 14 14 12 12 - - 12 +TrigSignatureMoniMT INFO -- #2706532790 Features 24 24 22 20 - - +TrigSignatureMoniMT INFO HLT_g25_loose_L1EM15VH #531040386 +TrigSignatureMoniMT INFO -- #531040386 Events 8 8 7 7 7 6 - - 6 +TrigSignatureMoniMT INFO -- #531040386 Features 9 9 18 7 - - +TrigSignatureMoniMT INFO HLT_g25_medium_L1EM15VH #3776886359 +TrigSignatureMoniMT INFO -- #3776886359 Events 8 8 7 7 7 6 - - 6 +TrigSignatureMoniMT INFO -- #3776886359 Features 7 7 13 6 - - +TrigSignatureMoniMT INFO HLT_g25_medium_mu24_ivarmedium_L1MU20 #1007052793 +TrigSignatureMoniMT INFO -- #1007052793 Events 8 8 2 1 1 1 0 - 0 +TrigSignatureMoniMT INFO -- #1007052793 Features 2 1 3 1 0 - +TrigSignatureMoniMT INFO HLT_g25_tight_L1EM15VH #3691147775 +TrigSignatureMoniMT INFO -- #3691147775 Events 8 8 7 7 7 5 - - 5 +TrigSignatureMoniMT INFO -- #3691147775 Features 7 7 13 5 - - +TrigSignatureMoniMT INFO HLT_g35_medium_g25_medium_L12EM20VH #1158879722 +TrigSignatureMoniMT INFO -- #1158879722 Events 2 2 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1158879722 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_g5_etcut_L1EM3 #471243435 +TrigSignatureMoniMT INFO -- #471243435 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #471243435 Features 137 137 190 - - - +TrigSignatureMoniMT INFO HLT_g5_etcut_LArPEB_L1EM3 #3486231698 +TrigSignatureMoniMT INFO -- #3486231698 Events 20 20 20 20 20 20 - - 20 +TrigSignatureMoniMT INFO -- #3486231698 Features 137 137 190 118 - - +TrigSignatureMoniMT INFO HLT_g5_loose_L1EM3 #3230088967 +TrigSignatureMoniMT INFO -- #3230088967 Events 20 20 17 17 17 9 - - 9 +TrigSignatureMoniMT INFO -- #3230088967 Features 56 56 116 12 - - +TrigSignatureMoniMT INFO HLT_g5_medium_L1EM3 #385248610 +TrigSignatureMoniMT INFO -- #385248610 Events 20 20 16 16 16 9 - - 9 +TrigSignatureMoniMT INFO -- #385248610 Features 48 48 93 12 - - +TrigSignatureMoniMT INFO HLT_g5_tight_L1EM3 #3280865118 +TrigSignatureMoniMT INFO -- #3280865118 Events 20 20 16 16 16 9 - - 9 +TrigSignatureMoniMT INFO -- #3280865118 Features 45 45 84 9 - - +TrigSignatureMoniMT INFO HLT_j0_perf_L1J12_EMPTY #1341875780 +TrigSignatureMoniMT INFO -- #1341875780 Events 0 0 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #1341875780 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 #4034799151 +TrigSignatureMoniMT INFO -- #4034799151 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #4034799151 Features 425 - - - - - +TrigSignatureMoniMT INFO HLT_j225_ftf_subjesgscIS_bmv2c1040_split_L1J100 #3992507557 +TrigSignatureMoniMT INFO -- #3992507557 Events 3 3 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #3992507557 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_j260_320eta490_L1J20 #3084792704 +TrigSignatureMoniMT INFO -- #3084792704 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3084792704 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j260_320eta490_L1J75_31ETA49 #3769257182 +TrigSignatureMoniMT INFO -- #3769257182 Events 2 2 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3769257182 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J100 #1211559599 +TrigSignatureMoniMT INFO -- #1211559599 Events 3 3 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #1211559599 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J100 #3706723666 +TrigSignatureMoniMT INFO -- #3706723666 Events 3 3 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #3706723666 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J100 #1837565816 +TrigSignatureMoniMT INFO -- #1837565816 Events 3 3 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #1837565816 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_j420_L1J100 #2659902019 +TrigSignatureMoniMT INFO -- #2659902019 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #2659902019 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j420_L1J20 #2205518067 +TrigSignatureMoniMT INFO -- #2205518067 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #2205518067 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j420_ftf_subjesgscIS_L1J20 #4179085188 +TrigSignatureMoniMT INFO -- #4179085188 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #4179085188 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j45_L1J15 #1364976160 +TrigSignatureMoniMT INFO -- #1364976160 Events 20 20 19 - - - - - 19 +TrigSignatureMoniMT INFO -- #1364976160 Features 50 - - - - - +TrigSignatureMoniMT INFO HLT_j45_cssktc_nojcalib_L1J20 #3295122398 +TrigSignatureMoniMT INFO -- #3295122398 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #3295122398 Features 27 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_L1J15 #868405538 +TrigSignatureMoniMT INFO -- #868405538 Events 20 20 19 - - - - - 19 +TrigSignatureMoniMT INFO -- #868405538 Features 50 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_csskpf_nojcalib_L1J20 #3533281867 +TrigSignatureMoniMT INFO -- #3533281867 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #3533281867 Features 25 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_pf_L1J20 #1335156103 +TrigSignatureMoniMT INFO -- #1335156103 Events 19 19 16 - - - - - 16 +TrigSignatureMoniMT INFO -- #1335156103 Features 31 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_pf_nojcalib_L1J20 #3658890913 +TrigSignatureMoniMT INFO -- #3658890913 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #3658890913 Features 29 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_011jvt_L1J15 #2857031468 +TrigSignatureMoniMT INFO -- #2857031468 Events 20 20 12 - - - - - 12 +TrigSignatureMoniMT INFO -- #2857031468 Features 20 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_015jvt_L1J15 #2938374624 +TrigSignatureMoniMT INFO -- #2938374624 Events 20 20 12 - - - - - 12 +TrigSignatureMoniMT INFO -- #2938374624 Features 19 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_059jvt_L1J15 #1593009344 +TrigSignatureMoniMT INFO -- #1593009344 Events 20 20 12 - - - - - 12 +TrigSignatureMoniMT INFO -- #1593009344 Features 19 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_L1J15 #3341539267 +TrigSignatureMoniMT INFO -- #3341539267 Events 20 20 19 - - - - - 19 +TrigSignatureMoniMT INFO -- #3341539267 Features 51 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J20 #991419339 +TrigSignatureMoniMT INFO -- #991419339 Events 19 19 19 4 - - - - 4 +TrigSignatureMoniMT INFO -- #991419339 Features 50 8 - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20 #1961149049 +TrigSignatureMoniMT INFO -- #1961149049 Events 19 19 19 19 - - - - 19 +TrigSignatureMoniMT INFO -- #1961149049 Features 50 50 - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_pf_L1J20 #761060030 +TrigSignatureMoniMT INFO -- #761060030 Events 19 19 16 - - - - - 16 +TrigSignatureMoniMT INFO -- #761060030 Features 31 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_L1J15 #1509925407 +TrigSignatureMoniMT INFO -- #1509925407 Events 20 20 18 - - - - - 18 +TrigSignatureMoniMT INFO -- #1509925407 Features 44 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_pf_L1J20 #4012311417 +TrigSignatureMoniMT INFO -- #4012311417 Events 19 19 16 - - - - - 16 +TrigSignatureMoniMT INFO -- #4012311417 Features 31 - - - - - +TrigSignatureMoniMT INFO HLT_j45_nojcalib_L1J20 #2042444294 +TrigSignatureMoniMT INFO -- #2042444294 Events 19 19 17 - - - - - 17 +TrigSignatureMoniMT INFO -- #2042444294 Features 39 - - - - - +TrigSignatureMoniMT INFO HLT_j45_sktc_nojcalib_L1J20 #1542468090 +TrigSignatureMoniMT INFO -- #1542468090 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #1542468090 Features 26 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10_lcw_subjes_L1J100 #3327656707 +TrigSignatureMoniMT INFO -- #3327656707 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3327656707 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10_lcw_subjes_L1J20 #215408633 +TrigSignatureMoniMT INFO -- #215408633 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #215408633 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10r_L1J100 #1151767619 +TrigSignatureMoniMT INFO -- #1151767619 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #1151767619 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10r_L1J20 #3875082669 +TrigSignatureMoniMT INFO -- #3875082669 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3875082669 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J100 #2296827117 +TrigSignatureMoniMT INFO -- #2296827117 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #2296827117 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10t_lcw_jes_L1J100 #436385969 +TrigSignatureMoniMT INFO -- #436385969 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #436385969 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20 #3634067472 +TrigSignatureMoniMT INFO -- #3634067472 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3634067472 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j80_L1J15 #2440872308 +TrigSignatureMoniMT INFO -- #2440872308 Events 20 20 13 - - - - - 13 +TrigSignatureMoniMT INFO -- #2440872308 Features 23 - - - - - +TrigSignatureMoniMT INFO HLT_j80_j60_L1J15 #582699527 +TrigSignatureMoniMT INFO -- #582699527 Events 20 20 8 - - - - - 8 +TrigSignatureMoniMT INFO -- #582699527 Features 23 - - - - - +TrigSignatureMoniMT INFO HLT_j85_L1J20 #510475538 +TrigSignatureMoniMT INFO -- #510475538 Events 19 19 13 - - - - - 13 +TrigSignatureMoniMT INFO -- #510475538 Features 21 - - - - - +TrigSignatureMoniMT INFO HLT_j85_ftf_L1J20 #877042532 +TrigSignatureMoniMT INFO -- #877042532 Events 19 19 13 - - - - - 13 +TrigSignatureMoniMT INFO -- #877042532 Features 21 - - - - - +TrigSignatureMoniMT INFO HLT_j85_ftf_pf_L1J20 #1538535401 +TrigSignatureMoniMT INFO -- #1538535401 Events 19 19 8 - - - - - 8 +TrigSignatureMoniMT INFO -- #1538535401 Features 13 - - - - - +TrigSignatureMoniMT INFO HLT_mb_sptrk_L1RD0_FILLED #4097312640 +TrigSignatureMoniMT INFO -- #4097312640 Events 20 20 20 20 - - - - 20 +TrigSignatureMoniMT INFO -- #4097312640 Features 20 20 - - - - +TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU20 #997163309 +TrigSignatureMoniMT INFO -- #997163309 Events 8 8 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #997163309 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU4_EMPTY #782182242 +TrigSignatureMoniMT INFO -- #782182242 Events 0 0 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #782182242 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_mu10_lateMu_L1MU10 #48780310 +TrigSignatureMoniMT INFO -- #48780310 Events 10 10 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #48780310 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_mu11_mu6_bJpsimumu_L1MU11_2MU6 #2504965945 +TrigSignatureMoniMT INFO -- #2504965945 Events 4 4 4 0 3 0 - - 0 +TrigSignatureMoniMT INFO -- #2504965945 Features 8 0 6 0 - - +TrigSignatureMoniMT INFO HLT_mu11_mu6_bUpsimumu_L1MU11_2MU6 #1171632195 +TrigSignatureMoniMT INFO -- #1171632195 Events 4 4 4 0 3 0 - - 0 +TrigSignatureMoniMT INFO -- #1171632195 Features 8 0 6 0 - - +TrigSignatureMoniMT INFO HLT_mu14_L1MU10 #1696906927 +TrigSignatureMoniMT INFO -- #1696906927 Events 10 10 10 7 7 7 - - 7 +TrigSignatureMoniMT INFO -- #1696906927 Features 13 8 8 8 - - +TrigSignatureMoniMT INFO HLT_mu20_ivar_L1MU6 #2083734526 +TrigSignatureMoniMT INFO -- #2083734526 Events 10 10 10 5 5 - - - 5 +TrigSignatureMoniMT INFO -- #2083734526 Features 14 6 5 - - - +TrigSignatureMoniMT INFO HLT_mu24_L1MU20 #417425162 +TrigSignatureMoniMT INFO -- #417425162 Events 8 8 8 5 5 5 - - 5 +TrigSignatureMoniMT INFO -- #417425162 Features 10 6 6 6 - - +TrigSignatureMoniMT INFO HLT_mu24_idperf_L1MU20 #677658909 +TrigSignatureMoniMT INFO -- #677658909 Events 8 8 6 6 6 6 - - 6 +TrigSignatureMoniMT INFO -- #677658909 Features 7 7 7 7 - - +TrigSignatureMoniMT INFO HLT_mu26_L1MU20 #311138376 +TrigSignatureMoniMT INFO -- #311138376 Events 8 8 8 5 4 3 - - 3 +TrigSignatureMoniMT INFO -- #311138376 Features 10 6 5 4 - - +TrigSignatureMoniMT INFO HLT_mu26_ivarmedium_L1MU20 #3411723090 +TrigSignatureMoniMT INFO -- #3411723090 Events 8 8 8 5 4 3 2 - 2 +TrigSignatureMoniMT INFO -- #3411723090 Features 10 6 5 4 2 - +TrigSignatureMoniMT INFO HLT_mu28_ivarmedium_L1MU20 #1963262787 +TrigSignatureMoniMT INFO -- #1963262787 Events 8 8 8 5 4 3 2 - 2 +TrigSignatureMoniMT INFO -- #1963262787 Features 10 6 5 3 2 - +TrigSignatureMoniMT INFO HLT_mu35_ivarmedium_L1MU20 #597064890 +TrigSignatureMoniMT INFO -- #597064890 Events 8 8 8 5 3 2 1 - 1 +TrigSignatureMoniMT INFO -- #597064890 Features 10 6 4 2 1 - +TrigSignatureMoniMT INFO HLT_mu50_L1MU20 #3657158931 +TrigSignatureMoniMT INFO -- #3657158931 Events 8 8 8 5 1 1 - - 1 +TrigSignatureMoniMT INFO -- #3657158931 Features 10 6 1 1 - - +TrigSignatureMoniMT INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU20 #827327262 +TrigSignatureMoniMT INFO -- #827327262 Events 8 8 8 5 1 1 1 - 1 +TrigSignatureMoniMT INFO -- #827327262 Features 10 6 1 1 1 - +TrigSignatureMoniMT INFO HLT_mu60_0eta105_msonly_L1MU20 #1642591450 +TrigSignatureMoniMT INFO -- #1642591450 Events 8 8 1 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1642591450 Features 2 0 0 - - - +TrigSignatureMoniMT INFO HLT_mu6Comb_L1MU6 #996392590 +TrigSignatureMoniMT INFO -- #996392590 Events 10 10 10 10 - - - - 10 +TrigSignatureMoniMT INFO -- #996392590 Features 14 13 - - - - +TrigSignatureMoniMT INFO HLT_mu6_L1MU6 #2560542253 +TrigSignatureMoniMT INFO -- #2560542253 Events 10 10 10 10 10 10 - - 10 +TrigSignatureMoniMT INFO -- #2560542253 Features 14 13 16 21 - - +TrigSignatureMoniMT INFO HLT_mu6_idperf_L1MU6 #934918532 +TrigSignatureMoniMT INFO -- #934918532 Events 10 10 10 10 10 10 - - 10 +TrigSignatureMoniMT INFO -- #934918532 Features 14 14 17 27 - - +TrigSignatureMoniMT INFO HLT_mu6_ivarmedium_L1MU6 #1012713062 +TrigSignatureMoniMT INFO -- #1012713062 Events 10 10 10 10 10 10 6 - 6 +TrigSignatureMoniMT INFO -- #1012713062 Features 14 13 16 21 6 - +TrigSignatureMoniMT INFO HLT_mu6_msonly_L1MU6 #3895421032 +TrigSignatureMoniMT INFO -- #3895421032 Events 10 10 10 0 10 - - - 10 +TrigSignatureMoniMT INFO -- #3895421032 Features 14 0 17 - - - +TrigSignatureMoniMT INFO HLT_mu6_mu4_L12MU4 #1713982776 +TrigSignatureMoniMT INFO -- #1713982776 Events 4 4 4 4 4 4 - - 4 +TrigSignatureMoniMT INFO -- #1713982776 Features 8 8 12 18 - - +TrigSignatureMoniMT INFO HLT_mu6_mu6noL1_L1MU6 #451489897 +TrigSignatureMoniMT INFO -- #451489897 Events 10 10 10 10 10 10 5 4 4 +TrigSignatureMoniMT INFO -- #451489897 Features 14 13 16 21 8 7 +TrigSignatureMoniMT INFO HLT_mu6fast_L1MU6 #3518031697 +TrigSignatureMoniMT INFO -- #3518031697 Events 10 10 10 - - - - - 10 +TrigSignatureMoniMT INFO -- #3518031697 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_mu80_msonly_3layersEC_L1MU20 #761101109 +TrigSignatureMoniMT INFO -- #761101109 Events 8 8 8 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #761101109 Features 10 0 0 - - - +TrigSignatureMoniMT INFO HLT_mu8_L1MU6 #1467711434 +TrigSignatureMoniMT INFO -- #1467711434 Events 10 10 10 10 10 10 - - 10 +TrigSignatureMoniMT INFO -- #1467711434 Features 14 13 15 19 - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM10VH #314199913 +TrigSignatureMoniMT INFO -- #314199913 Events 11 11 - - - - - - 11 +TrigSignatureMoniMT INFO -- #314199913 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM12 #3885916609 +TrigSignatureMoniMT INFO -- #3885916609 Events 16 16 - - - - - - 16 +TrigSignatureMoniMT INFO -- #3885916609 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM15 #480733925 +TrigSignatureMoniMT INFO -- #480733925 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #480733925 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM15VH #2374865899 +TrigSignatureMoniMT INFO -- #2374865899 Events 8 8 - - - - - - 8 +TrigSignatureMoniMT INFO -- #2374865899 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM20VH #3719542824 +TrigSignatureMoniMT INFO -- #3719542824 Events 7 7 - - - - - - 7 +TrigSignatureMoniMT INFO -- #3719542824 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM22VHI #1723589313 +TrigSignatureMoniMT INFO -- #1723589313 Events 6 6 - - - - - - 6 +TrigSignatureMoniMT INFO -- #1723589313 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM3 #4169267792 +TrigSignatureMoniMT INFO -- #4169267792 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #4169267792 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM7 #3226970354 +TrigSignatureMoniMT INFO -- #3226970354 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #3226970354 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM8VH #4065285611 +TrigSignatureMoniMT INFO -- #4065285611 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #4065285611 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J100 #1026959128 +TrigSignatureMoniMT INFO -- #1026959128 Events 3 3 - - - - - - 3 +TrigSignatureMoniMT INFO -- #1026959128 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J12 #2640820608 +TrigSignatureMoniMT INFO -- #2640820608 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #2640820608 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J120 #2116228652 +TrigSignatureMoniMT INFO -- #2116228652 Events 1 1 - - - - - - 1 +TrigSignatureMoniMT INFO -- #2116228652 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J15 #1976430774 +TrigSignatureMoniMT INFO -- #1976430774 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #1976430774 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J20 #2241112369 +TrigSignatureMoniMT INFO -- #2241112369 Events 19 19 - - - - - - 19 +TrigSignatureMoniMT INFO -- #2241112369 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J25 #39428635 +TrigSignatureMoniMT INFO -- #39428635 Events 17 17 - - - - - - 17 +TrigSignatureMoniMT INFO -- #39428635 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J30 #3523994129 +TrigSignatureMoniMT INFO -- #3523994129 Events 17 17 - - - - - - 17 +TrigSignatureMoniMT INFO -- #3523994129 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J40 #1497591431 +TrigSignatureMoniMT INFO -- #1497591431 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #1497591431 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J400 #2494874701 +TrigSignatureMoniMT INFO -- #2494874701 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2494874701 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J50 #3346352675 +TrigSignatureMoniMT INFO -- #3346352675 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #3346352675 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J75 #1651897827 +TrigSignatureMoniMT INFO -- #1651897827 Events 6 6 - - - - - - 6 +TrigSignatureMoniMT INFO -- #1651897827 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J85 #166231461 +TrigSignatureMoniMT INFO -- #166231461 Events 5 5 - - - - - - 5 +TrigSignatureMoniMT INFO -- #166231461 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1RD0_EMPTY #914660695 +TrigSignatureMoniMT INFO -- #914660695 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #914660695 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1RD0_FILLED #211699639 +TrigSignatureMoniMT INFO -- #211699639 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #211699639 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU12 #4248050338 +TrigSignatureMoniMT INFO -- #4248050338 Events 18 18 - - - - - - 18 +TrigSignatureMoniMT INFO -- #4248050338 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU12IM #357557968 +TrigSignatureMoniMT INFO -- #357557968 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #357557968 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU20 #3602376876 +TrigSignatureMoniMT INFO -- #3602376876 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #3602376876 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU20IM #1931583332 +TrigSignatureMoniMT INFO -- #1931583332 Events 10 10 - - - - - - 10 +TrigSignatureMoniMT INFO -- #1931583332 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU30 #1944789678 +TrigSignatureMoniMT INFO -- #1944789678 Events 13 13 - - - - - - 13 +TrigSignatureMoniMT INFO -- #1944789678 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU40 #1394621652 +TrigSignatureMoniMT INFO -- #1394621652 Events 7 7 - - - - - - 7 +TrigSignatureMoniMT INFO -- #1394621652 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU60 #3332424451 +TrigSignatureMoniMT INFO -- #3332424451 Events 5 5 - - - - - - 5 +TrigSignatureMoniMT INFO -- #3332424451 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU8 #3165115874 +TrigSignatureMoniMT INFO -- #3165115874 Events 19 19 - - - - - - 19 +TrigSignatureMoniMT INFO -- #3165115874 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE10 #1583053368 +TrigSignatureMoniMT INFO -- #1583053368 Events 19 19 - - - - - - 19 +TrigSignatureMoniMT INFO -- #1583053368 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE30 #2047368922 +TrigSignatureMoniMT INFO -- #2047368922 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #2047368922 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE300 #1315853555 +TrigSignatureMoniMT INFO -- #1315853555 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #1315853555 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE35 #2313039014 +TrigSignatureMoniMT INFO -- #2313039014 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #2313039014 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE40 #4293469116 +TrigSignatureMoniMT INFO -- #4293469116 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #4293469116 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE45 #2365048177 +TrigSignatureMoniMT INFO -- #2365048177 Events 13 13 - - - - - - 13 +TrigSignatureMoniMT INFO -- #2365048177 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE50 #1168752081 +TrigSignatureMoniMT INFO -- #1168752081 Events 10 10 - - - - - - 10 +TrigSignatureMoniMT INFO -- #1168752081 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE55 #268928384 +TrigSignatureMoniMT INFO -- #268928384 Events 8 8 - - - - - - 8 +TrigSignatureMoniMT INFO -- #268928384 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE60 #4154240531 +TrigSignatureMoniMT INFO -- #4154240531 Events 8 8 - - - - - - 8 +TrigSignatureMoniMT INFO -- #4154240531 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE70 #3765216228 +TrigSignatureMoniMT INFO -- #3765216228 Events 4 4 - - - - - - 4 +TrigSignatureMoniMT INFO -- #3765216228 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE80 #2742079961 +TrigSignatureMoniMT INFO -- #2742079961 Events 3 3 - - - - - - 3 +TrigSignatureMoniMT INFO -- #2742079961 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM3_EMPTY #2458124284 +TrigSignatureMoniMT INFO -- #2458124284 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2458124284 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM7_EMPTY #299938202 +TrigSignatureMoniMT INFO -- #299938202 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #299938202 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J12_EMPTY #3144024902 +TrigSignatureMoniMT INFO -- #3144024902 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3144024902 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J12_FIRSTEMPTY #3840098930 +TrigSignatureMoniMT INFO -- #3840098930 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3840098930 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_31ETA49_EMPTY #4143623058 +TrigSignatureMoniMT INFO -- #4143623058 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #4143623058 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_EMPTY #2991490897 +TrigSignatureMoniMT INFO -- #2991490897 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2991490897 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY #2214697960 +TrigSignatureMoniMT INFO -- #2214697960 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2214697960 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1RD1_BGRP10 #48519027 +TrigSignatureMoniMT INFO -- #48519027 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #48519027 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1RD1_EMPTY #3925252528 +TrigSignatureMoniMT INFO -- #3925252528 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3925252528 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_EMPTY #56818284 +TrigSignatureMoniMT INFO -- #56818284 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #56818284 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_FILLED #1198298874 +TrigSignatureMoniMT INFO -- #1198298874 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #1198298874 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_UNPAIRED_ISO #2536676873 +TrigSignatureMoniMT INFO -- #2536676873 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2536676873 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_mb_L1RD2_EMPTY #3788962163 +TrigSignatureMoniMT INFO -- #3788962163 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3788962163 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_zb_L1ZB #1289992951 +TrigSignatureMoniMT INFO -- #1289992951 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #1289992951 Features - - - - - - +TrigSignatureMoniMT INFO HLT_sct_noise_SCTPEB_L1RD0_EMPTY #3024203296 +TrigSignatureMoniMT INFO -- #3024203296 Events 0 0 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3024203296 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU100 #2342716369 +TrigSignatureMoniMT INFO -- #2342716369 Events 0 0 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #2342716369 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU12 #372992233 +TrigSignatureMoniMT INFO -- #372992233 Events 18 18 18 18 - - - - 18 +TrigSignatureMoniMT INFO -- #372992233 Features 42 42 - - - - +TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU60 #1376650121 +TrigSignatureMoniMT INFO -- #1376650121 Events 5 5 5 5 - - - - 5 +TrigSignatureMoniMT INFO -- #1376650121 Features 6 6 - - - - +TrigSignatureMoniMT INFO HLT_tau160_idperf_track_L1TAU100 #714660857 +TrigSignatureMoniMT INFO -- #714660857 Events 0 0 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #714660857 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_tau160_idperf_tracktwoMVA_L1TAU100 #2725693236 +TrigSignatureMoniMT INFO -- #2725693236 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #2725693236 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau160_idperf_tracktwo_L1TAU100 #886074432 +TrigSignatureMoniMT INFO -- #886074432 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #886074432 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100 #1747754287 +TrigSignatureMoniMT INFO -- #1747754287 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1747754287 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau160_perf_tracktwoMVA_L1TAU100 #2334140248 +TrigSignatureMoniMT INFO -- #2334140248 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #2334140248 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau160_perf_tracktwo_L1TAU100 #1799096347 +TrigSignatureMoniMT INFO -- #1799096347 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1799096347 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_idperf_track_L1TAU12IM #554271976 +TrigSignatureMoniMT INFO -- #554271976 Events 14 14 14 14 - - - - 14 +TrigSignatureMoniMT INFO -- #554271976 Features 24 24 - - - - +TrigSignatureMoniMT INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM #988149859 +TrigSignatureMoniMT INFO -- #988149859 Events 14 14 14 13 13 - - - 13 +TrigSignatureMoniMT INFO -- #988149859 Features 24 17 17 - - - +TrigSignatureMoniMT INFO HLT_tau25_idperf_tracktwo_L1TAU12IM #3346942453 +TrigSignatureMoniMT INFO -- #3346942453 Events 14 14 14 13 13 - - - 13 +TrigSignatureMoniMT INFO -- #3346942453 Features 24 17 17 - - - +TrigSignatureMoniMT INFO HLT_tau25_looseRNN_tracktwoMVA_L1TAU12IM #169452969 +TrigSignatureMoniMT INFO -- #169452969 Events 14 14 12 11 10 - - - 10 +TrigSignatureMoniMT INFO -- #169452969 Features 22 15 13 - - - +TrigSignatureMoniMT INFO HLT_tau25_looseRNN_tracktwo_L1TAU12IM #2490017573 +TrigSignatureMoniMT INFO -- #2490017573 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #2490017573 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwoEF_L1TAU12IM #506456080 +TrigSignatureMoniMT INFO -- #506456080 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #506456080 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwoMVA_L1TAU12IM #4055280067 +TrigSignatureMoniMT INFO -- #4055280067 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #4055280067 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwo_L1TAU12IM #1433975745 +TrigSignatureMoniMT INFO -- #1433975745 Events 14 14 12 11 7 - - - 7 +TrigSignatureMoniMT INFO -- #1433975745 Features 22 15 7 - - - +TrigSignatureMoniMT INFO HLT_tau25_mediumRNN_tracktwoMVA_L1TAU12IM #2222894847 +TrigSignatureMoniMT INFO -- #2222894847 Events 14 14 12 11 7 - - - 7 +TrigSignatureMoniMT INFO -- #2222894847 Features 22 15 10 - - - +TrigSignatureMoniMT INFO HLT_tau25_mediumRNN_tracktwo_L1TAU12IM #698603885 +TrigSignatureMoniMT INFO -- #698603885 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #698603885 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_perf_tracktwoMVA_L1TAU12IM #112814536 +TrigSignatureMoniMT INFO -- #112814536 Events 14 14 14 13 13 - - - 13 +TrigSignatureMoniMT INFO -- #112814536 Features 24 17 17 - - - +TrigSignatureMoniMT INFO HLT_tau25_perf_tracktwo_L1TAU12IM #1129072492 +TrigSignatureMoniMT INFO -- #1129072492 Events 14 14 14 13 13 - - - 13 +TrigSignatureMoniMT INFO -- #1129072492 Features 24 17 17 - - - +TrigSignatureMoniMT INFO HLT_tau25_tightRNN_tracktwoMVA_L1TAU12IM #2472860683 +TrigSignatureMoniMT INFO -- #2472860683 Events 14 14 12 11 5 - - - 5 +TrigSignatureMoniMT INFO -- #2472860683 Features 22 15 6 - - - +TrigSignatureMoniMT INFO HLT_tau25_tightRNN_tracktwo_L1TAU12IM #2537544560 +TrigSignatureMoniMT INFO -- #2537544560 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #2537544560 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_verylooseRNN_tracktwoMVA_L1TAU12IM #2992830434 +TrigSignatureMoniMT INFO -- #2992830434 Events 14 14 12 11 10 - - - 10 +TrigSignatureMoniMT INFO -- #2992830434 Features 22 15 14 - - - +TrigSignatureMoniMT INFO HLT_tau25_verylooseRNN_tracktwo_L1TAU12IM #1275052132 +TrigSignatureMoniMT INFO -- #1275052132 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #1275052132 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM #2456480859 +TrigSignatureMoniMT INFO -- #2456480859 Events 14 14 11 10 6 - - - 6 +TrigSignatureMoniMT INFO -- #2456480859 Features 20 14 9 - - - +TrigSignatureMoniMT INFO HLT_tilecalib_laser_TilePEB_L1CALREQ2 #1063154655 +TrigSignatureMoniMT INFO -- #1063154655 Events 0 0 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #1063154655 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_timeburner_L1All #819160059 +TrigSignatureMoniMT INFO -- #819160059 Events 20 20 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #819160059 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_xe100_mht_L1XE50 #532175988 +TrigSignatureMoniMT INFO -- #532175988 Events 10 10 6 - - - - - 6 +TrigSignatureMoniMT INFO -- #532175988 Features 6 - - - - - +TrigSignatureMoniMT INFO HLT_xe100_pfsum_L1XE50 #1890237897 +TrigSignatureMoniMT INFO -- #1890237897 Events 10 10 2 - - - - - 2 +TrigSignatureMoniMT INFO -- #1890237897 Features 2 - - - - - +TrigSignatureMoniMT INFO HLT_xe100_tcpufit_L1XE50 #2803198799 +TrigSignatureMoniMT INFO -- #2803198799 Events 10 10 6 - - - - - 6 +TrigSignatureMoniMT INFO -- #2803198799 Features 6 - - - - - +TrigSignatureMoniMT INFO HLT_xe100_trkmht_L1XE50 #1055916731 +TrigSignatureMoniMT INFO -- #1055916731 Events 10 10 4 - - - - - 4 +TrigSignatureMoniMT INFO -- #1055916731 Features 4 - - - - - +TrigSignatureMoniMT INFO HLT_xe110_mht_L1XE50 #3030733259 +TrigSignatureMoniMT INFO -- #3030733259 Events 10 10 6 - - - - - 6 +TrigSignatureMoniMT INFO -- #3030733259 Features 6 - - - - - +TrigSignatureMoniMT INFO HLT_xe110_tc_em_L1XE50 #607113828 +TrigSignatureMoniMT INFO -- #607113828 Events 10 10 5 - - - - - 5 +TrigSignatureMoniMT INFO -- #607113828 Features 5 - - - - - +TrigSignatureMoniMT INFO HLT_xe110_tcpufit_L1XE50 #892853397 +TrigSignatureMoniMT INFO -- #892853397 Events 10 10 6 - - - - - 6 +TrigSignatureMoniMT INFO -- #892853397 Features 6 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_cell_L1XE10 #1649696554 +TrigSignatureMoniMT INFO -- #1649696554 Events 19 19 17 - - - - - 17 +TrigSignatureMoniMT INFO -- #1649696554 Features 17 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_cell_xe30_tcpufit_L1XE10 #3768353779 +TrigSignatureMoniMT INFO -- #3768353779 Events 19 19 14 - - - - - 14 +TrigSignatureMoniMT INFO -- #3768353779 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_mht_L1XE10 #3626903018 +TrigSignatureMoniMT INFO -- #3626903018 Events 19 19 19 - - - - - 19 +TrigSignatureMoniMT INFO -- #3626903018 Features 19 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_pfsum_L1XE10 #998713382 +TrigSignatureMoniMT INFO -- #998713382 Events 19 19 14 - - - - - 14 +TrigSignatureMoniMT INFO -- #998713382 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_tcpufit_L1XE10 #1583719916 +TrigSignatureMoniMT INFO -- #1583719916 Events 19 19 14 - - - - - 14 +TrigSignatureMoniMT INFO -- #1583719916 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_trkmht_L1XE10 #2468872349 +TrigSignatureMoniMT INFO -- #2468872349 Events 19 19 17 - - - - - 17 +TrigSignatureMoniMT INFO -- #2468872349 Features 17 - - - - - +TrigSignatureMoniMT INFO HLT_xe65_cell_L1XE50 #531141817 +TrigSignatureMoniMT INFO -- #531141817 Events 10 10 7 - - - - - 7 +TrigSignatureMoniMT INFO -- #531141817 Features 7 - - - - - +TrigSignatureMoniMT INFO HLT_xe65_cell_xe110_tcpufit_L1XE50 #115518400 +TrigSignatureMoniMT INFO -- #115518400 Events 10 10 5 - - - - - 5 +TrigSignatureMoniMT INFO -- #115518400 Features 5 - - - - - diff --git a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref index 2cee7562387..f2155d1a1bd 100644 --- a/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref +++ b/Trigger/TrigValidation/TriggerTest/share/ref_data_v1Dev_build.ref @@ -1,3 +1,5 @@ +TrigSignatureMoniMT 0 INFO The L1 seed to multi-item-seeded chain HLT_noalg_L1Standby could not be completely resolved. This is currently OK. Exception from menu access: L1Item L1_2EM13VH does not exist in the menu +TrigSignatureMoniMT 0 INFO The L1 seed to multi-item-seeded chain HLT_noalg_L1Calo could not be completely resolved. This is currently OK. Exception from menu access: L1Item L1_2EM13VH does not exist in the menu TrigSignatureMoniMT INFO HLT_2e17_etcut_L12EM15VH #3136730292 TrigSignatureMoniMT INFO -- #3136730292 Events 20 20 0 0 0 - - - 0 TrigSignatureMoniMT INFO -- #3136730292 Features 0 0 0 - - - @@ -439,6 +441,12 @@ TrigSignatureMoniMT INFO -- #761101109 Features TrigSignatureMoniMT INFO HLT_mu8_L1MU6 #1467711434 TrigSignatureMoniMT INFO -- #1467711434 Events 20 20 1 1 0 0 - - 0 TrigSignatureMoniMT INFO -- #1467711434 Features 1 1 0 0 - - +TrigSignatureMoniMT INFO HLT_noalg_L1Calo #355689512 +TrigSignatureMoniMT INFO -- #355689512 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #355689512 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1Calo_EMPTY #3717801557 +TrigSignatureMoniMT INFO -- #3717801557 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #3717801557 Features - - - - - - TrigSignatureMoniMT INFO HLT_noalg_L1EM10VH #314199913 TrigSignatureMoniMT INFO -- #314199913 Events 20 20 - - - - - - 20 TrigSignatureMoniMT INFO -- #314199913 Features - - - - - - @@ -508,6 +516,9 @@ TrigSignatureMoniMT INFO -- #914660695 Features TrigSignatureMoniMT INFO HLT_noalg_L1RD0_FILLED #211699639 TrigSignatureMoniMT INFO -- #211699639 Events 20 20 - - - - - - 20 TrigSignatureMoniMT INFO -- #211699639 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1Standby #420861540 +TrigSignatureMoniMT INFO -- #420861540 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #420861540 Features - - - - - - TrigSignatureMoniMT INFO HLT_noalg_L1TAU12 #4248050338 TrigSignatureMoniMT INFO -- #4248050338 Events 20 20 - - - - - - 20 TrigSignatureMoniMT INFO -- #4248050338 Features - - - - - - @@ -565,6 +576,9 @@ TrigSignatureMoniMT INFO -- #3765216228 Features TrigSignatureMoniMT INFO HLT_noalg_L1XE80 #2742079961 TrigSignatureMoniMT INFO -- #2742079961 Events 20 20 - - - - - - 20 TrigSignatureMoniMT INFO -- #2742079961 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_bkg_L1Bkg #2032528907 +TrigSignatureMoniMT INFO -- #2032528907 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #2032528907 Features - - - - - - TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM3_EMPTY #2458124284 TrigSignatureMoniMT INFO -- #2458124284 Events 20 20 - - - - - - 15 TrigSignatureMoniMT INFO -- #2458124284 Features - - - - - - @@ -601,6 +615,9 @@ TrigSignatureMoniMT INFO -- #1198298874 Features TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_UNPAIRED_ISO #2536676873 TrigSignatureMoniMT INFO -- #2536676873 Events 20 20 - - - - - - 20 TrigSignatureMoniMT INFO -- #2536676873 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_l1calo_L1J400 #1694511185 +TrigSignatureMoniMT INFO -- #1694511185 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #1694511185 Features - - - - - - TrigSignatureMoniMT INFO HLT_noalg_mb_L1RD2_EMPTY #3788962163 TrigSignatureMoniMT INFO -- #3788962163 Events 20 20 - - - - - - 20 TrigSignatureMoniMT INFO -- #3788962163 Features - - - - - - diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/trigCompareOldandNewL1Menus.py b/Trigger/TriggerCommon/TriggerMenuMT/scripts/trigCompareOldandNewL1Menus.py index 5252e73f7ec..504777a3e71 100755 --- a/Trigger/TriggerCommon/TriggerMenuMT/scripts/trigCompareOldandNewL1Menus.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/scripts/trigCompareOldandNewL1Menus.py @@ -8,14 +8,45 @@ # this helps with the consistent transition from old to new L1 menu. It should be # deleted once we have concluded this transition -import os import sys -import json +from AthenaCommon.Logging import log from TriggerMenuMT.LVL1MenuConfig.LVL1.XMLReader import L1MenuXMLReader from TrigConfIO.L1TriggerConfigAccess import L1MenuAccess from TrigConfIO.HLTTriggerConfigAccess import HLTMenuAccess +def compareBothL1Menus(l1items_xml, l1items_json): + # legacyCaloItems = [ k for k,v in l1items_json.items() if 'legacy' in v ] + + itemNames_xml = [x['name'] for x in l1items_xml] + itemNames_json = l1items_json.keys() + ids_xml = dict([ (x['name'],int(x['ctpid'])) for x in l1items_xml]) + ids_json = dict([ (x['name'],x['ctpid']) for x in l1items_json.values()]) + + if l1items_xml and l1items_json: + itemsOnlyInJson = list( set(itemNames_json) - set(itemNames_xml) ) + itemsOnlyInXML = list( set(itemNames_xml) - set(itemNames_json) ) + log.info("These %i items are new in the json version" , len(itemsOnlyInJson)) + log.info(itemsOnlyInJson) + log.info("\nThese %i items have disappeared in the json version" , len(itemsOnlyInXML)) + log.info(itemsOnlyInXML) + + inboth = set(itemNames_json).intersection(set(itemNames_xml)) + noMatchId = [] + for name in sorted(inboth): + if ids_xml[name] != ids_json[name]: + noMatchId += [(name, ids_xml[name], ids_json[name])] + + log.info("\nFrom %i items that are in both, these %i have non-matching CTP id's" , len(inboth),len(noMatchId)) + log.info("Name, CTPID in xml, CTPID in json") + for x in noMatchId: + log.info(x) + + + + + + def main(): l1items_xml = None @@ -23,7 +54,7 @@ def main(): hltinput = None if len(sys.argv) <3: - print("Please specify at least two menu files (L1Menu.xml, L1Menu.json, HLTMenu.json)") + log.info("Please specify at least two menu files (L1Menu.xml, L1Menu.json, HLTMenu.json)") for fileName in sys.argv[1:]: if fileName.endswith(".json"): @@ -37,31 +68,13 @@ def main(): l1menu = L1MenuXMLReader(fileName) l1items_xml = l1menu.getL1Items() - legacyCaloItems = [ k for k,v in l1items_json.items() if 'legacy' in v ] - - itemNames_xml = [x['name'] for x in l1items_xml] - itemNames_json = l1items_json.keys() - ids_xml = dict([ (x['name'],int(x['ctpid'])) for x in l1items_xml]) - ids_json = dict([ (x['name'],x['ctpid']) for x in l1items_json.values()]) if l1items_xml and l1items_json: - itemsOnlyInJson = list( set(itemNames_json) - set(itemNames_xml) ) - itemsOnlyInXML = list( set(itemNames_xml) - set(itemNames_json) ) - print("These %i items are new in the json version" % len(itemsOnlyInJson)) - print(itemsOnlyInJson) - print("\nThese %i items have disappeared in the json version" % len(itemsOnlyInXML)) - print(itemsOnlyInXML) + compareBothL1Menus(l1items_xml, l1items_json) + + if l1items_json and hltinput: + pass # check not yet implemented - inboth = set(itemNames_json).intersection(set(itemNames_xml)) - noMatchId = [] - for name in sorted(inboth): - if ids_xml[name] != ids_json[name]: - noMatchId += [(name, ids_xml[name], ids_json[name])] - - print("\nFrom %i items that are in both, these %i have non-matching CTP id's" % (len(inboth),len(noMatchId))) - print("Name, CTPID in xml, CTPID in json") - for x in noMatchId: - print(x) return 0 -- GitLab From 3c808b8f49564d95d49f5d606780ed889c40baf0 Mon Sep 17 00:00:00 2001 From: Joerg Stelzer <joerg.stelzer@cern.ch> Date: Wed, 29 Jul 2020 08:49:27 +0200 Subject: [PATCH 446/459] Fix merge conflict for reference file --- .../TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref index 958bb3d156f..e40c71c6d46 100644 --- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref +++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref @@ -402,6 +402,12 @@ TrigSignatureMoniMT INFO -- #761101109 Features TrigSignatureMoniMT INFO HLT_mu8_L1MU6 #1467711434 TrigSignatureMoniMT INFO -- #1467711434 Events 10 10 10 10 10 10 - - 10 TrigSignatureMoniMT INFO -- #1467711434 Features 14 13 15 19 - - +TrigSignatureMoniMT INFO HLT_noalg_L1Calo #355689512 +TrigSignatureMoniMT INFO -- #355689512 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #355689512 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1Calo_EMPTY #3717801557 +TrigSignatureMoniMT INFO -- #3717801557 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3717801557 Features - - - - - - TrigSignatureMoniMT INFO HLT_noalg_L1EM10VH #314199913 TrigSignatureMoniMT INFO -- #314199913 Events 11 11 - - - - - - 11 TrigSignatureMoniMT INFO -- #314199913 Features - - - - - - -- GitLab From a82f6ee7d147e34c1333da6c3690e1b851cc948a Mon Sep 17 00:00:00 2001 From: Joerg Stelzer <joerg.stelzer@cern.ch> Date: Fri, 31 Jul 2020 21:38:52 +0200 Subject: [PATCH 447/459] Update reference --- .../share/ref_RDOtoRDOTrig_mt1_build.ref | 1468 +++++++++-------- 1 file changed, 758 insertions(+), 710 deletions(-) diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref index e40c71c6d46..5a3b9650bbc 100644 --- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref +++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref @@ -1,710 +1,758 @@ -TrigSignatureMoniMT 0 INFO The L1 seed to multi-item-seeded chain HLT_noalg_L1Standby could not be completely resolved. This is currently OK. Exception from menu access: L1Item L1_2EM13VH does not exist in the menu -TrigSignatureMoniMT 0 INFO The L1 seed to multi-item-seeded chain HLT_noalg_L1Calo could not be completely resolved. This is currently OK. Exception from menu access: L1Item L1_2EM13VH does not exist in the menu -TrigSignatureMoniMT INFO HLT_2e17_etcut_L12EM15VH #3136730292 -TrigSignatureMoniMT INFO -- #3136730292 Events 2 2 2 2 2 - - - 2 -TrigSignatureMoniMT INFO -- #3136730292 Features 12 298 14 - - - -TrigSignatureMoniMT INFO HLT_2e17_lhvloose_L12EM15VH #2280638160 -TrigSignatureMoniMT INFO -- #2280638160 Events 2 2 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #2280638160 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_2e17_lhvloose_L12EM3 #1767768251 -TrigSignatureMoniMT INFO -- #1767768251 Events 20 20 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1767768251 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_2e3_etcut_L12EM3 #2613484113 -TrigSignatureMoniMT INFO -- #2613484113 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #2613484113 Features 342 3696 780 - - - -TrigSignatureMoniMT INFO HLT_2g20_tight_L12EM15VH #3837353071 -TrigSignatureMoniMT INFO -- #3837353071 Events 2 2 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #3837353071 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_2g35_etcut_L12EM20VH #58053304 -TrigSignatureMoniMT INFO -- #58053304 Events 2 2 1 1 0 - - - 0 -TrigSignatureMoniMT INFO -- #58053304 Features 4 4 0 - - - -TrigSignatureMoniMT INFO HLT_2g35_medium_L12EM20VH #3965466087 -TrigSignatureMoniMT INFO -- #3965466087 Events 2 2 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #3965466087 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J100 #1295975955 -TrigSignatureMoniMT INFO -- #1295975955 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #1295975955 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_2j60_L1J15 #927735533 -TrigSignatureMoniMT INFO -- #927735533 Events 20 20 10 - - - - - 10 -TrigSignatureMoniMT INFO -- #927735533 Features 28 - - - - - -TrigSignatureMoniMT INFO HLT_2mu10_bJpsimumu_L12MU10 #3498558358 -TrigSignatureMoniMT INFO -- #3498558358 Events 3 3 3 3 3 2 - - 0 -TrigSignatureMoniMT INFO -- #3498558358 Features 12 12 16 4 - - -TrigSignatureMoniMT INFO HLT_2mu10_bUpsimumu_L12MU10 #234102568 -TrigSignatureMoniMT INFO -- #234102568 Events 3 3 3 3 3 2 - - 0 -TrigSignatureMoniMT INFO -- #234102568 Features 12 12 16 4 - - -TrigSignatureMoniMT INFO HLT_2mu14_L12MU10 #2619091790 -TrigSignatureMoniMT INFO -- #2619091790 Events 3 3 3 1 1 1 - - 1 -TrigSignatureMoniMT INFO -- #2619091790 Features 12 4 4 4 - - -TrigSignatureMoniMT INFO HLT_2mu15_L12MU10 #557204938 -TrigSignatureMoniMT INFO -- #557204938 Events 3 3 3 1 1 1 - - 1 -TrigSignatureMoniMT INFO -- #557204938 Features 12 4 4 4 - - -TrigSignatureMoniMT INFO HLT_2mu4_bDimu_L12MU4 #1730084172 -TrigSignatureMoniMT INFO -- #1730084172 Events 4 4 4 4 4 4 - - 1 -TrigSignatureMoniMT INFO -- #1730084172 Features 16 16 24 19 - - -TrigSignatureMoniMT INFO HLT_2mu4_bJpsimumu_L12MU4 #4276347155 -TrigSignatureMoniMT INFO -- #4276347155 Events 4 4 4 4 4 4 - - 1 -TrigSignatureMoniMT INFO -- #4276347155 Features 16 16 24 19 - - -TrigSignatureMoniMT INFO HLT_2mu4_bUpsimumu_L12MU4 #4008168535 -TrigSignatureMoniMT INFO -- #4008168535 Events 4 4 4 4 4 4 - - 0 -TrigSignatureMoniMT INFO -- #4008168535 Features 16 16 24 18 - - -TrigSignatureMoniMT INFO HLT_2mu4_muonqual_L12MU4 #1584776935 -TrigSignatureMoniMT INFO -- #1584776935 Events 4 4 4 4 4 4 - - 4 -TrigSignatureMoniMT INFO -- #1584776935 Features 16 16 24 36 - - -TrigSignatureMoniMT INFO HLT_2mu6Comb_L12MU6 #2046267508 -TrigSignatureMoniMT INFO -- #2046267508 Events 4 4 4 3 - - - - 3 -TrigSignatureMoniMT INFO -- #2046267508 Features 16 12 - - - - -TrigSignatureMoniMT INFO HLT_2mu6_10invm70_L1MU6 #1316992871 -TrigSignatureMoniMT INFO -- #1316992871 Events 10 10 4 3 3 3 - - 3 -TrigSignatureMoniMT INFO -- #1316992871 Features 16 12 18 28 - - -TrigSignatureMoniMT INFO HLT_2mu6_Dr_L12MU4 #3304584056 -TrigSignatureMoniMT INFO -- #3304584056 Events 4 4 4 3 - - - - 3 -TrigSignatureMoniMT INFO -- #3304584056 Features 16 12 - - - - -TrigSignatureMoniMT INFO HLT_2mu6_L12MU6 #1747073535 -TrigSignatureMoniMT INFO -- #1747073535 Events 4 4 4 3 3 3 - - 3 -TrigSignatureMoniMT INFO -- #1747073535 Features 16 12 18 28 - - -TrigSignatureMoniMT INFO HLT_2mu6_muonqual_L12MU6 #2398136098 -TrigSignatureMoniMT INFO -- #2398136098 Events 4 4 4 3 3 3 - - 3 -TrigSignatureMoniMT INFO -- #2398136098 Features 16 12 18 28 - - -TrigSignatureMoniMT INFO HLT_3j200_L1J100 #2199422919 -TrigSignatureMoniMT INFO -- #2199422919 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #2199422919 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_3j200_L1J20 #493765146 -TrigSignatureMoniMT INFO -- #493765146 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #493765146 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_3mu6_L13MU6 #1832399408 -TrigSignatureMoniMT INFO -- #1832399408 Events 0 0 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1832399408 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_3mu6_msonly_L13MU6 #1199773318 -TrigSignatureMoniMT INFO -- #1199773318 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1199773318 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_3mu8_msonly_L13MU6 #424835335 -TrigSignatureMoniMT INFO -- #424835335 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #424835335 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_4mu4_L14MU4 #1834383636 -TrigSignatureMoniMT INFO -- #1834383636 Events 0 0 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1834383636 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_5j70_0eta240_L14J20 #1175391812 -TrigSignatureMoniMT INFO -- #1175391812 Events 7 7 1 - - - - - 1 -TrigSignatureMoniMT INFO -- #1175391812 Features 5 - - - - - -TrigSignatureMoniMT INFO HLT_beamspot_allTE_trkfast_BeamSpotPEB_L1J15 #3989372080 -TrigSignatureMoniMT INFO -- #3989372080 Events 20 20 20 20 - - - - 20 -TrigSignatureMoniMT INFO -- #3989372080 Features 20 20 - - - - -TrigSignatureMoniMT INFO HLT_beamspot_trkFS_trkfast_BeamSpotPEB_L1J15 #628534730 -TrigSignatureMoniMT INFO -- #628534730 Events 20 20 20 20 - - - - 20 -TrigSignatureMoniMT INFO -- #628534730 Features 20 20 - - - - -TrigSignatureMoniMT INFO HLT_costmonitor_CostMonDS_L1All #843341480 -TrigSignatureMoniMT INFO -- #843341480 Events 20 20 20 - - - - - 20 -TrigSignatureMoniMT INFO -- #843341480 Features 20 - - - - - -TrigSignatureMoniMT INFO HLT_e140_lhloose_L1EM22VHI #3471067710 -TrigSignatureMoniMT INFO -- #3471067710 Events 6 6 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #3471067710 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_e140_lhloose_nod0_L1EM22VHI #4128870680 -TrigSignatureMoniMT INFO -- #4128870680 Events 6 6 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #4128870680 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_e17_lhloose_mu14_L1EM15VH_MU10 #899946230 -TrigSignatureMoniMT INFO -- #899946230 Events 3 3 2 2 2 2 - - 2 -TrigSignatureMoniMT INFO -- #899946230 Features 2 46 4 2 - - -TrigSignatureMoniMT INFO HLT_e17_lhvloose_nod0_L1EM15VH #140779220 -TrigSignatureMoniMT INFO -- #140779220 Events 8 8 6 6 6 5 - - 5 -TrigSignatureMoniMT INFO -- #140779220 Features 6 79 10 5 - - -TrigSignatureMoniMT INFO HLT_e26_etcut_L1EM22VHI #1703681121 -TrigSignatureMoniMT INFO -- #1703681121 Events 6 6 6 6 6 - - - 6 -TrigSignatureMoniMT INFO -- #1703681121 Features 7 134 7 - - - -TrigSignatureMoniMT INFO HLT_e26_lhtight_L1EM22VHI #1995263521 -TrigSignatureMoniMT INFO -- #1995263521 Events 6 6 5 5 5 3 - - 3 -TrigSignatureMoniMT INFO -- #1995263521 Features 5 65 8 3 - - -TrigSignatureMoniMT INFO HLT_e26_lhtight_nod0_L1EM22VHI #939763520 -TrigSignatureMoniMT INFO -- #939763520 Events 6 6 5 5 5 3 - - 3 -TrigSignatureMoniMT INFO -- #939763520 Features 5 65 8 3 - - -TrigSignatureMoniMT INFO HLT_e26_lhtight_nod0_L1EM24VHI #4227411116 -TrigSignatureMoniMT INFO -- #4227411116 Events 6 6 5 5 5 3 - - 3 -TrigSignatureMoniMT INFO -- #4227411116 Features 5 65 8 3 - - -TrigSignatureMoniMT INFO HLT_e300_etcut_L1EM22VHI #2128128255 -TrigSignatureMoniMT INFO -- #2128128255 Events 6 6 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #2128128255 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_e3_etcut1step_mu26_L1EM8I_MU10 #2209076666 -TrigSignatureMoniMT INFO -- #2209076666 Events 5 5 3 1 1 1 - - 1 -TrigSignatureMoniMT INFO -- #2209076666 Features 3 1 1 1 - - -TrigSignatureMoniMT INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU10 #2086577378 -TrigSignatureMoniMT INFO -- #2086577378 Events 5 5 3 - - - - - 3 -TrigSignatureMoniMT INFO -- #2086577378 Features 3 - - - - - -TrigSignatureMoniMT INFO HLT_e3_etcut_L1EM3 #683953566 -TrigSignatureMoniMT INFO -- #683953566 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #683953566 Features 171 1848 390 - - - -TrigSignatureMoniMT INFO HLT_e5_etcut_L1EM3 #324908483 -TrigSignatureMoniMT INFO -- #324908483 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #324908483 Features 137 1657 190 - - - -TrigSignatureMoniMT INFO HLT_e5_lhloose_noringer_L1EM3 #1053337356 -TrigSignatureMoniMT INFO -- #1053337356 Events 20 20 17 17 17 4 - - 4 -TrigSignatureMoniMT INFO -- #1053337356 Features 56 656 116 5 - - -TrigSignatureMoniMT INFO HLT_e5_lhmedium_noringer_L1EM3 #176627878 -TrigSignatureMoniMT INFO -- #176627878 Events 20 20 16 16 16 4 - - 4 -TrigSignatureMoniMT INFO -- #176627878 Features 48 534 93 5 - - -TrigSignatureMoniMT INFO HLT_e5_lhtight_noringer_L1EM3 #2758326765 -TrigSignatureMoniMT INFO -- #2758326765 Events 20 20 16 16 16 3 - - 3 -TrigSignatureMoniMT INFO -- #2758326765 Features 45 516 84 4 - - -TrigSignatureMoniMT INFO HLT_e5_lhtight_noringer_nod0_L1EM3 #1690619419 -TrigSignatureMoniMT INFO -- #1690619419 Events 20 20 16 16 16 3 - - 3 -TrigSignatureMoniMT INFO -- #1690619419 Features 45 516 84 4 - - -TrigSignatureMoniMT INFO HLT_e60_lhmedium_L1EM22VHI #298591874 -TrigSignatureMoniMT INFO -- #298591874 Events 6 6 2 2 2 2 - - 2 -TrigSignatureMoniMT INFO -- #298591874 Features 2 34 4 2 - - -TrigSignatureMoniMT INFO HLT_e60_lhmedium_nod0_L1EM22VHI #4115486024 -TrigSignatureMoniMT INFO -- #4115486024 Events 6 6 2 2 2 2 - - 2 -TrigSignatureMoniMT INFO -- #4115486024 Features 2 34 4 2 - - -TrigSignatureMoniMT INFO HLT_e7_etcut_L1EM3 #1959043579 -TrigSignatureMoniMT INFO -- #1959043579 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #1959043579 Features 89 1136 112 - - - -TrigSignatureMoniMT INFO HLT_e7_lhmedium_mu24_L1MU20 #2970063918 -TrigSignatureMoniMT INFO -- #2970063918 Events 8 8 7 5 5 1 - - 1 -TrigSignatureMoniMT INFO -- #2970063918 Features 9 72 14 1 - - -TrigSignatureMoniMT INFO HLT_g140_etcut_L1EM22VHI #3879926061 -TrigSignatureMoniMT INFO -- #3879926061 Events 6 6 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #3879926061 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_g140_etcut_L1EM24VHI #1045486446 -TrigSignatureMoniMT INFO -- #1045486446 Events 6 6 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1045486446 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_g140_loose_L1EM22VHI #1776910226 -TrigSignatureMoniMT INFO -- #1776910226 Events 6 6 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1776910226 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_g20_etcut_LArPEB_L1EM15 #2706532790 -TrigSignatureMoniMT INFO -- #2706532790 Events 14 14 14 14 12 12 - - 12 -TrigSignatureMoniMT INFO -- #2706532790 Features 24 24 22 20 - - -TrigSignatureMoniMT INFO HLT_g25_loose_L1EM15VH #531040386 -TrigSignatureMoniMT INFO -- #531040386 Events 8 8 7 7 7 6 - - 6 -TrigSignatureMoniMT INFO -- #531040386 Features 9 9 18 7 - - -TrigSignatureMoniMT INFO HLT_g25_medium_L1EM15VH #3776886359 -TrigSignatureMoniMT INFO -- #3776886359 Events 8 8 7 7 7 6 - - 6 -TrigSignatureMoniMT INFO -- #3776886359 Features 7 7 13 6 - - -TrigSignatureMoniMT INFO HLT_g25_medium_mu24_ivarmedium_L1MU20 #1007052793 -TrigSignatureMoniMT INFO -- #1007052793 Events 8 8 2 1 1 1 0 - 0 -TrigSignatureMoniMT INFO -- #1007052793 Features 2 1 3 1 0 - -TrigSignatureMoniMT INFO HLT_g25_tight_L1EM15VH #3691147775 -TrigSignatureMoniMT INFO -- #3691147775 Events 8 8 7 7 7 5 - - 5 -TrigSignatureMoniMT INFO -- #3691147775 Features 7 7 13 5 - - -TrigSignatureMoniMT INFO HLT_g35_medium_g25_medium_L12EM20VH #1158879722 -TrigSignatureMoniMT INFO -- #1158879722 Events 2 2 0 0 0 0 - - 0 -TrigSignatureMoniMT INFO -- #1158879722 Features 0 0 0 0 - - -TrigSignatureMoniMT INFO HLT_g5_etcut_L1EM3 #471243435 -TrigSignatureMoniMT INFO -- #471243435 Events 20 20 20 20 20 - - - 20 -TrigSignatureMoniMT INFO -- #471243435 Features 137 137 190 - - - -TrigSignatureMoniMT INFO HLT_g5_etcut_LArPEB_L1EM3 #3486231698 -TrigSignatureMoniMT INFO -- #3486231698 Events 20 20 20 20 20 20 - - 20 -TrigSignatureMoniMT INFO -- #3486231698 Features 137 137 190 118 - - -TrigSignatureMoniMT INFO HLT_g5_loose_L1EM3 #3230088967 -TrigSignatureMoniMT INFO -- #3230088967 Events 20 20 17 17 17 9 - - 9 -TrigSignatureMoniMT INFO -- #3230088967 Features 56 56 116 12 - - -TrigSignatureMoniMT INFO HLT_g5_medium_L1EM3 #385248610 -TrigSignatureMoniMT INFO -- #385248610 Events 20 20 16 16 16 9 - - 9 -TrigSignatureMoniMT INFO -- #385248610 Features 48 48 93 12 - - -TrigSignatureMoniMT INFO HLT_g5_tight_L1EM3 #3280865118 -TrigSignatureMoniMT INFO -- #3280865118 Events 20 20 16 16 16 9 - - 9 -TrigSignatureMoniMT INFO -- #3280865118 Features 45 45 84 9 - - -TrigSignatureMoniMT INFO HLT_j0_perf_L1J12_EMPTY #1341875780 -TrigSignatureMoniMT INFO -- #1341875780 Events 0 0 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #1341875780 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 #4034799151 -TrigSignatureMoniMT INFO -- #4034799151 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #4034799151 Features 425 - - - - - -TrigSignatureMoniMT INFO HLT_j225_ftf_subjesgscIS_bmv2c1040_split_L1J100 #3992507557 -TrigSignatureMoniMT INFO -- #3992507557 Events 3 3 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #3992507557 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_j260_320eta490_L1J20 #3084792704 -TrigSignatureMoniMT INFO -- #3084792704 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3084792704 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j260_320eta490_L1J75_31ETA49 #3769257182 -TrigSignatureMoniMT INFO -- #3769257182 Events 2 2 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3769257182 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J100 #1211559599 -TrigSignatureMoniMT INFO -- #1211559599 Events 3 3 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #1211559599 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J100 #3706723666 -TrigSignatureMoniMT INFO -- #3706723666 Events 3 3 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #3706723666 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J100 #1837565816 -TrigSignatureMoniMT INFO -- #1837565816 Events 3 3 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #1837565816 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_j420_L1J100 #2659902019 -TrigSignatureMoniMT INFO -- #2659902019 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #2659902019 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j420_L1J20 #2205518067 -TrigSignatureMoniMT INFO -- #2205518067 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #2205518067 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j420_ftf_subjesgscIS_L1J20 #4179085188 -TrigSignatureMoniMT INFO -- #4179085188 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #4179085188 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j45_L1J15 #1364976160 -TrigSignatureMoniMT INFO -- #1364976160 Events 20 20 19 - - - - - 19 -TrigSignatureMoniMT INFO -- #1364976160 Features 50 - - - - - -TrigSignatureMoniMT INFO HLT_j45_cssktc_nojcalib_L1J20 #3295122398 -TrigSignatureMoniMT INFO -- #3295122398 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #3295122398 Features 27 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_L1J15 #868405538 -TrigSignatureMoniMT INFO -- #868405538 Events 20 20 19 - - - - - 19 -TrigSignatureMoniMT INFO -- #868405538 Features 50 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_csskpf_nojcalib_L1J20 #3533281867 -TrigSignatureMoniMT INFO -- #3533281867 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #3533281867 Features 25 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_pf_L1J20 #1335156103 -TrigSignatureMoniMT INFO -- #1335156103 Events 19 19 16 - - - - - 16 -TrigSignatureMoniMT INFO -- #1335156103 Features 31 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_pf_nojcalib_L1J20 #3658890913 -TrigSignatureMoniMT INFO -- #3658890913 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #3658890913 Features 29 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_011jvt_L1J15 #2857031468 -TrigSignatureMoniMT INFO -- #2857031468 Events 20 20 12 - - - - - 12 -TrigSignatureMoniMT INFO -- #2857031468 Features 20 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_015jvt_L1J15 #2938374624 -TrigSignatureMoniMT INFO -- #2938374624 Events 20 20 12 - - - - - 12 -TrigSignatureMoniMT INFO -- #2938374624 Features 19 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_059jvt_L1J15 #1593009344 -TrigSignatureMoniMT INFO -- #1593009344 Events 20 20 12 - - - - - 12 -TrigSignatureMoniMT INFO -- #1593009344 Features 19 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_L1J15 #3341539267 -TrigSignatureMoniMT INFO -- #3341539267 Events 20 20 19 - - - - - 19 -TrigSignatureMoniMT INFO -- #3341539267 Features 51 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J20 #991419339 -TrigSignatureMoniMT INFO -- #991419339 Events 19 19 19 4 - - - - 4 -TrigSignatureMoniMT INFO -- #991419339 Features 50 8 - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20 #1961149049 -TrigSignatureMoniMT INFO -- #1961149049 Events 19 19 19 19 - - - - 19 -TrigSignatureMoniMT INFO -- #1961149049 Features 50 50 - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_pf_L1J20 #761060030 -TrigSignatureMoniMT INFO -- #761060030 Events 19 19 16 - - - - - 16 -TrigSignatureMoniMT INFO -- #761060030 Features 31 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_L1J15 #1509925407 -TrigSignatureMoniMT INFO -- #1509925407 Events 20 20 18 - - - - - 18 -TrigSignatureMoniMT INFO -- #1509925407 Features 44 - - - - - -TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_pf_L1J20 #4012311417 -TrigSignatureMoniMT INFO -- #4012311417 Events 19 19 16 - - - - - 16 -TrigSignatureMoniMT INFO -- #4012311417 Features 31 - - - - - -TrigSignatureMoniMT INFO HLT_j45_nojcalib_L1J20 #2042444294 -TrigSignatureMoniMT INFO -- #2042444294 Events 19 19 17 - - - - - 17 -TrigSignatureMoniMT INFO -- #2042444294 Features 39 - - - - - -TrigSignatureMoniMT INFO HLT_j45_sktc_nojcalib_L1J20 #1542468090 -TrigSignatureMoniMT INFO -- #1542468090 Events 19 19 15 - - - - - 15 -TrigSignatureMoniMT INFO -- #1542468090 Features 26 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10_lcw_subjes_L1J100 #3327656707 -TrigSignatureMoniMT INFO -- #3327656707 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3327656707 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10_lcw_subjes_L1J20 #215408633 -TrigSignatureMoniMT INFO -- #215408633 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #215408633 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10r_L1J100 #1151767619 -TrigSignatureMoniMT INFO -- #1151767619 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #1151767619 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10r_L1J20 #3875082669 -TrigSignatureMoniMT INFO -- #3875082669 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3875082669 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J100 #2296827117 -TrigSignatureMoniMT INFO -- #2296827117 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #2296827117 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j460_a10t_lcw_jes_L1J100 #436385969 -TrigSignatureMoniMT INFO -- #436385969 Events 3 3 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #436385969 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20 #3634067472 -TrigSignatureMoniMT INFO -- #3634067472 Events 19 19 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3634067472 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_j80_L1J15 #2440872308 -TrigSignatureMoniMT INFO -- #2440872308 Events 20 20 13 - - - - - 13 -TrigSignatureMoniMT INFO -- #2440872308 Features 23 - - - - - -TrigSignatureMoniMT INFO HLT_j80_j60_L1J15 #582699527 -TrigSignatureMoniMT INFO -- #582699527 Events 20 20 8 - - - - - 8 -TrigSignatureMoniMT INFO -- #582699527 Features 23 - - - - - -TrigSignatureMoniMT INFO HLT_j85_L1J20 #510475538 -TrigSignatureMoniMT INFO -- #510475538 Events 19 19 13 - - - - - 13 -TrigSignatureMoniMT INFO -- #510475538 Features 21 - - - - - -TrigSignatureMoniMT INFO HLT_j85_ftf_L1J20 #877042532 -TrigSignatureMoniMT INFO -- #877042532 Events 19 19 13 - - - - - 13 -TrigSignatureMoniMT INFO -- #877042532 Features 21 - - - - - -TrigSignatureMoniMT INFO HLT_j85_ftf_pf_L1J20 #1538535401 -TrigSignatureMoniMT INFO -- #1538535401 Events 19 19 8 - - - - - 8 -TrigSignatureMoniMT INFO -- #1538535401 Features 13 - - - - - -TrigSignatureMoniMT INFO HLT_mb_sptrk_L1RD0_FILLED #4097312640 -TrigSignatureMoniMT INFO -- #4097312640 Events 20 20 20 20 - - - - 20 -TrigSignatureMoniMT INFO -- #4097312640 Features 20 20 - - - - -TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU20 #997163309 -TrigSignatureMoniMT INFO -- #997163309 Events 8 8 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #997163309 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU4_EMPTY #782182242 -TrigSignatureMoniMT INFO -- #782182242 Events 0 0 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #782182242 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_mu10_lateMu_L1MU10 #48780310 -TrigSignatureMoniMT INFO -- #48780310 Events 10 10 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #48780310 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_mu11_mu6_bJpsimumu_L1MU11_2MU6 #2504965945 -TrigSignatureMoniMT INFO -- #2504965945 Events 4 4 4 0 3 0 - - 0 -TrigSignatureMoniMT INFO -- #2504965945 Features 8 0 6 0 - - -TrigSignatureMoniMT INFO HLT_mu11_mu6_bUpsimumu_L1MU11_2MU6 #1171632195 -TrigSignatureMoniMT INFO -- #1171632195 Events 4 4 4 0 3 0 - - 0 -TrigSignatureMoniMT INFO -- #1171632195 Features 8 0 6 0 - - -TrigSignatureMoniMT INFO HLT_mu14_L1MU10 #1696906927 -TrigSignatureMoniMT INFO -- #1696906927 Events 10 10 10 7 7 7 - - 7 -TrigSignatureMoniMT INFO -- #1696906927 Features 13 8 8 8 - - -TrigSignatureMoniMT INFO HLT_mu20_ivar_L1MU6 #2083734526 -TrigSignatureMoniMT INFO -- #2083734526 Events 10 10 10 5 5 - - - 5 -TrigSignatureMoniMT INFO -- #2083734526 Features 14 6 5 - - - -TrigSignatureMoniMT INFO HLT_mu24_L1MU20 #417425162 -TrigSignatureMoniMT INFO -- #417425162 Events 8 8 8 5 5 5 - - 5 -TrigSignatureMoniMT INFO -- #417425162 Features 10 6 6 6 - - -TrigSignatureMoniMT INFO HLT_mu24_idperf_L1MU20 #677658909 -TrigSignatureMoniMT INFO -- #677658909 Events 8 8 6 6 6 6 - - 6 -TrigSignatureMoniMT INFO -- #677658909 Features 7 7 7 7 - - -TrigSignatureMoniMT INFO HLT_mu26_L1MU20 #311138376 -TrigSignatureMoniMT INFO -- #311138376 Events 8 8 8 5 4 3 - - 3 -TrigSignatureMoniMT INFO -- #311138376 Features 10 6 5 4 - - -TrigSignatureMoniMT INFO HLT_mu26_ivarmedium_L1MU20 #3411723090 -TrigSignatureMoniMT INFO -- #3411723090 Events 8 8 8 5 4 3 2 - 2 -TrigSignatureMoniMT INFO -- #3411723090 Features 10 6 5 4 2 - -TrigSignatureMoniMT INFO HLT_mu28_ivarmedium_L1MU20 #1963262787 -TrigSignatureMoniMT INFO -- #1963262787 Events 8 8 8 5 4 3 2 - 2 -TrigSignatureMoniMT INFO -- #1963262787 Features 10 6 5 3 2 - -TrigSignatureMoniMT INFO HLT_mu35_ivarmedium_L1MU20 #597064890 -TrigSignatureMoniMT INFO -- #597064890 Events 8 8 8 5 3 2 1 - 1 -TrigSignatureMoniMT INFO -- #597064890 Features 10 6 4 2 1 - -TrigSignatureMoniMT INFO HLT_mu50_L1MU20 #3657158931 -TrigSignatureMoniMT INFO -- #3657158931 Events 8 8 8 5 1 1 - - 1 -TrigSignatureMoniMT INFO -- #3657158931 Features 10 6 1 1 - - -TrigSignatureMoniMT INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU20 #827327262 -TrigSignatureMoniMT INFO -- #827327262 Events 8 8 8 5 1 1 1 - 1 -TrigSignatureMoniMT INFO -- #827327262 Features 10 6 1 1 1 - -TrigSignatureMoniMT INFO HLT_mu60_0eta105_msonly_L1MU20 #1642591450 -TrigSignatureMoniMT INFO -- #1642591450 Events 8 8 1 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1642591450 Features 2 0 0 - - - -TrigSignatureMoniMT INFO HLT_mu6Comb_L1MU6 #996392590 -TrigSignatureMoniMT INFO -- #996392590 Events 10 10 10 10 - - - - 10 -TrigSignatureMoniMT INFO -- #996392590 Features 14 13 - - - - -TrigSignatureMoniMT INFO HLT_mu6_L1MU6 #2560542253 -TrigSignatureMoniMT INFO -- #2560542253 Events 10 10 10 10 10 10 - - 10 -TrigSignatureMoniMT INFO -- #2560542253 Features 14 13 16 21 - - -TrigSignatureMoniMT INFO HLT_mu6_idperf_L1MU6 #934918532 -TrigSignatureMoniMT INFO -- #934918532 Events 10 10 10 10 10 10 - - 10 -TrigSignatureMoniMT INFO -- #934918532 Features 14 14 17 27 - - -TrigSignatureMoniMT INFO HLT_mu6_ivarmedium_L1MU6 #1012713062 -TrigSignatureMoniMT INFO -- #1012713062 Events 10 10 10 10 10 10 6 - 6 -TrigSignatureMoniMT INFO -- #1012713062 Features 14 13 16 21 6 - -TrigSignatureMoniMT INFO HLT_mu6_msonly_L1MU6 #3895421032 -TrigSignatureMoniMT INFO -- #3895421032 Events 10 10 10 0 10 - - - 10 -TrigSignatureMoniMT INFO -- #3895421032 Features 14 0 17 - - - -TrigSignatureMoniMT INFO HLT_mu6_mu4_L12MU4 #1713982776 -TrigSignatureMoniMT INFO -- #1713982776 Events 4 4 4 4 4 4 - - 4 -TrigSignatureMoniMT INFO -- #1713982776 Features 8 8 12 18 - - -TrigSignatureMoniMT INFO HLT_mu6_mu6noL1_L1MU6 #451489897 -TrigSignatureMoniMT INFO -- #451489897 Events 10 10 10 10 10 10 5 4 4 -TrigSignatureMoniMT INFO -- #451489897 Features 14 13 16 21 8 7 -TrigSignatureMoniMT INFO HLT_mu6fast_L1MU6 #3518031697 -TrigSignatureMoniMT INFO -- #3518031697 Events 10 10 10 - - - - - 10 -TrigSignatureMoniMT INFO -- #3518031697 Features 14 - - - - - -TrigSignatureMoniMT INFO HLT_mu80_msonly_3layersEC_L1MU20 #761101109 -TrigSignatureMoniMT INFO -- #761101109 Events 8 8 8 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #761101109 Features 10 0 0 - - - -TrigSignatureMoniMT INFO HLT_mu8_L1MU6 #1467711434 -TrigSignatureMoniMT INFO -- #1467711434 Events 10 10 10 10 10 10 - - 10 -TrigSignatureMoniMT INFO -- #1467711434 Features 14 13 15 19 - - -TrigSignatureMoniMT INFO HLT_noalg_L1Calo #355689512 -TrigSignatureMoniMT INFO -- #355689512 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #355689512 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1Calo_EMPTY #3717801557 -TrigSignatureMoniMT INFO -- #3717801557 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3717801557 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM10VH #314199913 -TrigSignatureMoniMT INFO -- #314199913 Events 11 11 - - - - - - 11 -TrigSignatureMoniMT INFO -- #314199913 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM12 #3885916609 -TrigSignatureMoniMT INFO -- #3885916609 Events 16 16 - - - - - - 16 -TrigSignatureMoniMT INFO -- #3885916609 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM15 #480733925 -TrigSignatureMoniMT INFO -- #480733925 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #480733925 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM15VH #2374865899 -TrigSignatureMoniMT INFO -- #2374865899 Events 8 8 - - - - - - 8 -TrigSignatureMoniMT INFO -- #2374865899 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM20VH #3719542824 -TrigSignatureMoniMT INFO -- #3719542824 Events 7 7 - - - - - - 7 -TrigSignatureMoniMT INFO -- #3719542824 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM22VHI #1723589313 -TrigSignatureMoniMT INFO -- #1723589313 Events 6 6 - - - - - - 6 -TrigSignatureMoniMT INFO -- #1723589313 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM3 #4169267792 -TrigSignatureMoniMT INFO -- #4169267792 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #4169267792 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM7 #3226970354 -TrigSignatureMoniMT INFO -- #3226970354 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #3226970354 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1EM8VH #4065285611 -TrigSignatureMoniMT INFO -- #4065285611 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #4065285611 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J100 #1026959128 -TrigSignatureMoniMT INFO -- #1026959128 Events 3 3 - - - - - - 3 -TrigSignatureMoniMT INFO -- #1026959128 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J12 #2640820608 -TrigSignatureMoniMT INFO -- #2640820608 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #2640820608 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J120 #2116228652 -TrigSignatureMoniMT INFO -- #2116228652 Events 1 1 - - - - - - 1 -TrigSignatureMoniMT INFO -- #2116228652 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J15 #1976430774 -TrigSignatureMoniMT INFO -- #1976430774 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #1976430774 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J20 #2241112369 -TrigSignatureMoniMT INFO -- #2241112369 Events 19 19 - - - - - - 19 -TrigSignatureMoniMT INFO -- #2241112369 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J25 #39428635 -TrigSignatureMoniMT INFO -- #39428635 Events 17 17 - - - - - - 17 -TrigSignatureMoniMT INFO -- #39428635 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J30 #3523994129 -TrigSignatureMoniMT INFO -- #3523994129 Events 17 17 - - - - - - 17 -TrigSignatureMoniMT INFO -- #3523994129 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J40 #1497591431 -TrigSignatureMoniMT INFO -- #1497591431 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #1497591431 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J400 #2494874701 -TrigSignatureMoniMT INFO -- #2494874701 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2494874701 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J50 #3346352675 -TrigSignatureMoniMT INFO -- #3346352675 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #3346352675 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J75 #1651897827 -TrigSignatureMoniMT INFO -- #1651897827 Events 6 6 - - - - - - 6 -TrigSignatureMoniMT INFO -- #1651897827 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1J85 #166231461 -TrigSignatureMoniMT INFO -- #166231461 Events 5 5 - - - - - - 5 -TrigSignatureMoniMT INFO -- #166231461 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1RD0_EMPTY #914660695 -TrigSignatureMoniMT INFO -- #914660695 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #914660695 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1RD0_FILLED #211699639 -TrigSignatureMoniMT INFO -- #211699639 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #211699639 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU12 #4248050338 -TrigSignatureMoniMT INFO -- #4248050338 Events 18 18 - - - - - - 18 -TrigSignatureMoniMT INFO -- #4248050338 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU12IM #357557968 -TrigSignatureMoniMT INFO -- #357557968 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #357557968 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU20 #3602376876 -TrigSignatureMoniMT INFO -- #3602376876 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #3602376876 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU20IM #1931583332 -TrigSignatureMoniMT INFO -- #1931583332 Events 10 10 - - - - - - 10 -TrigSignatureMoniMT INFO -- #1931583332 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU30 #1944789678 -TrigSignatureMoniMT INFO -- #1944789678 Events 13 13 - - - - - - 13 -TrigSignatureMoniMT INFO -- #1944789678 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU40 #1394621652 -TrigSignatureMoniMT INFO -- #1394621652 Events 7 7 - - - - - - 7 -TrigSignatureMoniMT INFO -- #1394621652 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU60 #3332424451 -TrigSignatureMoniMT INFO -- #3332424451 Events 5 5 - - - - - - 5 -TrigSignatureMoniMT INFO -- #3332424451 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1TAU8 #3165115874 -TrigSignatureMoniMT INFO -- #3165115874 Events 19 19 - - - - - - 19 -TrigSignatureMoniMT INFO -- #3165115874 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE10 #1583053368 -TrigSignatureMoniMT INFO -- #1583053368 Events 19 19 - - - - - - 19 -TrigSignatureMoniMT INFO -- #1583053368 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE30 #2047368922 -TrigSignatureMoniMT INFO -- #2047368922 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #2047368922 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE300 #1315853555 -TrigSignatureMoniMT INFO -- #1315853555 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #1315853555 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE35 #2313039014 -TrigSignatureMoniMT INFO -- #2313039014 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #2313039014 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE40 #4293469116 -TrigSignatureMoniMT INFO -- #4293469116 Events 14 14 - - - - - - 14 -TrigSignatureMoniMT INFO -- #4293469116 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE45 #2365048177 -TrigSignatureMoniMT INFO -- #2365048177 Events 13 13 - - - - - - 13 -TrigSignatureMoniMT INFO -- #2365048177 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE50 #1168752081 -TrigSignatureMoniMT INFO -- #1168752081 Events 10 10 - - - - - - 10 -TrigSignatureMoniMT INFO -- #1168752081 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE55 #268928384 -TrigSignatureMoniMT INFO -- #268928384 Events 8 8 - - - - - - 8 -TrigSignatureMoniMT INFO -- #268928384 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE60 #4154240531 -TrigSignatureMoniMT INFO -- #4154240531 Events 8 8 - - - - - - 8 -TrigSignatureMoniMT INFO -- #4154240531 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE70 #3765216228 -TrigSignatureMoniMT INFO -- #3765216228 Events 4 4 - - - - - - 4 -TrigSignatureMoniMT INFO -- #3765216228 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_L1XE80 #2742079961 -TrigSignatureMoniMT INFO -- #2742079961 Events 3 3 - - - - - - 3 -TrigSignatureMoniMT INFO -- #2742079961 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM3_EMPTY #2458124284 -TrigSignatureMoniMT INFO -- #2458124284 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2458124284 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM7_EMPTY #299938202 -TrigSignatureMoniMT INFO -- #299938202 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #299938202 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J12_EMPTY #3144024902 -TrigSignatureMoniMT INFO -- #3144024902 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3144024902 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J12_FIRSTEMPTY #3840098930 -TrigSignatureMoniMT INFO -- #3840098930 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3840098930 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_31ETA49_EMPTY #4143623058 -TrigSignatureMoniMT INFO -- #4143623058 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #4143623058 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_EMPTY #2991490897 -TrigSignatureMoniMT INFO -- #2991490897 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2991490897 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY #2214697960 -TrigSignatureMoniMT INFO -- #2214697960 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2214697960 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1RD1_BGRP10 #48519027 -TrigSignatureMoniMT INFO -- #48519027 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #48519027 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1RD1_EMPTY #3925252528 -TrigSignatureMoniMT INFO -- #3925252528 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3925252528 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_EMPTY #56818284 -TrigSignatureMoniMT INFO -- #56818284 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #56818284 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_FILLED #1198298874 -TrigSignatureMoniMT INFO -- #1198298874 Events 20 20 - - - - - - 20 -TrigSignatureMoniMT INFO -- #1198298874 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_UNPAIRED_ISO #2536676873 -TrigSignatureMoniMT INFO -- #2536676873 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #2536676873 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_mb_L1RD2_EMPTY #3788962163 -TrigSignatureMoniMT INFO -- #3788962163 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #3788962163 Features - - - - - - -TrigSignatureMoniMT INFO HLT_noalg_zb_L1ZB #1289992951 -TrigSignatureMoniMT INFO -- #1289992951 Events 0 0 - - - - - - 0 -TrigSignatureMoniMT INFO -- #1289992951 Features - - - - - - -TrigSignatureMoniMT INFO HLT_sct_noise_SCTPEB_L1RD0_EMPTY #3024203296 -TrigSignatureMoniMT INFO -- #3024203296 Events 0 0 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #3024203296 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU100 #2342716369 -TrigSignatureMoniMT INFO -- #2342716369 Events 0 0 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #2342716369 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU12 #372992233 -TrigSignatureMoniMT INFO -- #372992233 Events 18 18 18 18 - - - - 18 -TrigSignatureMoniMT INFO -- #372992233 Features 42 42 - - - - -TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU60 #1376650121 -TrigSignatureMoniMT INFO -- #1376650121 Events 5 5 5 5 - - - - 5 -TrigSignatureMoniMT INFO -- #1376650121 Features 6 6 - - - - -TrigSignatureMoniMT INFO HLT_tau160_idperf_track_L1TAU100 #714660857 -TrigSignatureMoniMT INFO -- #714660857 Events 0 0 0 0 - - - - 0 -TrigSignatureMoniMT INFO -- #714660857 Features 0 0 - - - - -TrigSignatureMoniMT INFO HLT_tau160_idperf_tracktwoMVA_L1TAU100 #2725693236 -TrigSignatureMoniMT INFO -- #2725693236 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #2725693236 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau160_idperf_tracktwo_L1TAU100 #886074432 -TrigSignatureMoniMT INFO -- #886074432 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #886074432 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100 #1747754287 -TrigSignatureMoniMT INFO -- #1747754287 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1747754287 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau160_perf_tracktwoMVA_L1TAU100 #2334140248 -TrigSignatureMoniMT INFO -- #2334140248 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #2334140248 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau160_perf_tracktwo_L1TAU100 #1799096347 -TrigSignatureMoniMT INFO -- #1799096347 Events 0 0 0 0 0 - - - 0 -TrigSignatureMoniMT INFO -- #1799096347 Features 0 0 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_idperf_track_L1TAU12IM #554271976 -TrigSignatureMoniMT INFO -- #554271976 Events 14 14 14 14 - - - - 14 -TrigSignatureMoniMT INFO -- #554271976 Features 24 24 - - - - -TrigSignatureMoniMT INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM #988149859 -TrigSignatureMoniMT INFO -- #988149859 Events 14 14 14 13 13 - - - 13 -TrigSignatureMoniMT INFO -- #988149859 Features 24 17 17 - - - -TrigSignatureMoniMT INFO HLT_tau25_idperf_tracktwo_L1TAU12IM #3346942453 -TrigSignatureMoniMT INFO -- #3346942453 Events 14 14 14 13 13 - - - 13 -TrigSignatureMoniMT INFO -- #3346942453 Features 24 17 17 - - - -TrigSignatureMoniMT INFO HLT_tau25_looseRNN_tracktwoMVA_L1TAU12IM #169452969 -TrigSignatureMoniMT INFO -- #169452969 Events 14 14 12 11 10 - - - 10 -TrigSignatureMoniMT INFO -- #169452969 Features 22 15 13 - - - -TrigSignatureMoniMT INFO HLT_tau25_looseRNN_tracktwo_L1TAU12IM #2490017573 -TrigSignatureMoniMT INFO -- #2490017573 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #2490017573 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwoEF_L1TAU12IM #506456080 -TrigSignatureMoniMT INFO -- #506456080 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #506456080 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwoMVA_L1TAU12IM #4055280067 -TrigSignatureMoniMT INFO -- #4055280067 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #4055280067 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwo_L1TAU12IM #1433975745 -TrigSignatureMoniMT INFO -- #1433975745 Events 14 14 12 11 7 - - - 7 -TrigSignatureMoniMT INFO -- #1433975745 Features 22 15 7 - - - -TrigSignatureMoniMT INFO HLT_tau25_mediumRNN_tracktwoMVA_L1TAU12IM #2222894847 -TrigSignatureMoniMT INFO -- #2222894847 Events 14 14 12 11 7 - - - 7 -TrigSignatureMoniMT INFO -- #2222894847 Features 22 15 10 - - - -TrigSignatureMoniMT INFO HLT_tau25_mediumRNN_tracktwo_L1TAU12IM #698603885 -TrigSignatureMoniMT INFO -- #698603885 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #698603885 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_perf_tracktwoMVA_L1TAU12IM #112814536 -TrigSignatureMoniMT INFO -- #112814536 Events 14 14 14 13 13 - - - 13 -TrigSignatureMoniMT INFO -- #112814536 Features 24 17 17 - - - -TrigSignatureMoniMT INFO HLT_tau25_perf_tracktwo_L1TAU12IM #1129072492 -TrigSignatureMoniMT INFO -- #1129072492 Events 14 14 14 13 13 - - - 13 -TrigSignatureMoniMT INFO -- #1129072492 Features 24 17 17 - - - -TrigSignatureMoniMT INFO HLT_tau25_tightRNN_tracktwoMVA_L1TAU12IM #2472860683 -TrigSignatureMoniMT INFO -- #2472860683 Events 14 14 12 11 5 - - - 5 -TrigSignatureMoniMT INFO -- #2472860683 Features 22 15 6 - - - -TrigSignatureMoniMT INFO HLT_tau25_tightRNN_tracktwo_L1TAU12IM #2537544560 -TrigSignatureMoniMT INFO -- #2537544560 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #2537544560 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau25_verylooseRNN_tracktwoMVA_L1TAU12IM #2992830434 -TrigSignatureMoniMT INFO -- #2992830434 Events 14 14 12 11 10 - - - 10 -TrigSignatureMoniMT INFO -- #2992830434 Features 22 15 14 - - - -TrigSignatureMoniMT INFO HLT_tau25_verylooseRNN_tracktwo_L1TAU12IM #1275052132 -TrigSignatureMoniMT INFO -- #1275052132 Events 14 14 12 11 0 - - - 0 -TrigSignatureMoniMT INFO -- #1275052132 Features 22 15 0 - - - -TrigSignatureMoniMT INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM #2456480859 -TrigSignatureMoniMT INFO -- #2456480859 Events 14 14 11 10 6 - - - 6 -TrigSignatureMoniMT INFO -- #2456480859 Features 20 14 9 - - - -TrigSignatureMoniMT INFO HLT_tilecalib_laser_TilePEB_L1CALREQ2 #1063154655 -TrigSignatureMoniMT INFO -- #1063154655 Events 0 0 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #1063154655 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_timeburner_L1All #819160059 -TrigSignatureMoniMT INFO -- #819160059 Events 20 20 0 - - - - - 0 -TrigSignatureMoniMT INFO -- #819160059 Features 0 - - - - - -TrigSignatureMoniMT INFO HLT_xe100_mht_L1XE50 #532175988 -TrigSignatureMoniMT INFO -- #532175988 Events 10 10 6 - - - - - 6 -TrigSignatureMoniMT INFO -- #532175988 Features 6 - - - - - -TrigSignatureMoniMT INFO HLT_xe100_pfsum_L1XE50 #1890237897 -TrigSignatureMoniMT INFO -- #1890237897 Events 10 10 2 - - - - - 2 -TrigSignatureMoniMT INFO -- #1890237897 Features 2 - - - - - -TrigSignatureMoniMT INFO HLT_xe100_tcpufit_L1XE50 #2803198799 -TrigSignatureMoniMT INFO -- #2803198799 Events 10 10 6 - - - - - 6 -TrigSignatureMoniMT INFO -- #2803198799 Features 6 - - - - - -TrigSignatureMoniMT INFO HLT_xe100_trkmht_L1XE50 #1055916731 -TrigSignatureMoniMT INFO -- #1055916731 Events 10 10 4 - - - - - 4 -TrigSignatureMoniMT INFO -- #1055916731 Features 4 - - - - - -TrigSignatureMoniMT INFO HLT_xe110_mht_L1XE50 #3030733259 -TrigSignatureMoniMT INFO -- #3030733259 Events 10 10 6 - - - - - 6 -TrigSignatureMoniMT INFO -- #3030733259 Features 6 - - - - - -TrigSignatureMoniMT INFO HLT_xe110_tc_em_L1XE50 #607113828 -TrigSignatureMoniMT INFO -- #607113828 Events 10 10 5 - - - - - 5 -TrigSignatureMoniMT INFO -- #607113828 Features 5 - - - - - -TrigSignatureMoniMT INFO HLT_xe110_tcpufit_L1XE50 #892853397 -TrigSignatureMoniMT INFO -- #892853397 Events 10 10 6 - - - - - 6 -TrigSignatureMoniMT INFO -- #892853397 Features 6 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_cell_L1XE10 #1649696554 -TrigSignatureMoniMT INFO -- #1649696554 Events 19 19 17 - - - - - 17 -TrigSignatureMoniMT INFO -- #1649696554 Features 17 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_cell_xe30_tcpufit_L1XE10 #3768353779 -TrigSignatureMoniMT INFO -- #3768353779 Events 19 19 14 - - - - - 14 -TrigSignatureMoniMT INFO -- #3768353779 Features 14 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_mht_L1XE10 #3626903018 -TrigSignatureMoniMT INFO -- #3626903018 Events 19 19 19 - - - - - 19 -TrigSignatureMoniMT INFO -- #3626903018 Features 19 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_pfsum_L1XE10 #998713382 -TrigSignatureMoniMT INFO -- #998713382 Events 19 19 14 - - - - - 14 -TrigSignatureMoniMT INFO -- #998713382 Features 14 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_tcpufit_L1XE10 #1583719916 -TrigSignatureMoniMT INFO -- #1583719916 Events 19 19 14 - - - - - 14 -TrigSignatureMoniMT INFO -- #1583719916 Features 14 - - - - - -TrigSignatureMoniMT INFO HLT_xe30_trkmht_L1XE10 #2468872349 -TrigSignatureMoniMT INFO -- #2468872349 Events 19 19 17 - - - - - 17 -TrigSignatureMoniMT INFO -- #2468872349 Features 17 - - - - - -TrigSignatureMoniMT INFO HLT_xe65_cell_L1XE50 #531141817 -TrigSignatureMoniMT INFO -- #531141817 Events 10 10 7 - - - - - 7 -TrigSignatureMoniMT INFO -- #531141817 Features 7 - - - - - -TrigSignatureMoniMT INFO HLT_xe65_cell_xe110_tcpufit_L1XE50 #115518400 -TrigSignatureMoniMT INFO -- #115518400 Events 10 10 5 - - - - - 5 -TrigSignatureMoniMT INFO -- #115518400 Features 5 - - - - - +TrigSignatureMoniMT 0 INFO The L1 seed to multi-item-seeded chain HLT_noalg_L1Standby could not be completely resolved. This is currently OK. Exception from menu access: L1Item L1_2EM13VH does not exist in the menu +TrigSignatureMoniMT 0 INFO The L1 seed to multi-item-seeded chain HLT_noalg_L1Calo could not be completely resolved. This is currently OK. Exception from menu access: L1Item L1_2EM13VH does not exist in the menu +TrigSignatureMoniMT INFO HLT_2e17_etcut_L12EM15VH #3136730292 +TrigSignatureMoniMT INFO -- #3136730292 Events 2 2 2 2 2 - - - 2 +TrigSignatureMoniMT INFO -- #3136730292 Features 12 296 14 - - - +TrigSignatureMoniMT INFO HLT_2e17_lhvloose_L12EM15VH #2280638160 +TrigSignatureMoniMT INFO -- #2280638160 Events 2 2 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #2280638160 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2e17_lhvloose_L12EM3 #1767768251 +TrigSignatureMoniMT INFO -- #1767768251 Events 20 20 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1767768251 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2e3_etcut_L12EM3 #2613484113 +TrigSignatureMoniMT INFO -- #2613484113 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #2613484113 Features 342 3686 780 - - - +TrigSignatureMoniMT INFO HLT_2g20_tight_L12EM15VH #3837353071 +TrigSignatureMoniMT INFO -- #3837353071 Events 2 2 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #3837353071 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2g35_etcut_L12EM20VH #58053304 +TrigSignatureMoniMT INFO -- #58053304 Events 2 2 1 1 0 - - - 0 +TrigSignatureMoniMT INFO -- #58053304 Features 4 4 0 - - - +TrigSignatureMoniMT INFO HLT_2g35_medium_L12EM20VH #3965466087 +TrigSignatureMoniMT INFO -- #3965466087 Events 2 2 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #3965466087 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_2j330_a10t_lcw_jes_35smcINF_L1J100 #1295975955 +TrigSignatureMoniMT INFO -- #1295975955 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #1295975955 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_2j60_L1J15 #927735533 +TrigSignatureMoniMT INFO -- #927735533 Events 20 20 10 - - - - - 10 +TrigSignatureMoniMT INFO -- #927735533 Features 28 - - - - - +TrigSignatureMoniMT INFO HLT_2mu10_bJpsimumu_L12MU10 #3498558358 +TrigSignatureMoniMT INFO -- #3498558358 Events 3 3 3 3 3 2 - - 0 +TrigSignatureMoniMT INFO -- #3498558358 Features 12 12 16 4 - - +TrigSignatureMoniMT INFO HLT_2mu10_bUpsimumu_L12MU10 #234102568 +TrigSignatureMoniMT INFO -- #234102568 Events 3 3 3 3 3 2 - - 0 +TrigSignatureMoniMT INFO -- #234102568 Features 12 12 16 4 - - +TrigSignatureMoniMT INFO HLT_2mu14_L12MU10 #2619091790 +TrigSignatureMoniMT INFO -- #2619091790 Events 3 3 3 1 1 1 - - 1 +TrigSignatureMoniMT INFO -- #2619091790 Features 12 4 4 4 - - +TrigSignatureMoniMT INFO HLT_2mu15_L12MU10 #557204938 +TrigSignatureMoniMT INFO -- #557204938 Events 3 3 3 1 1 1 - - 1 +TrigSignatureMoniMT INFO -- #557204938 Features 12 4 4 4 - - +TrigSignatureMoniMT INFO HLT_2mu4_L12MU4 #2999632714 +TrigSignatureMoniMT INFO -- #2999632714 Events 4 4 4 4 4 4 - - 4 +TrigSignatureMoniMT INFO -- #2999632714 Features 16 16 24 36 - - +TrigSignatureMoniMT INFO HLT_2mu4_bDimu_L12MU4 #1730084172 +TrigSignatureMoniMT INFO -- #1730084172 Events 4 4 4 4 4 4 - - 0 +TrigSignatureMoniMT INFO -- #1730084172 Features 16 16 24 18 - - +TrigSignatureMoniMT INFO HLT_2mu4_bJpsimumu_L12MU4 #4276347155 +TrigSignatureMoniMT INFO -- #4276347155 Events 4 4 4 4 4 4 - - 0 +TrigSignatureMoniMT INFO -- #4276347155 Features 16 16 24 18 - - +TrigSignatureMoniMT INFO HLT_2mu4_bUpsimumu_L12MU4 #4008168535 +TrigSignatureMoniMT INFO -- #4008168535 Events 4 4 4 4 4 4 - - 0 +TrigSignatureMoniMT INFO -- #4008168535 Features 16 16 24 18 - - +TrigSignatureMoniMT INFO HLT_2mu4_muonqual_L12MU4 #1584776935 +TrigSignatureMoniMT INFO -- #1584776935 Events 4 4 4 4 4 4 - - 4 +TrigSignatureMoniMT INFO -- #1584776935 Features 16 16 24 36 - - +TrigSignatureMoniMT INFO HLT_2mu6Comb_L12MU6 #2046267508 +TrigSignatureMoniMT INFO -- #2046267508 Events 4 4 4 3 - - - - 3 +TrigSignatureMoniMT INFO -- #2046267508 Features 16 12 - - - - +TrigSignatureMoniMT INFO HLT_2mu6_10invm70_L1MU6 #1316992871 +TrigSignatureMoniMT INFO -- #1316992871 Events 10 10 4 3 3 3 - - 3 +TrigSignatureMoniMT INFO -- #1316992871 Features 16 12 18 28 - - +TrigSignatureMoniMT INFO HLT_2mu6_Dr_L12MU4 #3304584056 +TrigSignatureMoniMT INFO -- #3304584056 Events 4 4 4 3 - - - - 3 +TrigSignatureMoniMT INFO -- #3304584056 Features 16 12 - - - - +TrigSignatureMoniMT INFO HLT_2mu6_L12MU6 #1747073535 +TrigSignatureMoniMT INFO -- #1747073535 Events 4 4 4 3 3 3 - - 3 +TrigSignatureMoniMT INFO -- #1747073535 Features 16 12 18 28 - - +TrigSignatureMoniMT INFO HLT_2mu6_muonqual_L12MU6 #2398136098 +TrigSignatureMoniMT INFO -- #2398136098 Events 4 4 4 3 3 3 - - 3 +TrigSignatureMoniMT INFO -- #2398136098 Features 16 12 18 28 - - +TrigSignatureMoniMT INFO HLT_3j200_L1J100 #2199422919 +TrigSignatureMoniMT INFO -- #2199422919 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #2199422919 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_3j200_L1J20 #493765146 +TrigSignatureMoniMT INFO -- #493765146 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #493765146 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_3mu6_L13MU6 #1832399408 +TrigSignatureMoniMT INFO -- #1832399408 Events 0 0 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1832399408 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_3mu6_msonly_L13MU6 #1199773318 +TrigSignatureMoniMT INFO -- #1199773318 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1199773318 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_3mu8_msonly_L13MU6 #424835335 +TrigSignatureMoniMT INFO -- #424835335 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #424835335 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_4mu4_L14MU4 #1834383636 +TrigSignatureMoniMT INFO -- #1834383636 Events 0 0 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1834383636 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_5j70_0eta240_L14J20 #1175391812 +TrigSignatureMoniMT INFO -- #1175391812 Events 7 7 1 - - - - - 1 +TrigSignatureMoniMT INFO -- #1175391812 Features 5 - - - - - +TrigSignatureMoniMT INFO HLT_beamspot_allTE_trkfast_BeamSpotPEB_L1J15 #3989372080 +TrigSignatureMoniMT INFO -- #3989372080 Events 20 20 20 20 - - - - 20 +TrigSignatureMoniMT INFO -- #3989372080 Features 20 20 - - - - +TrigSignatureMoniMT INFO HLT_beamspot_trkFS_trkfast_BeamSpotPEB_L1J15 #628534730 +TrigSignatureMoniMT INFO -- #628534730 Events 20 20 20 20 - - - - 20 +TrigSignatureMoniMT INFO -- #628534730 Features 20 20 - - - - +TrigSignatureMoniMT INFO HLT_costmonitor_CostMonDS_L1All #843341480 +TrigSignatureMoniMT INFO -- #843341480 Events 20 20 20 - - - - - 20 +TrigSignatureMoniMT INFO -- #843341480 Features 20 - - - - - +TrigSignatureMoniMT INFO HLT_e140_lhloose_L1EM22VHI #3471067710 +TrigSignatureMoniMT INFO -- #3471067710 Events 6 6 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #3471067710 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_e140_lhloose_nod0_L1EM22VHI #4128870680 +TrigSignatureMoniMT INFO -- #4128870680 Events 6 6 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #4128870680 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_e17_lhloose_mu14_L1EM15VH_MU10 #899946230 +TrigSignatureMoniMT INFO -- #899946230 Events 3 3 2 2 2 2 - - 2 +TrigSignatureMoniMT INFO -- #899946230 Features 2 45 4 2 - - +TrigSignatureMoniMT INFO HLT_e17_lhvloose_nod0_L1EM15VH #140779220 +TrigSignatureMoniMT INFO -- #140779220 Events 8 8 6 6 6 5 - - 5 +TrigSignatureMoniMT INFO -- #140779220 Features 6 78 10 5 - - +TrigSignatureMoniMT INFO HLT_e26_etcut_L1EM22VHI #1703681121 +TrigSignatureMoniMT INFO -- #1703681121 Events 6 6 6 6 6 - - - 6 +TrigSignatureMoniMT INFO -- #1703681121 Features 7 133 7 - - - +TrigSignatureMoniMT INFO HLT_e26_lhtight_L1EM22VHI #1995263521 +TrigSignatureMoniMT INFO -- #1995263521 Events 6 6 5 5 5 4 - - 4 +TrigSignatureMoniMT INFO -- #1995263521 Features 5 64 8 4 - - +TrigSignatureMoniMT INFO HLT_e26_lhtight_nod0_L1EM22VHI #939763520 +TrigSignatureMoniMT INFO -- #939763520 Events 6 6 5 5 5 4 - - 4 +TrigSignatureMoniMT INFO -- #939763520 Features 5 64 8 4 - - +TrigSignatureMoniMT INFO HLT_e26_lhtight_nod0_L1EM24VHI #4227411116 +TrigSignatureMoniMT INFO -- #4227411116 Events 6 6 5 5 5 4 - - 4 +TrigSignatureMoniMT INFO -- #4227411116 Features 5 64 8 4 - - +TrigSignatureMoniMT INFO HLT_e300_etcut_L1EM22VHI #2128128255 +TrigSignatureMoniMT INFO -- #2128128255 Events 6 6 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #2128128255 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_e3_etcut1step_mu26_L1EM8I_MU10 #2209076666 +TrigSignatureMoniMT INFO -- #2209076666 Events 5 5 3 1 1 1 - - 1 +TrigSignatureMoniMT INFO -- #2209076666 Features 3 1 1 1 - - +TrigSignatureMoniMT INFO HLT_e3_etcut1step_mu6fast_L1EM8I_MU10 #2086577378 +TrigSignatureMoniMT INFO -- #2086577378 Events 5 5 3 - - - - - 3 +TrigSignatureMoniMT INFO -- #2086577378 Features 3 - - - - - +TrigSignatureMoniMT INFO HLT_e3_etcut_L1EM3 #683953566 +TrigSignatureMoniMT INFO -- #683953566 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #683953566 Features 171 1843 390 - - - +TrigSignatureMoniMT INFO HLT_e5_etcut_L1EM3 #324908483 +TrigSignatureMoniMT INFO -- #324908483 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #324908483 Features 137 1654 190 - - - +TrigSignatureMoniMT INFO HLT_e5_lhloose_noringer_L1EM3 #1053337356 +TrigSignatureMoniMT INFO -- #1053337356 Events 20 20 17 17 17 4 - - 4 +TrigSignatureMoniMT INFO -- #1053337356 Features 56 651 116 5 - - +TrigSignatureMoniMT INFO HLT_e5_lhmedium_noringer_L1EM3 #176627878 +TrigSignatureMoniMT INFO -- #176627878 Events 20 20 16 16 16 4 - - 4 +TrigSignatureMoniMT INFO -- #176627878 Features 48 531 93 5 - - +TrigSignatureMoniMT INFO HLT_e5_lhtight_noringer_L1EM3 #2758326765 +TrigSignatureMoniMT INFO -- #2758326765 Events 20 20 16 16 16 4 - - 4 +TrigSignatureMoniMT INFO -- #2758326765 Features 45 513 84 5 - - +TrigSignatureMoniMT INFO HLT_e5_lhtight_noringer_nod0_L1EM3 #1690619419 +TrigSignatureMoniMT INFO -- #1690619419 Events 20 20 16 16 16 4 - - 4 +TrigSignatureMoniMT INFO -- #1690619419 Features 45 513 84 5 - - +TrigSignatureMoniMT INFO HLT_e60_lhmedium_L1EM22VHI #298591874 +TrigSignatureMoniMT INFO -- #298591874 Events 6 6 2 2 2 2 - - 2 +TrigSignatureMoniMT INFO -- #298591874 Features 2 33 4 2 - - +TrigSignatureMoniMT INFO HLT_e60_lhmedium_nod0_L1EM22VHI #4115486024 +TrigSignatureMoniMT INFO -- #4115486024 Events 6 6 2 2 2 2 - - 2 +TrigSignatureMoniMT INFO -- #4115486024 Features 2 33 4 2 - - +TrigSignatureMoniMT INFO HLT_e7_etcut_L1EM3 #1959043579 +TrigSignatureMoniMT INFO -- #1959043579 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #1959043579 Features 89 1135 112 - - - +TrigSignatureMoniMT INFO HLT_e7_lhmedium_mu24_L1MU20 #2970063918 +TrigSignatureMoniMT INFO -- #2970063918 Events 8 8 7 5 5 1 - - 1 +TrigSignatureMoniMT INFO -- #2970063918 Features 9 72 14 1 - - +TrigSignatureMoniMT INFO HLT_g140_etcut_L1EM22VHI #3879926061 +TrigSignatureMoniMT INFO -- #3879926061 Events 6 6 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #3879926061 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_g140_etcut_L1EM24VHI #1045486446 +TrigSignatureMoniMT INFO -- #1045486446 Events 6 6 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1045486446 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_g140_loose_L1EM22VHI #1776910226 +TrigSignatureMoniMT INFO -- #1776910226 Events 6 6 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1776910226 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_g20_etcut_LArPEB_L1EM15 #2706532790 +TrigSignatureMoniMT INFO -- #2706532790 Events 14 14 14 14 12 12 - - 12 +TrigSignatureMoniMT INFO -- #2706532790 Features 24 24 22 20 - - +TrigSignatureMoniMT INFO HLT_g25_loose_L1EM15VH #531040386 +TrigSignatureMoniMT INFO -- #531040386 Events 8 8 7 7 7 6 - - 6 +TrigSignatureMoniMT INFO -- #531040386 Features 9 9 18 7 - - +TrigSignatureMoniMT INFO HLT_g25_medium_L1EM15VH #3776886359 +TrigSignatureMoniMT INFO -- #3776886359 Events 8 8 7 7 7 6 - - 6 +TrigSignatureMoniMT INFO -- #3776886359 Features 7 7 13 6 - - +TrigSignatureMoniMT INFO HLT_g25_medium_mu24_ivarmedium_L1MU20 #1007052793 +TrigSignatureMoniMT INFO -- #1007052793 Events 8 8 2 1 1 1 0 - 0 +TrigSignatureMoniMT INFO -- #1007052793 Features 2 1 3 1 0 - +TrigSignatureMoniMT INFO HLT_g25_tight_L1EM15VH #3691147775 +TrigSignatureMoniMT INFO -- #3691147775 Events 8 8 7 7 7 5 - - 5 +TrigSignatureMoniMT INFO -- #3691147775 Features 7 7 13 5 - - +TrigSignatureMoniMT INFO HLT_g35_medium_g25_medium_L12EM20VH #1158879722 +TrigSignatureMoniMT INFO -- #1158879722 Events 2 2 0 0 0 0 - - 0 +TrigSignatureMoniMT INFO -- #1158879722 Features 0 0 0 0 - - +TrigSignatureMoniMT INFO HLT_g5_etcut_L1EM3 #471243435 +TrigSignatureMoniMT INFO -- #471243435 Events 20 20 20 20 20 - - - 20 +TrigSignatureMoniMT INFO -- #471243435 Features 137 137 190 - - - +TrigSignatureMoniMT INFO HLT_g5_etcut_LArPEB_L1EM3 #3486231698 +TrigSignatureMoniMT INFO -- #3486231698 Events 20 20 20 20 20 20 - - 20 +TrigSignatureMoniMT INFO -- #3486231698 Features 137 137 190 118 - - +TrigSignatureMoniMT INFO HLT_g5_loose_L1EM3 #3230088967 +TrigSignatureMoniMT INFO -- #3230088967 Events 20 20 17 17 17 9 - - 9 +TrigSignatureMoniMT INFO -- #3230088967 Features 56 56 116 12 - - +TrigSignatureMoniMT INFO HLT_g5_medium_L1EM3 #385248610 +TrigSignatureMoniMT INFO -- #385248610 Events 20 20 16 16 16 9 - - 9 +TrigSignatureMoniMT INFO -- #385248610 Features 48 48 93 12 - - +TrigSignatureMoniMT INFO HLT_g5_tight_L1EM3 #3280865118 +TrigSignatureMoniMT INFO -- #3280865118 Events 20 20 16 16 16 9 - - 9 +TrigSignatureMoniMT INFO -- #3280865118 Features 45 45 84 9 - - +TrigSignatureMoniMT INFO HLT_j0_perf_L1J12_EMPTY #1341875780 +TrigSignatureMoniMT INFO -- #1341875780 Events 0 0 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #1341875780 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20 #4034799151 +TrigSignatureMoniMT INFO -- #4034799151 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #4034799151 Features 425 - - - - - +TrigSignatureMoniMT INFO HLT_j225_ftf_subjesgscIS_bmv2c1040_split_L1J100 #3992507557 +TrigSignatureMoniMT INFO -- #3992507557 Events 3 3 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #3992507557 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_j260_320eta490_L1J20 #3084792704 +TrigSignatureMoniMT INFO -- #3084792704 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3084792704 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j260_320eta490_L1J75_31ETA49 #3769257182 +TrigSignatureMoniMT INFO -- #3769257182 Events 2 2 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3769257182 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j275_ftf_subjesgscIS_bmv2c1060_split_L1J100 #1211559599 +TrigSignatureMoniMT INFO -- #1211559599 Events 3 3 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #1211559599 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_j300_ftf_subjesgscIS_bmv2c1070_split_L1J100 #3706723666 +TrigSignatureMoniMT INFO -- #3706723666 Events 3 3 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #3706723666 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_j360_ftf_subjesgscIS_bmv2c1077_split_L1J100 #1837565816 +TrigSignatureMoniMT INFO -- #1837565816 Events 3 3 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #1837565816 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_j420_L1J100 #2659902019 +TrigSignatureMoniMT INFO -- #2659902019 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #2659902019 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j420_L1J20 #2205518067 +TrigSignatureMoniMT INFO -- #2205518067 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #2205518067 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j420_ftf_subjesgscIS_L1J20 #4179085188 +TrigSignatureMoniMT INFO -- #4179085188 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #4179085188 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j45_L1J15 #1364976160 +TrigSignatureMoniMT INFO -- #1364976160 Events 20 20 19 - - - - - 19 +TrigSignatureMoniMT INFO -- #1364976160 Features 50 - - - - - +TrigSignatureMoniMT INFO HLT_j45_cssktc_nojcalib_L1J20 #3295122398 +TrigSignatureMoniMT INFO -- #3295122398 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #3295122398 Features 27 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_L1J15 #868405538 +TrigSignatureMoniMT INFO -- #868405538 Events 20 20 19 - - - - - 19 +TrigSignatureMoniMT INFO -- #868405538 Features 50 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_csskpf_nojcalib_L1J20 #3533281867 +TrigSignatureMoniMT INFO -- #3533281867 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #3533281867 Features 25 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_pf_L1J20 #1335156103 +TrigSignatureMoniMT INFO -- #1335156103 Events 19 19 16 - - - - - 16 +TrigSignatureMoniMT INFO -- #1335156103 Features 31 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_pf_nojcalib_L1J20 #3658890913 +TrigSignatureMoniMT INFO -- #3658890913 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #3658890913 Features 29 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_011jvt_L1J15 #2857031468 +TrigSignatureMoniMT INFO -- #2857031468 Events 20 20 12 - - - - - 12 +TrigSignatureMoniMT INFO -- #2857031468 Features 20 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_015jvt_L1J15 #2938374624 +TrigSignatureMoniMT INFO -- #2938374624 Events 20 20 12 - - - - - 12 +TrigSignatureMoniMT INFO -- #2938374624 Features 19 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_059jvt_L1J15 #1593009344 +TrigSignatureMoniMT INFO -- #1593009344 Events 20 20 12 - - - - - 12 +TrigSignatureMoniMT INFO -- #1593009344 Features 19 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_L1J15 #3341539267 +TrigSignatureMoniMT INFO -- #3341539267 Events 20 20 19 - - - - - 19 +TrigSignatureMoniMT INFO -- #3341539267 Features 51 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_bmv2c1070_split_L1J20 #991419339 +TrigSignatureMoniMT INFO -- #991419339 Events 19 19 19 4 - - - - 4 +TrigSignatureMoniMT INFO -- #991419339 Features 50 8 - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_boffperf_split_L1J20 #1961149049 +TrigSignatureMoniMT INFO -- #1961149049 Events 19 19 19 19 - - - - 19 +TrigSignatureMoniMT INFO -- #1961149049 Features 50 50 - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subjesgscIS_pf_L1J20 #761060030 +TrigSignatureMoniMT INFO -- #761060030 Events 19 19 16 - - - - - 16 +TrigSignatureMoniMT INFO -- #761060030 Features 31 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_L1J15 #1509925407 +TrigSignatureMoniMT INFO -- #1509925407 Events 20 20 18 - - - - - 18 +TrigSignatureMoniMT INFO -- #1509925407 Features 44 - - - - - +TrigSignatureMoniMT INFO HLT_j45_ftf_subresjesgscIS_pf_L1J20 #4012311417 +TrigSignatureMoniMT INFO -- #4012311417 Events 19 19 16 - - - - - 16 +TrigSignatureMoniMT INFO -- #4012311417 Features 31 - - - - - +TrigSignatureMoniMT INFO HLT_j45_nojcalib_L1J20 #2042444294 +TrigSignatureMoniMT INFO -- #2042444294 Events 19 19 17 - - - - - 17 +TrigSignatureMoniMT INFO -- #2042444294 Features 39 - - - - - +TrigSignatureMoniMT INFO HLT_j45_sktc_nojcalib_L1J20 #1542468090 +TrigSignatureMoniMT INFO -- #1542468090 Events 19 19 15 - - - - - 15 +TrigSignatureMoniMT INFO -- #1542468090 Features 26 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10_lcw_subjes_L1J100 #3327656707 +TrigSignatureMoniMT INFO -- #3327656707 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3327656707 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10_lcw_subjes_L1J20 #215408633 +TrigSignatureMoniMT INFO -- #215408633 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #215408633 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10r_L1J100 #1151767619 +TrigSignatureMoniMT INFO -- #1151767619 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #1151767619 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10r_L1J20 #3875082669 +TrigSignatureMoniMT INFO -- #3875082669 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3875082669 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10t_lcw_jes_30smcINF_L1J100 #2296827117 +TrigSignatureMoniMT INFO -- #2296827117 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #2296827117 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j460_a10t_lcw_jes_L1J100 #436385969 +TrigSignatureMoniMT INFO -- #436385969 Events 3 3 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #436385969 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20 #3634067472 +TrigSignatureMoniMT INFO -- #3634067472 Events 19 19 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3634067472 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_j80_L1J15 #2440872308 +TrigSignatureMoniMT INFO -- #2440872308 Events 20 20 13 - - - - - 13 +TrigSignatureMoniMT INFO -- #2440872308 Features 23 - - - - - +TrigSignatureMoniMT INFO HLT_j80_j60_L1J15 #582699527 +TrigSignatureMoniMT INFO -- #582699527 Events 20 20 8 - - - - - 8 +TrigSignatureMoniMT INFO -- #582699527 Features 23 - - - - - +TrigSignatureMoniMT INFO HLT_j85_L1J20 #510475538 +TrigSignatureMoniMT INFO -- #510475538 Events 19 19 13 - - - - - 13 +TrigSignatureMoniMT INFO -- #510475538 Features 21 - - - - - +TrigSignatureMoniMT INFO HLT_j85_ftf_L1J20 #877042532 +TrigSignatureMoniMT INFO -- #877042532 Events 19 19 13 - - - - - 13 +TrigSignatureMoniMT INFO -- #877042532 Features 21 - - - - - +TrigSignatureMoniMT INFO HLT_j85_ftf_pf_L1J20 #1538535401 +TrigSignatureMoniMT INFO -- #1538535401 Events 19 19 8 - - - - - 8 +TrigSignatureMoniMT INFO -- #1538535401 Features 13 - - - - - +TrigSignatureMoniMT INFO HLT_mb_sptrk_L1RD0_FILLED #4097312640 +TrigSignatureMoniMT INFO -- #4097312640 Events 20 20 20 20 - - - - 20 +TrigSignatureMoniMT INFO -- #4097312640 Features 20 20 - - - - +TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU20 #997163309 +TrigSignatureMoniMT INFO -- #997163309 Events 8 8 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #997163309 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_mu0_muoncalib_L1MU4_EMPTY #782182242 +TrigSignatureMoniMT INFO -- #782182242 Events 0 0 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #782182242 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_mu10_L1MU10 #209090273 +TrigSignatureMoniMT INFO -- #209090273 Events 10 10 10 10 10 9 - - 9 +TrigSignatureMoniMT INFO -- #209090273 Features 13 12 13 11 - - +TrigSignatureMoniMT INFO HLT_mu10_ivarmedium_mu10_10invm70_L12MU10 #2386882549 +TrigSignatureMoniMT INFO -- #2386882549 Events 3 3 3 2 2 2 2 - 2 +TrigSignatureMoniMT INFO -- #2386882549 Features 6 4 4 4 2 - +TrigSignatureMoniMT INFO HLT_mu10_lateMu_L1MU10 #48780310 +TrigSignatureMoniMT INFO -- #48780310 Events 10 10 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #48780310 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_mu11_mu6_bJpsimumu_L1MU11_2MU6 #2504965945 +TrigSignatureMoniMT INFO -- #2504965945 Events 4 4 4 0 3 0 - - 0 +TrigSignatureMoniMT INFO -- #2504965945 Features 8 0 6 0 - - +TrigSignatureMoniMT INFO HLT_mu11_mu6_bUpsimumu_L1MU11_2MU6 #1171632195 +TrigSignatureMoniMT INFO -- #1171632195 Events 4 4 4 0 3 0 - - 0 +TrigSignatureMoniMT INFO -- #1171632195 Features 8 0 6 0 - - +TrigSignatureMoniMT INFO HLT_mu14_L1MU10 #1696906927 +TrigSignatureMoniMT INFO -- #1696906927 Events 10 10 10 7 7 7 - - 7 +TrigSignatureMoniMT INFO -- #1696906927 Features 13 8 8 8 - - +TrigSignatureMoniMT INFO HLT_mu20_2mu4noL1_L1MU20 #1029128679 +TrigSignatureMoniMT INFO -- #1029128679 Events 8 8 8 5 5 5 1 1 1 +TrigSignatureMoniMT INFO -- #1029128679 Features 10 6 6 6 2 2 +TrigSignatureMoniMT INFO HLT_mu20_ivar_L1MU6 #2083734526 +TrigSignatureMoniMT INFO -- #2083734526 Events 10 10 10 5 5 - - - 5 +TrigSignatureMoniMT INFO -- #2083734526 Features 14 6 5 - - - +TrigSignatureMoniMT INFO HLT_mu22_2mu4noL1_L1MU20 #3427670100 +TrigSignatureMoniMT INFO -- #3427670100 Events 8 8 8 5 5 5 1 1 1 +TrigSignatureMoniMT INFO -- #3427670100 Features 10 6 6 6 2 2 +TrigSignatureMoniMT INFO HLT_mu22_mu8noL1_L1MU20 #3165652409 +TrigSignatureMoniMT INFO -- #3165652409 Events 8 8 8 5 5 5 2 2 2 +TrigSignatureMoniMT INFO -- #3165652409 Features 10 6 6 6 3 3 +TrigSignatureMoniMT INFO HLT_mu24_2mu4noL1_L1MU20 #3233544630 +TrigSignatureMoniMT INFO -- #3233544630 Events 8 8 8 5 5 5 1 1 1 +TrigSignatureMoniMT INFO -- #3233544630 Features 10 6 6 6 2 2 +TrigSignatureMoniMT INFO HLT_mu24_L1MU20 #417425162 +TrigSignatureMoniMT INFO -- #417425162 Events 8 8 8 5 5 5 - - 5 +TrigSignatureMoniMT INFO -- #417425162 Features 10 6 6 6 - - +TrigSignatureMoniMT INFO HLT_mu24_idperf_L1MU20 #677658909 +TrigSignatureMoniMT INFO -- #677658909 Events 8 8 6 6 6 6 - - 6 +TrigSignatureMoniMT INFO -- #677658909 Features 7 7 7 7 - - +TrigSignatureMoniMT INFO HLT_mu24_mu10noL1_L1MU20 #2563354236 +TrigSignatureMoniMT INFO -- #2563354236 Events 8 8 8 5 5 5 2 2 2 +TrigSignatureMoniMT INFO -- #2563354236 Features 10 6 6 6 3 3 +TrigSignatureMoniMT INFO HLT_mu26_L1MU20 #311138376 +TrigSignatureMoniMT INFO -- #311138376 Events 8 8 8 5 4 3 - - 3 +TrigSignatureMoniMT INFO -- #311138376 Features 10 6 5 4 - - +TrigSignatureMoniMT INFO HLT_mu26_ivarmedium_L1MU20 #3411723090 +TrigSignatureMoniMT INFO -- #3411723090 Events 8 8 8 5 4 3 2 - 2 +TrigSignatureMoniMT INFO -- #3411723090 Features 10 6 5 4 2 - +TrigSignatureMoniMT INFO HLT_mu26_mu10noL1_L1MU20 #2318302287 +TrigSignatureMoniMT INFO -- #2318302287 Events 8 8 8 5 4 3 1 1 1 +TrigSignatureMoniMT INFO -- #2318302287 Features 10 6 5 4 2 2 +TrigSignatureMoniMT INFO HLT_mu26_mu8noL1_L1MU20 #2233067926 +TrigSignatureMoniMT INFO -- #2233067926 Events 8 8 8 5 4 3 1 1 1 +TrigSignatureMoniMT INFO -- #2233067926 Features 10 6 5 4 2 2 +TrigSignatureMoniMT INFO HLT_mu28_ivarmedium_L1MU20 #1963262787 +TrigSignatureMoniMT INFO -- #1963262787 Events 8 8 8 5 4 3 2 - 2 +TrigSignatureMoniMT INFO -- #1963262787 Features 10 6 5 3 2 - +TrigSignatureMoniMT INFO HLT_mu28_mu8noL1_L1MU20 #86648125 +TrigSignatureMoniMT INFO -- #86648125 Events 8 8 8 5 4 3 1 1 1 +TrigSignatureMoniMT INFO -- #86648125 Features 10 6 5 3 1 1 +TrigSignatureMoniMT INFO HLT_mu35_ivarmedium_L1MU20 #597064890 +TrigSignatureMoniMT INFO -- #597064890 Events 8 8 8 5 3 2 1 - 1 +TrigSignatureMoniMT INFO -- #597064890 Features 10 6 4 2 1 - +TrigSignatureMoniMT INFO HLT_mu50_L1MU20 #3657158931 +TrigSignatureMoniMT INFO -- #3657158931 Events 8 8 8 5 1 1 - - 1 +TrigSignatureMoniMT INFO -- #3657158931 Features 10 6 1 1 - - +TrigSignatureMoniMT INFO HLT_mu50_RPCPEBSecondaryReadout_L1MU20 #827327262 +TrigSignatureMoniMT INFO -- #827327262 Events 8 8 8 5 1 1 1 - 1 +TrigSignatureMoniMT INFO -- #827327262 Features 10 6 1 1 1 - +TrigSignatureMoniMT INFO HLT_mu60_0eta105_msonly_L1MU20 #1642591450 +TrigSignatureMoniMT INFO -- #1642591450 Events 8 8 1 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1642591450 Features 2 0 0 - - - +TrigSignatureMoniMT INFO HLT_mu60_L1MU20 #2871837722 +TrigSignatureMoniMT INFO -- #2871837722 Events 8 8 8 5 1 1 - - 1 +TrigSignatureMoniMT INFO -- #2871837722 Features 10 6 1 1 - - +TrigSignatureMoniMT INFO HLT_mu6Comb_L1MU6 #996392590 +TrigSignatureMoniMT INFO -- #996392590 Events 10 10 10 10 - - - - 10 +TrigSignatureMoniMT INFO -- #996392590 Features 14 13 - - - - +TrigSignatureMoniMT INFO HLT_mu6_L1MU6 #2560542253 +TrigSignatureMoniMT INFO -- #2560542253 Events 10 10 10 10 10 10 - - 10 +TrigSignatureMoniMT INFO -- #2560542253 Features 14 13 16 21 - - +TrigSignatureMoniMT INFO HLT_mu6_idperf_L1MU6 #934918532 +TrigSignatureMoniMT INFO -- #934918532 Events 10 10 10 10 10 10 - - 10 +TrigSignatureMoniMT INFO -- #934918532 Features 14 14 17 27 - - +TrigSignatureMoniMT INFO HLT_mu6_ivarmedium_L1MU6 #1012713062 +TrigSignatureMoniMT INFO -- #1012713062 Events 10 10 10 10 10 10 6 - 6 +TrigSignatureMoniMT INFO -- #1012713062 Features 14 13 16 21 6 - +TrigSignatureMoniMT INFO HLT_mu6_msonly_L1MU6 #3895421032 +TrigSignatureMoniMT INFO -- #3895421032 Events 10 10 10 0 10 - - - 10 +TrigSignatureMoniMT INFO -- #3895421032 Features 14 0 17 - - - +TrigSignatureMoniMT INFO HLT_mu6_mu4_L12MU4 #1713982776 +TrigSignatureMoniMT INFO -- #1713982776 Events 4 4 4 4 4 4 - - 4 +TrigSignatureMoniMT INFO -- #1713982776 Features 8 8 12 18 - - +TrigSignatureMoniMT INFO HLT_mu6_mu6noL1_L1MU6 #451489897 +TrigSignatureMoniMT INFO -- #451489897 Events 10 10 10 10 10 10 5 4 4 +TrigSignatureMoniMT INFO -- #451489897 Features 14 13 16 21 8 7 +TrigSignatureMoniMT INFO HLT_mu6fast_L1MU6 #3518031697 +TrigSignatureMoniMT INFO -- #3518031697 Events 10 10 10 - - - - - 10 +TrigSignatureMoniMT INFO -- #3518031697 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_mu80_L1MU20 #387900377 +TrigSignatureMoniMT INFO -- #387900377 Events 8 8 8 5 0 0 - - 0 +TrigSignatureMoniMT INFO -- #387900377 Features 10 6 0 0 - - +TrigSignatureMoniMT INFO HLT_mu80_msonly_3layersEC_L1MU20 #761101109 +TrigSignatureMoniMT INFO -- #761101109 Events 8 8 8 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #761101109 Features 10 0 0 - - - +TrigSignatureMoniMT INFO HLT_mu8_L1MU6 #1467711434 +TrigSignatureMoniMT INFO -- #1467711434 Events 10 10 10 10 10 10 - - 10 +TrigSignatureMoniMT INFO -- #1467711434 Features 14 13 15 19 - - +TrigSignatureMoniMT INFO HLT_noalg_L1Calo #355689512 +TrigSignatureMoniMT INFO -- #355689512 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #355689512 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1Calo_EMPTY #3717801557 +TrigSignatureMoniMT INFO -- #3717801557 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3717801557 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM10VH #314199913 +TrigSignatureMoniMT INFO -- #314199913 Events 11 11 - - - - - - 11 +TrigSignatureMoniMT INFO -- #314199913 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM12 #3885916609 +TrigSignatureMoniMT INFO -- #3885916609 Events 16 16 - - - - - - 16 +TrigSignatureMoniMT INFO -- #3885916609 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM15 #480733925 +TrigSignatureMoniMT INFO -- #480733925 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #480733925 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM15VH #2374865899 +TrigSignatureMoniMT INFO -- #2374865899 Events 8 8 - - - - - - 8 +TrigSignatureMoniMT INFO -- #2374865899 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM20VH #3719542824 +TrigSignatureMoniMT INFO -- #3719542824 Events 7 7 - - - - - - 7 +TrigSignatureMoniMT INFO -- #3719542824 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM22VHI #1723589313 +TrigSignatureMoniMT INFO -- #1723589313 Events 6 6 - - - - - - 6 +TrigSignatureMoniMT INFO -- #1723589313 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM3 #4169267792 +TrigSignatureMoniMT INFO -- #4169267792 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #4169267792 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM7 #3226970354 +TrigSignatureMoniMT INFO -- #3226970354 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #3226970354 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1EM8VH #4065285611 +TrigSignatureMoniMT INFO -- #4065285611 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #4065285611 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J100 #1026959128 +TrigSignatureMoniMT INFO -- #1026959128 Events 3 3 - - - - - - 3 +TrigSignatureMoniMT INFO -- #1026959128 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J12 #2640820608 +TrigSignatureMoniMT INFO -- #2640820608 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #2640820608 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J120 #2116228652 +TrigSignatureMoniMT INFO -- #2116228652 Events 1 1 - - - - - - 1 +TrigSignatureMoniMT INFO -- #2116228652 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J15 #1976430774 +TrigSignatureMoniMT INFO -- #1976430774 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #1976430774 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J20 #2241112369 +TrigSignatureMoniMT INFO -- #2241112369 Events 19 19 - - - - - - 19 +TrigSignatureMoniMT INFO -- #2241112369 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J25 #39428635 +TrigSignatureMoniMT INFO -- #39428635 Events 17 17 - - - - - - 17 +TrigSignatureMoniMT INFO -- #39428635 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J30 #3523994129 +TrigSignatureMoniMT INFO -- #3523994129 Events 17 17 - - - - - - 17 +TrigSignatureMoniMT INFO -- #3523994129 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J40 #1497591431 +TrigSignatureMoniMT INFO -- #1497591431 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #1497591431 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J400 #2494874701 +TrigSignatureMoniMT INFO -- #2494874701 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2494874701 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J50 #3346352675 +TrigSignatureMoniMT INFO -- #3346352675 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #3346352675 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J75 #1651897827 +TrigSignatureMoniMT INFO -- #1651897827 Events 6 6 - - - - - - 6 +TrigSignatureMoniMT INFO -- #1651897827 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1J85 #166231461 +TrigSignatureMoniMT INFO -- #166231461 Events 5 5 - - - - - - 5 +TrigSignatureMoniMT INFO -- #166231461 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1RD0_EMPTY #914660695 +TrigSignatureMoniMT INFO -- #914660695 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #914660695 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1RD0_FILLED #211699639 +TrigSignatureMoniMT INFO -- #211699639 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #211699639 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1Standby #420861540 +TrigSignatureMoniMT INFO -- #420861540 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #420861540 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU12 #4248050338 +TrigSignatureMoniMT INFO -- #4248050338 Events 18 18 - - - - - - 18 +TrigSignatureMoniMT INFO -- #4248050338 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU12IM #357557968 +TrigSignatureMoniMT INFO -- #357557968 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #357557968 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU20 #3602376876 +TrigSignatureMoniMT INFO -- #3602376876 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #3602376876 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU20IM #1931583332 +TrigSignatureMoniMT INFO -- #1931583332 Events 10 10 - - - - - - 10 +TrigSignatureMoniMT INFO -- #1931583332 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU30 #1944789678 +TrigSignatureMoniMT INFO -- #1944789678 Events 13 13 - - - - - - 13 +TrigSignatureMoniMT INFO -- #1944789678 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU40 #1394621652 +TrigSignatureMoniMT INFO -- #1394621652 Events 7 7 - - - - - - 7 +TrigSignatureMoniMT INFO -- #1394621652 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU60 #3332424451 +TrigSignatureMoniMT INFO -- #3332424451 Events 5 5 - - - - - - 5 +TrigSignatureMoniMT INFO -- #3332424451 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1TAU8 #3165115874 +TrigSignatureMoniMT INFO -- #3165115874 Events 19 19 - - - - - - 19 +TrigSignatureMoniMT INFO -- #3165115874 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE10 #1583053368 +TrigSignatureMoniMT INFO -- #1583053368 Events 19 19 - - - - - - 19 +TrigSignatureMoniMT INFO -- #1583053368 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE30 #2047368922 +TrigSignatureMoniMT INFO -- #2047368922 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #2047368922 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE300 #1315853555 +TrigSignatureMoniMT INFO -- #1315853555 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #1315853555 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE35 #2313039014 +TrigSignatureMoniMT INFO -- #2313039014 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #2313039014 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE40 #4293469116 +TrigSignatureMoniMT INFO -- #4293469116 Events 14 14 - - - - - - 14 +TrigSignatureMoniMT INFO -- #4293469116 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE45 #2365048177 +TrigSignatureMoniMT INFO -- #2365048177 Events 13 13 - - - - - - 13 +TrigSignatureMoniMT INFO -- #2365048177 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE50 #1168752081 +TrigSignatureMoniMT INFO -- #1168752081 Events 10 10 - - - - - - 10 +TrigSignatureMoniMT INFO -- #1168752081 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE55 #268928384 +TrigSignatureMoniMT INFO -- #268928384 Events 8 8 - - - - - - 8 +TrigSignatureMoniMT INFO -- #268928384 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE60 #4154240531 +TrigSignatureMoniMT INFO -- #4154240531 Events 8 8 - - - - - - 8 +TrigSignatureMoniMT INFO -- #4154240531 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE70 #3765216228 +TrigSignatureMoniMT INFO -- #3765216228 Events 4 4 - - - - - - 4 +TrigSignatureMoniMT INFO -- #3765216228 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_L1XE80 #2742079961 +TrigSignatureMoniMT INFO -- #2742079961 Events 3 3 - - - - - - 3 +TrigSignatureMoniMT INFO -- #2742079961 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_bkg_L1Bkg #2032528907 +TrigSignatureMoniMT INFO -- #2032528907 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2032528907 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM3_EMPTY #2458124284 +TrigSignatureMoniMT INFO -- #2458124284 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2458124284 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1EM7_EMPTY #299938202 +TrigSignatureMoniMT INFO -- #299938202 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #299938202 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J12_EMPTY #3144024902 +TrigSignatureMoniMT INFO -- #3144024902 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3144024902 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J12_FIRSTEMPTY #3840098930 +TrigSignatureMoniMT INFO -- #3840098930 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3840098930 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_31ETA49_EMPTY #4143623058 +TrigSignatureMoniMT INFO -- #4143623058 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #4143623058 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_EMPTY #2991490897 +TrigSignatureMoniMT INFO -- #2991490897 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2991490897 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1J30_FIRSTEMPTY #2214697960 +TrigSignatureMoniMT INFO -- #2214697960 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2214697960 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1RD1_BGRP10 #48519027 +TrigSignatureMoniMT INFO -- #48519027 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #48519027 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_cosmiccalo_L1RD1_EMPTY #3925252528 +TrigSignatureMoniMT INFO -- #3925252528 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3925252528 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_EMPTY #56818284 +TrigSignatureMoniMT INFO -- #56818284 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #56818284 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_FILLED #1198298874 +TrigSignatureMoniMT INFO -- #1198298874 Events 20 20 - - - - - - 20 +TrigSignatureMoniMT INFO -- #1198298874 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_idmon_L1RD0_UNPAIRED_ISO #2536676873 +TrigSignatureMoniMT INFO -- #2536676873 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #2536676873 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_l1calo_L1J400 #1694511185 +TrigSignatureMoniMT INFO -- #1694511185 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #1694511185 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_mb_L1RD2_EMPTY #3788962163 +TrigSignatureMoniMT INFO -- #3788962163 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #3788962163 Features - - - - - - +TrigSignatureMoniMT INFO HLT_noalg_zb_L1ZB #1289992951 +TrigSignatureMoniMT INFO -- #1289992951 Events 0 0 - - - - - - 0 +TrigSignatureMoniMT INFO -- #1289992951 Features - - - - - - +TrigSignatureMoniMT INFO HLT_sct_noise_SCTPEB_L1RD0_EMPTY #3024203296 +TrigSignatureMoniMT INFO -- #3024203296 Events 0 0 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #3024203296 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU100 #2342716369 +TrigSignatureMoniMT INFO -- #2342716369 Events 0 0 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #2342716369 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU12 #372992233 +TrigSignatureMoniMT INFO -- #372992233 Events 18 18 18 18 - - - - 18 +TrigSignatureMoniMT INFO -- #372992233 Features 42 42 - - - - +TrigSignatureMoniMT INFO HLT_tau0_perf_ptonly_L1TAU60 #1376650121 +TrigSignatureMoniMT INFO -- #1376650121 Events 5 5 5 5 - - - - 5 +TrigSignatureMoniMT INFO -- #1376650121 Features 6 6 - - - - +TrigSignatureMoniMT INFO HLT_tau160_idperf_track_L1TAU100 #714660857 +TrigSignatureMoniMT INFO -- #714660857 Events 0 0 0 0 - - - - 0 +TrigSignatureMoniMT INFO -- #714660857 Features 0 0 - - - - +TrigSignatureMoniMT INFO HLT_tau160_idperf_tracktwoMVA_L1TAU100 #2725693236 +TrigSignatureMoniMT INFO -- #2725693236 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #2725693236 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau160_idperf_tracktwo_L1TAU100 #886074432 +TrigSignatureMoniMT INFO -- #886074432 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #886074432 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau160_mediumRNN_tracktwoMVA_L1TAU100 #1747754287 +TrigSignatureMoniMT INFO -- #1747754287 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1747754287 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau160_perf_tracktwoMVA_L1TAU100 #2334140248 +TrigSignatureMoniMT INFO -- #2334140248 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #2334140248 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau160_perf_tracktwo_L1TAU100 #1799096347 +TrigSignatureMoniMT INFO -- #1799096347 Events 0 0 0 0 0 - - - 0 +TrigSignatureMoniMT INFO -- #1799096347 Features 0 0 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_idperf_track_L1TAU12IM #554271976 +TrigSignatureMoniMT INFO -- #554271976 Events 14 14 14 14 - - - - 14 +TrigSignatureMoniMT INFO -- #554271976 Features 24 24 - - - - +TrigSignatureMoniMT INFO HLT_tau25_idperf_tracktwoMVA_L1TAU12IM #988149859 +TrigSignatureMoniMT INFO -- #988149859 Events 14 14 14 13 13 - - - 13 +TrigSignatureMoniMT INFO -- #988149859 Features 24 17 17 - - - +TrigSignatureMoniMT INFO HLT_tau25_idperf_tracktwo_L1TAU12IM #3346942453 +TrigSignatureMoniMT INFO -- #3346942453 Events 14 14 14 13 13 - - - 13 +TrigSignatureMoniMT INFO -- #3346942453 Features 24 17 17 - - - +TrigSignatureMoniMT INFO HLT_tau25_looseRNN_tracktwoMVA_L1TAU12IM #169452969 +TrigSignatureMoniMT INFO -- #169452969 Events 14 14 12 11 10 - - - 10 +TrigSignatureMoniMT INFO -- #169452969 Features 22 15 13 - - - +TrigSignatureMoniMT INFO HLT_tau25_looseRNN_tracktwo_L1TAU12IM #2490017573 +TrigSignatureMoniMT INFO -- #2490017573 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #2490017573 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwoEF_L1TAU12IM #506456080 +TrigSignatureMoniMT INFO -- #506456080 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #506456080 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwoMVA_L1TAU12IM #4055280067 +TrigSignatureMoniMT INFO -- #4055280067 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #4055280067 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_medium1_tracktwo_L1TAU12IM #1433975745 +TrigSignatureMoniMT INFO -- #1433975745 Events 14 14 12 11 7 - - - 7 +TrigSignatureMoniMT INFO -- #1433975745 Features 22 15 7 - - - +TrigSignatureMoniMT INFO HLT_tau25_mediumRNN_tracktwoMVA_L1TAU12IM #2222894847 +TrigSignatureMoniMT INFO -- #2222894847 Events 14 14 12 11 7 - - - 7 +TrigSignatureMoniMT INFO -- #2222894847 Features 22 15 9 - - - +TrigSignatureMoniMT INFO HLT_tau25_mediumRNN_tracktwo_L1TAU12IM #698603885 +TrigSignatureMoniMT INFO -- #698603885 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #698603885 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_perf_tracktwoMVA_L1TAU12IM #112814536 +TrigSignatureMoniMT INFO -- #112814536 Events 14 14 14 13 13 - - - 13 +TrigSignatureMoniMT INFO -- #112814536 Features 24 17 17 - - - +TrigSignatureMoniMT INFO HLT_tau25_perf_tracktwo_L1TAU12IM #1129072492 +TrigSignatureMoniMT INFO -- #1129072492 Events 14 14 14 13 13 - - - 13 +TrigSignatureMoniMT INFO -- #1129072492 Features 24 17 17 - - - +TrigSignatureMoniMT INFO HLT_tau25_tightRNN_tracktwoMVA_L1TAU12IM #2472860683 +TrigSignatureMoniMT INFO -- #2472860683 Events 14 14 12 11 5 - - - 5 +TrigSignatureMoniMT INFO -- #2472860683 Features 22 15 6 - - - +TrigSignatureMoniMT INFO HLT_tau25_tightRNN_tracktwo_L1TAU12IM #2537544560 +TrigSignatureMoniMT INFO -- #2537544560 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #2537544560 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau25_verylooseRNN_tracktwoMVA_L1TAU12IM #2992830434 +TrigSignatureMoniMT INFO -- #2992830434 Events 14 14 12 11 10 - - - 10 +TrigSignatureMoniMT INFO -- #2992830434 Features 22 15 14 - - - +TrigSignatureMoniMT INFO HLT_tau25_verylooseRNN_tracktwo_L1TAU12IM #1275052132 +TrigSignatureMoniMT INFO -- #1275052132 Events 14 14 12 11 0 - - - 0 +TrigSignatureMoniMT INFO -- #1275052132 Features 22 15 0 - - - +TrigSignatureMoniMT INFO HLT_tau35_mediumRNN_tracktwoMVA_L1TAU12IM #2456480859 +TrigSignatureMoniMT INFO -- #2456480859 Events 14 14 11 10 6 - - - 6 +TrigSignatureMoniMT INFO -- #2456480859 Features 20 14 8 - - - +TrigSignatureMoniMT INFO HLT_tilecalib_laser_TilePEB_L1CALREQ2 #1063154655 +TrigSignatureMoniMT INFO -- #1063154655 Events 0 0 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #1063154655 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_timeburner_L1All #819160059 +TrigSignatureMoniMT INFO -- #819160059 Events 20 20 0 - - - - - 0 +TrigSignatureMoniMT INFO -- #819160059 Features 0 - - - - - +TrigSignatureMoniMT INFO HLT_xe100_mht_L1XE50 #532175988 +TrigSignatureMoniMT INFO -- #532175988 Events 10 10 6 - - - - - 6 +TrigSignatureMoniMT INFO -- #532175988 Features 6 - - - - - +TrigSignatureMoniMT INFO HLT_xe100_pfsum_L1XE50 #1890237897 +TrigSignatureMoniMT INFO -- #1890237897 Events 10 10 2 - - - - - 2 +TrigSignatureMoniMT INFO -- #1890237897 Features 2 - - - - - +TrigSignatureMoniMT INFO HLT_xe100_tcpufit_L1XE50 #2803198799 +TrigSignatureMoniMT INFO -- #2803198799 Events 10 10 6 - - - - - 6 +TrigSignatureMoniMT INFO -- #2803198799 Features 6 - - - - - +TrigSignatureMoniMT INFO HLT_xe100_trkmht_L1XE50 #1055916731 +TrigSignatureMoniMT INFO -- #1055916731 Events 10 10 4 - - - - - 4 +TrigSignatureMoniMT INFO -- #1055916731 Features 4 - - - - - +TrigSignatureMoniMT INFO HLT_xe110_mht_L1XE50 #3030733259 +TrigSignatureMoniMT INFO -- #3030733259 Events 10 10 6 - - - - - 6 +TrigSignatureMoniMT INFO -- #3030733259 Features 6 - - - - - +TrigSignatureMoniMT INFO HLT_xe110_tc_em_L1XE50 #607113828 +TrigSignatureMoniMT INFO -- #607113828 Events 10 10 5 - - - - - 5 +TrigSignatureMoniMT INFO -- #607113828 Features 5 - - - - - +TrigSignatureMoniMT INFO HLT_xe110_tcpufit_L1XE50 #892853397 +TrigSignatureMoniMT INFO -- #892853397 Events 10 10 6 - - - - - 6 +TrigSignatureMoniMT INFO -- #892853397 Features 6 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_cell_L1XE10 #1649696554 +TrigSignatureMoniMT INFO -- #1649696554 Events 19 19 17 - - - - - 17 +TrigSignatureMoniMT INFO -- #1649696554 Features 17 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_cell_xe30_tcpufit_L1XE10 #3768353779 +TrigSignatureMoniMT INFO -- #3768353779 Events 19 19 14 - - - - - 14 +TrigSignatureMoniMT INFO -- #3768353779 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_mht_L1XE10 #3626903018 +TrigSignatureMoniMT INFO -- #3626903018 Events 19 19 19 - - - - - 19 +TrigSignatureMoniMT INFO -- #3626903018 Features 19 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_pfsum_L1XE10 #998713382 +TrigSignatureMoniMT INFO -- #998713382 Events 19 19 14 - - - - - 14 +TrigSignatureMoniMT INFO -- #998713382 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_tcpufit_L1XE10 #1583719916 +TrigSignatureMoniMT INFO -- #1583719916 Events 19 19 14 - - - - - 14 +TrigSignatureMoniMT INFO -- #1583719916 Features 14 - - - - - +TrigSignatureMoniMT INFO HLT_xe30_trkmht_L1XE10 #2468872349 +TrigSignatureMoniMT INFO -- #2468872349 Events 19 19 17 - - - - - 17 +TrigSignatureMoniMT INFO -- #2468872349 Features 17 - - - - - +TrigSignatureMoniMT INFO HLT_xe65_cell_L1XE50 #531141817 +TrigSignatureMoniMT INFO -- #531141817 Events 10 10 7 - - - - - 7 +TrigSignatureMoniMT INFO -- #531141817 Features 7 - - - - - +TrigSignatureMoniMT INFO HLT_xe65_cell_xe110_tcpufit_L1XE50 #115518400 +TrigSignatureMoniMT INFO -- #115518400 Events 10 10 5 - - - - - 5 +TrigSignatureMoniMT INFO -- #115518400 Features 5 - - - - - -- GitLab From 10096944a811fb4632a3f4c97773776cc5897d88 Mon Sep 17 00:00:00 2001 From: Walter Lampl <walter.lampl@cern.ch> Date: Sat, 1 Aug 2020 18:32:44 +0000 Subject: [PATCH 448/459] Possible fix for ATLJETMET-1269 --- .../DerivationFrameworkJetEtMiss/python/ExtendedJetCommon.py | 2 +- .../DerivationFrameworkJetEtMiss/python/JetCommon.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/python/ExtendedJetCommon.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/python/ExtendedJetCommon.py index c6ec6b1a99d..90fd39d0e95 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/python/ExtendedJetCommon.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/python/ExtendedJetCommon.py @@ -288,7 +288,7 @@ def applyJetCalibration(jetalg,algname,sequence,largeRjetconfig = 'comb', suffix if (not isMC) and jetalg_basename in ['AntiKt4EMTopo','AntiKt4LCTopo','AntiKt4EMPFlow']: isdata=True - if not jetalg_basename=='AntiKt4LCTopo': calibseq = calibseq[:-6]+'_Insitu' + if not jetalg_basename=='AntiKt4LCTopo': calibseq = calibseq+'_Insitu' calibtool = CfgMgr.JetCalibrationTool( calibtoolname, diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/python/JetCommon.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/python/JetCommon.py index 1fffbcfe03d..08edf7e5625 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/python/JetCommon.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkJetEtMiss/python/JetCommon.py @@ -264,7 +264,9 @@ def buildGenericGroomAlg(jetalg, rsize, inputtype, groomedName, jetToolBuilder, # 2nd step run the trimming alg. We can re-use the original largeR jet since we reassociated the PseudoJet already. fatjet_groom = jetToolBuilder(groomedName, ungroomedName) - fatjet_rectool = [t for t in finderalg.Tools if t.name() == ungroomedName][0] + print (finderalg.Tools) + print (ungroomedName) + fatjet_rectool = [t for t in finderalg.Tools if t.name().endswith(ungroomedName)][0] fatjet_groom.InputPseudoJets = fatjet_rectool.InputPseudoJets # recopy the InputPseudoJets so tools know how to map fastjet constituents with xAOD constituents -- GitLab From 7e50446641b482e01b4bf7ab84cf0a7a6165b7fa Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Sat, 1 Aug 2020 22:23:39 +0200 Subject: [PATCH 449/459] Fixed references Fixed most of the ctest failures introduced by !35242 --- AtlasTest/ControlTest/share/FortranAlgorithm.ref | 1 - AtlasTest/ControlTest/share/StoreGateDFlow.ref | 1 - AtlasTest/ControlTest/share/StoreGateGen.ref | 1 - AtlasTest/ControlTest/share/StoreGateReentrant.ref | 1 - AtlasTest/ControlTest/share/test_handleTest.ref | 1 - AtlasTest/ControlTest/share/test_interactive_athena.ref | 1 - .../AthenaExamples/AthExHelloWorld/share/AthExHelloWorld.ref | 1 - .../AthExHelloWorld/share/AthExHelloWorldMT_1.ref | 1 - .../AthExHelloWorld/share/AthExHelloWorldMT_2.ref | 1 - .../AthenaExamples/AthExJobOptions/share/BasicJobOptions.ref | 1 - .../AthExJobOptions/share/CustomToolJobOptions.ref | 1 - .../AthExJobOptions/share/CustomTopAlgorithmJobOptions.ref | 1 - Control/AthenaServices/share/AthDictLoaderSvc.ref | 1 - Control/AthenaServices/share/AthTPCnvSvc.ref | 1 - Control/AthenaServices/share/SimplePOSIXTimeKeeperSvc.ref | 1 - Control/AthenaServices/share/TestStopRun.ref | 1 - .../DataModelTest/DataModelRunTests/share/AuxDataTestRead.ref | 1 - .../DataModelTest/DataModelRunTests/share/AuxDataTestRead2.ref | 1 - .../DataModelTest/DataModelRunTests/share/AuxDataTestRead3.ref | 1 - .../DataModelRunTests/share/AuxDataTestTypelessRead.ref | 1 - .../DataModelTest/DataModelRunTests/share/AuxDataTestWrite.ref | 1 - .../DataModelRunTests/share/ByteStreamTestRead.ref | 1 - .../DataModelRunTests/share/ByteStreamTestWrite.ref | 1 - Control/DataModelTest/DataModelRunTests/share/CondReadWrite.ref | 1 - Control/DataModelTest/DataModelRunTests/share/CondReader.ref | 1 - Control/DataModelTest/DataModelRunTests/share/CondReaderMT.ref | 1 - Control/DataModelTest/DataModelRunTests/share/CondWriter.ref | 1 - .../DataModelTest/DataModelRunTests/share/DataModelTestRead.ref | 1 - .../DataModelRunTests/share/DataModelTestRead2.ref | 1 - .../DataModelRunTests/share/DataModelTestWrite.ref | 1 - .../DataModelRunTests/share/xAODTestDecorHandle1.ref | 1 - .../DataModelRunTests/share/xAODTestDecorHandle1MT.ref | 1 - .../DataModelRunTests/share/xAODTestDecorHandle2.ref | 1 - .../DataModelRunTests/share/xAODTestDecorHandle2MT.ref | 1 - Control/DataModelTest/DataModelRunTests/share/xAODTestRead.ref | 1 - Control/DataModelTest/DataModelRunTests/share/xAODTestRead2.ref | 1 - Control/DataModelTest/DataModelRunTests/share/xAODTestRead3.ref | 1 - .../DataModelTest/DataModelRunTests/share/xAODTestRead3MT.ref | 1 - .../DataModelRunTests/share/xAODTestReadFilter.ref | 1 - .../DataModelRunTests/share/xAODTestReadFilterRead.ref | 1 - .../DataModelRunTests/share/xAODTestReadRename.ref | 1 - .../DataModelRunTests/share/xAODTestReadRenameMT.ref | 1 - .../DataModelRunTests/share/xAODTestReadThinned.ref | 1 - .../DataModelTest/DataModelRunTests/share/xAODTestSymlinks1.ref | 1 - .../DataModelRunTests/share/xAODTestSymlinks1MT.ref | 1 - .../DataModelTest/DataModelRunTests/share/xAODTestSymlinks2.ref | 1 - .../DataModelRunTests/share/xAODTestSymlinks2MT.ref | 1 - .../DataModelRunTests/share/xAODTestTypelessRead.ref | 1 - Control/DataModelTest/DataModelRunTests/share/xAODTestWrite.ref | 1 - .../DataModelRunTests/share/xAODTestWriteThinned.ref | 1 - Control/RngComps/share/TestSeedRunEvent.ref | 1 - .../share/AthenaPoolExample_Append.ref | 1 - .../share/AthenaPoolExample_Concat.ref | 1 - .../share/AthenaPoolExample_Copy.ref | 1 - .../share/AthenaPoolExample_RCond.ref | 1 - .../share/AthenaPoolExample_RMeta.ref | 1 - .../share/AthenaPoolExample_ReWrite.ref | 1 - .../share/AthenaPoolExample_ReWriteAgain.ref | 1 - .../share/AthenaPoolExample_ReWriteNext.ref | 1 - .../share/AthenaPoolExample_Read.ref | 1 - .../share/AthenaPoolExample_ReadAgain.ref | 1 - .../share/AthenaPoolExample_ReadBN.ref | 1 - .../share/AthenaPoolExample_ReadConcat.ref | 1 - .../share/AthenaPoolExample_ReadNoBN.ref | 1 - .../share/AthenaPoolExample_WCond.ref | 1 - .../share/AthenaPoolExample_WMeta.ref | 1 - .../share/AthenaPoolExample_Write.ref | 1 - LArCalorimeter/LArCellRec/share/LArBadFebMaskingTool_test.ref | 1 - LArCalorimeter/LArCellRec/share/LArCellDeadOTXCorr_test.ref | 1 - LArCalorimeter/LArRecUtils/share/LArFCalTowerBuilderTool.ref | 1 - .../LArTest/LArConditionsTest/share/LArConditionsTest.ref | 1 - .../LArConditionsTest/share/LArConditionsTestReadNoReg.ref | 1 - .../LArConditionsTest/share/LArConditionsTestWriteNoReg.ref | 1 - .../TileRecUtils/share/TileCellBuilderFromHit_test.ref | 1 - TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref | 1 - TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref | 1 - TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref | 1 - .../TileRecUtils/share/TileRawChannelBuilder_test.ref | 1 - .../TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref | 2 -- .../TileByteStream/share/TileDigitsContByteStreamCnv_test.ref | 2 -- .../TileByteStream/share/TileL2ContByteStreamCnv_test.ref | 2 -- .../TileByteStream/share/TileLaserObjByteStreamCnv_test.ref | 2 -- .../TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref | 2 -- .../share/TileRawChannelContByteStreamCnv_test.ref | 2 -- .../TrigConfBase/share/trigconf_msg_athena_test.ref | 1 - 85 files changed, 91 deletions(-) diff --git a/AtlasTest/ControlTest/share/FortranAlgorithm.ref b/AtlasTest/ControlTest/share/FortranAlgorithm.ref index aa8ed162980..159d8fe1964 100644 --- a/AtlasTest/ControlTest/share/FortranAlgorithm.ref +++ b/AtlasTest/ControlTest/share/FortranAlgorithm.ref @@ -21,7 +21,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 FortranAlgorithm INFO calling initialize_() diff --git a/AtlasTest/ControlTest/share/StoreGateDFlow.ref b/AtlasTest/ControlTest/share/StoreGateDFlow.ref index 12d0575924c..f23c79a9db0 100644 --- a/AtlasTest/ControlTest/share/StoreGateDFlow.ref +++ b/AtlasTest/ControlTest/share/StoreGateDFlow.ref @@ -21,7 +21,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 705 CLIDRegistry entries for module ALL diff --git a/AtlasTest/ControlTest/share/StoreGateGen.ref b/AtlasTest/ControlTest/share/StoreGateGen.ref index 7a568f53481..5fe74ce6953 100644 --- a/AtlasTest/ControlTest/share/StoreGateGen.ref +++ b/AtlasTest/ControlTest/share/StoreGateGen.ref @@ -21,7 +21,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize...[m AthDictLoaderSvc INFO acquired Dso-registry[m ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL[m -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1)[m CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) [m AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00[m ClassIDSvc INFO getRegistryEntries: read 1095 CLIDRegistry entries for module ALL[m diff --git a/AtlasTest/ControlTest/share/StoreGateReentrant.ref b/AtlasTest/ControlTest/share/StoreGateReentrant.ref index 5104751ec7a..f105b785bed 100644 --- a/AtlasTest/ControlTest/share/StoreGateReentrant.ref +++ b/AtlasTest/ControlTest/share/StoreGateReentrant.ref @@ -21,7 +21,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize...[m AthDictLoaderSvc INFO acquired Dso-registry[m ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL[m -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1)[m CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) [m AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00[m ClassIDSvc INFO getRegistryEntries: read 1095 CLIDRegistry entries for module ALL[m diff --git a/AtlasTest/ControlTest/share/test_handleTest.ref b/AtlasTest/ControlTest/share/test_handleTest.ref index 6e53c9baa67..de89d91f661 100644 --- a/AtlasTest/ControlTest/share/test_handleTest.ref +++ b/AtlasTest/ControlTest/share/test_handleTest.ref @@ -21,7 +21,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 705 CLIDRegistry entries for module ALL diff --git a/AtlasTest/ControlTest/share/test_interactive_athena.ref b/AtlasTest/ControlTest/share/test_interactive_athena.ref index 161461ebda6..d7942e92b68 100644 --- a/AtlasTest/ControlTest/share/test_interactive_athena.ref +++ b/AtlasTest/ControlTest/share/test_interactive_athena.ref @@ -20,7 +20,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 PyComponentMgr INFO Initializing PyComponentMgr... diff --git a/Control/AthenaExamples/AthExHelloWorld/share/AthExHelloWorld.ref b/Control/AthenaExamples/AthExHelloWorld/share/AthExHelloWorld.ref index 588d9b72275..49b4b722b2f 100644 --- a/Control/AthenaExamples/AthExHelloWorld/share/AthExHelloWorld.ref +++ b/Control/AthenaExamples/AthExHelloWorld/share/AthExHelloWorld.ref @@ -21,7 +21,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 705 CLIDRegistry entries for module ALL diff --git a/Control/AthenaExamples/AthExHelloWorld/share/AthExHelloWorldMT_1.ref b/Control/AthenaExamples/AthExHelloWorld/share/AthExHelloWorldMT_1.ref index dc58ee00424..583a64cd372 100644 --- a/Control/AthenaExamples/AthExHelloWorld/share/AthExHelloWorldMT_1.ref +++ b/Control/AthenaExamples/AthExHelloWorld/share/AthExHelloWorldMT_1.ref @@ -24,7 +24,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7399 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaHiveEventLoopMgr INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc 0 INFO getRegistryEntries: read 1128 CLIDRegistry entries for module ALL diff --git a/Control/AthenaExamples/AthExHelloWorld/share/AthExHelloWorldMT_2.ref b/Control/AthenaExamples/AthExHelloWorld/share/AthExHelloWorldMT_2.ref index 10b7ac00d61..eaed697ec89 100644 --- a/Control/AthenaExamples/AthExHelloWorld/share/AthExHelloWorldMT_2.ref +++ b/Control/AthenaExamples/AthExHelloWorld/share/AthExHelloWorldMT_2.ref @@ -24,7 +24,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7399 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaHiveEventLoopMgr INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc 0 INFO getRegistryEntries: read 1128 CLIDRegistry entries for module ALL diff --git a/Control/AthenaExamples/AthExJobOptions/share/BasicJobOptions.ref b/Control/AthenaExamples/AthExJobOptions/share/BasicJobOptions.ref index 586d2d4f1c5..72945edca5e 100644 --- a/Control/AthenaExamples/AthExJobOptions/share/BasicJobOptions.ref +++ b/Control/AthenaExamples/AthExJobOptions/share/BasicJobOptions.ref @@ -396,7 +396,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug( AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 TopAlgorithm DEBUG Property update for OutputLevel : new value = 2 diff --git a/Control/AthenaExamples/AthExJobOptions/share/CustomToolJobOptions.ref b/Control/AthenaExamples/AthExJobOptions/share/CustomToolJobOptions.ref index bbd63539ec7..8d79e66e7ff 100644 --- a/Control/AthenaExamples/AthExJobOptions/share/CustomToolJobOptions.ref +++ b/Control/AthenaExamples/AthExJobOptions/share/CustomToolJobOptions.ref @@ -310,7 +310,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 MyTopAlg.Custom... INFO Retrieved TheToolPubTool = PublicToolHandle('ConcreteTool/PublicConcreteTool') diff --git a/Control/AthenaExamples/AthExJobOptions/share/CustomTopAlgorithmJobOptions.ref b/Control/AthenaExamples/AthExJobOptions/share/CustomTopAlgorithmJobOptions.ref index d83f9be46c5..f509c44a3cb 100644 --- a/Control/AthenaExamples/AthExJobOptions/share/CustomTopAlgorithmJobOptions.ref +++ b/Control/AthenaExamples/AthExJobOptions/share/CustomTopAlgorithmJobOptions.ref @@ -105,7 +105,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 MyCustomAlg INFO Retrieved TheTool = PrivateToolHandle('ConcreteTool/ConcreteTool') diff --git a/Control/AthenaServices/share/AthDictLoaderSvc.ref b/Control/AthenaServices/share/AthDictLoaderSvc.ref index bf7ba0ac76f..23a45a59381 100644 --- a/Control/AthenaServices/share/AthDictLoaderSvc.ref +++ b/Control/AthenaServices/share/AthDictLoaderSvc.ref @@ -21,7 +21,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3361 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 PyComponentMgr INFO Initializing PyComponentMgr... diff --git a/Control/AthenaServices/share/AthTPCnvSvc.ref b/Control/AthenaServices/share/AthTPCnvSvc.ref index 9717790050a..2d8416a3836 100644 --- a/Control/AthenaServices/share/AthTPCnvSvc.ref +++ b/Control/AthenaServices/share/AthTPCnvSvc.ref @@ -20,7 +20,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3361 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ApplicationMgr INFO Application Manager Initialized successfully diff --git a/Control/AthenaServices/share/SimplePOSIXTimeKeeperSvc.ref b/Control/AthenaServices/share/SimplePOSIXTimeKeeperSvc.ref index 4c1356f0733..58e5f63aa2f 100644 --- a/Control/AthenaServices/share/SimplePOSIXTimeKeeperSvc.ref +++ b/Control/AthenaServices/share/SimplePOSIXTimeKeeperSvc.ref @@ -25,7 +25,6 @@ SimplePOSIXTime... INFO Initializing SimplePOSIXTimeKeeperSvc - package versio AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3733 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ApplicationMgr INFO Application Manager Initialized successfully diff --git a/Control/AthenaServices/share/TestStopRun.ref b/Control/AthenaServices/share/TestStopRun.ref index b82c7a1bb53..5037afbd9a4 100644 --- a/Control/AthenaServices/share/TestStopRun.ref +++ b/Control/AthenaServices/share/TestStopRun.ref @@ -21,7 +21,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3361 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ApplicationMgr INFO Application Manager Initialized successfully diff --git a/Control/DataModelTest/DataModelRunTests/share/AuxDataTestRead.ref b/Control/DataModelTest/DataModelRunTests/share/AuxDataTestRead.ref index 82e06afa8b2..b73da2d57da 100644 --- a/Control/DataModelTest/DataModelRunTests/share/AuxDataTestRead.ref +++ b/Control/DataModelTest/DataModelRunTests/share/AuxDataTestRead.ref @@ -25,7 +25,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7169 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 PyComponentMgr INFO Initializing PyComponentMgr... diff --git a/Control/DataModelTest/DataModelRunTests/share/AuxDataTestRead2.ref b/Control/DataModelTest/DataModelRunTests/share/AuxDataTestRead2.ref index ea7d672151f..c4f6c4d13ed 100644 --- a/Control/DataModelTest/DataModelRunTests/share/AuxDataTestRead2.ref +++ b/Control/DataModelTest/DataModelRunTests/share/AuxDataTestRead2.ref @@ -24,7 +24,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7169 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 PyComponentMgr INFO Initializing PyComponentMgr... diff --git a/Control/DataModelTest/DataModelRunTests/share/AuxDataTestRead3.ref b/Control/DataModelTest/DataModelRunTests/share/AuxDataTestRead3.ref index 7f2ff155004..f3da1a438a0 100644 --- a/Control/DataModelTest/DataModelRunTests/share/AuxDataTestRead3.ref +++ b/Control/DataModelTest/DataModelRunTests/share/AuxDataTestRead3.ref @@ -24,7 +24,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7169 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 PyComponentMgr INFO Initializing PyComponentMgr... diff --git a/Control/DataModelTest/DataModelRunTests/share/AuxDataTestTypelessRead.ref b/Control/DataModelTest/DataModelRunTests/share/AuxDataTestTypelessRead.ref index 40c35af9252..052fba9fa99 100644 --- a/Control/DataModelTest/DataModelRunTests/share/AuxDataTestTypelessRead.ref +++ b/Control/DataModelTest/DataModelRunTests/share/AuxDataTestTypelessRead.ref @@ -25,7 +25,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7169 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 PyComponentMgr INFO Initializing PyComponentMgr... diff --git a/Control/DataModelTest/DataModelRunTests/share/AuxDataTestWrite.ref b/Control/DataModelTest/DataModelRunTests/share/AuxDataTestWrite.ref index d6f18c572eb..76043f536e5 100644 --- a/Control/DataModelTest/DataModelRunTests/share/AuxDataTestWrite.ref +++ b/Control/DataModelTest/DataModelRunTests/share/AuxDataTestWrite.ref @@ -26,7 +26,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 2946 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 PyComponentMgr INFO Initializing PyComponentMgr... diff --git a/Control/DataModelTest/DataModelRunTests/share/ByteStreamTestRead.ref b/Control/DataModelTest/DataModelRunTests/share/ByteStreamTestRead.ref index dc65254f1a8..0d1bd78b71b 100644 --- a/Control/DataModelTest/DataModelRunTests/share/ByteStreamTestRead.ref +++ b/Control/DataModelTest/DataModelRunTests/share/ByteStreamTestRead.ref @@ -23,7 +23,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3269 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 8126 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/ByteStreamTestWrite.ref b/Control/DataModelTest/DataModelRunTests/share/ByteStreamTestWrite.ref index bd66d9bf5fb..a57229cabe9 100644 --- a/Control/DataModelTest/DataModelRunTests/share/ByteStreamTestWrite.ref +++ b/Control/DataModelTest/DataModelRunTests/share/ByteStreamTestWrite.ref @@ -29,7 +29,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3308 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 705 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/CondReadWrite.ref b/Control/DataModelTest/DataModelRunTests/share/CondReadWrite.ref index 0dea05f80c3..2eee7689daf 100644 --- a/Control/DataModelTest/DataModelRunTests/share/CondReadWrite.ref +++ b/Control/DataModelTest/DataModelRunTests/share/CondReadWrite.ref @@ -40,7 +40,6 @@ ApplicationMgr INFO Updating Gaudi::PluginSe AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3463 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc 0 INFO getRegistryEntries: read 1934 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/CondReader.ref b/Control/DataModelTest/DataModelRunTests/share/CondReader.ref index 949f0f0f281..319d8ff0b75 100644 --- a/Control/DataModelTest/DataModelRunTests/share/CondReader.ref +++ b/Control/DataModelTest/DataModelRunTests/share/CondReader.ref @@ -27,7 +27,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 2946 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 1877 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/CondReaderMT.ref b/Control/DataModelTest/DataModelRunTests/share/CondReaderMT.ref index b9b84056aff..750f7b01db7 100644 --- a/Control/DataModelTest/DataModelRunTests/share/CondReaderMT.ref +++ b/Control/DataModelTest/DataModelRunTests/share/CondReaderMT.ref @@ -31,7 +31,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3835 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaHiveEventLoopMgr INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00 MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 diff --git a/Control/DataModelTest/DataModelRunTests/share/CondWriter.ref b/Control/DataModelTest/DataModelRunTests/share/CondWriter.ref index 3d64138a90e..62c522b7d48 100644 --- a/Control/DataModelTest/DataModelRunTests/share/CondWriter.ref +++ b/Control/DataModelTest/DataModelRunTests/share/CondWriter.ref @@ -26,7 +26,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3045 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 770 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/DataModelTestRead.ref b/Control/DataModelTest/DataModelRunTests/share/DataModelTestRead.ref index 2665615eb3a..195a8a82f5e 100644 --- a/Control/DataModelTest/DataModelRunTests/share/DataModelTestRead.ref +++ b/Control/DataModelTest/DataModelRunTests/share/DataModelTestRead.ref @@ -25,7 +25,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7169 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 PyComponentMgr INFO Initializing PyComponentMgr... diff --git a/Control/DataModelTest/DataModelRunTests/share/DataModelTestRead2.ref b/Control/DataModelTest/DataModelRunTests/share/DataModelTestRead2.ref index 95d851ebc95..ff2a02d957e 100644 --- a/Control/DataModelTest/DataModelRunTests/share/DataModelTestRead2.ref +++ b/Control/DataModelTest/DataModelRunTests/share/DataModelTestRead2.ref @@ -24,7 +24,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7169 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 PyComponentMgr INFO Initializing PyComponentMgr... diff --git a/Control/DataModelTest/DataModelRunTests/share/DataModelTestWrite.ref b/Control/DataModelTest/DataModelRunTests/share/DataModelTestWrite.ref index bb3fe591d7b..58a3562dea7 100644 --- a/Control/DataModelTest/DataModelRunTests/share/DataModelTestWrite.ref +++ b/Control/DataModelTest/DataModelRunTests/share/DataModelTestWrite.ref @@ -26,7 +26,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 2946 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 PyComponentMgr INFO Initializing PyComponentMgr... diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1.ref index 6fcb1184575..b638b15f051 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1.ref @@ -23,7 +23,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 705 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1MT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1MT.ref index eaa9eb5ba87..4a36780ffeb 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1MT.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1MT.ref @@ -27,7 +27,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7399 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaHiveEventLoopMgr INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc 0 INFO getRegistryEntries: read 1128 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle2.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle2.ref index a4bf4b3be7d..28e8821620d 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle2.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle2.ref @@ -25,7 +25,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 2946 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 1796 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle2MT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle2MT.ref index e332deb86ee..d818e736b2f 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle2MT.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle2MT.ref @@ -28,7 +28,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3835 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaHiveEventLoopMgr INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00 MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestRead.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestRead.ref index 1cd3f4c0e25..2be80a31b53 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestRead.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestRead.ref @@ -25,7 +25,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7341 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) xAODMaker::Even... INFO Initialising - Package version: xAODEventFormatCnv-00-00-00 MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestRead2.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestRead2.ref index 456d2950c22..cb179b0dee1 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestRead2.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestRead2.ref @@ -25,7 +25,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7169 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 6156 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestRead3.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestRead3.ref index 9d6235eebc9..11bed3cc456 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestRead3.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestRead3.ref @@ -24,7 +24,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7169 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 584 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestRead3MT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestRead3MT.ref index c7c6e0bdd44..64298519096 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestRead3MT.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestRead3MT.ref @@ -28,7 +28,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3835 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaHiveEventLoopMgr INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00 MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestReadFilter.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestReadFilter.ref index 271c7476437..ab38979d191 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestReadFilter.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestReadFilter.ref @@ -26,7 +26,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 2946 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 8043 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestReadFilterRead.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestReadFilterRead.ref index 791bf34583d..43eed183f37 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestReadFilterRead.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestReadFilterRead.ref @@ -24,7 +24,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7169 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 6156 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestReadRename.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestReadRename.ref index a6d4abb1bc8..e4900e1253e 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestReadRename.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestReadRename.ref @@ -25,7 +25,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 2946 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 8052 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestReadRenameMT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestReadRenameMT.ref index a38ab8a6545..60236d55cd6 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestReadRenameMT.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestReadRenameMT.ref @@ -28,7 +28,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3835 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaHiveEventLoopMgr INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00 MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestReadThinned.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestReadThinned.ref index 87da2a5db04..a94946954a0 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestReadThinned.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestReadThinned.ref @@ -24,7 +24,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3753 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 10214 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1.ref index 0bf94489fa2..af969dc4c55 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1.ref @@ -23,7 +23,6 @@ AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 2318 CLIDRegistry entries for module ALL ChronoStatSvc INFO Number of skipped events for MemStat-1 -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 6620 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT.ref index 8bc2d62a85b..35c3b22070f 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT.ref @@ -27,7 +27,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3835 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaHiveEventLoopMgr INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00 MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2.ref index 389c8fce6a8..c72d1a54d82 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2.ref @@ -25,7 +25,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 2946 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 1796 CLIDRegistry entries for module ALL diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT.ref index 38509da50cf..f62e506c8f5 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT.ref @@ -28,7 +28,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3835 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaHiveEventLoopMgr INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00 MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestTypelessRead.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestTypelessRead.ref index c0782b25646..2272c70c137 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestTypelessRead.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestTypelessRead.ref @@ -25,7 +25,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7169 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 PyComponentMgr INFO Initializing PyComponentMgr... diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestWrite.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestWrite.ref index 08215795569..ed710141d3d 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestWrite.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestWrite.ref @@ -26,7 +26,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3108 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) xAODMaker::Even... INFO Initialising - Package version: xAODEventFormatCnv-00-00-00 MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestWriteThinned.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestWriteThinned.ref index 57c9a6aa750..14c62efb04c 100644 --- a/Control/DataModelTest/DataModelRunTests/share/xAODTestWriteThinned.ref +++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestWriteThinned.ref @@ -25,7 +25,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3871 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) xAODMaker::Even... INFO Initialising - Package version: xAODEventFormatCnv-00-00-00 MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 diff --git a/Control/RngComps/share/TestSeedRunEvent.ref b/Control/RngComps/share/TestSeedRunEvent.ref index 9e99663e8b1..1f9dccd671a 100644 --- a/Control/RngComps/share/TestSeedRunEvent.ref +++ b/Control/RngComps/share/TestSeedRunEvent.ref @@ -21,7 +21,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 AtRanTestAlg DEBUG Property update for OutputLevel : new value = 2 diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Append.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Append.ref index a0eb50309d3..1c812214bc9 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Append.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Append.ref @@ -22,7 +22,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 2918 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 916 CLIDRegistry entries for module ALL WriteData DEBUG Property update for OutputLevel : new value = 2 diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Concat.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Concat.ref index c7f71e8c552..1d9b634e641 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Concat.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Concat.ref @@ -26,7 +26,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3459 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 705 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 581 CLIDRegistry entries for module ALL diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Copy.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Copy.ref index 33296087360..e8b8791da6a 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Copy.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Copy.ref @@ -23,7 +23,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3459 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 608 CLIDRegistry entries for module ALL MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref index 6d8bb5dc9ed..9c9e89381bd 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RCond.ref @@ -21,7 +21,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3286 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 846 CLIDRegistry entries for module ALL ReadCond DEBUG Property update for OutputLevel : new value = 2 diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RMeta.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RMeta.ref index 12631ae123e..7d016fd5f3f 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RMeta.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_RMeta.ref @@ -21,7 +21,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3286 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 846 CLIDRegistry entries for module ALL ReadData DEBUG Property update for OutputLevel : new value = 2 diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref index d2f7896312d..1fd48fdd5a0 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWrite.ref @@ -23,7 +23,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3459 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 846 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 343 CLIDRegistry entries for module ALL diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref index c576ae85eac..59a28458c34 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteAgain.ref @@ -23,7 +23,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3459 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 846 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 343 CLIDRegistry entries for module ALL diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref index d8c6e1b7e6c..4dd9744a189 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReWriteNext.ref @@ -23,7 +23,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3459 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 846 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 343 CLIDRegistry entries for module ALL diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Read.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Read.ref index e7e66cec097..d55e8196116 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Read.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Read.ref @@ -21,7 +21,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3286 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 846 CLIDRegistry entries for module ALL ReadData DEBUG Property update for OutputLevel : new value = 2 diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgain.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgain.ref index f20695bda6b..11cee7683d3 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgain.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadAgain.ref @@ -21,7 +21,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3286 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 846 CLIDRegistry entries for module ALL ReadData DEBUG Property update for OutputLevel : new value = 2 diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBN.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBN.ref index d25babd49f7..39c733ba4d5 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBN.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadBN.ref @@ -22,7 +22,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 2946 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 889 CLIDRegistry entries for module ALL ReadData DEBUG Property update for OutputLevel : new value = 2 diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadConcat.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadConcat.ref index bfddf027237..31e2e179bfa 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadConcat.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadConcat.ref @@ -21,7 +21,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3286 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 846 CLIDRegistry entries for module ALL ReadData DEBUG Property update for OutputLevel : new value = 2 diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBN.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBN.ref index 240402bc6c2..af732998301 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBN.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_ReadNoBN.ref @@ -22,7 +22,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 2918 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 916 CLIDRegistry entries for module ALL ReadData DEBUG Property update for OutputLevel : new value = 2 diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WCond.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WCond.ref index f919a38bc0f..118106d403c 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WCond.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WCond.ref @@ -21,7 +21,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3286 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 1182 CLIDRegistry entries for module ALL Stream1 DEBUG Property update for OutputLevel : new value = 2 diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMeta.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMeta.ref index b962c72f12b..c8d4caec165 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMeta.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_WMeta.ref @@ -23,7 +23,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3459 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 705 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 343 CLIDRegistry entries for module ALL diff --git a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Write.ref b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Write.ref index 47e2f6a252a..965308e67d2 100644 --- a/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Write.ref +++ b/Database/AthenaPOOL/AthenaPoolExample/AthenaPoolExampleAlgorithms/share/AthenaPoolExample_Write.ref @@ -26,7 +26,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3459 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ClassIDSvc INFO getRegistryEntries: read 705 CLIDRegistry entries for module ALL ClassIDSvc INFO getRegistryEntries: read 581 CLIDRegistry entries for module ALL diff --git a/LArCalorimeter/LArCellRec/share/LArBadFebMaskingTool_test.ref b/LArCalorimeter/LArCellRec/share/LArBadFebMaskingTool_test.ref index 75485a1b465..8b17a777d88 100644 --- a/LArCalorimeter/LArCellRec/share/LArBadFebMaskingTool_test.ref +++ b/LArCalorimeter/LArCellRec/share/LArBadFebMaskingTool_test.ref @@ -38,7 +38,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3219 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/LArCalorimeter/LArCellRec/share/LArCellDeadOTXCorr_test.ref b/LArCalorimeter/LArCellRec/share/LArCellDeadOTXCorr_test.ref index 81c9b1e4f9c..dbe55ea5b6c 100644 --- a/LArCalorimeter/LArCellRec/share/LArCellDeadOTXCorr_test.ref +++ b/LArCalorimeter/LArCellRec/share/LArCellDeadOTXCorr_test.ref @@ -36,7 +36,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 4026 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/LArCalorimeter/LArRecUtils/share/LArFCalTowerBuilderTool.ref b/LArCalorimeter/LArRecUtils/share/LArFCalTowerBuilderTool.ref index 30a21e1ce13..21955d2c176 100644 --- a/LArCalorimeter/LArRecUtils/share/LArFCalTowerBuilderTool.ref +++ b/LArCalorimeter/LArRecUtils/share/LArFCalTowerBuilderTool.ref @@ -31,7 +31,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3542 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/LArCalorimeter/LArTest/LArConditionsTest/share/LArConditionsTest.ref b/LArCalorimeter/LArTest/LArConditionsTest/share/LArConditionsTest.ref index c714288cb9d..6cf04029d41 100644 --- a/LArCalorimeter/LArTest/LArConditionsTest/share/LArConditionsTest.ref +++ b/LArCalorimeter/LArTest/LArConditionsTest/share/LArConditionsTest.ref @@ -42,7 +42,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3634 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/LArCalorimeter/LArTest/LArConditionsTest/share/LArConditionsTestReadNoReg.ref b/LArCalorimeter/LArTest/LArConditionsTest/share/LArConditionsTestReadNoReg.ref index 85d5b729542..5fdc0c5dc44 100644 --- a/LArCalorimeter/LArTest/LArConditionsTest/share/LArConditionsTestReadNoReg.ref +++ b/LArCalorimeter/LArTest/LArConditionsTest/share/LArConditionsTestReadNoReg.ref @@ -44,7 +44,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3634 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/LArCalorimeter/LArTest/LArConditionsTest/share/LArConditionsTestWriteNoReg.ref b/LArCalorimeter/LArTest/LArConditionsTest/share/LArConditionsTestWriteNoReg.ref index ba1c29c7550..a039b909354 100644 --- a/LArCalorimeter/LArTest/LArConditionsTest/share/LArConditionsTestWriteNoReg.ref +++ b/LArCalorimeter/LArTest/LArConditionsTest/share/LArConditionsTestWriteNoReg.ref @@ -43,7 +43,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 3634 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/TileCalorimeter/TileRecUtils/share/TileCellBuilderFromHit_test.ref b/TileCalorimeter/TileRecUtils/share/TileCellBuilderFromHit_test.ref index b81a8035969..c0c0689f40f 100644 --- a/TileCalorimeter/TileRecUtils/share/TileCellBuilderFromHit_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileCellBuilderFromHit_test.ref @@ -38,7 +38,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7151 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref b/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref index 014dd1b635e..fe14a2aa75e 100644 --- a/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref @@ -38,7 +38,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7151 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref b/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref index c396b721f54..70fb01cfefd 100644 --- a/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref @@ -38,7 +38,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7151 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref b/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref index d9ad04bb640..0fa86859857 100644 --- a/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref @@ -38,7 +38,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7151 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref b/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref index b0822cfd21c..2bb496da16d 100644 --- a/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref @@ -38,7 +38,6 @@ StatusCodeSvc INFO initialize AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7151 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref index 9ed90acaf0b..2b86c78c54a 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref @@ -37,7 +37,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7006 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 @@ -686,7 +685,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7378 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref index 6cf57f1ac97..d4c3bebbc68 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref @@ -37,7 +37,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7006 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 @@ -688,7 +687,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7378 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref index 9afe1fdd345..9d9ba6caf64 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref @@ -37,7 +37,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7006 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 @@ -687,7 +686,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7378 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref index 74564973e68..ec83d709710 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref @@ -37,7 +37,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7006 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 @@ -685,7 +684,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7378 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref index 6b3dceaa3d3..792d6ac8fa2 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref @@ -37,7 +37,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7006 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 @@ -688,7 +687,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7378 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref index 75d97895525..b9944941813 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref @@ -37,7 +37,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7006 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 @@ -688,7 +687,6 @@ ApplicationMgr INFO Updating Gaudi::PluginS AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7378 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) MetaDataSvc INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00 AthenaPoolCnvSvc INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00 diff --git a/Trigger/TrigConfiguration/TrigConfBase/share/trigconf_msg_athena_test.ref b/Trigger/TrigConfiguration/TrigConfBase/share/trigconf_msg_athena_test.ref index d16c15847b1..1d83d06a24a 100644 --- a/Trigger/TrigConfiguration/TrigConfBase/share/trigconf_msg_athena_test.ref +++ b/Trigger/TrigConfiguration/TrigConfBase/share/trigconf_msg_athena_test.ref @@ -21,7 +21,6 @@ ApplicationMgr INFO Updating Gaudi::PluginService::SetDebug(level) to leve AthDictLoaderSvc INFO in initialize... AthDictLoaderSvc INFO acquired Dso-registry ClassIDSvc INFO getRegistryEntries: read 7027 CLIDRegistry entries for module ALL -CoreDumpSvc INFO install f-a-t-a-l handler... (flag = -1) CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00 ApplicationMgr INFO Application Manager Initialized successfully -- GitLab From 6f508479543372e793099c59347a1bf65bf5a2ce Mon Sep 17 00:00:00 2001 From: Charles Leggett <charles.g.leggett@gmail.com> Date: Sun, 2 Aug 2020 18:07:27 +0000 Subject: [PATCH 450/459] update Gaudi to v34r0 --- AtlasTest/ControlTest/share/DataLink_test.ref | Bin 5048 -> 5048 bytes AtlasTest/ControlTest/share/HelloWorld.ref | 8 +- AtlasTest/ControlTest/share/HistNtup.ref | 26 +++--- .../share/ProxyProviderSvc_test.ref | 86 ++++++++---------- .../ControlTest/share/StoreGatePileUp.ref | 22 ++--- AtlasTest/ControlTest/share/SubAlg.ref | 8 +- .../share/AtlfastPoolWriteOptions.ref | 2 +- .../TestTools/CppUnit_SGtestdriver.cxx | 4 +- .../share/CaloCompactCellTool_test.ref | 2 +- .../share/CaloCompactCellTool_test.txt | 2 +- .../share/CaloCellContainer_test.ref | 2 +- .../share/CaloCellContainer_test.txt | 2 +- .../share/CaloCellPrefetchIterator_test.ref | 2 +- .../share/CaloCellPrefetchIterator_test.txt | 2 +- .../share/CaloConstCellContainer_test.ref | 2 +- .../share/CaloTopoTowerContainer_test.ref | 2 +- .../share/CaloTopoTowerContainer_test.txt | 2 +- .../share/CaloLayerCalculator_test.ref | 2 +- .../share/CaloLayerCalculator_test.txt | 2 +- .../CaloUtils/share/CaloVertexedCell_test.ref | 2 +- .../share/CaloVertexedCluster_test.ref | 2 +- Commission/CommissionUtils/share/AnaCosmic.py | 10 +- .../share/CBNT_TTR_jobOptions.py | 2 +- .../CommissionUtils/share/DigitCosmic.py | 10 +- .../CommissionUtils/share/RecoCosmic.py | 14 +-- Control/AthAllocators/share/DataPool_test.txt | 2 +- .../python/ConfigurationShelve.py | 3 + .../share/GenerateBootstrapTest.ref | 8 +- Control/AthenaCommon/share/bootstrap.pkl | Bin 7201 -> 12135 bytes .../AthenaCommon/share/bootstrap_threaded.pkl | Bin 8634 -> 13693 bytes .../share/SGTutorial_jobOptions.txt | 2 +- .../share/StoreGateExample_Gen_jobOptions.txt | 2 +- .../share/GenericMon.txt | 2 +- .../share/GenericMonPerf.txt | 2 +- Control/AthenaServices/share/AtDSFMT_test.txt | 2 +- .../AthenaServices/share/AtRanlux_test.ref | 2 +- .../AthenaServices/share/AtRanlux_test.txt | 2 +- .../AthenaServices/share/AtRndmGen_test.ref | 2 +- .../AthenaServices/share/AtRndmGen_test.txt | 2 +- .../share/AthenaEventLoopMgr_test.ref | 2 +- .../share/AthenaEventLoopMgr_test.txt | 2 +- .../share/ConditionsCleanerSvc_test.ref | 2 +- .../share/ConditionsCleanerSvc_test.txt | 2 +- .../share/FPEControlSvc_test.ref | 2 +- .../share/FPEControlSvc_test.txt | 2 +- .../share/MixingEventSelector_test.txt | 10 +- .../share/SimplePOSIXTimeKeeperOptions.txt | 2 +- Control/IOVSvc/share/IOVSvcTool_test.ref | 2 +- Control/IOVSvc/share/IOVSvcTool_test.txt | 2 +- .../share/NavigableIterator_test.ref | 2 +- .../share/NavigableIterator_test.txt | 2 +- Control/RngComps/share/AtDSFMT_test.txt | 2 +- Control/RngComps/share/AtRanlux_test.ref | 2 +- Control/RngComps/share/AtRanlux_test.txt | 2 +- Control/RngComps/share/AtRndmGen_test.ref | 2 +- Control/RngComps/share/AtRndmGen_test.txt | 2 +- Control/StoreGate/src/setupStoreGate.cxx | 4 +- .../test/VarHandleKeyProperty_test.cxx | 8 +- .../StoreGate/test/VarHandleProperty_test.cxx | 8 +- .../python/WriteAthenaPool.py | 2 +- Event/ByteStreamCnvSvc/doc/ByteStream.txt | 2 +- .../share/EventCommonTPCnv_test.txt | 2 +- .../share/INav4MomAssocsCnv_p1_test.ref | 2 +- .../share/jobOptions_CosmicGenerator.txt | 2 +- .../jobOptions_PixelEndCapCosmicGenerator.txt | 2 +- Generators/EvtGen_i/share/ReadGen.py | 2 +- .../GeneratorFilters/doc/GeneratorFilters.tex | 10 +- Generators/Hijing_i/doc/Hijing.tex | 2 +- .../run/MyJobOptions.py | 2 +- .../share/InDetEventTPCnv_test.txt | 2 +- .../PixelClusterContainerCnv_p1_test.ref | 2 +- .../PixelClusterContainerCnv_p2_test.ref | 2 +- .../PixelClusterContainerCnv_p3_test.ref | 2 +- ...xelGangedClusterAmbiguitiesCnv_p1_test.ref | 2 +- .../share/SCT_ClusterContainerCnv_p2_test.ref | 2 +- .../share/SCT_ClusterContainerCnv_p3_test.ref | 2 +- .../TRT_DriftCircleContainerCnv_p2_test.ref | 2 +- .../SCT_Monitoring/run/CosmicMonitorOpts.py | 2 +- .../share/IDPVM_Test.txt | 2 +- .../share/XmlEntityInclusionOptions.txt | 2 +- .../share/LArCellTest_jobOptions.py | 2 +- .../LArRecAthenaPool_ReadTest_jobOptions.py | 8 +- .../LArRecAthenaPool_WriteTest_jobOptions.py | 2 +- .../LArCnv/LArByteStream/doc/README.txt | 2 +- .../LArCalib_CTB04_AutoCorr_jobOptions.py | 2 +- .../LArSim/share/LArSim_Fake_jobOptions.txt | 2 +- .../share/MuonEventAthenaPool_test.txt | 2 +- .../share/RpcPadContainerCnv_p1_test.ref | 2 +- .../share/RpcPadContainerCnv_p2_test.ref | 2 +- .../share/TgcRdoCnv_p1_test.ref | 2 +- .../share/TgcRdoCnv_p2_test.ref | 2 +- .../share/TgcRdoCnv_p3_test.ref | 2 +- ...ompetingMuonClustersOnTrackCnv_p2_test.ref | 2 +- .../share/CscClusterOnTrackCnv_p2_test.ref | 2 +- .../share/CscPrepDataContainerCnv_p1_test.ref | 2 +- .../share/CscPrepDataContainerCnv_p2_test.ref | 2 +- .../CscStripPrepDataContainerCnv_p1_test.ref | 2 +- .../share/MMPrepDataContainerCnv_p1_test.ref | 2 +- .../share/MM_ClusterOnTrackCnv_p1_test.ref | 2 +- .../share/MM_DigitContainerCnv_p1_test.ref | 2 +- .../share/MM_DigitContainerCnv_p2_test.ref | 2 +- .../MdtDriftCircleOnTrackCnv_p2_test.ref | 2 +- .../share/MdtPrepDataContainerCnv_p1_test.ref | 2 +- .../share/MdtPrepDataContainerCnv_p2_test.ref | 2 +- .../share/MuonEventTPCnv_test.txt | 2 +- .../share/RpcClusterOnTrackCnv_p3_test.ref | 2 +- .../share/RpcCoinDataContainerCnv_p1_test.ref | 2 +- .../share/RpcPrepDataContainerCnv_p1_test.ref | 2 +- .../share/RpcPrepDataContainerCnv_p2_test.ref | 2 +- .../share/RpcPrepDataContainerCnv_p3_test.ref | 2 +- .../share/STGC_ClusterOnTrackCnv_p1_test.ref | 2 +- .../share/STGC_DigitContainerCnv_p1_test.ref | 2 +- .../STGC_RawDataContainerCnv_p1_test.ref | 2 +- .../share/TgcClusterOnTrackCnv_p2_test.ref | 2 +- .../share/TgcCoinDataContainerCnv_p1_test.ref | 2 +- .../share/TgcCoinDataContainerCnv_p2_test.ref | 2 +- .../share/TgcCoinDataContainerCnv_p3_test.ref | 2 +- .../share/TgcPrepDataContainerCnv_p1_test.ref | 2 +- .../share/TgcPrepDataContainerCnv_p2_test.ref | 2 +- .../share/TgcPrepDataContainerCnv_p3_test.ref | 2 +- .../sTgcPrepDataContainerCnv_p1_test.ref | 2 +- .../MuonCondCool/share/ReadCoolStrFiles.py | 2 +- .../MuonCondCool/share/allign.py | 4 +- .../MuonCondCool/share/deadtube.py | 2 +- .../MuonCondGeneral/MuonCondCool/share/t0.py | 2 +- .../MDT_DigitizationStandalone_jobOptions.py | 4 +- .../share/RPC_Digitization_jobOptions.txt | 2 +- .../test/MuonGeoModelTestMaps.py | 2 +- .../share/TruthParticle_test.txt | 2 +- .../src/RootTruthParticleCnvTool.cxx | 6 +- .../src/RootTruthParticleCnvTool.h | 6 +- Projects/AthGeneration/externals.txt | 2 +- Projects/AthSimulation/externals.txt | 2 +- Projects/Athena/externals.txt | 2 +- .../FastShower_CaloCellMaker_jobOptions.py | 2 +- .../share/ISF_FatrasEventTPCnv_test.txt | 2 +- .../share/PlanarClusterCnv_p1_test.ref | 2 +- .../share/PlanarClusterCnv_p2_test.ref | 2 +- .../PlanarClusterContainerCnv_p1_test.ref | 2 +- .../PlanarClusterContainerCnv_p2_test.ref | 2 +- .../share/TBMonExemple_jobOptions.txt | 10 +- .../share/jobOptions_MonTBInstruments.py | 2 +- TestBeam/TBRec/share/H8TimingNtuple.py | 2 +- .../share/TileCellBuilderFromHit_test.ref | 2 +- .../share/TileCellBuilder_test.ref | 2 +- .../share/TileDQstatusAlg_test.ref | 2 +- .../share/TileDQstatusTool_test.ref | 2 +- .../share/TileRawChannelBuilder_test.ref | 2 +- .../TileBeamElemContByteStreamCnv_test.ref | 4 +- .../TileDigitsContByteStreamCnv_test.ref | 4 +- .../share/TileL2ContByteStreamCnv_test.ref | 4 +- .../share/TileLaserObjByteStreamCnv_test.ref | 4 +- .../share/TileMuRcvContByteStreamCnv_test.ref | 4 +- .../TileRawChannelContByteStreamCnv_test.ref | 4 +- Tools/Scripts/share/check_joboptions | 4 +- .../src/TrigConfJobOptionsSvc.cxx | 10 +- .../TrigConfigSvc/src/TrigConfJobOptionsSvc.h | 42 ++++++++- .../share/TrigInDetEventTPCnv_test.txt | 2 +- .../share/TrigInDetTrackCnv_p4_test.ref | 2 +- .../share/HLTNavigation_test.ref | 2 +- .../TrigNavigation/share/Holder_test.ref | 2 +- .../TrigNavigation/share/Ownership_test.ref | 2 +- .../share/Registration_test.ref | 2 +- .../TrigNavigation/share/RoICache_test.ref | 2 +- .../TrigEvent/TrigNavigation/share/test.txt | 6 +- .../TrigEvent/TrigNavigation/share/test2.txt | 6 +- Trigger/TrigT1/TrigT1RPClogic/README | 2 +- Trigger/TrigT1/TrigT1RPCsteering/README | 2 +- .../share/LVL1RpcRunJobOptions.py | 10 +- Trigger/TrigTools/TrigTimeAlgs/share/test.txt | 2 +- 170 files changed, 344 insertions(+), 301 deletions(-) diff --git a/AtlasTest/ControlTest/share/DataLink_test.ref b/AtlasTest/ControlTest/share/DataLink_test.ref index 22c2f1bb3acf7a26a7c0fb0c51b7ec4005c78a4d..aebe2225790cbe25a451d8262ae44b959e3474f8 100644 GIT binary patch delta 15 Wcmdm?zC(S3DGO6h&SrC#Mt%S+?*#w= delta 15 Wcmdm?zC(S3DGQU2&t`L$Mt%S*PXxdK diff --git a/AtlasTest/ControlTest/share/HelloWorld.ref b/AtlasTest/ControlTest/share/HelloWorld.ref index 351a208fa2f..e8eb8bbcce2 100644 --- a/AtlasTest/ControlTest/share/HelloWorld.ref +++ b/AtlasTest/ControlTest/share/HelloWorld.ref @@ -7,7 +7,7 @@ JobOptionsSvc INFO //============================================================== //no EventSelector -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.EventLoop = "AthenaEventLoopMgr"; //-------------------------------------------------------------- // StoreGate services configuration @@ -15,7 +15,7 @@ ApplicationMgr.EventLoop = "AthenaEventLoopMgr"; // --> Including file StoreGate/StoreGate_jobOptions.txt -ApplicationMgr.DLLs += { "StoreGate", "CLIDSvc" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDSvc" }; ApplicationMgr.ExtSvc += { "ClassIDSvc" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore" }; ApplicationMgr.ExtSvc += { "ActiveStoreSvc" }; @@ -30,7 +30,7 @@ ApplicationMgr.ExtSvc += { "ActiveStoreSvc" }; // Load the Interval of Validity Service // //------------------------------------------------------------------------ -ApplicationMgr.DLLs += { "IOVSvc" }; +ApplicationMgr.Dlls += { "IOVSvc" }; ApplicationMgr.ExtSvc += { "IOVSvc" }; @@ -50,7 +50,7 @@ ApplicationMgr.ExtSvc += { "EvtPersistencySvc/EventPersistencySvc", //-------------------------------------------------------------- //load relevant libraries -ApplicationMgr.DLLs += { "AthExHelloWorld" }; +ApplicationMgr.Dlls += { "AthExHelloWorld" }; //top algorithms to be run ApplicationMgr.TopAlg = { "HelloWorld" }; diff --git a/AtlasTest/ControlTest/share/HistNtup.ref b/AtlasTest/ControlTest/share/HistNtup.ref index 6616b32c496..89e881fc33e 100644 --- a/AtlasTest/ControlTest/share/HistNtup.ref +++ b/AtlasTest/ControlTest/share/HistNtup.ref @@ -36,7 +36,7 @@ ApplicationMgr.ExtSvc += { "IncidentSvc/IncidentSvc", "ChronoStatSvc/ChronoStatSvc" }; -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.EventLoop = "AthenaEventLoopMgr"; ApplicationMgr.OutStreamType = "AthenaOutputStream"; AthenaEventLoopMgr.OutStreamType = "AthenaOutputStream"; @@ -47,7 +47,7 @@ AthenaEventLoopMgr.OutStreamType = "AthenaOutputStream"; // --> Including file StoreGate/StoreGate_jobOptions.txt -ApplicationMgr.DLLs += { "StoreGate", "CLIDSvc" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDSvc" }; ApplicationMgr.ExtSvc += { "ClassIDSvc" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore" }; ApplicationMgr.ExtSvc += { "ActiveStoreSvc" }; @@ -62,7 +62,7 @@ ApplicationMgr.ExtSvc += { "ActiveStoreSvc" }; // Load the Interval of Validity Service // //------------------------------------------------------------------------ -ApplicationMgr.DLLs += { "IOVSvc" }; +ApplicationMgr.Dlls += { "IOVSvc" }; ApplicationMgr.ExtSvc += { "IOVSvc" }; @@ -84,7 +84,7 @@ ApplicationMgr.ExtSvc += { "IOVSvc" }; // // DLLs -ApplicationMgr.DLLs += { "DetDescrCnvSvc" }; +ApplicationMgr.Dlls += { "DetDescrCnvSvc" }; // Add in services // (NOTE: the following does not yet work for the detector store) @@ -111,7 +111,7 @@ DetDescrCnvSvc.IdDictName = "IdDictParser/ATLAS_IDS.xml"; // // DLLs -ApplicationMgr.DLLs += { "IdDictDetDescrCnv" }; +ApplicationMgr.Dlls += { "IdDictDetDescrCnv" }; // <-- End of including file IdDictDetDescrCnv/IdDictDetDescrCnv_joboptions.txt @@ -136,7 +136,7 @@ ApplicationMgr.DLLs += { "IdDictDetDescrCnv" }; // General Application Configuration options //-------------------------------------------------------------- -ApplicationMgr.DLLs += { "ZebraTDRCnv" , "HbookCnv"}; +ApplicationMgr.Dlls += { "ZebraTDRCnv" , "HbookCnv"}; ApplicationMgr.ExtSvc += { "ZebraTDRCnvSvc", "ZebraTDREventSelector/EventSelector" }; ApplicationMgr.EvtSel = "EventSelector"; @@ -171,7 +171,7 @@ JobOptionsSvc INFO // <-- End of including file IdDictDetDescrCnv/IdDictD // // DLLs -ApplicationMgr.DLLs += { "InDetMgrDetDescrCnv" }; +ApplicationMgr.Dlls += { "InDetMgrDetDescrCnv" }; // Add InDet to list of DetectorManagers to be loaded at startup DetDescrCnvSvc.DetectorManagers += { "InDetMgr" }; @@ -186,7 +186,7 @@ DetDescrCnvSvc.DetectorManagers += { "InDetMgr" }; // // DLLs -ApplicationMgr.DLLs += { "LArDetMgrDetDescrCnv" }; +ApplicationMgr.Dlls += { "LArDetMgrDetDescrCnv" }; // Add InDet to list of DetectorManagers to be loaded at startup DetDescrCnvSvc.DetectorManagers += { "LArMgr" }; @@ -199,7 +199,7 @@ DetDescrCnvSvc.DetectorManagers += { "LArMgr" }; // // DLLs -ApplicationMgr.DLLs += { "CaloDetMgrDetDescrCnv" }; +ApplicationMgr.Dlls += { "CaloDetMgrDetDescrCnv" }; // Add InDet to list of DetectorManagers to be loaded at startup DetDescrCnvSvc.DetectorManagers += { "CaloMgr" }; @@ -218,7 +218,7 @@ DetDescrCnvSvc.DetectorManagers += { "CaloMgr" }; // // DLLs -ApplicationMgr.DLLs += { "MuonDetMgrDetDescrCnv" }; +ApplicationMgr.Dlls += { "MuonDetMgrDetDescrCnv" }; // Add InDet to list of DetectorManagers to be loaded at startup DetDescrCnvSvc.DetectorManagers += { "MuonMgr" }; @@ -233,11 +233,11 @@ DetDescrCnvSvc.DecodeIdDict = true; // Private Application Configuration options //-------------------------------------------------------------- //load relevant libraries -ApplicationMgr.DLLs += { "AthExHistNtup" }; +ApplicationMgr.Dlls += { "AthExHistNtup" }; // Select the appropriate shared library -ApplicationMgr.DLLs += { "HbookCnv" }; -////ApplicationMgr.DLLs += { "RootHistCnv" }; +ApplicationMgr.Dlls += { "HbookCnv" }; +////ApplicationMgr.Dlls += { "RootHistCnv" }; // Select HBOOK or ROOT persistency (HBOOK is default) ApplicationMgr.HistogramPersistency = "HBOOK"; diff --git a/AtlasTest/ControlTest/share/ProxyProviderSvc_test.ref b/AtlasTest/ControlTest/share/ProxyProviderSvc_test.ref index bd6986a7717..d878a6df7cc 100644 --- a/AtlasTest/ControlTest/share/ProxyProviderSvc_test.ref +++ b/AtlasTest/ControlTest/share/ProxyProviderSvc_test.ref @@ -1,43 +1,54 @@ -Initializing Gaudi ApplicationMgr using job opts ../share/ProxyProviderSvc_test.txt -JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/joboptions/ControlTest/StoreGateTestCommon.txt +Initializing Gaudi ApplicationMgr using job opts /build/GMR/577.3/athena/AtlasTest/ControlTest/share/ProxyProviderSvc_test.txt +JobOptionsSvc INFO # =======> /build/GMR/577.3/build/build/Athena/x86_64-centos7-gcc8-opt/jobOptions/ControlTest/StoreGateTestCommon.txt JobOptionsSvc INFO # (5,1): ApplicationMgr.ExtSvc += ["StoreGateSvc/DetectorStore", "StoreGateSvc/HistoryStore", "StoreGateSvc/ConditionStore"] JobOptionsSvc INFO # (6,1): AuditorSvc.Auditors += ["AlgContextAuditor"] JobOptionsSvc INFO # (7,1): StoreGateSvc.OutputLevel = 1 JobOptionsSvc INFO # (8,1): StoreGateSvc.ActivateHistory = 0 JobOptionsSvc INFO # (9,1): CLIDSvc.OutputLevel = 2 JobOptionsSvc INFO # (10,1): MessageSvc.useColors = 1 -JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/joboptions/ToyConversion/ToyConversionOpts.txt +JobOptionsSvc INFO # =======> /build/GMR/577.3/build/build/Athena/x86_64-centos7-gcc8-opt/jobOptions/ToyConversion/ToyConversionOpts.txt JobOptionsSvc INFO # (5,1): EventPersistencySvc.CnvServices += ["ToyConversionSvc"] -JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/../tests/../share/ProxyProviderSvc_test.txt +JobOptionsSvc INFO # =======> /build/GMR/577.3/athena/AtlasTest/ControlTest/share/ProxyProviderSvc_test.txt JobOptionsSvc INFO # (7,1): ProxyProviderSvc.OutputLevel = 1 JobOptionsSvc INFO # (9,1): ClassIDSvc.OutputLevel = 2 JobOptionsSvc INFO # (10,1): MessageSvc.setVerbose = ["DataProxy", "EventPersistencySvc", "ToyConversionSvc", "StoreGateSvc", "EventDataSvc", "HistogramDataSvc", "ServiceManager", "HistogramPersistencySvc", "HistoryStore", "DetectorStore", "ApplicationMgr", "ProxyProviderSvc"] JobOptionsSvc INFO # (11,1): MessageSvc.setDebug = ["ClassIDSvc"] -JobOptionsSvc INFO Job options successfully read in from ../share/ProxyProviderSvc_test.txt +JobOptionsSvc INFO Job options successfully read in from /build/GMR/577.3/athena/AtlasTest/ControlTest/share/ProxyProviderSvc_test.txt ApplicationMgr DEBUG Getting my own properties[m ApplicationMgr SUCCESS ==================================================================================================================================== - Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99) - running on karma on Tue Jul 17 15:42:25 2018 + Welcome to ApplicationMgr (GaudiCoreSvc v33r2) + running on zeus on Tue Jul 28 09:01:40 2020 ====================================================================================================================================[m ApplicationMgr INFO Application Manager Configured successfully[m ServiceManager DEBUG Initializing service DetectorStore[m DetectorStore DEBUG Service base class initialized successfully[m DetectorStore VERBOSE Initializing DetectorStore - package version StoreGate-00-00-00[m DetectorStore DEBUG trying to create store SGImplSvc/DetectorStore_Impl[m +DetectorStore_Impl DEBUG Property update for OutputLevel : new value = 1[m +DetectorStore_ImplVERBOSE Initializing DetectorStore_Impl - package version StoreGate-00-00-00[m +DetectorStore_Impl DEBUG Service base class initialized successfully[m EventPersistenc... DEBUG 'CnvServices':[ 'ToyConversionSvc' ][m EventPersistenc... DEBUG Service base class initialized successfully[m +DetectorStore_ImplVERBOSE ServiceLocatorHelper::service: found service EventPersistencySvc[m ClassIDSvc DEBUG Service base class initialized successfully[m -ClassIDSvc INFO getRegistryEntries: read 2468 CLIDRegistry entries for module ALL[m -ClassIDSvc DEBUG processCLIDDB: read 702 entries from CLIDDB file: /home/sss/atlas/dvtest/build/share/clid.db[m +ClassIDSvc INFO getRegistryEntries: read 808 CLIDRegistry entries for module ALL[m +ClassIDSvc DEBUG processCLIDDB: read 1747 entries from CLIDDB file: /build/GMR/577.3/build/build/Athena/x86_64-centos7-gcc8-opt/share/clid.db[m +DetectorStore_ImplVERBOSE ServiceLocatorHelper::service: found service ClassIDSvc[m ProxyProviderSvc VERBOSE Initializing ProxyProviderSvc - package version SGComps-00-00-00[m ProxyProviderSvc VERBOSE ServiceLocatorHelper::service: found service EventPersistencySvc[m +ProxyProviderSvc DEBUG Service base class initialized successfully[m ServiceManager DEBUG Initializing service HistoryStore[m HistoryStore DEBUG Service base class initialized successfully[m HistoryStore VERBOSE Initializing HistoryStore - package version StoreGate-00-00-00[m HistoryStore DEBUG trying to create store SGImplSvc/HistoryStore_Impl[m +HistoryStore_Impl DEBUG Property update for OutputLevel : new value = 1[m +HistoryStore_Impl VERBOSE Initializing HistoryStore_Impl - package version StoreGate-00-00-00[m +HistoryStore_Impl DEBUG Service base class initialized successfully[m +HistoryStore_Impl VERBOSE ServiceLocatorHelper::service: found service EventPersistencySvc[m +HistoryStore_Impl VERBOSE ServiceLocatorHelper::service: found service ClassIDSvc[m ServiceManager DEBUG Initializing service ConditionStore[m ServiceManager DEBUG Initializing service AppMgrRunable[m ServiceManager DEBUG Initializing service EventLoopMgr[m @@ -48,7 +59,7 @@ EventDataSvc VERBOSE ServiceLocatorHelper::service: found service IncidentS HistogramDataSvc DEBUG Service base class initialized successfully[m HistogramDataSvc VERBOSE ServiceLocatorHelper::service: found service IncidentSvc[m HistogramPersis... DEBUG Service base class initialized successfully[m -[93;1mHistogramPersis...WARNING Histograms saving not required.[m +HistogramPersis... DEBUG Histograms saving not required.[m HistogramDataSvc VERBOSE ServiceLocatorHelper::service: found service HistogramPersistencySvc[m ApplicationMgr INFO Application Manager Initialized successfully[m ApplicationMgr Ready @@ -60,15 +71,15 @@ StoreGateSvc_Impl VERBOSE Initializing StoreGateSvc_Impl - package version Store StoreGateSvc_Impl DEBUG Service base class initialized successfully[m StoreGateSvc_Impl VERBOSE ServiceLocatorHelper::service: found service EventPersistencySvc[m StoreGateSvc_Impl VERBOSE ServiceLocatorHelper::service: found service ClassIDSvc[m -StoreGateSvc_Impl DEBUG Bound handle 0x7ffc9a030060 to proxy 0x955930[m +ClassIDSvc INFO getRegistryEntries: read 1019 CLIDRegistry entries for module ALL[m ToyConversionSvc DEBUG Service base class initialized successfully[m EventPersistenc...VERBOSE ServiceLocatorHelper::service: found service ToyConversionSvc[m EventPersistenc... INFO Added successfully Conversion service:ToyConversionSvc[m -ClassIDSvc INFO getRegistryEntries: read 374 CLIDRegistry entries for module ALL[m +ClassIDSvc INFO getRegistryEntries: read 2 CLIDRegistry entries for module ALL[m <<<<<<<<<<<<<<<<< Data Store Dump >>>>>>>>>>>>>>> SGImplSvc(StoreGateSvc_Impl)::dump(): Found 1 proxy for ClassID 8107 (Bar): - flags: ( valid, locked, reset) --- data: 0x957570 --- key: aBar + flags: ( valid, locked, reset) --- data: 0x4bb7d50 --- key: aBar <<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>> StoreGateSvc DEBUG Retrieved const pointer to object aFoo of type Foo(CLID 8101)[m @@ -77,18 +88,15 @@ Now we expect to see an error message: ToyConversionSvc INFO No converter for object CLID= 8109[m [93;1mDataProxy WARNING accessData: conversion failed for data object 8109/aFooBar Returning NULL DataObject pointer [m -[93;1mSG::DataProxy_castWARNING this proxy 0x967500 has a NULL data object ptr[m +[93;1mSG::DataProxy_castWARNING this proxy 0x512fb80 has a NULL data object ptr[m <<---Error Message Ends------- *** ProxyProviderSvc_test OK *** *** ProxyProviderSvc_test RecordBeforeRead BEGINS *** StoreGateSvc_Impl DEBUG Clearing store with forceRemove=0[m -DataProxy VERBOSE requestRelease(): reset object aBar CLID 8107 address 0x957570[m -DataProxy VERBOSE requestRelease(): reset object aFoo CLID 8101 address 0x963fd0[m -DataProxy VERBOSE requestRelease(): reset object aFooBar CLID 8109 address 0[m [93;1mStoreGateSvc_Impl WARNING record_impl: you are recording an object with key existingFoo, type Foo (CLID 8101) There is already a persistent version of this object. Recording a duplicate may lead to unreproducible results and it is deprecated.[m -StoreGateSvc DEBUG Recorded object @0x955c10 with key existingFoo of type Foo(CLID 8101) - in DataObject @0x963fd0 +StoreGateSvc DEBUG Recorded object @0x4e61ac0 with key existingFoo of type Foo(CLID 8101) + in DataObject @0x4f560f0 object modifiable when retrieved[m StoreGateSvc DEBUG Retrieved const pointer to object existingFoo of type Foo(CLID 8101)[m 6.28 @@ -103,15 +111,15 @@ Now we expect to see an error message: <<---Error Message Ends------- [93;1mStoreGateSvc_Impl WARNING record_impl: you are recording an object with key privFoo, type Foo (CLID 8101) There is already a persistent version of this object. Recording a duplicate may lead to unreproducible results and it is deprecated.[m -StoreGateSvc DEBUG Recorded object @0x971af0 with key privFoo of type Foo(CLID 8101) - in DataObject @0x96fe90 +StoreGateSvc DEBUG Recorded object @0x4da0030 with key privFoo of type Foo(CLID 8101) + in DataObject @0x4ed9a00 object modifiable when retrieved[m -StoreGateSvc DEBUG overwrite: Recorded object @0x971ab0 with key privFoo of type Foo(CLID 8101) - in DataObject @0x967d80 +StoreGateSvc DEBUG overwrite: Recorded object @0x4dbd370 with key privFoo of type Foo(CLID 8101) + in DataObject @0x4ff46e0 object modifiable when retrieved[m StoreGateSvc DEBUG Retrieved non-const pointer to object privFoo of type Foo(CLID 8101)[m -StoreGateSvc DEBUG Recorded object @0x971ad0 with key silly33 of type Foo(CLID 8101) - in DataObject @0x969e00 +StoreGateSvc DEBUG Recorded object @0x1d4f000 with key silly33 of type Foo(CLID 8101) + in DataObject @0x509ef70 object modifiable when retrieved[m StoreGateSvc DEBUG Retrieved non-const pointer to object silly33 of type Foo(CLID 8101)[m Now we expect to see an error message: @@ -130,18 +138,7 @@ Now we expect to see an error message: *** ProxyProviderSvc_test HLTAutoKeyReset BEGINS *** StoreGateSvc_Impl DEBUG Clearing store with forceRemove=1[m -DataProxy VERBOSE requestRelease(): release object aBar CLID 8107 address 0[m -DataProxy VERBOSE requestRelease(): release object silly33 CLID 8101 address 0[m -DataProxy VERBOSE requestRelease(): release object privFoo CLID 8101 address 0x967d80[m -DataProxy VERBOSE requestRelease(): release object diskFoo CLID 8101 address 0[m -DataProxy VERBOSE requestRelease(): release object existingFoo CLID 8101 address 0x963fd0[m -DataProxy VERBOSE requestRelease(): release object aFooBar CLID 8109 address 0[m -DataProxy VERBOSE requestRelease(): release object aFoo CLID 8101 address 0[m StoreGateSvc_Impl DEBUG Clearing store with forceRemove=0[m -DataProxy VERBOSE requestRelease(): release object HLTAutoKey_1 CLID 8101 address 0[m -DataProxy VERBOSE requestRelease(): reset object NOT_HLTAutoKey_3 CLID 8101 address 0[m -DataProxy VERBOSE requestRelease(): release object HLTAutoKey_2 CLID 8101 address 0[m -DataProxy VERBOSE requestRelease(): release object HLTAutoKey_3 CLID 8101 address 0[m *** ProxyProviderSvc_test HLTAutoKeyReset OK *** @@ -149,31 +146,26 @@ DataProxy VERBOSE requestRelease(): release object HLTAutoKey_3 CLID 8 StoreGateSvc_Impl DEBUG Clearing store with forceRemove=1[m -DataProxy VERBOSE requestRelease(): release object NOT_HLTAutoKey_3 CLID 8101 address 0[m -DataProxy VERBOSE requestRelease(): release object HLTAutoKey_1 CLID 8101 address 0[m =============Event #0 starts -StoreGateSvc DEBUG overwrite: Recorded object @0x971ad0 with key toOverwrite of type FooBar(CLID 8109) - in DataObject @0x965c10 +StoreGateSvc DEBUG overwrite: Recorded object @0x4dfc8d0 with key toOverwrite of type FooBar(CLID 8109) + in DataObject @0x4f0e360 object modifiable when retrieved[m Overwritten FooBar i=0 StoreGateSvc_Impl DEBUG Clearing store with forceRemove=0[m -DataProxy VERBOSE requestRelease(): release object toOverwrite CLID 8109 address 0x965c10[m FooBar i=0 deleted =============Event #1 starts -StoreGateSvc DEBUG overwrite: Recorded object @0x949920 with key toOverwrite of type FooBar(CLID 8109) - in DataObject @0x965c10 +StoreGateSvc DEBUG overwrite: Recorded object @0x4ea01f0 with key toOverwrite of type FooBar(CLID 8109) + in DataObject @0x4f0e360 object modifiable when retrieved[m Overwritten FooBar i=1 StoreGateSvc_Impl DEBUG Clearing store with forceRemove=0[m -DataProxy VERBOSE requestRelease(): release object toOverwrite CLID 8109 address 0x965c10[m FooBar i=1 deleted =============Event #2 starts -StoreGateSvc DEBUG overwrite: Recorded object @0x96fd00 with key toOverwrite of type FooBar(CLID 8109) - in DataObject @0x965c10 +StoreGateSvc DEBUG overwrite: Recorded object @0x4ee38b0 with key toOverwrite of type FooBar(CLID 8109) + in DataObject @0x4f0e360 object modifiable when retrieved[m Overwritten FooBar i=2 StoreGateSvc_Impl DEBUG Clearing store with forceRemove=0[m -DataProxy VERBOSE requestRelease(): release object toOverwrite CLID 8109 address 0x965c10[m FooBar i=2 deleted *** ProxyProviderSvc_test Overwrite OK *** diff --git a/AtlasTest/ControlTest/share/StoreGatePileUp.ref b/AtlasTest/ControlTest/share/StoreGatePileUp.ref index c39372fa170..8f8dae5f060 100644 --- a/AtlasTest/ControlTest/share/StoreGatePileUp.ref +++ b/AtlasTest/ControlTest/share/StoreGatePileUp.ref @@ -36,7 +36,7 @@ ApplicationMgr.ExtSvc += { "IncidentSvc/IncidentSvc", "ChronoStatSvc/ChronoStatSvc" }; -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.EventLoop = "AthenaEventLoopMgr"; ApplicationMgr.OutStreamType = "AthenaOutputStream"; AthenaEventLoopMgr.OutStreamType = "AthenaOutputStream"; @@ -47,7 +47,7 @@ AthenaEventLoopMgr.OutStreamType = "AthenaOutputStream"; // --> Including file $STOREGATEROOT/share/StoreGate_jobOptions.txt -ApplicationMgr.DLLs += { "StoreGate", "CLIDSvc" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDSvc" }; ApplicationMgr.ExtSvc += { "ClassIDSvc" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore" }; ApplicationMgr.ExtSvc += { "ActiveStoreSvc" }; @@ -70,7 +70,7 @@ ApplicationMgr.ExtSvc += { "ActiveStoreSvc" }; // // DLLs -ApplicationMgr.DLLs += { "DetDescrCnvSvc" }; +ApplicationMgr.Dlls += { "DetDescrCnvSvc" }; // Add in services // (NOTE: the following does not yet work for the detector store) @@ -97,7 +97,7 @@ DetDescrCnvSvc.IdDictName = "ATLAS_IDS.xml"; // // DLLs -ApplicationMgr.DLLs += { "IdDictDetDescrCnv" }; +ApplicationMgr.Dlls += { "IdDictDetDescrCnv" }; // <-- End of including file $IDDICTDETDESCRCNVROOT/share/IdDictDetDescrCnv_joboptions.txt @@ -124,7 +124,7 @@ DetDescrCnvSvc.CompactIDsOnly = true; // General Application Configuration options //-------------------------------------------------------------- -ApplicationMgr.DLLs += { "ZebraTDRCnv" , "HbookCnv"}; +ApplicationMgr.Dlls += { "ZebraTDRCnv" , "HbookCnv"}; ApplicationMgr.ExtSvc += { "ZebraTDRCnvSvc", "ZebraTDREventSelector/EventSelector" }; //-------------------------------------------------------------- @@ -154,7 +154,7 @@ JobOptionsSvc INFO // // DLLs -ApplicationMgr.DLLs += { "IdDictDetDescrCnv" }; +ApplicationMgr.Dlls += { "IdDictDetDescrCnv" }; // <-- End of including file $IDDICTDETDESCRCNVROOT/share/IdDictDetDescrCnv_joboptions.txt @@ -167,7 +167,7 @@ ApplicationMgr.DLLs += { "IdDictDetDescrCnv" }; // // DLLs -ApplicationMgr.DLLs += { "InDetMgrDetDescrCnv" }; +ApplicationMgr.Dlls += { "InDetMgrDetDescrCnv" }; // Add InDet to list of DetectorManagers to be loaded at startup DetDescrCnvSvc.DetectorManagers += { "InDetMgr" }; @@ -182,7 +182,7 @@ DetDescrCnvSvc.DetectorManagers += { "InDetMgr" }; // // DLLs -ApplicationMgr.DLLs += { "LArDetMgrDetDescrCnv" }; +ApplicationMgr.Dlls += { "LArDetMgrDetDescrCnv" }; // Add InDet to list of DetectorManagers to be loaded at startup DetDescrCnvSvc.DetectorManagers += { "LArMgr" }; @@ -198,7 +198,7 @@ DetDescrCnvSvc.DetectorManagers += { "LArMgr" }; // // DLLs -ApplicationMgr.DLLs += { "TileDetMgrDetDescrCnv" }; +ApplicationMgr.Dlls += { "TileDetMgrDetDescrCnv" }; // Add Tile to list of DetectorManagers to be loaded at startup DetDescrCnvSvc.DetectorManagers += { "TileMgr" }; @@ -213,7 +213,7 @@ DetDescrCnvSvc.DetectorManagers += { "TileMgr" }; // // DLLs -ApplicationMgr.DLLs += { "MuonDetMgrDetDescrCnv" }; +ApplicationMgr.Dlls += { "MuonDetMgrDetDescrCnv" }; // Add InDet to list of DetectorManagers to be loaded at startup DetDescrCnvSvc.DetectorManagers += { "MuonMgr" }; @@ -228,7 +228,7 @@ DetDescrCnvSvc.DecodeIdDict = true; //-------------------------------------------------------------- //load relevant libraries -ApplicationMgr.DLLs += { "AthenaServices", "AthExStoreGateExample", "PileUpTools"}; +ApplicationMgr.Dlls += { "AthenaServices", "AthExStoreGateExample", "PileUpTools"}; //load pileup merge svc ApplicationMgr.ExtSvc += { "PileUpMergeSvc" }; diff --git a/AtlasTest/ControlTest/share/SubAlg.ref b/AtlasTest/ControlTest/share/SubAlg.ref index 0ab96d13a12..6426e1d6e9f 100644 --- a/AtlasTest/ControlTest/share/SubAlg.ref +++ b/AtlasTest/ControlTest/share/SubAlg.ref @@ -6,7 +6,7 @@ JobOptionsSvc INFO // //============================================================== //no EventSelector -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.EventLoop = "AthenaEventLoopMgr"; //-------------------------------------------------------------- // StoreGate services configuration @@ -14,7 +14,7 @@ ApplicationMgr.EventLoop = "AthenaEventLoopMgr"; // --> Including file StoreGate/StoreGate_jobOptions.txt -ApplicationMgr.DLLs += { "StoreGate", "CLIDSvc" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDSvc" }; ApplicationMgr.ExtSvc += { "ClassIDSvc" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore" }; ApplicationMgr.ExtSvc += { "ActiveStoreSvc" }; @@ -29,7 +29,7 @@ ApplicationMgr.ExtSvc += { "ActiveStoreSvc" }; // Load the Interval of Validity Service // //------------------------------------------------------------------------ -ApplicationMgr.DLLs += { "IOVSvc" }; +ApplicationMgr.Dlls += { "IOVSvc" }; ApplicationMgr.ExtSvc += { "IOVSvc" }; @@ -46,7 +46,7 @@ ApplicationMgr.ExtSvc += { "EvtPersistencySvc/EventPersistencySvc", // Private Application Configuration options //-------------------------------------------------------------- //load relevant libraries -ApplicationMgr.DLLs += { "AthExSubAlg" }; +ApplicationMgr.Dlls += { "AthExSubAlg" }; //top algorithms to be run ApplicationMgr.TopAlg = { "MainAlg" }; diff --git a/AtlasTest/DatabaseTest/AthenaPoolTest/share/AtlfastPoolWriteOptions.ref b/AtlasTest/DatabaseTest/AthenaPoolTest/share/AtlfastPoolWriteOptions.ref index 6f6fd154b1f..6e3be6c88bc 100755 --- a/AtlasTest/DatabaseTest/AthenaPoolTest/share/AtlfastPoolWriteOptions.ref +++ b/AtlasTest/DatabaseTest/AthenaPoolTest/share/AtlfastPoolWriteOptions.ref @@ -467,7 +467,7 @@ ApplicationMgr INFO Successfully loaded modules: AthenaPoolTest # load converter and append to event object ItemList # For example, LArAthenaPool should include # -# ApplicationMgr.DLLs += { "LArAthenaPool" }; +# ApplicationMgr.Dlls += { "LArAthenaPool" }; # Stream1.ItemList += { "2701#*", "2731#*" }; theApp.Dlls += [ "PoolSvc", "AthenaPoolCnvSvc", "AthenaPoolCnvSvcPoolCnv" ] theApp.ExtSvc += [ "PoolSvc", "AthenaPoolCnvSvc" ] diff --git a/AtlasTest/TestTools/TestTools/CppUnit_SGtestdriver.cxx b/AtlasTest/TestTools/TestTools/CppUnit_SGtestdriver.cxx index 18c5ab91a83..d20edf73677 100755 --- a/AtlasTest/TestTools/TestTools/CppUnit_SGtestdriver.cxx +++ b/AtlasTest/TestTools/TestTools/CppUnit_SGtestdriver.cxx @@ -82,8 +82,8 @@ bool setupStoreGate() { // Build a default list of options. std::list<std::string> opts; opts.push_back("#pragma print off"); - opts.push_back("ApplicationMgr.DLLs += { \"StoreGate\" };"); - //opts.push_back("ApplicationMgr.DLLs += { \"CLIDSvc\" };"); + opts.push_back("ApplicationMgr.Dlls += { \"StoreGate\" };"); + //opts.push_back("ApplicationMgr.Dlls += { \"CLIDSvc\" };"); opts.push_back("ApplicationMgr.ExtSvc += { \"ClassIDSvc\" };"); opts.push_back("ApplicationMgr.ExtSvc += { \"StoreGateSvc\", \"StoreGateSvc/DetectorStore\", \"StoreGateSvc/HistoryStore\" };"); opts.push_back("ApplicationMgr.ExtSvc += { \"ActiveStoreSvc\" };"); diff --git a/Calorimeter/CaloCnv/CaloTPCnv/share/CaloCompactCellTool_test.ref b/Calorimeter/CaloCnv/CaloTPCnv/share/CaloCompactCellTool_test.ref index 0b02550e680..56d318502d7 100644 --- a/Calorimeter/CaloCnv/CaloTPCnv/share/CaloCompactCellTool_test.ref +++ b/Calorimeter/CaloCnv/CaloTPCnv/share/CaloCompactCellTool_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/CaloCompactCellTool_test.txt JobOptionsSvc INFO # =======> /home/sss/nobackup/atlas/build-dvtest/../tests/../share/CaloCompactCellTool_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps", "CaloTriggerTool"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps", "CaloTriggerTool"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/CaloCompactCellTool_test.txt ApplicationMgr SUCCESS diff --git a/Calorimeter/CaloCnv/CaloTPCnv/share/CaloCompactCellTool_test.txt b/Calorimeter/CaloCnv/CaloTPCnv/share/CaloCompactCellTool_test.txt index 0dc9dec0ece..b69004e2db2 100644 --- a/Calorimeter/CaloCnv/CaloTPCnv/share/CaloCompactCellTool_test.txt +++ b/Calorimeter/CaloCnv/CaloTPCnv/share/CaloCompactCellTool_test.txt @@ -1,2 +1,2 @@ -ApplicationMgr.DLLs += { "StoreGate", "CLIDComps", "CaloTriggerTool" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDComps", "CaloTriggerTool" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore" }; diff --git a/Calorimeter/CaloEvent/share/CaloCellContainer_test.ref b/Calorimeter/CaloEvent/share/CaloCellContainer_test.ref index 422a971a768..f495b64b896 100644 --- a/Calorimeter/CaloEvent/share/CaloCellContainer_test.ref +++ b/Calorimeter/CaloEvent/share/CaloCellContainer_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/CaloCellContainer_test.txt JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/../tests/../share/CaloCellContainer_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/CaloCellContainer_test.txt ApplicationMgr SUCCESS diff --git a/Calorimeter/CaloEvent/share/CaloCellContainer_test.txt b/Calorimeter/CaloEvent/share/CaloCellContainer_test.txt index dae64b09f4f..7a62d9fe77d 100644 --- a/Calorimeter/CaloEvent/share/CaloCellContainer_test.txt +++ b/Calorimeter/CaloEvent/share/CaloCellContainer_test.txt @@ -1,2 +1,2 @@ -ApplicationMgr.DLLs += { "StoreGate", "CLIDComps" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDComps" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore" }; diff --git a/Calorimeter/CaloEvent/share/CaloCellPrefetchIterator_test.ref b/Calorimeter/CaloEvent/share/CaloCellPrefetchIterator_test.ref index 5b95656245d..3967cb2cf58 100644 --- a/Calorimeter/CaloEvent/share/CaloCellPrefetchIterator_test.ref +++ b/Calorimeter/CaloEvent/share/CaloCellPrefetchIterator_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/CaloCellContainer_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3e/Calorimeter/CaloEvent/run/../share/CaloCellContainer_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/CaloCellContainer_test.txt ApplicationMgr SUCCESS diff --git a/Calorimeter/CaloEvent/share/CaloCellPrefetchIterator_test.txt b/Calorimeter/CaloEvent/share/CaloCellPrefetchIterator_test.txt index dae64b09f4f..7a62d9fe77d 100644 --- a/Calorimeter/CaloEvent/share/CaloCellPrefetchIterator_test.txt +++ b/Calorimeter/CaloEvent/share/CaloCellPrefetchIterator_test.txt @@ -1,2 +1,2 @@ -ApplicationMgr.DLLs += { "StoreGate", "CLIDComps" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDComps" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore" }; diff --git a/Calorimeter/CaloEvent/share/CaloConstCellContainer_test.ref b/Calorimeter/CaloEvent/share/CaloConstCellContainer_test.ref index c748ac64b66..2752368b4d0 100644 --- a/Calorimeter/CaloEvent/share/CaloConstCellContainer_test.ref +++ b/Calorimeter/CaloEvent/share/CaloConstCellContainer_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/CaloCellContainer_test.txt JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/../tests/../share/CaloCellContainer_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/CaloCellContainer_test.txt ApplicationMgr SUCCESS diff --git a/Calorimeter/CaloEvent/share/CaloTopoTowerContainer_test.ref b/Calorimeter/CaloEvent/share/CaloTopoTowerContainer_test.ref index 4318ac7ac6b..e623fd4982f 100644 --- a/Calorimeter/CaloEvent/share/CaloTopoTowerContainer_test.ref +++ b/Calorimeter/CaloEvent/share/CaloTopoTowerContainer_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/CaloTopoTowerContainer_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/Calorimeter/CaloEvent/run/../share/CaloTopoTowerContainer_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/CaloTopoTowerContainer_test.txt ApplicationMgr SUCCESS diff --git a/Calorimeter/CaloEvent/share/CaloTopoTowerContainer_test.txt b/Calorimeter/CaloEvent/share/CaloTopoTowerContainer_test.txt index 7b6025a7cbd..58403489796 100644 --- a/Calorimeter/CaloEvent/share/CaloTopoTowerContainer_test.txt +++ b/Calorimeter/CaloEvent/share/CaloTopoTowerContainer_test.txt @@ -1,3 +1,3 @@ -ApplicationMgr.DLLs += { "StoreGate", "CLIDComps" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDComps" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore" }; #include "IOVSvc/IOVSvc.txt" diff --git a/Calorimeter/CaloUtils/share/CaloLayerCalculator_test.ref b/Calorimeter/CaloUtils/share/CaloLayerCalculator_test.ref index 6c8e3fcd74f..aef00a56498 100644 --- a/Calorimeter/CaloUtils/share/CaloLayerCalculator_test.ref +++ b/Calorimeter/CaloUtils/share/CaloLayerCalculator_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/CaloLayerCalculator_test.txt JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/../tests/../share/CaloLayerCalculator_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/CaloLayerCalculator_test.txt ApplicationMgr SUCCESS diff --git a/Calorimeter/CaloUtils/share/CaloLayerCalculator_test.txt b/Calorimeter/CaloUtils/share/CaloLayerCalculator_test.txt index 7b6025a7cbd..58403489796 100644 --- a/Calorimeter/CaloUtils/share/CaloLayerCalculator_test.txt +++ b/Calorimeter/CaloUtils/share/CaloLayerCalculator_test.txt @@ -1,3 +1,3 @@ -ApplicationMgr.DLLs += { "StoreGate", "CLIDComps" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDComps" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore" }; #include "IOVSvc/IOVSvc.txt" diff --git a/Calorimeter/CaloUtils/share/CaloVertexedCell_test.ref b/Calorimeter/CaloUtils/share/CaloVertexedCell_test.ref index 962f35a63e6..ca494e1a6de 100644 --- a/Calorimeter/CaloUtils/share/CaloVertexedCell_test.ref +++ b/Calorimeter/CaloUtils/share/CaloVertexedCell_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/CaloLayerCalculator_test.txt JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/../tests/../share/CaloLayerCalculator_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/CaloLayerCalculator_test.txt ApplicationMgr SUCCESS diff --git a/Calorimeter/CaloUtils/share/CaloVertexedCluster_test.ref b/Calorimeter/CaloUtils/share/CaloVertexedCluster_test.ref index ed1674e8a53..ebcb6f2680a 100644 --- a/Calorimeter/CaloUtils/share/CaloVertexedCluster_test.ref +++ b/Calorimeter/CaloUtils/share/CaloVertexedCluster_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/CaloLayerCalculator_test.txt JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/../tests/../share/CaloLayerCalculator_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/CaloLayerCalculator_test.txt ApplicationMgr SUCCESS diff --git a/Commission/CommissionUtils/share/AnaCosmic.py b/Commission/CommissionUtils/share/AnaCosmic.py index 642cc9f1fcc..1170445faf2 100644 --- a/Commission/CommissionUtils/share/AnaCosmic.py +++ b/Commission/CommissionUtils/share/AnaCosmic.py @@ -24,13 +24,13 @@ include( "CaloDetMgrDetDescrCnv/CaloDetMgrDetDescrCnv_joboptions.py" ) -theApp.DLLs +=["LArAthenaPoolPoolCnv"] -theApp.DLLs +=["TileEventAthenaPoolPoolCnv"] -theApp.DLLs +=["GeneratorObjectsAthenaPoolPoolCnv"] -theApp.DLLs +=["TruthExamples"] +theApp.Dlls +=["LArAthenaPoolPoolCnv"] +theApp.Dlls +=["TileEventAthenaPoolPoolCnv"] +theApp.Dlls +=["GeneratorObjectsAthenaPoolPoolCnv"] +theApp.Dlls +=["TruthExamples"] # add user Dlls and TopAlg. -# theApp.DLLs +=["XYZ"] +# theApp.Dlls +=["XYZ"] # theApp.TopAlg = ["UVW"] # CBNT diff --git a/Commission/CommissionUtils/share/CBNT_TTR_jobOptions.py b/Commission/CommissionUtils/share/CBNT_TTR_jobOptions.py index b6a8b826d03..8eabd64c330 100644 --- a/Commission/CommissionUtils/share/CBNT_TTR_jobOptions.py +++ b/Commission/CommissionUtils/share/CBNT_TTR_jobOptions.py @@ -1,4 +1,4 @@ -theApp.DLLs += ["CommissionUtils"] +theApp.Dlls += ["CommissionUtils"] # jamie boyd - 1/6/2012 removing all references to CBNT but not testing! #CBNT_Athena.Members += [ "CBNT_TTR" ] diff --git a/Commission/CommissionUtils/share/DigitCosmic.py b/Commission/CommissionUtils/share/DigitCosmic.py index 86e5cbebeac..b91dd1cc715 100644 --- a/Commission/CommissionUtils/share/DigitCosmic.py +++ b/Commission/CommissionUtils/share/DigitCosmic.py @@ -30,9 +30,9 @@ if not 'outputfile' in dir() : EventSelector.InputCollections=[inputfile] Stream1.OutputFile = outputfile -theApp.DLLs += ["GeneratorObjectsAthenaPoolPoolCnv"] -theApp.DLLs += ["G4SimAthenaPOOLPoolCnv"] -theApp.DLLs += ["CommissionAthenaPoolPoolCnv"] +theApp.Dlls += ["GeneratorObjectsAthenaPoolPoolCnv"] +theApp.Dlls += ["G4SimAthenaPOOLPoolCnv"] +theApp.Dlls += ["CommissionAthenaPoolPoolCnv"] include ("CommissionEvent/CommissionEventDict_joboptions.py") digitmaker1.SkipNoHit=True @@ -45,7 +45,7 @@ TileHitVecToCnt.UseTriggerTime = True; TileHitVecToCnt.TriggerTimeToolName = "CosmicTriggerTimeTool" # insert ComTimeRec at the beginning of the TopAlgs. -theApp.DLLs += ["CommissionRec"] +theApp.Dlls += ["CommissionRec"] topAlgs = theApp.TopAlg ; theApp.TopAlg = ["ComTimeRec"] @@ -70,7 +70,7 @@ theApp.EvtMax = 2000 IOVDbSvc.ManageConnections = TRUE MessageSvc.infoLimit = 1000000 -theApp.DLLs += ["CommissionUtils"] +theApp.Dlls += ["CommissionUtils"] PileUpMergeSvc = Service("PileUpMergeSvc") PileUpMergeSvc.TriggerTimeTool = "CosmicTriggerTimeTool" diff --git a/Commission/CommissionUtils/share/RecoCosmic.py b/Commission/CommissionUtils/share/RecoCosmic.py index 1ecc8c3e400..7f24f6f9e25 100644 --- a/Commission/CommissionUtils/share/RecoCosmic.py +++ b/Commission/CommissionUtils/share/RecoCosmic.py @@ -56,13 +56,13 @@ slimmer.ClusterContainerNames = ["EMTopoCluster","CaloTopoCluster"] slimmer.CellContainerName = "ClusterOnly" -theApp.DLLs +=["LArAthenaPoolPoolCnv"] -theApp.DLLs +=["TileEventAthenaPoolPoolCnv"] -theApp.DLLs +=["GeneratorObjectsAthenaPoolPoolCnv"] -theApp.DLLs +=["G4SimAthenaPOOLPoolCnv"] -theApp.DLLs +=["RecAthenaPoolPoolCnv"] -theApp.DLLs +=["TruthExamples"] -theApp.DLLs +=["LArRawUtils", "LArROD"] +theApp.Dlls +=["LArAthenaPoolPoolCnv"] +theApp.Dlls +=["TileEventAthenaPoolPoolCnv"] +theApp.Dlls +=["GeneratorObjectsAthenaPoolPoolCnv"] +theApp.Dlls +=["G4SimAthenaPOOLPoolCnv"] +theApp.Dlls +=["RecAthenaPoolPoolCnv"] +theApp.Dlls +=["TruthExamples"] +theApp.Dlls +=["LArRawUtils", "LArROD"] #theApp.TopAlg += ["DumpMC"] #DumpMC = Algorithm("DumpMC") diff --git a/Control/AthAllocators/share/DataPool_test.txt b/Control/AthAllocators/share/DataPool_test.txt index a47946e0427..5fbb5f9dcff 100644 --- a/Control/AthAllocators/share/DataPool_test.txt +++ b/Control/AthAllocators/share/DataPool_test.txt @@ -2,7 +2,7 @@ // $Id: DataPool_test.txt,v 1.1 2003-04-02 19:35:10 calaf Exp $ -//ApplicationMgr.DLLs += { "StoreGate" }; +//ApplicationMgr.Dlls += { "StoreGate" }; MessageSvc.OutputLevel = 2; ApplicationMgr.ExtSvc += {"IncidentSvc", "ChronoStatSvc", "AuditorSvc"}; diff --git a/Control/AthenaCommon/python/ConfigurationShelve.py b/Control/AthenaCommon/python/ConfigurationShelve.py index 461bd058add..ffbb125095d 100644 --- a/Control/AthenaCommon/python/ConfigurationShelve.py +++ b/Control/AthenaCommon/python/ConfigurationShelve.py @@ -305,6 +305,9 @@ def loadJobOptionsCatalogue( cfg_fname ): # restore job catalogue entries import GaudiPython.Bindings as gaudi for client in jocat: + if client == "ApplicationMgr": + # ApplicationMgr properties are already set + continue for n,v in six.iteritems(jocat[ client ]): # In Gaudi v28, the second argument of the ctor is passed by move, # which pyroot doesn't handle correctly. Do this as a workaround. diff --git a/Control/AthenaCommon/share/GenerateBootstrapTest.ref b/Control/AthenaCommon/share/GenerateBootstrapTest.ref index f192f34d093..1458f3c147c 100644 --- a/Control/AthenaCommon/share/GenerateBootstrapTest.ref +++ b/Control/AthenaCommon/share/GenerateBootstrapTest.ref @@ -4,13 +4,13 @@ copy bootstrap.pkl ... Read 2 items from python pickle file: bootstrap.pkl ... Read 2 items from python pickle file: bootstrap_test.pkl Given list of size 0. Not looking for differences. -Step 1: reference file #components: 27 -Step 2: file to check #components: 27 +Step 1: reference file #components: 28 +Step 2: file to check #components: 28 Willing to acquire file bootstrap_threaded.pkl from /build/mnowak/work/sealsvc/build/x86_64-centos7-gcc8-opt/share/bootstrap_threaded.pkl copy bootstrap_threaded.pkl ... Read 2 items from python pickle file: bootstrap_threaded.pkl ... Read 2 items from python pickle file: bootstrap_threaded_test.pkl Given list of size 0. Not looking for differences. -Step 1: reference file #components: 33 -Step 2: file to check #components: 33 +Step 1: reference file #components: 34 +Step 2: file to check #components: 34 diff --git a/Control/AthenaCommon/share/bootstrap.pkl b/Control/AthenaCommon/share/bootstrap.pkl index 693d4fce1c1f243c19c772defff3334222c7fa1b..1f9067c79c008b22f79765672be3434d59fcda8a 100644 GIT binary patch literal 12135 zcmb_iXJ8x0m6p3Lxm)f<v>lkVEfS=<<qCn-W-~#VtI)K(1XjRW3oK@KK~YwaIK}C` z_uhN&J=gD2u9ws+>B(JkmvWb@?|ZYeyMqNq=aN6by!U3_y!YnKo0+%op_9sG-}9Vu z==zOdW5qdSx4f|8mcxx=LwUL7dZ7zEBTjf&oH!>=>a)(?uwg@?+4S79jd4>|DNb&S zQ~Iovi7@PWfjE_$i#<I{;xubBVej;pXPP|8tRI90o===^5oLoo!#bD#X1!L`Z45ih zt?Hz+;&@`CbpoLW#U^Vb{g+nCQ+BiIHmc%GYltX|J-s6<;jkUrM9Pn>I1LT-_H6Cx z9d<OBrzR=r%cw7t$K4?GtJ1Dxa10ndmVN(lv9Ypu@2n#O?gk9{62MI6d_M$i^wLP( ziG&0L>gF`cN5O|>HE~*G6B|ozqD=)%TB3`I@1>PE%Q}w?nXClKGJmw`h_kJ;I`QHh zUbWaTDQ4naUfb!J=@D_Bbs~)%^TqkKP1YuAjx<(W={M@M7~%r%cdVzUEjC-Hg18FH zi3_b?spXsZeGm4C{#mU;tK!m90i86NGUWt;U3EZ7noOB!l-&x=2vVxev`23JSXZ!# zfwV_V&$pT$3lO(>j=4sqKISwqE@?8QSR-TjrO;;C42bC^Qq>u=LuQ%=vQ+KF+$&3F zf#uOPs71d)W~Hr~(2JfO1QWv$I%zWBLRcH7{XXg26-O;Z2ZDPQN%G-Vy~zxcHq#6j z%Nr2<@FL|6E8&#ADlTRh>K_u9Sf`PXP*|C^>yEgzTadYoJ!)jt4aMc;aPX;lzgh6A z;tFdE0TdEQ_>v=9wACD$Ct%8^eJ2TpiLYcwpJ|1qP&#&<o&PH9d`uhGoQ6%5rY4Fl z))_>IJBywqq+M-YL?l{PikubR%~O5@Zj0!2jdcnUM{O@~#I@F$+|h5&G)iu@VSD0H zDRPeYjG9%&yz4mTZ5O>fIkTSh{if(kNf~1icdutVB_^J=!<x9Eb_Q!oYePX-hs_%k z1-4q}kX*CUZ#pt`onV$E4@G}Uv;pRuY&5o2o+ELB6oWjC+Sf%gY3KxED8*%4hjh$k zJIlfGV+S*wbHbKv6#a@LcG9vU+LIgHgP`d*#4b_>(qb320`w}@obq9@J2lT9HkXos zlomHx3p9e<p=*fgaA&xQ;qb@z?<KKU`)`R(shdeWmKcEx(*@#|lw`NE>>SF-Psu~V zT0IcArFz_MT}-l0kpH;0=RU|MD%M<Sc}J>ef#Wx?74ZtRpNoB|K1H=}yedpx@LW5f zB^hRmb0i+&T{hQh*vp<HMtS|n*yKtYH>Pk<r{u^Lw@eJiQ!`9h7m&OukCRSxoZlI( z6u=eog(xP8yHcYkTf8O6<fH-xXHr5;wZ(K_vQt(ZDJh<d8J2opwj43bQcpScWpWB} zw^hRGX7>6%hb|D<>U8|m1lm3v2MV4?6RtrVX;eU25_8t+#F;`Z$4ODLE+dfJI!GH~ zSj_Y4PCHJ;smwWn-;%J_ehz7iOX41NCa#9ko@h{H3B-aXSv(UAfFnR0(CWv>fp|2d zXm80VE(KyykG_{(PALet5le}!?rZU8P!^^x;$U0c-)Aajucz3umZv$Rm!q6aQOW4# zXvq#`rLJmPt*f<MO@6>M$zd%*ViM1AgSsBr;NUn>ZIC5L>Bj2FSvuRCitrPWn<>AG zJVA)IkR65z)-z0K3aPlJJw&V+LLRYpcJ)=9$ZL3G<fltwHDl(ZTIC0`W<I8AkLhaW zwkAJT+cjC*$0c@psKt|#_vqau9^V#E=*x)mM9uF>U8j3klb@WG^eLM5RMVJG(~>1C z{&drCpRwNZJkv1#v#fD#e7YBoy3&zk+&pWh5OiP@1_47~9O+Ojqf-YwMA6~doxAQi ziQS&tQl~&zi&j=VuPvUhqMEUXU!awLq1HB8hZiOMUYs%bOZ32(b~X6RH2LMGQD32_ zNsRhR!$_~v17B_0`Zep>`n7SOQSno}t}R~QXYhW5HQH?fsQ<5N{%vIbH=6RjX+8Pg zY#QP%Swp<Fb3xyhEWq2lTKOH?Snp(R#>&1+)83s~yZ30)d*d(^UrfdO+T#7D**;+1 zt<9!ld~}&5zf?zNw-XLG)$V8CoWlp-lK7x$!4Iux!4GE?`G{8Jqg~DOF-`t>r)58p zSoV|Vx_m0TE}zaC_cNOFXJfBZ3X9LR#pk=+9=?!F_&bJA{;uZqd!{vhe?4pbfhqSN zX662)jJ^I?PxdEW?e#@X{!&)sFKgOYVvW^8ia%|OKkGQR{(L>*|H2ghFSEk`RaXiB zT1)Xah7tc(qyJ7bN}||T6U%=sW00@wf#1k#{7p^!RuoL*T!8rdw)h9uAW8}Z;vcPE zwMV=vMcmL?4I@&Xc8Q6h*zr#R-<>m&UwpeQzSGxL^Y3bDzGs^5`p#Fe+#Mj0j zuD2LJ;@yGsh;G=pzWq3LL;mNC&HhD8@{_F1eyVBz%C|m!Y6aro_#v>^%PRAek<9S3 z7GLg-M1=TxTl|8pGw!Z93pF=%_W8D~;2rf#HDM~ZCjLEO;gg(!_>Z>u70X<loERS7 zM>jCK1OKOW1usw8b1MUtWdy7-o7VH7Ml6Z{3Rpy(mq~6y{C8XYkGgGWT_DK+@&qZ2 z+(0=bl{b|B>QOqiSLn@vbcH-&P0EQxQTLlv_ClUS*tR?wqmY46@AN>P0t6Cci$g<O zdv<T_*|D`}&yqZq&;jF(r+_?-xtvbFeci=61N=DA*(vZwP>?-K>$j;J@=QXu*jqb} zP<a+n+VX7r&E7fWIpBp%-Qtow7j3+!J6<jFyi}+2(M~^w<ORSS|1~5xqYq~RlNXP? zFva#Fw2@WOiU#sxppYb4>?M^VKb4mNi~02fNnWb^rSIDEGGOugPWF<#9Jn|IBd;K^ z#ZOjdo=RlGSFR*#TV91B5S$XZ`pql102vvrhuQ%zUT0!ZUd<e?q2E59l^=TY+SK4j zp$$ixXw=+gH$;lY31lwS<vMDsn?X8{CwmFqmVNY_*%9)34DWQB8-VQUV>hlz*-Dfa z57Mg=U4e&WKatvUfPTA%NSO!I$V7u^V<FRbB8f!3?y(K+PWRZJ>ac^_T_xEjcM_>B zchPSb_uif2u?OwWNp4DY*o$^I|Gzoa=@x3MP?_X8;4ZfkzAbN~UnR!uf%);7=|XXS zVrE+2PH3G0!O0b;bR2mHky1Wc00>*nIZa=N`x`BKt;&67ry@XX7CzU=?VEDg>@flm zpIqh-%#O%W4I#58#{gjpCE{#ht}s=S<Afy<foHCivj}Y&$_eyN_RO6C@vR{0<m%*< zBkwYMP6C8)bI(ziGMw&%j+`=kO#{S7qcP84w!LBXl_`)jz(avW`cNci0r97vk-}VY ze6}z@F7F0zGr8En-aNiWRq|s~bNQXScMojOQ?fD4FB58Y&#r^JcJ!C&6M!G=?yr{1 zd;0xmn13Mt=9C?*n9;W_Bysa&h5f@5`EA<<1_y?A(bJEy1xjc>GTvTgdn8?lWVnY& z-$RCx(#u7^UiTaM;*@<Dc?u`Ux5%*bqz2{QNW@Myri_ZmZ%;^*`)_Cgb7>x-E)*#o zNgfmYKb4Ym@D4tv_D{`@PE3x-5@E=};Zy8C^XP$m<-kCmTmm0C;T8kb4&;6iW9N+n z|2;q_n_&SUB1$SxFOjCN^|H4{+Y{U9fI0Hf1ge{Ck}{Wzglx-u>9>z}H@RBKxqrDt zI7)v*AkVK>or?NO5y<<9z$zW1Z)x%%AjAc?amb%^>uxCT2kIn3?HnAGHUKaw`>h5A zAsg9PM=k@MXjKLXt!(dzeKb&fDug5na0?0?8hVHlYUmel(L;c+MJYw=OEstpoSwV} z0O93`EgO_vQC-}0mj?hKxX_NE9CWGGY)U6Us$U)ki31uXeWeEoky?pZ^gUl9{V(gf z8;6YsAWRv3yjD~Cz-p<Q01$sz?1Yg39^OG;3Xb67%b9=aROn-olzLDFpQMvP0r0U! zLO@v`Y5|>Cdj%k5#6tLiqhve+td?<AcQFF<QIpSu052pyloT#IltfXBTT+Q<c?{%O zw8sF7KTVW4(6>!~kJVjRM<vzcfYVYv1OVUJMtxbgL-}~X`1qCU8O;stS;&=gyBBhE zx%r;l;6iRnJ^^%GK%(_e%=Sc3U;?uBQOEQABQWxlfQ5|YZwtz0<io(lT09w$c?>=U zsKmHW1&AfUhDauSn!)DjfDkHZq7gW+e1<`PCLp-TAu1^F5-!gI9$yGa>}9WIc*wIs zgM;#trH=dOfRG6IT!2tAbn8xJ$maov!id~~{#?C3SLw-(@6Ao^&6T$14$0?(+Wi22 zfyw)Y03*G)c0#@gnAm(T1_bj3HU9|t0ENAmm>gaTFj|6plzYmT89ZJND4Jsw=8>;3 z=&uBXIp`Y0mJ8&ofJ!XzYJi<F^fiQ}7|OyqVS(e2d@Xv$(!UN+yu0G-#p{7ixW54) zoG#j3$?Cn);Pxg!(3IC$dHb7z)876T0#vdk{=hHaO1QRs8~vv5_ix9r=;r$lw6RCj z0U_U+qP+`kC}7_G-<|669%^SlBgpp>x-H*FziYfF-wz&L@A@AA1=iLVdR$#U*bVt1 zLblYam%oSy^23B_%a72nk&=`j#qdbskD<-SZuFr{ejJ!}UWcDRpKcfLPo`LZ3T;FQ z;}!AgRFBV~4du9p`m82Do9gg6v>{#mcKkdrU~0S_zd+blYv7^ZZUt1TCgD`;N}4nK znKI7&QbOi5c7J3t+5S`!rEE+!QSh3Wz#q;xriuWRuSKIaapX!a8Ql9!cJ&1LYnK0D zpOD|^;(>FmKC%}*($^@tI)23!QR9a*G0m3Opu_R&t*D2ttXi|&iu#az<`chbwH0-w z>`g~UozF4R$Xvy;o1{by6Hn`U9xorMnySAzU$5;2x_$ulFPj-l^)DAHtg4Z^$od|e zyR&|QgyF*`Qz1o!WU12yQbb6Ff%vl)i3ZIcvAJRsthIb`#LUMnOpp{rrE8;zVB{e4 z2840xt(s2*8KPb`?v$aX^C=mknR)~{No%I7qKH7RFQY~zTQq{vNgY%^)dpiDkI+#P zwM0cw*zFY2$hx|Y=91)uqiQG|iCkHEnf9W~dDAC+dDCCP9l5sV$__eL23@5pF1M^* zli5?-vSxwD)kMSNK$nVK!(yA|BiC|7i))mq-YKcCim|9%%IRHzDw^wvGj2n%o27OX z6+=OLR!Zf;RPa+3Q`h4uwqd)tfhE)BV>hz$1f^?Kw{k=zBwcg3w5XqE<@;Ml!OB4G zQpV%HlrA~S6P{1p&QjGu7GjWUpKzN=>X5cYl`7q~@o(Z#OJcjy1$ib_bhLwHi*HK$ zElc%ON)rwm^kGC7AnhVNAEK#x&E4!-$J%1gaVwH;qM^}YnpCyzCFF5x;%<(_=&U%q zh446NQWapgMy9-t@4wk%r`u@=*B_fDPIqYG3!N`+v9B$PS-%;M{APp&pjSb3_obSs z=m;LucV50%i*b#gNI#Ipof>_YW)!_+#H6N7X-53;5Yrkzqw##HrXr_k;=9c|F;yi+ zgi_aAE>$5#^!;oZ^Sw$%ND*~`{lj=92}=_XFze1&8x<j8c^37HZHY>dvhQedFArXf z-p~~7@PuBXqNMDDO5DdgYf(L>;;si7+wssB_iO3w?g<02%#ndh#L8>Gi$z8Aak?aR w#i6#SvZQ8qQq=S)H{iXJis<5jwm7Wr&0N(P2#<|xd@2(40N2YUv0>o<07Cl@?EnA( literal 7201 zcmbVRXJ8ap4mQ0*fB=C&aFR>xB!<P5Ku9%f8%%J)_Q52MLuPj$>p8|Vt0{|}+}v>` z*L&~1_uhN&z4v~(-g}Fr8SU)z4Cl-JvFAy8?@8a&lk~J_=9SB?ZL4x%xsJcIqE4Ej z9aOAxuoPO#rO>hii|9<4b0^FlhI#GA@|KpCu3)0euJ+V}5d|<mf(7lyG9>p*1)kaG z)WX1rg~nW@jE%!0p24iaFks$d;Vm&%q0oR*6;&Blz8iXF<-<~8FEbX?s<=(ydJ2~F zO8kA$4Ae-y3@ccoTO|@JjZHYAS)zbEG|=_pB~}@WP@rE;mXzniImQT%#@f&vG$d3` zS$PE<98guuK}uUkYlhcl+i3b(m_1H~IODKdRILrxmFHO%1#67?xY?)|Dp+eQB{g}= zz%p$(H|4DhjU~v85k?VMAHjw!yypo<8?*3k65jc_@NO3N79HLTL}yP4yjyj6TW5p! zLJi)FWTT6XHE2>_)xlHjMXyrckm>uX0{2SozC?CU5xX?ywuQ`QR1*B5J%Y=!z+5hy zUXcZ+LwMVAf!QwXf)30MQ7r|gQwL_}Y{2Z&fZ1*AK|Hd4S9D|l$#pySxpCMd%A`15 znc}oJ<crwk!>})ctFkcd7hA8+!gP)BuFZw%I$>Y0!*qjamcrDf!*pOan2H)q-Nqq- zsn03*TAuRo>J|8Q#stf$B89Fgj`5N?!I0;cNodBn6Ypft%v;x+;&w1(CgPTy0UU~; zFALjYvHiv@Y)6FGp9|Z7um^S6hO)37)nOZ+4Ym;two%#W-m-G)D#ucjk2eBM9JRoR z;HIp_H_K{cS&MHG-gvIXw+j1&Zt-oRSL!IHZgFWgi_4nD6{9!LQP8e?=q5YSP1H;` zIhkTsZG@qI)5kDI@p&QwD+}9w#P(BJ*lgiV=ECL(+tp#KWnlvyHg7iAd=0k1I4ZEk zxhP40cz@#5o|peHhof*FXILd6D!xnclAPY^DT1dPUKcL}QxQyO;k#WhxFZYSeT5h0 z!goJm-(QFCOcuTe=<q#oHuxT-!S`U<=uTNVy=M<eEq-Xj;us)!SOgExTKouE?U7lF zA0@m;=UV(2VLw*4_;I3Fde0uOTl|FCEPkS9@snhuC(FvI#ZO5sergg-!-_?P7nW&H zi{R<Jb5~6B;Tc9-?0a?<BW|Fkf`nB-@6#!GC!gsXt5G}?`Qcd+JUff!b41VQX0d#p z@SdNG<qL%ULLJK&iNz_FFV?Yq$!u7@lnXmaOg_BKSjiBuRXue~UTEpdIr>np8&MvW zhOaOdpj5AE`wCte8Y^&6obX)79SO{UuzghouV!=(S#@=M!V1&@*YqmHdQEITE!}Mf zCXrt2^9Ds53$VU!qP#AG*K^TOJkr<QeE{n-EWzJkY-ZicwpH0)DbaO5XyVzO5W+aT z(P#ZBUt08lhzsmDMeyc!;~bofnRsd%|I{%rvlF}}pZr$dTwo!M-j<=fJuYjCSU+}$ zlQj~0M+EO==Nz%B4x$6^Vr<4bJ3CtUcC_y9Xx%ps@AjFfzX9G8!F$i5;`{Pde1Arv z4`e7G4B4M%<Q(`=1Ru^i=tsoMKALsVj|uPNxeodXVSiG0&`)I@^wYY7er7fY{p<_} z{Twej)`m8TdwzbVdw!wGJ--+lYw_S&b_m~B7N$t2JWZ$dr3k*vkQJReI(FTncivaT zl&|`X`yrg*Ry}i4ob_uFe7&7du+N#WN>(sr1`{~(8#3{mygR=*;afudcATVnHE%k0 z%kM<+-Lste_wvvD`<WB|L5A|fkmri;CbefL{3wDSXAk`+qTo-nhklpvewKUaKNt2d za(CPbzl`8l*&Tl^(|(iP@wdYJUG9#*7xo|G^ffRV)@*)q|1p9;<sHhOWyW8c4&|>x z{F|{5T_bJ)z~6=XkNBwgjO5Mv&j|i?mZSQ2{!#sB=D~O^b6Q$5#5qU|<B$<}%AEAQ zxk!n;dH6Sjoj0GBh+7!m0{W)DM{^g$Ti7JAh`w`r8Q$V1p(XU)+|lrs5``9SM!;Jp za?;oEmJ{W_w>G>LB-7O0@KzEbv0xQ`hvD`!|5wL{(o|QiW?N;G0)2ngOL{(Zq@!*P zGd8w+w%{Q9q;1s6nA;X{e4)CJ@rR~15T&&SV|2Qvun9yx1ALGv$Bf-3nYE15PQUVf zvq}!h(#tt6r9^BDQNeK7Ee+PVyCs4vIh<&8SjCf3qTj65@JWe%p?1Uz17BV8W`ToR z5|=0&;?X3dMu(}1+lXYiXrVD^7AU#yDU5~t_fw!`DWZ@l4rqg6*9~Z>2?;TgLH+bN z8>^|)5^Z&2Lus8%vJG{0R%(V$$8%lHn4(UIwLrK=uJ~HM_^4^WIfZ>L^2cqRur8)f zaRsy9xQpQ)bzPgFNdA*DNl{4D^phCrQ5VurVn{HiDNWzR`k&!yKtPK$22ID;h=zs6 z7i}=?R3;B9hi0Xp#Lz0Xf;J*{^X)G*4>C-xlF4vc)g<L*n0lc`?6e3hq@TpVTi1<E z-y^OWmu}P()d)O0EyfB>g&DE5>s8Q3=q?-BT`-g)PDKpF0cP~`n#zcc{F3Olv8LN3 zUUWWR`gA3}^qX05U~r%Zw#?vDp#T>c=xi;p)i_rR1w*bMbaBrcS|_%0$&xNS<f(*r zA@V4k4u_6evK3s!YGWM4_$RcBIihiFIO4iB>}RGyt3joBd5PSD5oN=rxH75K@T{gA z1#PKOaZ-wd-w{>EnU@)OQCfDv<*XU%GGI<BxPpzJ5urOcs3GwfRbs9K+i+LPP-I>m zK~J0owohziI=v@Czvxy}aYB_(K>_Jp$J-%x!@E@}tj0?0U?p}yCmSE1ARZ;`OuFfL z*La5i+#`n?hh4EP^me4heb|k<QOe+$(5NT(B$hB0lalLM!NjBwS0bH%o^a|GzMLlU zIRtyzv+jsspRoZK>T~c7W7^j3oZ;v!V-T*wsY!mW4Lb2t1NI|vJx)Tz@Yj>LHtu(E z1>6v`$JL1%SPs^d7g)+4LV5t#Af5XD!zu_phk%A_6DY6aY{g=zw=dloxE`l)_O+|z z@m;oM`gmJz5aqk#mv$Nf;Xnk%tlxAeeiOGqeHEZnlw5pK_R0l2$b|`V_@LpC(EHfa zklyE<bm6d&Z)8i5eBAULGP<exNfi!qdOXkdU`E#y>Am<8wP8qBI?7&z^e+3fIqk!+ zFh<z>@YfSkwCLKd$B;F3Hwl>v`DMyICbN&Te^{t=$~1&|6EA%_Rz2n4%tnp1O)J}W zPh+GSWAO3!8`@hGxP>Q=wVkG?Hbpy6RZw=EWlxfEsqC$Mv&Py=cGx6(f~h9ko66oM z+L`POSoUDl83}7O4@(`oz@@aqQa0A1?f7F`Sz(LQq#Lb9l3&j%vX06=nomYh<pY&R S^8~}BKbkF{3dM0~*?u=$y25V& diff --git a/Control/AthenaCommon/share/bootstrap_threaded.pkl b/Control/AthenaCommon/share/bootstrap_threaded.pkl index 0a97d6d7b29e0ca07ce3e49a6b7a526e6efa920c..3de8cc67c8703e88e3f3356f672f32686471e2af 100644 GIT binary patch literal 13693 zcmb_jXJFhmvUaKyr#f+Zv68!ul*H0n?oq0&?z2j?vQ0<P`KVo5yD_y~fLvL!!z5R7 zz4zX8z4wyqz4zXGd+%QF^_u}f5=+YRySyJ>12co+U@#aA2BZ5<DwjRib;?1_tNUvz z&Oy8B29;VlSR+=IXPY%Qs1ck2C)_VioD?T@Sm&%-wW`;hn{<4yDa+1;=egqKP@K|X zodL{vGiWq}-OhsJic_r<0NE^7Tc_gxDX)QH;xy}Abf(*TgX*a52aYT`qJ2i3-n7mJ zytmPCYh{}R8l973O(@RjuucY|-*tU)CO4<s+GfOA);d6Ud9&jUmVUzXgI=D9INJhd zl{kk#G~qVqYW03+wmGMSI+umoDArnQKvh~OkJ^n!tv)Btv$`SfbX)ttLeOsqHc-WZ z1*fh%?QI*{+WQ^dEusm{c`~A9^l;4&yg6yl)8M#cP|SMXp}zV;PtSxSeI_Fa(W1jl zCOt2pzCopdng~J?1CTlO@)Gf3SxuN0*@VWDn_zPSCN7za32(<roX;x}Pc}s$*716c zjgJk83#=2N?jcWHSY6A8GEiTrNv}Q+1&fQA?r2+EC@yAO8CWE3h)b*oF$zmE1tX(5 zM*p*@z0FDu>L+m0WX!1J`}Uken54;=k$SmS!50aYYBTQmH5$*A*u<UmDvwPy8!ihF zxA+^A^~(H^Q>SrBlQDf&D8nlSHp^!87+=Cvogq75rs+-=s|}N>vS=1qE-i!Y^XgD5 zwqJtpb8X)r=_jF+CiBG}?uT>O?b#LVW8hl>Ow|X;`<wF(W{|X%WJ5hY!?gtmo1M^^ z{np}WiY<L5#e(hH^>WoI;a{ccMxx|FwbV}Crmynnc6(j}pC{RKz&v8AHt)E#I_o~w zW?bTeXaYu$cE_d4o)>~qdr@4*o1n8>TyCw#Zh*5Jv*#UgMV{-slJ~^GVl5Esv1L*o zw9Q(N!Ppg$7|yc^2jH;yi9f}Mud>bp72I(tkd8e+wbXFL)z*3RS)QnJ)CwscW}TiU z77tGxZNa(_C>SOViV7=i)T`6RBcFMVbqbJ!w(G-*TW2z%*BGytYIAkl6&)$`wVC7L zy6S3cEru96V>z#9*$ueZz)DJB6LwG)oz-)g6spHLpgnn4B7KpMs|o2f92wLce*$6$ zVq;3KZswc#2^L@z4;!gtP=XPg`CH02^+BnD<BKgRR$E&{WLDc)81{kN`N)}cf~KtZ zc@;<Oz{1ig1Vh+M&fKeu8!#g}VaXFTeWL2CI^{#6C-t2hd9{=Tn7O#g+J_O#xygsN zM`y&%+JZ|s(r<xyEHOD>^2WZnH6__?Dmow}b}DQnsLuPMmsKz&n~vDYE6%F`0$-c2 z=u0u_=gl$MtlP7$BL-OM&=B^hh7DR5VZtLY!<y~Zj&Qg@+gPb;D8*}-RTb}ZF~ZiI zztzPqwGZ7nTDV@fX8Ty+N3igGHtklT(CkW%T&R_S9!-60%sL-prA$;hQAjc#ttxdF zU^kHu789w_w>NnMK{jXxhY@rmCPPu`NcPo&BPGr+F_kEE4=ZcbnV*FLiM>{dEFt3= zb~*@xz_1-53_hUM&R(O}b@9PvkOTD!VP?cW>ojo2(Zc6~u&hhb<+eVQjAKXaXG<7! zoQhM?p`tJDU<WuoBc@gK#omh+QQVnKX-35di-EL9>If!%@kl-F082s2q2o|IN~<P5 z8imau>``ee59f<nJ-XavYfu`-v_vHoPL6sHCbG<#)2^;G?OI0myY$x&WhHYpZa!CA zb&dASX*aUd7KRx}bwae4hFF2>d@dS2EUC|@!N^=4svJbD@5l)p^iD+t$^4rsqm0Z% zEQI24hw;5dYiq9AEpJy8W+=m2GBtc;B@G`nb#ZrA7oi3<#`T7|Cz;W`nH9QEtNGE{ z6?%-uJvMiR9;eawH<>L=OK&yt_)t7S-IiK+!4vhUCuL-LvPL~6E6Y<g?rEk9p04Mc z?1E>QN`2-^N`02GoX@s~^>QLe9;``6VkL__GX=oe4+wb^9Yy1aEfY~ozZ-V;oYuYm z++;PL*Hp(zP>n1?JU<jKP<ztY#4ps7e^Ks2yjY`OV$9^F8vHV?qr@g&o=EYE%sRYM z4}6uW>sM<&iLPH`>iV@S>H2}#3n}L+UKfhjoBQbv)?nTOfd2oe{!LK-8_gNKDLaEV zXQuxaJ^i;bwXqU!)3~>r6Mx4_6Mtu`9lR@9fp_Pw>U;F3-W$82IK~z43&s0QwSB<4 zU8@bgC5ek+m+CytJN_s_&OaC@9X=Ij#0N9_`H&Xu!>x0AFqzXwOvQgRtN4%Q&idn; z`6o;Te{v-Se=56JpVquS6I-2{u=s2!K9_U$eLj)@3&vLZqUQ7^Q>rhoB-K|;HGDOz zhOcGx`*r=XZ)B(RO^y3juJ*pI(cg(@tQJyyHx%FNFopmAO2YrZ6#j=<;eV7X#gDZV zKQWZ}Qw{!^W|a7&pC_9CMMfdN)B}H&RmiV3?l+M$jT0l{x1snQ&mhW>_~Q50F11J8 zIe6T_Sqvf+U9C+B?UvF|pEo~`XkPI|3}N))UjE=)7l31L-gR62F%*Bw<^}%>7e7k& zO;vG;s!#&4R6F8`zvj$bxA-&P5jd9bcN$I|37aymZsKne1^q2Y;*@bwu?=Jwf5$K* z$Ps_fxv5gsJ500&w|_{5-v7vJNMxh|>A8chcUb&WisGM}EL7$Q6#o*6f9>F~QlEUj z_&1*2bURb?-2;01_w2&`hhDh<%(bEa(&+y-jrM<5Fj~0^c}&A@<p~6duIKT|B~K(M z-R9_s$BhPYxIBqq@ugm#OkK+B@)4lIad`>>DV;YxBTq%U$(lEER&q7qp*)Q!>5fm? zmVMP);Oz8lS;3`Mo=zwdi4_zj&*U0FeU>RnHOVuW*O@ecMCsc-(%-)m5v$|Nvj})O ziPBznYn86bELrW44Rbx90W<P!=1L|<QAU#9lIJkzbMdRJRIeckxRzMc_tL=g2uKNR z#5;>i_*uYxj8a$f{ADrgfKlOLDibCz05p^r(kRLWsf>v)FCqYCZl=4tH?(cv(6(hm z+m0D|F~Ghu`Y7$pHz0WlbGa119r<EiM*MOGzML?v^SdGscqM>MHqn*{M6L%Wlx_I! zXf>p(h*M%nS5udgOj?`1d>Dbq0;b!+H`*ui;RH?JHD!Sy$G&dLYc#KPs3O}58X0N_ zwOcLu+7!Wc)TY!+OSmqtPZ4dPHc6-Npt6%7nXT0YsESz(^DY7$%8mH#;H=76$@KzX z(!)db&&-833NJ0$)F!~Qyf*{d<WvLmP9@xF%obonxs^upW~ndeT!q|5z(^h2(e~Le zS`*lE2XnXqzbb#nyI%IB2H!|+GSZQHwKiJ|C>Mv#cvFhxX0(+8()nh23&5eg6~EaH zcN-0FHOO89=GyPhWifrgG<lFVw&-@!E&G8A<p6$juV!+Pm_{lZqBeV|R5n2lrzl3K z-D*?2QUs4cJ6DoTayL++9K~<;wj;+<JjSWr`jLqg!R^$}Gu+7(Q3-A3r<42?nadR5 zq1=OCCC0@5sp0Xl-oB}k@iDm<V4b<503gn|IdUIRsqIZiH|uKBX?QZ&Q*R=XAorU@ zcTksn07nzB@`ju?Dej~$J@-xRpBRucx<}bl`AF)~awriedMA5FOY#7q5Ru@_6}hIs zmVtZ}Q77)lrY;>s5m8O&4jnmbQkJPpw#}4-HRQ1ooXCnv<xrOnlp)ufwcUR8bn454 z1g8m1<B?L%QI8JT(m?NI-|$55)Ud1)Y#mIjtEWg$td-)>=wxy0_U&Dpi%2L3#aVzB zcWgVbZA)hvPgS13y>qTy-qGnbg5q8AduMjAVulA>O4S#KdiV5?6gO?^+St{-4YzWJ z_9EUoKHhF+b0l4hWKn<=y_Qfg=+%pTqxK<6Avu1r3B^uf8c5Yb#8x(@jL4SY#pVA` zNR#_R)PT7($2k|AK8}RN_<!M~WR0wYPrp5*6N4kW2jpFVz`$dRjJ^3GB26sZr7pP% zmG<PvZaGhbSF=H~@zsfllGI&YMc5NP`;$#|q3uhLka2Rq#M`Jru;e2GU3JMwo<*bt zFqA%iRUiygQw0Dr01QtYB)jX)%{dkI+~mt95G>VEy!pxn>XBcl)em~RYq)O6!^z09 z*Q~?y*pxbV<RZ}~0xeOOW^KEN?Im9gKB5LwSmiqydeD<ci7wukcT<mMihQ~!)u2!f zB1dxAmUU#f6#O0qC*J{M#fwC#*=R_-FhhCrUd@&sH{^ZPBS)-+>GNDq(hH7!v?gP( z@EGdRccOv|^_|B83SE&;VX2bQk0W|oG`#Q}rWl&v9i>yj`=Y#`kTj@5B@W4;#}hoB z@Dr$)HK8XGI8o-4s7r!D&$FKID8Zf#C<M!R*r%9-pGsZ22_o}ec95u23s&MH5nn!y z(6KyEr(TPxJ;UVpOijWQQ=&WzFo;5Lp@W{Bw*&cXqN3-}Lfc?r%f@|$Qen%!!eqfI z_=O$Rm})BkIx3$-gcL_ai<@ZbxrCwFLA^_ki<=+m^?3v(31LC|ls(Aj6D*#?3#ezF zW-laAqR$smm$XiHoqX`c2Ah{qk9IshG(hGkUuxiAMm<{KgSf%E373}>oSt(b_N?19 zjN%o9BSYjfEOlzXk`Rf2uc9tZGQb0Oq|sLsjB0BN`#THsorOwUVYsI-+EXZPC>)fp zA#DCR`dX9s1JsS?#pO5hbp(mk_j>A)`g~lw;cVc5-e7WgBXy%C*sCm3zRBS6X6i-X z7$o(`w;1@hQjfpk;60KYgnXMp@ODjraD`Rt%XbhcQPDf8+v--|1t8pNyrJSK;oauo z_fVINF4|DZ>b;jRu`b?6J(?-6v9k5|16EzDa#(Q@iTnVdq5L3z)3N!7XnYj4ewf;{ zL)1ASA57ssLT!@TjN3n&BKa8FDo!*qDe~ihhw>BnRVlRi{_{y1OxuTVEzx73{1id+ zV$x3&A`<m8)FvfR5=VYEh4~z{`525I9OdT;vce_s3q(Vr7?;2=rucq|+O4tlms12^ zp*Cq~(5|^72gf|V=gY4WI5CQ^p{p)8#-zUva45fl-(@c2-y}A<mzi%7h6K|$7K+Wk zod^65fK8P$;KB}Heix8Xeh<G!I$VCAhDWOY0ksW<{*WLmDD+1}ledaLPO<(8wKH1( zX^P@!)Na-K&r<}ypf*VtTh%WKlCi2^0je@7sVW@#Yd}N!8~m#IPayuMRMu~aN3v+Y zqb@npNvG_|ism4HPjIqAKEwZjUbESC-(OT3N!(GXkgi}<m656Hol~tVK$U%>j~_OW zD_qS^ixTy`#Hg86%P3A~+l&!hV6tYpqMkE&wn?DI)MxT~wpO;B#XjA*88Y?R{5=DX zx=Qj?uuolXbFS3^r6Gy4Ox+|Ba;Oc6GJJ9IVbrH|U7Udc(`-E*5gfZ{5)`^Ta@m?m z&_F&jSCU&Y2|`HQLa1vSOt2xliAttn!m+q29>!Et6-(#o1wLOF+fcdKI)<WL>;eT< zMUfX;55O9xGc}PAoR9lVNhA=75u__3fk?TV_~{m+(aerpT`MkMe0&w-7JVS8fJ_%d z0%2s5i$;&erG0KO-N_*JvN2Hxn@&t+kY=Ko&`Cl%T?PpRuCXgrLDJ}?@UfU`^LLL? z14-=7T5Ecz(FHa1bV3|*A76^OP$ti<bX=|g68yEVr2Uy{6EDLzw3I*2ps<(DQXIz^ zsVn9#PJA*7e97^0ZTF>m3tYx-E8)wI=yE3HDmqmync%q)@Jdzly?*(s@V4suWy`a! z0*-Ery1wjc7Tc^jQzep|aivl-lt@xtq)K75){=^X-o{ijcMZ5xKppRsluJO>Bx!&r zmVGF@)`DY20sVC>9pvG1(d$`3E$7Sz_R0VvQszR!PJETG04*hFUDZn%P9b-?z_187 zhbFBB^BY-+jiQ?mrKIX`Q&el#TANMw_)vDl4C*ZDgkfi<N({F^wm8_<2@tV0nh6tP zSLkv>RdLDXhTB!xkt#Lc!De<e6gM2RhOh^`qwpgsXT1@?V-&;Q6v=~-v5~Gey%}(t zP^$3rmPn_!^0}KWhrA6#IG8YN5qq`pJ6n@5qAwKvSpyn~3}}$;QQh#w(D7WD#W2f^ zOKEiVLg{1_gzVB+F22^GKr({wW-E;{E+~wQz+;+Gbd46{8Z)68@x52vuHlm!&UZRd z((ozsE+_VA#NOOX7HSqF5iC}wnIS=iVuZbeZOgc$qdqZ0-pQ<6lLlgjCpE1T1~Vv8 zr1dg0H{t*fo{q9M*cg<wnL*hi(ehm{z7e8uk#_5}y35C;vkYy?CyBC_uEIu|&LasY zGOdGbTA7rUn5%AIK20O4nsY7Zu|V7vibE{Bne`S)9ix9NuUHR-r{2AyzXfXOuZfm` zS89aMpPQiPY5F@Q<qiUkjqYHnvVXB~jB13#ywLm%JsUkki$!&HN&TIVSmL#1PtSpa pIHFxa{B$mkW*&6K-JuB8y^M?BeQ^(e&UnWa_xg0Vm=UYG{uk@H`6d7W literal 8634 zcmbVScYNH$5;iR%g@kkn2{FakfRl?;NHEoLi}T#@86q$S<h#wCh)%j$Nf$djy~iuO z-h1!xdhfmW-h1!8_c}Aup0p<g|9F4ovYMIQo%wclXLi<io>D5gwk=A&<vQN-vN&P} zwqLeN{&Hw5%>|b2TSRBVNq51?Q*cU`vAV6Tt<SDZ3C|5=Nldz~4X1{1T9>f`ITL|j z5ByQl5H>6^PD09VSZXZ6|EJwLc7xN6Gx1}lv(K-NnVv6XQ9$P`EDMa4NJlCP4K{qF z!txMSM57MQ`_de7aAXfw8Yj~Lvv3CYU{*A%2dflsHLE!;L|K%TrXHNB*lUc_aSWQq zccp-}JQBBuO<xonC0NH210t4KZ*0a6X^8^z5II*yLu@dXqQID_%?atjMx#hNl96ag zAe@qr1^hT5DwabAceiJFeYTCJpMW{&l!-G7o0O{ciH4BUDhoKvI29+GmVtn?jpd{! zPw88x4Vx3*If1bZnGwP$0$W1ZnuYgVh0(SwyzPp2UM{@nEA|CCyca5+rBLv8=<r^& z7`&Ytyj{jNhPOD(J~8T=WyDweLZ~h_)}qu%#la;WLSGhg()2u0hD#DqE>)@}aCRr$ z?J1{>7YBBPP{^XTQ<>hAMQxYj?aoDQk7DoDQM*j3mY}vzM{WONs9mn1)@$r#)LNbL z#9r6$D!02rDU;xIWrEXH0q^~kgTvJ!T$6?AT4ifr7N!G=*Pjd1fMO5oFbyfq5}1Z{ zm<}!m(})JsA>*KeX~ZcFSyD(usK8q{B3MoZDYS?28+V}NPfE8$LM`7t=!N%d-IAjT zZesy65w{p=7!P403)`f!{kkk{Q;Jv2g>71~uh(I_Aq(4K9X4Yz*lyHdyGcznqef0# z<>tiX+2$z}9cge&2)AY}zD<p0W-Xpmyi%^kWyKb{#YdE0iKA3>i>r%SY-twXZVcr) z3fgra-DDTK$<bCfu@lT{&10w;F~JGJ&B9h!wnG*+sd!#4Y`$U#I&6(BY{zui<`;u) zL4)nMah-xK3RH1y#QhV+{k-6a0iNPtPS~6h95ZL(j#dQkpCA}Ey)GIE9uUF<v+&)i zFnCZFz6UGbLvrDJsAAux!}qW(d=J;*d&FY!JyL`3QEH+`tC5p^_L#)t$2KjF0D{Mb z@c697Pf(*hF>CRY6z|Eo7C%L?pQ>B@G^JOv&z`PZ{EWpcex_#ev(!Y-RwE}CKPR#H zx$$8dlr752Fo%0y2+!x4`y!eLFE9>8zGqkP#P!9zAF~SReL97FtvKB8)@oK$sO1~C z?F&6)1CH3&Fm2N*RYej1l>-~ITAcqyA-p((Je?K4q`K5tg?*;0QkZ2*pNrOU0e5q< z+ynO*YmnJr6{VvCqAnZ^FC|NO@Y2N6ml<cE$bjjaQRaiX!^@ebr9kisV?D|htL`z9 z)kb@zaT>CQOxqLiDqda^BLt*t583W9cy&tRH32J?34!q15MGycs@JOpdqdW#-l%wQ z%5|zYEB0G-r+TYe`oyW;raRT!7jvq2aQdqvv<L6xRha2ys|Fhw#c@5~#fJz5{i2YR zK)*W$!+Qb-xxXr1$1VD%PmBEC5Z=e=9JCtZaMkj~0oRmeV!b~ypN6IdAkqgso}k~x zOmt*`C?5>rL!3SJkB$rs9Kb{s7yHA;7F?d0&XR4Fca-PI7l%!B;#(DA7Cz#!{**Xa zbbpJkAs-FlV_kg1!jxow0e>2pps+W7JfHjto?O8~8htWD`BaqO^<yGE5Y*}<^yv^j z!@IO-RUC99_$*^H)6>)4zOTD|Pj~zNS@@h6d8&3(`g{mqIDv{^%vbSC8HK)_p?oD^ ze`*Q7@YN8$mUYmtD=+&-)<M6ic;Cu(&~GdDcXS8+Zq`A+r#tBP7jw`bv^eMwdB~Yg zv`M+=k6PXH$0_&xNt7nAtn#;?hVZj49*5kMeS}u;=UHuk!I$*$qV3`x`<K;w0%IMz zAP+W)S6U0N>P~5aI{zw!Uo-ywP6KyI!z!W2{zl>QTaOp<Aa-yo(yS>>eiy>;yVxB@ zoT@cv`IDw!#g2ba9skIt@P!Wkq=<ixY~s=6LgeFr3E{6NaG<~CJJ8=V?(&Ze<(~of zRU0AB=zHK_A^bb*LH|(-{+E$V7a?RDRy|_2Jc-&=F=;79$dgk-r(ipG_FeK+WQFoH z{LSbfm!yVRN^L5jXqud!l2}IVJWZCTgjQfXN*u<ggSt(X5V;a*p*#bBbCyr8O7&h% zZHg<ri1N%7YYnxj3KT^`xi-aHhwbQO)xwutkMvM(z~8Lx8&mx^Q9EP%St*ILshwy0 z=9JJm)J~U$<QAgP!0dN%=|XN*a;i8a&n3#e*N5ablA*9YWLoyfk#U#LXW35VW+;~D z(I-`ND6q@(=_@LB$qTR@?FCJl3y~bk4*bpE5%MA$gDP&V@j!MGhe~$J<!Q0I@`x8B zF^CR(A9I$PCoe%tC@;m|?9z185V6+VshwGx9Vv+dweyx{XG*At+S=0WB1&dyb}PB& z((ED1B1^NEWKz{Tc^MI63-)0<ihk2pP1u&hdtyIQLwPy=c5xJ*5+zrbm4xi20aQ^= zUO`_p{-i0XC?~HZLbB*r;b#!+xby$2#!@EPSFhVv$)qe`tRmxLY^vnC#Mp{b*=l6- zHi?PPQVu?JJK`nAGHqOCUB+J9WK1vA1uW;v8kQ}DV@4Y~?zMu^7!#gnRtPATUdih_ z;t1&{9IW0_o_olho2Ya7SxK+r`7}DLj;?l%(wJGVWAz0Kx#XxA8XGFJDx||6<xA)S zap-AQYU6L>Hp3H6TWEfy1?F7$C<eIRUW$G!MHCXn4;o_1b$$BOgcLEBLH+dL8L6q$ zVr_L|Q)!*7>8`U9GjuvG?i$7vbwaEaglp9Tuj6wWH61hOVLel~_rQjTI?p-oM&oYu zhMCT3x~w2z@&BYue19Tp(j-Q*)P<x;jMQ<{te4$axSA_Q^EN+H%hwEFg=UN9o^r~y zVc}4(q)7}dr!Qz<#7>{Nh4e>;sl5thxU6cN$7Gm#Do^a>novlZ#K5gLfUh#q^^dV{ zA#m>`T`#0kcb<2+x0ez^JT9nr>)yc&rFt}>`zc+H)8DK?-i^1Adk>Bk#<PN^<he#& zw~lkulSmGkI;gXh)JwIArJW50?F)T<6Z<-*LD;h&qm_?2=2^*Ui%%qUFb~*xW!bE@ zz&U(uB_r{%wS@)8C&mY1YYU%JS2)+eaoS)TU$T?Fldk9Y@rxR?SGREzonlH6^Ugya z#e}KAG3RUn=d;>)k|QjNb^)KsO~BwnV<Yy+#|%2uHZJ1J+eJ7!-Tj+eBXuM|XJS|s zy`v*Mdb7JYezUuTwL^Wz&6<Eq8Gx2J)6J(c5^tdUf$P9_oRva3nb<(!V{eBY)w7vS zSLVR$cgupy8&E(xrzUoQ&td~&E~rFG>|`Z&LJtEFts*Wb?24b&^3I`_4M47?Z4vUE z)Gp9=#4PNNY@s?44er4n)Q!?LKGd4GoV~FnOvPQ{O3Sa-Jh-eG?O`A1RD({#!YV-x zul}%~-RzDKE;lyeh$9Z(*G=0x&H<ZtLWD*yjvZ$-^$91sR>KuYq(w*Q@S!%k2adTo z0?v$a@XA;pOz!F!Ua?LziF6;XLOQ(!P6<Dd4j~R#$CzHjahJu=08f=*;acp%$%I`Y z_wTbU)5ERPr<6YsmDiH99Qs2T$U4wq>_9{8k3+7knLZ5jgI!1aP{*E~hdYWLdk%L@ zb%+kHV?Q;f+dGgt1_xPZPx$Cib1qh<M$`s9#MvKm*h%nBB~DI8*-Mc=;v8{dOp(Xc zK!;7~5Ka?{GpPm|l+u-OouW@E`VbasY$z)FG<zUU&}Sbr7d*ILF>YYb#V1%&wBNN| z$tWLIe1pL(lTRny8x{8^_ALvQPM9-_c{2}vEK)t;&$3Z7oeRRo`W&8gx9}AB2uyP; z1#aceGo8n%5=A~QMHyvpW7#8QTq0}ouAJ$dvxAiA98*oUH<2wV?aJ(=@!txJT38(g z5xdqAb}c;6@jxpE^}577kj{llbstwr@eRKu@NvYX^Fb8(&j&oHs*$bW-p;q%Lpa*S zJ{A8Vfvx)0T2fa>F<dr!l4^PMM-I`(Zh0cn3byiIin&oKiwk^ns=((*cbjy9FWM!1 kW^<kZdG9CLa@u?d(JP56ryXYx(aULfcyvpcg|;341NIM3AOHXW diff --git a/Control/AthenaExamples/AthExStoreGateExample/share/SGTutorial_jobOptions.txt b/Control/AthenaExamples/AthExStoreGateExample/share/SGTutorial_jobOptions.txt index bf13e979386..ec8adccb988 100755 --- a/Control/AthenaExamples/AthExStoreGateExample/share/SGTutorial_jobOptions.txt +++ b/Control/AthenaExamples/AthExStoreGateExample/share/SGTutorial_jobOptions.txt @@ -12,7 +12,7 @@ //-------------------------------------------------------------- //load relevant libraries -ApplicationMgr.DLLs += { "SGTutorial" }; +ApplicationMgr.Dlls += { "SGTutorial" }; //top algorithms to be run ApplicationMgr.TopAlg = { "SGWrite", "SGRead" }; diff --git a/Control/AthenaExamples/AthExStoreGateExample/share/StoreGateExample_Gen_jobOptions.txt b/Control/AthenaExamples/AthExStoreGateExample/share/StoreGateExample_Gen_jobOptions.txt index a1665c2d26c..e9cbfdee6d6 100755 --- a/Control/AthenaExamples/AthExStoreGateExample/share/StoreGateExample_Gen_jobOptions.txt +++ b/Control/AthenaExamples/AthExStoreGateExample/share/StoreGateExample_Gen_jobOptions.txt @@ -12,7 +12,7 @@ //-------------------------------------------------------------- //load relevant libraries -ApplicationMgr.DLLs += { "AthExStoreGateExample" }; +ApplicationMgr.Dlls += { "AthExStoreGateExample" }; //top algorithms to be run ApplicationMgr.TopAlg = { "WriteData", "ReadData" }; diff --git a/Control/AthenaMonitoringKernel/share/GenericMon.txt b/Control/AthenaMonitoringKernel/share/GenericMon.txt index c0d05d2cec8..84e46740614 100644 --- a/Control/AthenaMonitoringKernel/share/GenericMon.txt +++ b/Control/AthenaMonitoringKernel/share/GenericMon.txt @@ -1,7 +1,7 @@ // -*- C -*- // startup script for GenericMonTool tests -ApplicationMgr.DLLs += { "StoreGate", "AthenaMonitoringKernel" }; +ApplicationMgr.Dlls += { "StoreGate", "AthenaMonitoringKernel" }; ApplicationMgr.ExtSvc += { "ClassIDSvc" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/HistoryStore" }; ApplicationMgr.ExtSvc += { "ActiveStoreSvc" }; diff --git a/Control/AthenaMonitoringKernel/share/GenericMonPerf.txt b/Control/AthenaMonitoringKernel/share/GenericMonPerf.txt index 9fe26a0cb39..fbd79653606 100644 --- a/Control/AthenaMonitoringKernel/share/GenericMonPerf.txt +++ b/Control/AthenaMonitoringKernel/share/GenericMonPerf.txt @@ -1,7 +1,7 @@ // -*- C -*- // startup script for GenericMonTool tests -ApplicationMgr.DLLs += { "StoreGate", "AthenaMonitoringKernel" }; +ApplicationMgr.Dlls += { "StoreGate", "AthenaMonitoringKernel" }; ApplicationMgr.ExtSvc += { "ClassIDSvc" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/HistoryStore" }; ApplicationMgr.ExtSvc += { "ActiveStoreSvc" }; diff --git a/Control/AthenaServices/share/AtDSFMT_test.txt b/Control/AthenaServices/share/AtDSFMT_test.txt index 0ae90be8374..f7eba831962 100644 --- a/Control/AthenaServices/share/AtDSFMT_test.txt +++ b/Control/AthenaServices/share/AtDSFMT_test.txt @@ -2,7 +2,7 @@ // $Id: AtDSFMT_test.txt,v 1.2 2007-06-24 05:37:15 calaf Exp $ -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.ExtSvc += { "AtDSFMTGenSvc", "AtDSFMTGenSvc/AtDSFMTGenSvc2", "AtDSFMTGenSvc/AtDSFMTGenSvc3" }; ApplicationMgr.ExtSvcCreates = false; diff --git a/Control/AthenaServices/share/AtRanlux_test.ref b/Control/AthenaServices/share/AtRanlux_test.ref index dff59b8bf39..0352f50b556 100644 --- a/Control/AthenaServices/share/AtRanlux_test.ref +++ b/Control/AthenaServices/share/AtRanlux_test.ref @@ -4,7 +4,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/AtRanlux_test.txt JobOptionsSvc INFO //GP:================================================================================ //GP: include "../share/AtRanlux_test.txt" (0,0) -ApplicationMgr.DLLs += [ "AthenaServices" ] ; //GP: (1,1) +ApplicationMgr.Dlls += [ "AthenaServices" ] ; //GP: (1,1) ApplicationMgr.ExtSvc += [ "AtRanluxGenSvc" , "AtRanluxGenSvc/AtRanluxGenSvc2" , "AtRanluxGenSvc/AtRanluxGenSvc3" ] ;//GP: (1,1) ApplicationMgr.ExtSvcCreates = 0; //GP: (1,1) MessageSvc.OutputLevel = 2; //GP: (1,1) diff --git a/Control/AthenaServices/share/AtRanlux_test.txt b/Control/AthenaServices/share/AtRanlux_test.txt index 1bdb8a414f3..bd3dcb31ba8 100644 --- a/Control/AthenaServices/share/AtRanlux_test.txt +++ b/Control/AthenaServices/share/AtRanlux_test.txt @@ -2,7 +2,7 @@ // $Id: AtRanlux_test.txt,v 1.2 2007-06-24 05:37:15 calaf Exp $ -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.ExtSvc += { "AtRanluxGenSvc", "AtRanluxGenSvc/AtRanluxGenSvc2", "AtRanluxGenSvc/AtRanluxGenSvc3" }; ApplicationMgr.ExtSvcCreates = false; diff --git a/Control/AthenaServices/share/AtRndmGen_test.ref b/Control/AthenaServices/share/AtRndmGen_test.ref index c58c2e863b3..8ed35afecb2 100644 --- a/Control/AthenaServices/share/AtRndmGen_test.ref +++ b/Control/AthenaServices/share/AtRndmGen_test.ref @@ -4,7 +4,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/AtRndmGen_test.txt JobOptionsSvc INFO //GP:================================================================================ //GP: include "../share/AtRndmGen_test.txt" (0,0) -ApplicationMgr.DLLs += [ "AthenaServices" ] ; //GP: (1,1) +ApplicationMgr.Dlls += [ "AthenaServices" ] ; //GP: (1,1) ApplicationMgr.ExtSvc += [ "AtRndmGenSvc" , "AtRndmGenSvc/AtRndmGenSvc2" , "AtRndmGenSvc/AtRndmGenSvc3" ] ;//GP: (1,1) ApplicationMgr.ExtSvcCreates = 0; //GP: (1,1) MessageSvc.OutputLevel = 2; //GP: (1,1) diff --git a/Control/AthenaServices/share/AtRndmGen_test.txt b/Control/AthenaServices/share/AtRndmGen_test.txt index d839d74c1ea..3e81463c51f 100644 --- a/Control/AthenaServices/share/AtRndmGen_test.txt +++ b/Control/AthenaServices/share/AtRndmGen_test.txt @@ -2,7 +2,7 @@ // $Id: AtRndmGen_test.txt,v 1.2 2002-11-27 23:29:41 calaf Exp $ -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.ExtSvc += { "AtRndmGenSvc", "AtRndmGenSvc/AtRndmGenSvc2", "AtRndmGenSvc/AtRndmGenSvc3" }; ApplicationMgr.ExtSvcCreates = false; diff --git a/Control/AthenaServices/share/AthenaEventLoopMgr_test.ref b/Control/AthenaServices/share/AthenaEventLoopMgr_test.ref index fd38e430c3f..c85d4bf1b8d 100644 --- a/Control/AthenaServices/share/AthenaEventLoopMgr_test.ref +++ b/Control/AthenaServices/share/AthenaEventLoopMgr_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/AthenaEventLoopMgr_test.txt JobOptionsSvc INFO # =======> /home/sss/nobackup/atlas/build/../tests/../share/AthenaEventLoopMgr_test.txt -JobOptionsSvc INFO # (5,1): ApplicationMgr.DLLs += ["AthenaServices"] +JobOptionsSvc INFO # (5,1): ApplicationMgr.Dlls += ["AthenaServices"] JobOptionsSvc INFO # (6,1): ApplicationMgr.ExtSvc += ["AthenaEventLoopMgr/AthenaEventLoopMgr1"] JobOptionsSvc INFO # (7,1): ApplicationMgr.ExtSvc += ["AthenaEventLoopMgr/AthenaEventLoopMgr2"] JobOptionsSvc INFO # (8,1): ApplicationMgr.ExtSvc += ["TestEvtSelector"] diff --git a/Control/AthenaServices/share/AthenaEventLoopMgr_test.txt b/Control/AthenaServices/share/AthenaEventLoopMgr_test.txt index 4dc0801890d..544faaaaf3d 100644 --- a/Control/AthenaServices/share/AthenaEventLoopMgr_test.txt +++ b/Control/AthenaServices/share/AthenaEventLoopMgr_test.txt @@ -2,7 +2,7 @@ // $Id$ -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.ExtSvc += { "AthenaEventLoopMgr/AthenaEventLoopMgr1" }; ApplicationMgr.ExtSvc += { "AthenaEventLoopMgr/AthenaEventLoopMgr2" }; ApplicationMgr.ExtSvc += { "TestEvtSelector" }; diff --git a/Control/AthenaServices/share/ConditionsCleanerSvc_test.ref b/Control/AthenaServices/share/ConditionsCleanerSvc_test.ref index 44b11296bdc..59906d837c8 100644 --- a/Control/AthenaServices/share/ConditionsCleanerSvc_test.ref +++ b/Control/AthenaServices/share/ConditionsCleanerSvc_test.ref @@ -3,7 +3,7 @@ ConditionsCleanerSvc_test Initializing Gaudi ApplicationMgr using job opts ../share/ConditionsCleanerSvc_test.txt JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/../tests/../share/ConditionsCleanerSvc_test.txt -JobOptionsSvc INFO # (5,1): ApplicationMgr.DLLs += ["AthenaServices"] +JobOptionsSvc INFO # (5,1): ApplicationMgr.Dlls += ["AthenaServices"] JobOptionsSvc INFO # (6,1): ApplicationMgr.ExtSvc += ["Athena::ConditionsCleanerSvc/ConditionsCleanerSvc1"] JobOptionsSvc INFO # (7,1): ApplicationMgr.ExtSvc += ["Athena::ConditionsCleanerSvc/ConditionsCleanerSvc2"] JobOptionsSvc INFO # (8,1): ConditionsCleanerSvc2.CleanerSvc = "ConditionsCleanerTest" diff --git a/Control/AthenaServices/share/ConditionsCleanerSvc_test.txt b/Control/AthenaServices/share/ConditionsCleanerSvc_test.txt index cd930ce9f69..d6fe14618a0 100644 --- a/Control/AthenaServices/share/ConditionsCleanerSvc_test.txt +++ b/Control/AthenaServices/share/ConditionsCleanerSvc_test.txt @@ -2,7 +2,7 @@ // $Id$ -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.ExtSvc += { "Athena::ConditionsCleanerSvc/ConditionsCleanerSvc1" }; ApplicationMgr.ExtSvc += { "Athena::ConditionsCleanerSvc/ConditionsCleanerSvc2" }; ConditionsCleanerSvc2.CleanerSvc = "ConditionsCleanerTest"; diff --git a/Control/AthenaServices/share/FPEControlSvc_test.ref b/Control/AthenaServices/share/FPEControlSvc_test.ref index 390c5f6f4b6..f7b1bcefc26 100644 --- a/Control/AthenaServices/share/FPEControlSvc_test.ref +++ b/Control/AthenaServices/share/FPEControlSvc_test.ref @@ -3,7 +3,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/FPEControlSvc_test.txt /cvmfs/sft.cern.ch/lcg/contrib/gcc/4.9.3/x86_64-slc6/include/c++/4.9.3/bits/regex.h:1545:11: runtime error: load of value 16, which is not a valid value for type 'bool' JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3e/Control/AthenaServices/share/../share/FPEControlSvc_test.txt -JobOptionsSvc INFO # (5,1): ApplicationMgr.DLLs += ["AthenaServices"] +JobOptionsSvc INFO # (5,1): ApplicationMgr.Dlls += ["AthenaServices"] JobOptionsSvc INFO # (6,1): ApplicationMgr.ExtSvc += ["FPEControlSvc"] JobOptionsSvc INFO Job options successfully read in from ../share/FPEControlSvc_test.txt ApplicationMgr SUCCESS diff --git a/Control/AthenaServices/share/FPEControlSvc_test.txt b/Control/AthenaServices/share/FPEControlSvc_test.txt index 852a3a8c8ad..ea960fbfb18 100644 --- a/Control/AthenaServices/share/FPEControlSvc_test.txt +++ b/Control/AthenaServices/share/FPEControlSvc_test.txt @@ -2,5 +2,5 @@ // $Id: FPEControlSvc_test.txt,v 1.1 2007-11-09 05:05:09 ssnyder Exp $ -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.ExtSvc += { "FPEControlSvc" }; diff --git a/Control/AthenaServices/share/MixingEventSelector_test.txt b/Control/AthenaServices/share/MixingEventSelector_test.txt index 978d15e924c..359e05b43fd 100644 --- a/Control/AthenaServices/share/MixingEventSelector_test.txt +++ b/Control/AthenaServices/share/MixingEventSelector_test.txt @@ -6,13 +6,13 @@ #include "AthenaCommon/Atlas.UnixStandardJob.txt" -ApplicationMgr.DLLs += { "PoolSvc", +ApplicationMgr.Dlls += { "PoolSvc", "AthenaPoolCnvSvc", "EventSelectorAthenaPool" }; EventPersistencySvc.CnvServices += { "AthenaPoolCnvSvc" }; -ApplicationMgr.DLLs += { "McEventSelector" }; +ApplicationMgr.Dlls += { "McEventSelector" }; #include "AthenaSealSvc/AthenaSealSvc_joboptions.txt" @@ -21,7 +21,7 @@ ApplicationMgr.DLLs += { "McEventSelector" }; #include "EventAthenaPool/EventAthenaPool_joboptions.txt" #include "GeneratorObjectsAthenaPool/GeneratorObjectsAthenaPool_joboptions.txt" #include "InDetEventAthenaPool/InDetEventAthenaPool_joboptions.txt" -ApplicationMgr.DLLs += { "AthenaPoolCnvSvcPoolCnv" }; +ApplicationMgr.Dlls += { "AthenaPoolCnvSvcPoolCnv" }; //-------------------------------------------------------------- // Event related parameters //-------------------------------------------------------------- @@ -95,8 +95,8 @@ Stream1.OutputLevel = 2; // // write out a summary of the time spent // -ApplicationMgr.DLLs += { "GaudiAud" }; +ApplicationMgr.Dlls += { "GaudiAud" }; AuditorSvc.Auditors += { "ChronoAuditor"}; -ApplicationMgr.DLLs += { "TruthExamples" }; +ApplicationMgr.Dlls += { "TruthExamples" }; //ApplicationMgr.TopAlg += { "DumpMC" }; diff --git a/Control/AthenaServices/share/SimplePOSIXTimeKeeperOptions.txt b/Control/AthenaServices/share/SimplePOSIXTimeKeeperOptions.txt index ff9f3d21d2e..966e911abfb 100644 --- a/Control/AthenaServices/share/SimplePOSIXTimeKeeperOptions.txt +++ b/Control/AthenaServices/share/SimplePOSIXTimeKeeperOptions.txt @@ -2,5 +2,5 @@ // $Id: SimplePOSIXTimeKeeperOptions.txt,v 1.1 2004-01-08 02:21:03 calaf Exp $ -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.ExtSvc += { "SimplePOSIXTimeKeeperSvc" }; diff --git a/Control/IOVSvc/share/IOVSvcTool_test.ref b/Control/IOVSvc/share/IOVSvcTool_test.ref index 88465c94287..1c035c978af 100644 --- a/Control/IOVSvc/share/IOVSvcTool_test.ref +++ b/Control/IOVSvc/share/IOVSvcTool_test.ref @@ -3,7 +3,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/Control/IOVSvc/share/IOVSvcTool_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/Control/IOVSvc/share/IOVSvcTool_test.txt -JobOptionsSvc INFO # (2,1): ApplicationMgr.DLLs += ["StoreGate", "IOVSvc"] +JobOptionsSvc INFO # (2,1): ApplicationMgr.Dlls += ["StoreGate", "IOVSvc"] JobOptionsSvc INFO # (3,1): ApplicationMgr.CreateSvc += ["StoreGateSvc/DetectorStore"] JobOptionsSvc INFO # (5,1): MessageSvc.OutputLevel = 2 JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/Control/IOVSvc/share/IOVSvcTool_test.txt diff --git a/Control/IOVSvc/share/IOVSvcTool_test.txt b/Control/IOVSvc/share/IOVSvcTool_test.txt index cf43223ddaf..21ed8f26a60 100644 --- a/Control/IOVSvc/share/IOVSvcTool_test.txt +++ b/Control/IOVSvc/share/IOVSvcTool_test.txt @@ -1,5 +1,5 @@ //job opts for IOVSvcTool unit test -ApplicationMgr.DLLs += { "StoreGate", "IOVSvc" }; +ApplicationMgr.Dlls += { "StoreGate", "IOVSvc" }; ApplicationMgr.CreateSvc += { "StoreGateSvc/DetectorStore" }; MessageSvc.OutputLevel = 2; diff --git a/Control/Navigation/share/NavigableIterator_test.ref b/Control/Navigation/share/NavigableIterator_test.ref index 4f9997010e1..32c0ec270d8 100644 --- a/Control/Navigation/share/NavigableIterator_test.ref +++ b/Control/Navigation/share/NavigableIterator_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/NavigableIterator_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/Control/Navigation/run/../share/NavigableIterator_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/NavigableIterator_test.txt ApplicationMgr SUCCESS diff --git a/Control/Navigation/share/NavigableIterator_test.txt b/Control/Navigation/share/NavigableIterator_test.txt index dae64b09f4f..7a62d9fe77d 100644 --- a/Control/Navigation/share/NavigableIterator_test.txt +++ b/Control/Navigation/share/NavigableIterator_test.txt @@ -1,2 +1,2 @@ -ApplicationMgr.DLLs += { "StoreGate", "CLIDComps" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDComps" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore" }; diff --git a/Control/RngComps/share/AtDSFMT_test.txt b/Control/RngComps/share/AtDSFMT_test.txt index 0ae90be8374..f7eba831962 100644 --- a/Control/RngComps/share/AtDSFMT_test.txt +++ b/Control/RngComps/share/AtDSFMT_test.txt @@ -2,7 +2,7 @@ // $Id: AtDSFMT_test.txt,v 1.2 2007-06-24 05:37:15 calaf Exp $ -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.ExtSvc += { "AtDSFMTGenSvc", "AtDSFMTGenSvc/AtDSFMTGenSvc2", "AtDSFMTGenSvc/AtDSFMTGenSvc3" }; ApplicationMgr.ExtSvcCreates = false; diff --git a/Control/RngComps/share/AtRanlux_test.ref b/Control/RngComps/share/AtRanlux_test.ref index 5a9ba67517b..dca3dda7446 100644 --- a/Control/RngComps/share/AtRanlux_test.ref +++ b/Control/RngComps/share/AtRanlux_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/AtRanlux_test.txt JobOptionsSvc INFO # =======> /home/leggett/work/v30r1.002/src/Control/RngComps/share/../share/AtRanlux_test.txt -JobOptionsSvc INFO # (5,1): ApplicationMgr.DLLs += ["AthenaServices"] +JobOptionsSvc INFO # (5,1): ApplicationMgr.Dlls += ["AthenaServices"] JobOptionsSvc INFO # (6,1): ApplicationMgr.ExtSvc += ["AtRanluxGenSvc", "AtRanluxGenSvc/AtRanluxGenSvc2", "AtRanluxGenSvc/AtRanluxGenSvc3"] JobOptionsSvc INFO # (7,1): ApplicationMgr.ExtSvcCreates = 0 JobOptionsSvc INFO # (9,1): MessageSvc.OutputLevel = 2 diff --git a/Control/RngComps/share/AtRanlux_test.txt b/Control/RngComps/share/AtRanlux_test.txt index 1bdb8a414f3..bd3dcb31ba8 100644 --- a/Control/RngComps/share/AtRanlux_test.txt +++ b/Control/RngComps/share/AtRanlux_test.txt @@ -2,7 +2,7 @@ // $Id: AtRanlux_test.txt,v 1.2 2007-06-24 05:37:15 calaf Exp $ -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.ExtSvc += { "AtRanluxGenSvc", "AtRanluxGenSvc/AtRanluxGenSvc2", "AtRanluxGenSvc/AtRanluxGenSvc3" }; ApplicationMgr.ExtSvcCreates = false; diff --git a/Control/RngComps/share/AtRndmGen_test.ref b/Control/RngComps/share/AtRndmGen_test.ref index a8e1457403f..dcb6f191c0d 100644 --- a/Control/RngComps/share/AtRndmGen_test.ref +++ b/Control/RngComps/share/AtRndmGen_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/AtRndmGen_test.txt JobOptionsSvc INFO # =======> /home/leggett/work/v30r1.002/src/Control/RngComps/share/../share/AtRndmGen_test.txt -JobOptionsSvc INFO # (5,1): ApplicationMgr.DLLs += ["AthenaServices"] +JobOptionsSvc INFO # (5,1): ApplicationMgr.Dlls += ["AthenaServices"] JobOptionsSvc INFO # (7,1): ApplicationMgr.ExtSvc += ["AtRndmGenSvc", "AtRndmGenSvc/AtRndmGenSvc2", "AtRndmGenSvc/AtRndmGenSvc3"] JobOptionsSvc INFO # (8,1): ApplicationMgr.ExtSvcCreates = 0 JobOptionsSvc INFO # (10,1): MessageSvc.OutputLevel = 2 diff --git a/Control/RngComps/share/AtRndmGen_test.txt b/Control/RngComps/share/AtRndmGen_test.txt index d839d74c1ea..3e81463c51f 100644 --- a/Control/RngComps/share/AtRndmGen_test.txt +++ b/Control/RngComps/share/AtRndmGen_test.txt @@ -2,7 +2,7 @@ // $Id: AtRndmGen_test.txt,v 1.2 2002-11-27 23:29:41 calaf Exp $ -ApplicationMgr.DLLs += { "AthenaServices" }; +ApplicationMgr.Dlls += { "AthenaServices" }; ApplicationMgr.ExtSvc += { "AtRndmGenSvc", "AtRndmGenSvc/AtRndmGenSvc2", "AtRndmGenSvc/AtRndmGenSvc3" }; ApplicationMgr.ExtSvcCreates = false; diff --git a/Control/StoreGate/src/setupStoreGate.cxx b/Control/StoreGate/src/setupStoreGate.cxx index 1fb6fbd3bd6..913f2bd0f6d 100644 --- a/Control/StoreGate/src/setupStoreGate.cxx +++ b/Control/StoreGate/src/setupStoreGate.cxx @@ -44,8 +44,8 @@ bool setupStoreGate (std::string progname, { std::list<std::string> opts; opts.push_back("#pragma print off"); - opts.push_back("ApplicationMgr.DLLs += { \"StoreGate\" };"); - //opts.push_back("ApplicationMgr.DLLs += { \"CLIDSvc\" };"); + opts.push_back("ApplicationMgr.Dlls += { \"StoreGate\" };"); + //opts.push_back("ApplicationMgr.Dlls += { \"CLIDSvc\" };"); opts.push_back("ApplicationMgr.ExtSvc += { \"ClassIDSvc\" };"); opts.push_back("ApplicationMgr.ExtSvc += { \"StoreGateSvc\", \"StoreGateSvc/DetectorStore\", \"StoreGateSvc/HistoryStore\" };"); opts.push_back("ApplicationMgr.ExtSvc += { \"ActiveStoreSvc\" };"); diff --git a/Control/StoreGate/test/VarHandleKeyProperty_test.cxx b/Control/StoreGate/test/VarHandleKeyProperty_test.cxx index e05f07c80d4..dd41003f2fa 100644 --- a/Control/StoreGate/test/VarHandleKeyProperty_test.cxx +++ b/Control/StoreGate/test/VarHandleKeyProperty_test.cxx @@ -187,12 +187,12 @@ public: virtual StatusCode queryInterface(const InterfaceID &/*ti*/, void** /*pp*/) override { std::abort(); } - virtual StatusCode setProperty( const Property& p ) override - { return mgr.setProperty(p); } virtual StatusCode setProperty( const std::string& s ) override { return mgr.setProperty(s); } - virtual StatusCode setProperty( const std::string& n, const std::string& v ) override - { return mgr.setProperty(n, v); } + virtual StatusCode setProperty( const std::string& n, const Gaudi::Details::PropertyBase& p ) override + { return mgr.setProperty(n, p); } + virtual StatusCode setPropertyRepr( const std::string& n, const std::string& r ) override + { return mgr.setPropertyRepr(n,r); } virtual StatusCode getProperty( Property* p ) const override { return mgr.getProperty (p); } virtual const Property& getProperty( const std::string& name) const override diff --git a/Control/StoreGate/test/VarHandleProperty_test.cxx b/Control/StoreGate/test/VarHandleProperty_test.cxx index 8443c28fee2..9736dda1293 100644 --- a/Control/StoreGate/test/VarHandleProperty_test.cxx +++ b/Control/StoreGate/test/VarHandleProperty_test.cxx @@ -50,12 +50,12 @@ public: virtual StatusCode queryInterface(const InterfaceID &/*ti*/, void** /*pp*/) override { std::abort(); } - virtual StatusCode setProperty( const Property& p ) override - { return mgr.setProperty(p); } virtual StatusCode setProperty( const std::string& s ) override { return mgr.setProperty(s); } - virtual StatusCode setProperty( const std::string& n, const std::string& v ) override - { return mgr.setProperty(n, v); } + virtual StatusCode setProperty( const std::string& n, const Gaudi::Details::PropertyBase& p ) override + { return mgr.setProperty(n, p); } + virtual StatusCode setPropertyRepr( const std::string& n, const std::string& r ) override + { return mgr.setPropertyRepr(n,r); } virtual StatusCode getProperty( Property* p ) const override { return mgr.getProperty (p); } virtual const Property& getProperty( const std::string& name) const override diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/python/WriteAthenaPool.py b/Database/AthenaPOOL/AthenaPoolCnvSvc/python/WriteAthenaPool.py index e484ee2ef16..5c7ca61ae79 100644 --- a/Database/AthenaPOOL/AthenaPoolCnvSvc/python/WriteAthenaPool.py +++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/python/WriteAthenaPool.py @@ -10,7 +10,7 @@ # Each subsystem should provide additional jobOpt fragments to load converter and append # to event object ItemList. For example, LArAthenaPool should include: # -# ApplicationMgr.DLLs += [ "LArAthenaPool" ]; +# ApplicationMgr.Dlls += [ "LArAthenaPool" ]; # Stream1.ItemList += [ "2701#*", "2731#*" ]; # #============================================================== diff --git a/Event/ByteStreamCnvSvc/doc/ByteStream.txt b/Event/ByteStreamCnvSvc/doc/ByteStream.txt index 5c6ccec6139..43e5bd17da8 100644 --- a/Event/ByteStreamCnvSvc/doc/ByteStream.txt +++ b/Event/ByteStreamCnvSvc/doc/ByteStream.txt @@ -287,7 +287,7 @@ Here is the jobOptions from LArByteStream. // define how the LArRawChannels are created. // ... omitted. -ApplicationMgr.DLLs += {"LArByteStream", "RMS_LArByteStream" } ; +ApplicationMgr.Dlls += {"LArByteStream", "RMS_LArByteStream" } ; // Select types to be written StreamBS.Itemlist +={"2721#*"} ; diff --git a/Event/EventCommonTPCnv/share/EventCommonTPCnv_test.txt b/Event/EventCommonTPCnv/share/EventCommonTPCnv_test.txt index 52e74f3f396..ec4df14e647 100644 --- a/Event/EventCommonTPCnv/share/EventCommonTPCnv_test.txt +++ b/Event/EventCommonTPCnv/share/EventCommonTPCnv_test.txt @@ -1,2 +1,2 @@ -ApplicationMgr.DLLs += { "StoreGate", "CLIDComps" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDComps" }; ApplicationMgr.ExtSvc += { "StoreGateSvc" }; diff --git a/Event/EventCommonTPCnv/share/INav4MomAssocsCnv_p1_test.ref b/Event/EventCommonTPCnv/share/INav4MomAssocsCnv_p1_test.ref index 4fea7350231..c0d495514b5 100644 --- a/Event/EventCommonTPCnv/share/INav4MomAssocsCnv_p1_test.ref +++ b/Event/EventCommonTPCnv/share/INav4MomAssocsCnv_p1_test.ref @@ -3,7 +3,7 @@ INav4MomAssocsCnv_p1_test Initializing Gaudi ApplicationMgr using job opts ../share/EventCommonTPCnv_test.txt JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/../tests/../share/EventCommonTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc"] JobOptionsSvc INFO Job options successfully read in from ../share/EventCommonTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/Generators/CosmicGenerator/share/jobOptions_CosmicGenerator.txt b/Generators/CosmicGenerator/share/jobOptions_CosmicGenerator.txt index abceedc42f1..287f66c1d16 100644 --- a/Generators/CosmicGenerator/share/jobOptions_CosmicGenerator.txt +++ b/Generators/CosmicGenerator/share/jobOptions_CosmicGenerator.txt @@ -12,7 +12,7 @@ //-------------------------------------------------------------- //load relevant libraries -ApplicationMgr.DLLs += { "CosmicGenerator","TruthExamples" }; +ApplicationMgr.Dlls += { "CosmicGenerator","TruthExamples" }; ApplicationMgr.TopAlg = { "CosmicGenerator","DumpMC" }; // The following is needed to load the Athena Random diff --git a/Generators/CosmicGenerator/share/jobOptions_PixelEndCapCosmicGenerator.txt b/Generators/CosmicGenerator/share/jobOptions_PixelEndCapCosmicGenerator.txt index 083a609511e..b42a8b58f68 100644 --- a/Generators/CosmicGenerator/share/jobOptions_PixelEndCapCosmicGenerator.txt +++ b/Generators/CosmicGenerator/share/jobOptions_PixelEndCapCosmicGenerator.txt @@ -12,7 +12,7 @@ //-------------------------------------------------------------- //load relevant libraries -ApplicationMgr.DLLs += { "CosmicGenerator","TruthExamples" }; +ApplicationMgr.Dlls += { "CosmicGenerator","TruthExamples" }; ApplicationMgr.TopAlg = { "CosmicGenerator","DumpMC" }; // The following is needed to load the Athena Random diff --git a/Generators/EvtGen_i/share/ReadGen.py b/Generators/EvtGen_i/share/ReadGen.py index b3a9b8633f0..90b1b3b1846 100644 --- a/Generators/EvtGen_i/share/ReadGen.py +++ b/Generators/EvtGen_i/share/ReadGen.py @@ -270,7 +270,7 @@ if doBphysNtuple or doCBNT: HistogramPersistencySvc.OutputFile = "histo.root" theApp.Dlls += [ "RootHistCnv" ] theApp.HistogramPersistency = "ROOT" - #theApp.DLLs += [ "HbookCnv" ] + #theApp.Dlls += [ "HbookCnv" ] #theApp.HistogramPersistency = "HBOOK" #HbookHistSvc = Service( "HbookHistSvc") #HbookHistSvc.NPAWC = 1500000 diff --git a/Generators/GeneratorFilters/doc/GeneratorFilters.tex b/Generators/GeneratorFilters/doc/GeneratorFilters.tex index 18622cee3aa..dd1bbb6a06b 100644 --- a/Generators/GeneratorFilters/doc/GeneratorFilters.tex +++ b/Generators/GeneratorFilters/doc/GeneratorFilters.tex @@ -139,11 +139,11 @@ PhotonFilter.Ptcut = 10000. \\4 GeV The filters are used in an Athena seqence as in the following example \begin{verbatim} -theApp.DLLs += [ "Herwig_i" ] -theApp.DLLs += [ "TruthExamples" ] -theApp.DLLs += [ "HbookCnv" ] -theApp.DLLs += [ "GeneratorFilters" ] -theApp.DLLs += ["GaudiAlg"] +theApp.Dlls += [ "Herwig_i" ] +theApp.Dlls += [ "TruthExamples" ] +theApp.Dlls += [ "HbookCnv" ] +theApp.Dlls += [ "GeneratorFilters" ] +theApp.Dlls += ["GaudiAlg"] theApp.HistogramPersistency = "HBOOK" theApp.TopAlg = ["Sequencer/Generator"] Generator.Members = ["Herwig", "ElectronFilter", "HistSample"] diff --git a/Generators/Hijing_i/doc/Hijing.tex b/Generators/Hijing_i/doc/Hijing.tex index 0bd550c4d52..0b53e7b1ed8 100644 --- a/Generators/Hijing_i/doc/Hijing.tex +++ b/Generators/Hijing_i/doc/Hijing.tex @@ -38,7 +38,7 @@ The default jobOptions.hijing.py file will have been copied to your TestRelease area when you set up athena under CMT. The following is needed if you wish to run Hijing \begin{verbatim} -theApp.DLLs += [ "Hijing\_i"] +theApp.Dlls += [ "Hijing\_i"] theApp.TopAlg = ["Hijing"] \end{verbatim} The initialization parameters can be changed via the following line in the jobOptions.py diff --git a/InnerDetector/InDetAlignTools/InDetSurveyConstraintTool/run/MyJobOptions.py b/InnerDetector/InDetAlignTools/InDetSurveyConstraintTool/run/MyJobOptions.py index fb73d13ae83..55489f8e831 100755 --- a/InnerDetector/InDetAlignTools/InDetSurveyConstraintTool/run/MyJobOptions.py +++ b/InnerDetector/InDetAlignTools/InDetSurveyConstraintTool/run/MyJobOptions.py @@ -235,7 +235,7 @@ ToolSvc.InDetSurveyDBTool.DBRoot="/Indet/SiSurvey" #ToolSvc.CondStream1.OutputFile="MisalignPixECModuleRand.root" # Select the appropriate shared library -theApp.DLLs += [ "RootHistCnv" ] +theApp.Dlls += [ "RootHistCnv" ] # Select HBOOK or ROOT persistency theApp.HistogramPersistency = "ROOT" HistogramPersistencySvc = Service( "HistogramPersistencySvc" ) diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/InDetEventTPCnv_test.txt b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/InDetEventTPCnv_test.txt index 7b6025a7cbd..58403489796 100644 --- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/InDetEventTPCnv_test.txt +++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/InDetEventTPCnv_test.txt @@ -1,3 +1,3 @@ -ApplicationMgr.DLLs += { "StoreGate", "CLIDComps" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDComps" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore" }; #include "IOVSvc/IOVSvc.txt" diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelClusterContainerCnv_p1_test.ref b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelClusterContainerCnv_p1_test.ref index d10115b91fc..466649f62cc 100644 --- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelClusterContainerCnv_p1_test.ref +++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelClusterContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/InDetEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3d/InnerDetector/InDetEventCnv/InDetEventTPCnv/run/../share/InDetEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/InDetEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelClusterContainerCnv_p2_test.ref b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelClusterContainerCnv_p2_test.ref index 34f8b645497..730219da834 100644 --- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelClusterContainerCnv_p2_test.ref +++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelClusterContainerCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/InDetEventTPCnv_test.txt JobOptionsSvc INFO # =======> /home/sss/nobackup/atlas/build/../tests/../share/InDetEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/InDetEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelClusterContainerCnv_p3_test.ref b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelClusterContainerCnv_p3_test.ref index 55bcb330fae..374edeeeb21 100644 --- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelClusterContainerCnv_p3_test.ref +++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelClusterContainerCnv_p3_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/InDetEventTPCnv_test.txt JobOptionsSvc INFO # =======> /home/sss/nobackup/atlas/build/../tests/../share/InDetEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/InDetEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelGangedClusterAmbiguitiesCnv_p1_test.ref b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelGangedClusterAmbiguitiesCnv_p1_test.ref index 9d41e2b4bcb..e79e437d075 100644 --- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelGangedClusterAmbiguitiesCnv_p1_test.ref +++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/PixelGangedClusterAmbiguitiesCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/InDetEventTPCnv_test.txt JobOptionsSvc INFO # =======> /home/sss/nobackup/atlas/build/../tests/../share/InDetEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/InDetEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/SCT_ClusterContainerCnv_p2_test.ref b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/SCT_ClusterContainerCnv_p2_test.ref index 8dd528eedd7..24cbc064b95 100644 --- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/SCT_ClusterContainerCnv_p2_test.ref +++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/SCT_ClusterContainerCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/InDetEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/InDetEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/InDetEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/SCT_ClusterContainerCnv_p3_test.ref b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/SCT_ClusterContainerCnv_p3_test.ref index 8dd528eedd7..24cbc064b95 100644 --- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/SCT_ClusterContainerCnv_p3_test.ref +++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/SCT_ClusterContainerCnv_p3_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/InDetEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/InDetEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/InDetEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/TRT_DriftCircleContainerCnv_p2_test.ref b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/TRT_DriftCircleContainerCnv_p2_test.ref index 9ea2c8d3be1..93ba26f5c9e 100644 --- a/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/TRT_DriftCircleContainerCnv_p2_test.ref +++ b/InnerDetector/InDetEventCnv/InDetEventTPCnv/share/TRT_DriftCircleContainerCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/InDetEventTPCnv_test.txt JobOptionsSvc INFO # =======> /home/sss/nobackup/atlas/build/../tests/../share/InDetEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/InDetEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/run/CosmicMonitorOpts.py b/InnerDetector/InDetMonitoring/SCT_Monitoring/run/CosmicMonitorOpts.py index f13fbb0d0e2..04a0129e537 100755 --- a/InnerDetector/InDetMonitoring/SCT_Monitoring/run/CosmicMonitorOpts.py +++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/run/CosmicMonitorOpts.py @@ -182,7 +182,7 @@ if CosmicMonitorFlags.doMonitoring: theApp.Dlls += [ "CBNT_Utils","CBNT_Athena" ] if CosmicMonitorFlags.makeAlignNtp: - theApp.DLLs += ["HbookCnv"] + theApp.Dlls += ["HbookCnv"] theApp.HistogramPersistency = "HBOOK" else: theApp.Dlls += [ "RootHistCnv" ] diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/IDPVM_Test.txt b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/IDPVM_Test.txt index f5103f439bb..3abc771c604 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/IDPVM_Test.txt +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/IDPVM_Test.txt @@ -1,5 +1,5 @@ ApplicationMgr.OutputLevel = 5; -ApplicationMgr.DLLs += { "InDetPhysValMonitoring" }; +ApplicationMgr.Dlls += { "InDetPhysValMonitoring" }; ApplicationMgr.CreateSvc += { "HistogramDefinitionSvc/HistogramDefinitionSvc" }; HistogramDefinitionSvc.DefinitionFormat = "text/xml"; HistogramDefinitionSvc.DefinitionSource = "testHDef.xml"; diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/XmlEntityInclusionOptions.txt b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/XmlEntityInclusionOptions.txt index 4a5e2818152..ade4a1f065e 100644 --- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/XmlEntityInclusionOptions.txt +++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/share/XmlEntityInclusionOptions.txt @@ -1,5 +1,5 @@ ApplicationMgr.OutputLevel = 5; -ApplicationMgr.DLLs += { "InDetPhysValMonitoring" }; +ApplicationMgr.Dlls += { "InDetPhysValMonitoring" }; ApplicationMgr.CreateSvc += { "HistogramDefinitionSvc/HistogramDefinitionSvc" }; HistogramDefinitionSvc.DefinitionFormat = "text/xml"; HistogramDefinitionSvc.DefinitionSource = "entityMaster.xml"; diff --git a/LArCalorimeter/LArCellRec/share/LArCellTest_jobOptions.py b/LArCalorimeter/LArCellRec/share/LArCellTest_jobOptions.py index 3d8f6dc8b8b..7c99f2a0789 100755 --- a/LArCalorimeter/LArCellRec/share/LArCellTest_jobOptions.py +++ b/LArCalorimeter/LArCellRec/share/LArCellTest_jobOptions.py @@ -1,5 +1,5 @@ # jobOptions file for testing LArCell -# ApplicationMgr.DLLs += { "LArCellRec" }; +# ApplicationMgr.Dlls += { "LArCellRec" }; theApp.TopAlg += [ "LArCellTest/LArCellTestEM", "LArCellTest/LArCellTestHEC", diff --git a/LArCalorimeter/LArCnv/LArAthenaPool/share/LArRecAthenaPool_ReadTest_jobOptions.py b/LArCalorimeter/LArCnv/LArAthenaPool/share/LArRecAthenaPool_ReadTest_jobOptions.py index 4ce6fcdb613..bede78eae1e 100755 --- a/LArCalorimeter/LArCnv/LArAthenaPool/share/LArRecAthenaPool_ReadTest_jobOptions.py +++ b/LArCalorimeter/LArCnv/LArAthenaPool/share/LArRecAthenaPool_ReadTest_jobOptions.py @@ -52,11 +52,11 @@ theApp.EvtMax = 200 #-------------------------------------------------------------- MessageSvc = Service( "MessageSvc" ) MessageSvc.OutputLevel = 2 -#ApplicationMgr.DLLs += { "LArClusterRec" }; -#ApplicationMgr.DLLs += { "LArCellRec" }; +#ApplicationMgr.Dlls += { "LArClusterRec" }; +#ApplicationMgr.Dlls += { "LArCellRec" }; -theApp.DLLs += [ "CaloTools" ] -theApp.DLLs += [ "CaloRec" ] +theApp.Dlls += [ "CaloTools" ] +theApp.Dlls += [ "CaloRec" ] from CaloIdentifier import SUBCALO diff --git a/LArCalorimeter/LArCnv/LArAthenaPool/share/LArRecAthenaPool_WriteTest_jobOptions.py b/LArCalorimeter/LArCnv/LArAthenaPool/share/LArRecAthenaPool_WriteTest_jobOptions.py index cf8b098ee16..faca6bdcb1f 100755 --- a/LArCalorimeter/LArCnv/LArAthenaPool/share/LArRecAthenaPool_WriteTest_jobOptions.py +++ b/LArCalorimeter/LArCnv/LArAthenaPool/share/LArRecAthenaPool_WriteTest_jobOptions.py @@ -72,7 +72,7 @@ include( "CaloRec/CaloCluster_jobOptions.py" ) from CaloIdentifier import SUBCALO -theApp.DLLs += [ "CaloTools" ] +theApp.Dlls += [ "CaloTools" ] include( "CBNT_Athena/CBNT_Athena_jobOptions.py" ) theApp.TopAlg += [ "CBNT_Athena/CBNT_Calo" ] diff --git a/LArCalorimeter/LArCnv/LArByteStream/doc/README.txt b/LArCalorimeter/LArCnv/LArByteStream/doc/README.txt index 243d25d9605..45b66bec012 100644 --- a/LArCalorimeter/LArCnv/LArByteStream/doc/README.txt +++ b/LArCalorimeter/LArCnv/LArByteStream/doc/README.txt @@ -277,7 +277,7 @@ ReadLArRaw.HistogramID = 128 ; ReadLArRaw.NtupleLocID = "/FILE1/LARG" ; // specify the LAr Converter and LArROD type and key for output. -ApplicationMgr.DLLs += { "LArByteStream" }; +ApplicationMgr.Dlls += { "LArByteStream" }; StreamBS.ItemList +={"2721#*"}; The first part should be replaced by jobOptions that can make your RDOs. diff --git a/LArCalorimeter/LArExample/LArCalibProcessing/share/LArCalib_CTB04_AutoCorr_jobOptions.py b/LArCalorimeter/LArExample/LArCalibProcessing/share/LArCalib_CTB04_AutoCorr_jobOptions.py index e1c31851b6c..07fa340675a 100644 --- a/LArCalorimeter/LArExample/LArCalibProcessing/share/LArCalib_CTB04_AutoCorr_jobOptions.py +++ b/LArCalorimeter/LArExample/LArCalibProcessing/share/LArCalib_CTB04_AutoCorr_jobOptions.py @@ -41,7 +41,7 @@ theApp.HistogramPersistency="HBOOK" NTupleSvc = Service( "NTupleSvc" ) NTupleSvc.Output = [ "FILE1 DATAFILE='autocorr.ntp' OPT='NEW'"] # To output ROOT file -#ApplicationMgr.DLLs += { "RootHistCnv" }; +#ApplicationMgr.Dlls += { "RootHistCnv" }; #HistogramPersistencySvc.OutputFile = ""; #ApplicationMgr.HistogramPersistency="ROOT"; #NTupleSvc.Output = { "FILE1 DATAFILE='autocorr.root' OPT='NEW'"}; diff --git a/LArCalorimeter/LArSim/share/LArSim_Fake_jobOptions.txt b/LArCalorimeter/LArSim/share/LArSim_Fake_jobOptions.txt index c6feed0ab3f..a479eaa66b9 100755 --- a/LArCalorimeter/LArSim/share/LArSim_Fake_jobOptions.txt +++ b/LArCalorimeter/LArSim/share/LArSim_Fake_jobOptions.txt @@ -13,7 +13,7 @@ // Private Application Configuration options //-------------------------------------------------------------- -ApplicationMgr.DLLs += {"LArSim"} ; +ApplicationMgr.Dlls += {"LArSim"} ; ApplicationMgr.TopAlg += {"LArHitMaker/hitmaker1"} ; diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/MuonEventAthenaPool_test.txt b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/MuonEventAthenaPool_test.txt index ece7c5043ba..19791156cd4 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/MuonEventAthenaPool_test.txt +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/MuonEventAthenaPool_test.txt @@ -1,4 +1,4 @@ -ApplicationMgr.DLLs += { "StoreGate", "CLIDComps" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDComps" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore" }; TGCcablingServerSvc.forcedUse = true; #include "IOVSvc/IOVSvc.txt" diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/RpcPadContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/RpcPadContainerCnv_p1_test.ref index 3cc8a04ce49..4a294b1ab94 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/RpcPadContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/RpcPadContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/MuonEventAthenaPool_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/../share/MuonEventAthenaPool_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO # (3,1): TGCcablingServerSvc.forcedUse = 1 JobOptionsSvc INFO Job options successfully read in from ../share/MuonEventAthenaPool_test.txt diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/RpcPadContainerCnv_p2_test.ref b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/RpcPadContainerCnv_p2_test.ref index bfa4b2ddaaf..7b7f6c23c62 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/RpcPadContainerCnv_p2_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/RpcPadContainerCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/MuonEventAthenaPool_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/../share/MuonEventAthenaPool_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO # (3,1): TGCcablingServerSvc.forcedUse = 1 JobOptionsSvc INFO Job options successfully read in from ../share/MuonEventAthenaPool_test.txt diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/TgcRdoCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/TgcRdoCnv_p1_test.ref index 28eace07793..ba1e5f3511c 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/TgcRdoCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/TgcRdoCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/MuonEventAthenaPool_test.txt JobOptionsSvc INFO # =======> /home/sss/nobackup/atlas/build/../tests/../share/MuonEventAthenaPool_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO # (3,1): TGCcablingServerSvc.forcedUse = 1 JobOptionsSvc INFO Job options successfully read in from ../share/MuonEventAthenaPool_test.txt diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/TgcRdoCnv_p2_test.ref b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/TgcRdoCnv_p2_test.ref index 967d3b76e38..77400977a10 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/TgcRdoCnv_p2_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/TgcRdoCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/MuonEventAthenaPool_test.txt JobOptionsSvc INFO # =======> /home/sss/nobackup/atlas/build/../tests/../share/MuonEventAthenaPool_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO # (3,1): TGCcablingServerSvc.forcedUse = 1 JobOptionsSvc INFO Job options successfully read in from ../share/MuonEventAthenaPool_test.txt diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/TgcRdoCnv_p3_test.ref b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/TgcRdoCnv_p3_test.ref index 94f40ab9550..a7cc616457b 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/TgcRdoCnv_p3_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/share/TgcRdoCnv_p3_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/MuonEventAthenaPool_test.txt JobOptionsSvc INFO # =======> /home/sss/nobackup/atlas/build/../tests/../share/MuonEventAthenaPool_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO # (3,1): TGCcablingServerSvc.forcedUse = 1 JobOptionsSvc INFO Job options successfully read in from ../share/MuonEventAthenaPool_test.txt diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CompetingMuonClustersOnTrackCnv_p2_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CompetingMuonClustersOnTrackCnv_p2_test.ref index 8b95877006b..3c50c1642a4 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CompetingMuonClustersOnTrackCnv_p2_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CompetingMuonClustersOnTrackCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscClusterOnTrackCnv_p2_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscClusterOnTrackCnv_p2_test.ref index eb7e46d2ac9..80f2a7c8a75 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscClusterOnTrackCnv_p2_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscClusterOnTrackCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscPrepDataContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscPrepDataContainerCnv_p1_test.ref index e4e220ef8a6..a463acacecb 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscPrepDataContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscPrepDataContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscPrepDataContainerCnv_p2_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscPrepDataContainerCnv_p2_test.ref index 3baef6e3f4e..cea147a8d8e 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscPrepDataContainerCnv_p2_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscPrepDataContainerCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscStripPrepDataContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscStripPrepDataContainerCnv_p1_test.ref index 2370d71c917..926b5347c3a 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscStripPrepDataContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/CscStripPrepDataContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MMPrepDataContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MMPrepDataContainerCnv_p1_test.ref index 96b75544dbf..93fd0cd6a52 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MMPrepDataContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MMPrepDataContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MM_ClusterOnTrackCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MM_ClusterOnTrackCnv_p1_test.ref index 38e08957f3a..e55934786df 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MM_ClusterOnTrackCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MM_ClusterOnTrackCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MM_DigitContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MM_DigitContainerCnv_p1_test.ref index d22980deb84..1f43aa61578 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MM_DigitContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MM_DigitContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MM_DigitContainerCnv_p2_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MM_DigitContainerCnv_p2_test.ref index 4c32314c13f..944ac641525 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MM_DigitContainerCnv_p2_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MM_DigitContainerCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MdtDriftCircleOnTrackCnv_p2_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MdtDriftCircleOnTrackCnv_p2_test.ref index 987ce23fb6f..f9cee4c8815 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MdtDriftCircleOnTrackCnv_p2_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MdtDriftCircleOnTrackCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MdtPrepDataContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MdtPrepDataContainerCnv_p1_test.ref index 981337c2b92..1584f712d12 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MdtPrepDataContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MdtPrepDataContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MdtPrepDataContainerCnv_p2_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MdtPrepDataContainerCnv_p2_test.ref index 981337c2b92..1584f712d12 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MdtPrepDataContainerCnv_p2_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MdtPrepDataContainerCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MuonEventTPCnv_test.txt b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MuonEventTPCnv_test.txt index 8104e46f1dd..204aecf3452 100755 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MuonEventTPCnv_test.txt +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/MuonEventTPCnv_test.txt @@ -1,3 +1,3 @@ -ApplicationMgr.DLLs += { "StoreGate", "CLIDComps" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDComps" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc" }; #include "IOVSvc/IOVSvc.txt" diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcClusterOnTrackCnv_p3_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcClusterOnTrackCnv_p3_test.ref index 2e973c04a6c..6793b6c6c48 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcClusterOnTrackCnv_p3_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcClusterOnTrackCnv_p3_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcCoinDataContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcCoinDataContainerCnv_p1_test.ref index 4528d183142..fbb360bf469 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcCoinDataContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcCoinDataContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcPrepDataContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcPrepDataContainerCnv_p1_test.ref index 981337c2b92..1584f712d12 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcPrepDataContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcPrepDataContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcPrepDataContainerCnv_p2_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcPrepDataContainerCnv_p2_test.ref index 6619bca36ff..42c3c15a2ba 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcPrepDataContainerCnv_p2_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcPrepDataContainerCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcPrepDataContainerCnv_p3_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcPrepDataContainerCnv_p3_test.ref index 6619bca36ff..42c3c15a2ba 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcPrepDataContainerCnv_p3_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/RpcPrepDataContainerCnv_p3_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/STGC_ClusterOnTrackCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/STGC_ClusterOnTrackCnv_p1_test.ref index 3c57dbdb485..f3f1295795b 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/STGC_ClusterOnTrackCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/STGC_ClusterOnTrackCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/STGC_DigitContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/STGC_DigitContainerCnv_p1_test.ref index 35e2bd565aa..15caa6ea8b8 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/STGC_DigitContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/STGC_DigitContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/STGC_RawDataContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/STGC_RawDataContainerCnv_p1_test.ref index b1241a74ca9..f33987f7261 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/STGC_RawDataContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/STGC_RawDataContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcClusterOnTrackCnv_p2_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcClusterOnTrackCnv_p2_test.ref index 7a619941921..afb0082ce2f 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcClusterOnTrackCnv_p2_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcClusterOnTrackCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcCoinDataContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcCoinDataContainerCnv_p1_test.ref index 4f7c5a0c2e2..1154f6d0925 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcCoinDataContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcCoinDataContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcCoinDataContainerCnv_p2_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcCoinDataContainerCnv_p2_test.ref index 67e8a017e9c..c3171a22bf8 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcCoinDataContainerCnv_p2_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcCoinDataContainerCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcCoinDataContainerCnv_p3_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcCoinDataContainerCnv_p3_test.ref index bbad59bb010..e3a93452533 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcCoinDataContainerCnv_p3_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcCoinDataContainerCnv_p3_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcPrepDataContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcPrepDataContainerCnv_p1_test.ref index 1fc5a8a2ba4..4917471e954 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcPrepDataContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcPrepDataContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcPrepDataContainerCnv_p2_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcPrepDataContainerCnv_p2_test.ref index 812cc81fec0..bd3c4184386 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcPrepDataContainerCnv_p2_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcPrepDataContainerCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcPrepDataContainerCnv_p3_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcPrepDataContainerCnv_p3_test.ref index 812cc81fec0..bd3c4184386 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcPrepDataContainerCnv_p3_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/TgcPrepDataContainerCnv_p3_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-opt/x86_64-centos7-gcc8-opt/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/sTgcPrepDataContainerCnv_p1_test.ref b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/sTgcPrepDataContainerCnv_p1_test.ref index 807907fa4bc..8878998c78a 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/sTgcPrepDataContainerCnv_p1_test.ref +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/share/sTgcPrepDataContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-dbg/x86_64-centos7-gcc8-dbg/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-dbg/x86_64-centos7-gcc8-dbg/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/ConditionStore", "Athena::RCUSvc"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/build-x86_64-centos7-gcc8-dbg/x86_64-centos7-gcc8-dbg/jobOptions/MuonEventTPCnv/MuonEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/ReadCoolStrFiles.py b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/ReadCoolStrFiles.py index 193f1de6433..2c87a1c0649 100755 --- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/ReadCoolStrFiles.py +++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/ReadCoolStrFiles.py @@ -7,7 +7,7 @@ # # define two instances of the ReadWriteCoolStrFile algorithm to read the data -theApp.DLLs+=["DetDescrCondTools","DetDescrCondExample"] +theApp.Dlls+=["DetDescrCondTools","DetDescrCondExample"] theApp.TopAlg+=["ReadWriteCoolStrFile/RWInstA","ReadWriteCoolStrFile/RWInstB"] # parameters for first instance - reads from channel 1 in folder /TEST/COOLSTR diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/allign.py b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/allign.py index 6803ac223f8..fbf311dec8a 100755 --- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/allign.py +++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/allign.py @@ -16,8 +16,8 @@ theApp.EvtMax = 3 # define two instances of the ReadWriteCoolStrFile algorithm to manipulate # the data files # -theApp.DLLs+=["MuonCondCool"] -#theApp.DLLs+=["DetDescrCondTools","DetDescrCondExample"] +theApp.Dlls+=["MuonCondCool"] +#theApp.Dlls+=["DetDescrCondTools","DetDescrCondExample"] theApp.TopAlg+=["MuonCalib::MdtReadWriteCoolStr/RWInstA"] #"MuonCalib::MdtReadWriteCoolStr/RWInstA2","MuonCalib::MdtReadWriteCoolStr/RWInstA3","MuonCalib::MdtReadWriteCoolStr/RWInstA4","MuonCalib::MdtReadWriteCoolStr/RWInstA5","MuonCalib::MdtReadWriteCoolStr/RWInstA6"] diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/deadtube.py b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/deadtube.py index 7ff383f2e0a..2cb256a16ca 100755 --- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/deadtube.py +++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/deadtube.py @@ -15,7 +15,7 @@ theApp.EvtMax = 10 # define two instances of the ReadWriteCoolStrFile algorithm to manipulate # the data files # -theApp.DLLs+=["MuonCondCool"] +theApp.Dlls+=["MuonCondCool"] theApp.TopAlg+=["MuonCalib::MdtTubeCondCool/RWInstA"] diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/t0.py b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/t0.py index 95017d2574b..c452ec8cc3f 100755 --- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/t0.py +++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondCool/share/t0.py @@ -15,7 +15,7 @@ theApp.EvtMax = 5 # define two instances of the ReadWriteCoolStrFile algorithm to manipulate # the data files # -theApp.DLLs+=["MuonCondCool"] +theApp.Dlls+=["MuonCondCool"] theApp.TopAlg+=["MuonCalib::MdtReadWriteCoolStr/RWInstA","MuonCalib::MdtReadWriteCoolStr/RWInstA2","MuonCalib::MdtReadWriteCoolStr/RWInstA3","MuonCalib::MdtReadWriteCoolStr/RWInstA4","MuonCalib::MdtReadWriteCoolStr/RWInstA5","MuonCalib::MdtReadWriteCoolStr/RWInstA6"] diff --git a/MuonSpectrometer/MuonDigitization/MDT_Digitization/share/MDT_DigitizationStandalone_jobOptions.py b/MuonSpectrometer/MuonDigitization/MDT_Digitization/share/MDT_DigitizationStandalone_jobOptions.py index 36daaf11736..921efd03079 100644 --- a/MuonSpectrometer/MuonDigitization/MDT_Digitization/share/MDT_DigitizationStandalone_jobOptions.py +++ b/MuonSpectrometer/MuonDigitization/MDT_Digitization/share/MDT_DigitizationStandalone_jobOptions.py @@ -13,8 +13,8 @@ EventSelector = Service( "EventSelector" ) EventSelector.InputCollection = "NewPoolTry" theApp.Dlls += [ "MDT_Digitization"] theApp.Dlls += [ "GaudiAlg" ,"GaudiAud"] -#ApplicationMgr.DLLs += { "EventHdrAthenaRoot", "MuonSimHitAthenaRoot"}; -#ApplicationMgr.DLLs += { "RootSvcModules" , "AthenaRootCnvSvc" }; +#ApplicationMgr.Dlls += { "EventHdrAthenaRoot", "MuonSimHitAthenaRoot"}; +#ApplicationMgr.Dlls += { "RootSvcModules" , "AthenaRootCnvSvc" }; #ApplicationMgr.ExtSvc += { "RootSvc" }; include( "MuonDetMgrDetDescrCnv/MuonDetMgrDetDescrCnv_joboptions.py" ) diff --git a/MuonSpectrometer/MuonDigitization/RPC_Digitization/share/RPC_Digitization_jobOptions.txt b/MuonSpectrometer/MuonDigitization/RPC_Digitization/share/RPC_Digitization_jobOptions.txt index a29bff74600..fc8ebaf02ae 100644 --- a/MuonSpectrometer/MuonDigitization/RPC_Digitization/share/RPC_Digitization_jobOptions.txt +++ b/MuonSpectrometer/MuonDigitization/RPC_Digitization/share/RPC_Digitization_jobOptions.txt @@ -1,7 +1,7 @@ // RPC Digitization. -ApplicationMgr.DLLs += { "RPC_Digitization"}; +ApplicationMgr.Dlls += { "RPC_Digitization"}; ApplicationMgr.TopAlg += {"RPC_Digitizer"}; RPC_Digitizer.Parameters="G4RPC_Digitizer.txt"; diff --git a/MuonSpectrometer/MuonGeoModelTest/test/MuonGeoModelTestMaps.py b/MuonSpectrometer/MuonGeoModelTest/test/MuonGeoModelTestMaps.py index eefaa27f36d..617a991d962 100644 --- a/MuonSpectrometer/MuonGeoModelTest/test/MuonGeoModelTestMaps.py +++ b/MuonSpectrometer/MuonGeoModelTest/test/MuonGeoModelTestMaps.py @@ -15,7 +15,7 @@ include( "AtlasGeoModel/MuonGeoModel.py" ) theApp.EvtSel = "EventSelector"; theApp.EvtMax = 0; -theApp.DLLs += [ "MuonGeoModelTest"] +theApp.Dlls += [ "MuonGeoModelTest"] #---- display top algorithm theApp.TopAlg = [ "MuonGMCheck" ] diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEvent/share/TruthParticle_test.txt b/PhysicsAnalysis/TruthParticleID/McParticleEvent/share/TruthParticle_test.txt index 834e51e5c61..7283c88f964 100644 --- a/PhysicsAnalysis/TruthParticleID/McParticleEvent/share/TruthParticle_test.txt +++ b/PhysicsAnalysis/TruthParticleID/McParticleEvent/share/TruthParticle_test.txt @@ -1,7 +1,7 @@ // common job opts for SG unit tests #pragma print off -ApplicationMgr.DLLs += { "StoreGate" }; +ApplicationMgr.Dlls += { "StoreGate" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/HistoryStore" }; diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.cxx b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.cxx index add3feeee5b..77a2cbdb738 100644 --- a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.cxx +++ b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.cxx @@ -200,12 +200,10 @@ unsigned long RootTruthParticleCnvTool::refCount() const { abort(); } // Implementation of the IProperty function(s) // -StatusCode RootTruthParticleCnvTool::setProperty( const Property& ) { abort(); } StatusCode RootTruthParticleCnvTool::setProperty( const std::string& ) { abort(); } -StatusCode RootTruthParticleCnvTool::setProperty( const std::string&, - const std::string& ) { - abort(); } +StatusCode RootTruthParticleCnvTool::setProperty( const std::string&, const Gaudi::Details::PropertyBase& ) { abort(); } +StatusCode RootTruthParticleCnvTool::setPropertyRepr( const std::string&, const std::string& ){ abort(); } StatusCode RootTruthParticleCnvTool::getProperty( Property* ) const { abort(); } const Property& RootTruthParticleCnvTool::getProperty( const std::string& ) const{ abort(); } diff --git a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.h b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.h index 34c8595523b..3573cbd1e41 100644 --- a/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.h +++ b/PhysicsAnalysis/TruthParticleID/McParticleEventTPCnv/src/RootTruthParticleCnvTool.h @@ -8,6 +8,7 @@ #define MCPARTICLEEVENTTPCNV_ROOTTRUTHPARTICLECNVTOOL_H #include "McParticleKernel/ITruthParticleCnvTool.h" +#include "GaudiKernel/Property.h" class RootTruthParticleCnvTool : public ITruthParticleCnvTool @@ -51,9 +52,10 @@ public: /// @name Function(s) inherited from IProperty /// @{ - virtual StatusCode setProperty( const Property& p ); virtual StatusCode setProperty( const std::string& s ); - virtual StatusCode setProperty( const std::string& n, const std::string& v ); + virtual StatusCode setProperty( const std::string& name, const Gaudi::Details::PropertyBase& p ); + virtual StatusCode setPropertyRepr( const std::string& n, const std::string& r ); + virtual StatusCode getProperty( Property* p ) const; virtual const Property& getProperty( const std::string& name ) const; virtual StatusCode getProperty( const std::string& n, std::string& v ) const; diff --git a/Projects/AthGeneration/externals.txt b/Projects/AthGeneration/externals.txt index a5b437a06ac..f132bae02e5 100644 --- a/Projects/AthGeneration/externals.txt +++ b/Projects/AthGeneration/externals.txt @@ -9,4 +9,4 @@ AthGenerationExternalsVersion = 2.0.72 # The version of atlas/Gaudi to use: -GaudiVersion = v33r1.004 +GaudiVersion = v34r0.000 diff --git a/Projects/AthSimulation/externals.txt b/Projects/AthSimulation/externals.txt index 234b5a04b14..242f63bc478 100644 --- a/Projects/AthSimulation/externals.txt +++ b/Projects/AthSimulation/externals.txt @@ -9,4 +9,4 @@ AthSimulationExternalsVersion = 2.0.72 # The version of atlas/Gaudi to use: -GaudiVersion = v33r1.004 +GaudiVersion = v34r0.000 diff --git a/Projects/Athena/externals.txt b/Projects/Athena/externals.txt index be57a7a38e6..eb81e7685bd 100644 --- a/Projects/Athena/externals.txt +++ b/Projects/Athena/externals.txt @@ -9,4 +9,4 @@ AthenaExternalsVersion = 2.0.72 # The version of atlas/Gaudi to use: -GaudiVersion = v33r1.004 +GaudiVersion = v34r0.000 diff --git a/Simulation/FastShower/FastCaloSim/share/FastShower_CaloCellMaker_jobOptions.py b/Simulation/FastShower/FastCaloSim/share/FastShower_CaloCellMaker_jobOptions.py index eb5ab6ac7fd..4f075bb0fa7 100755 --- a/Simulation/FastShower/FastCaloSim/share/FastShower_CaloCellMaker_jobOptions.py +++ b/Simulation/FastShower/FastCaloSim/share/FastShower_CaloCellMaker_jobOptions.py @@ -50,6 +50,6 @@ CaloCellMakerFS.CaloCellMakerToolNames += ["CaloCellContainerCheckerTool"] # if necessary finalize and check the compactified/decompactified tool if CaloCellMakerFlags.doCompactCellInAddition or CaloCellMakerFlags.doCompactCellInstead: - theApp.DLLs+= ["CaloTools"] + theApp.Dlls+= ["CaloTools"] CaloCellMakerFS.CaloCompactCellMakerToolNames += ["CaloCellContainerFinalizerTool"] CaloCellMakerFS.CaloCompactCellMakerToolNames += ["CaloCellContainerCheckerTool"] diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt index dae64b09f4f..7a62d9fe77d 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt @@ -1,2 +1,2 @@ -ApplicationMgr.DLLs += { "StoreGate", "CLIDComps" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDComps" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore" }; diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterCnv_p1_test.ref b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterCnv_p1_test.ref index f32abb73702..82917f2d837 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterCnv_p1_test.ref +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterCnv_p2_test.ref b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterCnv_p2_test.ref index 8220477e696..432cf47acd5 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterCnv_p2_test.ref +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterContainerCnv_p1_test.ref b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterContainerCnv_p1_test.ref index 7cb10a08bc6..b8c535f5255 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterContainerCnv_p1_test.ref +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterContainerCnv_p1_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterContainerCnv_p2_test.ref b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterContainerCnv_p2_test.ref index 677d21c3b11..13182b07cab 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterContainerCnv_p2_test.ref +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/PlanarClusterContainerCnv_p2_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts /afs/cern.ch/user/s/ssnyder/atlas-work3/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from /afs/cern.ch/user/s/ssnyder/atlas-work3/Simulation/ISF/ISF_Fatras/ISF_FatrasEventTPCnv/share/ISF_FatrasEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/TestBeam/TBMonitoring/share/TBMonExemple_jobOptions.txt b/TestBeam/TBMonitoring/share/TBMonExemple_jobOptions.txt index 498e10bb4a3..34214bf3423 100755 --- a/TestBeam/TBMonitoring/share/TBMonExemple_jobOptions.txt +++ b/TestBeam/TBMonitoring/share/TBMonExemple_jobOptions.txt @@ -10,7 +10,7 @@ DetDescrCnvSvc.DetectorManagers += { "CaloMgr" }; // //---- EMTB-Files input -------------------- // -ApplicationMgr.DLLs += {"LArTBCnv"}; +ApplicationMgr.Dlls += {"LArTBCnv"}; ApplicationMgr.ExtSvc += { "LArTBCnvSvc" , "LArTBEventSelector/EventSelector"}; ApplicationMgr.EvtSel = "EventSelector"; @@ -18,11 +18,11 @@ EventPersistencySvc.CnvServices += { "LArTBCnvSvc" }; EventSelector.InputFiles = {"/afs/cern.ch/user/r/rmcphers/w0/data/rd13_run220113.dat"}; //--- LArMonitoring --------------------------- -ApplicationMgr.DLLs += { "AthenaMonitoring"}; +ApplicationMgr.Dlls += { "AthenaMonitoring"}; ApplicationMgr.TopAlg += { "AthenaMon/athenamon" }; -ApplicationMgr.DLLs += { "TBMonitoring" }; +ApplicationMgr.Dlls += { "TBMonitoring" }; athenamon.AthenaMonTools = {"BeamDetectorMonTool/beamdetmon"}; @@ -54,12 +54,12 @@ ToolSvc.beamdetmon.TDCMin = 0; ToolSvc.beamdetmon.TriggFlags = {1,2,4,8,16,32}; // -- use root histos -- -ApplicationMgr.DLLs += { "RootHistCnv" }; +ApplicationMgr.Dlls += { "RootHistCnv" }; ApplicationMgr.HistogramPersistency = "ROOT"; HistogramPersistencySvc.OutputFile = "test.root"; // -- Use auditors -- -ApplicationMgr.DLLs += { "GaudiAud" }; +ApplicationMgr.Dlls += { "GaudiAud" }; // write out a summary of the time spent // diff --git a/TestBeam/TBMonitoring/share/jobOptions_MonTBInstruments.py b/TestBeam/TBMonitoring/share/jobOptions_MonTBInstruments.py index 9f0eb105315..6743982293e 100755 --- a/TestBeam/TBMonitoring/share/jobOptions_MonTBInstruments.py +++ b/TestBeam/TBMonitoring/share/jobOptions_MonTBInstruments.py @@ -8,7 +8,7 @@ include( "TBCnv/TBReadH8BS_jobOptions.py") #---- Reconstruct Beam Instrumentation ------------------------ -theApp.DLLs+=["TBRec"] +theApp.Dlls+=["TBRec"] #--- BPCs theApp.TopAlg += ["TBBPCRec/TBBPCRec"] TBBPCRec = Algorithm("TBBPCRec") diff --git a/TestBeam/TBRec/share/H8TimingNtuple.py b/TestBeam/TBRec/share/H8TimingNtuple.py index a2d4af7fe50..86e0840171c 100755 --- a/TestBeam/TBRec/share/H8TimingNtuple.py +++ b/TestBeam/TBRec/share/H8TimingNtuple.py @@ -32,7 +32,7 @@ ToolSvc.TBByteStreamCnvTool.Dump = False #---- LAr BS Reading & Reconstruction include("LArTBRec/LArTBRec_H8_Simple_jobOptions.py") -theApp.DLLs+=["LArTools"] +theApp.Dlls+=["LArTools"] include( "LArDetMgrDetDescrCnv/LArDetMgrDetDescrCnv_H8_joboptions.py" ) LArRawChannelSimpleBuilder.RecoMode = "CUBIC" diff --git a/TileCalorimeter/TileRecUtils/share/TileCellBuilderFromHit_test.ref b/TileCalorimeter/TileRecUtils/share/TileCellBuilderFromHit_test.ref index b81a8035969..ab3b5e78b52 100644 --- a/TileCalorimeter/TileRecUtils/share/TileCellBuilderFromHit_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileCellBuilderFromHit_test.ref @@ -255,7 +255,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCondAlg INFO ProxyOflLasFib is set up and can be used TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" diff --git a/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref b/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref index 014dd1b635e..a0182699e46 100644 --- a/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileCellBuilder_test.ref @@ -255,7 +255,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCondAlg INFO ProxyOflLasFib is set up and can be used TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" diff --git a/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref b/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref index c396b721f54..e713cd572b0 100644 --- a/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileDQstatusAlg_test.ref @@ -293,7 +293,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCondAlg INFO ProxyOflLasFib is set up and can be used TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" diff --git a/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref b/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref index d9ad04bb640..3cff5647619 100644 --- a/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileDQstatusTool_test.ref @@ -293,7 +293,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCondAlg INFO ProxyOflLasFib is set up and can be used TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" diff --git a/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref b/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref index b0822cfd21c..34b32dcb920 100644 --- a/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref +++ b/TileCalorimeter/TileRecUtils/share/TileRawChannelBuilder_test.ref @@ -293,7 +293,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCondAlg INFO ProxyOflLasFib is set up and can be used TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref index 9ed90acaf0b..1b2158d0663 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileBeamElemContByteStreamCnv_test.ref @@ -299,7 +299,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCondAlg INFO ProxyOflLasFib is set up and can be used TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" @@ -951,7 +951,7 @@ TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyC TileEMScaleCondAlg 0 INFO ProxyOflLasFib is set up and can be used TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg 0 INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg 0 INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref index 6cf57f1ac97..ecb06d7c0f8 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileDigitsContByteStreamCnv_test.ref @@ -299,7 +299,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCondAlg INFO ProxyOflLasFib is set up and can be used TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" @@ -953,7 +953,7 @@ TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyC TileEMScaleCondAlg 0 INFO ProxyOflLasFib is set up and can be used TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg 0 INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg 0 INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref index 9afe1fdd345..5ae104db67c 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileL2ContByteStreamCnv_test.ref @@ -299,7 +299,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCondAlg INFO ProxyOflLasFib is set up and can be used TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" @@ -952,7 +952,7 @@ TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyC TileEMScaleCondAlg 0 INFO ProxyOflLasFib is set up and can be used TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg 0 INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg 0 INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref index 74564973e68..8df793adf8b 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileLaserObjByteStreamCnv_test.ref @@ -298,7 +298,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCondAlg INFO ProxyOflLasFib is set up and can be used TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" @@ -949,7 +949,7 @@ TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyC TileEMScaleCondAlg 0 INFO ProxyOflLasFib is set up and can be used TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg 0 INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg 0 INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref index 6b3dceaa3d3..ed521ffec3a 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileMuRcvContByteStreamCnv_test.ref @@ -299,7 +299,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCondAlg INFO ProxyOflLasFib is set up and can be used TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" @@ -953,7 +953,7 @@ TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyC TileEMScaleCondAlg 0 INFO ProxyOflLasFib is set up and can be used TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg 0 INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg 0 INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" diff --git a/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref b/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref index 75d97895525..7abb0196247 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref +++ b/TileCalorimeter/TileSvc/TileByteStream/share/TileRawChannelContByteStreamCnv_test.ref @@ -299,7 +299,7 @@ TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCond TileEMScaleCondAlg INFO ProxyOflLasFib is set up and can be used TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCond... INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" @@ -953,7 +953,7 @@ TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyC TileEMScaleCondAlg 0 INFO ProxyOflLasFib is set up and can be used TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflCes) for folder: "/TILE/OFL02/CALIB/CES" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OflEms) for folder: "/TILE/OFL02/CALIB/EMS" -TileEMScaleCondAlg 0 INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':Invalid +TileEMScaleCondAlg 0 INFO Undoing online calibration is not requested, since OnlCacheUnit= 'OnlCacheUnit':'Invalid' TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCis) for folder: "/TILE/OFL02/CALIB/CIS/FIT/LIN" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlLas) for folder: "/TILE/OFL02/CALIB/LAS/LIN" TileEMScaleCondAlg.TileCondProxyCool_... 0 INFO Creating TileCondProxyCool(TileEMScaleCondAlg.TileCondProxyCool_OnlCes) for folder: "/TILE/OFL02/CALIB/CES" diff --git a/Tools/Scripts/share/check_joboptions b/Tools/Scripts/share/check_joboptions index 926c2815c03..cb443bdf83d 100755 --- a/Tools/Scripts/share/check_joboptions +++ b/Tools/Scripts/share/check_joboptions @@ -84,8 +84,8 @@ function check () ##echo file=${file} - #echo "------ DLLs:" - for f in `awk '/(DLLs).*{/,/}/ {print}' ${file} | sed -e 's#[^{]*{##' -e 's#}.*##' -e 's#[",]##g'`; do + #echo "------ Dlls:" + for f in `awk '/(Dlls).*{/,/}/ {print}' ${file} | sed -e 's#[^{]*{##' -e 's#}.*##' -e 's#[",]##g'`; do #echo ${tabulation}${f} s=`echo "${all_dlls}" | egrep -e "[ ]${f}[ ]"` diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfJobOptionsSvc.cxx b/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfJobOptionsSvc.cxx index 9668f665bdf..58cbebc361e 100644 --- a/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfJobOptionsSvc.cxx +++ b/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfJobOptionsSvc.cxx @@ -16,7 +16,8 @@ TrigConf::JobOptionsSvc::JobOptionsSvc(const std::string& name, ISvcLocator* pSvcLocator) : base_class(name, pSvcLocator), - m_josvc("JobOptionsSvc/TrigConfWrapped_JobOptionsSvc", name) + m_josvc("JobOptionsSvc/TrigConfWrapped_JobOptionsSvc", name), + m_optsvc("JobOptionsSvc/TrigConfWrapped_JobOptionsSvc", name) {} StatusCode TrigConf::JobOptionsSvc::initialize() @@ -28,6 +29,11 @@ StatusCode TrigConf::JobOptionsSvc::initialize() SmartIF<IProperty> joprop = &*m_josvc; ATH_CHECK(joprop->setProperty("TYPE", "NONE")); + // m_optsvc = serviceLocator()->getOptsSvc(); + ATH_CHECK(m_optsvc.retrieve()); + m_optsvc->set( this->name() + ".TYPE" , "NONE" ); + + if (m_sourceType == "FILE") { ATH_MSG_INFO("Reading joboptions from " << m_sourcePath.value()); ATH_CHECK(readOptions(m_sourcePath)); @@ -94,6 +100,7 @@ StatusCode TrigConf::JobOptionsSvc::readOptions(const std::string& file, const s for (const auto& [client, props] : json["properties"].items()) { for (const auto& [name, value] : props.items()) { ATH_CHECK(addPropertyToCatalogue(client, Gaudi::Property<std::string>(name, value.get<std::string>()))); + // set(client + "." + name, value.get<std::string>()); } } @@ -114,6 +121,7 @@ StatusCode TrigConf::JobOptionsSvc::readOptionsDB(const std::string& db_server, for( const auto & property : client.second ) { nProps++; ATH_CHECK(addPropertyToCatalogue(client.first, Gaudi::Property<std::string>(property.first, property.second.data()))); + // set(client.first + "." + property.first, property.second.data()); } } ATH_MSG_INFO("Loaded job options from " << nClients << " clients with " << nProps << " in total"); diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfJobOptionsSvc.h b/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfJobOptionsSvc.h index 7efa1688bdb..573b5af122f 100644 --- a/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfJobOptionsSvc.h +++ b/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfJobOptionsSvc.h @@ -9,6 +9,7 @@ #include <vector> #include "GaudiKernel/IJobOptionsSvc.h" +#include "Gaudi/Interfaces/IOptionsSvc.h" #include "GaudiKernel/ServiceHandle.h" #include "AthenaBaseComps/AthService.h" @@ -30,7 +31,7 @@ namespace TrigConf { * - `DB`: Read properties from DB, connection string in `PATH`, see \ref parseDBString * */ - class JobOptionsSvc : public extends<AthService, TrigConf::IJobOptionsSvc, ::IJobOptionsSvc> { + class JobOptionsSvc : public extends<AthService, TrigConf::IJobOptionsSvc, ::IJobOptionsSvc, Gaudi::Interfaces::IOptionsSvc> { using AthService::getProperties; public: @@ -39,6 +40,44 @@ namespace TrigConf { virtual StatusCode initialize() override; virtual StatusCode start() override; + /// @name IOptionsSvc interface + ///@{ + virtual void set( const std::string& key, const std::string& value ) { + return m_optsvc->set(key,value); + } + + virtual std::string get( const std::string& key, const std::string& default_ = {} ) const { + return m_optsvc->get(key,default_); + } + + virtual std::string pop( const std::string& key, const std::string& default_ = {} ) { + return m_optsvc->pop(key,default_); + } + + virtual bool has( const std::string& key ) const { + return m_optsvc->has(key); + } + + virtual bool isSet( const std::string& key ) const { + return m_optsvc->isSet(key); + } + + virtual std::vector<std::tuple<std::string, std::string>> items() const { + return m_optsvc->items(); + } + + virtual void bind( const std::string& prefix, Gaudi::Details::PropertyBase* property ) { + return m_optsvc->bind(prefix,property); + } + + // using OnlyDefaults = Gaudi::tagged_bool<class OnlyDefaults_tag>; + using OnlyDefaults = Gaudi::Interfaces::IOptionsSvc::OnlyDefaults; + virtual void broadcast( const std::regex& filter, const std::string& value, + OnlyDefaults defaults = OnlyDefaults{true} ) { + return m_optsvc->broadcast(filter, value, defaults); + } + ///@} + /// @name IJobOptionsSvc interface /// Most interfaces are just forwards to the "real" JobOptionsSvc. ///@{ @@ -102,6 +141,7 @@ namespace TrigConf { /// handle to the "real" IJobOptionsSvc ServiceHandle<::IJobOptionsSvc> m_josvc; + ServiceHandle<Gaudi::Interfaces::IOptionsSvc> m_optsvc; }; } // namespace TrigConf diff --git a/Trigger/TrigEvent/TrigInDetEventTPCnv/share/TrigInDetEventTPCnv_test.txt b/Trigger/TrigEvent/TrigInDetEventTPCnv/share/TrigInDetEventTPCnv_test.txt index 7b6025a7cbd..58403489796 100644 --- a/Trigger/TrigEvent/TrigInDetEventTPCnv/share/TrigInDetEventTPCnv_test.txt +++ b/Trigger/TrigEvent/TrigInDetEventTPCnv/share/TrigInDetEventTPCnv_test.txt @@ -1,3 +1,3 @@ -ApplicationMgr.DLLs += { "StoreGate", "CLIDComps" }; +ApplicationMgr.Dlls += { "StoreGate", "CLIDComps" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore" }; #include "IOVSvc/IOVSvc.txt" diff --git a/Trigger/TrigEvent/TrigInDetEventTPCnv/share/TrigInDetTrackCnv_p4_test.ref b/Trigger/TrigEvent/TrigInDetEventTPCnv/share/TrigInDetTrackCnv_p4_test.ref index 5429700f587..c7673adce55 100644 --- a/Trigger/TrigEvent/TrigInDetEventTPCnv/share/TrigInDetTrackCnv_p4_test.ref +++ b/Trigger/TrigEvent/TrigInDetEventTPCnv/share/TrigInDetTrackCnv_p4_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/TrigInDetEventTPCnv_test.txt JobOptionsSvc INFO # =======> /home/sss/nobackup/atlas/build/../tests/../share/TrigInDetEventTPCnv_test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "CLIDComps"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "CLIDComps"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore"] JobOptionsSvc INFO Job options successfully read in from ../share/TrigInDetEventTPCnv_test.txt ApplicationMgr SUCCESS diff --git a/Trigger/TrigEvent/TrigNavigation/share/HLTNavigation_test.ref b/Trigger/TrigEvent/TrigNavigation/share/HLTNavigation_test.ref index bad65b3669d..7bbf00b0f23 100644 --- a/Trigger/TrigEvent/TrigNavigation/share/HLTNavigation_test.ref +++ b/Trigger/TrigEvent/TrigNavigation/share/HLTNavigation_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/test.txt JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/../tests/../share/test.txt -JobOptionsSvc INFO # (2,1): ApplicationMgr.DLLs += ["StoreGate", "TrigNavigation", "TrigSerializeCnvSvc"] +JobOptionsSvc INFO # (2,1): ApplicationMgr.Dlls += ["StoreGate", "TrigNavigation", "TrigSerializeCnvSvc"] JobOptionsSvc INFO # (3,1): ApplicationMgr.ExtSvc += ["ClassIDSvc"] JobOptionsSvc INFO # (4,1): ApplicationMgr.ExtSvc += ["TrigSerializeCnvSvc"] JobOptionsSvc INFO # (5,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/HistoryStore"] diff --git a/Trigger/TrigEvent/TrigNavigation/share/Holder_test.ref b/Trigger/TrigEvent/TrigNavigation/share/Holder_test.ref index 6a23db15f20..8d884ebc690 100644 --- a/Trigger/TrigEvent/TrigNavigation/share/Holder_test.ref +++ b/Trigger/TrigEvent/TrigNavigation/share/Holder_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/Trigger/TrigEvent/TrigNavigation/share/../share/test.txt -JobOptionsSvc INFO # (1,1): ApplicationMgr.DLLs += ["StoreGate", "TrigNavigation", "TrigSerializeCnvSvc"] +JobOptionsSvc INFO # (1,1): ApplicationMgr.Dlls += ["StoreGate", "TrigNavigation", "TrigSerializeCnvSvc"] JobOptionsSvc INFO # (2,1): ApplicationMgr.ExtSvc += ["ClassIDSvc"] JobOptionsSvc INFO # (3,1): ApplicationMgr.ExtSvc += ["TrigSerializeCnvSvc"] JobOptionsSvc INFO # (4,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/HistoryStore"] diff --git a/Trigger/TrigEvent/TrigNavigation/share/Ownership_test.ref b/Trigger/TrigEvent/TrigNavigation/share/Ownership_test.ref index f254588f4a9..982e4f5ac69 100644 --- a/Trigger/TrigEvent/TrigNavigation/share/Ownership_test.ref +++ b/Trigger/TrigEvent/TrigNavigation/share/Ownership_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/test.txt JobOptionsSvc INFO # =======> /afs/cern.ch/user/s/ssnyder/atlas-work3/Trigger/TrigEvent/TrigNavigation/share/../share/test.txt -JobOptionsSvc INFO # (2,1): ApplicationMgr.DLLs += ["StoreGate", "TrigNavigation", "TrigSerializeCnvSvc"] +JobOptionsSvc INFO # (2,1): ApplicationMgr.Dlls += ["StoreGate", "TrigNavigation", "TrigSerializeCnvSvc"] JobOptionsSvc INFO # (3,1): ApplicationMgr.ExtSvc += ["ClassIDSvc"] JobOptionsSvc INFO # (4,1): ApplicationMgr.ExtSvc += ["TrigSerializeCnvSvc"] JobOptionsSvc INFO # (5,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/HistoryStore"] diff --git a/Trigger/TrigEvent/TrigNavigation/share/Registration_test.ref b/Trigger/TrigEvent/TrigNavigation/share/Registration_test.ref index 7772b5171b3..825c1e153e8 100644 --- a/Trigger/TrigEvent/TrigNavigation/share/Registration_test.ref +++ b/Trigger/TrigEvent/TrigNavigation/share/Registration_test.ref @@ -2,7 +2,7 @@ Initializing Gaudi ApplicationMgr using job opts ../share/test.txt JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/../tests/../share/test.txt -JobOptionsSvc INFO # (2,1): ApplicationMgr.DLLs += ["StoreGate", "TrigNavigation", "TrigSerializeCnvSvc"] +JobOptionsSvc INFO # (2,1): ApplicationMgr.Dlls += ["StoreGate", "TrigNavigation", "TrigSerializeCnvSvc"] JobOptionsSvc INFO # (3,1): ApplicationMgr.ExtSvc += ["ClassIDSvc"] JobOptionsSvc INFO # (4,1): ApplicationMgr.ExtSvc += ["TrigSerializeCnvSvc"] JobOptionsSvc INFO # (5,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/HistoryStore"] diff --git a/Trigger/TrigEvent/TrigNavigation/share/RoICache_test.ref b/Trigger/TrigEvent/TrigNavigation/share/RoICache_test.ref index e00b5564240..aaeb356cb88 100644 --- a/Trigger/TrigEvent/TrigNavigation/share/RoICache_test.ref +++ b/Trigger/TrigEvent/TrigNavigation/share/RoICache_test.ref @@ -4,7 +4,7 @@ RoICache_test INFO LINE:82 Start of the test: RoIcaching test Initializing Gaudi ApplicationMgr using job opts ../share/test2.txt JobOptionsSvc INFO # =======> /home/sss/atlas/dvtest/build/../tests/../share/test2.txt -JobOptionsSvc INFO # (2,1): ApplicationMgr.DLLs += ["StoreGate", "TrigNavigation", "TrigSerializeCnvSvc"] +JobOptionsSvc INFO # (2,1): ApplicationMgr.Dlls += ["StoreGate", "TrigNavigation", "TrigSerializeCnvSvc"] JobOptionsSvc INFO # (3,1): ApplicationMgr.ExtSvc += ["ClassIDSvc"] JobOptionsSvc INFO # (4,1): ApplicationMgr.ExtSvc += ["TrigSerializeCnvSvc"] JobOptionsSvc INFO # (5,1): ApplicationMgr.ExtSvc += ["StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/HistoryStore"] diff --git a/Trigger/TrigEvent/TrigNavigation/share/test.txt b/Trigger/TrigEvent/TrigNavigation/share/test.txt index cca4873dc00..8116816c7dd 100644 --- a/Trigger/TrigEvent/TrigNavigation/share/test.txt +++ b/Trigger/TrigEvent/TrigNavigation/share/test.txt @@ -1,4 +1,4 @@ -ApplicationMgr.DLLs += { "StoreGate", "TrigNavigation", "TrigSerializeCnvSvc" }; +ApplicationMgr.Dlls += { "StoreGate", "TrigNavigation", "TrigSerializeCnvSvc" }; ApplicationMgr.ExtSvc += { "ClassIDSvc" }; ApplicationMgr.ExtSvc += { "TrigSerializeCnvSvc" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/HistoryStore" }; @@ -14,7 +14,7 @@ MessageSvc.useColors = false; //YourFolder.ItemList = {"8101", "8107#", "Baricco#*"}; //#include "IOVSvc/IOVSvc.txt" -//ApplicationMgr.DLLs += { "IOVSvc" }; +//ApplicationMgr.Dlls += { "IOVSvc" }; //ApplicationMgr.ExtSvc += { "IOVSvc" }; @@ -22,7 +22,7 @@ MessageSvc.useColors = false; // //Navigation.ReferenceAllClasses = 1 -//ApplicationMgr.DLLs += { "TrigCaloEvent" }; +//ApplicationMgr.Dlls += { "TrigCaloEvent" }; ToolSvc.Navigation.ReferenceAllClasses = 1; ToolSvc.Navigation.ClassesToPreregister = {"TestA#EverEmptyButPresent", "TestA#AgainPresentButEmpty", "TestA#","TrigNavTest::TestBContainer#BContainer1", "TrigNavTest::TestBContainer#BContainer2", "TestDContainer#DContainer1"}; //ToolSvc.Navigation.AuxClasses = {"TestAuxA#EverEmptyButPresent", "TrigNavTest::TestAuxB#BContainer2"}; diff --git a/Trigger/TrigEvent/TrigNavigation/share/test2.txt b/Trigger/TrigEvent/TrigNavigation/share/test2.txt index 4133eb8d683..9ba1ed5d31b 100755 --- a/Trigger/TrigEvent/TrigNavigation/share/test2.txt +++ b/Trigger/TrigEvent/TrigNavigation/share/test2.txt @@ -1,4 +1,4 @@ -ApplicationMgr.DLLs += { "StoreGate", "TrigNavigation", "TrigSerializeCnvSvc" }; +ApplicationMgr.Dlls += { "StoreGate", "TrigNavigation", "TrigSerializeCnvSvc" }; ApplicationMgr.ExtSvc += { "ClassIDSvc" }; ApplicationMgr.ExtSvc += { "TrigSerializeCnvSvc" }; ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/HistoryStore" }; @@ -14,7 +14,7 @@ MessageSvc.useColors = false; //YourFolder.ItemList = {"8101", "8107#", "Baricco#*"}; //#include "IOVSvc/IOVSvc.txt" -//ApplicationMgr.DLLs += { "IOVSvc" }; +//ApplicationMgr.Dlls += { "IOVSvc" }; //ApplicationMgr.ExtSvc += { "IOVSvc" }; @@ -22,7 +22,7 @@ MessageSvc.useColors = false; // //Navigation.ReferenceAllClasses = 1 -//ApplicationMgr.DLLs += { "TrigCaloEvent" }; +//ApplicationMgr.Dlls += { "TrigCaloEvent" }; ToolSvc.Navigation.ReferenceAllClasses = 1; //ToolSvc.Navigation.ClassesToPreregister = //{"TestA#EverEmptyButPresent", "TestA#AgainPresentButEmpty", diff --git a/Trigger/TrigT1/TrigT1RPClogic/README b/Trigger/TrigT1/TrigT1RPClogic/README index 3bb0acdac98..597e49d4cfa 100755 --- a/Trigger/TrigT1/TrigT1RPClogic/README +++ b/Trigger/TrigT1/TrigT1RPClogic/README @@ -70,7 +70,7 @@ Use and configuration in ATHENA: * Load and use the required DLL module with the following command lines: - ApplicationMgr.DLLs += { "TrigT1RPClogic" }; + ApplicationMgr.Dlls += { "TrigT1RPClogic" }; * The logic package needs the TrigT1RPChardware package to be built. diff --git a/Trigger/TrigT1/TrigT1RPCsteering/README b/Trigger/TrigT1/TrigT1RPCsteering/README index 28e03accfe4..5f055c69579 100755 --- a/Trigger/TrigT1/TrigT1RPCsteering/README +++ b/Trigger/TrigT1/TrigT1RPCsteering/README @@ -15,7 +15,7 @@ Use and configuration in ATHENA: * Load and use the required DLL module with the following command lines: - ApplicationMgr.DLLs += { "TrigT1RPCsteering" }; + ApplicationMgr.Dlls += { "TrigT1RPCsteering" }; ApplicationMgr.TopAlg = { "TrigT1RPC" }; * The steering needs all the other packages inside the branch TrigT1RPC. diff --git a/Trigger/TrigT1/TrigT1RPCsteering/share/LVL1RpcRunJobOptions.py b/Trigger/TrigT1/TrigT1RPCsteering/share/LVL1RpcRunJobOptions.py index e7e91f7ef7a..ec9a76b88e6 100755 --- a/Trigger/TrigT1/TrigT1RPCsteering/share/LVL1RpcRunJobOptions.py +++ b/Trigger/TrigT1/TrigT1RPCsteering/share/LVL1RpcRunJobOptions.py @@ -73,7 +73,7 @@ else: # Configure the job to access G3 data #----------------------------------------------------------- include ("AthenaCommon/Atlas_ZebraTDR.UnixStandardJob.py") - theApp.DLLs += [ "MuonZebraCnvTest", "MuonDigitZebraCnv" ] + theApp.Dlls += [ "MuonZebraCnvTest", "MuonDigitZebraCnv" ] #----------------------------------------------------------- @@ -92,7 +92,7 @@ else: DetDescrCnvSvc.MuonIDFileName = "IdDictMuonSpectrometer_P.03.xml" # Genzkine->HepMc converter - theApp.DLLs += [ "GenzModule" ] + theApp.Dlls += [ "GenzModule" ] theApp.TopAlg += [ "GenzModule" ] @@ -103,9 +103,9 @@ include ("AmdcAth/AmdcAth_jobOptions.py") # Configure the LVL1 RPC simulation -theApp.DLLs += [ "RPCgeometry" ] -theApp.DLLs += [ "RPCcabling" ] -theApp.DLLs += [ "TrigT1RPCsteering" ] +theApp.Dlls += [ "RPCgeometry" ] +theApp.Dlls += [ "RPCcabling" ] +theApp.Dlls += [ "TrigT1RPCsteering" ] theApp.ExtSvc += [ "RPCgeometrySvc" ] theApp.ExtSvc += [ "RPCcablingSvc" ] diff --git a/Trigger/TrigTools/TrigTimeAlgs/share/test.txt b/Trigger/TrigTools/TrigTimeAlgs/share/test.txt index bc44ffabc9c..4f319d2b552 100755 --- a/Trigger/TrigTools/TrigTimeAlgs/share/test.txt +++ b/Trigger/TrigTools/TrigTimeAlgs/share/test.txt @@ -1,4 +1,4 @@ -ApplicationMgr.DLLs += { "TrigTimeAlgs" }; +ApplicationMgr.Dlls += { "TrigTimeAlgs" }; //ApplicationMgr.ExtSvc += { "ClassIDSvc" }; //ApplicationMgr.ExtSvc += { "StoreGateSvc", "StoreGateSvc/DetectorStore", "StoreGateSvc/HistoryStore" }; //ApplicationMgr.ExtSvc += { "ActiveStoreSvc" }; -- GitLab From 509bcfec41754b300ee29bb87f6a4800218b3d63 Mon Sep 17 00:00:00 2001 From: Nicolas Koehler <nicolas.koehler@cern.ch> Date: Sun, 2 Aug 2020 18:33:32 +0000 Subject: [PATCH 451/459] More private tools in MuonCombinedBaseTools and fix of MuonCombinedRecoConfigTest --- .../MuonCombinedBaseTools/src/MSSurfaces.cxx | 8 +- .../src/MuonCaloTagTool.cxx | 54 ++------ .../src/MuonCaloTagTool.h | 68 +++++----- .../src/MuonCandidateTool.cxx | 13 +- .../src/MuonCandidateTool.h | 14 ++- .../src/MuonCombinedDebuggerTool.cxx | 33 ++--- .../src/MuonCombinedDebuggerTool.h | 31 ++--- .../src/MuonCombinedFitTagTool.cxx | 63 +--------- .../src/MuonCombinedFitTagTool.h | 82 ++++++------- .../src/MuonCombinedStacoTagTool.cxx | 34 +---- .../src/MuonCombinedStacoTagTool.h | 35 ++---- .../src/MuonCombinedTool.cxx | 24 +--- .../src/MuonCombinedTool.h | 34 +++-- .../src/MuonCreatorTool.cxx | 62 +--------- .../src/MuonCreatorTool.h | 116 ++++++------------ .../src/MuonDressingTool.cxx | 4 +- .../src/MuonDressingTool.h | 2 +- .../src/MuonSegmentTagTool.cxx | 83 ++----------- .../src/MuonSegmentTagTool.h | 64 +++++----- .../src/TrackSegmentAssociationTool.cxx | 32 +---- .../src/TrackSegmentAssociationTool.h | 14 +-- .../python/MuonCombinedRecToolsConfig.py | 36 ++++-- 22 files changed, 261 insertions(+), 645 deletions(-) diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MSSurfaces.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MSSurfaces.cxx index 8cccba1b787..9173a7ff1c5 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MSSurfaces.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MSSurfaces.cxx @@ -1,12 +1,11 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "MSSurfaces.h" #include "TrkSurfaces/DiscSurface.h" #include "TrkSurfaces/CylinderSurface.h" -//#include "CLHEP/Geometry/Transform3D.h" MSSurfaces::MSSurfaces(){ Trk::Surface* empty =0; @@ -20,7 +19,6 @@ MSSurfaces::MSSurfaces(){ double rBI = 5000., rBM = 7000., rBO = 9500., rBE = 5000. ; double lenBI = 12000., lenBM = 10000., lenBO = 13000., lenBE = 12000.; const Amg::Vector3D posEI(0.,0.,7500.), posEM(0.,0.,13500.), posEO(0.,0.,21000.), posEE(0.,0.,10000.), zero(0.,0.,0.); - //const CLHEP::HepRotation unity; Amg::Transform3D* transEIA = new Amg::Transform3D(Amg::Translation3D(posEI)); Amg::Transform3D* transEMA = new Amg::Transform3D(Amg::Translation3D(posEM)); Amg::Transform3D* transEOA = new Amg::Transform3D(Amg::Translation3D(posEO)); @@ -29,10 +27,6 @@ MSSurfaces::MSSurfaces(){ Amg::Transform3D* transEMC = new Amg::Transform3D(Amg::Translation3D(-posEM)); Amg::Transform3D* transEOC = new Amg::Transform3D(Amg::Translation3D(-posEO)); Amg::Transform3D* transEEC = new Amg::Transform3D(Amg::Translation3D(-posEE)); - //HepGeom::Transform3D* transBI = new HepGeom::Transform3D(unity, zero ); - //HepGeom::Transform3D* transBM = new HepGeom::Transform3D(unity, zero ); - //HepGeom::Transform3D* transBO = new HepGeom::Transform3D(unity, zero ); - //HepGeom::Transform3D* transBE = new HepGeom::Transform3D(unity, zero ); m_vec[BI] = new Trk::CylinderSurface(rBI, lenBI ); m_station[BI] = "BI" ; diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.cxx index fd774dea9fb..418ff63ce05 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.cxx @@ -42,49 +42,13 @@ namespace MuonCombined { - MuonCaloTagTool::MuonCaloTagTool (const std::string& type, const std::string& name, const IInterface* parent) - : AthAlgTool(type, name, parent), - m_nTrueMuons(0), - m_nTracksTagged(0), - m_nMuonsTagged(0), - m_caloMuonLikelihood("CaloMuonLikelihoodTool/CaloMuonLikelihoodTool",this), - m_trkDepositInCalo("TrackDepositInCaloTool/TrackDepositInCaloTool"), - m_trackIsolationTool("xAOD::TrackIsolationTool"), - m_trkSelTool("InDet::InDetDetailedTrackSelectorTool/CaloTrkMuIdAlgTrackSelectorTool") - { - declareInterface<IMuonCombinedInDetExtensionTool>(this); - declareInterface<IMuonCombinedTrigCaloTagExtensionTool>(this); - - // --- Muon Dressing --- - declareProperty("doCosmicTrackSelection", m_doCosmicTrackSelection = false ); - - // --- Track Preselection Cuts --- - declareProperty("doTrkSelection", m_doTrkSelection = true ); - declareProperty("TrackEIsoBarrelCut", m_eIsoBarrelCut = 15000. ); - declareProperty("TrackEIsoTransitionCut", m_eIsoTransitionCut = 8000. ); - declareProperty("TrackEIsoEndCapCut", m_eIsoEndCapCut = 12000. ); - declareProperty("TrackPtIsoPtRatioCut", m_ptIsoPtRatioCut = 5.0 ); - declareProperty("TrackEIsoPtRatioBarrelCut", m_eIsoPtRatioBarrelCut = 2.5 ); - declareProperty("TrackEIsoPtRatioTransitionCut", m_eIsoPtRatioTransitionCut = 1.25 ); - declareProperty("TrackEIsoPtRatioEndCapCut", m_eIsoPtRatioEndCapCut = 1.6 ); - declareProperty("TrackIsoConeSize", m_trackIsoCone = 0.45 ); - declareProperty("EnergyIsoConeSize", m_energyIsoCone = 0.4 ); - - // --- Calorimeter ID Tools --- - declareProperty("doCaloMuonTag", m_doCaloMuonTag = true ); - declareProperty("doCaloLR", m_doCaloLR = true ); - declareProperty("ShowTruth", m_doTruth = true); - declareProperty("DebugMode", m_debugMode = false); - declareProperty("doOldExtrapolation", m_doOldExtrapolation = false); - declareProperty("IgnoreSiAssociatedCandidates", m_ignoreSiAssocated = true ); - declareProperty("ShowCutFlow", m_showCutFlow = true); - declareProperty("CaloMuonLikelihoodTool", m_caloMuonLikelihood ); - declareProperty("CaloLRLikelihoodCut", m_CaloLRlikelihoodCut = 0.5 ); //Likelihood ratio hard cut - - // --- Track in Calo Tools --- - declareProperty("TrackDepositInCaloTool", m_trkDepositInCalo ); - declareProperty("TrackIsolationTool", m_trackIsolationTool ); - declareProperty("TrackSelectorTool", m_trkSelTool ); + MuonCaloTagTool::MuonCaloTagTool (const std::string& type, const std::string& name, const IInterface* parent) : + AthAlgTool(type, name, parent), + m_nTrueMuons(0), + m_nTracksTagged(0), + m_nMuonsTagged(0) { + declareInterface<IMuonCombinedInDetExtensionTool>(this); + declareInterface<IMuonCombinedTrigCaloTagExtensionTool>(this); } StatusCode MuonCaloTagTool::initialize() { @@ -112,14 +76,10 @@ namespace MuonCombined { } StatusCode MuonCaloTagTool::finalize() { - - ATH_MSG_INFO("Number of true muons : " << m_nTrueMuons); ATH_MSG_INFO("Number of tracks tagged : " << m_nTracksTagged); ATH_MSG_INFO("Number of muons tagged : " << m_nMuonsTagged); - return StatusCode::SUCCESS; - } void MuonCaloTagTool::extendWithPRDs( const InDetCandidateCollection& inDetCandidates, InDetCandidateToTagMap* tagMap, IMuonCombinedInDetExtensionTool::MuonPrdData prdData, diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.h index f8f0288a34f..637b9879871 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCaloTagTool.h @@ -5,37 +5,31 @@ #ifndef MUONCOMBINEDBASETOOLS_MUONCALOTAGTOOL_H #define MUONCOMBINEDBASETOOLS_MUONCALOTAGTOOL_H -#include "AthenaBaseComps/AthAlgTool.h" -#include "GaudiKernel/ToolHandle.h" #include "MuonCombinedToolInterfaces/IMuonCombinedInDetExtensionTool.h" #include "MuonCombinedToolInterfaces/IMuonCombinedTrigCaloTagExtensionTool.h" +#include "AthenaBaseComps/AthAlgTool.h" +#include "GaudiKernel/ToolHandle.h" + #include "MuonCombinedEvent/InDetCandidateCollection.h" #include "MuonCombinedEvent/CaloTag.h" - #include "xAODMuon/Muon.h" #include "xAODTracking/TrackParticle.h" #include "MuonCombinedEvent/InDetCandidate.h" #include "TrkParameters/TrackParameters.h" #include "RecoToolInterfaces/ITrackIsolationTool.h" - -// - NEW #include "RecoToolInterfaces/IParticleCaloExtensionTool.h" #include "RecoToolInterfaces/IParticleCaloCellAssociationTool.h" -// #include "muonEvent/DepositInCalo.h" - #include "ICaloTrkMuIdTools/ICaloMuonLikelihoodTool.h" #include "ICaloTrkMuIdTools/ICaloMuonTag.h" #include "ICaloTrkMuIdTools/ITrackDepositInCaloTool.h" #include "TrkToolInterfaces/ITrackSelectorTool.h" - #include "StoreGate/ReadHandleKey.h" -// - STL #include <atomic> +#include <string> #include <vector> - namespace MuonCombined { class MuonCaloTagTool: public AthAlgTool, virtual public IMuonCombinedInDetExtensionTool, virtual public IMuonCombinedTrigCaloTagExtensionTool @@ -81,40 +75,36 @@ namespace MuonCombined { mutable std::atomic_int m_nMuonsTagged; //!< Counts the number of truth muons tagged // --- Set up what to do and what not to do --- - bool m_doCaloMuonTag; //!< run CaloMuonTag Tool - bool m_doCaloLR; //!< run CaloMuonLikelihoodTool - bool m_doTrkSelection; //!< This variable should be set to false when there is no primary vertex reconstructed. - bool m_doCosmicTrackSelection; //!< Apply track selection for cosmics - - // --- Debugging options --- - bool m_showCutFlow; //!< Verbose track selection and track isolation - bool m_doTruth; //!< Display truth info for each analysed track - bool m_debugMode; //!< Switch for extra printout - bool m_doOldExtrapolation; //!< In doubt ? > - //bool m_doDressing; //!< This is to speed up tests where high fake rate is expected. Should be true by default - bool m_ignoreSiAssocated; //!< If true, ignore InDetCandidates which are SiAssociated - - // --- Isolation cuts --- - double m_ptIsoPtRatioCut; //!< Pt isolation for a .45 cone, normalized to track pt - double m_eIsoBarrelCut; //!< Energy isolation for a .45 cone in Barrel - double m_eIsoTransitionCut; //!< Energy isolation for a .45 cone in Barrel-EndCap transition region - double m_eIsoEndCapCut; //!< Energy isolation for a .45 cone in Endcap - double m_eIsoPtRatioBarrelCut; //!< Energy isolation for a .45 cone in Barrel, normalized to track pt - double m_eIsoPtRatioTransitionCut; //!< Energy isolation for a .45 cone in Barrel-EndCap transition region, normalized to track pt - double m_eIsoPtRatioEndCapCut; //!< Energy isolation for a .45 cone in Endcap, normalized to track pt - double m_CaloLRlikelihoodCut; //!< CaloLR likelihood cut - double m_trackIsoCone; //!< Cone size for track isolation - double m_energyIsoCone; //!< Cone size for energy isolation + Gaudi::Property<bool> m_doCaloMuonTag {this, "doCaloMuonTag", true, "run CaloMuonTag Tool"}; + Gaudi::Property<bool> m_doCaloLR {this, "doCaloLR", true, "run CaloMuonLikelihoodTool"}; + Gaudi::Property<bool> m_doTrkSelection {this, "doTrkSelection", true, "This variable should be set to false when there is no primary vertex reconstructed."}; + Gaudi::Property<bool> m_doCosmicTrackSelection {this, "doCosmicTrackSelection", false, "Apply track selection for cosmics"}; + Gaudi::Property<bool> m_showCutFlow {this, "ShowCutFlow", true, "Verbose track selection and track isolation"}; + Gaudi::Property<bool> m_doTruth {this, "ShowTruth", true, "Display truth info for each analysed track"}; + Gaudi::Property<bool> m_debugMode {this, "DebugMode", false, "Switch for extra printout"}; + Gaudi::Property<bool> m_doOldExtrapolation {this, "doOldExtrapolation", false}; + Gaudi::Property<bool> m_ignoreSiAssocated {this, "IgnoreSiAssociatedCandidates", true, "If true, ignore InDetCandidates which are SiAssociated"}; + + Gaudi::Property<double> m_ptIsoPtRatioCut {this, "TrackPtIsoPtRatioCut", 5, "Pt isolation for a .45 cone, normalized to track pt"}; + Gaudi::Property<double> m_eIsoBarrelCut {this, "TrackEIsoBarrelCut", 15000, "Energy isolation for a .45 cone in Barrel"}; + Gaudi::Property<double> m_eIsoTransitionCut {this, "TrackEIsoTransitionCut", 8000, "Energy isolation for a .45 cone in Barrel-EndCap transition region"}; + Gaudi::Property<double> m_eIsoEndCapCut {this, "TrackEIsoEndCapCut", 12000, "Energy isolation for a .45 cone in Endcap"}; + Gaudi::Property<double> m_eIsoPtRatioBarrelCut {this, "TrackEIsoPtRatioBarrelCut", 2.5, "Energy isolation for a .45 cone in Barrel, normalized to track pt"}; + Gaudi::Property<double> m_eIsoPtRatioTransitionCut {this, "TrackEIsoPtRatioTransitionCut", 1.25, "Energy isolation for a .45 cone in Barrel-EndCap transition region, normalized to track pt"}; + Gaudi::Property<double> m_eIsoPtRatioEndCapCut {this, "TrackEIsoPtRatioEndCapCut", 1.6, "Energy isolation for a .45 cone in Endcap, normalized to track pt"}; + Gaudi::Property<double> m_CaloLRlikelihoodCut {this, "CaloLRLikelihoodCut", 0.5, "CaloLR likelihood ratio hard cut"}; + Gaudi::Property<double> m_trackIsoCone {this, "TrackIsoConeSize", 0.45, "Cone size for track isolation"}; + Gaudi::Property<double> m_energyIsoCone {this, "EnergyIsoConeSize", 0.4, "Cone size for energy isolation"}; // --- CaloTrkMuIdTools --- - ToolHandle<ICaloMuonLikelihoodTool> m_caloMuonLikelihood; //!< CaloTrkMuIdTools::CaloMuonLikelihoodTool + ToolHandle<ICaloMuonLikelihoodTool> m_caloMuonLikelihood{this,"CaloMuonLikelihoodTool","CaloMuonLikelihoodTool/CaloMuonLikelihoodTool"}; ToolHandle<ICaloMuonTag> m_caloMuonTagLoose{this,"CaloMuonTagLoose","CaloMuonTag/CaloMuonTagLoose","CaloTrkMuIdTools::CaloMuonTag for loose tagging"}; ToolHandle<ICaloMuonTag> m_caloMuonTagTight{this,"CaloMuonTagTight","CaloMuonTag/CaloMuonTag","CaloTrkMuIdTools::CaloMuonTag for tight tagging"}; - ToolHandle<ITrackDepositInCaloTool> m_trkDepositInCalo; //!< CaloTrkMuIdTools::TrackDepositInCaloTool - + ToolHandle<ITrackDepositInCaloTool> m_trkDepositInCalo{this,"TrackDepositInCaloTool","TrackDepositInCaloTool/TrackDepositInCaloTool"}; + // --- External tools --- - ToolHandle<xAOD::ITrackIsolationTool> m_trackIsolationTool; //!< track isolation - ToolHandle<Trk::ITrackSelectorTool> m_trkSelTool; //!< ITrackSelectorTool + ToolHandle<xAOD::ITrackIsolationTool> m_trackIsolationTool{this,"TrackIsolationTool","xAOD::TrackIsolationTool"}; + ToolHandle<Trk::ITrackSelectorTool> m_trkSelTool{this,"TrackSelectorTool","InDet::InDetDetailedTrackSelectorTool/CaloTrkMuIdAlgTrackSelectorTool"}; }; } // end of namespace diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.cxx index 606d4d63d14..6380199578b 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.cxx @@ -18,18 +18,9 @@ namespace MuonCombined { //<<<<<< CLASS STRUCTURE INITIALIZATION >>>>>> MuonCandidateTool::MuonCandidateTool (const std::string& type, const std::string& name, const IInterface* parent) - : AthAlgTool(type, name, parent), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool", this), - m_trackBuilder("Rec::CombinedMuonTrackBuilder/CombinedMuonTrackBuilder", this), - m_trackExtrapolationTool("ExtrapolateMuonToIPTool/ExtrapolateMuonToIPTool", this), - m_ambiguityProcessor("Trk::TrackSelectionProcessorTool/MuonAmbiProcessor", this) + : AthAlgTool(type, name, parent) { declareInterface<IMuonCandidateTool>(this); - declareProperty("Printer",m_printer ); - declareProperty("ExtrapolationStrategy", m_extrapolationStrategy = 0 ); - declareProperty("TrackBuilder",m_trackBuilder ); - declareProperty("TrackExtrapolationTool",m_trackExtrapolationTool ); - declareProperty("AmbiguityProcessor",m_ambiguityProcessor ); } //<<<<<< PUBLIC MEMBER FUNCTION DEFINITIONS >>>>>> @@ -41,7 +32,7 @@ namespace MuonCombined { if( !m_trackExtrapolationTool.empty() ) ATH_CHECK(m_trackExtrapolationTool.retrieve()); else m_trackExtrapolationTool.disable(); ATH_CHECK(m_ambiguityProcessor.retrieve()); - ATH_CHECK( m_trackSummaryTool.retrieve() ); + ATH_CHECK(m_trackSummaryTool.retrieve()); ATH_CHECK(m_idHelperSvc.retrieve()); ATH_CHECK(m_beamSpotKey.initialize()); return StatusCode::SUCCESS; diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.h index 883a051c4c2..42e0826aaee 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONCOMBINEDBASETOOLS_MUONCANDIDATETOOL_H @@ -35,15 +35,17 @@ namespace MuonCombined { void create( const xAOD::TrackParticleContainer& tracks, MuonCandidateCollection& outputCollection, TrackCollection& outputTracks ) override; private: - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; - ToolHandle<Rec::ICombinedMuonTrackBuilder> m_trackBuilder; - ToolHandle<Muon::IMuonTrackExtrapolationTool> m_trackExtrapolationTool; - ToolHandle<Trk::ITrackAmbiguityProcessorTool> m_ambiguityProcessor; + ToolHandle<Muon::MuonEDMPrinterTool> m_printer {this, "Printer", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"}; + ToolHandle<Rec::ICombinedMuonTrackBuilder> m_trackBuilder {this, "TrackBuilder", "Rec::CombinedMuonTrackBuilder/CombinedMuonTrackBuilder"}; + ToolHandle<Muon::IMuonTrackExtrapolationTool> m_trackExtrapolationTool {this, "TrackExtrapolationTool", "ExtrapolateMuonToIPTool/ExtrapolateMuonToIPTool"}; + ToolHandle<Trk::ITrackAmbiguityProcessorTool> m_ambiguityProcessor {this, "AmbiguityProcessor", "Trk::TrackSelectionProcessorTool/MuonAmbiProcessor"}; ToolHandle<Trk::IExtendedTrackSummaryTool> m_trackSummaryTool {this, "TrackSummaryTool", "MuonTrackSummaryTool"}; + ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; + SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }; - unsigned int m_extrapolationStrategy; + Gaudi::Property<unsigned int> m_extrapolationStrategy {this, "ExtrapolationStrategy", 0}; }; } // end of namespace diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedDebuggerTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedDebuggerTool.cxx index f99dca5c642..df604908399 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedDebuggerTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedDebuggerTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ ////////////////////////////////////////////////////////////////////////////// @@ -9,49 +9,30 @@ // (c) ATLAS Combined Muon software ////////////////////////////////////////////////////////////////////////////// -//<<<<<< INCLUDES >>>>>> +#include "MuonCombinedDebuggerTool.h" -#include "MuidInterfaces/IMuonMatchQuality.h" #include "MuonCombinedEvent/InDetCandidate.h" #include "MuonCombinedEvent/MuonCandidate.h" -#include "MuonCombinedDebuggerTool.h" - -#include "GaudiKernel/ITHistSvc.h" -#include <TH1D.h> -#include <TTree.h> - #include "xAODTruth/TruthParticleContainer.h" #include "xAODTruth/TruthParticle.h" #include "AthLinks/ElementLink.h" -#include "TrkToolInterfaces/ITruthToTrack.h" - +#include <TTree.h> namespace MuonCombined { - MuonCombinedDebuggerTool::MuonCombinedDebuggerTool (const std::string& type, const std::string& name, const IInterface* parent) - : AthAlgTool(type, name, parent), - m_matchQuality("Rec::MuonMatchQuality/MuonMatchQuality", this), - m_truthToTrack("Trk::TruthToTrack/TruthToTrack"), - m_histSvc("THistSvc", name), - m_recoTree(0) + MuonCombinedDebuggerTool::MuonCombinedDebuggerTool (const std::string& type, const std::string& name, const IInterface* parent) : + AthAlgTool(type, name, parent), + m_histSvc("THistSvc", name), + m_recoTree(nullptr) { declareInterface<MuonCombinedDebuggerTool>(this); } - - MuonCombinedDebuggerTool::~MuonCombinedDebuggerTool() - {} StatusCode MuonCombinedDebuggerTool::initialize() { - ATH_CHECK(m_matchQuality.retrieve()); ATH_CHECK(m_truthToTrack.retrieve()); ATH_CHECK(m_histSvc.retrieve()); - - return StatusCode::SUCCESS; - } - - StatusCode MuonCombinedDebuggerTool::finalize() { return StatusCode::SUCCESS; } diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedDebuggerTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedDebuggerTool.h index 2196de00266..caf15808e9d 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedDebuggerTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedDebuggerTool.h @@ -7,30 +7,21 @@ #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ToolHandle.h" + #include "MuonCombinedEvent/MuonCandidateCollection.h" #include "MuonCombinedEvent/InDetCandidateCollection.h" -#include <vector> - #include "CxxUtils/checker_macros.h" +#include "GaudiKernel/ITHistSvc.h" +#include "TrkToolInterfaces/ITruthToTrack.h" +#include "MuidInterfaces/IMuonMatchQuality.h" -class ITHistSvc; -class TH1D; -class TTree; - -namespace Trk -{ - class ITruthToTrack; -} +#include <string> +#include <vector> -namespace Rec -{ - class IMuonMatchQuality; -} +class TTree; namespace MuonCombined { - class MuonInDetMatchCandidate; - static const InterfaceID IID_MuonCombinedDebuggerTool("MuonCombined::MuonCombinedDebuggerTool", 1, 0); class ATLAS_NOT_THREAD_SAFE MuonCombinedDebuggerTool: public AthAlgTool // the MuonCombinedDebuggerTool can only be used when running with one thread @@ -38,12 +29,11 @@ namespace MuonCombined { public: MuonCombinedDebuggerTool(const std::string& type, const std::string& name, const IInterface* parent); - ~MuonCombinedDebuggerTool(void); // destructor + ~MuonCombinedDebuggerTool()=default; static const InterfaceID& interfaceID() {return IID_MuonCombinedDebuggerTool;} StatusCode initialize(); - StatusCode finalize(); void bookBranches(); @@ -59,8 +49,9 @@ namespace MuonCombined { private: - ToolHandle<Rec::IMuonMatchQuality> m_matchQuality; - ToolHandle<Trk::ITruthToTrack> m_truthToTrack; + ToolHandle<Rec::IMuonMatchQuality> m_matchQuality {this, "MuonMatchQuality", "Rec::MuonMatchQuality/MuonMatchQuality"}; + ToolHandle<Trk::ITruthToTrack> m_truthToTrack {this, "TruthToTrack", "Trk::TruthToTrack/TruthToTrack"}; + ServiceHandle<ITHistSvc> m_histSvc; TTree* m_recoTree; diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx index 1bdec7606a7..4e9cd12b48e 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.cxx @@ -10,74 +10,28 @@ // (c) ATLAS Combined Muon software ////////////////////////////////////////////////////////////////////////////// -//<<<<<< INCLUDES >>>>>> +#include "MuonCombinedFitTagTool.h" + #include "TrkTrack/TrackStateOnSurface.h" #include "MuonRIO_OnTrack/MdtDriftCircleOnTrack.h" - -#include "MuonRecHelperTools/MuonEDMPrinterTool.h" - -#include "MuidInterfaces/ICombinedMuonTrackBuilder.h" -#include "MuidInterfaces/IMuonTrackQuery.h" -#include "MuidInterfaces/IMuidMuonRecovery.h" -#include "MuidInterfaces/IMuonMatchQuality.h" - -#include "MuonCombinedToolInterfaces/IMuonCombinedTool.h" -#include "MuonCombinedToolInterfaces/IMuonMomentumBalanceSignificance.h" - #include "MuonCombinedEvent/InDetCandidate.h" #include "MuonCombinedEvent/InDetCandidateToTagMap.h" #include "MuonCombinedEvent/MuonCandidate.h" #include "MuonCombinedEvent/CombinedFitTag.h" -#include "TrkToolInterfaces/ITrackScoringTool.h" #include "TrkTrackSummary/TrackSummary.h" - #include "muonEvent/CaloEnergy.h" - -#include "MuonCombinedFitTagTool.h" - #include "TrkMaterialOnTrack/MaterialEffectsOnTrack.h" -#include "Identifier/Identifier.h" #include "TrkEventUtils/IdentifierExtractor.h" #include "TrkMaterialOnTrack/ScatteringAngles.h" #include "xAODTracking/Vertex.h" namespace MuonCombined { - - //<<<<<< CLASS STRUCTURE INITIALIZATION >>>>>> MuonCombinedFitTagTool::MuonCombinedFitTagTool(const std::string& type, const std::string& name, const IInterface* parent) - : AthAlgTool(type, name, parent), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"), - m_tagTool("MuonCombined::MuonTrackTagTestTool/MuonTrackTagTestTool"), - m_trackBuilder(""), - m_outwardsBuilder(""), - m_trackQuery("Rec::MuonTrackQuery/MuonTrackQuery"), - m_momentumBalanceTool("Rec::MuonMomentumBalanceSignificanceTool/MuonMomentumBalanceSignifTool"), - m_muonRecovery(""), - m_matchQuality("Rec::MuonMatchQuality/MuonMatchQuality", this), - m_trackScoringTool("Muon::MuonTrackScoringTool/MuonTrackScoringTool"), - m_DetID(0) + : AthAlgTool(type, name, parent) { declareInterface<IMuonCombinedTagTool>(this); - declareProperty("Printer", m_printer); - - declareProperty("TrackBuilder", m_trackBuilder); - declareProperty("OutwardsTrackBuilder", m_outwardsBuilder); - declareProperty("TrackQuery", m_trackQuery); - declareProperty("MomentumBalanceTool", m_momentumBalanceTool); - declareProperty("MuonRecovery", m_muonRecovery); - declareProperty("MatchQuality", m_matchQuality); - declareProperty("TrackScoringTool", m_trackScoringTool); - declareProperty("BadFitChi2", m_badFitChi2 = 2.5); - declareProperty("MomentumBalanceCut", m_momentumBalanceCut = 6.0); - declareProperty("IndetPullCut", m_indetPullCut = 6.0); - declareProperty("MatchChiSquaredCut", m_matchChiSquaredCut = 30.0); } - - MuonCombinedFitTagTool::~MuonCombinedFitTagTool() - {} - - //<<<<<< PUBLIC MEMBER FUNCTION DEFINITIONS >>>>>> StatusCode MuonCombinedFitTagTool::initialize() { ATH_MSG_INFO( "Initializing MuonCombinedFitTagTool - package version " << PACKAGE_VERSION ); @@ -94,20 +48,11 @@ namespace MuonCombined { /// handle to the magnetic field cache ATH_CHECK( m_fieldCacheCondObjInputKey.initialize() ); - if (detStore()->retrieve(m_DetID, "AtlasID").isFailure()) { - ATH_MSG_ERROR ("Could not get AtlasDetectorID helper" ); - return StatusCode::FAILURE; - } - //The trigger doesn't use the vertex information if(!m_vertexKey.empty()) ATH_CHECK( m_vertexKey.initialize() ); return StatusCode::SUCCESS; } - - StatusCode MuonCombinedFitTagTool::finalize() { - return StatusCode::SUCCESS; - } void MuonCombinedFitTagTool::combine( const MuonCandidate& muonCandidate, const std::vector<const InDetCandidate*>& indetCandidates, InDetCandidateToTagMap& tagMap, TrackCollection* combTracks, TrackCollection* METracks) const { @@ -515,7 +460,7 @@ namespace MuonCombined { Identifier id = Trk::IdentifierExtractor::extract(mot); if(id.is_valid()) { // skip after first Muon hit - if(m_DetID->is_muon(id)) break; + if(m_idHelperSvc->isMuon(id)) break; } } if(pstart==0&&m->trackParameters()) { diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h index d299d68f194..0926a88c7ce 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedFitTagTool.h @@ -1,59 +1,47 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONCOMBINEDBASETOOLS_MUONCOMBINEDFITTAGTOOL_H #define MUONCOMBINEDBASETOOLS_MUONCOMBINEDFITTAGTOOL_H -//<<<<<< INCLUDES >>>>>> - +#include "MuonCombinedToolInterfaces/IMuonCombinedTagTool.h" #include "AthenaBaseComps/AthAlgTool.h" +#include "GaudiKernel/ServiceHandle.h" #include "GaudiKernel/ToolHandle.h" -#include "MuonCombinedToolInterfaces/IMuonCombinedTagTool.h" + #include "MuonCombinedToolInterfaces/IMuonTrackTagTool.h" #include "TrkTrack/TrackCollection.h" #include "TrkParameters/TrackParameters.h" #include "TrkSegment/SegmentCollection.h" #include "xAODTracking/VertexContainer.h" -// For magneticfield #include "MagFieldConditions/AtlasFieldCacheCondObj.h" +#include "MuidInterfaces/ICombinedMuonTrackBuilder.h" +#include "MuidInterfaces/IMuonTrackQuery.h" +#include "MuidInterfaces/IMuidMuonRecovery.h" +#include "MuidInterfaces/IMuonMatchQuality.h" +#include "MuonRecHelperTools/MuonEDMPrinterTool.h" +#include "TrkToolInterfaces/ITrackScoringTool.h" +#include "MuonCombinedToolInterfaces/IMuonCombinedTool.h" +#include "MuonCombinedToolInterfaces/IMuonMomentumBalanceSignificance.h" +#include "MuonIdHelpers/IMuonIdHelperSvc.h" + +#include <string> #include <vector> -//<<<<<< CLASS DECLARATIONS >>>>>> - -namespace Rec -{ -class ICombinedMuonTrackBuilder; -class IMuonTrackQuery; -class IMuonMomentumBalanceSignificance; -class IMuidMuonRecovery; -class IMuonMatchQuality; -} -namespace Trk { - class ITrackScoringTool; -} - -namespace Muon -{ - class MuonEDMPrinterTool; -} - namespace MuonCombined { class InDetCandidate; class MuonCandidate; - class IMuonTrackTagTool; class CombinedFitTag; class InDetCandidateToTagMap; - class MuonCombinedFitTagTool: public AthAlgTool, virtual public IMuonCombinedTagTool - { + class MuonCombinedFitTagTool: public AthAlgTool, virtual public IMuonCombinedTagTool { public: MuonCombinedFitTagTool(const std::string& type, const std::string& name, const IInterface* parent); - virtual ~MuonCombinedFitTagTool(void); // destructor + virtual ~MuonCombinedFitTagTool()=default; virtual StatusCode initialize() override; - virtual StatusCode finalize() override; /**IMuonCombinedTagTool interface: build combined muons from a muon and a vector of indet candidates */ virtual @@ -82,27 +70,27 @@ namespace MuonCombined { void dumpCaloEloss(const Trk::Track* track, std::string txt ) const; - // helpers, managers, tools - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; - ToolHandle<MuonCombined::IMuonTrackTagTool> m_tagTool; - ToolHandle<Rec::ICombinedMuonTrackBuilder> m_trackBuilder; - ToolHandle<Rec::ICombinedMuonTrackBuilder> m_outwardsBuilder; - ToolHandle<Rec::IMuonTrackQuery> m_trackQuery; - ToolHandle<Rec::IMuonMomentumBalanceSignificance> m_momentumBalanceTool; - ToolHandle<Rec::IMuidMuonRecovery> m_muonRecovery; - ToolHandle<Rec::IMuonMatchQuality> m_matchQuality; - ToolHandle<Trk::ITrackScoringTool> m_trackScoringTool; + ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; + + ToolHandle<Muon::MuonEDMPrinterTool> m_printer {this, "Printer", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"}; + ToolHandle<MuonCombined::IMuonTrackTagTool> m_tagTool {this, "MuonTrackTagTool", "MuonCombined::MuonTrackTagTestTool/MuonTrackTagTestTool"}; + ToolHandle<Rec::ICombinedMuonTrackBuilder> m_trackBuilder {this, "TrackBuilder", ""}; + ToolHandle<Rec::ICombinedMuonTrackBuilder> m_outwardsBuilder {this, "OutwardsTrackBuilder", ""}; + ToolHandle<Rec::IMuonTrackQuery> m_trackQuery {this, "TrackQuery", "Rec::MuonTrackQuery/MuonTrackQuery"}; + ToolHandle<Rec::IMuonMomentumBalanceSignificance> m_momentumBalanceTool {this, "MomentumBalanceTool", "Rec::MuonMomentumBalanceSignificanceTool/MuonMomentumBalanceSignifTool"}; + ToolHandle<Rec::IMuidMuonRecovery> m_muonRecovery {this, "MuonRecovery", ""}; + ToolHandle<Rec::IMuonMatchQuality> m_matchQuality {this, "MatchQuality", "Rec::MuonMatchQuality/MuonMatchQuality"}; + ToolHandle<Trk::ITrackScoringTool> m_trackScoringTool {this, "TrackScoringTool", "Muon::MuonTrackScoringTool/MuonTrackScoringTool"}; + + Gaudi::Property<double> m_badFitChi2 {this, "BadFitChi2", 2.5}; + Gaudi::Property<double> m_momentumBalanceCut {this, "MomentumBalanceCut", 6}; + Gaudi::Property<double> m_indetPullCut {this, "IndetPullCut", 6}; + Gaudi::Property<double> m_matchChiSquaredCut {this, "MatchChiSquaredCut", 30}; + // Read handle for conditions object to get the field cache - SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}; - const AtlasDetectorID *m_DetID; + SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}; SG::ReadHandleKey<xAOD::VertexContainer> m_vertexKey { this, "VertexContainer", "PrimaryVertices", "primary vertex container" }; - // configuration - double m_badFitChi2; - double m_momentumBalanceCut; // Cut on momentum balance of combined track - double m_indetPullCut; // Cut on indet-combined momentum pull - double m_matchChiSquaredCut; // Chi2 cut for classification as good match - }; } // end of namespace diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx index 64c4acc58c8..33496cb470a 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ ////////////////////////////////////////////////////////////////////////////// @@ -10,51 +10,27 @@ // (c) ATLAS Combined Muon software ////////////////////////////////////////////////////////////////////////////// -//<<<<<< INCLUDES >>>>>> -#include "MuonRecHelperTools/MuonEDMPrinterTool.h" -#include "TrkExInterfaces/IExtrapolator.h" +#include "MuonCombinedStacoTagTool.h" #include "MuonCombinedEvent/InDetCandidate.h" #include "MuonCombinedEvent/InDetCandidateToTagMap.h" #include "MuonCombinedEvent/MuonCandidate.h" #include "MuonCombinedEvent/StacoTag.h" -#include "MuonCombinedStacoTagTool.h" namespace MuonCombined { - - //<<<<<< CLASS STRUCTURE INITIALIZATION >>>>>> - - MuonCombinedStacoTagTool::MuonCombinedStacoTagTool (const std::string& type, const std::string& name, const IInterface* parent) - : AthAlgTool(type, name, parent), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool",this), - m_tagTool("MuonCombined::MuonTrackTagTestTool/MuonTrackTagTestTool",this), - m_extrapolator("Trk::Extrapolator/AtlasExtrapolator"), - m_caloExtTool("Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool",this) + + MuonCombinedStacoTagTool::MuonCombinedStacoTagTool(const std::string& type, const std::string& name, const IInterface* parent) : + AthAlgTool(type, name, parent) { declareInterface<IMuonCombinedTagTool>(this); - declareProperty("Printer",m_printer ); - declareProperty("TagTool",m_tagTool ); - declareProperty("Extrapolator",m_extrapolator ); - declareProperty("ParticleCaloExtensionTool", m_caloExtTool); } - MuonCombinedStacoTagTool::~MuonCombinedStacoTagTool() - {} - - //<<<<<< PUBLIC MEMBER FUNCTION DEFINITIONS >>>>>> - StatusCode MuonCombinedStacoTagTool::initialize() { ATH_MSG_INFO( "Initializing MuonCombinedStacoTagTool - package version " << PACKAGE_VERSION ); - ATH_CHECK(m_printer.retrieve()); ATH_CHECK(m_tagTool.retrieve()); ATH_CHECK(m_extrapolator.retrieve()); ATH_CHECK(m_caloExtTool.retrieve()); - - return StatusCode::SUCCESS; - } - - StatusCode MuonCombinedStacoTagTool::finalize() { return StatusCode::SUCCESS; } diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h index e718b4a7348..4ad43e4796e 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedStacoTagTool.h @@ -1,47 +1,38 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONCOMBINEDBASETOOLS_MUONCOMBINEDSTACOTAGTOOL_H #define MUONCOMBINEDBASETOOLS_MUONCOMBINEDSTACOTAGTOOL_H -//<<<<<< INCLUDES >>>>>> - +#include "MuonCombinedToolInterfaces/IMuonCombinedTagTool.h" #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ToolHandle.h" -#include "MuonCombinedToolInterfaces/IMuonCombinedTagTool.h" + #include "MuonCombinedToolInterfaces/IMuonTrackTagTool.h" #include "TrkTrack/TrackCollection.h" #include "TrkParameters/TrackParameters.h" #include "TrkSegment/SegmentCollection.h" #include "RecoToolInterfaces/IParticleCaloExtensionTool.h" -#include <vector> - -//<<<<<< CLASS DECLARATIONS >>>>>> +#include "MuonRecHelperTools/MuonEDMPrinterTool.h" +#include "TrkExInterfaces/IExtrapolator.h" -namespace Muon -{ - class MuonEDMPrinterTool; -} -namespace Trk { - class IExtrapolator; -} +#include <string> +#include <vector> namespace MuonCombined { class InDetCandidate; class MuonCandidate; class InDetCandidateToTagMap; - class IMuonTrackTagTool; class MuonCombinedStacoTagTool: public AthAlgTool, virtual public IMuonCombinedTagTool { public: MuonCombinedStacoTagTool(const std::string& type, const std::string& name, const IInterface* parent); - virtual ~MuonCombinedStacoTagTool(void); // destructor + virtual ~MuonCombinedStacoTagTool()=default; virtual StatusCode initialize() override; - virtual StatusCode finalize() override; /**IMuonCombinedTagTool interface: build combined muons from a muon and a vector of indet candidates */ virtual @@ -52,12 +43,10 @@ namespace MuonCombined { std::unique_ptr<const Trk::Perigee> theCombIdMu( const Trk::Perigee& indetPerigee, const Trk::Perigee& extrPerigee, double& chi2 ) const; - // helpers, managers, tools - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; - ToolHandle<MuonCombined::IMuonTrackTagTool> m_tagTool; - ToolHandle<Trk::IExtrapolator> m_extrapolator; - ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtTool; - + ToolHandle<Muon::MuonEDMPrinterTool> m_printer {this, "Printer", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"}; + ToolHandle<MuonCombined::IMuonTrackTagTool> m_tagTool {this, "TagTool", "MuonCombined::MuonTrackTagTestTool/MuonTrackTagTestTool"}; + ToolHandle<Trk::IExtrapolator> m_extrapolator {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"}; + ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtTool {this, "ParticleCaloExtensionTool", "Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool"}; }; } // end of namespace diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.cxx index 01a400b5984..74326fbd480 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.cxx @@ -12,34 +12,20 @@ // (c) ATLAS Combined Muon software ////////////////////////////////////////////////////////////////////////////// -#include "MuonRecHelperTools/MuonEDMPrinterTool.h" #include "GaudiKernel/ConcurrencyFlags.h" -#include "MuonCombinedToolInterfaces/IMuonCombinedTagTool.h" #include "MuonCombinedEvent/InDetCandidate.h" #include "MuonCombinedEvent/MuonCandidate.h" #include "MuonCombinedTool.h" namespace MuonCombined { - MuonCombinedTool::MuonCombinedTool (const std::string& type, const std::string& name, const IInterface* parent) - : AthAlgTool(type, name, parent), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"), - m_muonCombDebugger("MuonCombined::MuonCombinedDebuggerTool/MuonCombinedDebuggerTool") + MuonCombinedTool::MuonCombinedTool (const std::string& type, const std::string& name, const IInterface* parent) : + AthAlgTool(type, name, parent) { declareInterface<IMuonCombinedTool>(this); - declareProperty("Printer",m_printer ); - declareProperty("MuonCombinedTagTools", m_muonCombinedTagTools); - declareProperty("DeltaEtaPreSelection", m_deltaEtaPreSelection = 0.5 ); - declareProperty("DeltaPhiPreSelection", m_deltaPhiPreSelection = 1. ); - declareProperty("PtBalancePreSelection", m_ptBalance = 1. ); - declareProperty("RunMuonCombinedDebugger", m_runMuonCombinedDebugger = false ); + declareProperty("MuonCombinedTagTools", m_muonCombinedTagTools); } - MuonCombinedTool::~MuonCombinedTool() - {} - - //<<<<<< PUBLIC MEMBER FUNCTION DEFINITIONS >>>>>> - StatusCode MuonCombinedTool::initialize() { ATH_CHECK(m_printer.retrieve()); @@ -56,10 +42,6 @@ namespace MuonCombined { return StatusCode::SUCCESS; } - StatusCode MuonCombinedTool::finalize() { - return StatusCode::SUCCESS; - } - void MuonCombinedTool::combine( const MuonCandidateCollection& muonCandidates, const InDetCandidateCollection& inDetCandidates, std::vector<InDetCandidateToTagMap*> tagMaps, TrackCollection* combinedTracks, TrackCollection* METracks) const { diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.h index 951fd91cdd9..e873c9a56dd 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCombinedTool.h @@ -1,36 +1,31 @@ /* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONCOMBINEDBASETOOLS_MUONCOMBINEDTOOL_H #define MUONCOMBINEDBASETOOLS_MUONCOMBINEDTOOL_H +#include "MuonCombinedToolInterfaces/IMuonCombinedTool.h" #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ToolHandle.h" -#include "MuonCombinedToolInterfaces/IMuonCombinedTool.h" + #include "MuonCombinedEvent/MuonCandidateCollection.h" #include "MuonCombinedEvent/InDetCandidateCollection.h" #include "MuonCombinedEvent/InDetCandidateToTagMap.h" #include "MuonCombinedDebuggerTool.h" - -namespace Muon -{ - class MuonEDMPrinterTool; -} +#include "MuonCombinedToolInterfaces/IMuonCombinedTagTool.h" +#include "MuonRecHelperTools/MuonEDMPrinterTool.h" namespace MuonCombined { - class IMuonCombinedTagTool; - class MuonCombinedTool: public AthAlgTool, virtual public IMuonCombinedTool { public: MuonCombinedTool(const std::string& type, const std::string& name, const IInterface* parent); - ~MuonCombinedTool(void); // destructor + ~MuonCombinedTool()=default; StatusCode initialize(); - StatusCode finalize(); void combine(const MuonCandidateCollection& muonCandidates,const InDetCandidateCollection& inDetCandidates, std::vector<InDetCandidateToTagMap*> tagMaps, TrackCollection* combinedTracks, TrackCollection* METracks) const; @@ -41,14 +36,15 @@ namespace MuonCombined { std::vector<const InDetCandidate*>& associatedIdCandidates ) const ; // helpers, managers, tools - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; - ToolHandleArray<MuonCombined::IMuonCombinedTagTool> m_muonCombinedTagTools; - ToolHandle<MuonCombinedDebuggerTool> m_muonCombDebugger; - - double m_deltaEtaPreSelection; - double m_deltaPhiPreSelection; - double m_ptBalance; - bool m_runMuonCombinedDebugger; + ToolHandle<Muon::MuonEDMPrinterTool>m_printer {this, "Printer", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"}; + ToolHandleArray<MuonCombined::IMuonCombinedTagTool> m_muonCombinedTagTools; + ToolHandle<MuonCombinedDebuggerTool> m_muonCombDebugger {this, "MuonCombinedDebuggerTool", "MuonCombined::MuonCombinedDebuggerTool/MuonCombinedDebuggerTool"}; + + Gaudi::Property<double> m_deltaEtaPreSelection {this, "DeltaEtaPreSelection", 0.5}; + Gaudi::Property<double> m_deltaPhiPreSelection {this, "DeltaPhiPreSelection", 1}; + Gaudi::Property<double> m_ptBalance {this, "PtBalancePreSelection", 1}; + + Gaudi::Property<bool> m_runMuonCombinedDebugger {this, "RunMuonCombinedDebugger", false}; }; } // end of namespace diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.cxx index 061c58b0485..eb75a8761cd 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.cxx @@ -9,16 +9,16 @@ // (c) ATLAS Combined Muon software ////////////////////////////////////////////////////////////////////////////// +#include "MuonCreatorTool.h" + #include "MuonCombinedEvent/InDetCandidate.h" #include "MuonCombinedEvent/MuonCandidate.h" -#include "MuonCreatorTool.h" #include "SortInDetCandidates.h" #include "MuonCombinedEvent/StacoTag.h" #include "MuonCombinedEvent/CombinedFitTag.h" #include "MuonCombinedEvent/SegmentTag.h" #include "MuonCombinedEvent/CaloTag.h" #include "MuonCombinedEvent/MuGirlLowBetaTag.h" - #include "MuonSegment/MuonSegment.h" #include "TrkTrack/Track.h" #include "TrkTrackSummary/TrackSummary.h" @@ -30,79 +30,25 @@ #include "TrkMaterialOnTrack/MaterialEffectsOnTrack.h" #include "TrkMaterialOnTrack/EnergyLoss.h" #include "TrkMaterialOnTrack/ScatteringAngles.h" - #include "TrkSegment/SegmentCollection.h" #include "xAODMuon/MuonSegmentContainer.h" #include "xAODMuon/MuonSegment.h" #include "xAODMuonCnv/IMuonSegmentConverterTool.h" - #include "muonEvent/CaloEnergy.h" #include "FourMomUtils/P4Helpers.h" #include "xAODCaloEvent/CaloCluster.h" #include "TrackToCalo/CaloCellCollector.h" - #include "MuonReadoutGeometry/RpcReadoutElement.h" #include "MuonRIO_OnTrack/RpcClusterOnTrack.h" #include "MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrack.h" - #include "MuidEvent/FieldIntegral.h" - #include "StoreGate/ReadCondHandle.h" namespace MuonCombined { - MuonCreatorTool::MuonCreatorTool (const std::string& type, const std::string& name, const IInterface* parent) - : AthAlgTool(type, name, parent), - m_makeMSPreExtrapLink(false), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"), - m_muonPrinter("Rec::MuonPrintingTool/MuonPrintingTool"), - m_caloExtTool("Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool", this), - m_particleCreator("Trk::TrackParticleCreatorTool/MuonCombinedTrackParticleCreator"), - m_ambiguityProcessor("Trk::TrackSelectionProcessorTool/MuonAmbiProcessor"), - m_propagator("Trk::RungeKuttaPropagator/AtlasRungeKuttaPropagator"), - m_muonDressingTool("MuonCombined::MuonDressingTool/MuonDressingTool"), - m_momentumBalanceTool("Rec::MuonMomentumBalanceSignificanceTool/MuonMomentumBalanceSignificanceTool"), - m_scatteringAngleTool("Rec::MuonScatteringAngleSignificanceTool/MuonScatteringAngleSignificanceTool"), - m_selectorTool("CP::MuonSelectionTool/MuonSelectionTool"), - m_muonSegmentConverterTool("Muon::MuonSegmentConverterTool/MuonSegmentConverterTool"), - m_meanMDTdADCTool("Rec::MuonMeanMDTdADCFillerTool/MuonMeanMDTdADCFillerTool"), - m_caloMaterialProvider("Trk::TrkMaterialProviderTool/TrkMaterialProviderTool", this), - m_trackSegmentAssociationTool("Muon::TrackSegmentAssociationTool/TrackSegmentAssociationTool"), - m_trackQuery("Rec::MuonTrackQuery/MuonTrackQuery"), - m_trackSummaryTool("MuonTrackSummaryTool") - - { + MuonCreatorTool::MuonCreatorTool (const std::string& type, const std::string& name, const IInterface* parent) : + AthAlgTool(type, name, parent) { declareInterface<IMuonCreatorTool>(this); - declareProperty("MakeTrackAtMSLink",m_makeMSPreExtrapLink=false); - declareProperty("Printer",m_printer ); - declareProperty("ParticleCaloExtensionTool", m_caloExtTool); - declareProperty("MuonPrinter",m_muonPrinter ); - declareProperty("TrackParticleCreator",m_particleCreator ); - declareProperty("AmbiguityProcessor",m_ambiguityProcessor ); - declareProperty("Propagator",m_propagator ); - declareProperty("MuonDressingTool",m_muonDressingTool ); - declareProperty("MomentumBalanceTool",m_momentumBalanceTool); - declareProperty("ScatteringAngleTool",m_scatteringAngleTool); - declareProperty("MuonSelectionTool", m_selectorTool); - declareProperty("MeanMDTdADCTool",m_meanMDTdADCTool); - declareProperty("TrackSegmentAssociationTool",m_trackSegmentAssociationTool); - declareProperty("BuildStauContainer",m_buildStauContainer=false); - declareProperty("FillEnergyLossFromTrack",m_fillEnergyLossFromTrack=true); - declareProperty("FillAlignmentEffectsOnTrack",m_fillAlignmentEffectsOnTrack=true); - declareProperty("FillExtraELossInfo", m_fillExtraELossInfo=true); - declareProperty("PrintSummary", m_printSummary=false); - declareProperty("UseUpdatedExtrapolatedTrack", m_useUpdatedExtrapolatedTrack = true ); - //Default data source for the calocells - declareProperty("SigmaCaloNoiseCut", m_sigmaCaloNoiseCut=3.4); - declareProperty("CaloMaterialProvider", m_caloMaterialProvider); - declareProperty("FillTimingInformation", m_fillTimingInformation = true ); - declareProperty("FillTimingInformationOnMuon", m_fillTimingInformationOnMuon = false ); - declareProperty("AssociateSegmentsToLowBetaMuons",m_segLowBeta = false); - declareProperty("UseCaloCells",m_useCaloCells = true); - declareProperty("MakeSAMuons", m_doSA=false); - declareProperty("TrackQuery", m_trackQuery); - declareProperty("TrackSummaryTool", m_trackSummaryTool); - } StatusCode MuonCreatorTool::initialize() { diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.h index e6237f3ab25..2fca9f99a21 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCreatorTool.h @@ -5,13 +5,13 @@ #ifndef MUONCOMBINEDBASETOOLS_MUONCREATORTOOL_H #define MUONCOMBINEDBASETOOLS_MUONCREATORTOOL_H +#include "MuonCombinedToolInterfaces/IMuonCreatorTool.h" #include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ServiceHandle.h" #include "GaudiKernel/ToolHandle.h" -#include "MuonCombinedToolInterfaces/IMuonCreatorTool.h" + #include "MuonIdHelpers/IMuonIdHelperSvc.h" #include "MuonCombinedEvent/MuonCandidateCollection.h" - #include "MuonCombinedEvent/InDetCandidateCollection.h" #include "xAODMuon/MuonContainer.h" #include "xAODMuon/Muon.h" @@ -39,28 +39,17 @@ #include "TrkExInterfaces/IPropagator.h" #include "TrkToolInterfaces/ITrackParticleCreatorTool.h" #include "TrkToolInterfaces/ITrackAmbiguityProcessorTool.h" - #include "TrackSegmentAssociationTool.h" - #include "TrkSegment/Segment.h" #include "MuonSegment/MuonSegment.h" #include "TrackToCalo/CaloCellCollector.h" #include "CaloEvent/CaloCellContainer.h" #include "CaloConditions/CaloNoise.h" - #include "StoreGate/ReadHandleKey.h" #include "StoreGate/ReadCondHandleKey.h" - #include "TrkToolInterfaces/IExtendedTrackSummaryTool.h" #include "TrkTrackSummary/MuonTrackSummary.h" -namespace Muon { - class MuonSegment; -} -namespace Trk -{ - class IExtendedTrackSummaryTool; -} namespace MuonCombined { class StacoTag; class CombinedFitTag; @@ -156,70 +145,45 @@ namespace MuonCombined { void addSegmentsOnTrack( xAOD::Muon& muon ) const; void addAlignmentEffectsOnTrack( xAOD::TrackParticleContainer* trkCont ) const; - /// flag to decide whether or not to make link to MS track before extrapolation - bool m_makeMSPreExtrapLink; - - /// flag to decide whether to build stau or not - bool m_buildStauContainer; - - /// Decide whether to try to extract the calo energy loss from tracks - bool m_fillEnergyLossFromTrack; - - /// Decide whether to add alignment effects on track to the muon (available for CB and SA tracks) - bool m_fillAlignmentEffectsOnTrack; - - /// Can enabled this for debugging - will add extra information not for production - bool m_fillExtraELossInfo; - - /// configure whether to use the updated extrapolated track for a combined fit or not - bool m_useUpdatedExtrapolatedTrack; - - /// Number of sigma for calo cell noise cut - float m_sigmaCaloNoiseCut; - - /// flag to print muon edm - bool m_printSummary; - - /// enable filling of timing information - bool m_fillTimingInformation; - bool m_fillTimingInformationOnMuon; - - //associate segments to MuGirlLowBeta muons; - bool m_segLowBeta; - - //use calo cells - bool m_useCaloCells; - - //flag for SA muons - bool m_doSA; - - /// copy truth links from primary track particle (or put dummy link if this is missing) - //bool m_fillMuonTruthLinks; - - // helpers, managers, tools ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; - ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", - "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", - "Handle to the service providing the IMuonEDMHelperSvc interface" }; - ToolHandle<Rec::IMuonPrintingTool> m_muonPrinter; - ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtTool; - ToolHandle<Trk::ITrackParticleCreatorTool> m_particleCreator; - ToolHandle<Trk::ITrackAmbiguityProcessorTool> m_ambiguityProcessor; - ToolHandle<Trk::IPropagator> m_propagator; - ToolHandle<xAOD::IMuonDressingTool> m_muonDressingTool; - ToolHandle<Rec::IMuonMomentumBalanceSignificance> m_momentumBalanceTool; - ToolHandle<Rec::IMuonScatteringAngleSignificance> m_scatteringAngleTool; - ToolHandle<CP::IMuonSelectionTool> m_selectorTool; - ToolHandle<xAODMaker::IMuonSegmentConverterTool> m_muonSegmentConverterTool; - ToolHandle<Rec::IMuonMeanMDTdADCFiller> m_meanMDTdADCTool; - ToolHandle<Trk::ITrkMaterialProviderTool> m_caloMaterialProvider; - ToolHandle<Muon::TrackSegmentAssociationTool> m_trackSegmentAssociationTool; - ToolHandle<Rec::IMuonTrackQuery> m_trackQuery; - ToolHandle<Trk::IExtendedTrackSummaryTool> m_trackSummaryTool; - Rec::CaloCellCollector m_cellCollector; - SG::ReadHandleKey<CaloCellContainer> m_cellContainerName{this,"CaloCellContainer","AllCalo","calo cells"}; - SG::ReadCondHandleKey<CaloNoise> m_caloNoiseKey{this,"CaloNoise","","CaloNoise object to use, or blank."}; + ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", "Handle to the service providing the IMuonEDMHelperSvc interface" }; + + ToolHandle<Muon::MuonEDMPrinterTool> m_printer {this, "Printer", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"}; + ToolHandle<Rec::IMuonPrintingTool> m_muonPrinter {this, "MuonPrinter", "Rec::MuonPrintingTool/MuonPrintingTool"}; + ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtTool {this, "ParticleCaloExtensionTool", "Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool"}; + ToolHandle<Trk::ITrackParticleCreatorTool> m_particleCreator {this, "TrackParticleCreator", "Trk::TrackParticleCreatorTool/MuonCombinedTrackParticleCreator"}; + ToolHandle<Trk::ITrackAmbiguityProcessorTool> m_ambiguityProcessor {this, "AmbiguityProcessor", "Trk::TrackSelectionProcessorTool/MuonAmbiProcessor"}; + ToolHandle<Trk::IPropagator> m_propagator {this, "Propagator", "Trk::RungeKuttaPropagator/AtlasRungeKuttaPropagator"}; + ToolHandle<xAOD::IMuonDressingTool> m_muonDressingTool {this, "MuonDressingTool", "MuonCombined::MuonDressingTool/MuonDressingTool"}; + ToolHandle<Rec::IMuonMomentumBalanceSignificance> m_momentumBalanceTool {this, "MomentumBalanceTool", "Rec::MuonMomentumBalanceSignificanceTool/MuonMomentumBalanceSignificanceTool"}; + ToolHandle<Rec::IMuonScatteringAngleSignificance> m_scatteringAngleTool {this, "ScatteringAngleTool", "Rec::MuonScatteringAngleSignificanceTool/MuonScatteringAngleSignificanceTool"}; + ToolHandle<CP::IMuonSelectionTool> m_selectorTool {this, "MuonSelectionTool", "CP::MuonSelectionTool/MuonSelectionTool"}; + ToolHandle<xAODMaker::IMuonSegmentConverterTool> m_muonSegmentConverterTool {this, "MuonSegmentConverterTool", "Muon::MuonSegmentConverterTool/MuonSegmentConverterTool"}; + ToolHandle<Rec::IMuonMeanMDTdADCFiller> m_meanMDTdADCTool {this, "MeanMDTdADCTool", "Rec::MuonMeanMDTdADCFillerTool/MuonMeanMDTdADCFillerTool"}; + ToolHandle<Trk::ITrkMaterialProviderTool> m_caloMaterialProvider {this, "CaloMaterialProvider", "Trk::TrkMaterialProviderTool/TrkMaterialProviderTool"}; + ToolHandle<Muon::TrackSegmentAssociationTool> m_trackSegmentAssociationTool {this, "TrackSegmentAssociationTool", "Muon::TrackSegmentAssociationTool/TrackSegmentAssociationTool"}; + ToolHandle<Rec::IMuonTrackQuery> m_trackQuery {this, "TrackQuery", "Rec::MuonTrackQuery/MuonTrackQuery"}; + ToolHandle<Trk::IExtendedTrackSummaryTool> m_trackSummaryTool {this, "TrackSummaryTool", "MuonTrackSummaryTool"}; + + Rec::CaloCellCollector m_cellCollector; + + SG::ReadHandleKey<CaloCellContainer> m_cellContainerName{this,"CaloCellContainer","AllCalo","calo cells"}; + SG::ReadCondHandleKey<CaloNoise> m_caloNoiseKey{this,"CaloNoise","","CaloNoise object to use, or blank."}; + + Gaudi::Property<bool> m_makeMSPreExtrapLink {this, "MakeTrackAtMSLink", false, "flag to decide whether or not to make link to MS track before extrapolation"}; + Gaudi::Property<bool> m_buildStauContainer {this, "BuildStauContainer", false, "flag to decide whether to build stau or not"}; + Gaudi::Property<bool> m_fillEnergyLossFromTrack {this, "FillEnergyLossFromTrack", true, "Decide whether to try to extract the calo energy loss from tracks "}; + Gaudi::Property<bool> m_fillAlignmentEffectsOnTrack {this, "FillAlignmentEffectsOnTrack", true, "Decide whether to add alignment effects on track to the muon (available for CB and SA tracks)"}; + Gaudi::Property<bool> m_fillExtraELossInfo {this, "FillExtraELossInfo", true, "Can enabled this for debugging - will add extra information not for production"}; + Gaudi::Property<bool> m_printSummary {this, "PrintSummary", false, "flag to print muon edm"}; + Gaudi::Property<bool> m_useUpdatedExtrapolatedTrack {this, "UseUpdatedExtrapolatedTrack", true, "configure whether to use the updated extrapolated track for a combined fit or not"}; + Gaudi::Property<bool> m_fillTimingInformation {this, "FillTimingInformation", true, "enable filling of timing information"}; + Gaudi::Property<bool> m_fillTimingInformationOnMuon {this, "FillTimingInformationOnMuon", false, "enable filling of timing information"}; + Gaudi::Property<bool> m_segLowBeta {this, "AssociateSegmentsToLowBetaMuons", false, "associate segments to MuGirlLowBeta muons"}; + Gaudi::Property<bool> m_useCaloCells {this, "UseCaloCells", true}; + Gaudi::Property<bool> m_doSA {this, "MakeSAMuons", false}; + + Gaudi::Property<float> m_sigmaCaloNoiseCut {this, "SigmaCaloNoiseCut", 3.4}; }; inline void MuonCreatorTool::setP4( xAOD::Muon& muon, const xAOD::TrackParticle& tp ) const { diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonDressingTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonDressingTool.cxx index 1559d252bd0..8305ed20e16 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonDressingTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonDressingTool.cxx @@ -10,11 +10,9 @@ namespace MuonCombined { MuonDressingTool::MuonDressingTool (const std::string& type, const std::string& name, const IInterface* parent) : - AthAlgTool(type, name, parent), - m_hitSummaryTool("Muon::MuonHitSummaryTool/MuonHitSummaryTool") + AthAlgTool(type, name, parent) { declareInterface<xAOD::IMuonDressingTool>(this); - declareProperty("MuonHitSummaryTool", m_hitSummaryTool ); } StatusCode MuonDressingTool::initialize() { diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonDressingTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonDressingTool.h index 89dfd4c6de2..057ed7f66ce 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonDressingTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonDressingTool.h @@ -29,7 +29,7 @@ namespace MuonCombined { void addMuonHitSummary( xAOD::Muon& muon, const Trk::TrackSummary* summary = 0 ) const ; private: - ToolHandle<Muon::IMuonHitSummaryTool> m_hitSummaryTool; + ToolHandle<Muon::IMuonHitSummaryTool> m_hitSummaryTool {this, "MuonHitSummaryTool", "Muon::MuonHitSummaryTool/MuonHitSummaryTool"}; ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; }; diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonSegmentTagTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonSegmentTagTool.cxx index 5d9f4211223..cac554b54d0 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonSegmentTagTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonSegmentTagTool.cxx @@ -12,53 +12,33 @@ #include "MuonSegmentTagTool.h" - #include "MuonCombinedToolInterfaces/IMuonCombinedTagTool.h" #include "MuonCombinedEvent/InDetCandidate.h" #include "MuonCombinedEvent/MuonCandidate.h" #include "MuonCombinedEvent/SegmentTag.h" - #include "TrkParameters/TrackParameters.h" #include "TrkTrack/Track.h" #include "TrkTrackSummary/TrackSummary.h" #include "TrkEventPrimitives/PropDirection.h" #include "MuonSegment/MuonSegment.h" - #include "MSSurfaces.h" #include "MuonCombinedEvent/MuonSegmentInfo.h" #include "MuonCombinedEvent/SegmentTag.h" #include "xAODMuon/MuonSegmentContainer.h" #include "xAODMuon/MuonSegment.h" #include "AthLinks/ElementLink.h" - #include "xAODMuon/MuonSegmentContainer.h" #include "xAODMuon/MuonSegment.h" - #include "TrkCaloExtension/CaloExtension.h" #include <iomanip> #include <vector> - #include <stdio.h> namespace MuonCombined { MuonSegmentTagTool::MuonSegmentTagTool (const std::string& type, const std::string& name, const IInterface* parent) : - AthAlgTool(type, name, parent), - m_CutTheta(999.), - m_CutPhi(999.), - m_HitInfoFor2ndCoord(0.), - m_doSegmentsFilter(true), - m_doTable(false), - m_doBidirectional(false), - m_doPtDependentPullCut(true), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"), - p_MuTagMatchingTool("MuTagMatchingTool/MuTagMatchingTool") , - p_MuTagAmbiguitySolverTool("MuTagAmbiguitySolverTool/MuTagAmbiguitySolverTool") , - m_caloExtensionTool("Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool", this), - m_segmentSelector("Muon::MuonSegmentSelectionTool/MuonSegmentSelectionTool"), - m_hitSummaryTool("Muon::MuonSegmentHitSummaryTool/MuonSegmentHitSummaryTool"), - m_surfaces(0), + AthAlgTool(type, name, parent), m_ntotTracks(0), m_nangleMatch(0), m_npmatch(0), @@ -66,27 +46,6 @@ namespace MuonCombined { m_naccepted(0) { declareInterface<IMuonSegmentTagTool>(this); - declareProperty("CutTheta" , m_CutTheta = 3.); - declareProperty("CutPhi" , m_CutPhi = 3.); - //Option for determination of segment 2nd coordinate measurement - declareProperty("HitInfoFor2ndCoord" , m_HitInfoFor2ndCoord = 1); - declareProperty("DoSegmentsFilter" , m_doSegmentsFilter = true); - declareProperty("MuTagMatchingTool" , p_MuTagMatchingTool); - declareProperty("MuTagAmbiguitySolverTool" , p_MuTagAmbiguitySolverTool); - declareProperty("ParticleCaloExtensionTool" , m_caloExtensionTool); - declareProperty("DoOverviewTable" , m_doTable = false); - declareProperty("DoBidirectionalExtrapolation" , m_doBidirectional = false); - declareProperty("DoPtDependentPullCut" , m_doPtDependentPullCut = false); - declareProperty("Printer" , m_printer); - declareProperty("RemoveLowPLowFieldRegion" , m_removeLowPLowFieldRegion = false); // remove tracks with momenta below 6 GeV in eta 1.4-17 region (low p and low field) - declareProperty("UseIDTrackSegmentPreSelect" , m_useSegmentPreselection = true); - declareProperty("SegmentQualityCut" , m_segmentQualityCut = 1); - declareProperty("nmdtHits" , m_nmdtHits = 4); - declareProperty("nmdtHoles" , m_nmdtHoles = 3); - declareProperty("nmdtHitsML" , m_nmdtHitsML = 2); - declareProperty("TriggerHitCut" , m_triggerHitCut = true); - declareProperty("MakeMuons" , m_makeMuons = false); - declareProperty("IgnoreSiAssociatedCandidates" , m_ignoreSiAssocated = true); } StatusCode MuonSegmentTagTool::initialize() { @@ -114,14 +73,12 @@ namespace MuonCombined { return StatusCode::FAILURE; } - m_surfaces = new MSSurfaces(); m_doTable= true; return StatusCode::SUCCESS; } StatusCode MuonSegmentTagTool::finalize() { - delete m_surfaces; ATH_MSG_INFO("Total number of considered ID tracks " << m_ntotTracks); ATH_MSG_INFO("Total number of ID tracks with angular match " << m_nangleMatch); ATH_MSG_INFO("Total number of preselected ID tracks " << m_npmatch); @@ -162,6 +119,8 @@ namespace MuonCombined { void MuonSegmentTagTool::tag( const InDetCandidateCollection& inDetCandidates, const std::vector<const Muon::MuonSegment*>& segments, SegmentMap* segmentToxAODSegmentMap, InDetCandidateToTagMap* tagMap ) const { + MSSurfaces surfaces = MSSurfaces(); + std::vector<const Muon::MuonSegment*> FilteredSegmentCollection; if (m_doSegmentsFilter) { @@ -339,9 +298,6 @@ namespace MuonCombined { if( hasMatch ) ++m_npmatch; } - - // std::vector< const MuTaggedSegment* > muTagSegVec; - std::vector< MuonCombined::MuonSegmentInfo > segmentsInfo; int multiply(1); if( m_doBidirectional ) multiply=2; @@ -388,7 +344,6 @@ namespace MuonCombined { const Trk::TrackParameters* atSurface = 0; const Trk::TrackParameters* nextSurface = 0; std::vector< bool > hasSurf(12, false); - for( unsigned int surface_counter = 0; surface_counter<12 ; ++surface_counter, ++extrapolation_counter ){ ATH_MSG_DEBUG( "Surface " << surface_counter ); @@ -398,8 +353,7 @@ namespace MuonCombined { if( m_doTable ) didExtrapolate[extrapolation_counter] = "X" ; std::vector<std::string> segVsSurf( FilteredSegmentCollection.size() , "xxx" ); - // int ndof(0); - const Trk::Surface* surface = m_surfaces->getSurface( surface_counter ) ; + const Trk::Surface* surface = surfaces.getSurface( surface_counter ) ; switch (surface_counter) { @@ -548,8 +502,6 @@ namespace MuonCombined { } if(m_doTable) { - // std::string threeLetters( p_OwnEDMHelper->SegmentAssociatedStationName( **itSeg ) ); - // segStation[segmentCount] = threeLetters + p_OwnEDMHelper->EtaStationString( **itSeg) ; segStation[segmentCount] = " "; } @@ -559,11 +511,11 @@ namespace MuonCombined { if( !m_doTable ){ isMatched = p_MuTagMatchingTool->match( atSurface, *itSeg, - m_surfaces->stationType(surface_counter) ); + surfaces.stationType(surface_counter) ); } else { if( !p_MuTagMatchingTool->surfaceMatch( atSurface, *itSeg, - m_surfaces->stationType(surface_counter) ) ) { + surfaces.stationType(surface_counter) ) ) { segVsSurf[segmentCount] = "surface" ; continue; } @@ -573,12 +525,12 @@ namespace MuonCombined { if( !p_MuTagMatchingTool->phiMatch( atSurface, *itSeg, - m_surfaces->stationType(surface_counter) ) ) { + surfaces.stationType(surface_counter) ) ) { segVsSurf[segmentCount] = "RghPhi" ; continue ; } if( trkEtaInfo ){ - if( (m_surfaces->stationType(surface_counter)).find('B') != std::string::npos ) { + if( (surfaces.stationType(surface_counter)).find('B') != std::string::npos ) { if( !p_MuTagMatchingTool->thetaMatch( atSurface, *itSeg ) ){ segVsSurf[segmentCount] = "RghTheta" ; continue; @@ -612,11 +564,6 @@ namespace MuonCombined { MuonCombined::MuonSegmentInfo info = p_MuTagMatchingTool->muTagSegmentInfo(track,*itSeg,atSegSurface) ; if(segmentToxAODSegmentMap) info.link = (*segmentToxAODSegmentMap)[*itSeg]; - // ATH_MSG_DEBUG( " MuTagSegmentInfo matchPosition pullY " << info.pullY << " pullX " << info.pullX << " resY " << info.resY << " resX " << info.resX << " exErrorY " << info.exErrorY << " ex errorX " << info.exErrorX << " seg errorY " << info.segErrorY << " seg errorX " << info.segErrorX ); - // ATH_MSG_DEBUG( " MuTagSegmentInfo matchDirection pullYZ " << info.pullYZ << " pullXZ " << info.pullXZ << " resYZ " << info.dangleYZ << " resXZ " << info.dangleXZ << " exErrorYZ " << info.exErrorYZ << " ex errorXZ " << info.exErrorXZ << " seg errorYZ " << info.segErrorYZ << " seg errorXZ " << info.segErrorXZ ); - // ATH_MSG_DEBUG( " MuTagSegmentInfo matchDistance hasPhi " << info.hasPhi << " resX " << info.resX << " dangleXZ " << info.dangleXZ << " maximumResidualAlongTube " << info.maximumResidualAlongTube << " resY " << info.resY << " dangleYZ " << info.dangleYZ ); - // ATH_MSG_DEBUG( " MuTagSegmentInfo matchCombined Pull hasPhi " << info.hasPhi << " minimumPullPhi " << info.minimumPullPhi << " pullChamber " << info.pullChamber << " pullCY " << info.pullCY ); - isMatched = p_MuTagMatchingTool->matchSegmentPosition( &info,trkEtaInfo); @@ -654,10 +601,6 @@ namespace MuonCombined { } isMatched = p_MuTagMatchingTool->matchCombinedPull( &info); - // if(!isMatchedNew) { - // ATH_MSG_DEBUG( " Segment rejected by combined pull cut " ); - // } - if( !isMatched ){ if( m_doTable ){ segVsSurf[segmentCount] = "cpull" ; @@ -714,12 +657,11 @@ namespace MuonCombined { if( m_doTable ){ const Trk::Perigee* Perigee = track->perigeeParameters(); - // const Trk::Perigee* idperigee = dynamic_cast< const Trk::Perigee* >(perigee); ATH_MSG_DEBUG( "Dump Table for TP " << std::setw(5) << trackCount ); ATH_MSG_DEBUG( "storing track to ntuple : " << Perigee->parameters()[Trk::d0] << ", " <<Perigee->parameters()[Trk::z0] << Perigee->parameters()[Trk::phi] << ", " <<Perigee->parameters()[Trk::theta] << ", " <<Perigee->parameters()[Trk::qOverP] ); - printTable( didExtrapolate, segStation, trkToSegment ); + printTable( didExtrapolate, segStation, trkToSegment, surfaces); } if( !matchedSegment ) { @@ -786,7 +728,6 @@ namespace MuonCombined { if(match) { ATH_MSG_DEBUG( "make Segment Tag object for " << m_printer->print(*track) << " nr segments " << segmentsInfoTag.size() ); SegmentTag* tag = new SegmentTag(segmentsInfoTag); - // FIXME const-cast changes object passed in as const tagMap->addEntry(tagCandidate,tag); } } @@ -797,7 +738,7 @@ namespace MuonCombined { void MuonSegmentTagTool::printTable( std::vector< std::string > didEx , std::vector< std::string > segStation , - std::vector< std::vector<std::string> > segToSurf ) const { + std::vector< std::vector<std::string> > segToSurf, MSSurfaces &surfaces ) const { ATH_MSG_DEBUG( std::setw(6) << "" << "EX? (o: no extrap, X: extrap failed, V: extrap OK)" ); @@ -812,7 +753,7 @@ namespace MuonCombined { if (m_doBidirectional) signstr = "+"; for( unsigned int counter = 0; counter<12 ; ++counter ){ - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << std::setw(5) << m_surfaces->stationType(counter) << signstr << std::setw(3) << didEx[extrapolation_counter]; + if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << std::setw(5) << surfaces.stationType(counter) << signstr << std::setw(3) << didEx[extrapolation_counter]; for( unsigned int segment_counter = 0; segment_counter < segStation.size() ; ++segment_counter ){ if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << std::setw(10) << (segToSurf[extrapolation_counter])[segment_counter]; } //end loop segments @@ -823,7 +764,7 @@ namespace MuonCombined { if(m_doBidirectional ){ signstr = "-"; for( unsigned int counter = 0; counter<12 ; ++counter ){ - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << std::setw(5) << m_surfaces->stationType(counter) << signstr << std::setw(3) << didEx[extrapolation_counter]; + if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << std::setw(5) << surfaces.stationType(counter) << signstr << std::setw(3) << didEx[extrapolation_counter]; for( unsigned int segment_counter = 0; segment_counter < segStation.size() ; ++segment_counter ){ if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << std::setw(10) << (segToSurf[extrapolation_counter])[segment_counter]; } //end loop segments diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonSegmentTagTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonSegmentTagTool.h index 61068a058cf..42d464b7896 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonSegmentTagTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonSegmentTagTool.h @@ -54,42 +54,38 @@ namespace MuonCombined { private: - void printTable( std::vector< std::string > didEx , - std::vector< std::string > segStation , - std::vector< std::vector<std::string> > segToSurf ) const; //!< method for extra DEBUG - - float m_CutTheta ;//!< Track/Segment pairing - float m_CutPhi ;//!< Track/Segment pairing - float m_HitInfoFor2ndCoord ;//!< Track/Segment pairing - bool m_doSegmentsFilter; //!< flag to switch segment filtering on/off (for trigger) - bool m_doTable; - bool m_doBidirectional ; //!< flag to toggle to bidirectional extrapolation. - bool m_doPtDependentPullCut; //!< flag to enable the pT-dependent pull cut - bool m_removeLowPLowFieldRegion; //! boolean to remove track with p < 6 GeV in eta 1.4-17 region - bool m_useSegmentPreselection; // use loose ID / segment matching to avoid extrapolations - int m_segmentQualityCut; // minimum segment quality - unsigned int m_nmdtHits; - unsigned int m_nmdtHoles; - unsigned int m_nmdtHitsML; - bool m_triggerHitCut; // apply Trigger hit cut if trigger hits are expected - bool m_makeMuons; // switch off the making of muons (temporarily) - bool m_ignoreSiAssocated; //!< If true, ignore InDetCandidates which are SiAssociated - - // helpers, managers, tools - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; - - - ToolHandle< IMuTagMatchingTool > p_MuTagMatchingTool ; //!< Pointer to MuTagMatching Tool - ToolHandle< IMuTagAmbiguitySolverTool> p_MuTagAmbiguitySolverTool ; //!< Pointer to MuTagAmbiguitySolverTool - ToolHandle <Trk::IParticleCaloExtensionTool> m_caloExtensionTool; //!< Tool to make the step-wise extrapolation + void printTable(std::vector<std::string> didEx, std::vector<std::string> segStation, std::vector<std::vector<std::string>> segToSurf, MSSurfaces &surfaces) const; //!< method for extra DEBUG + ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; - ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", - "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", - "Handle to the service providing the IMuonEDMHelperSvc interface" }; //!< Pointer to IPropagator - ToolHandle< Muon::IMuonSegmentSelectionTool> m_segmentSelector; - ToolHandle<Muon::IMuonSegmentHitSummaryTool> m_hitSummaryTool; + ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", "Handle to the service providing the IMuonEDMHelperSvc interface" }; + + ToolHandle<Muon::MuonEDMPrinterTool> m_printer {this, "Printer", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"}; + ToolHandle<IMuTagMatchingTool> p_MuTagMatchingTool {this, "MuTagMatchingTool", "MuTagMatchingTool/MuTagMatchingTool"}; + ToolHandle<IMuTagAmbiguitySolverTool> p_MuTagAmbiguitySolverTool {this, "MuTagAmbiguitySolverTool", "MuTagAmbiguitySolverTool/MuTagAmbiguitySolverTool"}; + ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtensionTool {this, "ParticleCaloExtensionTool", "Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool", "Tool to make the step-wise extrapolation"}; + ToolHandle<Muon::IMuonSegmentSelectionTool> m_segmentSelector {this, "MuonSegmentSelectionTool", "Muon::MuonSegmentSelectionTool/MuonSegmentSelectionTool"}; + ToolHandle<Muon::IMuonSegmentHitSummaryTool> m_hitSummaryTool {this, "MuonSegmentHitSummaryTool", "Muon::MuonSegmentHitSummaryTool/MuonSegmentHitSummaryTool"}; + + Gaudi::Property<float> m_CutTheta {this, "CutTheta", 3}; + Gaudi::Property<float> m_CutPhi {this, "CutPhi", 3}; + Gaudi::Property<float> m_HitInfoFor2ndCoord {this, "HitInfoFor2ndCoord", 1, "Option for determination of segment 2nd coordinate measurement"}; + + Gaudi::Property<bool> m_doSegmentsFilter {this, "DoSegmentsFilter", true, "flag to switch segment filtering on/off (for trigger)"}; + Gaudi::Property<bool> m_doTable {this, "DoOverviewTable", false}; + Gaudi::Property<bool> m_doBidirectional {this, "DoBidirectionalExtrapolation", false, "flag to toggle to bidirectional extrapolation"}; + Gaudi::Property<bool> m_doPtDependentPullCut {this, "DoPtDependentPullCut", false, "flag to enable the pT-dependent pull cut"}; + Gaudi::Property<bool> m_removeLowPLowFieldRegion {this, "RemoveLowPLowFieldRegion", false, "remove track with p < 6 GeV in eta 1.4-17 region (low p and low field)"}; + Gaudi::Property<bool> m_useSegmentPreselection {this, "UseIDTrackSegmentPreSelect", true, "use loose ID / segment matching to avoid extrapolations"}; + + Gaudi::Property<int> m_segmentQualityCut {this, "SegmentQualityCut", 1, "minimum segment quality"}; + Gaudi::Property<unsigned int> m_nmdtHits {this, "nmdtHits", 4}; + Gaudi::Property<unsigned int> m_nmdtHoles {this, "nmdtHoles", 3}; + Gaudi::Property<unsigned int> m_nmdtHitsML {this, "nmdtHitsML", 2}; + + Gaudi::Property<bool> m_triggerHitCut {this, "TriggerHitCut", true, "apply Trigger hit cut if trigger hits are expected"}; + Gaudi::Property<bool> m_makeMuons {this, "MakeMuons", false, "switch off the making of muons (temporarily)"}; + Gaudi::Property<bool> m_ignoreSiAssocated {this, "IgnoreSiAssociatedCandidates", true, "If true, ignore InDetCandidates which are SiAssociated"}; - MSSurfaces* m_surfaces; //!< Pointer to a set of abstract surfaces describing MuonSpectrometer levels. mutable std::atomic_uint m_ntotTracks; mutable std::atomic_uint m_nangleMatch; mutable std::atomic_uint m_npmatch; diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/TrackSegmentAssociationTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/TrackSegmentAssociationTool.cxx index 3220749f438..b7caac4d9d7 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/TrackSegmentAssociationTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/TrackSegmentAssociationTool.cxx @@ -1,39 +1,22 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include "TrackSegmentAssociationTool.h" #include "TrkTrack/Track.h" #include "TrkSegment/SegmentCollection.h" #include "MuonSegment/MuonSegment.h" -#include "MuonRecHelperTools/IMuonEDMHelperSvc.h" #include "MuonRIO_OnTrack/MdtDriftCircleOnTrack.h" #include "MuonSegmentMakerUtils/MuonSegmentKey.h" #include "MuonSegmentMakerUtils/CompareMuonSegmentKeys.h" namespace Muon { - //Constructor - - TrackSegmentAssociationTool::TrackSegmentAssociationTool(const std::string& t, - const std::string& n, - const IInterface* p): - AthAlgTool(t,n,p), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool") - { - - declareInterface<TrackSegmentAssociationTool>(this); - // declareInterface<ITrackSegmentAssociationTool>(this); - - declareProperty("MuonEDMPrinterTool",m_printer); + TrackSegmentAssociationTool::TrackSegmentAssociationTool(const std::string& t, const std::string& n, const IInterface* p) : + AthAlgTool(t,n,p) { + declareInterface<TrackSegmentAssociationTool>(this); } - //Destructor - - TrackSegmentAssociationTool::~TrackSegmentAssociationTool() {} - - //Initialization - StatusCode TrackSegmentAssociationTool::initialize() { ATH_CHECK(m_edmHelperSvc.retrieve()); ATH_CHECK(m_printer.retrieve()); @@ -41,13 +24,6 @@ namespace Muon { return StatusCode::SUCCESS; } - //Finalization - - StatusCode TrackSegmentAssociationTool::finalize() { - return StatusCode::SUCCESS; - } - - const xAOD::MuonSegmentContainer* TrackSegmentAssociationTool::retrieveSegments( std::string location ) const { if( !evtStore()->contains<xAOD::MuonSegmentContainer>(location) ) { diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/TrackSegmentAssociationTool.h b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/TrackSegmentAssociationTool.h index 0c737652580..68879dc3ec6 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/TrackSegmentAssociationTool.h +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/TrackSegmentAssociationTool.h @@ -1,13 +1,14 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef TRACKSEGMENTASSOCIATIONTOOL_H #define TRACKSEGMENTASSOCIATIONTOOL_H +#include "AthenaBaseComps/AthAlgTool.h" #include "GaudiKernel/ServiceHandle.h" #include "GaudiKernel/ToolHandle.h" -#include "AthenaBaseComps/AthAlgTool.h" + #include "TrkSegment/SegmentCollection.h" #include "xAODMuon/Muon.h" #include "xAODMuon/MuonSegmentContainer.h" @@ -31,14 +32,9 @@ namespace Muon{ public: TrackSegmentAssociationTool(const std::string&, const std::string&, const IInterface*); - /** default destructor **/ - ~TrackSegmentAssociationTool(); + ~TrackSegmentAssociationTool()=default; - /** standard initialization method **/ StatusCode initialize(); - - /** standard finalization method **/ - StatusCode finalize(); /** Returns a list of segments that match with the input Muon. */ bool associatedSegments(const xAOD::Muon& muon, @@ -53,7 +49,7 @@ namespace Muon{ ServiceHandle<Muon::IMuonEDMHelperSvc> m_edmHelperSvc {this, "edmHelper", "Muon::MuonEDMHelperSvc/MuonEDMHelperSvc", "Handle to the service providing the IMuonEDMHelperSvc interface" }; - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; + ToolHandle<Muon::MuonEDMPrinterTool> m_printer{this,"MuonEDMPrinterTool","Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"}; SG::ReadHandleKey<xAOD::MuonSegmentContainer> m_segments{this,"MuonSegmentLocation","MuonSegments","muon segments"}; diff --git a/Reconstruction/MuonIdentification/MuonCombinedConfig/python/MuonCombinedRecToolsConfig.py b/Reconstruction/MuonIdentification/MuonCombinedConfig/python/MuonCombinedRecToolsConfig.py index a6c669de7e7..a5624da3b66 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedConfig/python/MuonCombinedRecToolsConfig.py +++ b/Reconstruction/MuonIdentification/MuonCombinedConfig/python/MuonCombinedRecToolsConfig.py @@ -47,17 +47,17 @@ def MuonCombinedTrackSummaryToolCfg(flags, name="", **kwargs): from MuonConfig.MuonRecToolsConfig import MuonTrackSummaryHelperToolCfg acc = MuonTrackSummaryHelperToolCfg(flags) muon_track_summary_helper_tool = acc.getPrimary() - track_summary_tool = CompFactory.Trk.TrackSummaryTool(name = "CombinedMuonTrackSummary", - doSharedHits = False, - doHolesInDet = True, - doHolesMuon = False, - AddDetailedInDetSummary = True, - AddDetailedMuonSummary = True, - InDetSummaryHelperTool = indet_track_summary_helper_tool, - TRT_ElectronPidTool = None, - PixelToTPIDTool = None, - MuonSummaryHelperTool = muon_track_summary_helper_tool, - PixelExists = True ) + track_summary_tool = CompFactory.Trk.TrackSummaryTool(name="CombinedMuonTrackSummary", + doSharedHits = False, + doHolesInDet = True, + doHolesMuon = False, + AddDetailedInDetSummary = True, + AddDetailedMuonSummary = True, + InDetSummaryHelperTool = indet_track_summary_helper_tool, + TRT_ElectronPidTool = None, + PixelToTPIDTool = None, + MuonSummaryHelperTool = muon_track_summary_helper_tool, + PixelExists = True ) result.merge(acc) result.addPublicTool(track_summary_tool) result.setPrivateTools(track_summary_tool) @@ -216,6 +216,15 @@ def MuonCreatorToolCfg(flags, name="MuonCreatorTool", **kwargs): kwargs.setdefault("ParticleCaloExtensionTool", acc.getPrimary() ) result.merge(acc) + from MuonConfig.MuonRecToolsConfig import MuonAmbiProcessorCfg, MuonTrackSummaryToolCfg + acc = MuonAmbiProcessorCfg(flags) + kwargs.setdefault("AmbiguityProcessor", acc.popPrivateTools()) + result.merge(acc) + + acc = MuonTrackSummaryToolCfg(flags) + kwargs.setdefault("TrackSummaryTool", acc.popPrivateTools()) + result.merge(acc) + # This tool needs MuonScatteringAngleSignificanceTool... which in turn needs TrackingVolumeSvc. # FIXME - probably this should be someplace central. trackingVolSvc = CompFactory.Trk.TrackingVolumesSvc(name="TrackingVolumesSvc") @@ -311,6 +320,11 @@ def MuonCombinedFitTagToolCfg(flags, name="MuonCombinedFitTagTool",**kwargs): kwargs.setdefault("MatchQuality", acc.popPrivateTools() ) result.merge(acc) + from MuonConfig.MuonRecToolsConfig import MuonTrackScoringToolCfg + acc = MuonTrackScoringToolCfg(flags) + kwargs.setdefault("TrackScoringTool", acc.popPrivateTools()) + result.merge(acc) + tool = CompFactory.MuonCombined.MuonCombinedFitTagTool(name,**kwargs) result.setPrivateTools(tool) return result -- GitLab From 2179e6b7f2fcfa409975d7507b3a7d000c1d10a8 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Sun, 2 Aug 2020 18:35:12 +0000 Subject: [PATCH 452/459] Expanded functionality of flags to better support tracking cuts setup --- .../python/AthConfigFlags.py | 255 ++++++++++++------ .../python/TriggerConfigFlags.py | 2 +- 2 files changed, 170 insertions(+), 87 deletions(-) diff --git a/Control/AthenaConfiguration/python/AthConfigFlags.py b/Control/AthenaConfiguration/python/AthConfigFlags.py index 12ba8defa33..08401b990da 100644 --- a/Control/AthenaConfiguration/python/AthConfigFlags.py +++ b/Control/AthenaConfiguration/python/AthConfigFlags.py @@ -1,10 +1,10 @@ # Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration from __future__ import print_function -import six from copy import deepcopy from AthenaCommon.Logging import logging +_msg = logging.getLogger('AthConfigFlags') class CfgFlag(object): __slots__ = ['_value','_setDef'] @@ -23,12 +23,12 @@ class CfgFlag(object): def set(self,value): self._value=value return - + def get(self,flagdict=None): if self._value is None: #Have to call the method to obtain the default value self._value=self._setDef(flagdict) - return deepcopy(self._value) + return deepcopy(self._value) def __repr__(self): if self._value is not None: @@ -42,21 +42,50 @@ class FlagAddress(object): if isinstance(f, AthConfigFlags): self._flags = f self._name = name - + elif isinstance(f, FlagAddress): self._flags = f._flags self._name = f._name+"."+name - def __getattr__(self, name): + def __getattr__(self, name): + # the logic it implemets is as follows: + # full flag name is formed from the path + name passsed as an argument + # first try if the flags is available (most frequent case) + # if not see if the path+name is used in one of the flags of longer name (having more pieces) + # if not try dynamic flags loading + # after basically above stops are repeated + merged = self._name + "." + name + _msg.debug("Flags addr __getattr__ %s", merged ) if self._flags.hasFlag( merged ): + _msg.debug("Flags addr __getattr__ there %s", merged ) return self._flags._get( merged ) - return FlagAddress( self, name ) + + if self._flags.hasCategory( merged ): # the flag name is not complete yet + _msg.debug("Flags addr __getattr__ category there %s", merged ) + return FlagAddress( self, name ) + + _msg.debug("Flags addr __getattr__ need dynaload %s", merged ) + self._flags._loadDynaFlags( merged ) + + if self._flags.hasCategory( merged ): # the flag name is not complete yet + _msg.debug("Flags addr __getattr__ category there after dynaload %s", merged ) + return FlagAddress( self, name ) + + if self._flags.hasFlag( merged ): + return self._flags._get( merged ) + raise RuntimeError( "No such flag: {} The name is likely incomplete.".format(merged) ) def __setattr__( self, name, value ): if name.startswith("_"): return object.__setattr__(self, name, value) merged = self._name + "." + name + + if not self._flags.hasFlag( merged ): # flag ismisisng, try loading dynamic ones + self._flags._loadDynaFlags( merged ) + + if not self._flags.hasFlag( merged ): + raise RuntimeError( "No such flag: {} The name is likely incomplete.".format(merged) ) return self._flags._set( merged, value ) def __cmp__(self, other): @@ -74,67 +103,109 @@ class FlagAddress(object): def __bool__(self): raise RuntimeError( "No such flag: "+ self._name+". The name is likely incomplete." ) - + class AthConfigFlags(object): def __init__(self,inputflags=None): - self._msg = logging.getLogger('AthConfigFlags') - + + if inputflags: self._flagdict=inputflags else: self._flagdict=dict() self._locked=False self._dynaflags = dict() + self._loaded = set() # dynamic dlags that were loaded def __getattr__(self, name): + _msg.debug("AthConfigFlags __getattr__ %s", name ) + if name in self._flagdict: + return self._get(name) return FlagAddress(self, name) + def __setattr__(self, name, value): + if name.startswith("_"): + return object.__setattr__(self, name, value) + + _msg.debug("AthConfigFlags __getattr__ %s", name ) + if name in self._flagdict: + return self._set(name, value) + raise RuntimeError( "No such flag: "+ name+". The name is likely incomplete." ) + + def addFlag(self,name,setDef=None): if (self._locked): raise RuntimeError("Attempt to add a flag to an already-locked container") if name in self._flagdict: raise KeyError("Duplicated flag name: {}".format( name )) - self._flagdict[name]=CfgFlag(setDef) return - - def addFlagsCategory(self, name, generator): - self._dynaflags[name] = generator + + def addFlagsCategory(self, path, generator, prefix=False): + """ + The path is the beginning of the flag name, that is, if it is "X" the flags generated by the generator should be "X.*" + The generator is a function that returns flags container, the flags have to start with the same path + When the prefix is set to True the flags created by the generator when added are prefixed by the "path" + + Supported calls are then: + addFlagsCategory("A", g) - where g is function creating flags is f.addFlag("A.x", someValue) + addFlagsCategory("A", g, True) - when flags are defined in g like this: f.addFalg("x", somevalue), + The later option allows to share one generation function among the flags that are later loaded in a different paths. + """ + self._dynaflags[path] = (generator, prefix) def needFlagsCategory(self, name): + """ public interface for _loadDynaFlags """ self._loadDynaFlags( name ) - + def _loadDynaFlags(self, name): - flagBaseName = name.split('.')[0] - if flagBaseName in self._dynaflags: - self._msg.debug("dynamically loading the flag {}".format( flagBaseName) ) - isLocked = self._locked - self._locked = False - self.join( self._dynaflags[flagBaseName]() ) - self._locked = isLocked - del self._dynaflags[flagBaseName] + """ + loads the flags of the form "A.B.C" first attemprintg the path "A" then "A.B" and then "A.B.C" + """ + def __load_impl( flagBaseName ): + if flagBaseName in self._loaded: + _msg.debug("Flags %s already loaded",flagBaseName ) + return + if flagBaseName in self._dynaflags: + _msg.debug("Dynamically loading the flags under %s", flagBaseName ) + isLocked = self._locked + self._locked = False + generator, prefix = self._dynaflags[flagBaseName] + self.join( generator(), flagBaseName if prefix else "" ) + self._locked = isLocked + del self._dynaflags[flagBaseName] + self._loaded.add(flagBaseName) + + pathfrags = name.split('.') + for maxf in range(1, len(pathfrags)+1): + __load_impl( '.'.join(pathfrags[:maxf]) ) def loadAllDynamicFlags(self): - # Need to convert to a list since _loadDynaFlags may change the dict. - for prefix in list(self._dynaflags.keys()): - self._loadDynaFlags( prefix ) - - def hasFlag(self, name): - if name in self._flagdict: + """Force load all the dynamic flags """ + while len(self._dynaflags) != 0: + # Need to convert to a list since _loadDynaFlags may change the dict. + for prefix in list(self._dynaflags.keys()): + self._loadDynaFlags( prefix ) + + def hasCategory(self, name): + path = name+'.' + for f in self._flagdict.keys(): + if f.startswith(path): + return True + return False + + def hasFlag(self, name): + if name in self._flagdict: return True - self._msg.debug("Flag not loaded yet {}".format( name ) ) - self._loadDynaFlags( name.split('.')[0] ) - return name in self._flagdict + _msg.debug("Flag %s absent, possibly not loaded yet?", name ) + return False def _set(self,name,value): - if (self._locked): raise RuntimeError("Attempt to set a flag of an already-locked container") - self._loadDynaFlags( name ) if name in self._flagdict: self._flagdict[name].set(value) return @@ -144,9 +215,8 @@ class AthConfigFlags(object): if len(closestMatch)>0: errString+=". Did you mean \'{}\'?".format( closestMatch[0] ) raise KeyError(errString) - - def _get(self,name): - self._loadDynaFlags( name ) + + def _get(self,name): if name in self._flagdict: return self._flagdict[name].get(self) @@ -176,11 +246,12 @@ class AthConfigFlags(object): def cloneAndReplace(self,subsetToReplace,replacementSubset): #This is to replace subsets of configuration flags like #egamamaFlags.GSF by egamma.TrigGSFFlavor1 - self.dump() - self._msg.info("cloning flags and replacing {} by {}".format( subsetToReplace, replacementSubset ) ) + #self.dump() + _msg.info("cloning flags and replacing {} by {}".format( subsetToReplace, replacementSubset ) ) self._loadDynaFlags( subsetToReplace ) - + self._loadDynaFlags( replacementSubset ) + if not subsetToReplace.endswith("."): subsetToReplace+="." pass @@ -188,59 +259,61 @@ class AthConfigFlags(object): replacementSubset+="." pass - #Sanity check: Don't replace a by a + #Sanity check: Don't replace a by a if (subsetToReplace == replacementSubset): - raise RuntimeError("Called cloneAndReplace with identical strings") - + raise RuntimeError("Can not replace flags {} with themselves".format(subsetToReplace)) + + replacedNames=set() replacementNames=set() newFlagDict=dict() for (name,flag) in self._flagdict.items(): if name.startswith(subsetToReplace): - replacedNames.add(name[len(subsetToReplace):]) #Add the - pass #Do not copy stuff thats going to be replaced + replacedNames.add(name[len(subsetToReplace):]) #Remember replaced flag for the check later elif name.startswith(replacementSubset): subName=name[len(replacementSubset):] - replacementNames.add(subName) + replacementNames.add(subName) # remember replacement name #Move the flag to the new name: - - newFlagDict[subsetToReplace+subName]=deepcopy(flag) - #If we lock the container right away, we don't need to deepcopy + + newFlagDict[subsetToReplace+subName]=deepcopy(flag) pass - else: + else: newFlagDict[name]=deepcopy(flag) #All other flags are simply copied - #If we lock the container right away, we don't need to deepcopy pass #End loop over flags pass #Last sanity check: Make sure that teh replaced section still contains teh same names: if (replacedNames!=replacementNames): - self._msg.error(replacedNames) - self._msg.error(replacementNames) - raise RuntimeError("Attempt to replace incompatible subsets: None matching flag names are " + _msg.error(replacedNames) + _msg.error(replacementNames) + raise RuntimeError("Attempt to replace incompatible subsets: None matching flag names are " + repr(replacedNames ^ replacementNames )) newFlags = AthConfigFlags(newFlagDict) newFlags._dynaflags = deepcopy(self._dynaflags) - newFlags.dump() return newFlags def join(self, other, prefix=''): + """ + Merges two flag containers + When the prefix is passed each flag from the "other" is prefixed by "prefix." + """ if (self._locked): raise RuntimeError("Attempt to join with and already-locked container") - for (name,flag) in six.iteritems(other._flagdict): + for (name,flag) in other._flagdict.items(): fullName = prefix+"."+name if prefix != "" else name if fullName in self._flagdict: raise KeyError("Duplicated flag name: {}".format( fullName ) ) self._flagdict[fullName]=flag - for (name,loader) in six.iteritems(other._dynaflags): + for (name,loader) in other._dynaflags.items(): if prefix+"."+name in self._dynaflags: raise KeyError("Duplicated dynamic flags name: {}".format( name ) ) - self.join( loader(), name ) + self._dynaflags.update(other._dynaflags) + #self.join( loader(), name ) return @@ -253,17 +326,23 @@ class AthConfigFlags(object): return print("Flag categories that can be loaded dynamically") print("{:25} : {:>30} : {}".format( "Category","Generator name", "Defined in" ) ) - for name,gen in sorted(six.iteritems(self._dynaflags)): - print("{:25} : {:>30} : {}".format( name, gen.__name__, '/'.join(six.get_function_code(gen).co_filename.split('/')[-2:]) ) ) + for name,gen_and_prefix in sorted(self._dynaflags.items()): + print("{:25} : {:>30} : {}".format( name, gen_and_prefix[0].__name__, '/'.join(gen_and_prefix[0].__code__.co_filename.split('/')[-2:]) ) ) - def initAll(self): #Mostly a self-test method + def initAll(self): + """ + Mostly a self-test method + """ for n,f in list(self._flagdict.items()): f.get(self) return - # scripts calling AthConfigFlags.fillFromArgs can extend this parser, and pass their version to fillFromArgs + def getArgumentParser(self): + """ + Scripts calling AthConfigFlags.fillFromArgs can extend this parser, and pass their version to fillFromArgs + """ import argparse parser= argparse.ArgumentParser() parser.add_argument("-d","--debug",default=None,help="attach debugger (gdb) before run, <stage>: conf, init, exec, fini") @@ -276,7 +355,6 @@ class AthConfigFlags(object): # parser argument must be an ArgumentParser returned from getArgumentParser() def fillFromArgs(self,listOfArgs=None,parser=None): """ - Used to set flags from command-line parameters, like ConfigFlags.fillFromArgs(sys.argv[1:]) """ import sys @@ -300,7 +378,7 @@ class AthConfigFlags(object): if args.filesInput: self.Input.Files=args.filesInput.split(",") - + if args.loglevel: from AthenaCommon import Constants if hasattr(Constants,args.loglevel): @@ -318,9 +396,12 @@ class AthConfigFlags(object): raise ValueError("Can't interpret argument {}, expected a key=value format".format( arg ) ) key=argsplit[0].strip() + + if not self.hasFlag(key): + self._loadDynaFlags( '.'.join(key.split('.')[:-1]) ) # for a flag A.B.C dymanic flags from category A.B if not self.hasFlag(key): raise KeyError("{} is not a known configuration flag".format( key ) ) - + value=argsplit[1].strip() try: @@ -338,10 +419,10 @@ class AthConfigFlags(object): import unittest -class TestFlagsSetup(unittest.TestCase): +class TestFlagsSetup(unittest.TestCase): def setUp(self): self.flags = AthConfigFlags() - self.flags.addFlag("A", True) + self.flags.addFlag("Atest", True) self.flags.addFlag("A.One", True) self.flags.addFlag("A.B.C", False) self.flags.addFlag("A.dependentFlag", lambda prevFlags: ["FALSE VALUE", "TRUE VALUE"][prevFlags.A.B.C] ) @@ -354,13 +435,13 @@ class TestAccess(TestFlagsSetup): self.assertTrue( self.flags.A.B.C, "Flag value not changed") -class TestWrongAccess(TestFlagsSetup): +class TestWrongAccess(TestFlagsSetup): def runTest(self): print("""... Acess to the flag that are missnames should give an exception""") with self.assertRaises(RuntimeError): print(".... test printout {}".format( self.flags.A is True )) print(".... test printout {}".format( self.flags.A.B == 6 )) - + class TestDependentFlag(TestFlagsSetup): @@ -376,18 +457,19 @@ class TestFlagsSetupDynamic(TestFlagsSetup): def theXFlags(): nf = AthConfigFlags() - nf.addFlag("X.a", 17) - nf.addFlag("X.b", 55) - nf.addFlag("X.c", "Hello") + nf.addFlag("a", 17) + nf.addFlag("b", 55) + nf.addFlag("c", "Hello") return nf + def theZFlags(): nf = AthConfigFlags() nf.addFlag("Z.A", 7) nf.addFlag("Z.B", True) nf.addFlag("Z.C.setting", 99) - nf.addFlagsCategory( 'Z', theXFlags ) - nf.addFlagsCategory( 'Z.clone', theXFlags ) + nf.addFlagsCategory( 'Z.Xclone1', theXFlags, prefix=True ) + nf.addFlagsCategory( 'Z.Xclone2', theXFlags, prefix=True ) return nf def theTFlags(): @@ -396,56 +478,58 @@ class TestFlagsSetupDynamic(TestFlagsSetup): return nf self.flags.addFlagsCategory( 'Z', theZFlags ) - self.flags.addFlagsCategory( 'X', theXFlags ) + self.flags.addFlagsCategory( 'X', theXFlags, prefix=True ) self.flags.addFlagsCategory( 'T', theTFlags ) + print("... Setup of dynamic flags loading test") self.flags.dump() print("") class TestDynamicFlagsDump(TestFlagsSetupDynamic): def runTest(self): print("""... Check if dump with unloaded flags works""") - self.flags.dump() + self.flags.dump() print("") class TestDynamicFlagsRead(TestFlagsSetupDynamic): def runTest(self): print("""... Check if dynamic flags reading works""") self.assertEqual( self.flags.X.a, 17, "dynamically loaded flags have wrong value") - self.flags.dump() print("") self.assertEqual( self.flags.Z.A, 7, "dynamically loaded flags have wrong value") - self.assertEqual( self.flags.Z.X.b, 55, "dynamically loaded flags have wrong value") - self.flags.dump() + self.assertEqual( self.flags.Z.Xclone1.b, 55, "dynamically loaded flags have wrong value") + self.flags.Z.Xclone2.b = 56 + self.assertEqual( self.flags.Z.Xclone2.b, 56, "dynamically loaded flags have wrong value") + self.flags.dump() print("") class TestDynamicFlagsSet(TestFlagsSetupDynamic): def runTest(self): print("""... Check if dynamic flags setting works""") self.flags.Z.A = 15 - self.flags.Z.X.a = 20 + self.flags.Z.Xclone1.a = 20 self.flags.X.a = 30 - self.assertEqual( self.flags.Z.X.a, 20, "dynamically loaded flags have wrong value") + self.assertEqual( self.flags.Z.Xclone1.a, 20, "dynamically loaded flags have wrong value") self.assertEqual( self.flags.X.a, 30, "dynamically loaded flags have wrong value") self.assertEqual( self.flags.Z.A, 15, "dynamically loaded flags have wrong value") - self.flags.dump() + self.flags.dump() print("") class TestOverwriteFlags(TestFlagsSetupDynamic): def runTest(self): print("""... Check if overwiting works""") - self.flags.Z.clone.X.a = 20 + self.flags.Z.Xclone1.a = 20 self.flags.X.a = 30 - copyf = self.flags.cloneAndReplace( "X", "Z.clone.X") + copyf = self.flags.cloneAndReplace( "X", "Z.Xclone1") self.assertEqual( copyf.X.a, 20, "dynamically loaded flags have wrong value") self.assertEqual( copyf.T.Abool, False, "The flags clone does not have dynamic flags") copyf.dump() print("") -class flagsFromArgsTest(unittest.TestCase): +class flagsFromArgsTest(unittest.TestCase): def setUp(self): self.flags = AthConfigFlags() self.flags.addFlag('Exec.OutputLevel',3) #Global Output Level - self.flags.addFlag('Exec.MaxEvents',-1) + self.flags.addFlag('Exec.MaxEvents',-1) self.flags.addFlag("Exec.SkipEvents",0) self.flags.addFlag("Exec.DebugStage","") self.flags.addFlag('Input.Files',[]) @@ -476,4 +560,3 @@ if __name__ == "__main__": suite.addTest(TestOverwriteFlags()) runner = unittest.TextTestRunner(failfast=False) runner.run(suite) - diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py index 46cfe3dd8f6..957d9afd7ed 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py @@ -249,7 +249,7 @@ def createTriggerFlags(): def __muon(): from MuonConfig.MuonConfigFlags import createMuonConfigFlags return createMuonConfigFlags() - flags.addFlagsCategory('Trigger.Offline', __muon) + flags.addFlagsCategory('Trigger.Offline', __muon, prefix=True) from TriggerJobOpts.MenuConfigFlags import createMenuFlags -- GitLab From 441d26cd8e2a7d80342ef6b3956d1dde8af3b11c Mon Sep 17 00:00:00 2001 From: Eric Torrence <eric.torrence@cern.ch> Date: Sun, 2 Aug 2020 18:41:48 +0000 Subject: [PATCH 453/459] LumiCalc: merge website updates back into master Several updates of iLumiCalc and associated scripts and html files have been updated for the atlas-lumicalc website without ever being committed back to the git master. This patch brings the git master back into sync with the code on the website, and provides bugfixes for iLumiCalc that had been deployed on the website. --- LumiBlock/LumiCalc/README.aiatlas | 86 ++++++++++++++----- LumiBlock/LumiCalc/README.change | 4 + .../11-atlas-lumicalc-dev.cern.ch_vhost.conf | 81 +++++++++++++++++ .../11-atlas-lumicalc.cern.ch_vhost.conf | 81 +++++++++++++++++ .../LumiCalc/config/25-lumicalc-vhost.conf | 77 ----------------- LumiBlock/LumiCalc/config/README | 3 +- LumiBlock/LumiCalc/html/index.html | 1 + LumiBlock/LumiCalc/html/version.html | 2 +- LumiBlock/LumiCalc/python/LumiCalcHtml.py | 35 ++++++-- LumiBlock/LumiCalc/python/LumiCalcRecover.py | 7 +- LumiBlock/LumiCalc/python/TestEnviron.py | 13 +++ LumiBlock/LumiCalc/share/runLumiCalc.sh | 21 ++--- LumiBlock/LumiCalc/share/runLumiCalcDev.sh | 23 +++++ 13 files changed, 317 insertions(+), 117 deletions(-) create mode 100644 LumiBlock/LumiCalc/config/11-atlas-lumicalc-dev.cern.ch_vhost.conf create mode 100644 LumiBlock/LumiCalc/config/11-atlas-lumicalc.cern.ch_vhost.conf delete mode 100644 LumiBlock/LumiCalc/config/25-lumicalc-vhost.conf create mode 100755 LumiBlock/LumiCalc/python/TestEnviron.py mode change 100644 => 100755 LumiBlock/LumiCalc/share/runLumiCalc.sh create mode 100755 LumiBlock/LumiCalc/share/runLumiCalcDev.sh diff --git a/LumiBlock/LumiCalc/README.aiatlas b/LumiBlock/LumiCalc/README.aiatlas index ec9be2d100d..34c049548cf 100644 --- a/LumiBlock/LumiCalc/README.aiatlas +++ b/LumiBlock/LumiCalc/README.aiatlas @@ -1,28 +1,72 @@ -This file gives instructions for setting up the lumicalc web service. There are three servers: -aiatlas110.cern.ch -> https://atlas-lumicalc-devel.cern.ch +This file gives instructions for setting up the lumicalc web service. +Instructions have been updated on July 29, 2020 for the new centos7 server +For more details: https://its.cern.ch/jira/browse/CSOPS-1700 -First, make sure you have a working directory: -asetup 19.2.0,here -cmt co LumiBlock/LumiCalc +There is one server now with prod and dev areas: +aiatlas031.cern.ch +-> https://atlas-lumicalc.cern.ch in /var/www/lumicalc +-> https://atlas-lumicalc-dev.cern.ch in /var/www/lumicalc_dev -Make any changes, test, and compile before installing with git -We will re-build this on the server. -(cd LumiBlock/LumiCalc/cmt; gmake clean) +So log into aiatlas031 -Edit the ChangeLog -Change the html/version.html file +Change to a directory where you have write permission: +cd /var/www/lumicalc_dev -Then commit: -svn ci -m <comment> -svn cp . $SVNROOT/LumiBlock/LumiCalc/tags/LumiCalc-<version> +# Setup git environment +export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase +source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh +lsetup git -Now, install using git. From the release directory: +# Sparse checkout (actually checks out my fork) +git atlas init-workdir https://:@gitlab.cern.ch:8443/atlas/athena.git -p LumiCalc -git init -git add LumiBlock -git add InstallArea -git commit -m 'first commit' -unset SSH_ASKPASS -git config --global http.sslVerify false -git push https://torrence@atlas-lumicalc-devel.cern.ch/git/lumicalc/ master +# See what you really did with +cd athena +git remote -v +cd .. +# For the dev area, lets use a dev branch +git checkout -b lumicalcDev +git push --set-upstream origin lumicalcDev + +# So for me, origin is my fork, while upstream is the atlas master + +# Setup build environment +mkdir build; cd build +asetup master,latest,Athena # Or a fixed release +cmake ../athena/Projects/WorkDir +make -j + +# And everything should now be ready to go +# Be sure to test atlas-lumicalc-dev before updating the prod area from master + +# For updates, log into aiatlas031 and go to the correct area: +cd /var/www/lumicalc_dev + +# Ensure we are on the correct branch (if needed) +# <branch> = master (prod) +# <branch> = lumicalcDev (dev) +git checkout <branch> + +# Pull any changes +git fetch origin +git pull origin <branch> + +# Rebuild if any code changes + +# Once tested, push changes back to master (or make merge request) + +Go to the correct area: +cd / +# This can be used to check the environment +https://atlas-lumicalc-dev.cern.ch/cgi-bin/TestEnviron.py + +# Config files can be found at +sudo emacs /etc/httpd/conf.d/25-atlas-lumicalc-dev.cern.ch_vhost.conf + +# Restart apache if changes are made +sudo systemctl restart httpd + +# To turn off puppet (for both userid and root): +puppet agent --disable "Eric: testing config files" +sudo /opt/puppetlabs/bin/puppet agent --disable "Eric: testing config files" \ No newline at end of file diff --git a/LumiBlock/LumiCalc/README.change b/LumiBlock/LumiCalc/README.change index eee3ef0abaa..33967ebc695 100644 --- a/LumiBlock/LumiCalc/README.change +++ b/LumiBlock/LumiCalc/README.change @@ -1,3 +1,7 @@ +2020-07-30 Eric Torrence <torrence@cern.ch> + * Many changes to deploy lumicalc on new centos7 servers + * Call this LumiCalc-00-06-03 + 2019-10-20 Eric Torrence <torrence@cern.ch> * Properly moved everything to git * Made changes to bring code into ATLAS code guidelines diff --git a/LumiBlock/LumiCalc/config/11-atlas-lumicalc-dev.cern.ch_vhost.conf b/LumiBlock/LumiCalc/config/11-atlas-lumicalc-dev.cern.ch_vhost.conf new file mode 100644 index 00000000000..9cab20a50c8 --- /dev/null +++ b/LumiBlock/LumiCalc/config/11-atlas-lumicalc-dev.cern.ch_vhost.conf @@ -0,0 +1,81 @@ +# ************************************ +# Vhost template in module puppetlabs-apache +# Managed by Puppet +# ************************************ +# +<VirtualHost *:443> + ServerName atlas-lumicalc-dev.cern.ch + + ## Vhost docroot + DocumentRoot "/var/www/lumicalc_dev/athena/LumiBlock/LumiCalc/html" + ## Alias declarations for resources outside the DocumentRoot + Alias /results "/var/www/lumifiles" + Alias /cgi-bin "/var/www/lumicalc_dev/athena/LumiBlock/LumiCalc/python/" + Alias / "/var/www/lumicalc_dev/athena/LumiBlock/LumiCalc/html/" + + ## Directories, there should at least be a declaration for /var/www/lumicalc_dev/athena/LumiBlock/LumiCalc/html + + <Location "/cgi-bin"> + Options +ExecCGI + Require all granted + SetHandler cgi-script + </Location> + + <Directory "/var/www/lumicalc_dev/athena/LumiBlock/LumiCalc/html"> + Options +Indexes +Includes + AllowOverride None + Require claim cern_roles:users + <FilesMatch ".+(\.html)$"> + SetHandler server-parsed + </FilesMatch> + AuthType openid-connect + AddType text/html .html + </Directory> + + <Directory "/var/www/lumifiles"> + Options +Indexes + IndexOptions +FancyIndexing + AllowOverride None + Require claim cern_roles:users + AuthType openid-connect + </Directory> + + <Directory "/var/www/lumifiles/*"> + Options +ExecCGI + AllowOverride None + Require claim cern_roles:users + <FilesMatch ".+(\.py)$"> + SetHandler cgi-script + </FilesMatch> + AuthType openid-connect + </Directory> + + ## Logging + ErrorLog "/var/log/httpd/atlas-lumicalc-dev.cern.ch_vhost_error_ssl.log" + ServerSignature Off + CustomLog "/var/log/httpd/atlas-lumicalc-dev.cern.ch_vhost_access_ssl.log" combined + + ## Server aliases + ServerAlias aiatlas031.cern.ch + + ## SSL directives + SSLEngine on + SSLCertificateFile "/etc/grid-security/hostcert.pem" + SSLCertificateKeyFile "/etc/grid-security/hostkey.pem" + + # SSL Proxy directives + SSLProxyEngine On + + ## Custom fragment + + LimitRequestFieldSize 262144 + Include "/etc/httpd/conf/oidc_secrets.conf" + + OIDCProviderMetadataURL https://auth.cern.ch/auth/realms/cern/.well-known/openid-configuration + OIDCClientID atlas-lumicalc + OIDCRedirectURI https://atlas-lumicalc-dev.cern.ch/redirect_uri + OIDCProviderTokenEndpointAuth client_secret_basic + OIDCRemoteUserClaim sub + OIDCRefreshAccessTokenBeforeExpiry 30 + OIDCSessionInactivityTimeout 7200 +</VirtualHost> diff --git a/LumiBlock/LumiCalc/config/11-atlas-lumicalc.cern.ch_vhost.conf b/LumiBlock/LumiCalc/config/11-atlas-lumicalc.cern.ch_vhost.conf new file mode 100644 index 00000000000..170b726fe06 --- /dev/null +++ b/LumiBlock/LumiCalc/config/11-atlas-lumicalc.cern.ch_vhost.conf @@ -0,0 +1,81 @@ +# ************************************ +# Vhost template in module puppetlabs-apache +# Managed by Puppet +# ************************************ +# +<VirtualHost *:443> + ServerName atlas-lumicalc.cern.ch + + ## Vhost docroot + DocumentRoot "/var/www/lumicalc/athena/LumiBlock/LumiCalc/html" + ## Alias declarations for resources outside the DocumentRoot + Alias /results "/var/www/lumifiles" + Alias /cgi-bin "/var/www/lumicalc/athena/LumiBlock/LumiCalc/python/" + Alias / "/var/www/lumicalc/athena/LumiBlock/LumiCalc/html/" + + ## Directories, there should at least be a declaration for /var/www/lumicalc/athena/LumiBlock/LumiCalc/html + + <Location "/cgi-bin"> + Options +ExecCGI + Require all granted + SetHandler cgi-script + </Location> + + <Directory "/var/www/lumicalc/athena/LumiBlock/LumiCalc/html"> + Options +Indexes +Includes + AllowOverride None + Require claim cern_roles:users + <FilesMatch ".+(\.html)$"> + SetHandler server-parsed + </FilesMatch> + AuthType openid-connect + AddType text/html .html + </Directory> + + <Directory "/var/www/lumifiles"> + Options +Indexes + IndexOptions +FancyIndexing + AllowOverride None + Require claim cern_roles:users + AuthType openid-connect + </Directory> + + <Directory "/var/www/lumifiles/*"> + Options +ExecCGI + AllowOverride None + Require claim cern_roles:users + <FilesMatch ".+(\.py)$"> + SetHandler cgi-script + </FilesMatch> + AuthType openid-connect + </Directory> + + ## Logging + ErrorLog "/var/log/httpd/atlas-lumicalc.cern.ch_vhost_error_ssl.log" + ServerSignature Off + CustomLog "/var/log/httpd/atlas-lumicalc.cern.ch_vhost_access_ssl.log" combined + + ## Server aliases + ServerAlias aiatlas031.cern.ch + + ## SSL directives + SSLEngine on + SSLCertificateFile "/etc/grid-security/hostcert.pem" + SSLCertificateKeyFile "/etc/grid-security/hostkey.pem" + + # SSL Proxy directives + SSLProxyEngine On + + ## Custom fragment + + LimitRequestFieldSize 262144 + Include "/etc/httpd/conf/oidc_secrets.conf" + + OIDCProviderMetadataURL https://auth.cern.ch/auth/realms/cern/.well-known/openid-configuration + OIDCClientID atlas-lumicalc + OIDCRedirectURI https://atlas-lumicalc.cern.ch/redirect_uri + OIDCProviderTokenEndpointAuth client_secret_basic + OIDCRemoteUserClaim sub + OIDCRefreshAccessTokenBeforeExpiry 30 + OIDCSessionInactivityTimeout 7200 +</VirtualHost> diff --git a/LumiBlock/LumiCalc/config/25-lumicalc-vhost.conf b/LumiBlock/LumiCalc/config/25-lumicalc-vhost.conf deleted file mode 100644 index d98996b8196..00000000000 --- a/LumiBlock/LumiCalc/config/25-lumicalc-vhost.conf +++ /dev/null @@ -1,77 +0,0 @@ -# ************************************ -# Vhost template in module puppetlabs-apache -# Managed by Puppet -# ************************************ - -<VirtualHost *:443> - ServerName default - - ## Vhost docroot - DocumentRoot "/var/www/lumicalc" - ## Alias declarations for resources outside the DocumentRoot - Alias /results/ "/tmp/lumifiles/" - Alias /cgi-bin/ "/var/www/lumicalc/LumiBlock/LumiCalc/python/" - Alias / "/var/www/lumicalc/LumiBlock/LumiCalc/html/" - - - - ## Directories, there should at least be a declaration for /var/www/lumicalc - - - <Location "/cgi-bin"> - Options +ExecCGI - Order allow,deny - Allow from all - SetHandler cgi-script - </Location> - - - <Directory "/var/www/lumicalc/LumiBlock/LumiCalc/html"> - Options +Indexes +Includes - AllowOverride None - Order Allow,Deny - Allow from all - AddHandler server-parsed .html - AddType text/html .html - </Directory> - - - <Directory "/tmp/lumifiles"> - Options +Indexes - IndexOptions +FancyIndexing - AllowOverride None - Order allow,deny - Allow from all - </Directory> - - <Directory "/tmp/lumifiles/*"> - Options +ExecCGI - AllowOverride None - Order allow,deny - Allow from all - AddHandler cgi-script .py - </Directory> - - ## Load additional static includes - - - ## Logging - ErrorLog "/var/log/httpd/lumicalc-vhost_error_ssl.log" - ServerSignature Off - CustomLog "/var/log/httpd/lumicalc-vhost_access_ssl.log" combined - - - - - ## SSL directives - SSLEngine on - SSLCertificateFile "/etc/pki/tls/certs/localhost.crt" - SSLCertificateKeyFile "/etc/pki/tls/private/localhost.key" - SSLCACertificatePath "/etc/pki/tls/certs" - - ## More time for scripts to run - TimeOut 900 - - ## Custom fragment -LimitRequestFieldSize 262144 -</VirtualHost> diff --git a/LumiBlock/LumiCalc/config/README b/LumiBlock/LumiCalc/config/README index 7aa76f6870e..ad9dcb59af6 100644 --- a/LumiBlock/LumiCalc/config/README +++ b/LumiBlock/LumiCalc/config/README @@ -1,3 +1,4 @@ For the record, this contains config files used on the lumicalc web server. Changes here are not pushed to the server, this is just a record. -/etc/httpd/conf.d/25-lumicalc-vhost.conf \ No newline at end of file +The config files are in: +/etc/httpd/conf.d/ \ No newline at end of file diff --git a/LumiBlock/LumiCalc/html/index.html b/LumiBlock/LumiCalc/html/index.html index d78c28cac58..adf01c3b5f2 100755 --- a/LumiBlock/LumiCalc/html/index.html +++ b/LumiBlock/LumiCalc/html/index.html @@ -29,6 +29,7 @@ <h3>LumiCalc News</h3> <p>If your request seems to hang and you eventually see a <font color="red"><b>Proxy Error</b></font> after clicking <b>Calculate Luminosity</b>, this is annoying but not fatal. Just reload the page and your job should be running fine.</p> <ul> +<li><font color="red">30 Jul, 2020</font> - Migration to centos7 server complete</li> <li><font color="red">22 Jun, 2020</font> - Fix bug in handling SFO misconfiguration in run 281385</li> <li><font color="red">16 Apr, 2020</font> - Preliminary 13 TeV 2017/18 low-mu lumi available in tag OflLumi-13TeV-010-lowmu</li> <li><font color="red">6 Feb, 2020</font> - Final 2015 PbPb lumi available in tag OflLumi-HI-009</li> diff --git a/LumiBlock/LumiCalc/html/version.html b/LumiBlock/LumiCalc/html/version.html index e8b49dace70..8b5dd3e5083 100644 --- a/LumiBlock/LumiCalc/html/version.html +++ b/LumiBlock/LumiCalc/html/version.html @@ -1 +1 @@ -LumiCalc-00-05-01 +LumiCalc-00-06-03 diff --git a/LumiBlock/LumiCalc/python/LumiCalcHtml.py b/LumiBlock/LumiCalc/python/LumiCalcHtml.py index c54e3be9fca..d8404cd08df 100755 --- a/LumiBlock/LumiCalc/python/LumiCalcHtml.py +++ b/LumiBlock/LumiCalc/python/LumiCalcHtml.py @@ -20,9 +20,20 @@ class LumiCalc: # Python file to make updates in working directory self.updateScript = 'LumiCalcWorking.py' self.recoverScript = 'LumiCalcRecover.py' + + # Prod area self.homeDir = '/var/www/lumicalc/' - self.htmlDir = self.homeDir + 'LumiBlock/LumiCalc/html/' - self.scriptDir = self.homeDir + 'LumiBlock/LumiCalc/share/' + self.dev = False + + # Check if we are running as dev + if os.environ.get('SERVER_NAME', '') == 'atlas-lumicalc-dev.cern.ch': + self.homeDir = '/var/www/lumicalc_dev/' + self.dev = True + + self.resultsDir = '/var/www/lumifiles/' + + self.htmlDir = self.homeDir + 'athena/LumiBlock/LumiCalc/html/' + self.scriptDir = self.homeDir + 'athena/LumiBlock/LumiCalc/share/' self.workdir = os.getcwd() self.uselar = True @@ -32,8 +43,7 @@ class LumiCalc: # Create a new subdirectory for this self.subdir = hex(random.randint(0,0xFFFFFF))[2:] - #self.workdir = self.homeDir + 'results/' + self.subdir - self.workdir = '/tmp/lumifiles/' + self.subdir + self.workdir = self.resultsDir + self.subdir os.mkdir(self.workdir) # Open the output file @@ -215,7 +225,10 @@ class LumiCalc: self.f.write( '<p>iLumiCalc '+self.command+'</p>\n' ) #self.cmdstr = os.getcwd()+'/runLumiCalc.sh '+self.command - self.cmdstr = self.scriptDir+'runLumiCalc.sh '+self.command + if self.dev: + self.cmdstr = self.scriptDir+'runLumiCalcDev.sh '+self.command + else: + self.cmdstr = self.scriptDir+'runLumiCalc.sh '+self.command def runCommand(self): p = subprocess.Popen(self.cmdstr+' > output.txt 2>&1', executable='/bin/bash', cwd=self.workdir, shell=True) @@ -545,7 +558,17 @@ class LumiCalc: print ('<html><head>') print ('<meta http-equiv="Refresh" content="0; url=/results/'+self.subdir+'/'+outfile+'">') print ('</head></html>') - + + # For debugging, dump all os.environ variables + def dumpEnviron(self): + + print ('Content-Type: text/html') + print () # Blank line, end of headers + print ('<html>') + for key in os.environ: + print('<p><b>',key,':</b>',os.environ[key],'<p>') + print ('</html>') + # Run from command line if __name__ == "__main__": diff --git a/LumiBlock/LumiCalc/python/LumiCalcRecover.py b/LumiBlock/LumiCalc/python/LumiCalcRecover.py index 1b2e7048e24..8e79ea36268 100755 --- a/LumiBlock/LumiCalc/python/LumiCalcRecover.py +++ b/LumiBlock/LumiCalc/python/LumiCalcRecover.py @@ -7,12 +7,17 @@ from __future__ import print_function import os import glob import cgitb + # Enable debugging output for CGI cgitb.enable() # Use imp to import directly from path in cgi-bin? import imp -lcmod = imp.load_source('LumiCalc', '/var/www/lumicalc/LumiBlock/LumiCalc/python/LumiCalcHtml.py') + +if os.environ.get('SERVER_NAME', '') == 'atlas-lumicalc-dev.cern.ch': + lcmod = imp.load_source('LumiCalc', '/var/www/lumicalc_dev/athena/LumiBlock/LumiCalc/python/LumiCalcHtml.py') +else: + lcmod = imp.load_source('LumiCalc', '/var/www/lumicalc/athena/LumiBlock/LumiCalc/python/LumiCalcHtml.py') lc = lcmod.LumiCalc() diff --git a/LumiBlock/LumiCalc/python/TestEnviron.py b/LumiBlock/LumiCalc/python/TestEnviron.py new file mode 100755 index 00000000000..d8e73b32894 --- /dev/null +++ b/LumiBlock/LumiCalc/python/TestEnviron.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +from __future__ import print_function + +import os + +print ('Content-Type: text/html') +print () # Blank line, end of headers +print ('<html>') +for key in os.environ: + print('<p><b>',key,':</b>',os.environ[key],'<p>') +print ('</html>') diff --git a/LumiBlock/LumiCalc/share/runLumiCalc.sh b/LumiBlock/LumiCalc/share/runLumiCalc.sh old mode 100644 new mode 100755 index a53a99c1ecc..7a8d19ea98c --- a/LumiBlock/LumiCalc/share/runLumiCalc.sh +++ b/LumiBlock/LumiCalc/share/runLumiCalc.sh @@ -1,22 +1,23 @@ #!/bin/bash -export release=20.7.8.6 +export release=latest +export MyTestArea=/var/www/lumicalc echo `date` echo Working directory is `pwd` echo Setting up release $release -export MyTestArea=/var/www/lumicalc -export AtlasSetup=/afs/cern.ch/atlas/software/dist/AtlasSetup -#echo $AtlasSetup/scripts/asetup.sh --help -#source $AtlasSetup/scripts/asetup.sh --help +export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase +source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh "" + +echo asetup --release=$release --testarea=$MyTestArea --branch=master Athena +asetup --release=$release --testarea=$MyTestArea --branch=master Athena -echo $AtlasSetup/scripts/asetup.sh --release=$release --testarea=$MyTestArea -source $AtlasSetup/scripts/asetup.sh --release=$release --testarea=$MyTestArea +echo source $MyTestArea/build/*/setup.sh +source $MyTestArea/build/*/setup.sh -chmod +x /var/www/lumicalc/LumiBlock/LumiCalc/x86_64-slc6-gcc49-opt/iLumiCalc echo which iLumiCalc: `which iLumiCalc` -echo Executing /var/www/lumicalc/LumiBlock/LumiCalc/x86_64-slc6-gcc49-opt/iLumiCalc $* -/var/www/lumicalc/LumiBlock/LumiCalc/x86_64-slc6-gcc49-opt/iLumiCalc $* +echo Executing `which iLumiCalc` $* +`which iLumiCalc` $* echo Done echo `date` diff --git a/LumiBlock/LumiCalc/share/runLumiCalcDev.sh b/LumiBlock/LumiCalc/share/runLumiCalcDev.sh new file mode 100755 index 00000000000..c535e8ce16f --- /dev/null +++ b/LumiBlock/LumiCalc/share/runLumiCalcDev.sh @@ -0,0 +1,23 @@ +#!/bin/bash +export release=latest +export MyTestArea=/var/www/lumicalc_dev + +echo `date` +echo Working directory is `pwd` +echo Setting up release $release + +export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase +source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh "" + +echo asetup --release=$release --testarea=$MyTestArea --branch=master Athena +asetup --release=$release --testarea=$MyTestArea --branch=master Athena + +echo source $MyTestArea/build/*/setup.sh +source $MyTestArea/build/*/setup.sh + +echo which iLumiCalc: `which iLumiCalc` +echo Executing `which iLumiCalc` $* +`which iLumiCalc` $* + +echo Done +echo `date` -- GitLab From e4dd07e762441c772cedc04fc30d4356b17a8736 Mon Sep 17 00:00:00 2001 From: Peter Onyisi <ponyisi@utexas.edu> Date: Sun, 2 Aug 2020 18:57:53 +0000 Subject: [PATCH 454/459] Minor updates, added error message if reference doesn't exist and added an extra variable to check if folder has been found --- .../DataQualityConfigurations/CMakeLists.txt | 2 +- .../config/common/collisions_run.config | 6 +- .../config/common/cosmics_run.config | 5 + .../config/common/heavyions_run.config | 9 + .../DataQualityInterfaces/CMakeLists.txt | 16 +- .../DataQualityInterfaces/DatabaseConfig.h | 43 ++++ .../DataQualityInterfaces/HanConfig.h | 56 +++-- .../DataQualityInterfaces/MiniConfig.h | 28 +-- .../MiniConfigTreeNode.h | 46 ++-- .../src/DatabaseConfig.cxx | 110 +++++++++ .../DataQualityInterfaces/src/HanConfig.cxx | 222 +++++++++++------- .../DataQualityInterfaces/src/MiniConfig.cxx | 66 +++--- .../src/MiniConfigTreeNode.cxx | 23 +- .../src/han_config_gen.cxx | 48 +++- 14 files changed, 488 insertions(+), 192 deletions(-) create mode 100644 DataQuality/DataQualityInterfaces/DataQualityInterfaces/DatabaseConfig.h create mode 100644 DataQuality/DataQualityInterfaces/src/DatabaseConfig.cxx diff --git a/DataQuality/DataQualityConfigurations/CMakeLists.txt b/DataQuality/DataQualityConfigurations/CMakeLists.txt index dcae0a350cd..4e11aa4cc5d 100644 --- a/DataQuality/DataQualityConfigurations/CMakeLists.txt +++ b/DataQuality/DataQualityConfigurations/CMakeLists.txt @@ -54,7 +54,7 @@ foreach( hanfile collisions_run collisions_minutes10 ${CMAKE_CURRENT_SOURCE_DIR}/config ${configOutputFile} # Build binary config COMMAND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/atlas_build_run.sh - han-config-gen ${configOutputFile} + han-config-gen ${configOutputFile} -b true # Deploy binary config COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${hanfile}.hcfg diff --git a/DataQuality/DataQualityConfigurations/config/common/collisions_run.config b/DataQuality/DataQualityConfigurations/config/common/collisions_run.config index 9da3e17599e..6205a7511ae 100644 --- a/DataQuality/DataQualityConfigurations/config/common/collisions_run.config +++ b/DataQuality/DataQualityConfigurations/config/common/collisions_run.config @@ -7,6 +7,7 @@ reference CentrallyManagedReferences { file = data18_13TeV.00358031.express_express.merge.HIST.f961_h322._0001.1 path = run_358031 info = Run 358031, express_express + #database = collisions name = same_name } @@ -15,6 +16,7 @@ reference CentrallyManagedReferences_Main { file = data18_13TeV.00358031.physics_Main.merge.HIST.f961_h322._0001.1 path = run_358031 info = Run 358031, physics_Main + #database = collisions name = same_name } @@ -23,6 +25,7 @@ reference CentrallyManagedReferences_Trigger { file = data18_13TeV.00356177.express_express.merge.HIST.f956_h317._0001.1 path = run_356177 info = Run 356177, express_express + #database = collisions name = same_name } @@ -31,6 +34,7 @@ reference CentrallyManagedReferences_TriggerMain { file = data18_13TeV.00356177.physics_Main.merge.HIST.f956_h319._0001.1 path = run_356177 info = Run 356177, physics_Main + #database = collisions name = same_name } @@ -39,10 +43,10 @@ reference CentrallyManagedReferences_TriggerBphysLS { file = data18_13TeV.00356177.physics_BphysLS.merge.HIST.f961_h322._0001.1 path = run_356177 info = Run 356177, physics_BphysLS + #database = collisions name = same_name } - #################### # Common Algorithms #################### diff --git a/DataQuality/DataQualityConfigurations/config/common/cosmics_run.config b/DataQuality/DataQualityConfigurations/config/common/cosmics_run.config index 3327a54eaed..ea7d1442fe4 100644 --- a/DataQuality/DataQualityConfigurations/config/common/cosmics_run.config +++ b/DataQuality/DataQualityConfigurations/config/common/cosmics_run.config @@ -2,11 +2,13 @@ # References ####################### + reference CentrallyManagedReferences { location = /eos/atlas/atlascerngroupdisk/data-dqm/references/,root://eosatlas.cern.ch//eos/atlas/atlascerngroupdisk/data-dqm/references/ file = data16_cos.00306147.express_express.merge.HIST.f738_h161._0001.1 path = run_306147 info = Run 306147, express + #database = cosmics name = same_name } @@ -15,6 +17,7 @@ reference CentrallyManagedReferences_Main { file = data16_cos.00306147.express_express.merge.HIST.f738_h161._0001.1 path = run_306147 info = Run 306147, express + #database = cosmics name = same_name } @@ -23,6 +26,7 @@ reference CentrallyManagedReferences_Trigger { file = data16_cos.00306147.express_express.merge.HIST.f738_h161._0001.1 path = run_306147 info = Run 306147, express + #database = cosmics name = same_name } @@ -31,6 +35,7 @@ reference CentrallyManagedReferences_TriggerMain { file = data16_cos.00306147.express_express.merge.HIST.f738_h161._0001.1 path = run_306147 info = Run 306147, express + #database = cosmics name = same_name } diff --git a/DataQuality/DataQualityConfigurations/config/common/heavyions_run.config b/DataQuality/DataQualityConfigurations/config/common/heavyions_run.config index 51be8d8f9ce..df8db9207e7 100644 --- a/DataQuality/DataQualityConfigurations/config/common/heavyions_run.config +++ b/DataQuality/DataQualityConfigurations/config/common/heavyions_run.config @@ -7,6 +7,7 @@ reference CentrallyManagedReferences { file = data18_hi.00365678.express_express.merge.HIST.f1021_h331._0001.1 path = run_365678 info = Run 365678, express + #database = heavyions name = same_name } @@ -15,6 +16,7 @@ reference CentrallyManagedReferences_Main { file = data18_hi.00365678.express_express.merge.HIST.f1021_h331._0001.1 path = run_365678 info = Run 365678, physics_Main + #database = heavyions name = same_name } @@ -23,6 +25,7 @@ reference CentrallyManagedReferences_Trigger { file = data18_hi.00365573.express_express.merge.HIST.f1021_h331._0001.1 path = run_365573 info = Run 365573, express + #database = heavyions name = same_name } @@ -31,6 +34,7 @@ reference CentrallyManagedReferences_TriggerMain { file = data18_hi.00365573.express_express.merge.HIST.f1021_h331._0001.1 path = run_365573 info = Run 365573, physics_Main + #database = heavyions name = same_name } @@ -39,6 +43,7 @@ reference CentrallyManagedReferences_UPC { file = data18_hi.00365678.physics_UPC.merge.HIST.f1022_h331._0001.1 path = run_365678 info = Run 365678, physics_UPC + #database = heavyions name = same_name } @@ -47,6 +52,7 @@ reference CentrallyManagedReferences_TriggerUPC { file = data18_hi.00365573.physics_UPC.merge.HIST.f1022_h331._0001.1 path = run_365573 info = Run 365573, physics_UPC + #database = heavyions name = same_name } @@ -55,6 +61,7 @@ reference CentrallyManagedReferences_HardProbes { file = data18_hi.00365678.physics_HardProbes.merge.HIST.f1021_h331._0001.1 path = run_365678 info = Run 365678, physics_HardProbes + #database = heavyions name = same_name } @@ -63,9 +70,11 @@ reference CentrallyManagedReferences_TriggerHardProbes { file = data18_hi.00365573.physics_HardProbes.merge.HIST.f1021_h331._0001.1 path = run_365573 info = Run 365573, physics_HardProbes + #database = heavyions name = same_name } + #################### # Common Algorithms #################### diff --git a/DataQuality/DataQualityInterfaces/CMakeLists.txt b/DataQuality/DataQualityInterfaces/CMakeLists.txt index 9d2ecff8211..380a68b28a7 100644 --- a/DataQuality/DataQualityInterfaces/CMakeLists.txt +++ b/DataQuality/DataQualityInterfaces/CMakeLists.txt @@ -9,12 +9,15 @@ atlas_subdir( DataQualityInterfaces ) find_package( Boost COMPONENTS system regex thread filesystem ) find_package( ROOT COMPONENTS Cint Hist RIO Tree Core MathCore pthread Graf Graf3d Gpad Html Postscript Gui GX11TTF GX11 ) find_package( tdaq-common COMPONENTS dqm_core_io dqm_core dqm_dummy_io dqm_dummy ) +find_package( COOL COMPONENTS CoolKernel CoolApplication ) +find_package( CORAL COMPONENTS CoralBase ) +find_package( nlohmann_json ) # Component(s) in the package: atlas_add_root_dictionary( DataQualityInterfaces DataQualityInterfacesDictSource - ROOT_HEADERS DataQualityInterfaces/MiniConfig.h DataQualityInterfaces/MiniConfigTreeNode.h DataQualityInterfaces/HanApp.h DataQualityInterfaces/HanConfig.h DataQualityInterfaces/HanConfigAlgLimit.h DataQualityInterfaces/HanConfigAlgPar.h DataQualityInterfaces/HanConfigParMap.h DataQualityInterfaces/HanConfigAssessor.h DataQualityInterfaces/HanConfigCompAlg.h DataQualityInterfaces/HanConfigGroup.h DataQualityInterfaces/HanConfigMetadata.h DataQualityInterfaces/ConditionsSingleton.h DataQualityInterfaces/LinkDef.h - EXTERNAL_PACKAGES ROOT Boost tdaq-common ) + ROOT_HEADERS DataQualityInterfaces/DatabaseConfig.h DataQualityInterfaces/MiniConfig.h DataQualityInterfaces/MiniConfigTreeNode.h DataQualityInterfaces/HanApp.h DataQualityInterfaces/HanConfig.h DataQualityInterfaces/HanConfigAlgLimit.h DataQualityInterfaces/HanConfigAlgPar.h DataQualityInterfaces/HanConfigParMap.h DataQualityInterfaces/HanConfigAssessor.h DataQualityInterfaces/HanConfigCompAlg.h DataQualityInterfaces/HanConfigGroup.h DataQualityInterfaces/HanConfigMetadata.h DataQualityInterfaces/ConditionsSingleton.h DataQualityInterfaces/LinkDef.h + EXTERNAL_PACKAGES ROOT Boost tdaq-common COOL CORAL nlohmann_json) atlas_add_library( DataQualityInterfaces src/HanAlgorithmConfig.cxx @@ -29,6 +32,7 @@ atlas_add_library( DataQualityInterfaces src/HanConfigMetadata.cxx src/HanOutput.cxx src/MiniConfig.cxx + src/DatabaseConfig.cxx src/MiniConfigTreeNode.cxx src/CompositeAlgorithm.cxx src/HanInputRootFile.cxx @@ -36,8 +40,8 @@ atlas_add_library( DataQualityInterfaces src/ConditionsSingleton.cxx ${DataQualityInterfacesDictSource} PUBLIC_HEADERS DataQualityInterfaces - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${TDAQ-COMMON_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${TDAQ-COMMON_LIBRARIES} ) + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${TDAQ-COMMON_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} nlohmann_json::nlohmann_json ${COOL_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${TDAQ-COMMON_LIBRARIES} nlohmann_json::nlohmann_json ${CORAL_LIBRARIES} ${COOL_LIBRARIES} ) atlas_add_executable( han src/han.cxx @@ -46,8 +50,8 @@ atlas_add_executable( han atlas_add_executable( han-config-gen src/han_config_gen.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${TDAQ-COMMON_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${TDAQ-COMMON_LIBRARIES} DataQualityInterfaces ) + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${TDAQ-COMMON_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} nlohmann_json::nlohmann_json ${COOL_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${TDAQ-COMMON_LIBRARIES} DataQualityInterfaces nlohmann_json::nlohmann_json ${CORAL_LIBRARIES} ${COOL_LIBRARIES} ) atlas_add_executable( han-config-print src/han_config_print.cxx diff --git a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/DatabaseConfig.h b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/DatabaseConfig.h new file mode 100644 index 00000000000..37a7824d9c6 --- /dev/null +++ b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/DatabaseConfig.h @@ -0,0 +1,43 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef dqiDatabaseConfig_h +#define dqiDatabaseConfig_h + +#include <iostream> +#include <optional> +#include <nlohmann/json.hpp> +#include "CoolKernel/IFolder.h" +#include "CoolKernel/IDatabase.h" + +namespace dqi { + +class DatabaseConfig { + +public: + DatabaseConfig(std::string connectionString, long runNumber); + nlohmann::json GetPayload(std::string tag); + + bool IsConnected() const; + void Disconnect(); + +private: + const std::string m_connectionString; + const long m_runNumber; + + bool m_dbConnected; + bool m_folderConnected; + + std::unordered_map<std::string, nlohmann::json> m_jsonData; + cool::IFolderPtr m_folder; + cool::IDatabasePtr m_database; + + long GetRunNumber() const; + nlohmann::json LoadPayload(std::string tag); + + void Connect(); +}; + +} +#endif diff --git a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanConfig.h b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanConfig.h index 91f26687227..8c655f6fed6 100644 --- a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanConfig.h +++ b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/HanConfig.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef dqiHanConfig_h @@ -16,6 +16,7 @@ #include "DataQualityInterfaces/MiniConfigTreeNode.h" #include "DataQualityInterfaces/HanConfigAssessor.h" #include "DataQualityInterfaces/HanConfigCompAlg.h" +#include "DataQualityInterfaces/DatabaseConfig.h" #ifndef __CINT__ #include <boost/shared_ptr.hpp> @@ -44,17 +45,17 @@ public: HanConfig(); virtual ~HanConfig(); - - - virtual void AssembleAndSave( std::string infileName, std::string outfileName ); - + + + virtual void AssembleAndSave( std::string infileName, std::string outfileName, std::string connectionString, long runNumber, bool bulk); + virtual void BuildMonitors( std::string configName, dqm_core::Input& input, HanOutput& output ); #ifndef __CINT__ virtual boost::shared_ptr<dqm_core::Region> BuildMonitorsNewRoot( std::string configName, dqm_core::Input& input, dqm_core::Output& output ); #endif virtual void BuildConfigOutput( std::string configName, TFile* inputFile, std::string path, std::map<std::string,TSeqCollection*>* outputMap, TSeqCollection *outputList ); - + virtual TObject* GetReference( std::string& groupName, std::string& name ); virtual const HanConfigAssessor* GetAssessor( std::string& groupName, std::string& name ) const; @@ -74,19 +75,28 @@ protected: HanConfig::DirMap_t& m_directories; TMap* m_refsourcedata; }; - + + class RefWriter : public MiniConfigTreeNode::Writer { + public: + RefWriter( DatabaseConfig& databaseConfig_, const bool bulk); + virtual void Write( MiniConfigTreeNode* node); + protected: + DatabaseConfig& m_databaseConfig; + const bool m_bulk; + }; + class AssessmentVisitorBase : public MiniConfigTreeNode::Visitor { public: AssessmentVisitorBase( HanConfigGroup* root_, const MiniConfig& algConfig_, const MiniConfig& thrConfig_, const MiniConfig& refConfig_, TFile* outfile_, HanConfig::DirMap_t& directories_, TMap* refsourcedata_ ); - + protected: - + void GetAlgorithmConfiguration( HanConfigAssessor* dqpar, const std::string& algID, std::string assessorName = "" ) const; - + HanConfigGroup* m_root; const MiniConfig& m_algConfig; const MiniConfig& m_thrConfig; @@ -96,10 +106,12 @@ protected: TMap* m_refsourcedata; // File cache mutable std::map<std::string, std::shared_ptr<TFile> > m_filecache; + // following is so we can skip repeated attempts to open nonexistent files + mutable std::unordered_set<std::string> m_badPaths; std::shared_ptr<TFile> GetROOTFile(std::string& fname) const; }; - - + + class RegionVisitor : public AssessmentVisitorBase { public: RegionVisitor( HanConfigGroup* root_, const MiniConfig& algConfig_, @@ -107,8 +119,8 @@ protected: HanConfig::DirMap_t& directories_ ); virtual void Visit( const MiniConfigTreeNode* node ) const; }; - - + + class AssessmentVisitor : public AssessmentVisitorBase { public: AssessmentVisitor( HanConfigGroup* root_, const MiniConfig& algConfig_, @@ -126,8 +138,8 @@ protected: Visit( const HanConfigAssessor* node, boost::shared_ptr<dqm_core::Region> ) const; protected: std::set<std::string>& m_regexes; - }; - + }; + class ConfigVisitor : public HanConfigAssessor::Visitor { public: ConfigVisitor( TFile* file_, dqm_core::Output* output_ ); @@ -138,7 +150,7 @@ protected: dqm_core::Output* m_output; }; #endif - + class CompAlgVisitor : public MiniConfigTreeNode::Visitor { public: CompAlgVisitor( TFile* outfile_ , const MiniConfig& compAlgConfig_); @@ -147,7 +159,7 @@ protected: TFile* m_outfile; const MiniConfig& m_compAlgConfig; }; - + class MetadataVisitor : public MiniConfigTreeNode::Visitor { public: MetadataVisitor( TFile* outfile_ , const MiniConfig& metadataConfig_); @@ -156,18 +168,18 @@ protected: TFile* m_outfile; const MiniConfig& m_metadataConfig; }; - + bool Initialize( std::string configName ); - - + + TFile* m_config; #ifndef __CINT__ boost::shared_ptr<dqm_core::Region> m_dqRoot; #endif HanConfigGroup* m_top_level; TSeqCollection* m_metadata; - + //Get rid of Root macros that confuse Doxygen ///\cond CLASSDEF ClassDef( HanConfig, 0 ) // Creates a Han configuration from a MiniConfig diff --git a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/MiniConfig.h b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/MiniConfig.h index 4890ba5eda8..adc71efbdf7 100644 --- a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/MiniConfig.h +++ b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/MiniConfig.h @@ -27,39 +27,40 @@ class MiniConfig : public TObject { public: MiniConfig(); - + virtual ~MiniConfig(); - + virtual void AddKeyword( std::string keyword_ ); virtual void AddAttributeKeyword( std::string keyword_ ); virtual void SetAttribKeywordPropagateDown( bool propagateDown ); - + virtual bool ReadFile( std::string fileName ); - - + + virtual std::string GetStringAttribute( std::string objName, std::string attName ) const; - + virtual int GetIntAttribute( std::string objName, std::string attName ) const; - + virtual float GetFloatAttribute( std::string objName, std::string attName ) const; - + virtual void GetAttributeNames( std::string objName, std::set<std::string>& attSet ) const; - + virtual void SendVisitor( const MiniConfigTreeNode::Visitor& visitor ) const; - - + + virtual void SendWriter(MiniConfigTreeNode::Writer& writer ); + protected: typedef std::set<std::string> KeySet_t; typedef KeySet_t::const_iterator KeyIter_t; - + KeySet_t m_keywords; KeySet_t m_attKeywords; MiniConfigTreeNode* m_tree; bool m_propagateDown; - + private: //Get rid of Root macros that confuse Doxygen @@ -71,4 +72,3 @@ private: } // namespace dqi #endif - diff --git a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/MiniConfigTreeNode.h b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/MiniConfigTreeNode.h index 60b7d04953b..79047c90106 100644 --- a/DataQuality/DataQualityInterfaces/DataQualityInterfaces/MiniConfigTreeNode.h +++ b/DataQuality/DataQualityInterfaces/DataQualityInterfaces/MiniConfigTreeNode.h @@ -33,13 +33,18 @@ public: virtual void Visit( const MiniConfigTreeNode* node ) const = 0; }; + class Writer { + public: + virtual ~Writer() { } + virtual void Write(MiniConfigTreeNode* node ) = 0; + }; MiniConfigTreeNode( std::string name_, MiniConfigTreeNode* parent_ ); - + virtual ~MiniConfigTreeNode(); - + virtual const char* GetName() const; - + virtual const char* GetPathName() const; @@ -47,38 +52,40 @@ public: * Returns a daughter of this node, creating one if necessary. This method only returns * daughters, not granddaughters. */ - + virtual MiniConfigTreeNode* GetNewDaughter( std::string name_ ); - + virtual MiniConfigTreeNode* GetDaughter( std::string name_ ) const; - + virtual MiniConfigTreeNode* GetParent() const; - + virtual std::map<std::string,dqi::MiniConfigTreeNode*> GetDaughters() const; - + /** * This function takes the full path name of a subnode (in UNIX directory style) and * returns the corresponding subnode of this node, traversing the entire subtree until it is found. * If the bottom of the tree is reached before the full path has been used, the last node found * is returned. If any part of the path is invalid before reaching the end of the tree, 0 is returned. */ - + virtual const MiniConfigTreeNode* GetNode( std::string name_ ) const; - - + + virtual void SetAttribute( std::string attName, std::string attValue, bool isAttribKeyword = false ); - + virtual std::string GetAttribute( std::string attName, bool calledFromDaughter = false ) const; virtual std::string GetAttributeLocal( std::string attName ) const; - + virtual void GetAttributeNames( std::set<std::string>& attSet, bool calledFromDaughter = false ) const; - + virtual void GetAttributeNamesLocal( std::set<std::string>& attSet ) const; - - + + virtual void Accept( const Visitor& visitor ) const; + virtual void Accept(Writer& writer ); + virtual void SetAttribKeywordPropagateDown( bool propagateDown ); virtual bool GetAttribKeywordPropagateDown() const; @@ -87,14 +94,14 @@ protected: typedef std::map<std::string,MiniConfigTreeNode*> NodeMap_t; typedef NodeMap_t::const_iterator NodeIter_t; - + typedef std::map<std::string,std::pair<std::string,bool> > AttMap_t; typedef AttMap_t::const_iterator AttIter_t; - + const std::string m_name; mutable std::string m_path; MiniConfigTreeNode* m_parent; - + NodeMap_t m_daughters; AttMap_t m_attributes; @@ -111,4 +118,3 @@ private: } // namespace dqi #endif - diff --git a/DataQuality/DataQualityInterfaces/src/DatabaseConfig.cxx b/DataQuality/DataQualityInterfaces/src/DatabaseConfig.cxx new file mode 100644 index 00000000000..c2950099fec --- /dev/null +++ b/DataQuality/DataQualityInterfaces/src/DatabaseConfig.cxx @@ -0,0 +1,110 @@ +/* + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +*/ + +#include <iostream> +#include <nlohmann/json.hpp> + +#include "CoolApplication/DatabaseSvcFactory.h" +#include "CoolKernel/IDatabase.h" +#include "CoolKernel/IDatabaseSvc.h" +#include "CoolKernel/IObject.h" +#include "CoolKernel/IFolder.h" +#include "CoolKernel/IObject.h" + +#include "DataQualityInterfaces/DatabaseConfig.h" +#include <array> + +namespace dqi { + +DatabaseConfig:: +DatabaseConfig(std::string connectionString, long runNumber) + : m_connectionString(connectionString) + , m_runNumber((runNumber << 32) + 1) + , m_dbConnected(false) + , m_folderConnected(false) +{ +} + +void +DatabaseConfig:: +Disconnect() +{ + if(m_dbConnected) { + m_database->closeDatabase(); + m_dbConnected = false; + m_folderConnected = false; + } +} + +void +DatabaseConfig:: +Connect() +{ + try { + cool::IDatabaseSvc& dbSvc = cool::DatabaseSvcFactory::databaseService(); + m_database = dbSvc.openDatabase(m_connectionString, true); + + } catch (std::exception& e) { + std::cerr << "Unable to open database -> " << e.what() << '\n'; + return; + } + m_dbConnected = true; + try { + m_folder= m_database->getFolder("/GLOBAL/DQM/REFERENCES"); + + } catch (std::exception& e) { + std::cerr << "Unable loading folder for this tag/run-> " << e.what() << '\n'; + return; + } + m_folderConnected = true; +} + +nlohmann::json +DatabaseConfig:: +GetPayload(std::string tag) +{ + if(!m_dbConnected && !m_folderConnected) { + Connect(); + } + if(m_jsonData.find(tag) == m_jsonData.end()) { + return LoadPayload(tag); + } + return m_jsonData.at(tag); +} + +nlohmann::json +DatabaseConfig:: +LoadPayload(std::string tag) +{ + nlohmann::json jsonData; + if(m_dbConnected && m_folderConnected) { + try { + cool::IObjectPtr object = m_folder->findObject(GetRunNumber(), 1, tag); + + std::string data = object->payloadValue("jsonData"); + jsonData = nlohmann::json::parse(data); + m_jsonData[tag] = jsonData; + + } catch (std::exception& e) { + std::cerr << "Error: Failed loading payload for this tag/run-> " << e.what() << '\n'; + } + } + return jsonData; +} + +bool +DatabaseConfig:: +IsConnected() const +{ + return m_dbConnected && m_folderConnected; +} + +long +DatabaseConfig:: +GetRunNumber() const +{ + return m_runNumber; +} + +} diff --git a/DataQuality/DataQualityInterfaces/src/HanConfig.cxx b/DataQuality/DataQualityInterfaces/src/HanConfig.cxx index 3c2addf9f96..72c01c3b545 100644 --- a/DataQuality/DataQualityInterfaces/src/HanConfig.cxx +++ b/DataQuality/DataQualityInterfaces/src/HanConfig.cxx @@ -42,6 +42,7 @@ #include "DataQualityInterfaces/HanOutput.h" #include "DataQualityInterfaces/MiniConfig.h" #include "DataQualityInterfaces/HanUtils.h" +#include "DataQualityInterfaces/DatabaseConfig.h" #include <boost/regex.hpp> #include <boost/algorithm/string/case_conv.hpp> #include <boost/algorithm/string/split.hpp> @@ -81,12 +82,12 @@ HanConfig:: void HanConfig:: -AssembleAndSave( std::string infileName, std::string outfileName ) +AssembleAndSave( std::string infileName, std::string outfileName, std::string connectionString, long runNumber, bool bulk) { std::unique_ptr< TFile > outfile( TFile::Open( outfileName.c_str(), "RECREATE" ) ); DirMap_t directories; - + // Collect reference histograms and copy to config file MiniConfig refconfig; refconfig.AddKeyword("reference"); @@ -94,13 +95,18 @@ AssembleAndSave( std::string infileName, std::string outfileName ) TMap refsourcedata; RefVisitor refvisitor( outfile.get(), directories, &refsourcedata ); refconfig.SendVisitor( refvisitor ); - + + DatabaseConfig databaseConfig(connectionString, runNumber); + RefWriter refwriter(databaseConfig, bulk); + refconfig.SendWriter( refwriter ); + databaseConfig.Disconnect(); + // Collect threshold definitions MiniConfig thrconfig; thrconfig.AddKeyword("thresholds"); thrconfig.AddAttributeKeyword("limits"); thrconfig.ReadFile(infileName); - + // Collect algorithm definitions MiniConfig algconfig; algconfig.AddKeyword("algorithm"); @@ -110,21 +116,21 @@ AssembleAndSave( std::string infileName, std::string outfileName ) MiniConfig regconfig; regconfig.AddKeyword("output"); regconfig.ReadFile(infileName); - + // Collect histogram definitions MiniConfig histconfig; histconfig.AddKeyword("dir"); histconfig.AddAttributeKeyword("hist"); histconfig.SetAttribKeywordPropagateDown(false); histconfig.ReadFile(infileName); - + // Collect and write composite-algorithm definitions MiniConfig compalgconfig; compalgconfig.AddKeyword("compositealgorithm"); compalgconfig.ReadFile(infileName); CompAlgVisitor compalgvisitor(outfile.get(), compalgconfig); compalgconfig.SendVisitor(compalgvisitor); - + MiniConfig metadataconfig; metadataconfig.AddKeyword("metadata"); metadataconfig.ReadFile(infileName); @@ -137,11 +143,11 @@ AssembleAndSave( std::string infileName, std::string outfileName ) RegionVisitor regvisitor( root.get(), algconfig, thrconfig, refconfig, directories ); regconfig.SendVisitor( regvisitor ); - - AssessmentVisitor histvisitor( root.get(), algconfig, thrconfig, refconfig, outfile.get(), - directories, &refsourcedata ); + + AssessmentVisitor histvisitor( root.get(), algconfig, thrconfig, refconfig, outfile.get(), + directories, &refsourcedata ); histconfig.SendVisitor( histvisitor ); - + outfile->WriteTObject(&refsourcedata, "refsourcedata"); outfile->cd(); root->Write(); @@ -157,9 +163,9 @@ BuildMonitors( std::string configName, dqm_core::Input& input, HanOutput& output if( !isInitialized ) { return; } - + m_dqRoot = BuildMonitorsNewRoot( configName, input, output ); - + output.setConfig( this ); } @@ -171,7 +177,7 @@ BuildMonitorsNewRoot( std::string configName, dqm_core::Input& input, dqm_core:: if( !isInitialized ) { return boost::shared_ptr<dqm_core::Region>(); } - + std::string algName( m_top_level->GetAlgName() ); std::string algLibName( m_top_level->GetAlgLibName() ); if( algLibName != "" ) { @@ -184,7 +190,7 @@ BuildMonitorsNewRoot( std::string configName, dqm_core::Input& input, dqm_core:: } dqm_core::RegionConfig regc( algName, 1.0 ); boost::shared_ptr<dqm_core::Region> retval(dqm_core::Region::createRootRegion( "top_level", input, output, regc )); - + ConfigVisitor confvisitor( m_config, &output ); m_top_level->Accept( confvisitor, retval ); return retval; @@ -199,21 +205,21 @@ BuildConfigOutput( std::string configName, TFile* inputFile, std::string path, if( !isInitialized ) { return; } - + if( inputFile == 0 ) { return; } - + TDirectory* basedir(0); if( path != "" ) { std::string pathForSearch = path; pathForSearch += "/dummyName"; basedir = ChangeInputDir( inputFile, pathForSearch ); } - + if( basedir == 0 ) basedir = inputFile; - + TIter mdIter(m_metadata); TSeqCollection* mdList = newTList("HanMetadata_"); HanConfigMetadata* md(0); @@ -222,7 +228,7 @@ BuildConfigOutput( std::string configName, TFile* inputFile, std::string path, } TSeqCollection* top_level_list = m_top_level->GetList(basedir,*outputMap); top_level_list->Add( mdList ); - outputList->Add( top_level_list ); + outputList->Add( top_level_list ); } @@ -233,7 +239,7 @@ GetReference( std::string& groupName, std::string& name ) /* if( m_top_level == 0 ) { return 0; } - + HanConfigGroup* parent = m_top_level->GetNode(groupName); if( parent == 0 ) { parent = m_top_level; @@ -251,13 +257,15 @@ GetReference( std::string& groupName, std::string& name ) return ref; } } - + return 0; } -std::string +std::string SplitReference(std::string refPath, std::string refName ) { + // this will never be run in a multithread environment + static std::unordered_set<std::string> badPaths; //Split comma sepated inputs into individual file names std::string delimiter = ","; std::vector<std::string> refFileList; @@ -275,15 +283,17 @@ SplitReference(std::string refPath, std::string refName ) std::string fileName=refFileList.at(i)+refName; size_t first = fileName.find_first_not_of(" "); fileName.erase(0, first); + if (badPaths.find(fileName) != badPaths.end()) continue; if (gROOT->GetListOfFiles()->FindObject(fileName.c_str()) ) { return fileName; - } + } else { if(TFile::Open(fileName.c_str())){ return fileName; } else{ - std::cerr << "Unable to open " << fileName << ", trying next reference file" << std::endl; + badPaths.insert(fileName); + std::cerr << "Unable to open " << fileName << ", trying next reference file option" << std::endl; } } } @@ -298,20 +308,20 @@ GetAssessor( std::string& groupName, std::string& name ) const if( m_top_level == 0 ) { return 0; } - + HanConfigGroup* parent = m_top_level->GetNode(groupName); if( parent == 0 ) { parent = m_top_level; } - + const HanConfigAssessor& a = parent->GetAssessor(name); return new HanConfigAssessor(a); -} +} void HanConfig:: -GetRegexList(std::set<std::string>& regexlist) +GetRegexList(std::set<std::string>& regexlist) { RegexVisitor rv(regexlist); m_top_level->Accept(rv, boost::shared_ptr<dqm_core::Region>()); @@ -368,10 +378,39 @@ Visit( const MiniConfigTreeNode* node ) const if (! m_refsourcedata->FindObject(fileName.c_str())) { m_refsourcedata->Add(fnameostr, refInfo != "" ? new TObjString(refInfo.c_str()) : new TObjString("Reference")); - } + } } } +HanConfig::RefWriter:: +RefWriter( DatabaseConfig& databaseConfig_, const bool bulk) + : m_databaseConfig(databaseConfig_), + m_bulk(bulk) +{ +} + + +void +HanConfig::RefWriter:: +Write( MiniConfigTreeNode* node ) +{ + std::string database = node->GetAttribute("database"); + + if(database != "") { + database += (m_bulk ? "-physics-UPD4" : "-express-UPD1"); + nlohmann::json jsonPayload = m_databaseConfig.GetPayload(database); + std::string reference = node->GetName(); + + if(jsonPayload.find(reference) != jsonPayload.end()) { + nlohmann::json referenceJson = jsonPayload[reference]; + for (nlohmann::json::iterator it = referenceJson.begin(); it != referenceJson.end(); ++it) { + node->SetAttribute(it.key(), it.value(), false); + } + } else { + std::cerr << "Unable to find reference definition in database: " << reference << '\n'; + } + } +} HanConfig::AssessmentVisitorBase:: AssessmentVisitorBase( HanConfigGroup* root_, const MiniConfig& algConfig_, @@ -396,12 +435,16 @@ GetROOTFile( std::string& fname ) const if (it != end(m_filecache)) { return it->second; } else { + if (m_badPaths.find(fname) != m_badPaths.end()) { + return std::shared_ptr<TFile>(nullptr); + } std::shared_ptr<TFile> thisptr(TFile::Open(fname.c_str())); if (thisptr.get()) { return ( m_filecache[fname] = thisptr ); } else { + m_badPaths.insert(fname); return thisptr; - } + } } } @@ -426,7 +469,7 @@ float AttribToFloat(const MiniConfigTreeNode* node, const std::string attrib, void HanConfig::AssessmentVisitorBase:: -GetAlgorithmConfiguration( HanConfigAssessor* dqpar, const std::string& algID, +GetAlgorithmConfiguration( HanConfigAssessor* dqpar, const std::string& algID, std::string assessorName ) const { // bool hasName(false); @@ -479,7 +522,7 @@ GetAlgorithmConfiguration( HanConfigAssessor* dqpar, const std::string& algID, // for each condition ... for(size_t t=0;t<condPairs.size();t++){ std::string refID=condPairs.at(t).second; - std::string cond=condPairs.at(t).first; + std::string cond=condPairs.at(t).first; std::vector<std::string> refIDVec; TObjArray *toarray(0); bool isMultiRef(false); @@ -532,13 +575,13 @@ GetAlgorithmConfiguration( HanConfigAssessor* dqpar, const std::string& algID, m_outfile->cd(); //we are writing to the / folder of file TObject* obj; obj = key->ReadObj(); - if (isMultiRef) { + if (isMultiRef) { TObject* cobj = obj->Clone(); TH1* hobj = dynamic_cast<TH1*>(cobj); if (hobj) { hobj->SetName(thisRefID.c_str()); } - toarray->Add(cobj); + toarray->Add(cobj); delete obj; } else { std::string algRefUniqueName=algRefFile+":/"+absAlgRefName; @@ -586,8 +629,8 @@ GetAlgorithmConfiguration( HanConfigAssessor* dqpar, const std::string& algID, } } } - } - + } + if (isMultiRef) { std::string algRefUniqueName=cond+"_multiple:/"+absAlgRefName; newRefId=CS.getNewReferenceName(algRefUniqueName,true); @@ -608,9 +651,9 @@ GetAlgorithmConfiguration( HanConfigAssessor* dqpar, const std::string& algID, std::cerr<<"Warning New reference id is empty for refId=\"" <<refID<<"\", cond=\""<<cond<<"\", assessorName= \"" <<assessorName<<"\""<<std::endl; - } + } } */ - + if(!cond.empty()){ newRefString<<cond<<":"<<newRefId<<";"; }else{ @@ -618,7 +661,7 @@ GetAlgorithmConfiguration( HanConfigAssessor* dqpar, const std::string& algID, } } dqpar->SetAlgRefName((newRefString.str())); - + // std::string algRefName( m_refConfig.GetStringAttribute(refID,"name") ); // std::string algRefPath( m_refConfig.GetStringAttribute(refID,"path") ); // std::string absAlgRefName(""); @@ -676,15 +719,15 @@ Visit( const MiniConfigTreeNode* node ) const const MiniConfigTreeNode* parent = node->GetParent(); if( parent == 0 ) return; - + const MiniConfigTreeNode* grandparent = parent->GetParent(); auto alloc = std::make_unique<HanConfigGroup>(); HanConfigGroup* reg = (grandparent==0) ? m_root : alloc.get(); - + std::string regName( node->GetName() ); reg->SetName( regName ); reg->SetPathName( node->GetPathName() ); - + std::string algID( node->GetAttribute("algorithm") ); if( algID != "" ) { GetAlgorithmConfiguration( reg, algID ); @@ -715,7 +758,7 @@ RegexVisitor( std::set<std::string>& regexes_ ) { } -boost::shared_ptr<dqm_core::Node> +boost::shared_ptr<dqm_core::Node> HanConfig::RegexVisitor:: Visit( const HanConfigAssessor* node, boost::shared_ptr<dqm_core::Region> ) const { @@ -752,18 +795,18 @@ Visit( const MiniConfigTreeNode* node ) const const MiniConfigTreeNode* histNode = node->GetDaughter( *h ); if( histNode == 0 ) continue; - + algID = histNode->GetAttribute("algorithm"); regID = histNode->GetAttribute("output"); - + if( algID == "" ) { std::cerr << "No \"algorithm\" defined for " << histNode->GetPathName() << "\n"; continue; } - + if( regID == "" ) regID = "top_level"; - + std::string strNodeName(histNode->GetName()); std::string strHistName, strFullHistName; std::string::size_type atsign = strNodeName.find("@"); @@ -778,10 +821,10 @@ Visit( const MiniConfigTreeNode* node ) const if( strHistName == "all_in_dir" ) continue; - + if( defined.find(histNode->GetPathName()) != defined.end() ) continue; - + HanConfigAssessor dqpar; dqpar.SetName( histNode->GetPathName() ); @@ -790,16 +833,16 @@ Visit( const MiniConfigTreeNode* node ) const if (regexflag == "1" || regexflag == "true" || regexflag == "yes") { dqpar.SetIsRegex(true); } - + if (histNode->GetAttribute("weight") != "") { std::ostringstream err; err << "Weight attribute not a floating point type for " << histNode->GetPathName() << "; setting to zero"; dqpar.SetWeight(AttribToFloat(histNode, "weight", err.str())); } - + GetAlgorithmConfiguration( &dqpar, algID, strFullHistName ); - + std::set<std::string> histAtt2; histNode->GetAttributeNames( histAtt2 ); std::set<std::string>::const_iterator histAttEnd2 = histAtt2.end(); @@ -818,7 +861,7 @@ Visit( const MiniConfigTreeNode* node ) const HanConfigParMap parMap; parMap.SetName("inputname"); parMap.SetValue( strFullHistName ); dqpar.AddAnnotation(parMap); - + HanConfigGroup* dqreg = m_root->GetNode( regID ); dqreg = (dqreg==0) ? m_root : dqreg; if( dqreg != 0 ) { @@ -826,12 +869,12 @@ Visit( const MiniConfigTreeNode* node ) const } defined.insert( strFullHistName ); } - + for( std::set<std::string>::const_iterator h = histAtt.begin(); h != histAttEnd; ++h ) { const MiniConfigTreeNode* histNode = node->GetDaughter( *h ); if( histNode == 0 ) continue; - + algID = histNode->GetAttribute("algorithm"); regID = histNode->GetAttribute("output"); @@ -839,7 +882,7 @@ Visit( const MiniConfigTreeNode* node ) const std::cerr << "No \"algorithm\" defined for " << histNode->GetPathName() << "\n"; continue; } - + if( regID == "" ) regID = "top_level"; @@ -858,7 +901,7 @@ Visit( const MiniConfigTreeNode* node ) const } if( strHistName == "all_in_dir" ) { - + std::string regexflag(histNode->GetAttribute("regex")); if (histNode->GetAttribute("regex") != "") { std::cerr << "WARNING: all_in_dir and regex are incompatible; ignoring regex flag for " << histNode->GetPathName() @@ -875,18 +918,18 @@ Visit( const MiniConfigTreeNode* node ) const std::cerr << "WARNING: No \"file\" defined for " << histNode->GetPathName() << "\n"; continue; } - + std::string refPath( m_refConfig.GetStringAttribute(refID,"path") ); - + std::string objPath(""); std::string absObjPath(""); - + refFile = SplitReference( m_refConfig.GetStringAttribute(refID,"location"), refFile); std::shared_ptr<TFile> infile( GetROOTFile(refFile) ); TDirectory* basedir(0); TDirectory* dir(0); TKey* key; - + if( refPath != "" ) { //std::cout << "Searching under path \"" << refPath << "\" for " << "\"" << histNode->GetPathName() << "\"\n"; absObjPath += refPath; @@ -899,10 +942,10 @@ Visit( const MiniConfigTreeNode* node ) const continue; } } - + if( basedir == 0 ) basedir = infile.get(); - + std::string allPathName( histNode->GetPathName() ); std::string::size_type i = allPathName.find_last_of('/'); if( i != std::string::npos ) { @@ -911,13 +954,13 @@ Visit( const MiniConfigTreeNode* node ) const absObjPath += std::string( allPathName, 0, i ); absObjPath += "/"; } - + dir = ChangeInputDir( basedir, histNode->GetPathName() ); if( dir == 0 ) { std::cerr << "INFO: Cannot find path \"" << absObjPath << "\" in reference file\n"; continue; } - + TIter next( dir->GetListOfKeys() ); std::string objName; std::string absObjName; @@ -931,21 +974,21 @@ Visit( const MiniConfigTreeNode* node ) const TEfficiency* tmpe = dynamic_cast<TEfficiency*>(tmpobj); if( tmph == 0 && tmpg == 0 && tmpe == 0 ) continue; - + objName = objPath; objName += std::string( tmpobj->GetName() ); absObjName = absObjPath; absObjName += std::string( tmpobj->GetName() ); delete tmpobj; - + if( defined.find(objName) != defined.end() || localdefined.find(objName) != localdefined.end() ) continue; - + TKey* test = getObjKey( infile.get(), absObjName ); if( test == 0 ) continue; - + HanConfigAssessor dqpar; dqpar.SetName( objName + extension ); GetAlgorithmConfiguration( &dqpar, algID, objName ); @@ -983,7 +1026,7 @@ Visit( const MiniConfigTreeNode* node ) const } localdefined.insert( objName ); } - + continue; } } @@ -1013,7 +1056,7 @@ Visit( const HanConfigAssessor* node, boost::shared_ptr<dqm_core::Region> dqPare //std::cout << "Can't load library " << algLibName << ". Continuing regardless ..." << std::endl; } } - + if( gnode != 0 ) { dqm_core::RegionConfig regc( algName, node->GetWeight() ); std::string regName( gnode->GetPathName() ); @@ -1021,10 +1064,10 @@ Visit( const HanConfigAssessor* node, boost::shared_ptr<dqm_core::Region> dqPare m_output->addListener(regName, dqParent.get()); return reg; } - + std::string inputData( node->GetHistPath() ); HanAlgorithmConfig* algConfig = new HanAlgorithmConfig( *node, m_file ); - dqm_core::ParameterConfig parc( inputData, algName, node->GetWeight(), + dqm_core::ParameterConfig parc( inputData, algName, node->GetWeight(), std::shared_ptr<HanAlgorithmConfig>(algConfig), node->GetIsRegex() ); boost::shared_ptr<dqm_core::Node> par(dqParent->addParameter( node->GetName(), parc )); m_output->addListener(node->GetName(), dqParent.get()); @@ -1046,11 +1089,11 @@ Visit( const MiniConfigTreeNode* node ) const { m_outfile->cd(); std::map<std::string,MiniConfigTreeNode*> daughters = node->GetDaughters(); - std::map<std::string,MiniConfigTreeNode*>::const_iterator nodeiterEnd = daughters.end(); + std::map<std::string,MiniConfigTreeNode*>::const_iterator nodeiterEnd = daughters.end(); for( std::map<std::string,MiniConfigTreeNode*>::const_iterator iter = daughters.begin(); iter != nodeiterEnd; ++iter ) { std::string compAlgID = iter->second->GetName(); std::string compAlgKey = iter->first; - + HanConfigCompAlg* compAlg = new HanConfigCompAlg(); std::set<std::string> compAlgAtt; m_compAlgConfig.GetAttributeNames(compAlgID, compAlgAtt); @@ -1062,7 +1105,7 @@ Visit( const MiniConfigTreeNode* node ) const std::string subAlgs( m_compAlgConfig.GetStringAttribute(compAlgID,"subalgs") ); std::string::size_type pos = subAlgs.find(','); for(int size=subAlgs.size(), sizeOld=-8; - size != sizeOld; + size != sizeOld; subAlgs.erase(0, pos+1), pos = subAlgs.find(","),sizeOld=size, size=subAlgs.size()) { //std::cout << " --> adding component algorithm: " << subAlgs.substr(0,pos) << std::endl; compAlg->AddAlg( subAlgs.substr(0,pos)); @@ -1072,7 +1115,7 @@ Visit( const MiniConfigTreeNode* node ) const std::string libs( m_compAlgConfig.GetStringAttribute(compAlgID,"libnames") ); std::string::size_type pos = libs.find(','); for(int size=libs.size(), sizeOld=-8; - size != sizeOld; + size != sizeOld; libs.erase(0, pos+1), pos = libs.find(","),sizeOld=size, size=libs.size()) { //std::cout << " --> using library: " << libs.substr(0,pos) << std::endl; compAlg->AddLib( libs.substr(0,pos)); @@ -1082,7 +1125,7 @@ Visit( const MiniConfigTreeNode* node ) const compAlg->Write(); } } - + HanConfig::MetadataVisitor:: MetadataVisitor(TFile* outfile_, const MiniConfig& metadataConfig_) : m_outfile(outfile_) @@ -1108,9 +1151,9 @@ Visit( const MiniConfigTreeNode* node ) const m_outfile->cd(); } } - + std::map<std::string,MiniConfigTreeNode*> daughters = node->GetDaughters(); - std::map<std::string,MiniConfigTreeNode*>::const_iterator nodeiterEnd = daughters.end(); + std::map<std::string,MiniConfigTreeNode*>::const_iterator nodeiterEnd = daughters.end(); for( std::map<std::string,MiniConfigTreeNode*>::const_iterator iter = daughters.begin(); iter != nodeiterEnd; ++iter ) { std::string metadataID = iter->second->GetName(); @@ -1127,14 +1170,14 @@ Visit( const MiniConfigTreeNode* node ) const delete metadata; } } - + bool HanConfig:: Initialize( std::string configName ) { if( m_config == 0 || m_top_level == 0 ) { - + delete m_config; delete m_top_level; if (m_metadata) { @@ -1154,7 +1197,7 @@ Initialize( std::string configName ) } else { std::cerr << "Can't retrieve reference source info" << std::endl; } - + TIter nextKey( m_config->GetListOfKeys() ); TKey* compAlgKey(0); while( (compAlgKey = dynamic_cast<TKey*>( nextKey() )) != 0 ) { @@ -1166,7 +1209,7 @@ Initialize( std::string configName ) } delete obj; } - + TKey* key(0); m_metadata = newTList("HanMetadata"); @@ -1198,7 +1241,7 @@ Initialize( std::string configName ) return false; } } - + return true; } @@ -1235,7 +1278,7 @@ ChangeInputDir( TDirectory* dir, std::string path ) } return ChangeInputDir( dir, pName ); } - + return dir; } @@ -1246,7 +1289,7 @@ ChangeOutputDir( TFile* file, std::string path, DirMap_t& directories ) { if( file == 0 ) return 0; - + std::string::size_type i = path.find_last_of('/'); if( i != std::string::npos ) { std::string subPath( path, 0, i ); @@ -1272,9 +1315,8 @@ ChangeOutputDir( TFile* file, std::string path, DirMap_t& directories ) return dir; } } - + return file; } } // namespace dqi - diff --git a/DataQuality/DataQualityInterfaces/src/MiniConfig.cxx b/DataQuality/DataQualityInterfaces/src/MiniConfig.cxx index 684a5034029..af8bf1bb5f7 100644 --- a/DataQuality/DataQualityInterfaces/src/MiniConfig.cxx +++ b/DataQuality/DataQualityInterfaces/src/MiniConfig.cxx @@ -9,6 +9,7 @@ #include <fstream> #include <iostream> #include <sstream> +#include <optional> //#include <algorithm> #include "boost/algorithm/string/case_conv.hpp" @@ -74,19 +75,19 @@ MiniConfig:: ReadFile( std::string fileName ) { bool success(true); - + delete m_tree; m_tree = new MiniConfigTreeNode( "global", 0 ); m_tree->SetAttribKeywordPropagateDown( m_propagateDown ); MiniConfigTreeNode* node = m_tree; - + std::ifstream file( fileName.c_str() ); if( !file ) { std::cerr << "MiniConfig::ReadFile(): " << "cannot read from file: " << fileName << "\n"; return false; } - + std::string line; char c; std::string key; @@ -96,31 +97,31 @@ ReadFile( std::string fileName ) std::string val; int skipCount(0); int lineNumber = 0; - + while( getline(file,line) ) { ++lineNumber; std::istringstream linestream(line); c = 0; - + while( linestream.get(c) ) { // ignore leading whitespace if( !isspace(c) ) { break; } } - + // ignore empty lines if( c == 0 || isspace(c) ) { continue; } - + // ignore comments if( c == '#' ) { continue; } - + linestream.putback(c); - + // check for: } linestream >> sep; if( !linestream ) { @@ -144,10 +145,10 @@ ReadFile( std::string fileName ) } continue; } - + // check for: <att> = <val> att = sep; - linestream >> sep; + linestream >> sep; if( !linestream ) { std::cerr << "MiniConfig::ReadFile(): " << "badly formatted line: \"" << line << "\", line number " << lineNumber << "\n"; @@ -165,11 +166,11 @@ ReadFile( std::string fileName ) continue; } if( skipCount == 0 ) { - node->SetAttribute( att, val, false ); + node->SetAttribute( att, val, false ); } continue; } - + // check for: keyword <identifier> { key = att; const std::string& lokey = boost::algorithm::to_lower_copy(key); @@ -183,7 +184,7 @@ ReadFile( std::string fileName ) continue; } if( sep == "{" ) { - if( m_keywords.find(key) != m_keywords.end() + if( m_keywords.find(key) != m_keywords.end() || m_keywords.find(lokey) != m_keywords.end() ) { node = node->GetNewDaughter( id ); } @@ -197,12 +198,12 @@ ReadFile( std::string fileName ) } continue; } - + std::cerr << "MiniConfig::ReadFile(): " << "badly formatted line: \"" << line << "\", line number " << lineNumber << "\n"; success = false; } - + return success; } @@ -216,7 +217,7 @@ GetStringAttribute( std::string objName, std::string attName ) const << "not configured (no file has been read)\n"; return std::string(""); } - + const MiniConfigTreeNode* node = m_tree->GetNode( objName ); if( node == 0 ) { std::cerr << "MiniConfig::GetStringAttribute(): " @@ -236,14 +237,14 @@ GetIntAttribute( std::string objName, std::string attName ) const << "not configured (no file has been read)\n"; return 0; } - + const MiniConfigTreeNode* node = m_tree->GetNode( objName ); if( node == 0 ) { std::cerr << "MiniConfig::GetIntAttribute(): " << "\"" << objName << "\" does not exist\n"; return 0; } - + int val; std::string valstring = node->GetAttribute( attName ); std::istringstream valstream(valstring); @@ -253,7 +254,7 @@ GetIntAttribute( std::string objName, std::string attName ) const << "\"" << attName << "\" not an integer type\n"; return 0; } - + return val; } @@ -267,14 +268,14 @@ GetFloatAttribute( std::string objName, std::string attName ) const << "not configured (no file has been read)\n"; return 0; } - + const MiniConfigTreeNode* node = m_tree->GetNode( objName ); if( node == 0 ) { std::cerr << "MiniConfig::GetFloatAttribute(): " << "\"" << objName << "\" does not exist\n"; return 0; } - + float val; std::string valstring = node->GetAttribute( attName ); std::istringstream valstream(valstring); @@ -284,7 +285,7 @@ GetFloatAttribute( std::string objName, std::string attName ) const << ": \"" << attName << "\" not a floating-point type\n"; return 0; } - + return val; } @@ -294,20 +295,20 @@ MiniConfig:: GetAttributeNames( std::string objName, std::set<std::string>& attSet ) const { attSet.clear(); - + if( m_tree == 0 ) { std::cerr << "MiniConfig::GetAttributeNames(): " << "not configured (no file has been read)\n"; return; } - + const MiniConfigTreeNode* node = m_tree->GetNode( objName ); if( node == 0 ) { std::cerr << "MiniConfig::GetAttributeNames(): " << "\"" << objName << "\" does not exist\n"; return; } - + node->GetAttributeNames( attSet ); } @@ -324,6 +325,17 @@ SendVisitor( const MiniConfigTreeNode::Visitor& visitor ) const } } +void +MiniConfig:: +SendWriter(MiniConfigTreeNode::Writer& writer) +{ + if( m_tree == 0 ) { + std::cerr << "MiniConfig::SendWriter(): " + << "not configured (no file has been read)\n"; + } else { + m_tree->Accept(writer); + } +} -} // namespace dqi +} // namespace dqi diff --git a/DataQuality/DataQualityInterfaces/src/MiniConfigTreeNode.cxx b/DataQuality/DataQualityInterfaces/src/MiniConfigTreeNode.cxx index 7e552b61976..f19819762ba 100644 --- a/DataQuality/DataQualityInterfaces/src/MiniConfigTreeNode.cxx +++ b/DataQuality/DataQualityInterfaces/src/MiniConfigTreeNode.cxx @@ -74,7 +74,7 @@ GetNewDaughter( std::string name_ ) if( i != m_daughters.end() ) { return i->second; } - + MiniConfigTreeNode* node = new MiniConfigTreeNode( name_, this ); node->SetAttribKeywordPropagateDown(this->m_propagateDown); NodeMap_t::value_type nodeVal( name_, node ); @@ -103,7 +103,7 @@ GetParent() const } -std::map<std::string,MiniConfigTreeNode*> +std::map<std::string,MiniConfigTreeNode*> MiniConfigTreeNode:: GetDaughters() const { @@ -117,7 +117,7 @@ GetNode( std::string name_ ) const if( m_daughters.size() == 0 ) { return this; } - + std::string::size_type k = name_.find_first_of('/'); if( k != std::string::npos ) { std::string dName( name_, 0, k ); @@ -132,7 +132,7 @@ GetNode( std::string name_ ) const } return GetNode( pName ); } - + NodeIter_t i = m_daughters.find( name_ ); if( i == m_daughters.end() ) { return this; @@ -167,7 +167,7 @@ GetAttribute( std::string attName, bool calledFromDaughter ) const return i->second.first; } -// Like GetAttributes, but only returns attributes of *this* node, +// Like GetAttributes, but only returns attributes of *this* node, // not inherited ones std::string MiniConfigTreeNode:: @@ -225,6 +225,18 @@ Accept( const Visitor& visitor ) const } } +void +MiniConfigTreeNode:: +Accept(Writer& writer ) +{ + writer.Write(this); + NodeIter_t daugEnd = m_daughters.end(); + for( NodeIter_t i = m_daughters.begin(); i != daugEnd; ++i ) { + MiniConfigTreeNode* node = i->second; + node->Accept(writer); + } +} + void MiniConfigTreeNode:: SetAttribKeywordPropagateDown( bool propagateDown ) @@ -240,4 +252,3 @@ GetAttribKeywordPropagateDown() const } } // namespace dqi - diff --git a/DataQuality/DataQualityInterfaces/src/han_config_gen.cxx b/DataQuality/DataQualityInterfaces/src/han_config_gen.cxx index 06250c8199a..5a569247e13 100644 --- a/DataQuality/DataQualityInterfaces/src/han_config_gen.cxx +++ b/DataQuality/DataQualityInterfaces/src/han_config_gen.cxx @@ -1,9 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /** - * $Id: han_config_gen.cxx,v 1.3 2009-02-09 15:19:59 ponyisi Exp $ + * $Id: han_config_gen.cxx,v 1.3 2009-02-09 15:19:59 ponyisi $ */ #include <iostream> @@ -20,6 +20,11 @@ void usage( const std::string& command_name, int exit_code ); class CmdLineArgs { public: CmdLineArgs( int argc, char *argv[] ); + + + std::string m_connectionString = "sqlite://;schema=/afs/cern.ch/user/a/atlasdqm/dqmdisk1/cherrypy-devel/RefDB.db;dbname=REFDB"; + long m_runNumber = 2147483646; + bool m_bulk = false; std::string command; std::string mconfig; @@ -45,7 +50,7 @@ int main( int argc, char *argv[] ) outfileName += ".hcfg"; dqi::HanConfig config; - config.AssembleAndSave( infileName, outfileName ); + config.AssembleAndSave( infileName, outfileName, arg.m_connectionString, arg.m_runNumber, arg.m_bulk); return 0; } @@ -60,11 +65,44 @@ CmdLineArgs:: CmdLineArgs( int argc, char *argv[] ) { command = argv[0]; - if( argc > 3 ) usage( command, 1 ); + if( argc > 10 ) usage( command, 1 ); if( argc < 2 ) usage( command, 0 ); mconfig = argv[1]; - if(argc==3)conds=argv[2]; + + if(argc >= 3) { + int ic = 2; + while(ic < argc) { + int ir = argc - ic; + std::string par0 = argv[ic]; + if(par0 == "-c") { + if(ir > 1) { + m_connectionString = argv[ic + 1]; + std::cout << "Setting DB connection string to " << m_connectionString << std::endl; + ++ic; + } + } else if(par0 == "-r") { + if(ir > 1) { + try { + m_runNumber = std::stol(argv[ic + 1]); + std::cout << "Setting run number to " << m_runNumber << std::endl; + ++ic; + } catch(std::exception& e) { + std::cout << "Error with input arguments, specified run " << argv[ic+1] << " not a long" << '\n'; + } + } + } else if(par0 == "-b") { + if(ir > 1) { + m_bulk = (strcmp(argv[ic+1], "true") == 0); + std::cout << "Setting bulk processing mode to " << (m_bulk ? "true" : "false") << std::endl; + ++ic; + } + } else { + conds = argv[ic]; + } + ++ic; + } + } } -- GitLab From 03280d10edac06b4585303ccd4557709c3cfa0d1 Mon Sep 17 00:00:00 2001 From: Edson Carquin Lopez <edson.carquin.lopez@cern.ch> Date: Sun, 2 Aug 2020 18:59:47 +0000 Subject: [PATCH 455/459] Master fix atr 21788 --- .../TrigTauRec/src/TrigTauRecMergedMT.cxx | 13 ++++--- .../src/TrigTauCaloRoiUpdaterMT.cxx | 35 +++++++++++-------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/Trigger/TrigAlgorithms/TrigTauRec/src/TrigTauRecMergedMT.cxx b/Trigger/TrigAlgorithms/TrigTauRec/src/TrigTauRecMergedMT.cxx index 6f55f80e44d..922cf02c12d 100644 --- a/Trigger/TrigAlgorithms/TrigTauRec/src/TrigTauRecMergedMT.cxx +++ b/Trigger/TrigAlgorithms/TrigTauRec/src/TrigTauRecMergedMT.cxx @@ -159,13 +159,13 @@ StatusCode TrigTauRecMergedMT::execute(const EventContext& ctx) const // Get RoiDescriptor SG::ReadHandle< TrigRoiDescriptorCollection > roisHandle = SG::makeHandle( m_roIInputKey, ctx ); if ( not roisHandle.isValid() ) { - calo_errors.push_back(NoROIDescr); - return StatusCode::SUCCESS; + ATH_MSG_ERROR("No roisHandle found"); + return StatusCode::FAILURE; } if(roisHandle->size() == 0){ - ATH_MSG_DEBUG("RoIHandle size = Zero"); - return StatusCode::SUCCESS; + ATH_MSG_ERROR("RoIHandle size = Zero"); + return StatusCode::FAILURE; } const TrigRoiDescriptor *roiDescriptor = roisHandle->at(0); @@ -173,9 +173,8 @@ StatusCode TrigTauRecMergedMT::execute(const EventContext& ctx) const ATH_MSG_DEBUG(" RoI " << *roiDescriptor); } else { - ATH_MSG_DEBUG("Failed to find RoiDescriptor "); - calo_errors.push_back(NoROIDescr); - return StatusCode::SUCCESS; + ATH_MSG_ERROR("Failed to find RoiDescriptor "); + return StatusCode::FAILURE; } // get TauJetContainer from SG diff --git a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTauCaloRoiUpdaterMT.cxx b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTauCaloRoiUpdaterMT.cxx index e65d1cc10cf..d051d7e544c 100644 --- a/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTauCaloRoiUpdaterMT.cxx +++ b/Trigger/TrigHypothesis/TrigTauHypo/src/TrigTauCaloRoiUpdaterMT.cxx @@ -30,6 +30,8 @@ StatusCode TrigTauCaloRoiUpdaterMT::initialize() { } + + StatusCode TrigTauCaloRoiUpdaterMT::execute() { ATH_MSG_DEBUG( "Running "<< name() <<" ... " ); @@ -42,17 +44,15 @@ StatusCode TrigTauCaloRoiUpdaterMT::execute() { SG::ReadHandle< xAOD::CaloClusterContainer > CCContainerHandle = SG::makeHandle( m_clustersKey,ctx ); CHECK( CCContainerHandle.isValid() ); const xAOD::CaloClusterContainer *RoICaloClusterContainer = CCContainerHandle.get(); - ATH_MSG_DEBUG( "Found " << RoICaloClusterContainer->size() << " caloClusters, updating the corresponding RoI ... " ); if(RoICaloClusterContainer != NULL) { - ATH_MSG_DEBUG( "REGTEST: Size of vector CaloCluster container is " << RoICaloClusterContainer->size()); + ATH_MSG_DEBUG( "Size of vector CaloCluster container is " << RoICaloClusterContainer->size()); if(RoICaloClusterContainer->size()==0) { - ATH_MSG_DEBUG( "Cannot proceed, size of vector CaloCluster container is " << RoICaloClusterContainer->size()); - return StatusCode::SUCCESS; + ATH_MSG_DEBUG( "CaloCluster container has zero size"); } }else { - ATH_MSG_DEBUG( "no CaloCluster container found " ); - return StatusCode::SUCCESS; + ATH_MSG_ERROR( "no CaloCluster container found " ); + return StatusCode::FAILURE; } //get RoI descriptor @@ -60,15 +60,16 @@ StatusCode TrigTauCaloRoiUpdaterMT::execute() { ATH_MSG_DEBUG("Size of roisHandle: "<<roisHandle->size()); const TrigRoiDescriptor *roiDescriptor = roisHandle->at(0); - ATH_MSG_DEBUG( "; RoI ID = " << roiDescriptor->roiId() - << ": Eta = " << roiDescriptor->eta() - << ", Phi = " << roiDescriptor->phi() ); - // fill local variables for RoI reference position // Preserve the dEta and dPhi requirements from the original RoI - float dEta = fabs(roiDescriptor->etaPlus() - roiDescriptor->eta()); - float dPhi = fabs(CxxUtils::wrapToPi(roiDescriptor->phiPlus()-roiDescriptor->phi())); + float eta = roiDescriptor->eta(); + float phi = roiDescriptor->phi(); + float dEta = fabs(roiDescriptor->etaPlus() - eta); + float dPhi = fabs(CxxUtils::wrapToPi(roiDescriptor->phiPlus()-phi)); + ATH_MSG_DEBUG( "; RoI ID = " << roiDescriptor->roiId() + << ": Eta = " << eta + << ", Phi = " << phi ); // Make a minimal effort to speed things up ;) TLorentzVector myCluster; @@ -92,11 +93,15 @@ StatusCode TrigTauCaloRoiUpdaterMT::execute() { TauDetectorAxis += myCluster; } // end loop on clusters + //Only update the roi if TauDetectorAxis.Pt() is larger than zero, in other words, if the calo clusters sum makes sense + if(TauDetectorAxis.Eta()!=roiDescriptor->eta() && TauDetectorAxis.Pt()>0.) eta = TauDetectorAxis.Eta(); + if(TauDetectorAxis.Eta()!=roiDescriptor->eta() && TauDetectorAxis.Pt()>0.) phi = TauDetectorAxis.Phi(); + // Prepare the new RoI TrigRoiDescriptor *outRoi = new TrigRoiDescriptor(roiDescriptor->roiWord(), roiDescriptor->l1Id(), roiDescriptor->roiId(), - TauDetectorAxis.Eta(), TauDetectorAxis.Eta()-dEta, TauDetectorAxis.Eta()+dEta, - TauDetectorAxis.Phi(), CxxUtils::wrapToPi(TauDetectorAxis.Phi()-dPhi), CxxUtils::wrapToPi(TauDetectorAxis.Phi()+dPhi), - roiDescriptor->zed() ,roiDescriptor->zedMinus(), roiDescriptor->zedPlus()); + eta, eta-dEta, eta+dEta, + phi, CxxUtils::wrapToPi(phi-dPhi), CxxUtils::wrapToPi(phi+dPhi), + roiDescriptor->zed() ,roiDescriptor->zedMinus(), roiDescriptor->zedPlus()); ATH_MSG_DEBUG("Input RoI " << *roiDescriptor); ATH_MSG_DEBUG("Output RoI " << *outRoi); -- GitLab From b5d4477228a892ac416bd6a17d9ad66f4866fd27 Mon Sep 17 00:00:00 2001 From: Benjamin Michael Wynne <b.m.wynne@ed.ac.uk> Date: Mon, 3 Aug 2020 01:22:54 +0000 Subject: [PATCH 456/459] Remove early CaloMgr retrieve --- Calorimeter/CaloUtils/CaloUtils/CaloLCWeightTool.h | 2 -- Calorimeter/CaloUtils/src/CaloLCWeightTool.cxx | 10 +++------- .../share/ref_RDOtoRDOTrig_mt1_build.ref | 4 ++-- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/Calorimeter/CaloUtils/CaloUtils/CaloLCWeightTool.h b/Calorimeter/CaloUtils/CaloUtils/CaloLCWeightTool.h index dbf88a61f70..7f3e89cbf86 100644 --- a/Calorimeter/CaloUtils/CaloUtils/CaloLCWeightTool.h +++ b/Calorimeter/CaloUtils/CaloUtils/CaloLCWeightTool.h @@ -29,7 +29,6 @@ #include "GaudiKernel/EventContext.h" class CaloCell_ID; -class CaloDetDescrManager; class ICalorimeterNoiseTool; class CaloCluster; @@ -94,7 +93,6 @@ class CaloLCWeightTool : public AthAlgTool, virtual public IClusterCellWeightToo const CaloCell_ID* m_calo_id; - const CaloDetDescrManager* m_calo_dd_man; SG::ReadCondHandleKey<CaloNoise> m_noiseCDOKey{this,"CaloNoiseKey","electronicNoise","SG Key of CaloNoise data object"}; }; diff --git a/Calorimeter/CaloUtils/src/CaloLCWeightTool.cxx b/Calorimeter/CaloUtils/src/CaloLCWeightTool.cxx index ecdc57592ec..44c3707d596 100644 --- a/Calorimeter/CaloUtils/src/CaloLCWeightTool.cxx +++ b/Calorimeter/CaloUtils/src/CaloLCWeightTool.cxx @@ -26,7 +26,6 @@ #include "CaloEvent/CaloPrefetch.h" #include "xAODCaloEvent/CaloCluster.h" -#include "CaloDetDescr/CaloDetDescrManager.h" #include "CaloIdentifier/CaloCell_ID.h" #include "xAODCaloEvent/CaloClusterKineHelper.h" @@ -38,8 +37,7 @@ CaloLCWeightTool::CaloLCWeightTool(const std::string& type, m_signalOverNoiseCut(2), m_useHadProbability(false), m_interpolate(false), - m_calo_id(nullptr), - m_calo_dd_man(nullptr) + m_calo_id(nullptr) { declareInterface<IClusterCellWeightTool>(this); @@ -80,10 +78,8 @@ StatusCode CaloLCWeightTool::initialize() ATH_CHECK( m_key.initialize() ); - // pointer to detector manager: - ATH_CHECK( detStore()->retrieve (m_calo_dd_man, "CaloMgr") ); - m_calo_id = m_calo_dd_man->getCaloCell_ID(); - + ATH_CHECK( detStore()->retrieve( m_calo_id, "CaloCell_ID") ); + m_sampnames.reserve(CaloSampling::Unknown); for (int iSamp=0;iSamp<CaloSampling::Unknown;iSamp++) { m_sampnames.push_back(CaloSamplingHelper::getSamplingName((CaloSampling::CaloSample)iSamp)); diff --git a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref index a630bc33e2b..a7c78e8bf7d 100644 --- a/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref +++ b/Trigger/TrigValidation/TrigAnalysisTest/share/ref_RDOtoRDOTrig_mt1_build.ref @@ -425,8 +425,8 @@ TrigSignatureMoniMT INFO HLT_mu6_mu4_L12MU4 #171 TrigSignatureMoniMT INFO -- #1713982776 Events 4 4 4 4 4 4 - - 4 TrigSignatureMoniMT INFO -- #1713982776 Features 8 8 12 18 - - TrigSignatureMoniMT INFO HLT_mu6_mu6noL1_L1MU6 #451489897 -TrigSignatureMoniMT INFO -- #451489897 Events 10 10 10 10 10 10 5 4 4 -TrigSignatureMoniMT INFO -- #451489897 Features 14 13 16 21 8 7 +TrigSignatureMoniMT INFO -- #451489897 Events 10 10 10 10 10 10 6 4 4 +TrigSignatureMoniMT INFO -- #451489897 Features 14 13 16 21 9 7 TrigSignatureMoniMT INFO HLT_mu6fast_L1MU6 #3518031697 TrigSignatureMoniMT INFO -- #3518031697 Events 10 10 10 - - - - - 10 TrigSignatureMoniMT INFO -- #3518031697 Features 14 - - - - - -- GitLab From e751466837270d4ace82e4b08c7a3990582b65c7 Mon Sep 17 00:00:00 2001 From: Frank Winklmeier <frank.winklmeier@cern.ch> Date: Mon, 3 Aug 2020 06:47:14 +0000 Subject: [PATCH 457/459] Bump all project versions to 22.0.17 --- Projects/AnalysisBase/version.txt | 2 +- Projects/AthDataQuality/version.txt | 2 +- Projects/AthGeneration/version.txt | 2 +- Projects/AthSimulation/version.txt | 2 +- Projects/Athena/version.txt | 2 +- Projects/VP1Light/version.txt | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Projects/AnalysisBase/version.txt b/Projects/AnalysisBase/version.txt index a993ffd8236..3c1b7f67414 100644 --- a/Projects/AnalysisBase/version.txt +++ b/Projects/AnalysisBase/version.txt @@ -1 +1 @@ -22.0.16 +22.0.17 diff --git a/Projects/AthDataQuality/version.txt b/Projects/AthDataQuality/version.txt index a993ffd8236..3c1b7f67414 100644 --- a/Projects/AthDataQuality/version.txt +++ b/Projects/AthDataQuality/version.txt @@ -1 +1 @@ -22.0.16 +22.0.17 diff --git a/Projects/AthGeneration/version.txt b/Projects/AthGeneration/version.txt index a993ffd8236..3c1b7f67414 100644 --- a/Projects/AthGeneration/version.txt +++ b/Projects/AthGeneration/version.txt @@ -1 +1 @@ -22.0.16 +22.0.17 diff --git a/Projects/AthSimulation/version.txt b/Projects/AthSimulation/version.txt index a993ffd8236..3c1b7f67414 100644 --- a/Projects/AthSimulation/version.txt +++ b/Projects/AthSimulation/version.txt @@ -1 +1 @@ -22.0.16 +22.0.17 diff --git a/Projects/Athena/version.txt b/Projects/Athena/version.txt index a993ffd8236..3c1b7f67414 100644 --- a/Projects/Athena/version.txt +++ b/Projects/Athena/version.txt @@ -1 +1 @@ -22.0.16 +22.0.17 diff --git a/Projects/VP1Light/version.txt b/Projects/VP1Light/version.txt index a993ffd8236..3c1b7f67414 100644 --- a/Projects/VP1Light/version.txt +++ b/Projects/VP1Light/version.txt @@ -1 +1 @@ -22.0.16 +22.0.17 -- GitLab From a68be1baf51539e146efd66257d64c894f2299e5 Mon Sep 17 00:00:00 2001 From: Alaettin Serhan Mete <alaettin.serhan.mete@cern.ch> Date: Mon, 3 Aug 2020 11:43:58 +0000 Subject: [PATCH 458/459] AthenaConfiguration + PerfMonComps: Adding some basic new-style configuration for the PerfMonMTSvc --- .../python/AllConfigFlags.py | 5 ++ .../PerfMonComps/python/PerfMonCompsConfig.py | 52 +++++++++++++++++++ .../PerfMonComps/python/PerfMonConfigFlags.py | 12 +++++ 3 files changed, 69 insertions(+) create mode 100644 Control/PerformanceMonitoring/PerfMonComps/python/PerfMonCompsConfig.py create mode 100644 Control/PerformanceMonitoring/PerfMonComps/python/PerfMonConfigFlags.py diff --git a/Control/AthenaConfiguration/python/AllConfigFlags.py b/Control/AthenaConfiguration/python/AllConfigFlags.py index a4b9b4cf06b..e5be898d987 100644 --- a/Control/AthenaConfiguration/python/AllConfigFlags.py +++ b/Control/AthenaConfiguration/python/AllConfigFlags.py @@ -198,6 +198,11 @@ def _createCfgFlags(): return dqf _addFlagsCategory(acf, "DQ", __dq, 'AthenaMonitoring' ) + def __perfmon(): + from PerfMonComps.PerfMonConfigFlags import createPerfMonConfigFlags + return createPerfMonConfigFlags() + _addFlagsCategory(acf, "PerfMon", __perfmon, 'PerfMonComps') + return acf diff --git a/Control/PerformanceMonitoring/PerfMonComps/python/PerfMonCompsConfig.py b/Control/PerformanceMonitoring/PerfMonComps/python/PerfMonCompsConfig.py new file mode 100644 index 00000000000..8f41afd32b2 --- /dev/null +++ b/Control/PerformanceMonitoring/PerfMonComps/python/PerfMonCompsConfig.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python + +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator +from AthenaConfiguration.ComponentFactory import CompFactory +from AthenaCommon.Logging import logging + +## A minimal new-style configuration for PerfMonMTSvc +def PerfMonMTSvcCfg(flags, **kwargs): + """ Configuring PerfMonMTSvc """ + + # Get the logger + log = logging.getLogger("PerfMonMTSvcCfg") + log.info("Configuring PerfMonMTSvc with flags:") + log.info(" >> doFastMonMT {}".format(flags.PerfMon.doFastMonMT)) + log.info(" >> doFullMonMT {}".format(flags.PerfMon.doFullMonMT)) + + # Check if basic monitoring is asked for + if not flags.PerfMon.doFastMonMT and not flags.PerfMon.doFullMonMT: + log.info("Nothing to be done...") + return ComponentAccumulator() + + # Hook to PerfMonMTSvc + PerfMonMTSvc = CompFactory.PerfMonMTSvc + + # Set the main properties for the service + import os,psutil + kwargs.setdefault("wallTimeOffset", + psutil.Process(os.getpid()).create_time() * 1000) + kwargs.setdefault("numberOfThreads", + max(1,flags.Concurrency.NumThreads)) + kwargs.setdefault("numberOfSlots", + max(1,flags.Concurrency.NumConcurrentEvents)) + kwargs.setdefault("doComponentLevelMonitoring", + flags.PerfMon.doFullMonMT) + + # Get CA and add the service + acc = ComponentAccumulator() + acc.addService(PerfMonMTSvc(**kwargs), create=True) + + # Enable the auditors that are necessarry for the service + acc.setAppProperty("AuditAlgorithms", True) + acc.setAppProperty("AuditTools", True) + acc.setAppProperty("AuditServices", True) + + # Add the algorithm that is necessary for the service + PerfMonMTAlg = CompFactory.PerfMonMTAlg + acc.addEventAlgo(PerfMonMTAlg(), sequenceName='AthAlgSeq') + + # Return the CA + return acc diff --git a/Control/PerformanceMonitoring/PerfMonComps/python/PerfMonConfigFlags.py b/Control/PerformanceMonitoring/PerfMonComps/python/PerfMonConfigFlags.py new file mode 100644 index 00000000000..353af447999 --- /dev/null +++ b/Control/PerformanceMonitoring/PerfMonComps/python/PerfMonConfigFlags.py @@ -0,0 +1,12 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +from AthenaConfiguration.AthConfigFlags import AthConfigFlags + +def createPerfMonConfigFlags(): + pcf = AthConfigFlags() + + # Two basic flags for PerfMonMT + pcf.addFlag('PerfMon.doFastMonMT', False) + pcf.addFlag('PerfMon.doFullMonMT', False) + + return pcf -- GitLab From 1b926dafd0a104ab380be57879906be65ab2d874 Mon Sep 17 00:00:00 2001 From: Aleksandra Poreba <aleksandra.poreba@cern.ch> Date: Mon, 3 Aug 2020 12:32:15 +0000 Subject: [PATCH 459/459] Remove unnecessary deepcopy while chain merging The deepcopy caused unmerged ComponentAccumulators and thus errors in newJO configuration --- .../python/HLTMenuConfig/Menu/ChainMerging.py | 5 +- .../HLTMenuConfig/Menu/HLTCFConfig_newJO.py | 130 ++++++++++++++++-- .../python/HLTMenuConfig/Menu/LS2_v1_newJO.py | 3 +- 3 files changed, 118 insertions(+), 20 deletions(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainMerging.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainMerging.py index cf91f5c6ff6..5134fa01517 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainMerging.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/ChainMerging.py @@ -52,11 +52,10 @@ def mergeParallel(chainDefList, offset): from itertools import izip_longest as zip_longest # Use zip_longest so that we get None in case one chain has more steps than the other orderedSteps = list(zip_longest(*allSteps)) - myOrderedSteps = deepcopy(orderedSteps) combChainSteps =[] - log.debug("len(myOrderedSteps): %d", len(myOrderedSteps)) - for step_index, steps in enumerate(myOrderedSteps): + log.debug("len(orderedSteps): %d", len(orderedSteps)) + for step_index, steps in enumerate(orderedSteps): mySteps = list(steps) log.debug("Merging step counter %d", step_index+1) combStep = makeCombinedStep(mySteps, step_index+1, chainDefList) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig_newJO.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig_newJO.py index e936754bc87..4a8fa7f6898 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig_newJO.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig_newJO.py @@ -4,7 +4,7 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponentsNaming import CFNaming from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import TriggerConfigHLT -from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import isInputMakerBase, isHypoBase +from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import isInputMakerBase, isHypoBase, isComboHypoAlg from AthenaCommon.CFElements import parOR, seqAND, findAllAlgorithms from AthenaCommon.Logging import logging log = logging.getLogger( __name__ ) @@ -93,6 +93,20 @@ def generateDecisionTree(chains): return alg raise Exception("No input maker in seq "+seq.name) + @memoize + def findAllInputMakers( stepCounter, stepName ): + seq = getSingleMenuSeq( stepCounter, stepName ) + algs = findAllAlgorithms( seq ) + result = [] + for alg in algs: + if isInputMakerBase(alg): + result.append(alg) + + if result: + return result + else: + raise Exception("No input maker in seq "+seq.name) + @memoize def findHypoAlg( stepCounter, stepName ): seq = getSingleMenuSeq( stepCounter, stepName ) @@ -102,6 +116,29 @@ def generateDecisionTree(chains): return alg raise Exception("No hypo alg in seq "+seq.name) + @memoize + def findAllHypoAlgs( stepCounter, stepName ): + seq = getSingleMenuSeq( stepCounter, stepName ) + algs = findAllAlgorithms( seq ) + result = [] + for alg in algs: + if isHypoBase(alg): + result.append(alg) + + if result: + return result + else: + raise Exception("No hypo alg in seq "+seq.name) + + @memoize + def findComboHypoAlg( stepCounter, stepName ): + seq = getSingleMenuSeq( stepCounter, stepName ) + algs = findAllAlgorithms( seq ) + for alg in algs: + if isComboHypoAlg(alg): + return alg + raise Exception("No combo hypo alg in seq "+seq.name) + def addAndAssureUniqness( prop, toadd, context="" ): if toadd not in prop: log.info("{} value {} not there".format(context, toadd)) @@ -120,13 +157,44 @@ def generateDecisionTree(chains): raise Exception("{}, when setting property found conflicting values, existing {} and new {}".format(context, prop, toadd)) - #create all sequences and filter algs, merge CAs from signatures (decision CF) + # create all sequences and filter algs, merge CAs from signatures (decision CF) for chain in chains: for stepCounter, step in enumerate( chain.steps, 1 ): - for sequence in step.sequences: - getFilterAlg( stepCounter, step.name ) - recoSeqName = getSingleMenuSeq( stepCounter, step.name ).name - acc.merge( sequence.ca, sequenceName=recoSeqName ) + getFilterAlg( stepCounter, step.name ) + recoSeqName = getSingleMenuSeq( stepCounter, step.name ).name + + if step.isCombo: + # add merged reco sequence + stepRecoName = step.name + CFNaming.RECO_POSTFIX + stepViewName = step.name + CFNaming.VIEW_POSTFIX + + acc.addSequence( seqAND(stepViewName), parentName=recoSeqName ) + acc.addSequence( parOR(stepRecoName), parentName=stepViewName ) + + for sequence in step.sequences: + for stepView in sequence.ca.getSequence().Members: + for viewMember in stepView.Members: + if isHypoBase(viewMember): + # add hypo alg to view sequence + acc.addEventAlgo( viewMember, sequenceName=stepViewName ) + else: + # add reco sequence to merged _reco + for recoAlg in viewMember.Members: + acc.addSequence( recoAlg, parentName=stepRecoName ) + + # elements from ca were moved above to the appropriate sequences + # so sequence and algorithms are considered as merged + sequence.ca._algorithms = {} + sequence.ca._sequence.Members = [] + acc.merge(sequence.ca, sequenceName=recoSeqName) + + # create combo hypo + comboHypo = CompFactory.ComboHypo( step.combo.Alg.getName() ) + acc.addEventAlgo( comboHypo, sequenceName=stepViewName ) + + else: + acc.merge( step.sequences[0].ca, sequenceName=recoSeqName ) + # cleanup settings made by Chain & related objects (can be removed in the future) for chain in chains: @@ -135,13 +203,22 @@ def generateDecisionTree(chains): filterAlg.Input = [] filterAlg.Output = [] - imAlg = findInputMaker( stepCounter, step.name ) - imAlg.InputMakerInputDecisions = [] - imAlg.InputMakerOutputDecisions = "" + imAlgs = findAllInputMakers( stepCounter, step.name ) + for imAlg in imAlgs: + imAlg.InputMakerInputDecisions = [] + imAlg.InputMakerOutputDecisions = "" + + hypoAlgs = findAllHypoAlgs( stepCounter, step.name ) + for hypoAlg in hypoAlgs: + hypoAlg.HypoInputDecisions = "" + hypoAlg.HypoOutputDecisions = "" + + if step.isCombo: + comboHypoAlg = findComboHypoAlg( stepCounter, step.name ) + comboHypoAlg.MultiplicitiesMap = {} + comboHypoAlg.HypoInputDecisions = [] + comboHypoAlg.HypoOutputDecisions = [] - hypoAlg = findHypoAlg( stepCounter, step.name ) - hypoAlg.HypoInputDecisions = "" - hypoAlg.HypoOutputDecisions = "" # connect all outputs (decision DF) for chain in chains: @@ -150,7 +227,11 @@ def generateDecisionTree(chains): # Filters linking filterAlg = getFilterAlg( stepCounter, step.name ) - filterAlg.Chains = addAndAssureUniqness( filterAlg.Chains, chain.name, "{} filter alg chains".format( filterAlg.name ) ) + if step.isCombo: + chainDictLegs = ' '.join(map(str, [dic['chainName'] for dic in step.chainDicts])) + filterAlg.Chains = addAndAssureUniqness( filterAlg.Chains, chainDictLegs, "{} filter alg chains".format( filterAlg.name ) ) + else: + filterAlg.Chains = addAndAssureUniqness( filterAlg.Chains, chain.name, "{} filter alg chains".format( filterAlg.name ) ) if stepCounter == 1: filterAlg.Input = addAndAssureUniqness( filterAlg.Input, chain.L1decisions[0], "{} L1 input".format( filterAlg.name ) ) @@ -159,7 +240,7 @@ def generateDecisionTree(chains): filterAlg.Input = addAndAssureUniqness( filterAlg.Input, hypoOutput, "{} input".format( filterAlg.name ) ) # Input Maker linking - im = findInputMaker( stepCounter, step.name ) + im = findAllInputMakers( stepCounter, step.name )[seqCounter] for i in filterAlg.Input: filterOutputName = CFNaming.filterOutName( filterAlg.name, i ) filterAlg.Output = addAndAssureUniqness( filterAlg.Output, filterOutputName, "{} output".format( filterAlg.name ) ) @@ -167,8 +248,9 @@ def generateDecisionTree(chains): imOutputName = CFNaming.inputMakerOutName( im.name ) im.InputMakerOutputDecisions = assureUnsetOrTheSame( im.InputMakerOutputDecisions, imOutputName, "{} IM output".format( im.name ) ) + # Hypo linking - hypoAlg = findHypoAlg( stepCounter, step.name ) + hypoAlg = findAllHypoAlgs( stepCounter, step.name )[seqCounter] hypoAlg.HypoInputDecisions = assureUnsetOrTheSame( hypoAlg.HypoInputDecisions, im.InputMakerOutputDecisions, "{} hypo input".format( hypoAlg.name ) ) hypoOutName = CFNaming.hypoAlgOutName( hypoAlg.name ) @@ -186,6 +268,24 @@ def generateDecisionTree(chains): else: hypoAlg.HypoTools.append( sequence._hypoToolConf.confAndCreate( TriggerConfigHLT.getChainDictFromChainName( chain.name ) ) ) + # Combo Hypo linking + if step.isCombo: + comboHypoAlg = findComboHypoAlg( stepCounter, step.name ) + comboHypoAlg.MultiplicitiesMap[chain.name] = step.multiplicity + + comboInputList = findAllHypoAlgs( stepCounter, step.name ) + for comboInput in comboInputList: + comboHypoAlg.HypoInputDecisions = addAndAssureUniqness( comboHypoAlg.HypoInputDecisions, comboInput.name, + "{} comboHypo input".format( comboHypoAlg.name ) ) + + comboOutName = CFNaming.comboHypoOutputName( comboHypoAlg.name, comboInput.name ) + comboHypoAlg.HypoOutputDecisions = addAndAssureUniqness( comboHypoAlg.HypoOutputDecisions, comboOutName, + "{} comboHypo output".format( comboHypoAlg.name ) ) + + # Combo Hypo Tools + for comboToolConf in step.comboToolConfs: + comboHypoAlg.ComboHypoTools.append( comboToolConf.confAndCreate( TriggerConfigHLT.getChainDictFromChainName( chain.name ) ) ) + for chain in chains: for stepCounter, step in enumerate( chain.steps, 1 ): diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py index a729b66262c..24f9c763c64 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py @@ -61,8 +61,7 @@ def setupMenu(flags): ] flags.Trigger.menu.combined = [ -# ChainProp(name='HLT_e7_mu10_L1EM7_MU10', groups=SingleElectronGroup), -# ChainProp(name='HLT_e5_mu5_L1EM7_MU10', groups=SingleElectronGroup), + ChainProp(name='HLT_e7_mu10_L1EM7_MU10', groups=SingleElectronGroup) ] if __name__ == "__main__": -- GitLab