Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 /** \class reco::PattRecoPeak
0002  *
0003  * \short Preclusters from FFTJet pattern recognition stage
0004  *
0005  * This is a pure storage class with limited functionality.
0006  * Actual application calculations should use fftjet::Peak.
0007  *
0008  * \author Igor Volobouev, TTU, June 16, 2010
0009  ************************************************************/
0010 
0011 #ifndef DataFormats_JetReco_PattRecoPeak_h
0012 #define DataFormats_JetReco_PattRecoPeak_h
0013 
0014 namespace reco {
0015   template <class Real>
0016   class PattRecoPeak {
0017   public:
0018     inline PattRecoPeak()
0019         : eta_(0),
0020           phi_(0),
0021           magnitude_(0),
0022           speed_(-1),
0023           magSpeed_(-5),
0024           lifetime_(-1),
0025           scale_(-1),
0026           nearestD_(-1),
0027           clusterRadius_(-1),
0028           clusterSeparation_(-1),
0029           splitTime_(-1),
0030           mergeTime_(-1) {
0031       hessian_[0] = 0;
0032       hessian_[1] = 0;
0033       hessian_[2] = 0;
0034     }
0035 
0036     inline PattRecoPeak(double eta,
0037                         double phi,
0038                         double mag,
0039                         const double hessianIn[3],
0040                         double driftSpeed,
0041                         double magSpeed,
0042                         double lifetime,
0043                         double scale,
0044                         double nearestDistance,
0045                         double clusterRadius,
0046                         double clusterSeparation,
0047                         double splitT,
0048                         double mergeT)
0049         : eta_(eta),
0050           phi_(phi),
0051           magnitude_(mag),
0052           speed_(driftSpeed),
0053           magSpeed_(magSpeed),
0054           lifetime_(lifetime),
0055           scale_(scale),
0056           nearestD_(nearestDistance),
0057           clusterRadius_(clusterRadius),
0058           clusterSeparation_(clusterSeparation),
0059           splitTime_(splitT),
0060           mergeTime_(mergeT) {
0061       hessian_[0] = hessianIn[0];
0062       hessian_[1] = hessianIn[1];
0063       hessian_[2] = hessianIn[2];
0064     }
0065 
0066     inline Real eta() const { return eta_; }
0067     inline Real phi() const { return phi_; }
0068     inline Real magnitude() const { return magnitude_; }
0069     inline Real driftSpeed() const { return speed_; }
0070     inline Real magSpeed() const { return magSpeed_; }
0071     inline Real lifetime() const { return lifetime_; }
0072     inline Real splitTime() const { return splitTime_; }
0073     inline Real mergeTime() const { return mergeTime_; }
0074     inline Real scale() const { return scale_; }
0075     inline Real nearestNeighborDistance() const { return nearestD_; }
0076     inline Real clusterRadius() const { return clusterRadius_; }
0077     inline Real clusterSeparation() const { return clusterSeparation_; }
0078     inline void hessian(double hessianArray[3]) const {
0079       hessianArray[0] = hessian_[0];
0080       hessianArray[1] = hessian_[1];
0081       hessianArray[2] = hessian_[2];
0082     }
0083 
0084   private:
0085     Real eta_;
0086     Real phi_;
0087     Real magnitude_;
0088     Real speed_;
0089     Real magSpeed_;
0090     Real lifetime_;
0091     Real scale_;
0092     Real nearestD_;
0093     Real clusterRadius_;
0094     Real clusterSeparation_;
0095     Real hessian_[3];
0096     Real splitTime_;
0097     Real mergeTime_;
0098   };
0099 }  // namespace reco
0100 
0101 #endif  // DataFormats_JetReco_PattRecoPeak_h