![]() |
ATLAS Offline Software
|
The EffiCollection class handles the 5 different scale-factor maps binned in time. More...
#include <EffiCollection.h>
Public Types | |
enum | CollectionType { Central = 1, Calo = 1<<1, Forward = 1<<2, CentralLowPt = 1<<3, CaloLowPt = 1<<4, ZAnalysis = Central | Calo | Forward, JPsiAnalysis = CentralLowPt | CaloLowPt } |
enum | Systematic { Symmetric = 1<<6, PtDependent = 1<<7, UnCorrelated = 1<<8, UpVariation = 1<<9 } |
Public Member Functions | |
EffiCollection (MuonEfficiencyScaleFactors &ref_tool) | |
EffiCollection (const EffiCollection *Nominal, MuonEfficiencyScaleFactors &ref_tool, const std::string &syst, int syst_bit_map, bool is_up) | |
Constructor with nominal as fallback.. More... | |
EfficiencyScaleFactor * | retrieveSF (const xAOD::Muon &mu, unsigned int RunNumber) const |
return the correct SF type to provide, depending on eta and the author More... | |
EfficiencyScaleFactor * | retrieveSF (columnar::MuonId mu, unsigned int RunNumber) const |
bool | CheckConsistency () |
a consistency check of the scale-factor maps. More... | |
unsigned int | nBins () const |
Get the number of all bins in the scale-factor maps including the overflow & underflow bins. More... | |
bool | SetSystematicBin (unsigned int Bin) |
If systematic decorrelation is activated then the user needs to loop manually over the syst bins. More... | |
bool | IsLowPtBin (unsigned int Bin) const |
Checks whether the i-th bin belongs to the low-pt map... More... | |
bool | IsForwardBin (unsigned int Bin) const |
Checks whether the i-th bin belongs to the forward map. More... | |
std::string | GetBinName (unsigned int bin) const |
Returns the global bin name conststucted from the axis titles and the bin borders. More... | |
int | getUnCorrelatedSystBin (const xAOD::Muon &mu) const |
Returns the bin number from which the scale-factor of the muon is going to be retrieved... More... | |
SystematicSet * | getSystSet () const |
Returns the systematic set affecting this collection. More... | |
bool | isAffectedBySystematic (const SystematicVariation &variation) const |
Returns whether the given set has variations affecting this Collection. More... | |
bool | isAffectedBySystematic (const SystematicSet &set) const |
std::shared_ptr< CollectionContainer > | retrieveContainer (CollectionType Type) const |
Method to retrieve a container from the class ordered by a collection type This method is mainly used to propagate the nominal maps to the variations as fallback maps if no variation has been defined in this situation. More... | |
Static Public Member Functions | |
static std::string | FileTypeName (EffiCollection::CollectionType T) |
Public Attributes | |
columnar::MuonAccessor< columnar::ObjectColumn > | m_muons {*this, "Muons"} |
columnar::MuonAccessor< columnar::RetypeColumn< double, float > > | ptAcc {*this, "pt"} |
columnar::MuonAccessor< columnar::RetypeColumn< double, float > > | etaAcc {*this, "eta"} |
columnar::MuonAccessor< columnar::RetypeColumn< xAOD::Muon::MuonType, std::uint16_t > > | muonTypeAcc {*this, "muonType"} |
columnar::MuonAccessor< char > | isLRTmuon {*this, "isLRT", {.isOptional = true}} |
Private Member Functions | |
CollectionContainer * | FindContainer (unsigned int bin) const |
CollectionContainer * | FindContainer (columnar::MuonId mu) const |
CollectionContainer * | FindLRTContainer (columnar::MuonId mu) const |
Private Attributes | |
const MuonEfficiencyScaleFactors & | m_ref_tool |
std::shared_ptr< CollectionContainer > | m_central_eff |
Make the collection container shared ptr to allow that a systematic EffiCollection can use the same container as the nominal one if the current systematic has no effect on that particular container.... More... | |
std::shared_ptr< CollectionContainer > | m_calo_eff |
std::shared_ptr< CollectionContainer > | m_forward_eff |
std::shared_ptr< CollectionContainer > | m_lowpt_central_eff |
std::shared_ptr< CollectionContainer > | m_lowpt_calo_eff |
std::shared_ptr< CollectionContainer > | m_lrt_central_eff |
std::shared_ptr< CollectionContainer > | m_lrt_lowpt_central_eff |
std::unique_ptr< SystematicSet > | m_syst_set |
The systematic set is returned back to the MuonEfficiencyScaleFactors instance to register The known systematics to the global service. More... | |
The EffiCollection class handles the 5 different scale-factor maps binned in time.
Each muon is piped to the correct map based whether it's a calo-tag muon, belongs to the high-eta region or has low-pt. There exists one instance of the EffiCollection foreach systematic variation and nominal. Scale-factor maps which are not affected by a systematic, especially in the case of common vs. low-pt, are taken from the Nominal maps.
Definition at line 34 of file EffiCollection.h.
Enumerator | |
---|---|
Central | The five different scale-factor maps. |
Calo | |
Forward | |
CentralLowPt | |
CaloLowPt | |
ZAnalysis | |
JPsiAnalysis | Distinguish these two because the systematics are named with an extra LOWPT. |
Definition at line 43 of file EffiCollection.h.
Enumerator | |
---|---|
Symmetric | |
PtDependent | |
UnCorrelated | |
UpVariation |
Definition at line 58 of file EffiCollection.h.
|
explicit |
Definition at line 17 of file EffiCollection.cxx.
CP::EffiCollection::EffiCollection | ( | const EffiCollection * | Nominal, |
MuonEfficiencyScaleFactors & | ref_tool, | ||
const std::string & | syst, | ||
int | syst_bit_map, | ||
bool | is_up | ||
) |
Constructor with nominal as fallback..
Use a lambda function to assign the maps easily
Only the Z reconstruction analysis has different files for bulk / calo-tag / low-pt and forward eta
Definition at line 76 of file EffiCollection.cxx.
bool CP::EffiCollection::CheckConsistency | ( | ) |
a consistency check of the scale-factor maps.
All scale-factor maps must be present and there must no overlapping periods to pass this test.
At this stage we know that all efficiencies have been loaded successfully. We need to now to order the maps to make global bin numbers
Systematic constructor has been called. We can now assemble the systematic variations
Let the world implode... Yeaha register foreach bin a systematic variation
Definition at line 125 of file EffiCollection.cxx.
|
static |
Definition at line 306 of file EffiCollection.cxx.
|
private |
If the isLRT decor is not available, try to see if patternRecoInfo is available for the corresponding ID track.
All LRT muons should have ID tracks. The muons without ID tracks have to come from the standard muon container.
Definition at line 207 of file EffiCollection.cxx.
|
private |
Definition at line 241 of file EffiCollection.cxx.
|
private |
Definition at line 253 of file EffiCollection.cxx.
std::string CP::EffiCollection::GetBinName | ( | unsigned int | bin | ) | const |
Returns the global bin name conststucted from the axis titles and the bin borders.
Definition at line 315 of file EffiCollection.cxx.
SystematicSet * CP::EffiCollection::getSystSet | ( | ) | const |
Returns the systematic set affecting this collection.
Definition at line 336 of file EffiCollection.cxx.
int CP::EffiCollection::getUnCorrelatedSystBin | ( | const xAOD::Muon & | mu | ) | const |
Returns the bin number from which the scale-factor of the muon is going to be retrieved...
Definition at line 331 of file EffiCollection.cxx.
bool CP::EffiCollection::isAffectedBySystematic | ( | const SystematicSet & | set | ) | const |
Definition at line 342 of file EffiCollection.cxx.
bool CP::EffiCollection::isAffectedBySystematic | ( | const SystematicVariation & | variation | ) | const |
Returns whether the given set has variations affecting this Collection.
Definition at line 339 of file EffiCollection.cxx.
bool CP::EffiCollection::IsForwardBin | ( | unsigned int | Bin | ) | const |
Checks whether the i-th bin belongs to the forward map.
Definition at line 302 of file EffiCollection.cxx.
bool CP::EffiCollection::IsLowPtBin | ( | unsigned int | Bin | ) | const |
Checks whether the i-th bin belongs to the low-pt map...
Definition at line 298 of file EffiCollection.cxx.
unsigned int CP::EffiCollection::nBins | ( | ) | const |
Get the number of all bins in the scale-factor maps including the overflow & underflow bins.
Definition at line 266 of file EffiCollection.cxx.
std::shared_ptr< CollectionContainer > CP::EffiCollection::retrieveContainer | ( | CollectionType | Type | ) | const |
Method to retrieve a container from the class ordered by a collection type This method is mainly used to propagate the nominal maps to the variations as fallback maps if no variation has been defined in this situation.
Definition at line 117 of file EffiCollection.cxx.
EfficiencyScaleFactor * CP::EffiCollection::retrieveSF | ( | columnar::MuonId | mu, |
unsigned int | RunNumber | ||
) | const |
Definition at line 260 of file EffiCollection.cxx.
EfficiencyScaleFactor * CP::EffiCollection::retrieveSF | ( | const xAOD::Muon & | mu, |
unsigned int | RunNumber | ||
) | const |
return the correct SF type to provide, depending on eta and the author
Definition at line 257 of file EffiCollection.cxx.
bool CP::EffiCollection::SetSystematicBin | ( | unsigned int | Bin | ) |
If systematic decorrelation is activated then the user needs to loop manually over the syst bins.
This method activates the i-th bin to be active. For the remaining bins the nominal scale-factor is returned instead.
Definition at line 293 of file EffiCollection.cxx.
columnar::MuonAccessor<columnar::RetypeColumn<double,float> > CP::EffiCollection::etaAcc {*this, "eta"} |
Definition at line 133 of file EffiCollection.h.
columnar::MuonAccessor<char> CP::EffiCollection::isLRTmuon {*this, "isLRT", {.isOptional = true}} |
Definition at line 135 of file EffiCollection.h.
|
private |
Definition at line 118 of file EffiCollection.h.
|
private |
Make the collection container shared ptr to allow that a systematic EffiCollection can use the same container as the nominal one if the current systematic has no effect on that particular container....
Definition at line 117 of file EffiCollection.h.
|
private |
Definition at line 119 of file EffiCollection.h.
|
private |
Definition at line 121 of file EffiCollection.h.
|
private |
Definition at line 120 of file EffiCollection.h.
|
private |
Definition at line 122 of file EffiCollection.h.
|
private |
Definition at line 123 of file EffiCollection.h.
columnar::MuonAccessor<columnar::ObjectColumn> CP::EffiCollection::m_muons {*this, "Muons"} |
Definition at line 131 of file EffiCollection.h.
|
private |
Definition at line 112 of file EffiCollection.h.
|
private |
The systematic set is returned back to the MuonEfficiencyScaleFactors instance to register The known systematics to the global service.
Definition at line 127 of file EffiCollection.h.
columnar::MuonAccessor<columnar::RetypeColumn<xAOD::Muon::MuonType,std::uint16_t> > CP::EffiCollection::muonTypeAcc {*this, "muonType"} |
Definition at line 134 of file EffiCollection.h.
columnar::MuonAccessor<columnar::RetypeColumn<double,float> > CP::EffiCollection::ptAcc {*this, "pt"} |
Definition at line 132 of file EffiCollection.h.