Skip to content
Snippets Groups Projects
Commit 6a1bdd8c authored by Simone Pagan Griso's avatar Simone Pagan Griso Committed by Graeme Stewart
Browse files

'Improved IDTR1 for studies needed on first data' (DerivationFrameworkInDet-00-00-33)

	* Improved IDTR1 for studies needed on first data.
	* Tagging as DerivationFrameworkInDet-00-00-33

2015-06-03 Olivier Arnaez <olivier.arnaez@cern.ch>
	* UnassociatedHitsDecorator.cxx: adding protection against failing getter
	* LArCollisionTimeDecorator.cxx: adding protection against missing LArCollisionTime
	* Tagging as DerivationFrameworkInDet-00-00-32

2015-06-03 James Catmore <james.catmore@cern.ch>

	* Removing wildcards
	* Tagging as DerivationFrameworkInDet-00-00-31
parent 9d7ca410
No related branches found
No related tags found
No related merge requests found
......@@ -19,6 +19,7 @@ print IDTR1IPETool
#====================================================================
# AUGMENTATION TOOLS
#====================================================================
# Add unbiased track parameters to track particles
from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TrackToVertexWrapper
IDTR1TrackToVertexWrapper= DerivationFramework__TrackToVertexWrapper(name = "IDTR1TrackToVertexWrapper",
TrackToVertexIPEstimator = IDTR1IPETool,
......@@ -26,6 +27,14 @@ IDTR1TrackToVertexWrapper= DerivationFramework__TrackToVertexWrapper(name = "IDT
ContainerName = "InDetTrackParticles")
ToolSvc += IDTR1TrackToVertexWrapper
print IDTR1TrackToVertexWrapper
# Add decoration with truth parameters if running on simulation
if DerivationFrameworkIsMonteCarlo:
from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TrackParametersForTruthParticles
TruthDecor = DerivationFramework__TrackParametersForTruthParticles( name = "TruthTPDecor",
DecorationPrefix = "IDTR1")
ToolSvc += TruthDecor
print TruthDecor
#====================================================================
# CREATE THE DERIVATION KERNEL ALGORITHM AND PASS THE ABOVE TOOLS
......@@ -49,11 +58,20 @@ IDTR1Stream.AcceptAlgs(["IDTR1Kernel"])
# Add event info, tracks, vertices and the decoration
IDTR1Stream.AddItem("xAOD::EventInfo#*")
IDTR1Stream.AddItem("xAOD::EventAuxInfo#*")
IDTR1Stream.AddItem("xAOD::TrackParticleContainer#*")
IDTR1Stream.AddItem("xAOD::TrackParticleAuxContainer#*")
IDTR1Stream.AddItem("xAOD::TrackParticleContainer#InDetTrackParticles")
IDTR1Stream.AddItem("xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux.")
IDTR1Stream.AddItem("xAOD::TrackParticleContainer#GSFTrackParticles")
IDTR1Stream.AddItem("xAOD::TrackParticleAuxContainer#GSFTrackParticlesAux.")
IDTR1Stream.AddItem("xAOD::VertexContainer#PrimaryVertices")
IDTR1Stream.AddItem("xAOD::VertexAuxContainer#PrimaryVerticesAux.")
#IDTR1Stream.AddItem("std::vector<float>#IDTR1D0")
#IDTR1Stream.AddItem("std::vector<float>#IDTR1Z0")
#IDTR1Stream.AddItem("std::vector<float>#IDTR1D0Sigma")
#IDTR1Stream.AddItem("std::vector<float>#IDTR1Z0Sigma")
IDTR1Stream.AddItem("xAOD::JetContainer#AntiKt4EMTopoJets")
IDTR1Stream.AddItem("xAOD::JetAuxContainer#AntiKt4EMTopoJetsAux.")
IDTR1Stream.AddItem("xAOD::BTaggingContainer#BTagging_AntiKt4EMTopo")
IDTR1Stream.AddItem("xAOD::BTaggingAuxContainer#BTagging_AntiKt4EMTopoAux.")
if DerivationFrameworkIsMonteCarlo:
IDTR1Stream.AddItem("xAOD::TruthParticleContainer#TruthParticles")
IDTR1Stream.AddItem("xAOD::TruthParticleAuxContainer#TruthParticlesAux.")
IDTR1Stream.AddItem("xAOD::TruthVertexContainer#TruthVertices")
IDTR1Stream.AddItem("xAOD::TruthVertexAuxContainer#TruthVerticesAux.")
IDTR1Stream.AddItem("xAOD::TruthEventContainer#TruthEvents")
IDTR1Stream.AddItem("xAOD::TruthEventAuxContainer#TruthEventsAux.")
......@@ -61,14 +61,18 @@ namespace DerivationFramework {
const LArCollisionTime* tps;
CHECK( evtStore()->retrieve(tps,"LArCollisionTime") );
eventInfo->auxdecor< int >(m_sgName+"ncellA") = tps->ncellA();
eventInfo->auxdecor< int >(m_sgName+"ncellC") = tps->ncellC();
eventInfo->auxdecor< float >(m_sgName+"energyA") = tps->energyA();
eventInfo->auxdecor< float >(m_sgName+"energyC") = tps->energyC();
eventInfo->auxdecor< float >(m_sgName+"timeA") = tps->timeA();
eventInfo->auxdecor< float >(m_sgName+"timeC") = tps->timeC();
float LArECtimeDiff = tps->timeA()-tps->timeC();
ATH_MSG_DEBUG("Decorating LAr time info, LArECTimeDiff = " << LArECtimeDiff);
if (tps) {
eventInfo->auxdecor< int >(m_sgName+"ncellA") = tps->ncellA();
eventInfo->auxdecor< int >(m_sgName+"ncellC") = tps->ncellC();
eventInfo->auxdecor< float >(m_sgName+"energyA") = tps->energyA();
eventInfo->auxdecor< float >(m_sgName+"energyC") = tps->energyC();
eventInfo->auxdecor< float >(m_sgName+"timeA") = tps->timeA();
eventInfo->auxdecor< float >(m_sgName+"timeC") = tps->timeC();
float LArECtimeDiff = tps->timeA()-tps->timeC();
ATH_MSG_DEBUG("Decorating LAr time info, LArECTimeDiff = " << LArECtimeDiff);
}
else
ATH_MSG_WARNING("Missing LArCollisionTime information.");
return StatusCode::SUCCESS;
}
......
......@@ -73,48 +73,66 @@ namespace DerivationFramework {
// Do the decoration for each track
SG::AuxElement::Decorator< float > decnD0(m_sgName+"_unbiased_d0");
SG::AuxElement::Decorator< float > decnZ0(m_sgName+"_unbiased_z0");
SG::AuxElement::Decorator< float > decnZ0SinTheta(m_sgName+"_unbiased_z0SinTheta");
SG::AuxElement::Decorator< float > decnD0Err(m_sgName+"_unbiased_d0Sigma");
SG::AuxElement::Decorator< float > decnZ0Err(m_sgName+"_unbiased_z0Sigma");
SG::AuxElement::Decorator< float > decnZ0SinThetaErr(m_sgName+"_unbiased_z0SigmaSinTheta");
SG::AuxElement::Decorator< float > decnPVD0Err(m_sgName+"_unbiased_PVd0Sigma");
SG::AuxElement::Decorator< float > decnPVZ0Err(m_sgName+"_unbiased_PVz0Sigma");
SG::AuxElement::Decorator< float > decnPVZ0SinThetaErr(m_sgName+"_unbiased_PVz0SigmaSinTheta");
if (iPandSigma) {
decnD0( **trItr ) = iPandSigma->IPd0;
decnZ0( **trItr ) = iPandSigma->IPz0;
decnZ0SinTheta( **trItr ) = iPandSigma->IPz0SinTheta;
decnD0Err( **trItr ) = iPandSigma->sigmad0;
decnZ0Err( **trItr ) = iPandSigma->sigmaz0;
decnZ0SinThetaErr( **trItr ) = iPandSigma->sigmaz0SinTheta;
decnPVD0Err (**trItr ) = iPandSigma->PVsigmad0;
decnPVZ0Err (**trItr ) = iPandSigma->PVsigmaz0;
decnPVZ0SinThetaErr (**trItr ) = iPandSigma->PVsigmaz0SinTheta;
delete iPandSigma;
} else {
decnD0( **trItr ) = 999.;
decnZ0( **trItr ) = 999.;
decnZ0SinTheta( **trItr ) = 999.;
decnD0Err( **trItr ) = 999.;
decnZ0Err( **trItr ) = 999.;
decnZ0SinThetaErr( **trItr ) = 999.;
decnPVD0Err (**trItr ) = 999.;
decnPVZ0Err (**trItr ) = 999.;
decnPVZ0SinThetaErr (**trItr ) = 999.;
}
SG::AuxElement::Decorator< float > decn_b_D0(m_sgName+"_biased_d0");
SG::AuxElement::Decorator< float > decn_b_Z0(m_sgName+"_biased_z0");
SG::AuxElement::Decorator< float > decn_b_Z0SinTheta(m_sgName+"_biased_z0SinTheta");
SG::AuxElement::Decorator< float > decn_b_D0Err(m_sgName+"_biased_d0Sigma");
SG::AuxElement::Decorator< float > decn_b_Z0Err(m_sgName+"_biased_z0Sigma");
SG::AuxElement::Decorator< float > decn_b_Z0SinThetaErr(m_sgName+"_biased_z0SigmaSinTheta");
SG::AuxElement::Decorator< float > decn_b_PVD0Err(m_sgName+"_biased_PVd0Sigma");
SG::AuxElement::Decorator< float > decn_b_PVZ0Err(m_sgName+"_biased_PVz0Sigma");
SG::AuxElement::Decorator< float > decn_b_PVZ0SinThetaErr(m_sgName+"_biased_PVz0SigmaSinTheta");
if (iPandSigmaBiased) {
decn_b_D0( **trItr ) = iPandSigmaBiased->IPd0;
decn_b_Z0( **trItr ) = iPandSigmaBiased->IPz0;
decn_b_Z0SinTheta( **trItr ) = iPandSigmaBiased->IPz0SinTheta;
decn_b_D0Err( **trItr ) = iPandSigmaBiased->sigmad0;
decn_b_Z0Err( **trItr ) = iPandSigmaBiased->sigmaz0;
decn_b_Z0SinThetaErr( **trItr ) = iPandSigmaBiased->sigmaz0SinTheta;
decn_b_PVD0Err (**trItr ) = iPandSigmaBiased->PVsigmad0;
decn_b_PVZ0Err (**trItr ) = iPandSigmaBiased->PVsigmaz0;
decn_b_PVZ0SinThetaErr (**trItr ) = iPandSigmaBiased->PVsigmaz0SinTheta;
delete iPandSigmaBiased;
} else {
decn_b_D0( **trItr ) = 999.;
decn_b_Z0( **trItr ) = 999.;
decn_b_Z0SinTheta( **trItr ) = 999.;
decn_b_D0Err( **trItr ) = 999.;
decn_b_Z0Err( **trItr ) = 999.;
decn_b_Z0SinThetaErr( **trItr ) = 999.;
decn_b_PVD0Err (**trItr ) = 999.;
decn_b_PVZ0Err (**trItr ) = 999.;
decn_b_PVZ0SinThetaErr (**trItr ) = 999.;
}
} // end of loop over tracks
......
......@@ -61,22 +61,26 @@ namespace DerivationFramework {
CHECK( evtStore()->retrieve( eventInfo, m_containerName ) );
const MinBiasPRDAssociation* prdAssoc = m_UnassociatedHitsGetterTool->get();
eventInfo->auxdecor< int >(m_sgName+"nPixelUA") = prdAssoc->nPixelUA;
eventInfo->auxdecor< int >(m_sgName+"nBlayerUA") = prdAssoc->nBlayerUA;
eventInfo->auxdecor< int >(m_sgName+"nPixelBarrelUA") = prdAssoc->nPixelBarrelUA;
eventInfo->auxdecor< int >(m_sgName+"nPixelEndCapAUA") = prdAssoc->nPixelEndCapAUA;
eventInfo->auxdecor< int >(m_sgName+"nPixelEndCapCUA") = prdAssoc->nPixelEndCapCUA;
eventInfo->auxdecor< int >(m_sgName+"nSCTUA") = prdAssoc->nSCTUA;
eventInfo->auxdecor< int >(m_sgName+"nSCTBarrelUA") = prdAssoc->nSCTBarrelUA;
eventInfo->auxdecor< int >(m_sgName+"nSCTEndCapAUA") = prdAssoc->nSCTEndCapAUA;
eventInfo->auxdecor< int >(m_sgName+"nSCTEndCapCUA") = prdAssoc->nSCTEndCapCUA;
eventInfo->auxdecor< int >(m_sgName+"nTRTUA") = prdAssoc->nTRTUA;
eventInfo->auxdecor< int >(m_sgName+"nTRTBarrelUA") = prdAssoc->nTRTBarrelUA;
eventInfo->auxdecor< int >(m_sgName+"nTRTEndCapAUA") = prdAssoc->nTRTEndCapAUA;
eventInfo->auxdecor< int >(m_sgName+"nTRTEndCapCUA") = prdAssoc->nTRTEndCapCUA;
m_UnassociatedHitsGetterTool->releaseObject(prdAssoc);
ATH_MSG_DEBUG("Decorating unassociated hits with nPixelBarrelUA = ");
ATH_MSG_DEBUG(prdAssoc->nPixelBarrelUA);
if (prdAssoc) {
eventInfo->auxdecor< int >(m_sgName+"nPixelUA") = prdAssoc->nPixelUA;
eventInfo->auxdecor< int >(m_sgName+"nBlayerUA") = prdAssoc->nBlayerUA;
eventInfo->auxdecor< int >(m_sgName+"nPixelBarrelUA") = prdAssoc->nPixelBarrelUA;
eventInfo->auxdecor< int >(m_sgName+"nPixelEndCapAUA") = prdAssoc->nPixelEndCapAUA;
eventInfo->auxdecor< int >(m_sgName+"nPixelEndCapCUA") = prdAssoc->nPixelEndCapCUA;
eventInfo->auxdecor< int >(m_sgName+"nSCTUA") = prdAssoc->nSCTUA;
eventInfo->auxdecor< int >(m_sgName+"nSCTBarrelUA") = prdAssoc->nSCTBarrelUA;
eventInfo->auxdecor< int >(m_sgName+"nSCTEndCapAUA") = prdAssoc->nSCTEndCapAUA;
eventInfo->auxdecor< int >(m_sgName+"nSCTEndCapCUA") = prdAssoc->nSCTEndCapCUA;
eventInfo->auxdecor< int >(m_sgName+"nTRTUA") = prdAssoc->nTRTUA;
eventInfo->auxdecor< int >(m_sgName+"nTRTBarrelUA") = prdAssoc->nTRTBarrelUA;
eventInfo->auxdecor< int >(m_sgName+"nTRTEndCapAUA") = prdAssoc->nTRTEndCapAUA;
eventInfo->auxdecor< int >(m_sgName+"nTRTEndCapCUA") = prdAssoc->nTRTEndCapCUA;
m_UnassociatedHitsGetterTool->releaseObject(prdAssoc);
ATH_MSG_DEBUG("Decorating unassociated hits with nPixelBarrelUA = ");
ATH_MSG_DEBUG(prdAssoc->nPixelBarrelUA);
}
else
ATH_MSG_WARNING("Could not retrieve Unassociated hits information");
return StatusCode::SUCCESS;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment