|
ATLAS Offline Software
|
#include <GlobalSequentialCorrection.h>
|
typedef std::vector< std::unique_ptr< const TH2 > > | VecTH2 |
|
typedef std::vector< double > | VecD |
|
typedef std::vector< TString > | StrV |
|
typedef unsigned int | uint |
|
|
double | getTrackWIDTHResponse (double pT, uint etabin, double trackWIDTH) const |
|
double | getNTrkResponse (double pT, uint etabin, double nTrk) const |
|
double | getTile0Response (double pT, uint etabin, double Tile0) const |
|
double | getEM3Response (double pT, uint etabin, double EM3) const |
|
double | getChargedFractionResponse (double pT, uint etabin, double ChargedFraction) const |
|
double | getPunchThroughResponse (double E, double eta_det, int Nsegments) const |
|
double | getCaloWIDTHResponse (double pT, uint etabin, double caloWIDTH) const |
|
double | getN90ConstituentsResponse (double pT, uint etabin, double N90Constituents) const |
|
double | getTileGap3Response (double pT, uint etabin, double TileGap3) const |
|
double | getGSCCorrection (xAOD::JetFourMom_t jetP4, double eta, double trackWIDTH, double nTrk, double Tile0, double EM3, int Nsegments, double ChargedFraction, double caloWIDTH, double N90Constituents, double TileGap3) const |
|
double | getJetPropertyMax (TString jetPropName, unsigned int etabin) |
|
void | setPunchThroughEtaBins (const VecD &etabins) |
|
void | setPunchThroughMinPt (double minPt) |
|
double | readPtJetPropertyHisto (double pT, double jetProperty, const TH2 &respFactors) const |
|
void | initMessaging () const |
| Initialize our message level and MessageSvc. More...
|
|
◆ StrV
◆ uint
◆ VecD
◆ VecTH2
◆ m_GSCSeq
Enumerator |
---|
ApplyChargedFraction | |
ApplyTile0 | |
ApplyEM3 | |
ApplynTrk | |
ApplytrackWIDTH | |
ApplyPunchThrough | |
ApplyN90Constituents | |
ApplyTileGap3 | |
ApplycaloWIDTH | |
Definition at line 80 of file GlobalSequentialCorrection.h.
◆ GlobalSequentialCorrection() [1/2]
GlobalSequentialCorrection::GlobalSequentialCorrection |
( |
| ) |
|
◆ GlobalSequentialCorrection() [2/2]
GlobalSequentialCorrection::GlobalSequentialCorrection |
( |
const std::string & |
name, |
|
|
TEnv * |
config, |
|
|
TString |
jetAlgo, |
|
|
const std::string & |
depth, |
|
|
TString |
calibAreaTag, |
|
|
bool |
useOriginVertex, |
|
|
bool |
dev |
|
) |
| |
◆ calibrate()
Implements JetCalibrationStep.
Definition at line 436 of file GlobalSequentialCorrection.cxx.
482 std::vector<float> samplingFrac =
jet.getAttribute<std::vector<float> >(
"EnergyPerSampling");
484 std::vector<int> nTrk;
486 if( !
jet.getAttribute<std::vector<int> >(
"NumTrkPt1000",nTrk) ) {
488 return StatusCode::FAILURE;
492 std::vector<float> trackWIDTH;
494 if( !
jet.getAttribute<std::vector<float> >(
"TrackWidthPt1000",trackWIDTH) ) {
496 return StatusCode::FAILURE;
503 if( GhostMuonSegmentCountAcc.isAvailable(
jet) ) {
504 Nsegments = GhostMuonSegmentCountAcc(
jet);
506 ATH_MSG_WARNING(
"GhostMuonSegmentCount is not available, Nsegments=0 will be used, so NO PunchThrough Correction will be applied!");
515 int PVindex = jetEventInfo.
PVIndex();
522 double ChargedFraction = 0;
523 if(
m_PFlow ) ChargedFraction = (
jet.getAttribute<std::vector<float> >(
"SumPtChargedPFOPt500"))[PVindex]/jetconstitP4.Pt();
527 jetStartP4 =
jet.jetP4();
529 float jetE_constitscale = jetconstitP4.e();
530 float detectorEta =
jet.getAttribute<
float>(
"DetectorEta");
537 float EM3 = (samplingFrac[3]+samplingFrac[7])/jetE_constitscale;
538 float Tile0 = (samplingFrac[12]+samplingFrac[18])/jetE_constitscale;
540 double N90Constituents = 0;
541 double caloWIDTH = 0;
546 N90Constituents =
jet.getAttribute<
float>(
"N90Constituents");
549 caloWIDTH =
jet.getAttribute<
double>(
"Width");
553 TG3 = (samplingFrac[17])/jetE_constitscale;
557 xAOD::JetFourMom_t calibP4 = jetStartP4*
getGSCCorrection( jetStartP4, fabs(detectorEta), trackWIDTHPVX, nTrkPVX, Tile0,
EM3, Nsegments, ChargedFraction, caloWIDTH, N90Constituents, TG3);
561 jet.setJetP4( calibP4 );
563 return StatusCode::SUCCESS;
◆ getCaloWIDTHResponse()
double GlobalSequentialCorrection::getCaloWIDTHResponse |
( |
double |
pT, |
|
|
uint |
etabin, |
|
|
double |
caloWIDTH |
|
) |
| const |
|
private |
◆ getChargedFractionResponse()
double GlobalSequentialCorrection::getChargedFractionResponse |
( |
double |
pT, |
|
|
uint |
etabin, |
|
|
double |
ChargedFraction |
|
) |
| const |
|
private |
◆ getEM3Response()
double GlobalSequentialCorrection::getEM3Response |
( |
double |
pT, |
|
|
uint |
etabin, |
|
|
double |
EM3 |
|
) |
| const |
|
private |
◆ getGSCCorrection()
double GlobalSequentialCorrection::getGSCCorrection |
( |
xAOD::JetFourMom_t |
jetP4, |
|
|
double |
eta, |
|
|
double |
trackWIDTH, |
|
|
double |
nTrk, |
|
|
double |
Tile0, |
|
|
double |
EM3, |
|
|
int |
Nsegments, |
|
|
double |
ChargedFraction, |
|
|
double |
caloWIDTH, |
|
|
double |
N90Constituents, |
|
|
double |
TileGap3 |
|
) |
| const |
|
private |
◆ getJetPropertyMax()
double GlobalSequentialCorrection::getJetPropertyMax |
( |
TString |
jetPropName, |
|
|
unsigned int |
etabin |
|
) |
| |
|
inlineprivate |
◆ getN90ConstituentsResponse()
double GlobalSequentialCorrection::getN90ConstituentsResponse |
( |
double |
pT, |
|
|
uint |
etabin, |
|
|
double |
N90Constituents |
|
) |
| const |
|
private |
◆ getNominalResolutionData()
StatusCode JetCalibrationStep::getNominalResolutionData |
( |
const xAOD::Jet & |
, |
|
|
double & |
|
|
) |
| const |
|
virtualinherited |
◆ getNominalResolutionMC()
StatusCode JetCalibrationStep::getNominalResolutionMC |
( |
const xAOD::Jet & |
, |
|
|
double & |
|
|
) |
| const |
|
virtualinherited |
◆ getNTrkResponse()
double GlobalSequentialCorrection::getNTrkResponse |
( |
double |
pT, |
|
|
uint |
etabin, |
|
|
double |
nTrk |
|
) |
| const |
|
private |
◆ getPunchThroughResponse()
double GlobalSequentialCorrection::getPunchThroughResponse |
( |
double |
E, |
|
|
double |
eta_det, |
|
|
int |
Nsegments |
|
) |
| const |
|
private |
◆ getTile0Response()
double GlobalSequentialCorrection::getTile0Response |
( |
double |
pT, |
|
|
uint |
etabin, |
|
|
double |
Tile0 |
|
) |
| const |
|
private |
◆ getTileGap3Response()
double GlobalSequentialCorrection::getTileGap3Response |
( |
double |
pT, |
|
|
uint |
etabin, |
|
|
double |
TileGap3 |
|
) |
| const |
|
private |
◆ getTrackWIDTHResponse()
double GlobalSequentialCorrection::getTrackWIDTHResponse |
( |
double |
pT, |
|
|
uint |
etabin, |
|
|
double |
trackWIDTH |
|
) |
| const |
|
private |
Definition at line 297 of file GlobalSequentialCorrection.cxx.
298 if (trackWIDTH<=0)
return 1;
301 double trackWIDTHResponse;
306 trackWIDTHResponse *=
pT;
308 return trackWIDTHResponse;
313 return trackWIDTHResponse;
◆ initialize()
StatusCode GlobalSequentialCorrection::initialize |
( |
| ) |
|
|
overridevirtual |
Implements JetCalibrationStep.
Definition at line 53 of file GlobalSequentialCorrection.cxx.
55 ATH_MSG_INFO(
"Initializing the Global Sequential Calibration tool");
59 return StatusCode::FAILURE;
87 if (
m_jetAlgo.EqualTo(
"") ) {
ATH_MSG_FATAL(
"No jet algorithm specified. Aborting.");
return StatusCode::FAILURE; }
90 TString GSCFile =
m_config->GetValue(
"GSCFactorsFile",
"empty");
91 if ( GSCFile.EqualTo(
"empty") ) {
93 return StatusCode::FAILURE;
97 GSCFile.Insert(0,
"JetCalibTools/");
104 return StatusCode::FAILURE;
107 TString depthString =
"";
109 else depthString =
m_config->GetValue(
"GSCDepth",
"Full");
110 if ( !depthString.Contains(
"ChargedFraction") && !depthString.Contains(
"Tile0") && !depthString.Contains(
"EM3") && !depthString.Contains(
"nTrk") && !depthString.Contains(
"trackWIDTH") && !depthString.Contains(
"PunchThrough") && !depthString.Contains(
"N90Constituents") && !depthString.Contains(
"TileGap3") && !depthString.Contains(
"caloWIDTH") && !depthString.Contains(
"Full") ) {
111 ATH_MSG_FATAL(
"depthString flag not properly set, please check your config file.");
112 return StatusCode::FAILURE;
117 ATH_MSG_FATAL(
"depthString flag not properly set, please check your config file. nTrkwTrk4PFlow should be set to true to apply nTrk or trackWIDTH corrections to PFlow jets");
118 return StatusCode::FAILURE;
122 if (
m_caloBased && (depthString.Contains(
"nTrk")||depthString.Contains(
"trackWIDTH")||depthString.Contains(
"ChargedFraction")||depthString.Contains(
"PunchThrough"))){
123 ATH_MSG_FATAL(
"depthString flag not properly set, please check your config file. nTrk, trackWIDTH, PunchThrough and ChargedFraction corrections not available for trigger jets");
124 return StatusCode::FAILURE;
130 if ( depthString.Contains(
"PunchThrough") || depthString.Contains(
"Full") ) {
142 else {
ATH_MSG_FATAL(
"depthString flag not properly set, please check your config file.");
return StatusCode::FAILURE; }
150 else {
ATH_MSG_FATAL(
"depthString flag for calo based GSC not properly set, please check your config file.");
return StatusCode::FAILURE; }
158 else {
ATH_MSG_FATAL(
"depthString flag not properly set, please check your config file.");
return StatusCode::FAILURE; }
166 else {
ATH_MSG_FATAL(
"depthString flag not properly set, please check your config file.");
return StatusCode::FAILURE; }
173 std::vector<TString> histoNames;
176 while ( TKey *iterobj = (TKey*)ikeys() ) { histoNames.emplace_back(iterobj->GetName() ); }
179 for (
uint ihisto=0; ihisto<histoNames.size(); ++ihisto) {
180 if ( !histoNames[ihisto].Contains(
m_jetAlgo.Data() ) )
continue;
181 else if ( ihisto>0 && histoNames[ihisto].Contains( histoNames[ihisto-1].
Data() ) )
continue;
192 else if ( histoNames[ihisto].Contains(
"PunchThrough") )
205 ATH_MSG_FATAL(
"Vector of EM3 histograms may be empty. Please check your GSCFactors file: " << GSCFile);
206 return StatusCode::FAILURE;
209 ATH_MSG_FATAL(
"Vector of nTrk histograms may be empty. Please check your GSCFactors file: " << GSCFile);
210 return StatusCode::FAILURE;
213 ATH_MSG_FATAL(
"Vector of Tile0 histograms may be empty. Please check your GSCFactors file: " << GSCFile);
214 return StatusCode::FAILURE;
217 ATH_MSG_FATAL(
"Vector of trackWIDTH histograms may be empty. Please check your GSCFactors file: " << GSCFile);
218 return StatusCode::FAILURE;
221 ATH_MSG_FATAL(
"Vector of PunchThrough histograms may be empty. Please check your GSCFactors file: " << GSCFile);
222 return StatusCode::FAILURE;
224 else ATH_MSG_INFO(
"GSC Tool has been initialized with binning and eta fit factors from: " <<
fileName);
228 ATH_MSG_FATAL(
"Vector of EM3 histograms may be empty. Please check your GSCFactors file: " << GSCFile);
229 return StatusCode::FAILURE;
232 ATH_MSG_FATAL(
"Vector of N90Constituents histograms may be empty. Please check your GSCFactors file: " << GSCFile);
233 return StatusCode::FAILURE;
236 ATH_MSG_FATAL(
"Vector of Tile0 histograms may be empty. Please check your GSCFactors file: " << GSCFile);
237 return StatusCode::FAILURE;
240 ATH_MSG_FATAL(
"Vector of caloWIDTH histograms may be empty. Please check your GSCFactors file: " << GSCFile);
241 return StatusCode::FAILURE;
244 ATH_MSG_FATAL(
"Vector of TileGap3 histograms may be empty. Please check your GSCFactors file: " << GSCFile);
245 return StatusCode::FAILURE;
248 else ATH_MSG_INFO(
"GSC Tool has been initialized with binning and eta fit factors from: " <<
fileName <<
"\n");
252 ATH_MSG_FATAL(
"Vector of ChargedFraction histograms may be empty. Please check your GSCFactors file: " << GSCFile);
253 return StatusCode::FAILURE;
256 ATH_MSG_FATAL(
"Vector of EM3 histograms may be empty. Please check your GSCFactors file: " << GSCFile);
257 return StatusCode::FAILURE;
260 ATH_MSG_FATAL(
"Vector of Tile0 histograms may be empty. Please check your GSCFactors file: " << GSCFile);
261 return StatusCode::FAILURE;
264 ATH_MSG_FATAL(
"Vector of nTrk histograms may be empty. Please check your GSCFactors file: " << GSCFile);
265 return StatusCode::FAILURE;
268 ATH_MSG_FATAL(
"Vector of trackWIDTH histograms may be empty. Please check your GSCFactors file: " << GSCFile);
269 return StatusCode::FAILURE;
272 ATH_MSG_FATAL(
"Vector of PunchThrough histograms may be empty. Please check your GSCFactors file: " << GSCFile);
273 return StatusCode::FAILURE;
275 else ATH_MSG_INFO(
"GSC Tool has been initialized with binning and eta fit factors from: " <<
fileName);
277 return StatusCode::SUCCESS;
◆ initMessaging()
void AthMessaging::initMessaging |
( |
| ) |
const |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
◆ msg() [1/2]
MsgStream & asg::AsgMessaging::msg |
( |
| ) |
const |
|
inherited |
The standard message stream.
- Returns
- A reference to the default message stream of this object.
Definition at line 49 of file AsgMessaging.cxx.
50 #ifndef XAOD_STANDALONE
52 #else // not XAOD_STANDALONE
54 #endif // not XAOD_STANDALONE
◆ msg() [2/2]
MsgStream & asg::AsgMessaging::msg |
( |
const MSG::Level |
lvl | ) |
const |
|
inherited |
The standard message stream.
- Parameters
-
lvl | The message level to set the stream to |
- Returns
- A reference to the default message stream, set to level "lvl"
Definition at line 57 of file AsgMessaging.cxx.
58 #ifndef XAOD_STANDALONE
60 #else // not XAOD_STANDALONE
63 #endif // not XAOD_STANDALONE
◆ msgLvl()
bool asg::AsgMessaging::msgLvl |
( |
const MSG::Level |
lvl | ) |
const |
|
inherited |
Test the output level of the object.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicting if messages at given level will be printed
-
true
If messages at level "lvl" will be printed
Definition at line 41 of file AsgMessaging.cxx.
42 #ifndef XAOD_STANDALONE
43 return ::AthMessaging::msgLvl( lvl );
44 #else // not XAOD_STANDALONE
45 return m_msg.msgLevel( lvl );
46 #endif // not XAOD_STANDALONE
◆ readPtJetPropertyHisto()
double GlobalSequentialCorrection::readPtJetPropertyHisto |
( |
double |
pT, |
|
|
double |
jetProperty, |
|
|
const TH2 & |
respFactors |
|
) |
| const |
|
private |
Definition at line 281 of file GlobalSequentialCorrection.cxx.
282 int pTbin = respFactors.GetXaxis()->FindBin(
pT);
283 int pTMinbin = respFactors.GetXaxis()->GetFirst();
284 int pTMaxbin = respFactors.GetXaxis()->GetLast();
285 int jetPropbin = respFactors.GetYaxis()->FindBin(jetProperty);
286 int jetPropMinbin = respFactors.GetYaxis()->GetFirst();
287 int jetPropMaxbin = respFactors.GetYaxis()->GetLast();
289 if (pTbin < pTMinbin)
pT = respFactors.GetXaxis()->GetBinLowEdge(pTMinbin)+1
e-6;
290 else if (pTbin > pTMaxbin)
pT = respFactors.GetXaxis()->GetBinUpEdge(pTMaxbin)-1
e-6;
291 if (jetPropbin < jetPropMinbin) jetProperty = respFactors.GetYaxis()->GetBinLowEdge(jetPropMinbin)+1
e-6;
292 else if (jetPropbin > jetPropMaxbin) jetProperty = respFactors.GetYaxis()->GetBinUpEdge(jetPropMaxbin)-1
e-6;
294 return respFactors.Interpolate(
pT, jetProperty);
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ setPunchThroughEtaBins()
void GlobalSequentialCorrection::setPunchThroughEtaBins |
( |
const VecD & |
etabins | ) |
|
|
inlineprivate |
◆ setPunchThroughMinPt()
void GlobalSequentialCorrection::setPunchThroughMinPt |
( |
double |
minPt | ) |
|
|
inlineprivate |
◆ setStartP4()
StatusCode JetCalibrationStep::setStartP4 |
( |
xAOD::Jet & |
jet | ) |
const |
|
protectedvirtualinherited |
Definition at line 21 of file JetCalibrationStep.cxx.
24 return StatusCode::SUCCESS;
27 return StatusCode::SUCCESS;
30 return StatusCode::FAILURE;
◆ setUnitsGeV()
virtual void JetCalibrationStep::setUnitsGeV |
( |
bool |
useGeV | ) |
|
|
inlinevirtualinherited |
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_binSize
double GlobalSequentialCorrection::m_binSize |
|
private |
◆ m_calibAreaTag
TString GlobalSequentialCorrection::m_calibAreaTag |
|
private |
◆ m_caloBased
bool GlobalSequentialCorrection::m_caloBased {false} |
|
private |
◆ m_caloWIDTHMaxEtaBin
uint GlobalSequentialCorrection::m_caloWIDTHMaxEtaBin |
|
private |
◆ m_chargedFractionMaxEtaBin
uint GlobalSequentialCorrection::m_chargedFractionMaxEtaBin |
|
private |
◆ m_config
TEnv* GlobalSequentialCorrection::m_config |
|
private |
◆ m_depth
uint GlobalSequentialCorrection::m_depth |
|
private |
◆ m_depthString
TString GlobalSequentialCorrection::m_depthString |
|
private |
◆ m_dev
bool GlobalSequentialCorrection::m_dev |
|
private |
◆ m_EM3MaxEtaBin
uint GlobalSequentialCorrection::m_EM3MaxEtaBin |
|
private |
◆ m_GeV
double JetCalibrationStep::m_GeV |
|
protectedinherited |
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_jetAlgo
TString GlobalSequentialCorrection::m_jetAlgo |
|
private |
◆ m_jetStartScale
std::string JetCalibrationStep::m_jetStartScale |
|
protectedinherited |
◆ m_lvl
std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_msg_tls
boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
◆ m_N90ConstituentsMaxEtaBin
uint GlobalSequentialCorrection::m_N90ConstituentsMaxEtaBin |
|
private |
◆ m_name
std::string JetCalibrationStep::m_name |
|
protectedinherited |
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_nTrkMaxEtaBin
uint GlobalSequentialCorrection::m_nTrkMaxEtaBin |
|
private |
◆ m_nTrkwTrk_4PFlow
bool GlobalSequentialCorrection::m_nTrkwTrk_4PFlow {false} |
|
private |
◆ m_PFlow
bool GlobalSequentialCorrection::m_PFlow {false} |
|
private |
◆ m_pTResponseRequirementOff
bool GlobalSequentialCorrection::m_pTResponseRequirementOff {false} |
|
private |
◆ m_punchThroughEtaBins
VecD GlobalSequentialCorrection::m_punchThroughEtaBins |
|
private |
◆ m_punchThroughMinPt
double GlobalSequentialCorrection::m_punchThroughMinPt |
|
private |
◆ m_respFactorscaloWIDTH
VecTH2 GlobalSequentialCorrection::m_respFactorscaloWIDTH |
|
private |
◆ m_respFactorsChargedFraction
VecTH2 GlobalSequentialCorrection::m_respFactorsChargedFraction |
|
private |
◆ m_respFactorsEM3
VecTH2 GlobalSequentialCorrection::m_respFactorsEM3 |
|
private |
◆ m_respFactorsN90Constituents
VecTH2 GlobalSequentialCorrection::m_respFactorsN90Constituents |
|
private |
◆ m_respFactorsnTrk
VecTH2 GlobalSequentialCorrection::m_respFactorsnTrk |
|
private |
◆ m_respFactorsPunchThrough
VecTH2 GlobalSequentialCorrection::m_respFactorsPunchThrough |
|
private |
◆ m_respFactorsTile0
VecTH2 GlobalSequentialCorrection::m_respFactorsTile0 |
|
private |
◆ m_respFactorsTileGap3
VecTH2 GlobalSequentialCorrection::m_respFactorsTileGap3 |
|
private |
◆ m_respFactorstrackWIDTH
VecTH2 GlobalSequentialCorrection::m_respFactorstrackWIDTH |
|
private |
◆ m_Tile0MaxEtaBin
uint GlobalSequentialCorrection::m_Tile0MaxEtaBin |
|
private |
◆ m_TileGap3MaxEtaBin
uint GlobalSequentialCorrection::m_TileGap3MaxEtaBin |
|
private |
◆ m_trackWIDTHMaxEtaBin
uint GlobalSequentialCorrection::m_trackWIDTHMaxEtaBin |
|
private |
◆ m_turnOffEndpT
double GlobalSequentialCorrection::m_turnOffEndpT {2000} |
|
private |
◆ m_turnOffStartingpT
double GlobalSequentialCorrection::m_turnOffStartingpT {1200.} |
|
private |
◆ m_turnOffTrackCorrections
bool GlobalSequentialCorrection::m_turnOffTrackCorrections {false} |
|
private |
◆ m_useOriginVertex
bool GlobalSequentialCorrection::m_useOriginVertex {false} |
|
private |
The documentation for this class was generated from the following files:
std::atomic< MSG::Level > m_lvl
Current logging level.
double getNTrkResponse(double pT, uint etabin, double nTrk) const
@ depth
pointing depth of the shower as calculated in egammaqgcld
uint m_chargedFractionMaxEtaBin
double getCaloWIDTHResponse(double pT, uint etabin, double caloWIDTH) const
virtual StatusCode setStartP4(xAOD::Jet &jet) const
Scalar eta() const
pseudorapidity method
std::unique_ptr< const TH2 > GetHisto2(TFile &file, const TString &hname)
VecTH2 m_respFactorsPunchThrough
VecTH2 m_respFactorsN90Constituents
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
IMessageSvc * getMessageSvc(bool quiet=false)
VecD m_punchThroughEtaBins
VecTH2 m_respFactorstrackWIDTH
bool m_pTResponseRequirementOff
double getPunchThroughResponse(double E, double eta_det, int Nsegments) const
double getTrackWIDTHResponse(double pT, uint etabin, double trackWIDTH) const
JetCalibrationStep(const char *name="JetCalibrationStep")
VecTH2 m_respFactorscaloWIDTH
uint m_caloWIDTHMaxEtaBin
VecTH2 m_respFactorsTileGap3
double m_turnOffStartingpT
bool m_turnOffTrackCorrections
void setPunchThroughEtaBins(const VecD &etabins)
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > JetFourMom_t
Base 4 Momentum type for Jet.
VecTH2 m_respFactorsTile0
std::string m_jetStartScale
double readPtJetPropertyHisto(double pT, double jetProperty, const TH2 &respFactors) const
double getGSCCorrection(xAOD::JetFourMom_t jetP4, double eta, double trackWIDTH, double nTrk, double Tile0, double EM3, int Nsegments, double ChargedFraction, double caloWIDTH, double N90Constituents, double TileGap3) const
double getN90ConstituentsResponse(double pT, uint etabin, double N90Constituents) const
double getTile0Response(double pT, uint etabin, double Tile0) const
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Class describing a Vertex.
double getTileGap3Response(double pT, uint etabin, double TileGap3) const
#define ATH_MSG_WARNING(x)
void setPunchThroughMinPt(double minPt)
std::string m_nm
Message source name.
double getChargedFractionResponse(double pT, uint etabin, double ChargedFraction) const
double getEM3Response(double pT, uint etabin, double EM3) const
uint m_N90ConstituentsMaxEtaBin
VecD VectorizeD(const TString &str, const TString &sep=" ")
uint m_trackWIDTHMaxEtaBin
double m_punchThroughMinPt
VecTH2 m_respFactorsChargedFraction