KaliVeda
Toolkit for HIC analysis
KVDataQualityAuditSelector.cpp
1 #include "KVDataQualityAuditSelector.h"
2 #include "KVDataSet.h"
3 
5 
6 
7 
8 
12 void KVDataQualityAuditSelector::InitAnalysis(void)
13 {
14  // Create audit objects if not already done
15  // + PROOF: only on slave workers
16  Info("InitAnalyis", "Welcome to data quality auditing");
17  if(!fDisableCreateTreeFile)
18  {
19  Info("InitAnalysis", "Creating audits");
20  audit_reac = ::new KVDataQualityAudit("audit_reac");
21  audit_sys = ::new KVDataQualityAudit("audit_sys");
22  audit_ds = ::new KVDataQualityAudit(gDataSet->GetName(), gDataSet->GetTitle());
23  GetOutputList()->Add(audit_reac);
24  GetOutputList()->Add(audit_sys);
25  GetOutputList()->Add(audit_ds);
26  }
27 }
28 
29 
30 
33 
35 {
36  // only now do we know what system we are analysing
37  auto sys = gDataAnalyser->GetAnalysedSystem();
38  if(audit_reac)
39  {
40  Info("InitRun", "Setting audit names & titles");
41  audit_reac->SetNameTitle(sys->GetBatchName(), sys->GetName());
42  }
43  if(audit_sys)
44  audit_sys->SetNameTitle(sys->GetBatchNameWithoutEnergy(), sys->GetReactionNameWithoutEnergy());
45 }
46 
47 
48 
50 
52 {
53  for (auto& particle : ReconEventOKIterator(GetEvent()))
54  {
55  audit_reac->Add(particle);
56  audit_sys->Add(particle);
57  audit_ds->Add(particle);
58  }
59 
60  return kTRUE;
61 }
62 
63 
64 
66 
68 {
70  if (gDataAnalyser->GetBatchSystem())
71  filename.Form("%s.root", gDataAnalyser->GetBatchSystem()->GetJobName());
72  else
73  filename = "DataQualityAudit.root";
74  // in case of PROOF
75  Info("EndAnalysis", "proof mode=%d audit_reac=%p",gDataAnalyser->GetProofMode(),audit_reac);
76  GetOutputList()->ls();
77  if(gDataAnalyser->GetProofMode()==KVDataAnalyser::EProofMode::Lite)
78  {
79  auto sys = gDataAnalyser->GetAnalysedSystem();
80  audit_reac = (KVDataQualityAudit*)GetOutputList()->FindObject(sys->GetBatchName());
81  Info("EndAnalysis", "audit_reac=%p",audit_reac);
82  audit_sys = (KVDataQualityAudit*)GetOutputList()->FindObject(sys->GetBatchNameWithoutEnergy());
84  TFile output(filename, "recreate");
85  audit_reac->Write();
86  audit_sys->Write();
87  audit_ds->Write();
88  output.Write();
89  }
90  else if(gDataAnalyser->GetProofMode()==KVDataAnalyser::EProofMode::None)
91  {
92  TFile output(filename, "recreate");
93  audit_reac->Write();
94  audit_sys->Write();
95  audit_ds->Write();
96  output.Write();
97  }
98 }
99 
100 
101 
bool Bool_t
constexpr Bool_t kTRUE
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
virtual const Char_t * GetJobName() const
virtual const KVBatchSystem * GetBatchSystem()
EProofMode GetProofMode() const
virtual KVDBSystem * GetAnalysedSystem() const
Dedicated analysis class for preparing data quality audits.
void InitRun() override
only now do we know what system we are analysing
Audit of experimental data identification and calibrations.
void Add(const KVReconstructedNucleus &N)
Add this reconstructed nucleus to the audit.
TList * GetOutputList() const override
KVReconstructedEvent * GetEvent() const
Wrapper class for iterating over "OK" nuclei in KVReconstructedEvent accessed through base pointer or...
void ls(Option_t *option="") const override
Int_t Write(const char *name=nullptr, Int_t opt=0, Int_t bufsiz=0) const override
TObject * FindObject(const char *name) const override
const char * GetName() const override
const char * GetTitle() const override
virtual void SetNameTitle(const char *name, const char *title)
virtual Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
virtual void Info(const char *method, const char *msgfmt,...) const
void Info(const char *location, const char *fmt,...)
ClassImp(TPyArg)