PandoraAnalysis  01.02.01
PandoraPFACalibrator.h
1 
9 #ifndef PANDORA_PFA_CALIBRATOR_H
10 #define PANDORA_PFA_CALIBRATOR_H
11 
12 #include "marlin/Processor.h"
13 
14 #include <vector>
15 
16 class TFile;
17 class TH1F;
18 class TH2F;
19 
20 //------------------------------------------------------------------------------------------------------------------------------------------
21 
74 class PandoraPFACalibrator : public marlin::Processor
75 {
76 public:
77  virtual Processor *newProcessor();
79 
83  virtual void init() ;
84 
88  virtual void processRunHeader( LCRunHeader* run ) ;
89 
93  virtual void processEvent( LCEvent * evt ) ;
94 
98  virtual void check( LCEvent * evt ) ;
99 
103  virtual void end() ;
104 
105 private:
113  void ReadMCParticles(LCEvent *pLCEvent, const LCStrVec &collectionNames, float &cosTheta) const;
114 
127  void ReadHitEnergies(LCEvent *pLCEvent, const LCStrVec &collectionNames, float &hitEnergySum, const float mipConstant = -1.f,
128  TH1F *const pMipPlot = NULL, TH1F *const pMipPlotCorrected = NULL, const char *const pLayerEncoding = NULL, TH1F *const pEnergyByLayerPlot = NULL) const;
129 
138  void ReadPfoCollections(LCEvent *pLCEvent, const LCStrVec &collectionNames, float &pfoEnergySum, float &cosTheta) const;
139 
140  LCStrVec m_inputMCParticleCollections;
141  std::string m_particleCollectionName;
142  LCStrVec m_mcPfoCollections;
143  LCStrVec m_recoPfoCollections;
144 
145  LCStrVec m_ecalBarrelCollections;
146  LCStrVec m_ecalEndCapCollections;
147  LCStrVec m_hcalCollections;
148  LCStrVec m_muonCollections;
149  LCStrVec m_lcalCollections;
150  LCStrVec m_bcalCollections;
151  LCStrVec m_lhcalCollections;
152 
153  int m_nRun;
154  int m_nEvt;
155 
156  float m_ecalToMIP;
157  float m_hcalToMIP;
158  float m_muonToMIP;
159  float m_ecalToEMGeVCalibration;
160  float m_hcalToHadGeVCalibration;
161  float m_ecalToHadGeVCalibrationBarrel;
162  float m_ecalToHadGeVCalibrationEndCap;
163  float m_hcalToEMGeVCalibration;
164  float m_maxHCalHitHadronicEnergy;
165 
166  float m_zOfEndCap;
167 
168  TFile *m_pTFile;
169  std::string m_rootFile;
170 
171  TH1F *m_hPfoEnergy;
172  TH1F *m_hPfoEnergyBarrel;
173  TH1F *m_hPfoEnergy95ECal;
174  TH1F *m_hPfoEnergy95HCal;
175  TH1F *m_hPfoEnergy95Muon;
176  TH2F *m_hPfoEnergyVsCosTheta;
177  TH2F *m_hPfoEnergyVsCosThetaReco;
178 
179  TH1F *m_hCaloEnergy;
180  TH1F *m_hCaloEnergyECal;
181  TH1F *m_hCaloEnergyHCal;
182  TH1F *m_hCaloEnergyMuon;
183  TH1F *m_hCaloEnergy95ECal;
184  TH1F *m_hCaloEnergy95HCal;
185  TH1F *m_hCaloEnergy95Muon;
186  TH1F *m_hEcalBarrelEnergyByLayer;
187  TH1F *m_hEcalEndCapEnergyByLayer;
188  TH2F *m_hECalHCalEnergyEM;
189  TH2F *m_hECalHcalEnergyHAD;
190  TH2F *m_hECalBarrelHCalEnergyEM;
191  TH2F *m_hECalEndCapHCalEnergyEM;
192  TH2F *m_hECalBarrelHCalEnergyHAD;
193  TH2F *m_hECalEndCapHCalEnergyHAD;
194  TH2F *m_hCaloEnergyVsCosTheta;
195  TH2F *m_hCaloEnergyVsCosThetaReco;
196 
197  TH1F *m_hECalBarrelMIP;
198  TH1F *m_hECalEndCapMIP;
199  TH1F *m_hHCalMIP;
200  TH1F *m_hMuonMIP;
201  TH1F *m_hECalBarrelMIPCorr;
202  TH1F *m_hECalEndCapMIPCorr;
203  TH1F *m_hHCalMIPCorr;
204  TH1F *m_hMuonMIPCorr;
205 };
206 
207 //------------------------------------------------------------------------------------------------------------------------------------------
208 
209 inline marlin::Processor *PandoraPFACalibrator::newProcessor()
210 {
211  return new PandoraPFACalibrator;
212 }
213 
214 #endif // #ifndef PANDORA_PFA_CALIBRATOR_H
virtual void processEvent(LCEvent *evt)
Called for every event - the working horse.
Definition: PandoraPFACalibrator.cc:326
virtual void end()
Called after data processing for clean up.
Definition: PandoraPFACalibrator.cc:558
PandoraPFACalibrator is a processor to aid calibration of PandoraPFA.
Definition: PandoraPFACalibrator.h:74
virtual void init()
Called at the begin of the job before anything is read.
Definition: PandoraPFACalibrator.cc:215
virtual void check(LCEvent *evt)
Check.
Definition: PandoraPFACalibrator.cc:552
virtual void processRunHeader(LCRunHeader *run)
Called for every run.
Definition: PandoraPFACalibrator.cc:315