Hall C ROOT/C++ Analyzer (hcana)
|
Event handler for Hall C helicity scalers.
This event handler scans an event for a helicity scaler bank. A helicity scaler bank contains data from one or more SIS3801 scaler triggers.
Definition at line 26 of file THcHelicityScaler.h.
Public Member Functions | |
Int_t | Analyze (THaEvData *evdata) |
Int_t | AnalyzeBuffer (UInt_t *rdata) |
Int_t | AnalyzeHelicityScaler (UInt_t *p) |
virtual Int_t | End (THaRunBase *r=0) |
virtual Int_t | GetEvNum () |
virtual Int_t * | GetHelicityHistoryP () |
virtual Int_t | GetNcycles () |
virtual Int_t | GetNevents () |
virtual Int_t | GetReportedActual () |
virtual Int_t | GetReportedSeed () |
virtual EStatus | Init (const TDatime &run_time) |
virtual Bool_t | IsSeedGood () |
virtual Int_t | ReadDatabase (const TDatime &date) |
virtual void | SetBankID (Int_t bankid) |
virtual void | SetDelayedType (int evtype) |
virtual void | SetNScalerChannels (Int_t n) |
virtual void | SetROC (Int_t roc) |
virtual void | SetUseFirstEvent (Bool_t b=kFALSE) |
THcHelicityScaler (const char *, const char *) | |
virtual | ~THcHelicityScaler () |
Private Member Functions | |
void | AddVars (TString name, TString desc, UInt_t iscal, UInt_t ichan, UInt_t ikind) |
void | DefVars () |
void | MakeParms () |
THcHelicityScaler & | operator= (const THcHelicityScaler &fh) |
Int_t | RanBit30 (Int_t ranseed) |
THcHelicityScaler (const THcHelicityScaler &fh) | |
Static Private Member Functions | |
static size_t | FindNoCase (const std::string &sdata, const std::string &skey) |
#include <THcHelicityScaler.h>
THcHelicityScaler::THcHelicityScaler | ( | const char * | name, |
const char * | description | ||
) |
Definition at line 59 of file THcHelicityScaler.cxx.
|
virtual |
Definition at line 90 of file THcHelicityScaler.cxx.
|
private |
|
private |
Definition at line 1429 of file THcHelicityScaler.cxx.
Create the ROOT tree and pass events to AnalyzeBuffer
If the event is of the type fDelayedType, cache the event buffer and analyze it in End.
Definition at line 324 of file THcHelicityScaler.cxx.
Scan for and analyze helicity scaler banks in an event
A helicity bank can contain more than one event/trigger, particularly if the event trigger rate is lower than the helicity flip rate.
Definition at line 424 of file THcHelicityScaler.cxx.
Analyze a single SIS3801 helicity scaler event/trigger
An event contains 32 scalers that were accumulated over the last helicity window. The event also contains 2 bits, one being the reported helicity for this window and the other a marker for the quartet. This method determines actual helicity from the delayed helicity bits and accumulates scalers for each helicity state.
This code assumes that the helity is delivered in quartets of windows with the pattern +–+ or -++- and that the helicity that is reported has been delayed by 8 windows (2 quartets.)
For the first 120 events, the actual helicity of each helicity scaler event can not be determined. This actualy helicity of each event can be determined once the 30 bit seed for the helicity generator has been determined. At the start of each quartet, the reported helicity is pushed onto the seed. Once 30 bits have been pushed onto the seed, the actual helicity of any given event can be determined.
The SIS3801 has a bug (undocumented feature?) with the inputs bits. The value of the bits are delayed by one trigger, so they do not corresponed to the the scaler values read in the event. This bug was not known (to the author) at the time that this method was written, so there is a hack (marked by the DELAY9 ifdef) to account for this. Some rewriting of the code probably make things clearer.
Definition at line 534 of file THcHelicityScaler.cxx.
|
private |
Definition at line 1442 of file THcHelicityScaler.cxx.
|
virtual |
Definition at line 112 of file THcHelicityScaler.cxx.
|
staticprivate |
Definition at line 1466 of file THcHelicityScaler.cxx.
|
inlinevirtual |
Definition at line 48 of file THcHelicityScaler.h.
|
inlinevirtual |
Definition at line 49 of file THcHelicityScaler.h.
|
inlinevirtual |
Definition at line 47 of file THcHelicityScaler.h.
|
inlinevirtual |
Definition at line 46 of file THcHelicityScaler.h.
|
inlinevirtual |
Definition at line 51 of file THcHelicityScaler.h.
|
inlinevirtual |
Definition at line 50 of file THcHelicityScaler.h.
|
virtual |
Definition at line 1093 of file THcHelicityScaler.cxx.
|
inlinevirtual |
Definition at line 52 of file THcHelicityScaler.h.
|
private |
Definition at line 1360 of file THcHelicityScaler.cxx.
|
private |
Generate a new helicity state bit using same algorithm as the injector
Definition at line 1074 of file THcHelicityScaler.cxx.
Definition at line 259 of file THcHelicityScaler.cxx.
Definition at line 44 of file THcHelicityScaler.h.
|
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 311 of file THcHelicityScaler.cxx.
Definition at line 45 of file THcHelicityScaler.h.
Definition at line 43 of file THcHelicityScaler.h.
Definition at line 41 of file THcHelicityScaler.h.
|
private |
Definition at line 161 of file THcHelicityScaler.h.
|
private |
Definition at line 164 of file THcHelicityScaler.h.
|
private |
Definition at line 165 of file THcHelicityScaler.h.
|
private |
Definition at line 157 of file THcHelicityScaler.h.
|
private |
Definition at line 158 of file THcHelicityScaler.h.
|
private |
Definition at line 159 of file THcHelicityScaler.h.
|
private |
Definition at line 160 of file THcHelicityScaler.h.
|
private |
Definition at line 87 of file THcHelicityScaler.h.
|
private |
Definition at line 88 of file THcHelicityScaler.h.
|
private |
Definition at line 68 of file THcHelicityScaler.h.
|
private |
Definition at line 150 of file THcHelicityScaler.h.
|
private |
Definition at line 152 of file THcHelicityScaler.h.
|
private |
Definition at line 146 of file THcHelicityScaler.h.
|
private |
Definition at line 141 of file THcHelicityScaler.h.
|
private |
Definition at line 153 of file THcHelicityScaler.h.
|
private |
Definition at line 142 of file THcHelicityScaler.h.
|
private |
Definition at line 144 of file THcHelicityScaler.h.
|
private |
Definition at line 145 of file THcHelicityScaler.h.
|
private |
Definition at line 121 of file THcHelicityScaler.h.
|
private |
Definition at line 122 of file THcHelicityScaler.h.
|
private |
Definition at line 123 of file THcHelicityScaler.h.
|
private |
Definition at line 124 of file THcHelicityScaler.h.
|
private |
Definition at line 119 of file THcHelicityScaler.h.
|
private |
Definition at line 120 of file THcHelicityScaler.h.
|
private |
Definition at line 169 of file THcHelicityScaler.h.
|
private |
Definition at line 151 of file THcHelicityScaler.h.
|
private |
Definition at line 136 of file THcHelicityScaler.h.
|
private |
Definition at line 76 of file THcHelicityScaler.h.
|
private |
Definition at line 148 of file THcHelicityScaler.h.
|
private |
Definition at line 72 of file THcHelicityScaler.h.
|
private |
Definition at line 85 of file THcHelicityScaler.h.
|
private |
Definition at line 98 of file THcHelicityScaler.h.
|
private |
Definition at line 73 of file THcHelicityScaler.h.
|
private |
Definition at line 84 of file THcHelicityScaler.h.
|
private |
Definition at line 170 of file THcHelicityScaler.h.
|
private |
Definition at line 172 of file THcHelicityScaler.h.
|
private |
Definition at line 80 of file THcHelicityScaler.h.
|
private |
Definition at line 163 of file THcHelicityScaler.h.
|
private |
Definition at line 163 of file THcHelicityScaler.h.
|
private |
Definition at line 138 of file THcHelicityScaler.h.
|
private |
Definition at line 71 of file THcHelicityScaler.h.
|
private |
Definition at line 83 of file THcHelicityScaler.h.
|
private |
Definition at line 82 of file THcHelicityScaler.h.
|
private |
Definition at line 70 of file THcHelicityScaler.h.
|
private |
Definition at line 140 of file THcHelicityScaler.h.
|
private |
Definition at line 168 of file THcHelicityScaler.h.
|
private |
Definition at line 167 of file THcHelicityScaler.h.
|
private |
Definition at line 149 of file THcHelicityScaler.h.
|
private |
Definition at line 100 of file THcHelicityScaler.h.
|
private |
Definition at line 79 of file THcHelicityScaler.h.
|
private |
Definition at line 78 of file THcHelicityScaler.h.
|
private |
Definition at line 137 of file THcHelicityScaler.h.
|
private |
Definition at line 171 of file THcHelicityScaler.h.
|
private |
Definition at line 113 of file THcHelicityScaler.h.
|
private |
Definition at line 114 of file THcHelicityScaler.h.
|
private |
Definition at line 115 of file THcHelicityScaler.h.
|
private |
Definition at line 116 of file THcHelicityScaler.h.
|
private |
Definition at line 111 of file THcHelicityScaler.h.
|
private |
Definition at line 134 of file THcHelicityScaler.h.
|
private |
Definition at line 86 of file THcHelicityScaler.h.
|
private |
Definition at line 166 of file THcHelicityScaler.h.
|
private |
Definition at line 112 of file THcHelicityScaler.h.
|
private |
Definition at line 105 of file THcHelicityScaler.h.
|
private |
Definition at line 106 of file THcHelicityScaler.h.
|
private |
Definition at line 107 of file THcHelicityScaler.h.
|
private |
Definition at line 108 of file THcHelicityScaler.h.
|
private |
Definition at line 103 of file THcHelicityScaler.h.
|
private |
Definition at line 92 of file THcHelicityScaler.h.
|
private |
Definition at line 91 of file THcHelicityScaler.h.
|
private |
Definition at line 104 of file THcHelicityScaler.h.
|
private |
Definition at line 147 of file THcHelicityScaler.h.
|
private |
Definition at line 95 of file THcHelicityScaler.h.
|
private |
Definition at line 75 of file THcHelicityScaler.h.
|
private |
Definition at line 163 of file THcHelicityScaler.h.
|
private |
Definition at line 163 of file THcHelicityScaler.h.
|
private |
Definition at line 163 of file THcHelicityScaler.h.
|
private |
Definition at line 162 of file THcHelicityScaler.h.
|
private |
Definition at line 62 of file THcHelicityScaler.h.
|
private |
Definition at line 61 of file THcHelicityScaler.h.