ATLAS Offline Software
FilterParams.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
10 #ifndef LArSamples_FilterParams_H
11 #define LArSamples_FilterParams_H
12 
13 #include <vector>
14 #include <map>
15 #include <cfloat>
16 #include "LArCafJobs/CaloId.h"
17 #include "LArSamplesMon/Data.h"
19 
20 
21 namespace LArSamples {
22 
23  typedef std::pair<int, int> UIntRange;
24  class History;
25  class Data;
26  class CellInfo;
27 
29  ChannelSpec(CaloId cal, unsigned int ft, unsigned int s, unsigned int c) :
30  calo(cal), feedThrough(ft), slot(s), channel(c) { }
31  bool match(const CellInfo& info) const;
33  int feedThrough, slot, channel;
34  };
35 
36 #ifndef __GCCXML__
37  struct FuncCut {
39  : func(f), args(a), min(-DBL_MAX), max(DBL_MAX) { }
40  bool pass(const Data& data) const;
41  bool gotMin() const { return min > -DBL_MAX/2; }
42  bool gotMax() const { return max < +DBL_MAX/2; }
43  void setEqual(double val) { min = val; max = val - 1; }
46  double min, max;
47  };
48 #endif
49 
51 
52  public:
53 
55  m_status(0xffffffff), m_requireSat(0),
56  m_requireConvergence(false), m_channelSel(0), m_indexParity(0) { }
57 
59 
60  bool set(const char* selection);
61 
62  void addRunRange(unsigned int run1, unsigned int run2) { m_runs.push_back(UIntRange(run1, run2)); }
63  void addEventRange(unsigned int event1, unsigned int event2) { m_events.push_back(UIntRange(event1, event2)); }
64  void addLBRange(unsigned int lb1, unsigned int lb2) { m_lbs.push_back(UIntRange(lb1, lb2)); }
65  void addHashIdRange(unsigned int hashId1, unsigned int hashId2) { m_hashIds.push_back(UIntRange(hashId1, hashId2)); }
66 
67  void addRun(unsigned int run) { m_runs.push_back(UIntRange(run, run + 1)); }
68  void addEvent(unsigned int event) { m_events.push_back(UIntRange(event, event + 1)); }
69  void addLB(unsigned int lb) { m_lbs.push_back(UIntRange(lb, lb + 1)); }
70  void addHashId(unsigned int hashId) { m_hashIds.push_back(UIntRange(hashId, hashId + 1)); }
71  void addLayer(unsigned int layer) { m_layers.push_back(layer); }
72  void addGain(CaloGain::CaloGain gain) { m_gains.push_back(gain); }
73 
74  void addRunEventFromData(const Data& data);
75 
76  void addChannel(CaloId calo, int feedthrough, int slot, int channel);
77  void addChannels(const char* fileName); // bad channels list in usual format: 1 per line, | barrel_ec | pos_neg | ft | slot | channel | pb |
78  void setChannelVeto(short veto = -1) { m_channelSel = veto; } // apply channelList as Veto (true) or positive filter (false)
79 
80  void addCalo(CaloId calo) { m_calos.push_back(calo); }
81  void addPartition(PartitionId part) { m_partitions.push_back(part); }
82  void setStatus(unsigned int status) { m_status = status; }
83 
84  void setRequireConvergence(bool conv = true) { m_requireConvergence = conv; }
85  void setRequireSaturation (bool flag = true) { m_requireSat = m_requireSat | (flag ? 1 : 0); }
86  void setRequireNoSaturation(bool flag = true) { m_requireSat = m_requireSat | (flag ? 12 : 0); }
87  void setIndexParity(short parity) { m_indexParity = parity; }
88 
89  //bool pass(unsigned int hashId, CaloId calo,
90  // unsigned int run, unsigned int event, unsigned int status,
91  // double cellEnergy, double adcMax, double sampleMax) const;
92  //bool passEvent(unsigned int run, unsigned int event, unsigned int status, double cellEnergy, double adcMax, double sampleMax) const;
93  //bool passCell(unsigned int hashId, CaloId calo) const;
94 
95  bool pass(unsigned int hashId, const History& history, unsigned int k) const;
96  bool passHash(unsigned int hashId) const;
97  bool passCell(const CellInfo& info) const;
98  bool passEvent(const Data& data) const;
99 
100  static const short m_saturation = 3800;
101 
102  static bool splitToken(const TString& token, TString& var, TString& op, TString& arg);
103  TString processToken(const TString& var, const TString& op, const TString& arg, const TString& oring = "");
104 
105  private:
106 
107  std::vector<UIntRange> m_runs, m_events, m_hashIds, m_lbs;
108  std::vector<CaloId> m_calos;
109  std::vector<PartitionId> m_partitions;
110  std::vector<ChannelSpec> m_channels;
111  std::vector<int> m_layers;
112  std::vector<CaloGain::CaloGain> m_gains;
113  unsigned int m_status, m_requireSat;
114 
115 #ifndef __GCCXML__
116  std::map<TString, FuncCut> m_cuts;
117 #endif
118 
120  int m_channelSel; // +1 for selection, -1 for veto;
122  };
123 }
124 #endif
grepfile.info
info
Definition: grepfile.py:38
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
LArSamples::FilterParams::addRun
void addRun(unsigned int run)
Definition: FilterParams.h:67
CaloId.h
LArSamples::FuncCut::gotMax
bool gotMax() const
Definition: FilterParams.h:42
beamspotnt.var
var
Definition: bin/beamspotnt.py:1394
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
PlotCalibFromCool.ft
ft
Definition: PlotCalibFromCool.py:329
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
DeMoUpdate.lb1
def lb1
Definition: DeMoUpdate.py:1052
LArSamples::ChannelSpec::ChannelSpec
ChannelSpec(CaloId cal, unsigned int ft, unsigned int s, unsigned int c)
Definition: FilterParams.h:29
LArSamples::FilterParams::m_cuts
std::map< TString, FuncCut > m_cuts
Definition: FilterParams.h:116
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
LArSamples::FilterParams
Definition: FilterParams.h:50
LArSamples::FilterParams::m_indexParity
short m_indexParity
Definition: FilterParams.h:121
LArSamples::FilterParams::m_layers
std::vector< int > m_layers
Definition: FilterParams.h:111
ATLAS_NOT_THREAD_SAFE
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Definition: checker_macros.h:212
LArSamples::FuncCut::FuncCut
FuncCut(const DataFuncSet &f=DataFuncSet(), const DataFuncArgs &a=DataFuncArgs())
Definition: FilterParams.h:38
LArSamples::History
Definition: History.h:40
LArSamples::FilterParams::setRequireSaturation
void setRequireSaturation(bool flag=true)
Definition: FilterParams.h:85
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
LArSamples::FilterParams::setRequireConvergence
void setRequireConvergence(bool conv=true)
Definition: FilterParams.h:84
LArSamples::FilterParams::addRunRange
void addRunRange(unsigned int run1, unsigned int run2)
Definition: FilterParams.h:62
LArSamples::ChannelSpec::calo
CaloId calo
Definition: FilterParams.h:32
LArSamples::FilterParams::m_runs
std::vector< UIntRange > m_runs
Definition: FilterParams.h:107
LArSamples
Definition: AbsShape.h:24
LArSamples::FilterParams::addGain
void addGain(CaloGain::CaloGain gain)
Definition: FilterParams.h:72
LArSamples::FilterParams::m_channels
std::vector< ChannelSpec > m_channels
Definition: FilterParams.h:110
LArSamples::FilterParams::setChannelVeto
void setChannelVeto(short veto=-1)
Definition: FilterParams.h:78
LArSamples::FuncCut::args
DataFuncArgs args
Definition: FilterParams.h:45
LArSamples::ChannelSpec
Definition: FilterParams.h:28
LArSamples::FuncCut
Definition: FilterParams.h:37
LArSamples::FilterParams::m_requireConvergence
bool m_requireConvergence
Definition: FilterParams.h:119
LArSamples::FilterParams::addLBRange
void addLBRange(unsigned int lb1, unsigned int lb2)
Definition: FilterParams.h:64
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
LArSamples::FilterParams::addCalo
void addCalo(CaloId calo)
Definition: FilterParams.h:80
python.BunchSpacingUtils.lb
lb
Definition: BunchSpacingUtils.py:88
LArSamples::FuncCut::min
double min
Definition: FilterParams.h:46
LArSamples::FilterParams::m_channelSel
int m_channelSel
Definition: FilterParams.h:120
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
LArSamples::FilterParams::addHashId
void addHashId(unsigned int hashId)
Definition: FilterParams.h:70
LArSamples::FilterParams::addEventRange
void addEventRange(unsigned int event1, unsigned int event2)
Definition: FilterParams.h:63
LArSamples::FilterParams::m_partitions
std::vector< PartitionId > m_partitions
Definition: FilterParams.h:109
maskDeadModules.run1
run1
Definition: maskDeadModules.py:40
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
master.flag
bool flag
Definition: master.py:29
LArSamples::PartitionId
PartitionId
Definition: CaloId.h:29
run
Definition: run.py:1
selection
std::string selection
Definition: fbtTestBasics.cxx:73
LArSamples::FilterParams::setStatus
void setStatus(unsigned int status)
Definition: FilterParams.h:82
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:224
LArSamples::FilterParams::m_gains
std::vector< CaloGain::CaloGain > m_gains
Definition: FilterParams.h:112
LArSamples::FuncCut::func
DataFuncSet func
Definition: FilterParams.h:44
create_dcsc_inputs_sqlite.arg
list arg
Definition: create_dcsc_inputs_sqlite.py:48
ReadCellNoiseFromCoolCompare.run2
run2
Definition: ReadCellNoiseFromCoolCompare.py:53
LArSamples::FuncCut::max
double max
Definition: FilterParams.h:46
LArSamples::FuncCut::setEqual
void setEqual(double val)
Definition: FilterParams.h:43
LArSamples::FilterParams::addHashIdRange
void addHashIdRange(unsigned int hashId1, unsigned int hashId2)
Definition: FilterParams.h:65
LArSamples::Data
Definition: Data.h:77
LArSamples::CellInfo
Definition: CellInfo.h:31
LArSamples::CaloId
CaloId
Definition: CaloId.h:21
CaloGain::CaloGain
CaloGain
Definition: CaloGain.h:11
LArSamples::FilterParams::m_calos
std::vector< CaloId > m_calos
Definition: FilterParams.h:108
a
TList * a
Definition: liststreamerinfos.cxx:10
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
LArSamples::FuncCut::gotMin
bool gotMin() const
Definition: FilterParams.h:41
LArSamples::FilterParams::setRequireNoSaturation
void setRequireNoSaturation(bool flag=true)
Definition: FilterParams.h:86
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
LArSamples::DataFuncSet
Definition: Data.h:59
LArSamples::ChannelSpec::slot
int slot
Definition: FilterParams.h:33
LArSamples::DataFuncArgs
Definition: Data.h:39
LArSamples::FilterParams::addPartition
void addPartition(PartitionId part)
Definition: FilterParams.h:81
LArSamples::UIntRange
std::pair< int, int > UIntRange
Definition: FilterParams.h:23
LArSamples::FilterParams::addEvent
void addEvent(unsigned int event)
Definition: FilterParams.h:68
Data.h
merge.status
status
Definition: merge.py:17
veto
std::vector< std::string > veto
these patterns are anded
Definition: listroot.cxx:191
LArSamples::FilterParams::addLayer
void addLayer(unsigned int layer)
Definition: FilterParams.h:71
LArSamples::FilterParams::FilterParams
FilterParams()
Definition: FilterParams.h:54
LArSamples::FuncCut::pass
bool pass(const Data &data) const
Definition: FilterParams.cxx:33
CaloGain.h
LArSamples::FilterParams::addLB
void addLB(unsigned int lb)
Definition: FilterParams.h:69
LArSamples::FilterParams::m_status
unsigned int m_status
Definition: FilterParams.h:113
python.compressB64.c
def c
Definition: compressB64.py:93
match
bool match(std::string s1, std::string s2)
match the individual directories of two strings
Definition: hcg.cxx:356
fitman.k
k
Definition: fitman.py:528
LArSamples::FilterParams::setIndexParity
void setIndexParity(short parity)
Definition: FilterParams.h:87
pdg_comparison.conv
conv
Definition: pdg_comparison.py:321