00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <TArrayC.h>
00012
00013 #include "StTriggerDataMother.h"
00014 #include "StMuDSTMaker/EZTREE/EztTrigBlob.h"
00015 #include "StEvent/StTriggerData2003.h"
00016 #include "StEvent/StTriggerData2004.h"
00017 #include "StEvent/StTriggerData2005.h"
00018
00019 #include "StMuDSTMaker/COMMON/StMuDstMaker.h"
00020 #include "StMuDSTMaker/COMMON/StMuEvent.h"
00021 #include "StMuDSTMaker/COMMON/StMuDst.h"
00022 ClassImp(StTriggerDataMother)
00023
00024
00025
00026 StTriggerDataMother::~StTriggerDataMother() {
00027 delete fCurrent;
00028 }
00029
00030
00031
00032 StTriggerDataMother::StTriggerDataMother(EztTrigBlob*trigBlob) {
00033 fCurrent=0;
00034 if(trigBlob==0) {
00035 gMessMgr->Message("","F") <<GetName()<<"(0) - no input trig data, NULL returned"<<endm;
00036 return;
00037 }
00038
00039 gMessMgr->Message("","D") <<GetName()<<"-trig data ver/dec="<<trigBlob->getVersion()<<endm;
00040
00041
00042 int runId=-99;
00043 if (StMuDst::array(0) && StMuDst::array(0)->GetEntriesFast() > 0) {
00044 StMuEvent *muEve = StMuDst::event();
00045 runId=muEve->eventInfo().runId();
00046 }
00047 else {
00048 cout << "ERROR in " << __PRETTY_FUNCTION__ << ": cannot get event, run numberi. Exiting" << endl;
00049 exit(255);
00050 }
00051 void *blob=trigBlob->trgd->GetArray();
00052 switch(trigBlob->getVersion()) {
00053 case 0x20:
00054 fCurrent = new StTriggerData2003( (const TrgDataType2003 *)blob, runId);
00055 break;
00056 case 0x21:
00057 fCurrent = new StTriggerData2004( (const TrgDataType2004 *)blob, runId);
00058 break;
00059 case 0x22:
00060 fCurrent = new StTriggerData2005( (const TrgDataType2005 *)blob, runId);
00061 break;
00062 default:
00063 gMessMgr->Message("","F") <<GetName()<<"-trig data ver/dec="<<trigBlob->getVersion()<<" not supported"<<endm;
00064 }
00065 }
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078