A++ » INC » AtlCtrlPlots

class AtlCtrlPlots: public AtlAnalysisTool


 Helper class for control plots common for all ATLAS analyses.
 Used by AtlSelector.

 See the class descriptions of AtlSelector and AtlExampleAnalysis
 how to use this class in your analysis job.

 When being used this class appends an additional directory
 structure to the output file in which the control histograms are
 stored. This new structure is basically divided into two
 paren-folders. One for all histograms filled without any selection
 cuts, and the other one containing a doubled of all histograms
 which are filled after the AtlSelector::ProcessCut() method call,
 ie. after event selection.

     CtrlPlots
       |
       |
       +--- NoEvtSel
       |       |
       |       +--- Jet histograms
       |       |
       |       +--- Electron histograms
       |       |
       |       +--- ...
       |
       |
       +--- EvtSel
               |
               +--- Jet histograms
               |
               +--- Electron histograms
               |
               +--- ...

 In order to append control histograms perform the following steps.

 (1) Switch the necessary branches on by adding the respective lines
 to the SetBranchStatus() member function.

 (2) Extend the BookHistograms() and BookXXXHistogram() member
 functions. Do not forget to add the histogram to the
 fHistogramsNoEvtSel list. You must NOT give the same name to
 more than one histogram.

 (3) Extend the FillHistograms() and FillXXXHistograms() member
 functions accordingly. The histograms are accessed by their names.

 Note: All histogram have to be booked and filled only once. The
 second set (which will be filled after the event selection) is
 booked and filled automatically.


 Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
 Update: $Id: AtlCtrlPlots.cxx,v 1.77 2015/04/22 21:16:52 stamm Exp $
 Copyright: 2009 (C) Oliver Maria Kind

Function Members (Methods)

public:
virtual~AtlCtrlPlots()
voidTObject::AbstractMethod(const char* method) const
virtual Bool_tAtlAnalysisTool::AnalyzeEvent()
virtual voidTObject::AppendPad(Option_t* option = "")
AtlCtrlPlots(const AtlCtrlPlots&)
AtlCtrlPlots(const char* name, const char* title)
voidBookAtlFastHistograms()
voidBookElectronHistograms()
voidBookEnergySumsHistograms()
virtual voidBookHistograms()
voidBookJetHistograms()
voidBookMuonHistograms()
voidBookPhotonHistograms()
voidBookTauHistograms()
voidBookTriggerHistograms(Bool_t EvtSelection)
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidAtlAnalysisTool::Clear()
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) 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
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)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
voidFillAtlFastHistograms(Bool_t EvtSelection = kFALSE)
virtual voidTNamed::FillBuffer(char*& buffer)
voidFillElectronHistograms(Bool_t EvtSelection = kFALSE)
voidFillEnergySumsHistograms(Bool_t EvtSelection = kFALSE)
virtual voidFillHistograms()
voidFillHistograms(Bool_t EvtSelection)
virtual voidFillHistogramsNoEvtSel()
voidFillJetHistograms(Bool_t EvtSelection = kFALSE)
voidFillMuonHistograms(Bool_t EvtSelection = kFALSE)
voidFillPhotonHistograms(Bool_t EvtSelection = kFALSE)
voidFillTauHistograms(Bool_t EvtSelection = kFALSE)
voidFillTriggerHistograms(Bool_t EvtSelection = kFALSE)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const char*AtlAnalysisTool::GetOutputDir() const
Float_tAtlAnalysisTool::GetPreTagEvtWeight() const
static const char*AtlAnalysisTool::GetProcessModeName(AtlAnalysisTool::EProcessMode mode)
Float_tAtlAnalysisTool::GetTagEvtWeight() const
virtual const char*TNamed::GetTitle() const
AtlAnalysisTool*AtlAnalysisTool::GetTool(const char* ClassName, const char* ToolName = "", Bool_t force = kFALSE) const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
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 voidAtlAnalysisTool::Init()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tAtlAnalysisTool::IsIndividual() const
Bool_tAtlAnalysisTool::IsMainAnalysis() const
Bool_tAtlAnalysisTool::IsObjectsDefinition() const
Bool_tAtlAnalysisTool::IsOff() const
Bool_tTObject::IsOnHeap() const
Bool_tAtlAnalysisTool::IsPostAnalysis() const
Bool_tAtlAnalysisTool::IsPreAnalysis() const
Bool_tAtlAnalysisTool::IsScaleFactor() const
virtual Bool_tTNamed::IsSortable() const
Bool_tAtlAnalysisTool::IsSystematics() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tAtlAnalysisTool::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
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)
AtlCtrlPlots&operator=(const AtlCtrlPlots&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidAtlAnalysisTool::Print() const
Bool_tAtlAnalysisTool::Process()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
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 voidSetBranchStatus()
virtual voidAtlAnalysisTool::SetCutDefaults()
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidAtlAnalysisTool::SetEvent(AtlEvent* evt)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidAtlAnalysisTool::SetOutputDir(const char* dir)
voidAtlAnalysisTool::SetOutputFile(TFile* f)
voidAtlAnalysisTool::SetParent(AtlSelector* parent)
virtual voidTNamed::SetTitle(const char* title = "")MENU
voidAtlAnalysisTool::SetTree(TTree* t)
virtual voidTObject::SetUniqueID(UInt_t uid)
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
virtual voidAtlAnalysisTool::Terminate()
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
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:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
voidCopyFolder(TDirectory* dir_src, TDirectory* dir_dest)
TObject*GetHistogram(const char* name, Bool_t evtsel)

Data Members

public:
TStringAtlAnalysisTool::fOutputDirDirectory in root output file, where histogram dir is created
AtlAnalysisTool::EProcessModeAtlAnalysisTool::fProcessModeDefines when exactly the tool is run (see AtlAnalysisTool class description for details)
Int_tAtlAnalysisTool::fVerbosityLevelIndicates the degree of verbosity of tool (0 = no info/debug output, 1 = info, 2 = info+debug)
static TObject::(anonymous)TObject::kBitMask
static TObject::EStatusBitsTObject::kCanDelete
static TObject::EStatusBitsTObject::kCannotPick
static TObject::EStatusBitsTObject::kHasUUID
static AtlAnalysisTool::EProcessModeAtlAnalysisTool::kIndividual
static TObject::EStatusBitsTObject::kInvalidObject
static TObject::(anonymous)TObject::kIsOnHeap
static TObject::EStatusBitsTObject::kIsReferenced
static AtlAnalysisTool::EProcessModeAtlAnalysisTool::kMainAnalysis
static TObject::EStatusBitsTObject::kMustCleanup
static TObject::EStatusBitsTObject::kNoContextMenu
static TObject::(anonymous)TObject::kNotDeleted
static TObject::EStatusBitsTObject::kObjInCanvas
static AtlAnalysisTool::EProcessModeAtlAnalysisTool::kObjectsDefinition
static AtlAnalysisTool::EProcessModeAtlAnalysisTool::kOff
static TObject::(anonymous)TObject::kOverwrite
static AtlAnalysisTool::EProcessModeAtlAnalysisTool::kPostAnalysis
static AtlAnalysisTool::EProcessModeAtlAnalysisTool::kPreAnalysis
static AtlAnalysisTool::EProcessModeAtlAnalysisTool::kScaleFactor
static TObject::(anonymous)TObject::kSingleKey
static AtlAnalysisTool::EProcessModeAtlAnalysisTool::kSystematics
static TObject::(anonymous)TObject::kWriteDelete
static TObject::(anonymous)TObject::kZombie
protected:
AtlEvent*AtlAnalysisTool::fEventPointer to current event
TStringTNamed::fNameobject identifier
TString*AtlAnalysisTool::fOptionOption string
TFile*AtlAnalysisTool::fOutputFileOutput file
AtlSelector*AtlAnalysisTool::fParentPointer to parent selector
TStringTNamed::fTitleobject title
TTree*AtlAnalysisTool::fTreeEvent tree
private:
TDirectory*fDir_MCvsRECDirectory with MC-vs-REC quantities
TDirectory*fDir_evtselDirectory for histograms
TDirectory*fDir_noevtselDirectory for histograms
THashTable*fHistogramsEvtSelList of all histograms filled
THashTable*fHistogramsNoEvtSelList of all histograms filled

Class Charts

Inheritance Chart:
TObject
TNamed
AtlAnalysisTool
AtlCtrlPlots

Function documentation

AtlCtrlPlots(const char* name, const char* title)
 Default constructor

~AtlCtrlPlots()
 Default destructor

void CopyFolder(TDirectory* dir_src, TDirectory* dir_dest)
 Copy given directory and all its sub-directories from
 "NoEvtSel" folder to "EvtSel" folder

 Search for sub-folders
void BookHistograms()
 Book histograms

 Note: The trigger histograms are not booked here. For their
 booking the trigger configuration is needed which is not loaded
 at this stage of the job (it will be loaded when the first
 input file is opened). The trigger histograms are booked when
 the corresponding FillTriggerHistograms() routine is called the
 first time.

void SetBranchStatus()
 Switch on needed branches

void FillHistograms(Bool_t EvtSelection)
 Fill control histograms
 In case the EvtSelection bit is set all histograms
 after event selection are filled - otherwise the ones
 before the event selection are filled

void BookEnergySumsHistograms()
 Book energy sums information, three basic ones for now:
 -> Missing Energy Amplitude
 -> Missing Energy Phi Angle
 -> Scalar Sum (every Transverse Energy or Momentum is summed up, indipendently from the relative direction.


 Book histograms showing MC-vs-Rec quantities

void BookJetHistograms()
 Book ctrl plots for jets

void BookElectronHistograms()
 Book ctrl plots for electrons

void BookMuonHistograms()
 Book ctrl plots for muons

void BookTauHistograms()
 Book ctrl plots for tauons

void BookPhotonHistograms()
 Book ctrl plots for photons

void BookAtlFastHistograms()
 Book ctrl plots for ATLFAST

void FillJetHistograms(Bool_t EvtSelection = kFALSE)
 Fill jet histograms

void FillEnergySumsHistograms(Bool_t EvtSelection = kFALSE)
 Fill Energy sums histograms, including REC vs MCTruthNonInt comparisons

void BookTriggerHistograms(Bool_t EvtSelection)
 Book trigger histograms

void FillTriggerHistograms(Bool_t EvtSelection = kFALSE)
 Fill trigger histograms

 Note: event weights are not accounted for

void FillElectronHistograms(Bool_t EvtSelection = kFALSE)
 Fill electron histograms

void FillMuonHistograms(Bool_t EvtSelection = kFALSE)
 Fill muon histograms

void FillTauHistograms(Bool_t EvtSelection = kFALSE)
 Fill tauon histograms

void FillPhotonHistograms(Bool_t EvtSelection = kFALSE)
 Fill photon histograms

void FillAtlFastHistograms(Bool_t EvtSelection = kFALSE)
 Fill ATLFAST histograms

AtlCtrlPlots(const char* name, const char* title)
void FillHistogramsNoEvtSel()
void FillHistograms()
TObject* GetHistogram(const char* name, Bool_t evtsel)
 Get histogram pointer by histogram name