Go to the documentation of this file.00001 #ifndef EXERCISES3_H_
00002 #define EXERCISES3_H_
00003
00004 #include "DataFormats/ParticleFlowReco/interface/Calibratable.h"
00005 #include "RecoParticleFlow/PFClusterTools/interface/Calibrator.h"
00006 #include "RecoParticleFlow/PFClusterTools/interface/DetectorElement.h"
00007 #include "DataFormats/ParticleFlowReco/interface/CalibrationProvenance.h"
00008 #include "RecoParticleFlow/PFClusterTools/interface/SpaceManager.h"
00009 #include "RecoParticleFlow/PFClusterTools/interface/PFClusterCalibration.h"
00010
00011 #include <string>
00012 #include <vector>
00013 #include <TFile.h>
00014 #include <TTree.h>
00015 #include <TChain.h>
00016 #include <fstream>
00017
00018
00019 namespace pftools {
00020 class IO;
00021
00022 class Exercises3 {
00023 public:
00024
00025 Exercises3(IO* options);
00026
00027 virtual ~Exercises3();
00028
00029 void calibrateCalibratables(TChain& sourceTree,
00030 const std::string& exercisefile);
00031
00032
00033
00034 void evaluateCalibrator(SpaceManagerPtr s, CalibratorPtr c, TTree& tree,
00035 Calibratable* calibrated, DetectorElementPtr ecal,
00036 DetectorElementPtr hcal, DetectorElementPtr offset, CalibrationProvenance cp, CalibrationProvenance cpCorr = NONE);
00037
00038
00039 void evaluateSpaceManager(SpaceManagerPtr s, std::vector<DetectorElementPtr> detEls);
00040
00041
00042 void setTarget(CalibrationTarget t) {
00043 target_ = t;
00044 }
00045
00046
00047 void getCalibrations(SpaceManagerPtr s);
00048
00049 private:
00050
00051 Exercises3(const Exercises3&);
00052 void operator=(const Exercises3&);
00053
00054
00055 bool withOffset_;
00056 CalibrationTarget target_;
00057 unsigned threshold_;
00058 std::vector<DetectorElementPtr> elements_;
00059 IO* options_;
00060 std::ofstream calibResultsFile_;
00061 unsigned debug_;
00062 PFClusterCalibration clusterCalibration_;
00063
00064 };
00065 }
00066
00067 #endif