Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
CP::EffiCollection Class Referencefinal

The EffiCollection class handles the 5 different scale-factor maps binned in time. More...

#include <EffiCollection.h>

Inheritance diagram for CP::EffiCollection:
Collaboration diagram for CP::EffiCollection:

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...
 
EfficiencyScaleFactorretrieveSF (const xAOD::Muon &mu, unsigned int RunNumber) const
 return the correct SF type to provide, depending on eta and the author More...
 
EfficiencyScaleFactorretrieveSF (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...
 
SystematicSetgetSystSet () 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< CollectionContainerretrieveContainer (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::ObjectColumnm_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

CollectionContainerFindContainer (unsigned int bin) const
 
CollectionContainerFindContainer (columnar::MuonId mu) const
 
CollectionContainerFindLRTContainer (columnar::MuonId mu) const
 

Private Attributes

const MuonEfficiencyScaleFactorsm_ref_tool
 
std::shared_ptr< CollectionContainerm_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< CollectionContainerm_calo_eff
 
std::shared_ptr< CollectionContainerm_forward_eff
 
std::shared_ptr< CollectionContainerm_lowpt_central_eff
 
std::shared_ptr< CollectionContainerm_lowpt_calo_eff
 
std::shared_ptr< CollectionContainerm_lrt_central_eff
 
std::shared_ptr< CollectionContainerm_lrt_lowpt_central_eff
 
std::unique_ptr< SystematicSetm_syst_set
 The systematic set is returned back to the MuonEfficiencyScaleFactors instance to register The known systematics to the global service. More...
 

Detailed Description

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.

Member Enumeration Documentation

◆ CollectionType

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.

43  {
45  Central = 1,
46  Calo = 1<<1,
47  Forward = 1<<2,
48  CentralLowPt = 1<<3,
49  CaloLowPt = 1<<4,
50 
55 
56 
57  };

◆ Systematic

Enumerator
Symmetric 
PtDependent 
UnCorrelated 
UpVariation 

Definition at line 58 of file EffiCollection.h.

58  {
59  Symmetric = 1<<6,
60  PtDependent = 1<<7,
61  UnCorrelated = 1<<8,
62  UpVariation = 1<<9,
63  };

Constructor & Destructor Documentation

◆ EffiCollection() [1/2]

CP::EffiCollection::EffiCollection ( MuonEfficiencyScaleFactors ref_tool)
explicit

Definition at line 17 of file EffiCollection.cxx.

17  :
18  m_ref_tool(ref_tool),
19  m_central_eff(),
20  m_calo_eff(),
21  m_forward_eff(),
26  m_syst_set(std::make_unique<SystematicSet>()){
27 
28  ref_tool.addSubtool (*this);
29 
30  m_central_eff = std::make_shared<CollectionContainer>(m_ref_tool, CollectionType::Central);
31  m_central_eff->addSubtoolsTo(*this);
33  m_calo_eff = std::make_shared<CollectionContainer>(m_ref_tool,CollectionType::Calo);
34  m_calo_eff->addSubtoolsTo(*this);
35  } else m_calo_eff = m_central_eff;
36 
38  m_forward_eff = std::make_shared<CollectionContainer>(m_ref_tool,CollectionType::Forward);
39  m_forward_eff->addSubtoolsTo(*this);
41 
43  m_lowpt_central_eff = std::make_shared<CollectionContainer>(m_ref_tool,CollectionType::CentralLowPt);
44  m_lowpt_central_eff->addSubtoolsTo(*this);
46 
48  m_lowpt_calo_eff = std::make_shared<CollectionContainer>(m_ref_tool, CollectionType::CaloLowPt);
49  m_lowpt_calo_eff->addSubtoolsTo(*this);
51 
52  if(m_ref_tool.use_lrt()) {
54  m_lrt_central_eff = std::make_shared<CollectionContainer>(m_ref_tool,CollectionType::Central);
55  }
56  else {
58  }
59  if (m_ref_tool.lowPtTransition() > 0 ) {
62  }
65  }
66  else {
67  m_lrt_lowpt_central_eff = std::make_shared<CollectionContainer>(m_ref_tool,CollectionType::CentralLowPt);
68  }
69  }
70  else {
72  }
73  }
74  }

◆ EffiCollection() [2/2]

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.

76  :
77  m_ref_tool(ref_tool),
78  m_central_eff(),
79  m_calo_eff(),
80  m_forward_eff(),
85  m_syst_set() {
86 
87  ref_tool.addSubtool (*this);
88 
89  if (is_up) syst_bit_map |= EffiCollection::UpVariation;
91  std::function< std::shared_ptr<CollectionContainer>(CollectionType)> make_variation = [this,&ref_tool, Nominal, syst_bit_map, syst](CollectionType type){
92  if (syst_bit_map & type) {
93  return std::make_shared<CollectionContainer>(ref_tool,
94  Nominal->retrieveContainer(type).get(),
95  syst, syst_bit_map); }
97  if (ref_tool.measurement() != MuonEfficiencyType::Reco) return m_central_eff;
98  return Nominal->retrieveContainer(type);
99  };
100  m_central_eff = make_variation(CollectionType::Central);
101  m_central_eff->addSubtoolsTo (*this);
102  m_forward_eff = make_variation(CollectionType::Forward);
103  m_forward_eff->addSubtoolsTo (*this);
104  m_calo_eff = make_variation(CollectionType::Calo);
105  m_calo_eff->addSubtoolsTo (*this);
106  m_lowpt_central_eff = make_variation(CollectionType::CentralLowPt);
107  m_lowpt_central_eff->addSubtoolsTo (*this);
108  m_lowpt_calo_eff = make_variation(CollectionType::CaloLowPt);
109  m_lowpt_calo_eff->addSubtoolsTo (*this);
110 
111  if (m_ref_tool.use_lrt()) {
112  m_lrt_central_eff = make_variation(CollectionType::Central);
113  m_lrt_lowpt_central_eff = make_variation(CollectionType::CentralLowPt);
114  }
115  }

Member Function Documentation

◆ CheckConsistency()

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.

125  {
126  if (!m_central_eff || !m_central_eff->CheckConsistency()) {
127  Error("EffiCollection()", "Consistency check for central file failed");
128  return false;
129  }
130  if (!m_calo_eff || !m_calo_eff->CheckConsistency()) {
131  Error("EffiCollection()", "Consistency check for calo file failed");
132  return false;
133  }
134  if (!m_forward_eff || !m_forward_eff->CheckConsistency()) {
135  Error("EffiCollection()", "Consistency check for forward file failed");
136  return false;
137  }
138  if (!m_lowpt_central_eff || !m_lowpt_central_eff->CheckConsistency()) {
139  Error("EffiCollection()", "Consistency check for low-pt file failed");
140  return false;
141  }
142  if (!m_lowpt_calo_eff || !m_lowpt_calo_eff->CheckConsistency()) {
143  Error("EffiCollection()", "Consistency check for low-pt calo file failed");
144  return false;
145  }
146  if (m_ref_tool.use_lrt()) {
147  if (!m_lrt_central_eff || !m_lrt_central_eff->CheckConsistency()) {
148  Error("EffiCollection()", "Consistency check for LRT central file failed");
149  return false;
150  }
151  if (!m_lrt_lowpt_central_eff || !m_lrt_lowpt_central_eff->CheckConsistency()) {
152  Error("EffiCollection()", "Consistency check for LRT low-pt file failed");
153  return false;
154  }
155  }
159  unsigned int n = m_central_eff->nBins();
160  std::function<void (CollectionContainer*)> assign_mapping = [this, &n](CollectionContainer* container){
161  if (container != m_central_eff.get() && container->separateBinSyst()){
162  container->SetGlobalOffSet(n);
163  n += container->nBins();
164  };
165  };
166  assign_mapping(m_calo_eff.get());
167  assign_mapping(m_calo_eff.get());
168  assign_mapping(m_lowpt_central_eff.get());
169  assign_mapping(m_lowpt_calo_eff.get());
170 
171  assign_mapping(m_forward_eff.get());
172 
173  if (m_ref_tool.use_lrt()) {
174  assign_mapping(m_lrt_central_eff.get());
175  assign_mapping(m_lrt_lowpt_central_eff.get());
176  }
179  if (!m_syst_set){
180  m_syst_set = std::make_unique<CP::SystematicSet>();
181  size_t glob_sys = m_ref_tool.getPosition(this);
182  if (glob_sys > m_ref_tool.getNCollections()){
183  Error("EffiCollection()", "Invalid position in the list of systematics. It seems that I'm not part of the referring ScaleFactorTool.");
184  return false;
185  }
188 
189  std::shared_ptr<CollectionContainer> container = retrieveContainer(file_type);
190  if (container->isNominal()) continue;
191  if (container->separateBinSyst()){
194  for (unsigned int b = container->nBins() - 1; b > 0 ; --b){
195  unsigned int bin = b + container->globalOffSet();
196  if (container->isOverFlowBin(bin)) continue;
197  m_syst_set->insert(CP::SystematicVariation::makeToyVariation("MUON_EFF_" + container->sysname() + GetBinName(bin) , bin, glob_sys));
198  }
199  } else {
200  m_syst_set->insert( SystematicVariation("MUON_EFF_" + container->sysname(), container->isUpVariation() ? 1 : -1));
201  }
202  }
203  }
204  return true;
205  }

◆ FileTypeName()

std::string CP::EffiCollection::FileTypeName ( EffiCollection::CollectionType  T)
static

Definition at line 306 of file EffiCollection.cxx.

306  {
307  if (T == CollectionType::Central) return "Central";
308  if (T == CollectionType::Calo) return "Calo";
309  if (T == CollectionType::Forward) return "Forward";
310  if (T == CollectionType::CentralLowPt) return "CentralLowPt";
311  if (T == CollectionType::CaloLowPt) return "CaloLowPt";
312  return "EffiCollection::FileTypeName() - WARNING: Unknown EffiCollection::CollectionType!";
313  }

◆ FindContainer() [1/2]

CollectionContainer * CP::EffiCollection::FindContainer ( columnar::MuonId  mu) const
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.

207  {
208  if (m_ref_tool.use_lrt()) {
209  if (isLRTmuon.isAvailable(mu)) {
210  if (isLRTmuon(mu)) return FindLRTContainer(mu);
211  }
212  else {
213  static const SG::AuxElement::Accessor<uint64_t> patternAcc("patternRecoInfo");
214  const xAOD::TrackParticle* idtrack = mu.getXAODObject().trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
215  if(idtrack) {
216  if(!patternAcc.isAvailable(*idtrack)) {
217  Error("CollectionContainer", "No information available to tell if the muon is LRT or standard. Either run MuonLRTMergingAlg to decorate with `isLRT` flag, or supply the patternRecoInfo for the original ID track.");
218  }
219  std::bitset<xAOD::NumberOfTrackRecoInfo> patternBitSet(patternAcc(*idtrack));
220  if (patternBitSet.test(xAOD::SiSpacePointsSeedMaker_LargeD0)) return FindLRTContainer(mu);
221  }
222  }
223  }
224  if (ptAcc(mu) < m_ref_tool.lowPtTransition()) {
225  if (std::abs(etaAcc(mu)) >= 2.5) {
226  return m_forward_eff.get();
227  }
228  if (muonTypeAcc(mu) == xAOD::Muon::CaloTagged) {
229  return m_lowpt_calo_eff.get();
230  }
231  return m_lowpt_central_eff.get();
232  }
233  if (muonTypeAcc(mu) == xAOD::Muon::CaloTagged) {
234  return m_calo_eff.get();
235  } else if (std::abs(etaAcc(mu)) < 2.5) {
236  return m_central_eff.get();
237  } else {
238  return m_forward_eff.get();
239  }
240  }

◆ FindContainer() [2/2]

CollectionContainer * CP::EffiCollection::FindContainer ( unsigned int  bin) const
private

Definition at line 241 of file EffiCollection.cxx.

241  {
242  if (m_central_eff->isBinInMap(bin)) return m_central_eff.get();
243  if (m_forward_eff->isBinInMap(bin)) return m_forward_eff.get();
244  if (m_calo_eff->isBinInMap(bin)) return m_calo_eff.get();
245  if (m_lowpt_central_eff->isBinInMap(bin)) return m_lowpt_central_eff.get();
246  if (m_lowpt_calo_eff->isBinInMap(bin)) return m_lowpt_calo_eff.get();
247  if (m_ref_tool.use_lrt()) {
248  if (m_lrt_central_eff->isBinInMap(bin)) return m_lrt_central_eff.get();
249  if (m_lrt_lowpt_central_eff->isBinInMap(bin)) return m_lrt_lowpt_central_eff.get();
250  }
251  return nullptr;
252  }

◆ FindLRTContainer()

CollectionContainer * CP::EffiCollection::FindLRTContainer ( columnar::MuonId  mu) const
private

Definition at line 253 of file EffiCollection.cxx.

253  {
255  else return m_lrt_central_eff.get();
256  }

◆ GetBinName()

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.

315  {
316  CollectionContainer* Cont = FindContainer(bin);
317  if (Cont) {
318  std::string BinName = FileTypeName(Cont->type()) +"_"+ Cont->GetBinName(bin);
319  for (const std::string& R : ToRemove) {
320  BinName = ReplaceExpInString(BinName, R, "");
321  }
322  for (const stringpair& R : ToReplace) {
323  BinName = ReplaceExpInString(BinName, R.first, R.second);
324  }
325  return BinName;
326  }
327  Warning("EffiCollection::GetBinName()", "Unknown bin %u", bin);
328 
329  return "UNKNOWN_BIN";
330  }

◆ getSystSet()

SystematicSet * CP::EffiCollection::getSystSet ( ) const

Returns the systematic set affecting this collection.

Definition at line 336 of file EffiCollection.cxx.

336  {
337  return m_syst_set.get();
338  }

◆ getUnCorrelatedSystBin()

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.

331  {
332  CollectionContainer* container = FindContainer(mu);
333  if (container) return container->FindBinSF(mu);
334  return -1;
335  }

◆ isAffectedBySystematic() [1/2]

bool CP::EffiCollection::isAffectedBySystematic ( const SystematicSet set) const

Definition at line 342 of file EffiCollection.cxx.

342  {
343  if (set.empty()) return m_syst_set->empty();
344  for (const SystematicVariation& variation: set){
345  if (isAffectedBySystematic(variation)) return true;
346  }
347  return false;
348  }

◆ isAffectedBySystematic() [2/2]

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.

339  {
340  return m_syst_set->find(variation) != m_syst_set->end();
341  }

◆ IsForwardBin()

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.

302  {
303  return m_forward_eff != m_central_eff && m_forward_eff->isBinInMap(Bin);
304  }

◆ IsLowPtBin()

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.

298  {
299  return (m_central_eff != m_lowpt_central_eff && m_lowpt_central_eff->isBinInMap(Bin)) ||
300  (m_central_eff != m_lowpt_calo_eff && m_lowpt_calo_eff->isBinInMap(Bin));
301  }

◆ nBins()

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.

266  {
267  unsigned int Nbins = 0;
268  if (m_central_eff) {
269  Nbins += m_central_eff->nBins();
270  }
271  if (m_central_eff != m_calo_eff) {
272  Nbins += m_calo_eff->nBins();
273  }
274  if (m_forward_eff != m_central_eff) {
275  Nbins += m_forward_eff->nBins();
276  }
278  Nbins += m_lowpt_central_eff->nBins();
279  }
281  Nbins += m_lowpt_calo_eff->nBins();
282  }
283  if (m_ref_tool.use_lrt()) {
284  if (m_lrt_central_eff) {
285  Nbins += m_lrt_central_eff->nBins();
286  }
288  Nbins += m_lrt_lowpt_central_eff->nBins();
289  }
290  }
291  return Nbins;
292  }

◆ retrieveContainer()

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.

117  {
118  if (Type == CollectionType::Central) return m_central_eff;
119  if (Type == CollectionType::Forward) return m_forward_eff;
120  if (Type == CollectionType::Calo) return m_calo_eff;
121  if (Type == CollectionType::CentralLowPt) return m_lowpt_central_eff;
122  if (Type == CollectionType::CaloLowPt) return m_lowpt_calo_eff;
123  return std::shared_ptr<CollectionContainer>();
124  }

◆ retrieveSF() [1/2]

EfficiencyScaleFactor * CP::EffiCollection::retrieveSF ( columnar::MuonId  mu,
unsigned int  RunNumber 
) const

Definition at line 260 of file EffiCollection.cxx.

260  {
261  CollectionContainer* Cont = FindContainer(mu);
262  if (Cont != nullptr) return Cont->retrieve(RunNumber);
263  Warning("EffiCollection::retrieveSF()", "Invalid muon");
264  return nullptr;
265  }

◆ retrieveSF() [2/2]

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.

257  {
259  }

◆ SetSystematicBin()

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.

293  {
294  CollectionContainer* Cont = FindContainer(Bin);
295  if (!Cont) return false;
296  return Cont->SetSystematicBin(Bin);
297  }

Member Data Documentation

◆ etaAcc

columnar::MuonAccessor<columnar::RetypeColumn<double,float> > CP::EffiCollection::etaAcc {*this, "eta"}

Definition at line 133 of file EffiCollection.h.

◆ isLRTmuon

columnar::MuonAccessor<char> CP::EffiCollection::isLRTmuon {*this, "isLRT", {.isOptional = true}}

Definition at line 135 of file EffiCollection.h.

◆ m_calo_eff

std::shared_ptr<CollectionContainer> CP::EffiCollection::m_calo_eff
private

Definition at line 118 of file EffiCollection.h.

◆ m_central_eff

std::shared_ptr<CollectionContainer> CP::EffiCollection::m_central_eff
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.

◆ m_forward_eff

std::shared_ptr<CollectionContainer> CP::EffiCollection::m_forward_eff
private

Definition at line 119 of file EffiCollection.h.

◆ m_lowpt_calo_eff

std::shared_ptr<CollectionContainer> CP::EffiCollection::m_lowpt_calo_eff
private

Definition at line 121 of file EffiCollection.h.

◆ m_lowpt_central_eff

std::shared_ptr<CollectionContainer> CP::EffiCollection::m_lowpt_central_eff
private

Definition at line 120 of file EffiCollection.h.

◆ m_lrt_central_eff

std::shared_ptr<CollectionContainer> CP::EffiCollection::m_lrt_central_eff
private

Definition at line 122 of file EffiCollection.h.

◆ m_lrt_lowpt_central_eff

std::shared_ptr<CollectionContainer> CP::EffiCollection::m_lrt_lowpt_central_eff
private

Definition at line 123 of file EffiCollection.h.

◆ m_muons

columnar::MuonAccessor<columnar::ObjectColumn> CP::EffiCollection::m_muons {*this, "Muons"}

Definition at line 131 of file EffiCollection.h.

◆ m_ref_tool

const MuonEfficiencyScaleFactors& CP::EffiCollection::m_ref_tool
private

Definition at line 112 of file EffiCollection.h.

◆ m_syst_set

std::unique_ptr<SystematicSet> CP::EffiCollection::m_syst_set
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.

◆ muonTypeAcc

columnar::MuonAccessor<columnar::RetypeColumn<xAOD::Muon::MuonType,std::uint16_t> > CP::EffiCollection::muonTypeAcc {*this, "muonType"}

Definition at line 134 of file EffiCollection.h.

◆ ptAcc

columnar::MuonAccessor<columnar::RetypeColumn<double,float> > CP::EffiCollection::ptAcc {*this, "pt"}

Definition at line 132 of file EffiCollection.h.


The documentation for this class was generated from the following files:
CP::MuonEfficiencyScaleFactors::filename_Calo
std::string filename_Calo() const
Reconstruction scale-factors have a dedicated map for calo-tag muons around |\eta|<0....
Definition: MuonEfficiencyScaleFactors.cxx:398
CP::MuonEfficiencyScaleFactors::filename_Central
std::string filename_Central() const
The following methods are meant to propagate information from the central tool to the subtool managin...
Definition: MuonEfficiencyScaleFactors.cxx:367
CP::MuonEfficiencyScaleFactors::filename_LRTLowPt
std::string filename_LRTLowPt() const
Definition: MuonEfficiencyScaleFactors.cxx:420
CP::EffiCollection::etaAcc
columnar::MuonAccessor< columnar::RetypeColumn< double, float > > etaAcc
Definition: EffiCollection.h:133
CP::EffiCollection::CentralLowPt
@ CentralLowPt
Definition: EffiCollection.h:48
Calo
Definition: CaloTrackingGeometryBuilder.h:15
CP::MuonEfficiencyScaleFactors::lowPtTransition
float lowPtTransition() const
If the pt of the muon is below that threshold the J/Psi or Upsilon map is used given that it's availa...
Definition: MuonEfficiencyScaleFactors.cxx:88
CP::SystematicVariation::makeToyVariation
static SystematicVariation makeToyVariation(const std::string &basename, unsigned toyIndex, float toyScale)
constructor for toy systematics
Definition: SystematicVariation.cxx:238
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:68
CP::EffiCollection::FindLRTContainer
CollectionContainer * FindLRTContainer(columnar::MuonId mu) const
Definition: EffiCollection.cxx:253
CP::EffiCollection::UnCorrelated
@ UnCorrelated
Definition: EffiCollection.h:61
CP::EffiCollection::m_lowpt_central_eff
std::shared_ptr< CollectionContainer > m_lowpt_central_eff
Definition: EffiCollection.h:120
CP::EffiCollection::Central
@ Central
The five different scale-factor maps.
Definition: EffiCollection.h:45
bin
Definition: BinsDiffFromStripMedian.h:43
CP::EffiCollection::Calo
@ Calo
Definition: EffiCollection.h:46
CP::EffiCollection::m_lrt_central_eff
std::shared_ptr< CollectionContainer > m_lrt_central_eff
Definition: EffiCollection.h:122
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
CP::EffiCollection::Forward
@ Forward
Definition: EffiCollection.h:47
CP::MuonEfficiencyScaleFactors::filename_LRTCentral
std::string filename_LRTCentral() const
LRT muons have their own efficiency maps.
Definition: MuonEfficiencyScaleFactors.cxx:381
CP::EffiCollection::m_lowpt_calo_eff
std::shared_ptr< CollectionContainer > m_lowpt_calo_eff
Definition: EffiCollection.h:121
CP::MuonEfficiencyScaleFactors::getPosition
size_t getPosition(const EffiCollection *coll) const
Returns the position of the collection in the syst set vector.
Definition: MuonEfficiencyScaleFactors.cxx:113
CP::MuonEfficiencyScaleFactors::filename_LowPt
std::string filename_LowPt() const
Returns the scale-factor maps from a complementary scale-factor measurement using the J/Psi or Upsilo...
Definition: MuonEfficiencyScaleFactors.cxx:412
CP::EffiCollection::CollectionType
CollectionType
Definition: EffiCollection.h:43
CP::EffiCollection::retrieveContainer
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...
Definition: EffiCollection.cxx:117
CP::EffiCollection::UpVariation
@ UpVariation
Definition: EffiCollection.h:62
jet::CombMassComp::Calo
@ Calo
Definition: UncertaintyEnum.h:197
beamspotman.n
n
Definition: beamspotman.py:731
CP::Reco
@ Reco
Definition: MuonEfficiencyType.h:14
egEnergyCorr::Resolution::Nominal
@ Nominal
Definition: egammaEnergyCorrectionTool.h:62
CP::EffiCollection::PtDependent
@ PtDependent
Definition: EffiCollection.h:60
CP::EffiCollection::GetBinName
std::string GetBinName(unsigned int bin) const
Returns the global bin name conststucted from the axis titles and the bin borders.
Definition: EffiCollection.cxx:315
CP::EffiCollection::muonTypeAcc
columnar::MuonAccessor< columnar::RetypeColumn< xAOD::Muon::MuonType, std::uint16_t > > muonTypeAcc
Definition: EffiCollection.h:134
AnalysisUtils::Delta::R
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
Definition: AnalysisMisc.h:49
xAODType
Definition: ObjectType.h:13
xAOD::SiSpacePointsSeedMaker_LargeD0
@ SiSpacePointsSeedMaker_LargeD0
Definition: TrackingPrimitives.h:184
CP::EffiCollection::isLRTmuon
columnar::MuonAccessor< char > isLRTmuon
Definition: EffiCollection.h:135
CP::MuonEfficiencyScaleFactors::filename_HighEta
std::string filename_HighEta() const
High-eta reconstruction scale-factors are not obtained by the means of are not obtained by the means ...
Definition: MuonEfficiencyScaleFactors.cxx:405
CP::EffiCollection::m_ref_tool
const MuonEfficiencyScaleFactors & m_ref_tool
Definition: EffiCollection.h:112
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
CP::EffiCollection::retrieveSF
EfficiencyScaleFactor * retrieveSF(const xAOD::Muon &mu, unsigned int RunNumber) const
return the correct SF type to provide, depending on eta and the author
Definition: EffiCollection.cxx:257
CP::EffiCollection::m_forward_eff
std::shared_ptr< CollectionContainer > m_forward_eff
Definition: EffiCollection.h:119
EventInfoWrite.RunNumber
RunNumber
Definition: EventInfoWrite.py:50
columnar::ObjectId
a class representing a single object (electron, muons, etc.)
Definition: ObjectId.h:18
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
CP::MuonEfficiencyScaleFactors::getNCollections
size_t getNCollections() const
Returns the number of EffiCollections stored in this class.
Definition: MuonEfficiencyScaleFactors.cxx:121
CP::EffiCollection::ZAnalysis
@ ZAnalysis
Definition: EffiCollection.h:51
CP::EffiCollection::Symmetric
@ Symmetric
Definition: EffiCollection.h:59
CP::EffiCollection::m_calo_eff
std::shared_ptr< CollectionContainer > m_calo_eff
Definition: EffiCollection.h:118
CP::EffiCollection::FileTypeName
static std::string FileTypeName(EffiCollection::CollectionType T)
Definition: EffiCollection.cxx:306
CP::EffiCollection::CaloLowPt
@ CaloLowPt
Definition: EffiCollection.h:49
CP::EffiCollection::FindContainer
CollectionContainer * FindContainer(unsigned int bin) const
Definition: EffiCollection.cxx:241
CP::ReplaceExpInString
std::string ReplaceExpInString(std::string str, const std::string &exp, const std::string &rep)
Replaces all expressions an string by something else.
Definition: PhysicsAnalysis/MuonID/MuonIDAnalysis/MuonEfficiencyCorrections/Root/UtilFunctions.cxx:24
CP::EffiCollection::JPsiAnalysis
@ JPsiAnalysis
Distinguish these two because the systematics are named with an extra LOWPT.
Definition: EffiCollection.h:54
CP::EffiCollection::m_lrt_lowpt_central_eff
std::shared_ptr< CollectionContainer > m_lrt_lowpt_central_eff
Definition: EffiCollection.h:123
CP::MuonEfficiencyScaleFactors::use_lrt
bool use_lrt() const
option to set if we want to use LRT muons
Definition: MuonEfficiencyScaleFactors.cxx:124
CP::EffiCollection::m_syst_set
std::unique_ptr< SystematicSet > m_syst_set
The systematic set is returned back to the MuonEfficiencyScaleFactors instance to register The known ...
Definition: EffiCollection.h:127
CP::EffiCollection::isAffectedBySystematic
bool isAffectedBySystematic(const SystematicVariation &variation) const
Returns whether the given set has variations affecting this Collection.
Definition: EffiCollection.cxx:339
L1Topo::Error
Error
The different types of error that can be flagged in the L1TopoRDO.
Definition: Error.h:16
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
CP::MuonEfficiencyScaleFactors::filename_LowPtCalo
std::string filename_LowPtCalo() const
Definition: MuonEfficiencyScaleFactors.cxx:428
CP::EffiCollection::m_central_eff
std::shared_ptr< CollectionContainer > m_central_eff
Make the collection container shared ptr to allow that a systematic EffiCollection can use the same c...
Definition: EffiCollection.h:117
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
CP::EffiCollection::ptAcc
columnar::MuonAccessor< columnar::RetypeColumn< double, float > > ptAcc
Definition: EffiCollection.h:132