Newer
Older
#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> {
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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