diff --git a/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_HeavyIon.cxx b/InnerDetector/InDetRecTools/SiSpacePointsSeedTool_xk/src/SiSpacePointsSeedMaker_HeavyIon.cxx index 02777545edfc2acf061cde31d621e6f00d7887dc..1113538c02f69d86c2ba8ba3ac8d59b4d6f15b41 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 a9743a824d95b6eae67e0c1a33af9c5863007634..4c4c571f632d3e66126f9c38239b8ce255d2333e 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 fe4767485944c316c24e17e8e0a84c589ea0b122..6bf24b8957bc236bbb5f9e0171443c3b554eb09f 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"