00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <TArrayC.h>
00013
00014 #include "StMuEzTree.h"
00015
00016 #include "StEvent/StEvent.h"
00017 #include "StEvent/StRunInfo.h"
00018 #include "StEvent/StEmcCollection.h"
00019
00020 #include "StEvent/StTriggerData.h"
00021
00022
00023 #include "StEvent/StTriggerDetectorCollection.h"
00024 #include "StEvent/StCtbTriggerDetector.h"
00025 #include "StEvent/StEmcTriggerDetector.h"
00026 #include "StEvent/StL0Trigger.h"
00027
00028 #include "EztEventHeader.h"
00029 #include "EztEmcRawData.h"
00030 #include "EztTrigBlob.h"
00031 #include "EztFpdBlob.h"
00032
00033 ClassImp(StMuEzTree)
00034
00035 StMuEzTree::StMuEzTree() {
00036
00037 }
00038
00039 StMuEzTree::~StMuEzTree() {}
00040
00041
00042
00043
00044 EztEventHeader* StMuEzTree::copyHeader(StEvent* ev){
00045 EztEventHeader* header = new EztEventHeader;
00046 header->setRunNumber(ev->runId());
00047 header->setEventNumber(ev->id());
00048 unsigned short token=ev->l0Trigger()->triggerToken();
00049 header->setToken(token);
00050 header->setTimeStamp(ev->time());
00051 header->setComment("Ezt-branch from StEvent");
00052 header->setProcessingTime(time(0));
00053 header->setStatus(0);
00054
00055
00056
00057
00058
00059
00060
00061
00062 return header;
00063 }
00064
00065
00066
00067
00068 EztTrigBlob* StMuEzTree::copyTrig(StEvent* ev){
00069 EztTrigBlob * trigBlob = new EztTrigBlob;
00070
00071 StTriggerData* trigData = ev->triggerData();
00072 if (trigData == 0)
00073 return 0;
00074 char *rawData= trigData->getTriggerStructure();
00075 int rawSize=trigData->getRawSize();
00076
00077 trigBlob->trgd->Set(rawSize, rawData);
00078 trigBlob->setVersion((UChar_t)trigData->version());
00079
00080
00081
00082
00083 return trigBlob;
00084 }
00085
00086
00087
00088 EztEmcRawData* StMuEzTree::copyETow(StEmcRawData *inp){
00089 return copy(inp,0,mxETowCrate);
00090 }
00091
00092
00093
00094 EztEmcRawData* StMuEzTree::copyESmd(StEmcRawData *inp){
00095 return copy(inp,mxETowCrate,inp->getNBlocks());
00096 }
00097
00098
00099
00100 EztEmcRawData* StMuEzTree::copy(StEmcRawData *inp, int ib1, int ib2){
00101 EztEmcRawData* raw = new EztEmcRawData;
00102
00103 int j=0;
00104 for (int i = ib1; i <ib2; i++,j++) {
00105 if(i>=inp->getNBlocks()) break;
00106 if(inp->sizeData(i) <= 0) continue;
00107 raw->createBank(j,inp->sizeHeader(i),inp->sizeData(i));
00108 raw->setHeader(j,inp->header(i));
00109 raw->setData(j,inp->data(i));
00110 }
00111 return raw;
00112
00113 }
00114
00115
00116
00117
00118
00119 EztFpdBlob* StMuEzTree::copyFpd(StEvent* ev){
00120 EztFpdBlob * fpdBlob = new EztFpdBlob;
00121 unsigned short int dummData[5]={1,3,5,7,9};
00122 unsigned short int *rawData= dummData;
00123 int rawSize=5;
00124 fpdBlob->smd->Set(rawSize, (short*)rawData);
00125 return fpdBlob;
00126 }
00127