Skip to content

Commit ccba6de

Browse files
authored
Adding option to read from MuDst in StFcsRawHitMaker (star-bnl#226)
* Adding option to read from Mudst in StFcsRawHitMaker, and example macro to read from Mudst, re-create StFcsHit in StEvent on momery, and re-run FCS reconstruction makers. * unsigned int -> int
1 parent 2ff05cc commit ccba6de

3 files changed

Lines changed: 86 additions & 2 deletions

File tree

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
void runMudst(char* file="st_cosmic_adc_22326042_raw_0000005.MuDst.root",
2+
int ifile=-1, Int_t nevt=-1, char* outdir=".", int readMuDst=1){
3+
gROOT->Macro("Load.C");
4+
gROOT->Macro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
5+
gSystem->Load("StEventMaker");
6+
gSystem->Load("StFcsDbMaker");
7+
gSystem->Load("StFcsRawHitMaker");
8+
gSystem->Load("StFcsWaveformFitMaker");
9+
gSystem->Load("StFcsClusterMaker");
10+
gSystem->Load("libMinuit");
11+
gSystem->Load("StFcsPointMaker");
12+
13+
StChain* chain = new StChain("StChain"); chain->SetDEBUG(0);
14+
StMuDstMaker* muDstMaker = new StMuDstMaker(0, 0, "", file,".", 1000, "MuDst");
15+
int n=muDstMaker->tree()->GetEntries();
16+
printf("Found %d entries in Mudst\n",n);
17+
int start=0, stop=n;
18+
if(ifile>=0){
19+
int start=ifile*nevt;
20+
int stop=(ifile+1)*nevt-1;
21+
if(n<start) {printf(" No event left. Exiting\n"); return;}
22+
if(n<stop) {printf(" Overwriting end event# stop=%d\n",n); stop=n;}
23+
}else if(nevt>=0 && nevt<n){
24+
stop=nevt;
25+
}else if(nevt==-2){
26+
stop=2000000000;
27+
}
28+
printf("Doing Event=%d to %d\n",start,stop);
29+
30+
St_db_Maker* dbMk = new St_db_Maker("db","MySQL:StarDb","$STAR/StarDb");
31+
if(dbMk){
32+
dbMk->SetAttr("blacklist", "tpc");
33+
dbMk->SetAttr("blacklist", "svt");
34+
dbMk->SetAttr("blacklist", "ssd");
35+
dbMk->SetAttr("blacklist", "ist");
36+
dbMk->SetAttr("blacklist", "pxl");
37+
dbMk->SetAttr("blacklist", "pp2pp");
38+
dbMk->SetAttr("blacklist", "ftpc");
39+
dbMk->SetAttr("blacklist", "emc");
40+
dbMk->SetAttr("blacklist", "eemc");
41+
dbMk->SetAttr("blacklist", "mtd");
42+
dbMk->SetAttr("blacklist", "pmd");
43+
dbMk->SetAttr("blacklist", "tof");
44+
dbMk->SetAttr("blacklist", "etof");
45+
dbMk->SetAttr("blacklist", "rhicf");
46+
}
47+
48+
StFcsDbMaker *fcsDbMkr= new StFcsDbMaker();
49+
StFcsDb* fcsDb = (StFcsDb*) chain->GetDataSet("fcsDb");
50+
StEventMaker* eventMk = new StEventMaker();
51+
StFcsRawHitMaker* hit = new StFcsRawHitMaker();
52+
hit->setReadMuDst(readMuDst);
53+
StFcsWaveformFitMaker *wff= new StFcsWaveformFitMaker();
54+
StFcsClusterMaker *clu= new StFcsClusterMaker();
55+
StFcsPointMaker *poi= new StFcsPointMaker();
56+
wff->SetDebug();
57+
clu->SetDebug();
58+
poi->SetDebug();
59+
60+
chain->Init();
61+
chain->EventLoop(start,stop);
62+
chain->Finish();
63+
delete chain;
64+
}

StRoot/StFcsRawHitMaker/StFcsRawHitMaker.cxx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
#include "StRoot/StEvent/StFcsCollection.h"
1212
#include "StRoot/StEvent/StFcsHit.h"
1313
#include "StRoot/StFcsDbMaker/StFcsDb.h"
14+
#include "StMuDSTMaker/COMMON/StMuTypes.hh"
15+
#include "StMuDSTMaker/COMMON/StMuFcsUtil.h"
1416

1517
StFcsRawHitMaker::StFcsRawHitMaker( const char* name) :
1618
StRTSBaseMaker("fcs",name){
@@ -37,6 +39,9 @@ int StFcsRawHitMaker::Make() {
3739
AddData(mEvent);
3840
LOG_INFO <<"Added StEvent"<<endm;
3941
}
42+
43+
if(mReadMuDst>0) return readMuDst();
44+
4045
mFcsCollectionPtr=mEvent->fcsCollection();
4146
if(!mFcsCollectionPtr) {
4247
mFcsCollectionPtr=new StFcsCollection();
@@ -47,6 +52,7 @@ int StFcsRawHitMaker::Make() {
4752
LOG_DEBUG <<"Found StFcsCollection"<<endm;
4853
}
4954

55+
5056
StRtsTable* dd=0;
5157
int nData=0, nValidData=0;
5258
const char* mode[2]={"adc","zs"};
@@ -91,6 +97,16 @@ int StFcsRawHitMaker::Make() {
9197
return kStOK;
9298
};
9399

100+
int StFcsRawHitMaker::readMuDst() {
101+
StMuDst* mudst = (StMuDst*)GetInputDS("MuDst");
102+
if(!mudst){LOG_ERROR<<"StFcsRawHitMaker::readMuDst() found no MuDst"<<endm; return kStErr;}
103+
StMuFcsCollection* mufcsColl= mudst->muFcsCollection();
104+
if(!mufcsColl){LOG_ERROR<<"StFcsRawHitMaker::readMuDst found no MuFcsCollection"<<endm; return kStErr;}
105+
StMuFcsUtil util;
106+
mFcsCollectionPtr = util.getFcs(mufcsColl);
107+
mEvent->setFcsCollection(mFcsCollectionPtr);
108+
}
109+
94110
void StFcsRawHitMaker::Clear( Option_t *opts ){};
95111

96112
ClassImp(StFcsRawHitMaker);

StRoot/StFcsRawHitMaker/StFcsRawHitMaker.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ class StFcsRawHitMaker : public StRTSBaseMaker {
2525

2626
void setReadMode(int v) {mReadMode=v;}
2727
void setDebug(int v=1) {SetDebug(v);} //!backward compatubility
28-
28+
void setReadMuDst(int v=1) {mReadMuDst=v;} //!reading Mudst/StMuFcsHit into StEvent/StFcsHit
29+
2930
// Get CVS
3031
virtual const char *GetCVS() const;
3132

@@ -34,7 +35,10 @@ class StFcsRawHitMaker : public StRTSBaseMaker {
3435
StFcsCollection *mFcsCollectionPtr;
3536
unsigned int mRun=0;
3637
StFcsDb* mFcsDb=0;
37-
unsigned int mReadMode=1;
38+
int mReadMode=1;
39+
int mReadMuDst=0;
40+
41+
int readMuDst();
3842

3943
ClassDef(StFcsRawHitMaker,1);
4044
};

0 commit comments

Comments
 (0)