00001
00002
00003
00004
00005
00007
00008
00009 #ifndef _ALEVENT_H_
00010 #define _ALEVENT_H_
00011
00012 #include "BankClasses.h"
00013 class TimeInfo;
00014 class AlRun;
00015
00016 class AlEvent {
00017
00018 public:
00019
00021 AlEvent();
00022
00024 AlEvent(const AlEvent&);
00025
00027 TimeInfo Time() const;
00028
00030 int number() const;
00031
00033 int type()const;
00034
00036 int EdirClass()const;
00037
00039 int ErrorStatus()const;
00040
00042 float Energy()const;
00043
00045 float gen_e12(float qelep)const;
00046
00048 bool xlumok(float qelep, int mode = 0)const;
00049
00051 bool IsTrigger(bool MINI)const;
00052
00054 int GetRawTrigger()const;
00055
00057 void SETqhac(QHAC*);
00058
00060 QHAC* GETqhac() {return qhac;}
00061
00062 KEVH* GeneratorStatus()const;
00063 vector<KWGT*>* GeneratorWeights()const;
00064 float getGeneratorWeight(int Number=0)const;
00065
00066 private:
00067
00068 EVEH* Header()const;
00069 REVH* ReconstructorHeader()const;
00070 vector<LOLE*>* LcalErrorFlags()const;
00071 vector<X1RG*>* Readout()const;
00072 BOMB* BeamPosition()const;
00073 vector<XTBN*>* TriggerBitNames()const;
00074 XTCN* TriggerLevelControl()const;
00075 XTOP* TriggerOptions()const;
00076 LUPA* LuminosityParameters()const;
00077 SILH* SicalLuminosityParameters()const;
00078 vector<XHVB*>* HVfixes()const;
00079 XTEB* TriggerLevelEventBitPattern()const;
00080 XTRB* TriggerLevelRegisterBitPattern()const;
00081 DTBP* TriggerBitPattern()const;
00082 vector<VHBV*>* VDETbit()const;
00083 vector<VHPV*>* NoHVbit()const;
00084 EAUX* ENFLWinfo()const;
00085 SIX2* SicalTriggerX2()const;
00086 vector<X1TV*>* Triggerlevel1Threshold()const;
00087 vector<X1IP*>* Triggerlevel1Input()const;
00088 vector<SIXA*>* SicalTriggerSectorsAdc()const;
00089 SITC* SicalTriggerConditions()const;
00090 vector<SRCO*>* SicalRunConditions()const;
00091 vector<X1TH*>* TriggerOldlevel1Threshold()const;
00092 vector<X1AD*>* Triggerlevel1Adc()const;
00093
00094 QHAC* qhac;
00095
00096 float e12_produce(double thr, double c1, double c2, double c3, float qelep, float (AlEvent::*fp)(float x1) const)const;
00097 float r183_e12(float x1)const;
00098 float r189_e12(float x1)const;
00099 float r192_e12(float x1)const;
00100 float r196_e12(float x1)const;
00101 float r200_e12(float x1)const;
00102 float r202_e12(float x1)const;
00103 float r205_e12(float x1)const;
00104 float r207_e12(float x1)const;
00105
00106 bool EnergyStability(float qelep)const;
00107 int EnabledTriggers()const;
00108 vector<bool> HVStatus()const;
00109 bool TimeSynchronization()const;
00110 bool LaserEvent()const;
00111 bool VDETstatus()const;
00112
00113 void RedoTrigger()const;
00114 void RedoOldTrigger()const;
00115 void SimulateTrigger(int*,int*,int*,int*,int*)const;
00116 void SimulateOldTrigger(int*,int*,int*,int*,int*,int*,int*,int*,int*)const;
00117 void SimulateSicalTrigger()const;
00118 void ApplyTrigger(int*,int*,int*,int,int)const;
00119 void ApplyOldTrigger(int*,int*,int*BIT,int*,int*,int*,int)const;
00120
00121
00122 static int SIsetup;
00123
00124 static int mask1, mask2, mask3, tmask;
00125 };
00126
00127 #endif