Skip to content
Snippets Groups Projects
  • Whitney Armstrong's avatar
    ec942943
    Starting adding logging with spdlog · ec942943
    Whitney Armstrong authored
    - Mixins defined in Logger.h
    - Mixin used in base classes (THcDC is currently a good example)
    
    Added a few more spdlog loggers
    
    Added logging to many.
    
    - Added logging to hodoscope, aerogel hitlist and detectormap
    - Working on scandalizer features.
    
    Added logging.
    
    Added more logging.
    
    added more logging.
    
    More logging.
    ec942943
    History
    Starting adding logging with spdlog
    Whitney Armstrong authored
    - Mixins defined in Logger.h
    - Mixin used in base classes (THcDC is currently a good example)
    
    Added a few more spdlog loggers
    
    Added logging to many.
    
    - Added logging to hodoscope, aerogel hitlist and detectormap
    - Working on scandalizer features.
    
    Added logging.
    
    Added more logging.
    
    added more logging.
    
    More logging.
THcCoinTime.h 4.00 KiB
#ifndef ROOT_THcCoinTime
#define ROOT_THcCoinTime

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// THcCoinTime Physics Module                                                //
// Author: Carlos Yero                                                       //
// Date: April 27, 2018                                                      //
///////////////////////////////////////////////////////////////////////////////

#include "THaEvData.h"
#include "THaCutList.h"
#include "VarDef.h"
#include "VarType.h"
#include "TClonesArray.h"

#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <iostream>

#include "THaPhysicsModule.h"
#include "THcTrigDet.h" 
#include "THcHodoscope.h"
//#include "THaSpectrometer.h"
#include "THcHallCSpectrometer.h"
#include "THaTrack.h"

#include "Logger.h"

class THcCoinTime : public hcana::ConfigLogging<THaPhysicsModule> {
public:
  THcCoinTime( const char* name, const char* description, const char* hadArmName="", 
	       const char* elecArmName="", const char* coinname="");

  virtual ~THcCoinTime();


  virtual EStatus Init( const TDatime& run_time );
  virtual Int_t   Process( const THaEvData& );

  void            Reset( Option_t* opt="" );
  void            Clear( Option_t* opt="" );
  

 protected:

  virtual Int_t ReadDatabase( const TDatime& date);
  virtual Int_t  DefineVariables( EMode mode = kDefine );

  // Data needed for adding coincidence time as a Leaf Variable
  
  TString     fHodName;		// Name of hodoscope
  TString     fCoinDetName;         // Name of Coin Trigger
  TString     fhadArmName;       //name of hadron arm
  TString     felecArmName;     // name of electron arm


  THcHallCSpectrometer* fhadSpectro;	// hadron Spectrometer object
  THcHallCSpectrometer* felecSpectro;	// electron Spectrometer object
  THcTrigDet* fCoinDet;                 //Coin Trigger detector object

  THaTrack* theSHMSTrack;
  THaTrack* theHMSTrack;

  THcHodoscope* fHod;	                // Hodscope object
 
  //-----Declare Variables used in HMS/SHMS Coin. time correction-----
  Double_t lightSpeed;
  Double_t elecMass;
  Double_t positronMass;

  //hadron masses (the e- could be in coincidence with any of the hadrons)
  Double_t protonMass;
  Double_t kaonMass;
  Double_t pionMass;

  Double_t eHad_CT_Offset;  //e-Hadron coin time Offset

  Double_t SHMScentralPathLen;  
  Double_t HMScentralPathLen;   

  Double_t DeltaSHMSpathLength;
  Double_t DeltaHMSpathLength;

  Double_t fROC1_RAW_CoinTime;
  Double_t fROC2_RAW_CoinTime;
  
  
  Double_t fROC1_epCoinTime;
  Double_t fROC2_epCoinTime;

  Double_t fROC1_eKCoinTime;
  Double_t fROC2_eKCoinTime;
 
  Double_t fROC1_ePiCoinTime;
  Double_t fROC2_ePiCoinTime;
 
  Double_t fROC1_ePosCoinTime;   //electron-positron coin time 
  Double_t fROC2_ePosCoinTime;
  
  Double_t elec_coinCorr;
  Double_t elecArm_BetaCalc;
  Double_t elec_hodFPtime;
  
  Double_t had_coinCorr_proton;
  Double_t hadArm_BetaCalc_proton;
  
  Double_t had_coinCorr_Kaon;
  Double_t hadArm_BetaCalc_Kaon;
   
  Double_t had_coinCorr_Pion;
  Double_t hadArm_BetaCalc_Pion;
  
  Double_t had_coinCorr_Positron;
  Double_t hadArm_BetaCalc_Positron;
  

  Double_t elec_P;     //electron golden track momentum
  Double_t elec_dP;     //electron golden track delta-> (P-P0 / P0)
  Double_t elec_xptar;    //electron golden track theta (xptar, :) 
  Double_t elec_FPtime;   //electron focal plane time

  Double_t had_P;     //hadron golden track momentum
  Double_t had_xfp;      //hadron x-focal plane
  Double_t had_xpfp;     //hadron xp focal plane
  Double_t had_ypfp;     //hadron yp focal plane
  Double_t had_FPtime;   //hadron focal plane time

  // trigger times pTrig1 (SHMS 3/4 trig) and pTrig4 (HMS 3/4 trig)
  Int_t pTRIG1_TdcTime_ROC1;
  Int_t pTRIG4_TdcTime_ROC1;
  Int_t pTRIG1_TdcTime_ROC2;
  Int_t pTRIG4_TdcTime_ROC2;

  //--------------------------------------------------------------------

  ClassDef(THcCoinTime,0) 	// Coincidence Time Module
};
#endif