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

Test for xAOD. More...

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  Reference
class  ReferenceMap
class  Roi
class  Track
class  Vertex

Functions

std::ostream & operator<< (std::ostream &s, const Reference &r)
bool isGoodOffline (const Analysis::Electron &elec)
bool isGoodOffline (const Analysis::Muon &muon)
bool isGoodOffline (const Analysis::TauJet &tau, bool doThreeProng=false, double EtCutOffline=0.0)

Detailed Description

Test for xAOD.

Function Documentation

◆ isGoodOffline() [1/3]

bool TIDA::isGoodOffline ( const Analysis::Electron & elec)

Definition at line 122 of file OfflineObjectSelection.cxx.

122 {
123 if ( elec.trackParticle() && elec.isem(egammaPID::ElectronMediumPP)==0 ) {
124 //medium++ ID
125 if (elec.author() == 1 || elec.author() == 3) {
126 //Author = track or track+calo
127 return true;
128 }
129 }
130 return false;
131}
unsigned int isem(unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID pid=egammaPIDObs::IsEM) const
ID flag with cuts, 0:e, >1:jet.
Definition egamma.cxx:769
const Rec::TrackParticle * trackParticle(unsigned int index=0) const
pointer to TrackParticle
Definition egamma.cxx:391
unsigned int author() const
Reconstruction Author.
Definition egamma.h:244
const unsigned int ElectronMediumPP
Medium++ electron selecton.

◆ isGoodOffline() [2/3]

bool TIDA::isGoodOffline ( const Analysis::Muon & muon)

maybe select all these track based quantitied om the TIDA::Track, so we dont have to fuss with is it xAOD/is it not xAOD etc

Definition at line 134 of file OfflineObjectSelection.cxx.

134 {
135 if (!muon.isLoose()) {
136 //Tight muon
137 return false;
138 }
139
140 //Based on https://svnweb.cern.ch/trac/atlasgrp/browser/Physics/Common/OSCAR/OSSelectors/trunk/src/OSSelectMuon.cxx
141 if (muon.hasInDetTrackParticle()) {
142 const Rec::TrackParticle* idTrack = muon.inDetTrackParticle();
143 const Trk::TrackSummary* summary = idTrack->trackSummary();
144 if (!summary) return false;
145
148
149 // Expect B-Layer hit info not available for Rec::TrackParticle
150
151 // Pix hits
152 int nPixelHits = summary->get(Trk::numberOfPixelHits);
153 int numberOfPixelDeadSensors = summary->get(Trk::numberOfPixelDeadSensors);
154 nPixelHits += numberOfPixelDeadSensors;
155 if (nPixelHits < 2) return false;
156
157 // SCT hits
158 int nSCTHits = summary->get(Trk::numberOfSCTHits);
159 int numberOfSCTDeadSensors = summary->get(Trk::numberOfSCTDeadSensors);
160 nSCTHits += numberOfSCTDeadSensors;
161 if (nSCTHits < 6) return false;
162
163 // Pix+ + SCT holes
164 int numberOfPixelHoles=muon.numberOfPixelHoles();
165 int numberOfSCTHoles=muon.numberOfSCTHoles();
166 if ( numberOfPixelHoles+numberOfSCTHoles > 2) return false;
167
168 float etaTrack = fabs(idTrack->eta()); // Need to extrapolate in principle
169 int nTrtHits = summary->get(Trk::numberOfTRTHits);
170 int nTrtOutliers = summary->get(Trk::numberOfTRTOutliers);
171
172 if (etaTrack < 1.9) {
173 if ((nTrtHits + nTrtOutliers) < 5 ) return false;
174 if (nTrtOutliers >= (0.9 * (nTrtHits + nTrtOutliers))) return false;
175 } else {
176 if ((nTrtHits + nTrtOutliers) > 5) {
177 if (nTrtOutliers >= (0.9 * (nTrtHits + nTrtOutliers))) return false;
178 }
179 }
180 return true;
181 }
182 return false;
183}
virtual double eta() const =0
pseudo rapidity
const TrackSummary * trackSummary() const
accessor function for TrackSummary.
A summary of the information contained by a track.
@ numberOfPixelHits
number of pixel layers on track with absence of hits
@ numberOfPixelDeadSensors
number of pixel hits with broad errors (width/sqrt(12))

◆ isGoodOffline() [3/3]

bool TIDA::isGoodOffline ( const Analysis::TauJet & tau,
bool doThreeProng = false,
double EtCutOffline = 0.0 )

Definition at line 187 of file OfflineObjectSelection.cxx.

187 {
188 // std::cout << "have offline tau" << std::endl;
189 bool id_flag = false;
190 if (doThreeProng) {
191 bool threeprong = ( tau.numTrack() == 3 && tau.tauID()->isTau(TauJetParameters::JetBDTSigMedium) );
192 id_flag = threeprong;
193 }
194 else {
195 bool oneprong = ( tau.numTrack() == 1 && tau.tauID()->isTau(TauJetParameters::JetBDTSigMedium) );
196 id_flag = oneprong;
197 }
198
199 if (id_flag) {
200 if (tau.et() < EtCutOffline) return false;
201 if (tau.eta() > 2.47) return false;
202 if (tau.tauID()->isTau(TauJetParameters::EleBDTMedium) ) return false;
203 if (tau.tauID()->isTau(TauJetParameters::MuonVeto) ) return false;
204 if (fabs(tau.charge())!=1) return false;
205 return true;
206 }
207 return false;
208}
unsigned int numTrack() const
number of Tracks associated to Tau candidate, CAUTION not to be confused with numberOfTracks()!
const TauPID * tauID() const
Get TauPID object containing discriminant values.
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
virtual double eta() const
pseudo rapidity
virtual double et() const
transverse energy defined to be e*sin(theta)
virtual ChargeType charge() const
returns charge as a typedef ChargeType currently Charge Type is a double for jets this may be changed...

◆ 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