Skip to content
Snippets Groups Projects
Commit 3e3ece47 authored by sanghwapark's avatar sanghwapark Committed by Mark K Jones
Browse files

add bck index to select one bcm for event flag

parent e9d86999
No related branches found
No related tags found
No related merge requests found
......@@ -21,11 +21,10 @@ using namespace std;
THcBCMCurrent::THcBCMCurrent(const char* name,
const char* description) :
THaPhysicsModule(name, description), fThreshold(0)
THaPhysicsModule(name, description)
{
fBCM1flag = 0;
fBCM2flag = 0;
fBCMflag = 0;
fBCM1avg = 0;
fBCM2avg = 0;
......@@ -68,20 +67,14 @@ Int_t THcBCMCurrent::ReadDatabase( const TDatime& date )
{
DBRequest list1[] = {
{"num_scal_reads", &fNscaler, kInt},
{"num_scal_reads", &fNscaler, kInt},
{"gBCM_Current_threshold", &fThreshold, kDouble},
{"gBCM_Current_threshold_index", &fBCMIndex, kInt},
{0}
};
gHcParms->LoadParmValues((DBRequest*)&list1);
if(fThreshold < 1.e-5)
{
DBRequest list2[] = {
{"gBCM_Current_threshold", &fThreshold, kDouble},
{0}
};
gHcParms->LoadParmValues((DBRequest*)&list2);
}
fiBCM1 = new Double_t[fNscaler];
fiBCM2 = new Double_t[fNscaler];
fiBCM4a = new Double_t[fNscaler];
......@@ -90,7 +83,7 @@ Int_t THcBCMCurrent::ReadDatabase( const TDatime& date )
fEvtNum = new Int_t[fNscaler];
DBRequest list3[] = {
DBRequest list2[] = {
{"scal_read_bcm1_current", fiBCM1, kDouble, (UInt_t) fNscaler},
{"scal_read_bcm2_current", fiBCM2, kDouble, (UInt_t) fNscaler},
{"scal_read_bcm4a_current", fiBCM4a, kDouble, (UInt_t) fNscaler},
......@@ -100,7 +93,7 @@ Int_t THcBCMCurrent::ReadDatabase( const TDatime& date )
{0}
};
gHcParms->LoadParmValues((DBRequest*)&list3);
gHcParms->LoadParmValues((DBRequest*)&list2);
BCMInfo binfo;
for(int i=0; i<fNscaler; i++)
......@@ -127,13 +120,12 @@ Int_t THcBCMCurrent::DefineVariables( EMode mode )
fIsSetup = ( mode == kDefine );
RVarDef vars[] = {
{"bcm1.currentflag", "BCM1 current flag for good event", "fBCM1flag"},
{"bcm2.currentflag", "BCM2 current flag for good event", "fBCM2flag"},
{"bcm1.AvgCurrent", "BCM1 average beam current", "fBCM1avg"},
{"bcm2.AvgCurrent", "BCM2 average beam current", "fBCM2avg"},
{"bcm4a.AvgCurrent", "BCM4a average beam current", "fBCM4aavg"},
{"bcm4b.AvgCurrent", "BCM4b average beam current", "fBCM4bavg"},
{"bcm17.AvgCurrent", "BCM17 average beam current", "fBCM17avg"},
{"CurrentFlag", "BCM current flag for good event", "fBCMflag"},
{"bcm1.AvgCurrent", "BCM1 average beam current", "fBCM1avg"},
{"bcm2.AvgCurrent", "BCM2 average beam current", "fBCM2avg"},
{"bcm4a.AvgCurrent", "BCM4a average beam current", "fBCM4aavg"},
{"bcm4b.AvgCurrent", "BCM4b average beam current", "fBCM4bavg"},
{"bcm17.AvgCurrent", "BCM17 average beam current", "fBCM17avg"},
{ 0 }
};
......@@ -170,15 +162,27 @@ Int_t THcBCMCurrent::Process( const THaEvData& evdata )
fBCM17avg = binfo.bcm17_current;
}
if(fBCM1avg < fThreshold)
fBCM1flag = 0;
else
fBCM1flag = 1;
if(fBCM2avg < fThreshold)
fBCM2flag = 0;
else
fBCM2flag = 1;
switch (fBCMIndex)
{
case BCM1 :
fBCMflag = ( fBCM1avg < fThreshold )?0:1;
break;
case BCM2:
fBCMflag = ( fBCM2avg < fThreshold )?0:1;
break;
case BCM4A:
fBCMflag = ( fBCM4aavg < fThreshold )?0:1;
break;
case BCM4B:
fBCMflag = ( fBCM4bavg < fThreshold )?0:1;
break;
case BCM17:
fBCMflag = ( fBCM17avg < fThreshold )?0:1;
break;
default:
fBCMflag = 0;
break;
}
return kOK;
......
......@@ -19,12 +19,13 @@ class THcBCMCurrent : public THaPhysicsModule {
virtual EStatus Init( const TDatime& date);
virtual Int_t Process( const THaEvData& );
void SetCurrentCut(Double_t _threshold){ fThreshold = _threshold; }
enum BCMopt {BCM1, BCM2, UNSER, BCM4A, BCM4B, BCM17};
private:
Int_t fNscaler;
Double_t fThreshold;
Int_t fBCMIndex;
Double_t* fiBCM1;
Double_t* fiBCM2;
Double_t* fiBCM4a;
......@@ -32,8 +33,7 @@ class THcBCMCurrent : public THaPhysicsModule {
Double_t* fiBCM17;
Int_t* fEvtNum;
Int_t fBCM1flag;
Int_t fBCM2flag;
Int_t fBCMflag;
Double_t fBCM1avg;
Double_t fBCM2avg;
......@@ -49,13 +49,12 @@ class THcBCMCurrent : public THaPhysicsModule {
Double_t bcm17_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 );
std::map<Int_t, BCMInfo> BCMInfoMap;
ClassDef(THcBCMCurrent, 0)
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment