Hall C ROOT/C++ Analyzer (hcana)
THcScalerEvtHandler Class Reference

Event handler for Hall C scalers.

This class does the following

For a particular set of event types (here, event type 0) decode the scalers and put some variables into global variables. The global variables can then appear in the Podd output tree T. In addition, a tree "TS" is created by this class; it contains just the scaler data by itself. Note, the "fName" is concatenated with "TS" to ensure the tree is unqiue; further, "fName" is concatenated with the name of the global variables, for uniqueness. The list of global variables and how they are tied to the scaler module and channels is defined here; eventually this will be modified to use a scaler.map file

NOTE: if you don't have the scaler map file (e.g. Leftscalevt.map) there will be no variable output to the Trees.

To use in the analyzer, your setup script needs something like this

gHaEvtHandlers->Add (new THcScalerEvtHandler("HMS","HC scaler event type 0"));

To enable debugging you may try this in the setup script

THcScalerEvtHandler *hscaler = new THcScalerEvtHandler("HS","HC scaler event type 0");
hscaler->SetDebugFile("HScaler.txt");
gHaEvtHandlers->Add (hscaler);
Author
E. Brash based on THaScalerEvtHandler by R. Michaels

Definition at line 34 of file THcScalerEvtHandler.h.

Public Member Functions

Int_t Analyze (THaEvData *evdata)
 
Int_t AnalyzeBuffer (UInt_t *rdata, Bool_t onlysync)
 
virtual Int_t End (THaRunBase *r=0)
 
virtual EStatus Init (const TDatime &run_time)
 
virtual Int_t ReadDatabase (const TDatime &date)
 
virtual void SetDelayedType (int evtype)
 
virtual void SetOnlyBanks (Bool_t b=kFALSE)
 
virtual void SetOnlyUseSyncEvents (Bool_t b=kFALSE)
 
virtual void SetUseFirstEvent (Bool_t b=kFALSE)
 
 THcScalerEvtHandler (const char *, const char *)
 
virtual ~THcScalerEvtHandler ()
 

Private Member Functions

void AddVars (TString name, TString desc, UInt_t iscal, UInt_t ichan, UInt_t ikind)
 
void DefVars ()
 
THcScalerEvtHandleroperator= (const THcScalerEvtHandler &fh)
 
 THcScalerEvtHandler (const THcScalerEvtHandler &fh)
 

Static Private Member Functions

static size_t FindNoCase (const std::string &sdata, const std::string &skey)
 

Private Attributes

Double_tdvars
 
UInt_tdvars_prev_read
 
Double_tdvarsFirst
 
UInt_t evcount
 
Double_t evcountR
 
UInt_t evNumber
 
Double_t evNumberR
 
Double_t fbcm_Current_Threshold
 
Int_t fbcm_Current_Threshold_Index
 
Double_tfBCM_delta_charge
 
Double_tfBCM_Gain
 
std::vector< std::string > fBCM_Name
 
Double_tfBCM_Offset
 
Double_tfBCM_SatOffset
 
Double_tfBCM_SatQuadratic
 
Int_t fClockChan
 
Double_t fClockFreq
 
Int_t fClockOverflows
 
std::vector< UInt_t * > fDelayedEvents
 
Int_t fDelayedType
 
Double_t fDeltaTime
 
UInt_t fLastClock
 
std::set< UInt_tfModuleSet
 
Int_t fNormIdx
 
Int_t fNormSlot
 
Int_t fNumBCMs
 
Bool_t fOnlyBanks
 
Bool_t fOnlySyncEvents
 
Double_t fPrevTotalTime
 
std::set< UInt_tfRocSet
 
TTreefScalerTree
 
Double_t fTotalTime
 
Bool_t fUseFirstEvent
 
Int_t ifound
 
Int_t nscalers
 
Int_t Nvars
 
std::vector< UInt_tscal_overflows
 
std::vector< UInt_tscal_present_read
 
std::vector< UInt_tscal_prev_read
 
std::vector< HCScalerLoc * > scalerloc
 
std::vector< Decoder::GenScaler * > scalers
 

#include <THcScalerEvtHandler.h>

Inheritance diagram for THcScalerEvtHandler:

Constructor & Destructor Documentation

THcScalerEvtHandler::THcScalerEvtHandler ( const char *  name,
const char *  description 
)

Definition at line 77 of file THcScalerEvtHandler.cxx.

THcScalerEvtHandler::~THcScalerEvtHandler ( )
virtual

Definition at line 93 of file THcScalerEvtHandler.cxx.

THcScalerEvtHandler::THcScalerEvtHandler ( const THcScalerEvtHandler fh)
private

Member Function Documentation

void THcScalerEvtHandler::AddVars ( TString  name,
TString  desc,
UInt_t  iscal,
UInt_t  ichan,
UInt_t  ikind 
)
private

Definition at line 865 of file THcScalerEvtHandler.cxx.

Int_t THcScalerEvtHandler::Analyze ( THaEvData evdata)

Definition at line 204 of file THcScalerEvtHandler.cxx.

Int_t THcScalerEvtHandler::AnalyzeBuffer ( UInt_t rdata,
Bool_t  onlysync 
)

Definition at line 276 of file THcScalerEvtHandler.cxx.

void THcScalerEvtHandler::DefVars ( )
private

Definition at line 877 of file THcScalerEvtHandler.cxx.

Int_t THcScalerEvtHandler::End ( THaRunBase *  r = 0)
virtual

Definition at line 117 of file THcScalerEvtHandler.cxx.

size_t THcScalerEvtHandler::FindNoCase ( const std::string &  sdata,
const std::string &  skey 
)
staticprivate

Definition at line 904 of file THcScalerEvtHandler.cxx.

THaAnalysisObject::EStatus THcScalerEvtHandler::Init ( const TDatime run_time)
virtual

Definition at line 632 of file THcScalerEvtHandler.cxx.

THcScalerEvtHandler& THcScalerEvtHandler::operator= ( const THcScalerEvtHandler fh)
private
Int_t THcScalerEvtHandler::ReadDatabase ( const TDatime date)
virtual

Definition at line 142 of file THcScalerEvtHandler.cxx.

void THcScalerEvtHandler::SetDelayedType ( int  evtype)
virtual

Delay analysis of this event type to end.

Final scaler events generated in readout list end routines may not come in order in the data stream. If the event type of a end routine scaler event is set, then the event contents will be saved and analyzed at the end of the analysis so that time ordering of scaler events is preserved.

Definition at line 192 of file THcScalerEvtHandler.cxx.

virtual void THcScalerEvtHandler::SetOnlyBanks ( Bool_t  b = kFALSE)
inlinevirtual

Definition at line 48 of file THcScalerEvtHandler.h.

virtual void THcScalerEvtHandler::SetOnlyUseSyncEvents ( Bool_t  b = kFALSE)
inlinevirtual

Definition at line 49 of file THcScalerEvtHandler.h.

virtual void THcScalerEvtHandler::SetUseFirstEvent ( Bool_t  b = kFALSE)
inlinevirtual

Definition at line 46 of file THcScalerEvtHandler.h.

Member Data Documentation

Double_t* THcScalerEvtHandler::dvars
private

Definition at line 77 of file THcScalerEvtHandler.h.

UInt_t* THcScalerEvtHandler::dvars_prev_read
private

Definition at line 78 of file THcScalerEvtHandler.h.

Double_t* THcScalerEvtHandler::dvarsFirst
private

Definition at line 82 of file THcScalerEvtHandler.h.

UInt_t THcScalerEvtHandler::evcount
private

Definition at line 72 of file THcScalerEvtHandler.h.

Double_t THcScalerEvtHandler::evcountR
private

Definition at line 73 of file THcScalerEvtHandler.h.

UInt_t THcScalerEvtHandler::evNumber
private

Definition at line 74 of file THcScalerEvtHandler.h.

Double_t THcScalerEvtHandler::evNumberR
private

Definition at line 75 of file THcScalerEvtHandler.h.

Double_t THcScalerEvtHandler::fbcm_Current_Threshold
private

Definition at line 68 of file THcScalerEvtHandler.h.

Int_t THcScalerEvtHandler::fbcm_Current_Threshold_Index
private

Definition at line 70 of file THcScalerEvtHandler.h.

Double_t* THcScalerEvtHandler::fBCM_delta_charge
private

Definition at line 64 of file THcScalerEvtHandler.h.

Double_t* THcScalerEvtHandler::fBCM_Gain
private

Definition at line 60 of file THcScalerEvtHandler.h.

std::vector<std::string> THcScalerEvtHandler::fBCM_Name
private

Definition at line 71 of file THcScalerEvtHandler.h.

Double_t* THcScalerEvtHandler::fBCM_Offset
private

Definition at line 61 of file THcScalerEvtHandler.h.

Double_t* THcScalerEvtHandler::fBCM_SatOffset
private

Definition at line 62 of file THcScalerEvtHandler.h.

Double_t* THcScalerEvtHandler::fBCM_SatQuadratic
private

Definition at line 63 of file THcScalerEvtHandler.h.

Int_t THcScalerEvtHandler::fClockChan
private

Definition at line 88 of file THcScalerEvtHandler.h.

Double_t THcScalerEvtHandler::fClockFreq
private

Definition at line 69 of file THcScalerEvtHandler.h.

Int_t THcScalerEvtHandler::fClockOverflows
private

Definition at line 90 of file THcScalerEvtHandler.h.

std::vector<UInt_t*> THcScalerEvtHandler::fDelayedEvents
private

Definition at line 91 of file THcScalerEvtHandler.h.

Int_t THcScalerEvtHandler::fDelayedType
private

Definition at line 87 of file THcScalerEvtHandler.h.

Double_t THcScalerEvtHandler::fDeltaTime
private

Definition at line 66 of file THcScalerEvtHandler.h.

UInt_t THcScalerEvtHandler::fLastClock
private

Definition at line 89 of file THcScalerEvtHandler.h.

std::set<UInt_t> THcScalerEvtHandler::fModuleSet
private

Definition at line 93 of file THcScalerEvtHandler.h.

Int_t THcScalerEvtHandler::fNormIdx
private

Definition at line 76 of file THcScalerEvtHandler.h.

Int_t THcScalerEvtHandler::fNormSlot
private

Definition at line 76 of file THcScalerEvtHandler.h.

Int_t THcScalerEvtHandler::fNumBCMs
private

Definition at line 59 of file THcScalerEvtHandler.h.

Bool_t THcScalerEvtHandler::fOnlyBanks
private

Definition at line 86 of file THcScalerEvtHandler.h.

Bool_t THcScalerEvtHandler::fOnlySyncEvents
private

Definition at line 85 of file THcScalerEvtHandler.h.

Double_t THcScalerEvtHandler::fPrevTotalTime
private

Definition at line 67 of file THcScalerEvtHandler.h.

std::set<UInt_t> THcScalerEvtHandler::fRocSet
private

Definition at line 92 of file THcScalerEvtHandler.h.

TTree* THcScalerEvtHandler::fScalerTree
private

Definition at line 83 of file THcScalerEvtHandler.h.

Double_t THcScalerEvtHandler::fTotalTime
private

Definition at line 65 of file THcScalerEvtHandler.h.

Bool_t THcScalerEvtHandler::fUseFirstEvent
private

Definition at line 84 of file THcScalerEvtHandler.h.

Int_t THcScalerEvtHandler::ifound
private

Definition at line 76 of file THcScalerEvtHandler.h.

Int_t THcScalerEvtHandler::nscalers
private

Definition at line 76 of file THcScalerEvtHandler.h.

Int_t THcScalerEvtHandler::Nvars
private

Definition at line 76 of file THcScalerEvtHandler.h.

std::vector<UInt_t> THcScalerEvtHandler::scal_overflows
private

Definition at line 81 of file THcScalerEvtHandler.h.

std::vector<UInt_t> THcScalerEvtHandler::scal_present_read
private

Definition at line 80 of file THcScalerEvtHandler.h.

std::vector<UInt_t> THcScalerEvtHandler::scal_prev_read
private

Definition at line 79 of file THcScalerEvtHandler.h.

std::vector<HCScalerLoc*> THcScalerEvtHandler::scalerloc
private

Definition at line 58 of file THcScalerEvtHandler.h.

std::vector<Decoder::GenScaler*> THcScalerEvtHandler::scalers
private

Definition at line 57 of file THcScalerEvtHandler.h.

Collaboration diagram for THcScalerEvtHandler:

The documentation for this class was generated from the following files: