20#include "GaudiKernel/MsgStream.h"
21#include "Gaudi/Property.h"
22#include "GaudiKernel/TypeNameString.h"
28#include "GaudiKernel/ITHistSvc.h"
48#include "TLorentzVector.h"
60 ISvcLocator* pSvcLocator):
66 m_trigDec(
"Trig::TrigDecisionTool/TrigDecisionTool"),
163 return StatusCode::FAILURE;
170 return StatusCode::FAILURE;
177 return StatusCode::FAILURE;
192 {xEgamma::emins1,
"f1core"},
193 {xEgamma::fracs1,
"fside"},
194 {xEgamma::e2tsts1,
"Emax2"},
195 {xEgamma::weta1,
"ws3"},
196 {xEgamma::wtots1,
"wstot"},
197 {xEgamma::emaxs1,
"emaxs1"},
198 {xEgamma::e233,
"E233"},
199 {xEgamma::e237,
"E237"},
200 {xEgamma::e277,
"E277"},
201 {xEgamma::weta2,
"weta2"},
203 {xEgamma::f3core,
"f3core"}
207 {xIso::etcone20,
"Etcone20"},
208 {xIso::etcone30,
"Etcone30"},
209 {xIso::etcone40,
"Etcone40"},
210 {xIso::ptcone30,
"ptcone30"}
214 {xEgamma::deltaEta1,
"deltaeta1"},
215 {xEgamma::deltaEta2,
"deltaeta2"},
216 {xEgamma::deltaPhi2,
"deltaphi2"}
245 "HLT_e24_lhmedium_idperf_L1EM20VH",
246 "HLT_e24_medium_L1EM18VH",
258 std::string FitterNames[3] = {
"GX2",
"Refitted1",
"Refitted2"};
265 for(
int fitter(0); fitter < 3; ++fitter){
267 m_validationTree->Branch( (FitterNames[fitter]+
"_Eta").c_str() ,
m_electronEta[fitter], (FitterNames[fitter]+
"_Eta[nElectrons]/F").c_str() );
268 m_validationTree->Branch( (FitterNames[fitter]+
"_Eta").c_str() ,
m_electronEta[fitter], (FitterNames[fitter]+
"_Eta[nElectrons]/F").c_str() );
269 m_validationTree->Branch( (FitterNames[fitter]+
"_Phi0").c_str() ,
m_electronPhi[fitter], (FitterNames[fitter]+
"_Phi0[nElectrons]/F").c_str() );
271 m_validationTree->Branch( (FitterNames[fitter]+
"_d0").c_str() ,
m_electrond0[fitter], (FitterNames[fitter]+
"_d0[nElectrons]/F").c_str());
272 m_validationTree->Branch( (FitterNames[fitter]+
"_z0").c_str() ,
m_electronz0[fitter], (FitterNames[fitter]+
"_z0[nElectrons]/F").c_str());
365 if ( tHistSvc.retrieve().isSuccess()) {
366 ATH_MSG_DEBUG(
" initialize() THistSvc successfully retrieved ");
369 ATH_MSG_ERROR(
"initialize() Could not find Hist Service -> Switching ValidationMode Off !");
381 ATH_MSG_ERROR(
"initialize() Could not register the validation Tree -> Switching ValidationMode Off !");
387 ATH_MSG_DEBUG(
"initialize() no validation tree to register :( ");
391 ATH_MSG_ERROR(
"initialize() Could not register the validation Tree -> Switching ValidationMode Off !");
401 m_WenuTight_Met =
new TH1F(
"WenuTight_Met",
"WenuTight_Met", 120, 00000 ,120000);
402 m_WenuTight_MT =
new TH1F(
"WenuTight_MT",
"WenuTight_MT", 120, 00000 ,120000);
403 m_WenuTightMet_MT =
new TH1F(
"WenuTightMet_MT",
"WenuTightMet_MT", 120, 00000 ,120000);
405 m_WenuTightW_PT =
new TH1F(
"WenuTightW_PT",
"WenuTightW_PT", 100, 00000 ,100000);
411 bool somethingFailed{};
425 if (somethingFailed)
ATH_MSG_ERROR(
"initialize() Could not register histogram ");
434 ATH_MSG_INFO(
"IDPerfMonEoverP::Initialize() -- Setting up electron LH tool.");
447 std::string confDir =
"ElectronPhotonSelectorTools/offline/"+
m_lhTune+
"/";
448 std::string configFileL = confDir+
"ElectronLikelihoodLooseOfflineConfig2015.conf";
449 std::string configFileM = confDir+
"ElectronLikelihoodMediumOfflineConfig2015.conf";
450 std::string configFileT = confDir+
"ElectronLikelihoodTightOfflineConfig2015.conf";
453 ATH_MSG_WARNING(
"Failure loading ConfigFile in loose electron likelihood tool.");
455 ATH_MSG_WARNING(
"Failure loading ConfigFile in medium electron likelihood tool.");
457 ATH_MSG_WARNING(
"Failure loading ConfigFile in tight electron likelihood tool.");
461 ATH_MSG_WARNING(
"Loose electron likelihood tool initialize() failed!");
464 ATH_MSG_WARNING(
"Medium electron likelihood tool initialize() failed!");
467 ATH_MSG_WARNING(
"Tight electron likelihood tool initialize() failed!");
469 return StatusCode::SUCCESS;
476 return StatusCode::SUCCESS;
484 StatusCode
sc(StatusCode::SUCCESS);
485 std::map<const xAOD::TrackParticle*, VxPos > trackParticleVertexMap;
486 const xAOD::Vertex* primaryVertexFirstCandidate =
nullptr;
490 ATH_MSG_WARNING(
" Validation Mode has been turned off ALG will do not fill Ntuples" );
527 if (
sc != StatusCode::SUCCESS){
530 return StatusCode::SUCCESS;
533 if (ElectronInput_container->
empty() ){
534 ATH_MSG_DEBUG(
"-- ElectronInput_container is empty -> return");
536 return StatusCode::SUCCESS;
544 electron_iterator iter = ElectronInput_container->
begin();
545 electron_iterator iterEnd = ElectronInput_container->
end();
549 for(; iter != iterEnd ; ++iter) {
568 if( mytp !=
nullptr ){
583 ATH_MSG_DEBUG(
"Electron with no track particle?? Possibly Forward");
589 primaryVertexFirstCandidate,
616 if (
sc == StatusCode::SUCCESS){
634 if (
sc == StatusCode::SUCCESS){
662 for(
const auto & thisGoodElectron: goodElectrons){
665 (*ElectronInput_container)[thisGoodElectron]->trackParticle()->track(),
667 if (
sc == StatusCode::SUCCESS){
681 delete selectedElectrons;
682 return (StatusCode::FAILURE);
689 delete selectedElectrons;
690 return (StatusCode::FAILURE);
697 delete selectedElectrons;
698 return (StatusCode::FAILURE);
701 return StatusCode::SUCCESS;
707 if (isOriginal >= 0 && isOriginal <3){
725 ATH_MSG_DEBUG(
"No MeasuredPerigee - cannot add data to ntuple" );
779 for (
int j = 0 ; j <3 ; ++j){
807 for (
int j = 0 ; j < 50 ; ++j){
819 for (
int i(0); i<
NO_PV; ++i){
879 if (
sc.isFailure()) {
897 if(
sc.isFailure() || !jetTDS ) {
901 if (jetTDS->
empty())
return true;
902 bool cleanJet =
true;
903 for(
const auto* jet_elem : *jetTDS ) {
918 if (
sc.isFailure()) {
926 <<
" = " << vxContainer->
size() );
927 primaryVertexFirstCandidate = std::begin(*vxContainer)[0];
928 ATH_MSG_DEBUG(
"The primary vertex type: " << primaryVertexFirstCandidate->
type() );
930 for(
const auto* vxI : *vxContainer ) {
931 int type = (int)(vxI)->vertexType();
936 const std::vector< ElementLink< xAOD::TrackParticleContainer > > tpLinks = vxI->trackParticleLinks();
938 if(not tpLinks.empty()) {
939 nbtk = tpLinks.size();
940 ATH_MSG_DEBUG(
" -- vertex " << vtxCount <<
" has " << nbtk <<
" track particles" );
941 for(
const auto& tp_elem : tpLinks ){
944 VxPos myVxPos = std::make_pair(vxI,npv);
945 trackParticleVertexMap.insert( std::make_pair( trk, myVxPos ) );
947 sumpt += trk->
p4().Perp();
955 << primaryVertex->
position().x() <<
","
956 << primaryVertex->
position().y() <<
","
957 << primaryVertex->
position().z() <<
")"
960 <<
" sumpt=" << sumpt);
965 <<
". Truncated event. " );
977 ATH_MSG_DEBUG(
"Vertex " << npv <<
" has no tracks associated to it!" );
986 ATH_MSG_DEBUG(
"Done filling Vertex information -- completed -- ");
988 if (npv == 0)
return false;
997 std::map<const xAOD::TrackParticle*, VxPos>::iterator tpVx =
999 if (tpVx == trackParticleVertexMap.end() ){
1000 return std::make_pair( primaryVertexFirstCandidate,-1 );
1002 return (*tpVx).second;
1050 if(!track)
return false;
1054 if (oldTrackStates == 0)
1067 trkPara = (*rItTSoS)->trackParameters();
1087 ATH_MSG_DEBUG (
" -- passZeeSelection() -- failing on primary vertices: m_nbpv= " <<
m_nbpv);
1091 bool primaryVertexOk(
false);
1094 for (
int i=0; i<
m_nbpv; ++i){
1095 if (
m_pvnbtk[i] > 2) primaryVertexOk =
true;
1097 if(!primaryVertexOk) {
1098 ATH_MSG_DEBUG (
" -- passZeeSelection() -- failing on primary vertices");
1105 std::vector<int> goodLooseElectrons;
1112 if (clusterEt <= 25000)
continue;
1116 if (absEta >= 2.47 || ( absEta >= 1.37 && absEta <= 1.52 ))
continue;
1124 goodLooseElectrons.push_back(ele);
1127 int pairsLooseInMassWindow = 0;
1129 ATH_MSG_DEBUG(
" -- passZeeSelection() -- report -- N Loose electrons " << goodLooseElectrons.size());
1132 for(
int gele1 = 0; gele1 < (int)goodLooseElectrons.size()-1; ++gele1){
1133 for(
int gele2 = gele1+1; gele2 < (int)goodLooseElectrons.size(); ++gele2){
1134 int ele1 = goodLooseElectrons[gele1];
1135 int ele2 = goodLooseElectrons[gele2];
1137 if (mass > 60000 && mass < 120000){
1138 ++pairsLooseInMassWindow;
1147 if (pairsLooseInMassWindow < 1) {
1148 ATH_MSG_DEBUG (
" -- passZeeSelection() -- failing pairsLooseInMassWindow= " << pairsLooseInMassWindow );
1151 std::vector<int> goodMediumElectrons;
1153 for(
int gele = 0; gele < (int)goodLooseElectrons.size(); ++gele){
1154 int ele = goodLooseElectrons[gele];
1156 goodMediumElectrons.push_back(ele);
1161 if (goodMediumElectrons.size() != 2) {
1162 ATH_MSG_DEBUG (
" -- passZeeSelection() -- failing goodMediumElectrons != 2 --> " << goodMediumElectrons.size());
1167 double mass =
getMassCluster(goodMediumElectrons[0],goodMediumElectrons[1]);
1168 if (mass > 66000 && mass < 116000){
1171 electrons.push_back(goodMediumElectrons[0]);
1172 electrons.push_back(goodMediumElectrons[1]);
1192 if(
m_nbpv<1)
return false;
1193 bool primaryVertexOk(
false);
1196 for (
int i(0); i<
m_nbpv; ++i){
1197 if (
m_pvnbtk[i] > 2) primaryVertexOk =
true;
1199 if(!primaryVertexOk) {
1200 ATH_MSG_DEBUG (
" -- passWenuSelection() -- failing on primary vertices");
1206 ATH_MSG_DEBUG (
" -- passWenuSelection() -- failing on m_isDATA && !m_METgoodness");
1215 std::vector<int> goodLooseElectrons;
1221 if (clusterEt <= 25000)
continue;
1224 if (absEta >= 2.47 || ( absEta >= 1.37 && absEta <= 1.52 ) )
continue;
1229 goodLooseElectrons.push_back(ele);
1233 for(
int gele(0); gele < (int) goodLooseElectrons.size(); ++gele){
1234 int ele = goodLooseElectrons[gele];
1239 int nMediumElectrons(0);
1240 int nTightElectrons(0);
1241 int tightElectron(0);
1243 for(
int gele(0); gele < (int) goodLooseElectrons.size(); ++gele){
1245 int ele = goodLooseElectrons[gele];
1249 tightElectron = ele;
1253 if (nMediumElectrons >2) {
1254 ATH_MSG_DEBUG (
" -- passWenuSelection() -- failing number of medium electrons cut " << nMediumElectrons );
1258 if (nTightElectrons <1) {
1259 ATH_MSG_DEBUG (
" -- passWenuSelection() -- failing number of tight electrons cut " << nTightElectrons );
1267 if(massT > 0) massT =std::sqrt(massT);
1280 if (massT <= 50000) {
1281 ATH_MSG_DEBUG (
" -- passWenuSelection() -- failing transverse mass cut " << massT );
1290 double wpt = sumpx*sumpx +sumpy*sumpy - massT*massT;
1291 if(wpt > 0) wpt =std::sqrt(wpt);
1303 electrons.push_back(tightElectron);
1313 TLorentzVector v0,v1;
1318 v0.SetPtEtaPhiM(pt1,eta1,
m_electronPhi[0][el1], ELECTRON_MASS);
1319 v1.SetPtEtaPhiM(pt2,eta2,
m_electronPhi[0][el2], ELECTRON_MASS);
1320 double mass = (v0+v1).M();
1328 std::vector<int> electronsZee;
1329 std::vector<int> electronsWenu;
1335 std::vector<int> allInterestingElectrons;
1336 for(
int i(0); i < (int)electronsZee.size(); ++i){
1337 int ele = electronsZee[i];
1338 if ( std::find(allInterestingElectrons.begin(), allInterestingElectrons.end(), ele)==allInterestingElectrons.end() ){
1339 allInterestingElectrons.push_back(ele);
1342 for(
int i(0); i < (int)electronsWenu.size(); ++i){
1343 int ele = electronsWenu[i];
1344 if ( std::find(allInterestingElectrons.begin(), allInterestingElectrons.end(), ele)==allInterestingElectrons.end() ){
1345 allInterestingElectrons.push_back(ele);
1348 ATH_MSG_DEBUG(
" SimpleTreeElectrons " << allInterestingElectrons.size() );
1349 for(
int i(0); i < (int)allInterestingElectrons.size(); ++i){
1350 int ele = allInterestingElectrons[i];
1365 return allInterestingElectrons;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
#define CHECK(...)
Evaluate an expression and check for errors.
#define AmgSymMatrix(dim)
std::pair< const xAOD::Vertex *, int > VxPos
A number of constexpr particle constants to avoid hardcoding them directly in various places.
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ServiceHandle< StoreGateSvc > & evtStore()
DataModel_detail::const_iterator< DataVector > const_iterator
const_reverse_iterator rend() const noexcept
Return a const_reverse_iterator pointing at the beginning of the collection.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_reverse_iterator rbegin() const noexcept
Return a const_reverse_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
std::reverse_iterator< const_iterator > const_reverse_iterator
size_type size() const noexcept
Returns the number of elements in the collection.
bool empty() const noexcept
Returns true if the collection is empty.
float m_electronErrd0[3][NOS_ELECTRONS]
SG::ReadHandleKey< xAOD::EventInfo > m_evt
ReadHandle to the Event Info.
void fillGeneral(const xAOD::Electron *eg)
bool storeMETinformation()
std::string m_missingEtObjectName
MET input name.
std::vector< std::pair< xAOD::EgammaParameters::ShowerShapeType, std::string > > m_PID_ShowerType_Names
TH1F * m_ZeeMediumMassOS_Cluster
int m_nTRT[NOS_ELECTRONS]
std::string m_OutputTrackCollectionName_no2
TH1F * m_WenuTightElectronET
int m_nTRTout[NOS_ELECTRONS]
TH2F * m_WenuTightElectron_PTEtaNeg
validation tree name - to be acessed by this from root
AsgElectronLikelihoodTool * m_LHToolLoose2015
int m_nBLayer[NOS_ELECTRONS]
float m_ePID_ShowerType[50][NOS_ELECTRONS]
float m_ClusterPhi[NOS_ELECTRONS]
double getMassCluster(int el1, int el2)
TTree * m_smallValidationTree
std::string m_smallValidationTreeName
validation tree description - second argument in TTree
float m_ePID_SummaryType[50][NOS_ELECTRONS]
std::vector< std::pair< xAOD::SummaryType, std::string > > m_PID_SummaryType_Names
void addToValidationNtuple(const Trk::Perigee *, const xAOD::CaloCluster *, int isOrginal)
addToValidationNutple
TH1F * m_ZeeMediumMassSS_Cluster
void fillIsEM(const xAOD::Electron *eg)
ToolHandle< IegammaTrkRefitterTool > m_TrackRefitter
The track refitter.
std::string m_validationTreeName
validation tree description - second argument in TTree
float m_electronEta[3][NOS_ELECTRONS]
Track Eta at perigee.
bool passMETCleaningCuts() const
float m_electrond0[3][NOS_ELECTRONS]
Track Phi on electron.
VxPos findAssociatedVertex(std::map< const xAOD::TrackParticle *, VxPos > &trackParticleVertexMap, const xAOD::Vertex *primaryVertexFirstCandidate, const xAOD::Electron *) const
ToolHandle< IJetSelector > m_jetCleaningTool
jet selector tool
TH2F * m_WenuTightElectron_PTEtaPos
TH1F * m_ZeeLooseMassSS_Cluster
float m_ePID_TrackCaloMatchType[50][NOS_ELECTRONS]
StatusCode initialize()
Gaudi algorithm hooks.
TrackCollection * m_refittedTracks_no2
float m_electronz0[3][NOS_ELECTRONS]
Track q over p on electron.
int m_nSCT[NOS_ELECTRONS]
~IDPerfMonEoverP()
Destructor.
std::string m_primaryVertexCollection
Primary vertex input name.
std::string m_smallValidationTreeDescription
stream/folder to for the TTree to be written out
int m_nPIX[NOS_ELECTRONS]
float m_ePID_IsolationType[50][NOS_ELECTRONS]
unsigned int m_lumi_block
bool m_IsEMMedium[NOS_ELECTRONS]
TrackCollection * m_refittedTracks_no1
Refitted track collection.
std::string m_InputElectronContainerName
Electron collection input name.
float m_electronErrz0[3][NOS_ELECTRONS]
TH1F * m_WenuLooseElectronET
float m_electronPhi[3][NOS_ELECTRONS]
Track Phi on electron.
std::string m_validationTreeFolder
Root Validation Tree.
std::vector< std::pair< xAOD::Iso::IsolationType, std::string > > m_PID_IsolationType_Names
bool m_validationMode
< boolean to switch to validation mode
int m_author[NOS_ELECTRONS]
int m_associatedToVtx[NOS_ELECTRONS]
void clearValidationNtuple()
int m_nTRTHT[NOS_ELECTRONS]
bool m_IsEMTight[NOS_ELECTRONS]
float m_electronErrPhi[3][NOS_ELECTRONS]
Track phi error on electron.
bool m_isGoodOQ[NOS_ELECTRONS]
bool m_IsEMTightTRT[NOS_ELECTRONS]
float m_ClusterEnergy[NOS_ELECTRONS]
float m_electronErrTheta[3][NOS_ELECTRONS]
Track theta error on electron.
std::string m_OutputTrackCollectionName_no1
Name of output of Refitted Inner Detector Tracks.
int m_electronCounter
counter for electrons
TH2F * m_ZeeMediumOS_ClusterPtEta
std::string m_metRefFinalName
void fillElectronInfo(const xAOD::Electron *p)
int m_nSCTout[NOS_ELECTRONS]
float m_electronLMQoverP[3][NOS_ELECTRONS]
Track q over p on electron.
bool fillLastMeasurement(const Trk::Track *track, const int fitter)
AsgElectronLikelihoodTool * m_LHToolTight2015
IDPerfMonEoverP(const std::string &name, ISvcLocator *pSvcLocator)
Default constructor.
std::vector< int > FillSimpleTree()
TH1F * m_ZeeLooseMassOS_Cluster
void fillTriggerInformation()
ToolHandle< Trig::TrigDecisionTool > m_trigDec
The trigger decision tool.
float m_ClusterEta[NOS_ELECTRONS]
int m_nTRTHTout[NOS_ELECTRONS]
int m_nPIXout[NOS_ELECTRONS]
bool fillVertexInformation(std::map< const xAOD::TrackParticle *, VxPos > &trackParticleVertexMap, xAOD::Vertex const *&primaryVertexFirstCandidate)
float m_electronQoverP[3][NOS_ELECTRONS]
Track q over p on electron.
bool passWenuSelection(std::vector< int > &electrons)
bool passZeeSelection(std::vector< int > &electrons)
bool m_fillDetailedTree
validation tree name - to be acessed by this from root
AsgElectronLikelihoodTool * m_LHToolMedium2015
double m_smallClusterEnergy
float m_electronTheta[3][NOS_ELECTRONS]
Track theta at perigee.
float m_electronErrQoverP[3][NOS_ELECTRONS]
std::string m_jetContainerName
JEt collection input name.
bool m_IsEMLoose[NOS_ELECTRONS]
std::vector< std::string > m_triggerNames
std::string m_validationTreeDescription
stream/folder to for the TTree to be written out
std::string m_smallValidationTreeFolder
Root Validation Tree.
std::vector< std::pair< xAOD::EgammaParameters::TrackCaloMatchType, std::string > > m_PID_TrackCaloMatchType_Names
void deleteAction() const
ToolHandle< IegammaTrkRefitterTool > m_TrackRefitter_no2
The track refitter.
double eta() const
Access method for pseudorapidity - from momentum.
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
const Perigee * perigeeParameters() const
return Perigee.
virtual double eta() const
The pseudorapidity ( ) of the particle.
virtual double e() const
The total energy of the particle.
virtual double phi() const
The azimuthal angle ( ) of the particle.
bool isGoodOQ(uint32_t mask) const
Check object quality. Return True is it is Good Object Quality.
bool passSelection(bool &value, const std::string &menu) const
Check if the egamma object pass a selection menu (using the name) If the menu decision is stored in t...
uint16_t author(uint16_t bitmask=EgammaParameters::AuthorALL) const
Get author.
const xAOD::CaloCluster * caloCluster(size_t index=0) const
Pointer to the xAOD::CaloCluster/s that define the electron candidate.
const xAOD::TrackParticle * trackParticle(size_t index=0) const
Pointer to the xAOD::TrackParticle/s that match the electron candidate.
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
const Trk::Perigee & perigeeParameters() const
Returns the Trk::MeasuredPerigee track parameters.
const Trk::Track * track() const
Returns a pointer (which can be NULL) to the Trk::Track which was used to make this TrackParticle.
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
Type::ObjectType type() const
A little helper function for identifying the type in template code.
const Amg::Vector3D & position() const
Returns the 3-pos.
bool contains(const std::string &s, const std::string ®x)
does a string contain the substring
constexpr double electronMassInMeV
the mass of the electron (in MeV)
Ensure that the ATLAS eigen extensions are properly loaded.
DataVector< const Trk::TrackStateOnSurface > TrackStates
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
ParametersBase< TrackParametersDim, Charged > TrackParameters
const uint32_t BADCLUSELECTRON
const uint16_t AuthorElectron
Object Reconstructed by standard cluster-based algorithm.
Namespace holding the IsolationType enumeration.
ElectronContainer_v1 ElectronContainer
Definition of the current "electron container version".
MissingET_v1 MissingET
Version control by type defintion.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
MissingETContainer_v1 MissingETContainer
JetContainer_v1 JetContainer
Definition of the current "jet container version".
SummaryType
Enumerates the different types of information stored in Summary.
@ numberOfTRTHighThresholdOutliers
number of TRT high threshold outliers (only xenon counted) [unit8_t].
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfSCTOutliers
number of SCT outliers [unit8_t].
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].
Electron_v1 Electron
Definition of the current "egamma version".