Skip to content
Snippets Groups Projects
THcBCMCurrent.h 1.21 KiB
Newer Older
  • Learn to ignore specific revisions
  • #ifndef __THCBCMCURRENT_H__
    #define __THCBCMCURRENT_H__
    
    #include "THaPhysicsModule.h"
    #include "THaEvData.h"
    #include "VarDef.h"
    #include "VarType.h"
    
    #include <iostream>
    #include <map>
    
    class THcBCMCurrent : public THaPhysicsModule {
        
     public:
      
      THcBCMCurrent(const char* name, const char* description);
      virtual ~THcBCMCurrent();
    
      virtual EStatus Init( const TDatime& date);
      virtual Int_t Process( const THaEvData& );  
    
    
      enum BCMopt {BCM1, BCM2, UNSER, BCM4A, BCM4B, BCM4C};
    
    
     private:
      
      Int_t     fNscaler;
      Double_t  fThreshold;
    
      Int_t     fBCMIndex;
    
      Double_t* fiBCM1;
      Double_t* fiBCM2;
      Double_t* fiBCM4a;
      Double_t* fiBCM4b;
    
    
      Double_t fBCM1avg;
      Double_t fBCM2avg;
      Double_t fBCM4aavg;
      Double_t fBCM4bavg;
    
    
      struct BCMInfo{
        Double_t bcm1_current;
        Double_t bcm2_current;
        Double_t bcm4a_current;
        Double_t bcm4b_current;
    
      std::map<Int_t, BCMInfo> BCMInfoMap;
    
    
      Int_t GetAvgCurrent( Int_t fevn, BCMInfo &bcminfo );
      virtual Int_t ReadDatabase( const TDatime& date);
      virtual Int_t DefineVariables( EMode mode = kDefine );
    
      ClassDef(THcBCMCurrent, 0)
    
    };  
    
    #endif