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 (const MuonEfficiencyScaleFactors &ref_tool) | |
EffiCollection (const EffiCollection *Nominal, const 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... | |
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) |
Private Member Functions | |
CollectionContainer * | FindContainer (unsigned int bin) const |
CollectionContainer * | FindContainer (const xAOD::Muon &mu) const |
CollectionContainer * | FindLRTContainer (const xAOD::Muon &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 29 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 37 of file EffiCollection.h.
Enumerator | |
---|---|
Symmetric | |
PtDependent | |
UnCorrelated | |
UpVariation |
Definition at line 52 of file EffiCollection.h.
|
explicit |
Definition at line 17 of file EffiCollection.cxx.
CP::EffiCollection::EffiCollection | ( | const EffiCollection * | Nominal, |
const 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 69 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 112 of file EffiCollection.cxx.
|
static |
Definition at line 291 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 194 of file EffiCollection.cxx.
|
private |
Definition at line 229 of file EffiCollection.cxx.
|
private |
Definition at line 241 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 300 of file EffiCollection.cxx.
SystematicSet * CP::EffiCollection::getSystSet | ( | ) | const |
Returns the systematic set affecting this collection.
Definition at line 321 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 316 of file EffiCollection.cxx.
bool CP::EffiCollection::isAffectedBySystematic | ( | const SystematicSet & | set | ) | const |
Definition at line 327 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 324 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 287 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 283 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 251 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 104 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 245 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 278 of file EffiCollection.cxx.
|
private |
Definition at line 112 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 111 of file EffiCollection.h.
|
private |
Definition at line 113 of file EffiCollection.h.
|
private |
Definition at line 115 of file EffiCollection.h.
|
private |
Definition at line 114 of file EffiCollection.h.
|
private |
Definition at line 116 of file EffiCollection.h.
|
private |
Definition at line 117 of file EffiCollection.h.
|
private |
Definition at line 106 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 121 of file EffiCollection.h.