Commit 812f5084 authored by Jiří Mašík's avatar Jiří Mašík
Browse files

Merge branch '21.3' of ssh://gitlab.cern.ch:7999/atlas/athena into data-overlay

parents 1d9d07a9 faa23dd4
......@@ -23,7 +23,7 @@ def CaloLumiBCIDSCToolDefault(name='CaloLumiBCIDSCToolDefault'):
from IOVDbSvc.CondDB import conddb
conddb.addFolder("LAR_OFL","/LAR/ElecCalibMCSC/Shape")
conddb.addFolder("LAR_OFL","/LAR/ElecCalibMCSC/MinBias")
conddb.addFolder("LAR_OFL","/LAR/ElecCalibMCSC/MinBiasAverage<tag>LARElecCalibMCSCMinBiasAverage-000</tag>")
conddb.addFolder("LAR_OFL","/LAR/ElecCalibMCSC/LArPileupAverage<tag>LARElecCalibMCSCLArPileupAverage-IOVDEP-00</tag>")
theTool = CaloLumiBCIDTool(name,
isMC=True,
isSC=True,
......
......@@ -1083,7 +1083,7 @@
<region group="mdt">
<range field="stationName" value="EIL" />
<range field="stationEta" values="-4" />
<range field="stationEta" values="-4 4" />
<range field="stationPhi" values="1 5" />
<range field="technology" value="MDT" />
<range field="multiLayer" minvalue="1" maxvalue="2" />
......@@ -1093,7 +1093,7 @@
<region group="mdt">
<range field="stationName" value="EIL" />
<range field="stationEta" values="-4" />
<range field="stationEta" values="-4 4" />
<range field="stationPhi" values="2 3 4 7" />
<range field="technology" value="MDT" />
<range field="multiLayer" minvalue="1" maxvalue="2" />
......@@ -1103,7 +1103,7 @@
<region group="mdt">
<range field="stationName" value="EIL" />
<range field="stationEta" values="-4" />
<range field="stationEta" values="-4 4" />
<range field="stationPhi" values="6 8" />
<range field="technology" value="MDT" />
<range field="multiLayer" minvalue="1" maxvalue="2" />
......@@ -1113,7 +1113,7 @@
<region group="mdt">
<range field="stationName" value="EIL" />
<range field="stationEta" values="-5" />
<range field="stationEta" values="-5 5" />
<range field="stationPhi" values="1 5" />
<range field="technology" value="MDT" />
<range field="multiLayer" minvalue="1" maxvalue="2" />
......
......@@ -1051,6 +1051,46 @@
<range field="tube" minvalue="1" maxvalue="40" />
</region>
<region group="mdt">
<range field="stationName" value="EIL" />
<range field="stationEta" values="-4 4" />
<range field="stationPhi" values="1 5" />
<range field="technology" value="MDT" />
<range field="multiLayer" minvalue="1" maxvalue="2" />
<range field="tubeLayer" minvalue="1" maxvalue="4" />
<range field="tube" minvalue="1" maxvalue="12" />
</region>
<region group="mdt">
<range field="stationName" value="EIL" />
<range field="stationEta" values="-4 4" />
<range field="stationPhi" values="2 3 4 7" />
<range field="technology" value="MDT" />
<range field="multiLayer" minvalue="1" maxvalue="2" />
<range field="tubeLayer" minvalue="1" maxvalue="4" />
<range field="tube" minvalue="1" maxvalue="54" />
</region>
<region group="mdt">
<range field="stationName" value="EIL" />
<range field="stationEta" values="-4 4" />
<range field="stationPhi" values="6 8" />
<range field="technology" value="MDT" />
<range field="multiLayer" minvalue="1" maxvalue="2" />
<range field="tubeLayer" minvalue="1" maxvalue="4" />
<range field="tube" minvalue="1" maxvalue="42" />
</region>
<region group="mdt">
<range field="stationName" value="EIL" />
<range field="stationEta" values="-5 5" />
<range field="stationPhi" values="1 5" />
<range field="technology" value="MDT" />
<range field="multiLayer" minvalue="1" maxvalue="2" />
<range field="tubeLayer" minvalue="1" maxvalue="4" />
<range field="tube" minvalue="1" maxvalue="42" />
</region>
<region group="mdt">
<range field="stationName" value="EEL" />
<range field="stationEta" values="-1 1" />
......
......@@ -115,6 +115,7 @@ public:
/// \name indexing accessors (e.g. for writing)
//@{
int barcode() const { return int(m_extBarcode.barcode()); } //FIXME ret type
static uint16_t getEventNumberForEventPosition(EBC_EVCOLL evColl, index_type position, IProxyDict* sg);
static index_type getEventNumberForEventPosition(EBC_EVCOLL evColl, index_type position) ; //if the an old event index (position in the collection) is stored, returns the event number of the corresponding GenEvent in the specified collection
index_type getEventNumberForEventPosition(index_type position) const; //if the an old event index (position in the collection) is stored, returns the event number of the corresponding GenEvent
static index_type getEventPositionForEventNumber(EBC_EVCOLL evColl, index_type evNumber); //Returns the position/index in the specified collection of the event having the given event number
......
......@@ -58,6 +58,42 @@ HepMcParticleLink::HepMcParticleLink(const HepMC::GenParticle* part,
}
uint16_t HepMcParticleLink::getEventNumberForEventPosition(EBC_EVCOLL evColl, index_type position, IProxyDict* sg) {
CLID clid = ClassID_traits<McEventCollection>::ID();
const McEventCollection* pEvtColl(nullptr);
const std::string * colNames;
if (evColl==EBC_MAINEVCOLL) {
colNames=s_MAINEVCOLKEYS;
}
else if (evColl==EBC_FIRSTPUEVCOLL) {
colNames=s_FIRSTPUEVCOLKEYS;
}
else if (evColl==EBC_SECONDPUEVCOLL) {
colNames=s_SECONDPUEVCOLKEYS;
}
else if (evColl==EBC_THIRDPUEVCOLL) {
colNames=s_THIRDPUEVCOLKEYS;
}
else {
return 0;
}
for (unsigned int iName=0; iName<4; iName++) {
SG::DataProxy* proxy = sg->proxy(clid, colNames[iName]);
if (proxy) {
pEvtColl = SG::DataProxy_cast<McEventCollection> (proxy);
if(pEvtColl && pEvtColl->size()>position) {
const HepMC::GenEvent *pEvt(pEvtColl->at(position));
if(pEvt) {
return pEvt->event_number();
}
break;
}
}
}
return 0;
}
uint16_t HepMcParticleLink::getEventNumberForEventPosition(EBC_EVCOLL evColl, index_type position) {
const McEventCollection* pEvtColl = retrieveMcEventCollection(evColl);
if (pEvtColl && position<pEvtColl->size()) {
......
......@@ -138,7 +138,7 @@ LArFlatConditionSvc::LArFlatConditionSvc( const std::string& name, ISvcLocator*
declareProperty("RampSCInput", m_objInfo[14].m_inputKey="/LAR/ElecCalibMCSC/Ramp");
declareProperty("ShapeSCInput", m_objInfo[15].m_inputKey="/LAR/ElecCalibMCSC/Shape");
declareProperty("MinBiasSCInput", m_objInfo[16].m_inputKey="/LAR/ElecCalibMCSC/MinBias");
declareProperty("MinBiasAverageSCInput", m_objInfo[17].m_inputKey="/LAR/ElecCalibMCSC/MinBiasAverage");
declareProperty("MinBiasAverageSCInput", m_objInfo[17].m_inputKey="/LAR/ElecCalibMCSC/LArPileupAverage");
declareProperty("DoSuperCells", m_doSuperCells);
declareProperty("DoRegularCells", m_doRegularCells);
......
......@@ -67,6 +67,9 @@ namespace Muon
/** @brief Destructor: */
virtual ~MMPrepData();
/** @brief set microTPC parameters */
void setMicroTPC(double angle, double chisqProb);
/** @brief Returns the global position*/
const Amg::Vector3D& globalPosition() const;
......@@ -80,6 +83,12 @@ namespace Muon
/** @brief Returns the ADC counts */
int charge() const;
/** @brief Returns the microTPC angle */
int angle() const;
/** @brief Returns the microTPC chisq Prob. */
int chisqProb() const;
/** @brief Dumps information about the PRD*/
MsgStream& dump( MsgStream& stream) const;
......@@ -97,6 +106,10 @@ namespace Muon
/** @brief measured charge */
int m_charge;
/** @angle and chisquare from micro-TPC fit */
double m_angle;
double m_chisqProb;
};
inline const MuonGM::MMReadoutElement* MMPrepData::detectorElement() const
......@@ -122,6 +135,16 @@ namespace Muon
return m_charge;
}
inline int MMPrepData::angle() const
{
return m_angle;
}
inline int MMPrepData::chisqProb() const
{
return m_chisqProb;
}
}
#endif // MUONPREPRAWDATA_MMREPDATA_H
......
......@@ -19,7 +19,9 @@ namespace Muon
MuonCluster(RDOId, idDE, locpos, rdoList, locErrMat), //call base class constructor
m_detEl(detEl),
m_time(time),
m_charge(charge)
m_charge(charge),
m_angle(0),
m_chisqProb(0)
{ }
MMPrepData::MMPrepData( const Identifier& RDOId,
......@@ -31,7 +33,9 @@ namespace Muon
MuonCluster(RDOId, idDE, locpos, rdoList, locErrMat), //call base class constructor
m_detEl(detEl),
m_time(0),
m_charge(0)
m_charge(0),
m_angle(0),
m_chisqProb(0)
{ }
// Destructor:
......@@ -45,7 +49,9 @@ namespace Muon
MuonCluster(),
m_detEl(0),
m_time(0),
m_charge(0)
m_charge(0),
m_angle(0),
m_chisqProb(0)
{ }
//copy constructor:
......@@ -53,7 +59,9 @@ namespace Muon
MuonCluster(RIO),
m_detEl( RIO.m_detEl ),
m_time(RIO.m_time),
m_charge(RIO.m_charge)
m_charge(RIO.m_charge),
m_angle(RIO.m_angle),
m_chisqProb(RIO.m_chisqProb)
{ }
//move constructor:
......@@ -61,9 +69,19 @@ namespace Muon
MuonCluster(std::move(RIO)),
m_detEl( RIO.m_detEl ),
m_time(RIO.m_time),
m_charge(RIO.m_charge)
m_charge(RIO.m_charge),
m_angle(RIO.m_angle),
m_chisqProb(RIO.m_chisqProb)
{ }
/// set the micro-tpc quantities
void MMPrepData::setMicroTPC(double angle, double chisqProb)
{
m_angle = angle;
m_chisqProb = chisqProb;
}
//assignment operator
MMPrepData&
MMPrepData::operator=(const MMPrepData& RIO)
......
......@@ -109,10 +109,12 @@ def CscRdoToCscPrepData(name="CscRdoToCscPrepData", **kwargs):
#############################################################################
def MM_PrepDataProviderTool(name="MM_PrepDataProviderTool", **kwargs):
kwargs.setdefault("ClusterBuilderTool","SimpleMMClusterBuilderTool")
from MuonMM_CnvTools.MuonMM_CnvToolsConf import Muon__MmRdoToPrepDataTool
return Muon__MmRdoToPrepDataTool(name,**kwargs)
def STGC_PrepDataProviderTool(name="STGC_PrepDataProviderTool", **kwargs):
kwargs.setdefault("ClusterBuilderTool","SimpleSTgcClusterBuilderTool")
from MuonSTGC_CnvTools.MuonSTGC_CnvToolsConf import Muon__sTgcRdoToPrepDataTool
return Muon__sTgcRdoToPrepDataTool(name,**kwargs)
### algorithms for other technologies can use C++ defaults
......
......@@ -121,6 +121,8 @@ addTool( "MuonRecExample.MuonPrdProviderToolsConfig.RpcPrepDataProviderTool", "R
addTool( "MuonRecExample.MuonPrdProviderToolsConfig.MdtPrepDataProviderTool", "MdtPrepDataProviderTool" )
addTool( "MuonRecExample.MuonPrdProviderToolsConfig.TgcPrepDataProviderTool", "TgcPrepDataProviderTool" )
addTool( "MuonRecExample.MuonPrdProviderToolsConfig.CscPrepDataProviderTool", "CscPrepDataProviderTool" )
addTool( "MuonRecExample.MuonPrdProviderToolsConfig.MM_PrepDataProviderTool", "MM_PrepDataProviderTool" )
addTool( "MuonRecExample.MuonPrdProviderToolsConfig.STGC_PrepDataProviderTool", "STGC_PrepDataProviderTool" )
addAlgorithm("MuonRecExample.MuonPrdProviderToolsConfig.CscRdoToCscPrepData", "CscRdoToCscPrepData")
......
......@@ -36,6 +36,7 @@ protected:
const xAOD::IParticleContainer* m_trigInputClusters; // used in trigger context only
mutable xAOD::IParticleContainer* m_trigOutputClusters;
bool m_trigger;
bool m_isEMTrigger;
// P-A : a property defining the type name of the input constituent
std::string m_inputTypeName = "CaloCluster"; // MEN: Check this
......
......@@ -20,6 +20,7 @@
#include "xAODPFlow/PFO.h"
#include "xAODPFlow/PFOContainer.h"
#include "xAODPFlow/PFOAuxContainer.h"
#include "xAODCaloEvent/CaloClusterChangeSignalState.h"
JetConstituentModSequence::JetConstituentModSequence(const std::string &name): asg::AsgTool(name), m_trigInputClusters(NULL), m_trigOutputClusters(NULL) {
......@@ -31,6 +32,7 @@ JetConstituentModSequence::JetConstituentModSequence(const std::string &name): a
declareProperty("InputType", m_inputTypeName, "The xAOD type name for the input container.");
declareProperty("Modifiers", m_modifiers, "List of IJet tools.");
declareProperty("Trigger", m_trigger=false);
declareProperty("EMTrigger", m_isEMTrigger=false);
declareProperty("SaveAsShallow", m_saveAsShallow=true, "Save as shallow copy");
}
......@@ -94,6 +96,18 @@ int JetConstituentModSequence::execute() const {
return 1;
}
// Handle the change of calibration differently in the trigger in R21, as
// needing to deep copy costs a lot more memory
// Add clusters to the list to register a change of state
// They are restored to original state when the list goes out of scope
CaloClusterChangeSignalStateList signalStateList;
if(m_trigger && m_isEMTrigger){
xAOD::CaloClusterContainer* clust = dynamic_cast<xAOD::CaloClusterContainer*> (modifiedCont); // Get CaloCluster container
for(xAOD::CaloCluster* cl : *clust) {
signalStateList.add(cl, xAOD::CaloCluster::UNCALIBRATED);
}
}
// Now pass the input container shallow copy through the modifiers
// Loop over the modifier tools:
......
......@@ -1157,19 +1157,12 @@ class TrigHLTSoftKiller(TrigHLTJetRecConf.TrigHLTSoftKiller):
self.voronoiTool = voronoiTool
modifiers = [self.voronoiTool, self.skWeightTool]
# We only want an EM tool if we are working with EM clusters
# The tool should be used before calling SoftKiller (prepend to list)
if cluster_calib == "EM":
emTool = ClusterAtEMScaleTool('emTool_'+name+'_'+cluster_calib)
jtm.add(emTool)
self.emTool = emTool
modifiers.insert(0,self.emTool)
skclustModSeq = JetConstituentModSequence('ClustModifSequence_'+name+'_'+cluster_calib,
InputContainer = "CaloCalTopoClusters",
OutputContainer = self.output_collection_label,
InputType = "CaloCluster",
Trigger = True,
EMTrigger = (cluster_calib=="EM"),
Modifiers = modifiers
)
jtm.add(skclustModSeq)
......
......@@ -1980,7 +1980,7 @@ const Trk::RIO_OnTrack* FTK_DataProviderSvc::createPixelCluster(const Identifie
// contain long pixels or ganged pixels
// Also require calibration service is available....
double eta = -std::log(std::tan(trkPerigee.parameters()[Trk::theta]/2.));
double eta = std::fabs(std::log(std::tan(trkPerigee.parameters()[Trk::theta]/2.)));
if(averageZPitch > 399*micrometer && averageZPitch < 401*micrometer){
......
......@@ -423,8 +423,8 @@ FTK_PixelClusterOnTrackTool::correctDefault
InDetDD::SiLocalPosition centroid = pix->localPosition();
double shift = element->getLorentzCorrection();
int nrows = pix->width().colRow()[Trk::locX];
int ncol = pix->width().colRow()[Trk::locX];
double ang = 999.;
int ncol = pix->width().colRow()[Trk::locY];
double ang = 180 * angle * M_1_PI;
double eta = 999.;
ATH_MSG_VERBOSE(" row " << row << " col " << col << " nrows " << nrows <<
" ncol " << ncol << " locX " << centroid.xPhi() << " locY " << centroid.xEta());
......
......@@ -843,8 +843,15 @@ FTK_SGHitInput::construct_truth_bitmap( const HepMC::GenParticle* particle ) con
if( std::abs(p->pdg_id())==211 && level<=1 ) { result.set( PION_IMMEDIATE_PARENT_BIT , 1 ); }
if( result.count()==NBITS ) { break; }
parents.pop_back();
if( !(p->production_vertex()) ) { continue; }
if( p->production_vertex() == nullptr ) { continue; }
for( HepMC::GenVertex::particle_iterator i=p->production_vertex()->particles_begin(HepMC::parents), f=p->production_vertex()->particles_end(HepMC::parents); i!=f; ++i ) {
// In some older sherpa samples, the parent record is broken
// This is identifiable by the "end" iterator above being nullptr
// The best thing to do in this situation is just break, and abort the search for further parents
if((*f)==nullptr){
m_log << MSG::INFO << "Bad truth record, aborting parent search"<< endmsg;
break;
}
parents.push_back( Parent(*i,level+1) );
}
}
......
......@@ -1530,6 +1530,7 @@ trigMuonEFCombinerDiMuonMassThresholds = {
'10invm60': [ 10.0, 60.0 ],
'20invm60': [ 20.0, 60.0 ],
'20invm80': [ 20.0, 80.0 ],
'10invm80': [ 10.0, 80.0 ],
}
class TrigMuonEFCombinerDiMuonMassHypoConfig(TrigMuonEFCombinerDiMuonMassHypo) :
......
# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
from AthenaCommon.Logging import logging
def enableEfexAlgorithms( algSequence,
SuperCellContainer='SCell',
useTDR=False,
doLArFex=False,
doEle=True,
doTau=True,
ApplySCQual=True,
SCBitMask=0x40,
logLevel = logging.INFO):
log = logging.getLogger( 'TrigT1CaloFexSim.L1Sim.eFEX' )
log.setLevel(logLevel)
log.info("Enable eFEX algorithms")
# the CaloNoiseTool as global tool
from AthenaCommon.AppMgr import ToolSvc
from CaloTools.CaloNoiseToolDefault import CaloNoiseToolDefault
theCaloNoiseTool=CaloNoiseToolDefault()
ToolSvc+=theCaloNoiseTool
from TrigL1CaloUpgrade.TrigL1CaloUpgradeConf import TrigT1CaloEFex
# eFEX clusters with or without BCID based energy correction
if(useTDR and doEle):
log.debug("Adding TDR version of TrigT1CaloEFex/TrigT1CaloEFexCl to AthAlgSeq")
algSequence += TrigT1CaloEFex( name="TrigT1CaloEFexCl",
CleanCellContainerSkim=ApplySCQual,
QualBitMask = SCBitMask,
OutputClusterName="SClusterCl",
SuperCellContainer=SuperCellContainer,
EnergyWeightedCluster=True)
elif doEle:
log.debug("Adding new version of TrigT1CaloEFex/TrigT1CaloEFexCl to AthAlgSeq")
algSequence += TrigT1CaloEFex( name="TrigT1CaloEFexCl",
CleanCellContainer=ApplySCQual,
QualBitMask=SCBitMask,
OutputClusterName="SClusterCl",
SuperCellContainer=SuperCellContainer,
ClusterEnergyThreshold=4.0,
ApplyBaseLineSelection=False,
EnergyWeightedCluster=False)
# Schedule the tau algorihtm
if doTau:
from TrigL1CaloUpgrade.TrigL1CaloUpgradeConf import TrigT1CaloRun3TauFex
algSequence += TrigT1CaloRun3TauFex( name="TrigT1CaloEFexTau",
CleanCellContainer=False,#Not currently properly enabled for Tau's
CleanCellContainerSkim=True,#Should work with new implementation
#EnableMonitoring=True,
SuperCellContainer=SuperCellContainer,
OutputClusterName="SClusterTau" )
# LArFex algorithms for different sigma
if( doLArFex ):
from TrigL1CaloUpgrade.TrigL1CaloUpgradeConf import LArFex
for sigma in [ 1, 2, 3 ]:
log.debug("Adding LArFex/%iSig to AthAlgSeq" % sigma)
algSequence += LArFex( name="%iSig" % sigma,
EtInSigma = 3.0,
CaloNoiseTool = theCaloNoiseTool,
EtInSigmaSelect = sigma,
OutputClusterName = "LArLayer1Vars%iSig" % sigma)
......@@ -48,6 +48,7 @@ TrigT1CaloBaseFex::TrigT1CaloBaseFex( const std::string& name, ISvcLocator* pSvc
declareProperty("RHadThreshold", m_RHad_thresh = 0.16);
declareProperty("L1WidthThreshold", m_L1Width_thresh = 0.02);
declareProperty("EtaThresholdToApplyL1Width", m_eta_dropL1Width = 2.3);
declareProperty("UseREtaL12", m_use_REtaL12 = false);
}
StatusCode TrigT1CaloBaseFex::initialize(){
......@@ -591,12 +592,10 @@ float TrigT1CaloBaseFex::CaloCellET(CaloCell* const &inputCell, float digitScale
else return 0.;
}
CaloCell* TrigT1CaloBaseFex::returnCellFromCont(Identifier inputID, const CaloCellContainer* &cellContainer){
for (auto iCell : *cellContainer){
bool sameIndices = (iCell->ID() == inputID);
if (sameIndices) return iCell;
}
return NULL;
CaloCell* TrigT1CaloBaseFex::returnCellFromCont(Identifier inputID, const CaloCellContainer* &cellContainer, const CaloCell_SuperCell_ID* &idHelper){
CaloCell* isCell = const_cast<CaloCell*>(cellContainer->findCell(idHelper->CaloCell_SuperCell_ID::calo_cell_hash(inputID)));
if (isCell) return isCell;
else return NULL;
}
CaloCell* TrigT1CaloBaseFex::NextEtaCell_Barrel(CaloCell* inputCell, bool upwards, const CaloCellContainer* &cellContainer, const CaloCell_SuperCell_ID* &idHelper){
......@@ -695,7 +694,7 @@ CaloCell* TrigT1CaloBaseFex::NextEtaCell_Barrel(CaloCell* inputCell, bool upward
// Form identifier, find cell & return it
// sub_calo, left_pos_neg, 2, region, eta_index, down_phi_index
Identifier nextCellID = idHelper->CaloCell_SuperCell_ID::cell_id(nextSub_calo, nextPos_neg, ithSampling, nextRegion, nextEta_index, ithPhi_index);
CaloCell* nextCell = returnCellFromCont(nextCellID, cellContainer);
CaloCell* nextCell = returnCellFromCont(nextCellID, cellContainer, idHelper);
if (nextCell == NULL) {
msg << MSG::WARNING << "ERROR: " << __LINE__ << endreq;
msg << MSG::WARNING << "Barrel Tracker = " << tracker << endreq;
......@@ -865,7 +864,7 @@ CaloCell* TrigT1CaloBaseFex::NextEtaCell_OW(CaloCell*inputCell, bool upwards, co
tracker = 11;
}
Identifier nextCellID = idHelper->CaloCell_SuperCell_ID::cell_id(nextSub_calo, nextPos_neg, ithSampling, nextRegion, nextEta_index, nextPhi_index);
CaloCell* nextCell = returnCellFromCont(nextCellID, cellContainer);
CaloCell* nextCell = returnCellFromCont(nextCellID, cellContainer, idHelper);
if (nextCell == NULL) {
msg << MSG::WARNING << "ERROR: "<<__LINE__<< endreq;
msg << MSG::WARNING << "OW Tracker = "<<tracker<< endreq;
......@@ -962,7 +961,7 @@ CaloCell* TrigT1CaloBaseFex::NextEtaCell_IW(CaloCell*inputCell, bool upwards, co
nextEta_index=ithEta_index+incrementEta;
}
Identifier nextCellID = idHelper->CaloCell_SuperCell_ID::cell_id(nextSub_calo, nextPos_neg, ithSampling, nextRegion, nextEta_index, nextPhi_index);
CaloCell* nextCell = returnCellFromCont(nextCellID, cellContainer);
CaloCell* nextCell = returnCellFromCont(nextCellID, cellContainer, idHelper);
if (nextCell && (nextCell->ID() != nextCellID)) msg << MSG::WARNING <<__LINE__<<" does not match" << endreq;
return nextCell;
}
......@@ -1025,7 +1024,7 @@ CaloCell* TrigT1CaloBaseFex::NextPhiCell(CaloCell*inputCell, bool upwards, const
const int nextPhi_index = restrictPhiIndex(ithPhi_index+incrementPhi, is64);
Identifier nextCellID = idHelper->CaloCell_SuperCell_ID::cell_id(ithSub_calo, ithPos_neg, ithSampling, ithRegion, ithEta_index, nextPhi_index);
CaloCell* nextCell = returnCellFromCont(nextCellID, cellContainer);
CaloCell* nextCell = returnCellFromCont(nextCellID, cellContainer, idHelper);
if (nextCell && (nextCell->ID() != nextCellID)) msg << MSG::WARNING << __LINE__ << " does not match" << endreq;
if (nextCell == NULL) msg << MSG::WARNING << "Next phi cell is NULL at " << __LINE__ << endreq;
return nextCell;
......@@ -1182,7 +1181,7 @@ void TrigT1CaloBaseFex::fromLayer2toLayer1(const CaloCellContainer* &inputContai
tracker = 2;
for (unsigned int i = 0; i < 3; i++){
Identifier resultID = idHelper->CaloCell_SuperCell_ID::cell_id(sub_calo, pos_neg, 1, region, i, phi_index);
CaloCell* resultCell = returnCellFromCont(resultID, inputContainer);
CaloCell* resultCell = returnCellFromCont(resultID, inputContainer, idHelper);
addOnce(resultCell,outputVector);
}
}
......@@ -1224,7 +1223,7 @@ void TrigT1CaloBaseFex::fromLayer2toLayer1(const CaloCellContainer* &inputContai
for (unsigned int i = 0; i < 2; i++){
outputEta = i+eta_index - offset;
Identifier resultID = idHelper->CaloCell_SuperCell_ID::cell_id(sub_calo, pos_neg, 1, outputRegion, outputEta, phi_index);
CaloCell* resultCell = returnCellFromCont(resultID, inputContainer);
CaloCell* resultCell = returnCellFromCont(resultID, inputContainer, idHelper);
addOnce(resultCell,outputVector);
}
}
......@@ -1245,7 +1244,7 @@ void TrigT1CaloBaseFex::fromLayer2toLayer1(const CaloCellContainer* &inputContai
}
if (oneCell){
Identifier resultID = idHelper->CaloCell_SuperCell_ID::cell_id(sub_calo, pos_neg, 1, outputRegion, outputEta, phi_index);
CaloCell* resultCell = returnCellFromCont(resultID, inputContainer);
CaloCell* resultCell = returnCellFromCont(resultID, inputContainer, idHelper);
addOnce(resultCell,outputVector);
}
//msg << MSG::DEBUG << "L2->L1 tracker = " << tracker << endreq;
......@@ -1274,19 +1273,19 @@ CaloCell* TrigT1CaloBaseFex::fromLayer2toPS(const CaloCellContainer* &inputConta
if (abs(pos_neg)==1 && region ==0){
int outputEta = eta_index/4;
Identifier resultID = idHelper->CaloCell_SuperCell_ID::cell_id(sub_calo, pos_neg, 0, outputRegion, outputEta, phi_index);
resultCell = returnCellFromCont(resultID, inputContainer); </