Common Analysis Framework » QFRAMEWORK » TQGridScanner

class TQGridScanner: public TQTaggable, public TNamed


 TQGridScanner

 The TQGridScanner is the last element in the chain of classes
 that can be used for a full scan cut optimization.

 the workflow here could be as follows
 - create a multidimensional histogram during the analyze with the desired variables
   for optimization
 - run the runGridScanner.py script for creating a TQGridScanner
   and supplying it with a TQSignificanceEvaluator
   that fits your needs regarding precision/runtime requirements
 - sort the results using the TQGridScanner::sortPoints method
 - retrieve the first (best) entry with TQGridScanner::printPoint(0)

 Plotting options:
 - ext=pdf,ps,...
 file extension. Works for all "plotAndSave..."-functions
 accepts all extension that are accepted by TCanvas->SaveAs(...)
 - showmax=true,false
 show the maximum. works for plotAndSave[All]SignficanceProfile[s]
 will additionally show the absolute maximum for each bin
 this option is ignored if topNumber is 1
 - cut.$VARNAME=X. Works if set on the GridScanner itself.
 Will draw a vertical line at X. Can be used to mark the baseline cut value.


Function Members (Methods)

public:
virtual~TQGridScanner()
voidTObject::AbstractMethod(const char* method) const
booladdBkgHist(THnBase* hist)
voidaddFOMDefinitions(const vector<TString>& definitions)
booladdSignalHist(THnBase* hist)
boolTQTaggable::allTagsOfTypeBool()
boolTQTaggable::allTagsOfTypeDouble()
boolTQTaggable::allTagsOfTypeInteger()
boolTQTaggable::allTagsOfTypeString()
boolTQTaggable::allTagsValidBools()
boolTQTaggable::allTagsValidDoubles()
boolTQTaggable::allTagsValidIntegers()
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
boolTQTaggable::canSetThisTag(const TString& key, bool& treatAsList)
ULong_tTObject::CheckedHash()
intTQTaggable::claimTags(const TString& definition, bool printErrMsg = false)
intTQTaggable::claimTags(const TString& definition, TString& message)
intTQTaggable::claimTags(const TString& definition, TString& missing, TString& invalid, TString& unexpected)
static TClass*Class()
virtual const char*TObject::ClassName() const
voidTQTaggable::clear()
virtual voidTNamed::Clear(Option_t* option = "")
intTQTaggable::clearTags()
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
intTQTaggable::countMatchingTags(const TString& name) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
voiddumpInputHistogramProjections(TQTaggable& tags)
virtual voidTObject::Error(const char* method, const char* msgfmt,...) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
boolTQTaggable::exportConfigFile(bool writeUnreadKeys = true)
boolTQTaggable::exportConfigFile(const TString& filename, bool writeUnreadKeys = true)
boolTQTaggable::exportConfigFile(const TString& filename, const TString& prefix, bool writeUnreadKeys = true)
intTQTaggable::exportTags(TQTaggable* dest, const TString& subDest = "", const TString& filter = "", bool recursive = false)
TStringTQTaggable::exportTagsAsConfigString(const TString& prefix, const TString& filter = "")
stringTQTaggable::exportTagsAsStandardConfigString(const TString& prefix, const TString& filter = "")
stringTQTaggable::exportTagsAsStandardString(const TString& filter = "", bool xmlStyle = false)
TStringTQTaggable::exportTagsAsString(const TString& filter = "", bool xmlStyle = false)
voidextractInputHistogramProjections()
virtual voidTObject::Fatal(const char* method, const char* msgfmt,...) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual TQTaggable*TQTaggable::getBaseTaggable() const
virtual TList*TQTaggable::getDescendantTaggables()
virtual Option_t*TObject::GetDrawOption() const
static Longptr_tTObject::GetDtorOnly()
virtual TStringTQTaggable::getFlags()
intTQTaggable::getFlagsSize()
boolTQTaggable::getGlobalIgnoreCase() const
boolTQTaggable::getGlobalOverwrite() const
static shared_ptr<TQTaggable>TQTaggable::getGlobalTaggable(const char* name)
static shared_ptr<TQTaggable>TQTaggable::getGlobalTaggable(const TString& name)
virtual const char*TObject::GetIconName() const
TList*TQTaggable::getListOfKeys(const TString& filter = "")
virtual TList*TQTaggable::getListOfTaggables(const TString& name)
TList*TQTaggable::getListOfTagNames()
virtual TList*TQTaggable::getListOfUnreadKeys(const TString& filter = "")
virtual const char*TNamed::GetName() const
intTQTaggable::getNTags() const
intgetNumberOfPoints()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
TQGridScanObservable*getObs(const TString& obsName)
virtual Option_t*TObject::GetOption() const
unique_ptr<TH1F>getSignificanceProfile(TQGridScanner::BoundDirection direction, int i, int topNumber)
boolTQTaggable::getTag(const TString& key, double& value)
boolTQTaggable::getTag(const TString& key, int& value)
boolTQTaggable::getTag(const TString& key, bool& value)
boolTQTaggable::getTag(const TString& key, TString& value)
intTQTaggable::getTag(const TString& key, vector<TString>& vec)
intTQTaggable::getTag(const TString& key, vector<int>& vec)
intTQTaggable::getTag(const TString& key, vector<double>& vec)
intTQTaggable::getTag(const TString& key, vector<bool>& vec)
intTQTaggable::getTag(const TString& key, TList* l)
boolTQTaggable::getTag(const TString& key, double& value, bool recursive)
boolTQTaggable::getTag(const TString& key, int& value, bool recursive)
boolTQTaggable::getTag(const TString& key, bool& value, bool recursive)
boolTQTaggable::getTag(const TString& key, TString& value, bool recursive)
boolTQTaggable::getTagAsString(const TString& key, TString& tag)
boolTQTaggable::getTagBool(const TString& key, bool& value)
boolTQTaggable::getTagBool(const TString& key, bool& value, bool recursive)
boolTQTaggable::getTagBoolDefault(const TString& key, bool defaultVal = false)
doubleTQTaggable::getTagDefault(const TString& key, double defaultVal)
intTQTaggable::getTagDefault(const TString& key, int defaultVal)
boolTQTaggable::getTagDefault(const TString& key, bool defaultVal)
TStringTQTaggable::getTagDefault(const TString& key, const TString& defaultVal)
TStringTQTaggable::getTagDefault(const TString& key, const char* defaultVal)
boolTQTaggable::getTagDouble(const TString& key, double& value)
boolTQTaggable::getTagDouble(const TString& key, double& value, bool recursive)
doubleTQTaggable::getTagDoubleDefault(const TString& key, double defaultVal = 0.)
virtual TList*TQTaggable::getTaggablesByName(const TString& name)
boolTQTaggable::getTagInteger(const TString& key, int& value)
boolTQTaggable::getTagInteger(const TString& key, int& value, bool recursive)
intTQTaggable::getTagIntegerDefault(const TString& key, int defaultVal = 0)
TList*TQTaggable::getTagList(const TString& key)
intTQTaggable::getTagListLength(const TString& key)
intTQTaggable::getTagsSize()
stringTQTaggable::getTagStandardStringDefault(const TString& key, const TString& defaultVal = "")
boolTQTaggable::getTagString(const TString& key, TString& value)
boolTQTaggable::getTagString(const TString& key, TString& value, bool recursive)
TStringTQTaggable::getTagStringDefault(const TString& key, const TString& defaultVal = "")
vector<bool>TQTaggable::getTagVBool(const TString& key)
vector<double>TQTaggable::getTagVDouble(const TString& key)
vector<int>TQTaggable::getTagVInt(const TString& key)
vector<int>TQTaggable::getTagVInteger(const TString& key)
vector<string>TQTaggable::getTagVStandardString(const TString& key)
vector<TString>TQTaggable::getTagVString(const TString& key)
virtual const char*TNamed::GetTitle() const
boolTQTaggable::getTypeOfTagAsString(const TString& key, TString& type)
virtual UInt_tTObject::GetUniqueID() const
static const TString&TQTaggable::getValidKeyCharacters()
boolTQTaggable::getValueOfTagAsString(const TString& key, TString& value)
TStringTQTaggable::getValuesOfTags(const TString& keys, const TString& sep = ", ")
virtual Bool_tTObject::HandleTimer(TTimer* timer)
boolTQTaggable::hasEquivalentTag(const TQValue* reference, bool recurseUp = true)
boolTQTaggable::hasEquivalentTag(const TQValue& reference, bool recurseUp = true)
boolTQTaggable::hasEquivalentTag(const TString& key, const TString& value)
boolTQTaggable::hasEquivalentTag(const TString& key, const double value)
boolTQTaggable::hasEquivalentTag(const TString& key, const int value)
boolTQTaggable::hasEquivalentTag(const TString& key, const bool value)
static boolTQTaggable::hasGlobalTaggable(const char* name)
static boolTQTaggable::hasGlobalTaggable(const TString& name)
virtual ULong_tTNamed::Hash() const
Bool_tTObject::HasInconsistentHash() const
boolTQTaggable::hasMatchingTag(const TString& name) const
boolTQTaggable::hasTag(const TString& key)
boolTQTaggable::hasTagBool(const TString& key)
boolTQTaggable::hasTagDouble(const TString& key)
boolTQTaggable::hasTagInteger(const TString& key)
boolTQTaggable::hasTagString(const TString& key)
boolTQTaggable::hasTagWithIndex(const TString& key)
boolTQTaggable::hasTagWithoutIndex(const TString& key)
virtual boolTQTaggable::hasUnreadKeys(const TString& filter = "")
intTQTaggable::importTag(TString tag, bool overwrite = true, bool keepStringQuotes = false)
intTQTaggable::importTags(TString tags, bool overwrite = true, bool keepStringQuotes = false)
intTQTaggable::importTags(const TQTaggable* tags, bool overwrite = true, bool recursive = false)
intTQTaggable::importTags(shared_ptr<TQTaggable> tags, bool overwrite = true, bool recursive = false)
intTQTaggable::importTags(const TQTaggable& tags, bool overwrite = true, bool recursive = false)
intTQTaggable::importTagsWithoutPrefix(const TQTaggable* tags, const TString& prefix, bool overwrite = true, bool recursive = false)
intTQTaggable::importTagsWithoutPrefix(const TQTaggable& tags, const TString& prefix, bool overwrite = true, bool recursive = false)
intTQTaggable::importTagsWithPrefix(TString tags, const TString& prefix, bool overwrite = true, bool keepStringQuotes = false, TString fallbackKey = "")
intTQTaggable::importTagsWithPrefix(const TQTaggable* tags, const TString& prefix, bool overwrite = true, bool recursive = false, TString fallbackKey = "")
intTQTaggable::importTagsWithPrefix(const TQTaggable& tags, const TString& prefix, bool overwrite = true, bool recursive = false, TString fallbackKey = "")
intTQTaggable::importTagWithPrefix(const TString& tag, const TString& prefix, bool overwrite = true, TString fallbackKey = "", bool keepStringQuotes = false)
virtual voidTObject::Info(const char* method, const char* msgfmt,...) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tTObject::IsDestructed() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
boolTQTaggable::isTagOverwrittenByDescendants(TString key)
static boolTQTaggable::isValidKey(const TString& key)
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
static TList*TQTaggable::makeListOfTags(TList* unTags)
voidTObject::MayNotUse(const char* method) const
const TString&nDimHistName() const
virtual Bool_tTObject::Notify()
vector<TString>obsNamesToScan()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
virtual voidTQTaggable::onAccess(TQValue* tag)
virtual voidTQTaggable::onRead(TQValue* tag)
virtual voidTQTaggable::onWrite(TQValue* tag)
voidTObject::operator delete(void* ptr)
voidTObject::operator delete(void* ptr, void* vp)
voidTObject::operator delete[](void* ptr)
voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TQGridScanner&operator=(const TQGridScanner&)
virtual voidTObject::Paint(Option_t* option = "")
static TQTaggable*TQTaggable::parseFlags(const TString& flags)
boolTQTaggable::parseKey(TString key, TString& bareKey, int& opUp, int& opDown)
static TQTaggable*TQTaggable::parseParameterList(const TString& parameter, const TString& sep = ",", bool trim = true, const TString& blocks = "", const TString& quotes = "")
voidplotAndSaveAllSignificanceProfiles(int topNumber, const TString& options)
voidplotAndSaveSignificanceProfile(TQGridScanner::BoundDirection direction, int i, int topNumber, const TString& options)
vector<TQGridScanPoint>&points()
virtual voidTObject::Pop()
intprepare()
virtual voidTNamed::Print(Option_t* option = "") const
intTQTaggable::printClaim(const TString& definition)
boolTQTaggable::printDiffOfTags(TQTaggable* tags, const TString& options = "")
boolTQTaggable::printDiffOfTags(TQTaggable* tags, TQTaggable& options)
voidTQTaggable::printTags(TString options = "r")
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
static boolTQTaggable::removeGlobalTaggable(const char* name)
static boolTQTaggable::removeGlobalTaggable(const TString& name)
intTQTaggable::removeTag(const TString& key)
intTQTaggable::removeTags(const TString& key)
boolTQTaggable::renameTag(const TString& oldKey, const TString& newKey)
intTQTaggable::renameTags(const TString& oldPrefix, const TString& newPrefix)
stringTQTaggable::replaceInStandardString(const TString& in, bool keepQuotes = false)
stringTQTaggable::replaceInStandardString(const TString& in, const char* prefix, bool keepQuotes = false)
stringTQTaggable::replaceInStandardString(const TString& in, const TString& prefix, bool keepQuotes = false)
stringTQTaggable::replaceInStandardStringRecursive(TString in, const TString& prefix = "", bool keepQuotes = false)
intTQTaggable::replaceInTags(TQTaggable& params, const TString& tagFilter = "*")
TStringTQTaggable::replaceInText(const TString& in, bool keepQuotes = false)
TStringTQTaggable::replaceInText(const TString& in, const char* prefix, bool keepQuotes = false)
TStringTQTaggable::replaceInText(const TString& in, const TString& prefix, bool keepQuotes = false)
TStringTQTaggable::replaceInText(const TString& in, int& nReplaced, int& nFailed, bool keepQuotes = false)
TStringTQTaggable::replaceInText(TString in, int& nReplaced, int& nFailed, const TString& prefix, bool keepQuotes = false)
TStringTQTaggable::replaceInTextRecursive(TString in, const TString& prefix = "", bool keepQuotes = false)
voidTObject::ResetBit(UInt_t f)
virtual voidTQTaggable::resetReadFlags()
TQGridScanResults*results()
voidrun(vector<int> chunk = {})
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidTQTaggable::setGlobalIgnoreCase(bool globalIgnoreCase = true)
voidTQTaggable::setGlobalOverwrite(bool globalOverwrite = true)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
intTQTaggable::setTag(const TString& key, double value, const TString& destination = "")
intTQTaggable::setTag(const TString& key, int value, const TString& destination = "")
intTQTaggable::setTag(const TString& key, bool value, const TString& destination = "")
intTQTaggable::setTag(const TString& key, const TString& value, const TString& destination = "")
intTQTaggable::setTag(const TString& key, const char* value, const TString& destination = "")
intTQTaggable::setTag(const char* key, double value, const TString& destination = "")
intTQTaggable::setTag(const char* key, int value, const TString& destination = "")
intTQTaggable::setTag(const char* key, bool value, const TString& destination = "")
intTQTaggable::setTag(const char* key, const TString& value, const TString& destination = "")
intTQTaggable::setTag(const char* key, const char* value, const TString& destination = "")
intTQTaggable::setTagAuto(const TString& key, TString value, const TString& destination = "")
intTQTaggable::setTagBool(TString key, bool value, const TString& destination = "")
intTQTaggable::setTagDouble(TString key, double value, const TString& destination = "")
intTQTaggable::setTagInteger(TString key, int value, const TString& destination = "")
intTQTaggable::setTagList(const TString& key, TString value, const TString& destination = "")
intTQTaggable::setTagString(TString key, const TString& value, const TString& destination = "")
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
voidsetVerbose(bool v = true)
virtual voidShowMembers(TMemberInspector& insp) const
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt,...) const
boolTQTaggable::tagIsOfTypeBool(const TString& key)
boolTQTaggable::tagIsOfTypeDouble(const TString& key)
boolTQTaggable::tagIsOfTypeInteger(const TString& key)
boolTQTaggable::tagIsOfTypeString(const TString& key)
boolTQTaggable::tagsAreEquivalentTo(TQTaggable* tags, const TString& filter = "")
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
TQGridScanner()
TQGridScanner(const TQGridScanner&)
TQGridScanner(const TString& name, TQSignificanceEvaluator* evaluator)
TQGridScanner(const TString& name, TQSignificanceEvaluator* evaluator, TList* obsToScan)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt,...) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
intTQTaggable::countTagDown(const TString& key)
intTQTaggable::countTagUp(const TString& key)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
boolevaluatePoint(vector<int> chunk)
TQValue*TQTaggable::findTag(TString name)
TList*TQTaggable::getListOfTags()
boolTQTaggable::getOp(const TString& op, int& opCode)
boolTQTaggable::getTag(const TString& key, TQValue*& tag)
voidinit()
boolisAcceptedPoint(const TQGridScanPoint& point)
voidTObject::MakeZombie()
voidscan(vector<pair<int,int> >::iterator obsValsIter, vector<TQGridScanObservable*>::iterator obsIter, vector<int> chunk)
voidscanSplit(vector<int>::iterator obsBinsIter, vector<TQGridScanObservable*>::iterator obsIter, vector<int> chunk)
intTQTaggable::setTag(TQValue* tag, const TString& destination = "")
intTQTaggable::setTag(TQValue* tag, const TString& destination, bool overwrite)
doublesplitSignif2(vector<int>::iterator obsBinsIter, vector<TQGridScanObservable*>::iterator obsIter, bool isScanSplit)
doublesplitSignifHandleRecursion(bool isFinalLevel, bool isScanSplit, vector<int>::iterator obsBinsIter, vector<TQGridScanObservable*>::iterator obsIter)
boolupdateHeartbeat()
voidupdateProgress()
private:
virtual Bool_tCheckTObjectHashConsistency() const

Data Members

public:
boolhasSplitObs
static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static TObject::(anonymous)TObject::kInconsistent
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EDeprecatedStatusBitsTObject::kObjInCanvas
static TObject::(anonymous)TObject::kOverwrite
static TObject::(anonymous)TObject::kSingleKey
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
protected:
boolTQTaggable::fGlobalIgnoreCase!
boolTQTaggable::fGlobalOverwrite!
TStringTNamed::fNameobject identifier
TList*TQTaggable::fReadFlags!
TList*TQTaggable::fTags
TStringTNamed::fTitleobject title
static TObject::(anonymous)TObject::kOnlyPrepStep
static TQTaggable::(anonymous)TQTaggable::kOpADD
static TQTaggable::(anonymous)TQTaggable::kOpAND
static TQTaggable::(anonymous)TQTaggable::kOpCNT
static TQTaggable::(anonymous)TQTaggable::kOpMULT
static TQTaggable::(anonymous)TQTaggable::kOpNone
static TQTaggable::(anonymous)TQTaggable::kOpOR
static TQTaggable::(anonymous)TQTaggable::kOpRec
vector<THnBase*>m_bkgHists
TQSignificanceEvaluator*m_evaluator
TStringm_heartBeatCommand
unsigned longm_heartBeatInterval
unsigned longm_heartbeat
TStringm_nDimHistName
intm_nPoints
intm_nPointsProcessed
TQGridScanner::CutBoundsm_normalBounds
TQGridScanner::ObsVecm_normalObs
vector<TString>m_obsNamesToScan
map<TString,TQGridScanObservable*>m_observables
vector<TQGridScanPoint>m_points
TQGridScanResultsm_results
TMVA::Timerm_runTimer
vector<THnBase*>m_signalHists
boolm_sorted
TQGridScanner::SplitCutBinsm_splitBins
TQGridScanner::ObsVecm_splitObs
TQGridScanner::SplitCutBinsm_splitScanBins
TQGridScanner::ObsVecm_splitScanObs
boolm_verbose
static map<TString,shared_ptr<TQTaggable> >TQTaggable::sGlobalTaggables

Class Charts

Inheritance Chart:
TQTaggable
TObject
TNamed
TQGridScanner

Function documentation

TQGridScanner(const TString& name, TQSignificanceEvaluator* evaluator)
TQGridScanner(const TString& name, TQSignificanceEvaluator* evaluator, TList* obsToScan)
~TQGridScanner()
void init()
 TQGridScanner has a convoluted relationship with TQSignificanceEvaluator
TQGridScanObservable* getObs(const TString& obsName)
bool addSignalHist(THnBase* hist)
bool addBkgHist(THnBase* hist)
void addFOMDefinitions(const vector<TString>& definitions)
 Add names for FOMs that are being evaluated
void extractInputHistogramProjections()
void dumpInputHistogramProjections(TQTaggable& tags)
 This function dumps the input distributions of the first defined region
 This function is only useful for debugging when the scan is not working
 For proper plotting of the input distributions TQGridScanResults::plotInputDistributions is used!
int prepare()
void run(vector<int> chunk = {})
void scan(vector<pair<int,int> >::iterator obsValsIter, vector<TQGridScanObservable*>::iterator obsIter, vector<int> chunk)
double splitSignif2(vector<int>::iterator obsBinsIter, vector<TQGridScanObservable*>::iterator obsIter, bool isScanSplit)
double splitSignifHandleRecursion(bool isFinalLevel, bool isScanSplit, vector<int>::iterator obsBinsIter, vector<TQGridScanObservable*>::iterator obsIter)
void scanSplit(vector<int>::iterator obsBinsIter, vector<TQGridScanObservable*>::iterator obsIter, vector<int> chunk)
bool updateHeartbeat()
 this routine will submit the heartbeat if neccessary
bool evaluatePoint(vector<int> chunk)
 checks whether we are at a point in the specified chunk
void updateProgress()
TQGridScanner()
 This default constructor is for compatibility with TBufferFile::WriteObject
{}
TQGridScanner(const TString& name, TQSignificanceEvaluator* evaluator)
std::vector<TString> obsNamesToScan()
 Acess observable names that are scanned
TQGridScanResults* results()
{ return &m_results; }
void plotAndSaveAllSignificanceProfiles(int topNumber, const TString& options)
void plotAndSaveSignificanceProfile(TQGridScanner::BoundDirection direction, int i, int topNumber, const TString& options)
std::unique_ptr<TH1F> getSignificanceProfile(TQGridScanner::BoundDirection direction, int i, int topNumber)
void setVerbose(bool v = true)
 TODO: implement verbose logging
{ m_verbose = v; }
std::vector<TQGridScanPoint>& points()
{ return m_points; }
const TString& nDimHistName() const
{ return m_nDimHistName; }
int getNumberOfPoints()
{ return m_nPoints; }
bool isAcceptedPoint(const TQGridScanPoint& point)
 This function skips over points not fulfilling some user-defined criteria when plotting and
 printing points
 TODO: implement this