![]() |
|
|||
File indexing completed on 2025-04-02 08:47:07
0001 /** 0002 \file 0003 Declaration of base class Smear::numSigmaPid. 0004 0005 \author Roberto Preghenella, K. Kauder 0006 \date 2020-08-17 0007 */ 0008 0009 #ifndef INCLUDE_EICSMEAR_SMEAR_NUMSIGMAPID_H 0010 #define INCLUDE_EICSMEAR_SMEAR_NUMSIGMAPID_H 0011 0012 #include "eicsmear/smear/Smearer.h" 0013 #include "PID.h" 0014 0015 // Based on https://gitlab.com/preghenella/pid 0016 0017 // A smearer needs to implement 0018 // virtual void Smear(const erhic::VirtualParticle&, ParticleMCS&) = 0; 0019 // And it has an Acceptance object. 0020 0021 0022 0023 // Hello PID Fans: 0024 // 0025 // This is the base class for a simple set of objects that 0026 // are used to evaluate various detector technology choices for the EIC. 0027 // 0028 // The idea is simple. Regardless of PID detector technology choice 0029 // one must be able to answer some simple questions. This virtual base class 0030 // organizes the method of asking and answering these simple questions to 0031 // allow for efficient and apples-to-apples comparisons. 0032 // 0033 // The base class requires that any derived class procide responses to several queries: 0034 // -- valid (double eta, double p ); 0035 // -- numSigma(double eta, double p, numSigmaPid::type PID); 0036 // -- maxP (double eta, double numSigma, numSigmaPid::type PID); 0037 // -- minP (double eta, double numSigma, numSigmaPid::type PID); 0038 // -- name (); 0039 // 0040 // Here numSigmaPid::type is an enumerated constant set allowing one to choose pi-vs-k or k-vs-p etc... 0041 // 0042 // The detector types that inherit from numSigmaPid will clearly have parameters that define their 0043 // performance and these are expected to be arguments of the constructor of those derived classes. 0044 // For example: 0045 // numSigmaPid* tof = new tofBarrel(radius, etaLow, etaHigh, sigmaT); 0046 // 0047 // 0048 0049 #include <string> 0050 #include <memory> 0051 0052 namespace Smear { 0053 0054 /** Base class for a simple set of objects that 0055 * are used to evaluate various PID detector technology choices for the EIC. 0056 */ 0057 class NumSigmaPid : public Smearer { 0058 public: 0059 /** 0060 Default constructor. 0061 */ 0062 NumSigmaPid(); 0063 0064 /** 0065 Destructor. 0066 */ 0067 virtual ~NumSigmaPid() {} 0068 0069 /** 0070 Smears the input ParticleMC and stores the result(s) in the ParticleMCS. 0071 */ 0072 void Smear(const erhic::VirtualParticle&, ParticleMCS&); 0073 0074 /** Set the numSigma type 0075 PID::type is an enumerated constant set 0076 allowing one to choose pi-vs-k or k-vs-p etc. 0077 */ 0078 void SetNumSigmaType( const int i ); 0079 0080 /** Get the numSigma type 0081 PID::type is an enumerated constant set 0082 allowing one to choose pi-vs-k or k-vs-p etc. 0083 */ 0084 int GetNumSigmaType( ) const; 0085 0086 /** Needed for TObject 0087 */ 0088 NumSigmaPid* Clone(const char* = "") const; 0089 0090 /** Passing through methods of PID 0091 */ 0092 bool valid (double eta, double p ) const; 0093 0094 /** Passing through methods of PID 0095 */ 0096 double maxP (double eta, double numSigma, PID::type PID) const; 0097 0098 /** Passing through methods of PID 0099 */ 0100 double minP (double eta, double numSigma, PID::type PID) const; 0101 0102 /** Passing through methods of PID 0103 */ 0104 std::string name() const; 0105 0106 /** Passing through methods of PID 0107 */ 0108 void description() const; 0109 0110 protected: 0111 std::shared_ptr<PID> ThePidObject; 0112 int NumSigmaType=-1; 0113 PID::type EnumType; 0114 }; 0115 0116 } 0117 #endif // INCLUDE_EICSMEAR_SMEAR_NUMSIGMAPID_H 0118
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |