00001
00002
00003
00004
00005 #include <TFile.h>
00006 #include <TH1.h>
00007 #include <TH2.h>
00008 #include <StMessMgr.h>
00009
00010 #include "StTrigOnlyPanitkinMaker.h"
00011 #include "StEEmcPool/HanksTriggerDataReader/StTriggerDataReader.h"
00012 #include "StTriggerData2005.h"
00013 #include "EEdsmAna.h"
00014
00015
00016 ClassImp(StTrigOnlyPanitkinMaker)
00017
00018
00019
00020 StTrigOnlyPanitkinMaker::StTrigOnlyPanitkinMaker( const char* self ,const char* muDstMakerName) : StMaker(self){
00021 nTrigEve=nInpEve=0;
00022 HList=0;
00023 }
00024
00025
00026
00027
00028 StTrigOnlyPanitkinMaker::~StTrigOnlyPanitkinMaker(){
00029 delete dsm;
00030 }
00031
00032
00033
00034 void StTrigOnlyPanitkinMaker::saveHisto(TString fname){
00035 TString outName=fname+".hist.root";
00036 TFile f( outName,"recreate");
00037 assert(f.IsOpen());
00038 printf("%d histos are written to '%s' ...\n",HList->GetEntries(),outName.Data());
00039 HList->Write();
00040 f.Close();
00041
00042 }
00043
00044
00045
00046 Int_t StTrigOnlyPanitkinMaker::Init(){
00047
00048 assert(HList);
00049 dsm= 0;
00050 if (dsm) dsm->initHisto();
00051 return StMaker::Init();
00052 }
00053
00054
00055
00056
00057 Int_t StTrigOnlyPanitkinMaker::Finish(){
00058 gMessMgr->Message("","I") <<GetName()<<"::Finish() inputEve="<<nInpEve<<" trigFilterEve="<<nTrigEve<<endm;
00059 return kStOK;
00060 }
00061
00062
00063
00064 void StTrigOnlyPanitkinMaker::Clear(const Option_t*){
00065 if (dsm) dsm->clear();
00066 }
00067
00068
00069
00070
00071 Int_t StTrigOnlyPanitkinMaker::Make(){
00072 nInpEve++;
00073 gMessMgr->Message("","D") <<GetName()<<"::Make() is called "<<endm;
00074
00075 StTriggerDataReader* trgreader = (StTriggerDataReader*)GetMaker("TRGRD");
00076 assert(trgreader);
00077 void *blob=trgreader->GetTriggerData();
00078
00079 int runNo=-999;
00080 assert(runNo>0);
00081
00082 StTriggerData2005 trgAkio5( (const TrgDataType2005 *)blob,runNo);
00083
00084
00085 nTrigEve++;
00086
00087 const unsigned char * dsm0inp= trgAkio5.getDsm0_EEMC();
00088 unsigned short int * dsm1inp= trgAkio5.getDsm1_EEMC();
00089 unsigned short int * dsm2inp= trgAkio5.getDsm2_EMC();
00090 unsigned short int * dsm3inp= trgAkio5.getDsm3();
00091
00092 if (dsm) dsm->sort( dsm0inp, dsm1inp, dsm2inp, dsm3inp);
00093
00094 return kStOK;
00095 }
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112