Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:23

0001 /** \class reco::FFTJetProducerSummary
0002  *
0003  * \short Data processing summary generated by FFTJetProducer
0004  *
0005  * \author Igor Volobouev, TTU, June 28, 2010
0006  ************************************************************/
0007 
0008 #ifndef DataFormats_JetReco_FFTJetProducerSummary_h
0009 #define DataFormats_JetReco_FFTJetProducerSummary_h
0010 
0011 #include <vector>
0012 
0013 #include "DataFormats/Math/interface/LorentzVector.h"
0014 #include "DataFormats/Candidate/interface/CandidateFwd.h"
0015 
0016 namespace reco {
0017   class FFTJetProducerSummary {
0018   public:
0019     // Must have a default constructor
0020     inline FFTJetProducerSummary()
0021         : unused_(0.f),
0022           minScale_(0.f),
0023           maxScale_(0.f),
0024           scaleUsed_(0.f),
0025           preclustersFound_(0),
0026           iterationsPerformed_(0),
0027           converged_(false) {}
0028 
0029     // Meaningful constructor
0030     FFTJetProducerSummary(const std::vector<double>& thresholds,
0031                           const std::vector<unsigned>& levelOccupancy,
0032                           const math::XYZTLorentzVector& unclustered,
0033                           const std::vector<CandidatePtr>& constituents,
0034                           double unused,
0035                           double minScale,
0036                           double maxScale,
0037                           double scaleUsed,
0038                           unsigned preclustersFound,
0039                           unsigned iterationsPerformed,
0040                           bool converged);
0041 
0042     // Vector of occupancy thresholds generated by
0043     // the locally adaptive resolution scheme
0044     inline const std::vector<float>& thresholds() const { return thresholds_; }
0045 
0046     // Clustering tree occupancy as a function of the level number
0047     inline const std::vector<unsigned>& levelOccupancy() const { return levelOccupancy_; }
0048 
0049     // Raw unclustered energy 4-vector
0050     inline const math::XYZTLorentzVector& unclustered() const { return unclustered_; }
0051 
0052     // Pointers to unclustered energy constituents
0053     inline const std::vector<CandidatePtr>& unclusteredConstituents() const { return unclusConstituents_; }
0054 
0055     // Scalar sum of unclustered transverse energies
0056     inline float unusedEt() const { return unused_; }
0057 
0058     // Minimum and maximum resolution scales to be used for
0059     // configuration stability calculations
0060     inline float minScale() const { return minScale_; }
0061     inline float maxScale() const { return maxScale_; }
0062 
0063     // The scale actually used to lookup clusters.
0064     // This info is useful mostly for maximally stable
0065     // and globally adaptive resolution schemes.
0066     inline float scaleUsed() const { return scaleUsed_; }
0067 
0068     // Number of preclusters found by the peak selection code.
0069     // Should normally coincide with the number of jets.
0070     inline unsigned preclustersFound() const { return preclustersFound_; }
0071 
0072     // Actual number of iterations made by the jet reconstruction
0073     // algorithm
0074     inline unsigned iterationsPerformed() const { return iterationsPerformed_; }
0075 
0076     // Did the jet reconstruction algorithm converge?
0077     inline bool iterationsConverged() const { return converged_; }
0078 
0079   private:
0080     std::vector<float> thresholds_;
0081     std::vector<unsigned> levelOccupancy_;
0082     math::XYZTLorentzVector unclustered_;
0083     std::vector<CandidatePtr> unclusConstituents_;
0084     float unused_;
0085     float minScale_;
0086     float maxScale_;
0087     float scaleUsed_;
0088     unsigned preclustersFound_;
0089     unsigned iterationsPerformed_;
0090     bool converged_;
0091   };
0092 }  // namespace reco
0093 
0094 #endif  // DataFormats_JetReco_FFTJetProducerSummary_h