00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef StuJitterBug_hh
00023 #define StuJitterBug_hh
00024
00025 #include "StEvent/StEvent.h"
00026 #include "StEvent/StTriggerDetectorCollection.h"
00027 #include "StEvent/StCtbTriggerDetector.h"
00028 #include "StMessMgr.h"
00029
00030 Bool_t t0JitterAbort(StEvent* event) {
00031
00032
00033
00034 StTriggerDetectorCollection *theTriggers =
00035 event->triggerDetectorCollection();
00036 if( !theTriggers ) {
00037 gMessMgr->Error() << "t0JitterAbort finds no trigger data" << endl;
00038 return kFALSE;
00039 }
00040 StCtbTriggerDetector &ctb = theTriggers->ctb();
00041 Float_t ctb_evt = 0.;
00042 Float_t ctb_pre = 0.;
00043
00044
00045
00046 for( UInt_t slat=0; slat<ctb.numberOfSlats(); slat++ ) {
00047 for( UInt_t tray=0; tray<ctb.numberOfTrays(); tray++) {
00048 ctb_evt += ctb.mips( tray, slat, 0 );
00049 ctb_pre += ctb.mips( tray, slat, ctb.numberOfPreSamples() );
00050 }
00051 }
00052
00053 Float_t ratio = (ctb_evt > 0.) ? ctb_pre/ctb_evt : 0.;
00054
00055 if( ctb_evt <= 0. )
00056 gMessMgr->Warning() << "t0JitterAbort ctb_evt = " << ctb_evt
00057 << " ctb_pre = " << ctb_pre << endl;
00058
00059
00060
00061
00062 return( (Bool_t) (ratio > 0.01) );
00063 }
00064
00065 #endif