PandoraAnalysis  01.02.01
CalibrationHelper.h
1 
7 #ifndef CALIBRATION_HELPER_H
8 #define CALIBRATION_HELPER_H 1
9 
10 #include "EVENT/LCStrVec.h"
11 
12 #include "marlin/Processor.h"
13 
14 #include <set>
15 #include <vector>
16 
17 class TFile;
18 class TH1F;
19 class TTree;
20 
21 //------------------------------------------------------------------------------------------------------------------------------------------
22 
23 namespace pandora_analysis
24 {
25 
30 {
31 public:
35  class Settings
36  {
37  public:
41  Settings();
42 
43  LCStrVec m_eCalCollections;
44  LCStrVec m_hCalCollections;
45  LCStrVec m_muonCollections;
46  LCStrVec m_bCalCollections;
47  LCStrVec m_lHCalCollections;
48  LCStrVec m_lCalCollections;
49 
54 
57  };
58 
59  typedef std::vector<const EVENT::ReconstructedParticle *> ParticleVector;
60 
66  CalibrationHelper(const Settings &settings);
67 
72 
83  void Calibrate(const EVENT::LCEvent *pLCEvent, const ParticleVector &particleVector, const int nPfoTargetsTotal, const int nPfoTargetsTracks, const int nPfoTargetsNeutralHadrons, const float pfoTargetsEnergyTotal);
84 
90  void SetBranchAddresses(TTree *pTTree);
91 
95  void CreateHistograms();
96 
102  void SetHistogramDirectories(TFile *pTFile);
103 
107  void WriteHistograms();
108 
112  void Clear();
113 
114 private:
120  int GetMinNHCalLayersFromEdge(const ParticleVector &pParticleVector, const int m_hCalRingOuterSymmetryOrder, const float m_hCalRingOuterPhi0) const;
121 
129  void ReadCaloHitEnergies(const EVENT::LCEvent *pLCEvent, const EVENT::LCStrVec &collectionNames, float &hitEnergySum) const;
130 
140  void AddSimCaloHitEntries(const EVENT::LCEvent *pLCEvent, const EVENT::LCStrVec &collectionNames, const unsigned int SimCaloHit_DC, TH1F *pTH1F) const;
141 
149  void AddDirectionCorrectedCaloHitEntries(const EVENT::LCEvent *pLCEvent, const EVENT::LCStrVec &collectionNames, TH1F *pTH1F) const;
150 
156  int GetNHCalLayersFromEdge(const EVENT::CalorimeterHit *const pCaloHit, const int m_hCalRingOuterSymmetryOrder, const float m_hCalRingOuterPhi0) const;
157 
165  float GetMaximumRadius(const EVENT::CalorimeterHit *const pCaloHit, const unsigned int symmetryOrder, const float phi0) const;
166 
167  const Settings m_settings;
168 
169  int m_pfoMinHCalLayerToEdge;
170 
171  float m_totalCaloHitEnergy;
172  float m_eCalTotalCaloHitEnergy;
173  float m_hCalTotalCaloHitEnergy;
174  float m_muonTotalCaloHitEnergy;
175  float m_bCalTotalCaloHitEnergy;
176  float m_lHCalTotalCaloHitEnergy;
177  float m_lCalTotalCaloHitEnergy;
178 
179  TH1F *m_hECalDirectionCorrectedCaloHitEnergy;
180  TH1F *m_hHCalDirectionCorrectedCaloHitEnergy;
181  TH1F *m_hMuonDirectionCorrectedCaloHitEnergy;
182 
183  TH1F *m_hHCalBarrelDirectionCorrectedSimCaloHit;
184  TH1F *m_hHCalEndCapDirectionCorrectedSimCaloHit;
185  TH1F *m_hHCalOtherDirectionCorrectedSimCaloHit;
186 
187  TH1F *m_hECalDirectionCorrectedSimCaloHit;
188 
189  TH1F *m_hHCalBarrelDirectionCorrectionSimCaloHit;
190  TH1F *m_hHCalEndCapDirectionCorrectionSimCaloHit;
191  TH1F *m_hHCalOtherDirectionCorrectionSimCaloHit;
192 };
193 
194 } // namespace pandora_analysis
195 
196 #endif // #ifndef CALIBRATION_HELPER_H
~CalibrationHelper()
Destructor.
Definition: CalibrationHelper.cc:103
int m_hCalRingOuterSymmetryOrder
HCal ring outer symmetry order from steering file (default 8)
Definition: CalibrationHelper.h:55
CalibrationHelper class.
Definition: CalibrationHelper.h:29
void WriteHistograms()
Write calibration histograms to tree.
Definition: CalibrationHelper.cc:184
LCStrVec m_hCalCollections
Input calorimeter hit collection names.
Definition: CalibrationHelper.h:44
LCStrVec m_eCalCollections
Input calorimeter hit collection names.
Definition: CalibrationHelper.h:43
LCStrVec m_eCalCollectionsSimCaloHit
Input simcalorimeter hit collection names.
Definition: CalibrationHelper.h:50
LCStrVec m_lHCalCollections
Input calorimeter hit collection names.
Definition: CalibrationHelper.h:47
Settings class.
Definition: CalibrationHelper.h:35
LCStrVec m_lCalCollections
Input calorimeter hit collection names.
Definition: CalibrationHelper.h:48
LCStrVec m_hCalOtherCollectionsSimCaloHit
Input simcalorimeter hit collection names.
Definition: CalibrationHelper.h:53
LCStrVec m_hCalBarrelCollectionsSimCaloHit
Input simcalorimeter hit collection names.
Definition: CalibrationHelper.h:51
Settings()
Default constructor.
Definition: CalibrationHelper.cc:69
LCStrVec m_muonCollections
Input calorimeter hit collection names.
Definition: CalibrationHelper.h:45
void CreateHistograms()
Create calibration histograms.
Definition: CalibrationHelper.cc:123
float m_hCalRingOuterPhi0
HCal ring outer Phi0 from steering file (default 0)
Definition: CalibrationHelper.h:56
LCStrVec m_bCalCollections
Input calorimeter hit collection names.
Definition: CalibrationHelper.h:46
void SetBranchAddresses(TTree *pTTree)
Set branch addresses for calibration variables.
Definition: CalibrationHelper.cc:109
void SetHistogramDirectories(TFile *pTFile)
Set directory for calibration histograms.
Definition: CalibrationHelper.cc:168
void Calibrate(const EVENT::LCEvent *pLCEvent, const ParticleVector &particleVector, const int nPfoTargetsTotal, const int nPfoTargetsTracks, const int nPfoTargetsNeutralHadrons, const float pfoTargetsEnergyTotal)
Produces the calibration data.
Definition: CalibrationHelper.cc:214
void Clear()
Clear calibration member variables.
Definition: CalibrationHelper.cc:200
CalibrationHelper(const Settings &settings)
Constructor.
Definition: CalibrationHelper.cc:78
LCStrVec m_hCalEndCapCollectionsSimCaloHit
Input simcalorimeter hit collection names.
Definition: CalibrationHelper.h:52