ATLAS Offline Software
Loading...
Searching...
No Matches
TIDA Namespace Reference

Classes

class  Associator
class  Chain
class  Event
class  Feature
 actual template of the Feature wrapper - stores a pointer to an object and inherits from FeatureBase More...
class  FeatureBase
 very basic Feature base class just so that we can store derived classes onto the store More...
class  FeatureStore
class  Histogram
class  Histogram2D
class  HistogramBase
class  Reference
class  ReferenceMap
class  Roi
class  Track
class  Vertex

Functions

std::ostream & operator<< (std::ostream &s, const Reference &r)
bool isGoodOffline (const xAOD::Electron &elec, const unsigned int selection=0, double ETOffline=0)
bool isGoodOffline (const xAOD::Muon &muon, const unsigned int selection=0, double ETOffline=0)
bool isGoodOffline (const xAOD::TauJet &tau, const unsigned int selection=0, int requireNtracks=0, double EtOffline=0.0)

Function Documentation

◆ isGoodOffline() [1/3]

bool TIDA::isGoodOffline ( const xAOD::Electron & elec,
const unsigned int selection = 0,
double ETOffline = 0 )

Definition at line 16 of file OfflineObjectSelection.cxx.

16 {
17
18 double sintheta = std::sin( 2*std::atan(std::exp(-elec.eta())) );
19 double et = elec.e()*sintheta;
20 if ( std::fabs(et)<ETOffline ) return false;
21
22 // if ( std::fabs(elec.e())<ETOffline ) return false;
23 if (selection == 1) return elec.passSelection("Tight");
24 else if (selection == 2) return elec.passSelection("Medium");
25 else if (selection == 3) return elec.passSelection("Loose");
26 else if (selection == 4) return elec.passSelection("LHTight");
27 else if (selection == 5) return elec.passSelection("LHMedium");
28 else if (selection == 6) return elec.passSelection("LHLoose");
29 return true;
30}
virtual double e() const override
The total energy of the particle.
Definition Egamma_v1.cxx:86
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition Egamma_v1.cxx:71
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...
const std::string selection
Extra patterns decribing particle interation process.

◆ isGoodOffline() [2/3]

bool TIDA::isGoodOffline ( const xAOD::Muon & muon,
const unsigned int selection = 0,
double ETOffline = 0 )

should allow this to be set also

This muon selection is ridiculous - it looks like if it passed "Tight" selection, then it does not pass medium selection, as the goups are exclusive this is completely nonsensical !

Definition at line 33 of file OfflineObjectSelection.cxx.

33 {
34
36 if ( muon.muonType() != xAOD::Muon::MuonType::Combined ) return false;
37
38 bool good_muon = false;
39
43
44 if ( selection == 1 ) good_muon = (muon.quality()<=xAOD::Muon::Quality::Tight);
45 else if ( selection == 2 ) good_muon = (muon.quality()<=xAOD::Muon::Quality::Medium);
46 else if ( selection == 3 ) good_muon = (muon.quality()<=xAOD::Muon::Quality::Loose);
47 else if ( selection == 4 ) good_muon = (muon.quality()<=xAOD::Muon::Quality::VeryLoose);
48 else good_muon = true;
49
50 return good_muon;
51}

◆ isGoodOffline() [3/3]

bool TIDA::isGoodOffline ( const xAOD::TauJet & tau,
const unsigned int selection = 0,
int requireNtracks = 0,
double EtOffline = 0.0 )

hmmm

run 3 selection

instead of a bool to decide on whether 1 or 3 tracks are required, why not just specify the number of tracks ?

Definition at line 56 of file OfflineObjectSelection.cxx.

56 {
57
58 // still require the ET threshold and the track multiplicity
59 // if ( selection==0) return true;
60
62 TLorentzVector TauTLV = tau.p4();
63 double eta_Tau = TauTLV.Eta();
64 double et_Tau = TauTLV.Et();
65
66 if ( std::fabs(eta_Tau)>2.47 ) return false;
67 if ( std::fabs(et_Tau)<EtCutOffline ) return false;
68
69 // int ntrack_Tau = tau.nTracks();
70
71#ifdef XAODTRACKING_TRACKPARTICLE_H
72#ifndef XAODTAU_VERSIONS_TAUJET_V3_H
73 int Ntracks = tau.nTracks();
74 // std::cout << "SUTT no tau detail " << Ntracks << "\t(isGood)" << std::endl;
75#else
76 int Ntracks=0;
77 tau.detail( xAOD::TauJetParameters::nChargedTracks, Ntracks );
78 // std::cout << "SUTT tau detail: N " << Ntracks << "\t(isGood)" << std::endl;
79#endif
80#else
81 int Ntracks = tau.numTrack();
82#endif
83
84 // Could this selection just be replaced by a string that is passed in? Or an enumerate if the function is needed to be called when incrementing an int for the selection?
85 bool good_tau = false;
86
87#if 0
89 if ( selection == 1 ) good_tau = tau.isTau(xAOD::TauJetParameters::JetBDTSigTight);
90 else if ( selection == 2 ) good_tau = tau.isTau(xAOD::TauJetParameters::JetBDTSigMedium);
91 else if ( selection == 3 ) good_tau = tau.isTau(xAOD::TauJetParameters::JetBDTSigLoose);
92 else good_tau = true;
93#else
95 if ( selection == 1 ) good_tau = tau.isTau(xAOD::TauJetParameters::JetRNNSigTight);
96 else if ( selection == 2 ) good_tau = tau.isTau(xAOD::TauJetParameters::JetRNNSigMedium);
97 else if ( selection == 3 ) good_tau = tau.isTau(xAOD::TauJetParameters::JetRNNSigLoose);
98 else good_tau = true;
99#endif
100
101
104 // if ( doThreeProng==false && Ntracks!=1 ) return false;
105 // if ( doThreeProng==true && Ntracks!=3 ) return false;
106 if ( requireNtracks>0 && Ntracks!=requireNtracks ) return false;
107
108 //bool not_a_electron = !( tauisTau(xAOD::TauJetParameters::EleBDTMedium) );
109 //bool not_a_muon = !( tauisTau(xAOD::TauJetParameters::MuonVeto) );
110 //bool best_tau = good_tau && not_a_electron && not_a_muon;
111
112 return good_tau;
113}

◆ operator<<()

std::ostream & TIDA::operator<< ( std::ostream & s,
const Reference & r )

Definition at line 83 of file TIDAReference.h.

83 {
84 s << "[ Reference: " << r.name() << "\n";
85 s << " " << r.selector()->size() << "\n";
86 s << " " << r.tom()->size() << "\n";
87 s << " " << *r.tom() << "]";
88 return s;
89}
int r
Definition globals.cxx:22