10 #include "THaCutList.h"
22 #include "THaApparatus.h"
31 const char* elecArmName,
const char* coinname) :
33 THaPhysicsModule(name, description),
34 fCoinDetName(coinname),
35 fhadArmName(hadArmName),
36 felecArmName(elecArmName),
91 cout <<
"*************************************************" << endl;
92 cout <<
"Initializing THcCointTime Physics Modue" << endl;
93 cout <<
"Hadron Arm -------> " <<
fhadArmName << endl;
94 cout <<
"Electron Arm -------> " <<
felecArmName << endl;
96 cout <<
"**************************************************" << endl;
103 cout <<
"THcCoinTime module Cannnot find Hadron Arm = " <<
fhadArmName.
Data() << endl;
104 fStatus = kInitError;
111 cout <<
"THcCoinTime module Cannnot find Electron Arm = " <<
felecArmName.
Data() << endl;
112 fStatus = kInitError;
119 cout <<
"THcCoinTime module Cannnot find TrigDet = " <<
fCoinDetName.
Data() << endl;
120 fStatus = kInitError;
126 if( (fStatus=THaPhysicsModule::Init( run_time )) != kOK ) {
163 if( mode == kDefine && fIsSetup )
return kOK;
164 fIsSetup = ( mode == kDefine );
166 const RVarDef vars[] = {
167 {
"epCoinTime_ROC1",
"ROC1 Corrected ep Coincidence Time",
"fROC1_epCoinTime"},
168 {
"epCoinTime_ROC2",
"ROC2 Corrected ep Coincidence Time",
"fROC2_epCoinTime"},
169 {
"epCoinTime_TRIG1",
"TRIG1 Corrected ep Coincidence Time",
"fTRIG1_epCoinTime"},
170 {
"epCoinTime_TRIG4",
"TRIG4 Corrected ep Coincidence Time",
"fTRIG4_epCoinTime"},
172 {
"eKCoinTime_ROC1",
"ROC1 Corrected eK Coincidence Time",
"fROC1_eKCoinTime"},
173 {
"eKCoinTime_ROC2",
"ROC2 Corrected eK Coincidence Time",
"fROC2_eKCoinTime"},
174 {
"eKCoinTime_TRIG1",
"TRIG1 Corrected eK Coincidence Time",
"fTRIG1_eKCoinTime"},
175 {
"eKCoinTime_TRIG4",
"TRIG4 Corrected eK Coincidence Time",
"fTRIG4_eKCoinTime"},
177 {
"ePiCoinTime_ROC1",
"ROC1 Corrected ePi Coincidence Time",
"fROC1_ePiCoinTime"},
178 {
"ePiCoinTime_ROC2",
"ROC2 Corrected ePi Coincidence Time",
"fROC2_ePiCoinTime"},
179 {
"ePiCoinTime_TRIG1",
"TRIG1 Corrected ePi Coincidence Time",
"fTRIG1_ePiCoinTime"},
180 {
"ePiCoinTime_TRIG4",
"TRIG4 Corrected ePi Coincidence Time",
"fTRIG4_ePiCoinTime"},
182 {
"ePositronCoinTime_ROC1",
"ROC1 Corrected e-Positorn Coincidence Time",
"fROC1_ePosCoinTime"},
183 {
"ePositronCoinTime_ROC2",
"ROC2 Corrected e-Positron Coincidence Time",
"fROC2_ePosCoinTime"},
184 {
"ePositronCoinTime_TRIG1",
"TRIG1 Corrected e-Positorn Coincidence Time",
"fTRIG1_ePosCoinTime"},
185 {
"ePositronCoinTime_TRIG4",
"TRIG4 Corrected e-Positron Coincidence Time",
"fTRIG4_ePosCoinTime"},
187 {
"CoinTime_RAW_ROC1",
"ROC1 RAW Coincidence Time",
"fROC1_RAW_CoinTime"},
188 {
"CoinTime_RAW_ROC2",
"ROC2 RAW Coincidence Time",
"fROC2_RAW_CoinTime"},
189 {
"CoinTime_RAW_TRIG1",
"TRIG1 RAW Coincidence Time",
"fTRIG1_RAW_CoinTime"},
190 {
"CoinTime_RAW_TRIG4",
"TRIG4 RAW Coincidence Time",
"fTRIG4_RAW_CoinTime"},
191 {
"DeltaSHMSPathLength",
"DeltaSHMSpathLength (cm)",
"DeltaSHMSpathLength"},
192 {
"DeltaHMSPathLength",
"DeltaHMSpathLength (cm)",
"DeltaHMSpathLength"},
193 {
"had_coinCorr_Positron",
"",
"had_coinCorr_Positron"},
194 {
"elec_coinCorr",
"",
"elec_coinCorr"},
198 return DefineVarsFromList( vars, mode );
208 if( !IsOK() || !gHaRun )
return -1;
211 THaTrackInfo* had_trkifo =
fhadSpectro->GetTrackInfo();
212 THaTrackInfo* elec_trkifo =
felecSpectro->GetTrackInfo();
214 if( !had_trkifo) cout <<
" no hadron track " << endl;
215 if( !elec_trkifo) cout <<
" no electron track " << endl;
217 if( !had_trkifo || !had_trkifo->IsOK() )
return 1;
218 if( !elec_trkifo || !elec_trkifo->IsOK() )
return 1;
263 if (SHMS_FPtime==-2000 || HMS_FPtime==-2000)
return 1;
264 if (SHMS_FPtime==-1000 || HMS_FPtime==-1000)
return 1;
273 DeltaHMSpathLength = -1.0*(12.462*hms_xpfp + 0.1138*hms_xpfp*hms_xfp - 0.0154*hms_xfp - 72.292*hms_xpfp*hms_xpfp - 0.0000544*hms_xfp*
had_xfp - 116.52*hms_ypfp*hms_ypfp);
Double_t had_coinCorr_proton
Double_t fTRIG4_RAW_CoinTime
Double_t fTRIG4_ePiCoinTime
Double_t pTRIG1_TdcTime_ROC2
Double_t had_coinCorr_Kaon
Double_t hadArm_BetaCalc_Positron
Double_t fTRIG1_epCoinTime
virtual EStatus Init(const TDatime &run_time)
virtual Int_t DefineVariables(EMode mode=kDefine)
Double_t fTRIG4_epCoinTime
void Reset(Option_t *opt="")
Double_t elecArm_BetaCalc
Double_t fROC2_RAW_CoinTime
THcHallCSpectrometer * fhadSpectro
const char * Data() const
Double_t fROC2_epCoinTime
Class for calculating and adding the Coincidence Time in the Tree.
virtual Int_t Process(const THaEvData &)
Double_t fROC1_epCoinTime
Double_t fROC1_eKCoinTime
A mock detector to hold trigger related data.
VecExpr< UnaryOp< Sqrt< T >, SVector< T, D >, T >, T, D > sqrt(const SVector< T, D > &rhs)
THcHallCSpectrometer * felecSpectro
Double_t fROC1_ePosCoinTime
THcCoinTime(const char *name, const char *description, const char *hadArmName="", const char *elecArmName="", const char *coinname="")
Double_t fROC2_eKCoinTime
Double_t hadArm_BetaCalc_proton
Double_t fROC1_RAW_CoinTime
Double_t fROC2_ePiCoinTime
Double_t GetParticleMass() const
Double_t fTRIG1_RAW_CoinTime
Double_t pTRIG4_TdcTime_ROC1
Double_t hadArm_BetaCalc_Pion
Double_t pTRIG1_TdcTime_ROC1
Double_t DeltaHMSpathLength
Int_t LoadParmValues(const DBRequest *list, const char *prefix="")
Retrieve parameter values from the parameter cache.
Double_t HMScentralPathLen
Double_t fROC2_ePosCoinTime
Double_t fTRIG1_eKCoinTime
Double_t fTRIG4_ePosCoinTime
Double_t fTRIG4_eKCoinTime
Double_t SHMScentralPathLen
Double_t DeltaSHMSpathLength
ClassImp(THcDCLookupTTDConv) THcDCLookupTTDConv
Double_t had_coinCorr_Positron
Double_t fTRIG1_ePiCoinTime
void Clear(Option_t *opt="")
Double_t Get_CT_Trigtime(Int_t ii)
Double_t fROC1_ePiCoinTime
Double_t hadArm_BetaCalc_Kaon
Double_t had_coinCorr_Pion
R__EXTERN class THcParmList * gHcParms
virtual Int_t ReadDatabase(const TDatime &date)
Double_t pTRIG4_TdcTime_ROC2
Double_t fTRIG1_ePosCoinTime
A standard Hall C spectrometer apparatus.