Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 10:36:25

0001 
0002 #ifndef _DELPHES_CONFIG_DIRC_
0003 #define _DELPHES_CONFIG_DIRC_
0004 
0005 #include "DelphesConfig.h"
0006 
0007 class DelphesConfigDIRC: public DelphesConfig {
0008  public:
0009   // FIXME: do it better later;
0010  DelphesConfigDIRC( void ): DelphesConfig(), m_InstallationRadius(0.0),
0011     m_EtaMin(0.0), m_EtaMax(0.0), m_MomentumMin(0.0), m_MomentumMax(0.0),
0012     m_EtaBinCount(0), m_MomentumBinCount(0), 
0013     m_TrackerAngularResolutionA(0.0), m_TrackerAngularResolutionB(0.0), 
0014     m_MagneticField(0.0) {};
0015  DelphesConfigDIRC(const char *dname): DelphesConfig(dname), m_InstallationRadius(0.0),
0016     m_EtaMin(0.0), m_EtaMax(0.0), m_MomentumMin(0.0), m_MomentumMax(0.0),
0017     m_EtaBinCount(0), m_MomentumBinCount(0), 
0018     m_TrackerAngularResolutionA(0.0), m_TrackerAngularResolutionB(0.0), 
0019     m_MagneticField(0.0) {};
0020   ~DelphesConfigDIRC() {};
0021   
0022   // d(theta) ~ a/p + b; 
0023   void SetTrackerAngularResolution(double a, double b) { 
0024     m_TrackerAngularResolutionA = a; 
0025     m_TrackerAngularResolutionB = b; 
0026   };
0027 
0028   // FIXME: unify TOF and DIRC;
0029   void SetInstallationRadius  (double value)     { m_InstallationRadius   = value; }
0030   void SetMagneticField       (double value)     { m_MagneticField        = value; }
0031 
0032   void SetEtaRange(double min, double max, unsigned ebins) {
0033     m_EtaMin = min;
0034     m_EtaMax = max;
0035     m_EtaBinCount = ebins;
0036   };  
0037   void SetMomentumRange(double min, double max, unsigned ebins) {
0038     m_MomentumMin = min;
0039     m_MomentumMax = max;
0040     m_MomentumBinCount = ebins;
0041   };   
0042 
0043   void SetParameterizationMap(const char *fmap) {
0044     m_ParameterizationMap = std::string(fmap);
0045   };
0046 
0047   int DoSigmaCalculations( void );
0048   // Generic call; here a direct interface to Roman's DrcPidFast;
0049   int Calculate();
0050   
0051  private:
0052   double m_InstallationRadius;
0053   double m_EtaMin, m_EtaMax;
0054   double m_MomentumMin, m_MomentumMax;
0055   unsigned m_EtaBinCount, m_MomentumBinCount;
0056   double m_MagneticField;
0057 
0058   double m_TrackerAngularResolutionA, m_TrackerAngularResolutionB;
0059 
0060   std::string m_ParameterizationMap;
0061 
0062   ClassDef(DelphesConfigDIRC, 1)
0063 };
0064 
0065 #endif