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