Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:15:02

0001 /** @file PseudoJetPlus.hh
0002     @author Kauder:Kolja
0003     @version Revision 0.1
0004     @brief Light wrapper to hand tracks, towers, etc. to fastjet 
0005     while retaining information
0006     @date Jul 30, 2015
0007 */
0008 
0009 #ifndef PSEUDOJETPLUS_H
0010 #define  PSEUDOJETPLUS_H
0011 
0012 #include <fastjet/PseudoJet.hh>
0013 #include "TString.h"
0014 
0015 
0016 /**
0017    Userinfo base, for all kinds of constituents.
0018    Should have a type identifier, to ascertain what info is available,
0019    plus some things that should be defined for all kinds.
0020  */
0021 class PseudoJetPlusUserInfoBase: public fastjet::PseudoJet::UserInfoBase {
0022 public:
0023   /// Standard Constructor
0024  PseudoJetPlusUserInfoBase( int qc, TString Type) : 
0025   quarkcharge( qc ),
0026     Type ( Type  )
0027     {  };
0028   
0029   /// Get charge in units of e/3
0030   int GetQuarkCharge() const { return quarkcharge; };
0031   /// Set charge in units of e/3
0032   void SetQuarkCharge( const int qc ) { quarkcharge=qc; };
0033 
0034   /// Set charge in units of e
0035   double GetCharge() const { return quarkcharge / 3.0; };
0036   /// Set charge in units of e
0037   void SetCharge( const double c ) { quarkcharge = 3*c; };
0038 
0039   /// Type. Using, e.g., TString::Contains() 
0040   /// one can find out what more info is available
0041   TString GetType() { return Type; };
0042 
0043  private:
0044   int quarkcharge;   ///< Charge in units of e/3
0045   const TString Type; ///< Could use something like an enum instead
0046 };
0047 
0048 /**
0049    Userinfo for tracks
0050  */
0051 class PseudoJetPlusUserInfoTrack : public PseudoJetPlusUserInfoBase {
0052 public:
0053   /// Standard Constructor
0054  PseudoJetPlusUserInfoTrack() : 
0055   PseudoJetPlusUserInfoBase( -999, "TRACK" )
0056     {  };
0057   
0058  private:
0059   /// @todo: should have things like NFit, DCA, chi^2, ...
0060 };
0061 
0062 
0063 class PseudoJetPlus : public fastjet::PseudoJet
0064 {
0065  public:
0066   PseudoJetPlus();
0067   
0068  private:
0069   
0070 };
0071 
0072 
0073 
0074 #endif //  PSEUDOJETPLUS_H