Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /irt/delphes/include/DelphesConfigTOF.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 
0002 #ifndef _DELPHES_CONFIG_TOF_
0003 #define _DELPHES_CONFIG_TOF_
0004 
0005 #include "DelphesConfig.h"
0006 
0007 class DelphesConfigTOF: public DelphesConfig {
0008  public:
0009   // FIXME: do it better later;
0010  DelphesConfigTOF( void ): DelphesConfig(), 
0011     m_T0Resolution(0.0), m_DetectorResolution(0.0), m_InstallationRadius(0.0),
0012     m_EtaMin(0.0), m_EtaMax(0.0), m_MomentumMin(0.0), m_MomentumMax(0.0),
0013     m_EtaBinCount(0), m_MomentumBinCount(0), m_MagneticField(0.0), 
0014     m_MomentumResolutionA(0.0), m_MomentumResolutionB(0.0), m_PathLengthResolution(0.0),
0015     m_InstallationDistance(0.0) {};
0016  DelphesConfigTOF(const char *dname): DelphesConfig(dname), 
0017     m_T0Resolution(0.0), m_DetectorResolution(0.0), m_InstallationRadius(0.0),
0018     m_EtaMin(0.0), m_EtaMax(0.0), m_MomentumMin(0.0), m_MomentumMax(0.0),
0019     m_EtaBinCount(0), m_MomentumBinCount(0), m_MagneticField(0.0), 
0020     m_MomentumResolutionA(0.0), m_MomentumResolutionB(0.0), m_PathLengthResolution(0.0),
0021     m_InstallationDistance(0.0) {};
0022   ~DelphesConfigTOF() {};
0023   
0024   void SetT0Resolution        (double value)     { m_T0Resolution         = value; }
0025   // Assume a constant one; [mm];
0026   void SetPathLengthResolution(double value)     { m_PathLengthResolution = value; }
0027   // dp/p ~ a*p + b; either in momentum or in Pt;
0028   void SetMomentumResolution(double a, double b) { 
0029     m_MomentumResolutionA = a; m_MomentumResolutionB = b;
0030   };
0031   void SetDetectorResolution  (double value)     { m_DetectorResolution   = value; }
0032 
0033   void SetInstallationRadius  (double value)     { 
0034     m_InstallationRadius   = value; 
0035     m_InstallationDistance = 0.0; 
0036   };
0037   void SetInstallationDistance(double value)     { 
0038     m_InstallationDistance = value; 
0039     m_InstallationRadius   = 0.0; 
0040   };
0041 
0042   void SetMagneticField       (double value)     { m_MagneticField        = value; }
0043   // Well, would be more natural to give Z-range along the beam line;
0044   void SetEtaRange(double min, double max, unsigned ebins) {
0045     m_EtaMin = min;
0046     m_EtaMax = max;
0047     m_EtaBinCount = ebins;
0048   };  
0049   void SetMomentumRange(double min, double max, unsigned ebins) {
0050     m_MomentumMin = min;
0051     m_MomentumMax = max;
0052     m_MomentumBinCount = ebins;
0053   };   
0054 
0055   // TOF-specific call (input parameters -> sigma counts);
0056   int DoSigmaCalculations( void );
0057 
0058   // In this case TOF measurement always exists -> no zero entries expected;
0059   //bool ApplyThresholdModeLogic() { return false; };
0060   // Generic call (sigma -> efficiency);
0061   int Calculate();
0062   
0063  private:
0064   double m_T0Resolution, m_DetectorResolution, m_InstallationRadius;
0065   double m_EtaMin, m_EtaMax;
0066   double m_MomentumMin, m_MomentumMax;
0067   unsigned m_EtaBinCount, m_MomentumBinCount;
0068   double m_MagneticField;
0069 
0070   double m_MomentumResolutionA, m_MomentumResolutionB, m_PathLengthResolution;
0071 
0072   double tof(double m, double p, double l);
0073 
0074   double m_InstallationDistance;
0075 
0076   ClassDef(DelphesConfigTOF, 2)
0077 };
0078 
0079 #endif