StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
pico.C
1 //usr/bin/env root4star -l -b -q $0; exit $?
3 // $Id: genDst.C,v 1.9 2020/10/10 07:16:56 genevb Exp $
4 // Author: G. Van Buren (BNL)
5 //
6 // Description:
7 // Process a MuDst for...
8 // ...creating a PicoDst
9 // ...re-running vertex-finding to re-create MuDsts
10 //
11 // Options are space-separated or comma-separated,
12 // and case-insensitive. They can be attributed
13 // whose values are provided after a ':'.
14 //
15 // Example options for creating PicoDsts:
16 // picoDst
17 // btofMatch
18 // btofStartless
19 // mtdMatch
20 // y2017a
21 //
22 // Example lists of options:
23 // "picoDst"
24 // "DbV20200125,picoDst,mtdMatch,y2014a"
25 //
26 // Example options for vertex-finding:
27 // beamline, beamline1D, beamline3D (otherwise no beamline)
28 // useBTOFmatchOnly
29 // VFstore:100
30 //
31 // Example lists of options:
32 // "VFPPVnoCTB,beamline1D,VFstore:100"
33 // "VFPPVnoCTB,beamline3D"
34 //
36 
37 void afterburner();
38 
39 void genDst(unsigned int Last,
40  const char* options,
41  char* infile,
42  char* outfile=0);
43 
44 void genDst(unsigned int First,
45  unsigned int Last,
46  const char* options,
47  char* infile,
48  char* outfile=0);
49 
50 void loadLibs()
51 {
52  gROOT->Macro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
53  gSystem->Load("StDbBroker");
54  gSystem->Load("St_db_Maker");
55  gSystem->Load("StEEmcUtil");
56 }
57 
58 void loadLibsVF()
59 {
60  gSystem->Load("libMinuit");
61  gSystem->Load("Sti");
62  gSystem->Load("StBTofUtil");
63  gSystem->Load("StGenericVertexMaker");
64 }
65 
66 void loadLibsPico()
67 {
68 
69  // EMCs and FMS need DB+converters
70  gSystem->Load("StEmcRawMaker");
71  gSystem->Load("StEmcADCtoEMaker");
72  gSystem->Load("StPreEclMaker");
73  gSystem->Load("StEpcMaker");
74  gSystem->Load("StEEmcDbMaker");
75  gSystem->Load("StFmsUtil");
76  gSystem->Load("StFmsDbMaker");
77  gSystem->Load("StTriggerUtilities");
78 
79  // The PicoDst
80  gSystem->Load("libStPicoEvent");
81  gSystem->Load("libStPicoDstMaker");
82 }
83 
84 void loadLibsAgML()
85 {
86  // load support libraries. util will fail to load for agml 1.0, but you can ignore the error
87  gSystem->Load("libStarAgmlUtil");
88  gSystem->Load("libStarAgmlLib");
89 
90  // load geometry modules and master steering codes...
91  gSystem->Load("libGeometry");
92  gSystem->Load("libStarGeometry");
93 }
94 
95 void loadLibsMtd()
96 {
97  gSystem->Load("StDetectorDbMaker");
98  gSystem->Load("StarMagField");
99  gSystem->Load("StMagF");
100  gSystem->Load("StMtdUtil");
101  gSystem->Load("StMtdMatchMaker");
102  gSystem->Load("StMtdCalibMaker");
103 }
104 
105 void loadLibsBTof()
106 {
107  gSystem->Load("StBTofUtil");
108  gSystem->Load("StVpdCalibMaker");
109  gSystem->Load("StBTofCalibMaker");
110  gSystem->Load("StBTofMatchMaker");
111 }
112 
113 void loadLibsETof()
114 {
115  gSystem->Load("StETofUtil");
116  gSystem->Load("StETofCalibMaker");
117  gSystem->Load("StETofHitMaker");
118  gSystem->Load("StETofMatchMaker");
119 }
120 
121 void loadLibsFwd()
122 {
123  gSystem->Load("libStDetectorDbMaker.so");
124  gSystem->Load("StEvent");
125  gSystem->Load("StEventMaker");
126 
127  // Fwd
128  gSystem->Load("StFwdUtils");
129  gSystem->Load("libStarGeneratorUtil.so");
130  gSystem->Load("libXMLIO");
131  gSystem->Load("libgenfit2");
132  gSystem->Load("libKiTrack");
133  // gSystem->Load("StarGeneratorUtil") ;
134  gSystem->Load("libMathMore");
135  gSystem->Load("StEventUtilities");
136  gSystem->Load("StEpdUtil");
137  gSystem->Load("StFwdTrackMaker");
138  gSystem->Load("StFwdUtils");
139  //Ftt
140  gSystem->Load("StFttDbMaker");
141  gSystem->Load("StFttRawHitMaker");
142  gSystem->Load("StFttHitCalibMaker");
143  gSystem->Load("StFttClusterMaker");
144  gSystem->Load("StFttPointMaker");
145  // Fcs
146  gSystem->Load("libMinuit.so");
147  gSystem->Load("StFcsDbMaker");
148  gSystem->Load("StFcsRawHitMaker");
149  gSystem->Load("StFcsWaveformFitMaker");
150  gSystem->Load("StFcsClusterMaker");
151  gSystem->Load("StFcsPointMaker");
152  gSystem->Load("StFcsTrackMatchMaker");
153 
154  // Fst
155  gSystem->Load("StFstUtil");
156  gSystem->Load("StFstDbMaker");
157  gSystem->Load("StFstRawHitMaker");
158  gSystem->Load("StFstClusterMaker");
159  gSystem->Load("StFstHitMaker");
160 }
161 
162 void procGeoTag(TObjArray* optionTokens)
163 {
164  if (TClass::GetClass("AgBlock")) return; // arbitrarily chosen AgML class
165  loadLibsAgML();
166 
167  const char* tag = 0;
168  for (int tk=0; tk < optionTokens->GetEntries(); tk++) {
169  TString& tok = ((TObjString*) (optionTokens->At(tk)))->String();
170  if (tok.BeginsWith("y20")){
171  tag = tok.Data();
172  optionTokens->RemoveAt(tk);
173  optionTokens->Compress();
174  break;
175  }
176  }
177 
178  // Let agml know we want the ROOT geometry
179  AgModule::SetStacker( new StarTGeoStacker );
180 
181  // now pass the geometry "tag" and build. If the class StarGeometry exists, we have
182  // AgML 2.0 and can run using the new steering. Otherwise, old steering codes...
183  if (tag) {
184  if ( TClass::GetClass("StarGeometry") ) { StarGeometry::Construct( tag ); }
185  else { ( new Geometry() )->ConstructGeometry(tag); }
186  } else {
187  gMessMgr->Warning() << "No geometry tag passed! (e.g. y2017a)" << endm;
188  }
189 }
190 
191 bool findAndRemoveOption(const char* optionName, TObjArray* optionTokens)
192 {
193  TString optName = optionName;
194  optName.ToLower();
195  TObject* obj = optionTokens->FindObject(optName.Data());
196  if (obj) {
197  optionTokens->Remove(obj);
198  optionTokens->Compress();
199  return true;
200  }
201  return false;
202 }
203 
204 void genDst(unsigned int First,
205  unsigned int Last,
206  const char* options,
207  char* infile,
208  char* outfile)
209 {
210  loadLibs();
211 
212  StChain fullChain("genDst");
213  fullChain.SetDebug(1);
214 
215  StMuDstMaker muDstMaker(0, 0, "", infile, "st:MuDst.root", 1e9); // set up maker in read mode
216  // 0, 0 this means read mode
217  // dir read all files in this directory
218  // file bla.lis read all file in this list, if (file!="") dir is ignored
219  // filter apply filter to filenames, multiple filters are separated by ':'
220  // 10 maximum number of file to read
221 
222 
223  TChain& muDstChain = *muDstMaker.chain();
224  unsigned int nEntries = muDstChain.GetEntries();
225  unsigned int LastToRead = Last > 0 ? min(Last, nEntries) : nEntries;
226  gMessMgr->Info() << nEntries << " events in chain, " << LastToRead-First+1 << " will be read." << endm;
227 
228  // St_db_Maker* db = new St_db_Maker("db", "StarDb", "MySQL:StarDb", "$STAR/StarDb");
229 
230  // Initialize some values and pointers
231  StMaker* processMaker = 0;
232  TFile* outFile = 0;
233  TTree* muDstTreeOut = 0;
234 
235  // Basic decisions based on options
236  TString CasedOptions = options;
237  TString Options = options;
238  Options.ToLower();
239  TString optDelim = " ,";
240  TObjArray* optionTokens = Options.Tokenize(optDelim);
241  optionTokens->SetOwner(kTRUE);
242 
243  // Determine database flavors
244  TString flavors = "ofl"; // default flavor for offline
245 
246  // simulation flavors
247  if (findAndRemoveOption("Simu",optionTokens) && ! findAndRemoveOption("NoSimuDb",optionTokens))
248  flavors.Prepend("sim+");
249 
250  // filestream flavors
251  TObject* firstFile = muDstChain.GetListOfFiles()->At(0);
252  if (firstFile) {
253  TString firstFileName = firstFile->GetTitle();
254  firstFileName = firstFileName(firstFileName.Last('/')+1,firstFileName.Length());
255  if (firstFileName.BeginsWith("st_")) {
256  TString fileStream = firstFileName(3,firstFileName.Index('_',3)-3);
257  if (fileStream.Length()>0) flavors.Prepend(fileStream += '+');
258  }
259  }
260 
261  // gMessMgr->Info() << "Using DB flavors: " << flavors << endm;
262  // db->SetFlavor(flavors.Data());
263 
264  if (findAndRemoveOption("picodst",optionTokens)) {
265  // _________________________________________________________________
266  // Processing with generation of PicoDsts
267 
268  loadLibsPico();
269 
270  // Specify active branches but first disable all branches
271  muDstMaker.SetStatus("*", 0);
272  muDstMaker.SetStatus("MuEvent", 1);
273  muDstMaker.SetStatus("PrimaryVertices", 1);
274  muDstMaker.SetStatus("PrimaryTracks", 1);
275  muDstMaker.SetStatus("GlobalTracks", 1);
276  muDstMaker.SetStatus("CovGlobTrack", 1);
277  muDstMaker.SetStatus("BTof*", 1);
278  muDstMaker.SetStatus("Emc*", 1);
279  muDstMaker.SetStatus("MTD*", 1);
280  muDstMaker.SetStatus("ETof*", 1);
281  muDstMaker.SetStatus("Epd*", 1);
282  muDstMaker.SetStatus("Fms*", 1);
283  muDstMaker.SetStatus("MCAll", 1);
284  muDstMaker.SetStatus("Fwd*", 1);
285  muDstMaker.SetStatus("Fcs*", 1);
286  muDstMaker.SetStatus("Ftt*", 1);
287  muDstMaker.SetStatus("Fst*", 1);
288 
289  // EMCs
290  // StEEmcDbMaker* eemcDb = new StEEmcDbMaker;
291  // StEmcADCtoEMaker* adc2e = new StEmcADCtoEMaker();
292  // adc2e->saveAllStEvent(true);
293  // StPreEclMaker* pre_ecl = new StPreEclMaker();
294  // StEpcMaker* epc = new StEpcMaker();
295 
296  // FMS
297  // StFmsDbMaker* fmsDb = new StFmsDbMaker("fmsDb");
298 
299  // Trigger simulator
300  // StTriggerSimuMaker* trigSimu = new StTriggerSimuMaker;
301  // trigSimu->setMC(false);
302  // trigSimu->useBemc();
303  // trigSimu->useEemc();
304  // trigSimu->useOfflineDB();
305  // trigSimu->bemc->setConfig(StBemcTriggerSimu::kOffline);
306 
307  loadLibsFwd();
308 
309  // If you need the geometry you can load it with this:
310  // gROOT->LoadMacro("/star-sw/StarVMC/Geometry/macros/loadStarGeometry.C");
311  // loadStarGeometry( "y2023" );
312 
313  // This makes the Fcs and Ftt hits show up in StEvent,
314  // and produces an StEvent for StFwdTracks to go into
316 
317  // Re-run the FCS chain
318  StFcsDbMaker * fcsDbMk = new StFcsDbMaker();
319  // StFcsWaveformFitMaker * fcsWFF = new StFcsWaveformFitMaker();
320  // StFcsClusterMaker * fcsClu = new StFcsClusterMaker();
321  // StFcsPointMaker * fcsPoint = new StFcsPointMaker();
322 
323  // FTT chain
324  StFttDbMaker * fttDbMk = new StFttDbMaker();
325  StFttHitCalibMaker * ftthcm = new StFttHitCalibMaker();
326  StFttClusterMaker * fttclu = new StFttClusterMaker();
327  fttclu->SetTimeCut(1, -40, 40);
328  StFttPointMaker * fttpoint = new StFttPointMaker();
329 
330 
331  StFwdTrackMaker * fwdTrack = new StFwdTrackMaker();
332  fwdTrack->setConfigForData( );
333  fwdTrack->setGeoCache( "fGeom.root" );
334  fwdTrack->setSeedFindingWithFst();
335  fwdTrack->setIncludePrimaryVertexInFit(true);
336  fwdTrack->setMaxFailedHitsInFit(2);
337  fwdTrack->SetDebug(2);
338 
340  match->setMaxDistance(6,10);
341  match->setFileName("fcstrk.root");
342  match->SetDebug();
343 
344  StFwdAnalysisMaker *fwdAna = new StFwdAnalysisMaker();
345  fwdAna->SetDebug();
346  fwdAna->setLocalOutputFile( "StFwdAnalysisMaker.root");
347 
348  StFwdFitQAMaker *fwdFitQA = new StFwdFitQAMaker();
349  fwdFitQA->SetDebug();
350 
351  StFwdQAMaker *fwdQAMk = new StFwdQAMaker();
352  fwdQAMk->SetDebug(2);
353  // chain->AddAfter("fwdTrack", fwdQAMk);
354 
355  if (findAndRemoveOption("btofmatch",optionTokens)) {
356 
357  procGeoTag(optionTokens);
358  loadLibsBTof();
359 
360  // instantiate both VPD and BTOF CalibMakers and MatchMaker and point them to the MuDST
361  StBTofMatchMaker* btofMatch = new StBTofMatchMaker();
362  btofMatch->setMuDstIn();
363  StVpdCalibMaker *vpdCalib = new StVpdCalibMaker();
364  vpdCalib->setMuDstIn();
365  StBTofCalibMaker *btofCalib = new StBTofCalibMaker();
366  btofCalib->setMuDstIn();
367 
368  if (findAndRemoveOption("btofstartless",optionTokens)) {
369  //Disable the VPD as start detector, BTOF calib maker will switch to the "start-less" algorithm.
370  vpdCalib->setUseVpdStart(kFALSE);
371  }
372 
373  }
374 
375  if (findAndRemoveOption("etofmatch",optionTokens)) {
376 
377  procGeoTag(optionTokens);
378  loadLibsETof();
379 
380  // instantiate eTOF CalibMakers, HitMaker and MatchMaker
381  StETofCalibMaker* etofCalib = new StETofCalibMaker();
382  StETofHitMaker* etofHit = new StETofHitMaker();
383  StETofMatchMaker* etofMatch = new StETofMatchMaker();
384 
385  }
386 
387  if (findAndRemoveOption("mtdmatch",optionTokens)) {
388 
389  procGeoTag(optionTokens);
390  loadLibsMtd();
391 
392  StMagFMaker* magfMk = new StMagFMaker;
393  StMtdMatchMaker* mtdMatchMaker = new StMtdMatchMaker();
394  StMtdCalibMaker* mtdCalibMaker = new StMtdCalibMaker("mtdcalib");
395 
396  }
397 
398  processMaker = (StMaker*) (new StPicoDstMaker(StPicoDstMaker::IoWrite, infile, "picoDst"));
399  StPicoDstMaker *picoMk = (StPicoDstMaker*) (processMaker);
400  picoMk->setVtxMode(StPicoDstMaker::Vpd);
401  gMessMgr->Info() << "PicoSetup Complete" << endm;
402  } else if (Options.Contains("fwd")) {
403  // _________________________________________________________________
404  // Processing with new vertex-finding
405 
406  // loadLibsVF();
407 
408  // Specify inactive branches but first enable all branches
409  muDstMaker.SetStatus("*",1);
410  muDstMaker.SetStatus("PrimaryTracks",0);
411  muDstMaker.SetStatus("PrimaryVertices",0);
412 
413  // Create new branch
414  // TClonesArray* verticesRefitted = new TClonesArray("StMuPrimaryVertex", 1000);
415 
416  // Specify output
417  if (outfile) {
418  outFile = new TFile(outfile, "RECREATE");
419  } else {
420  // Use the same filename for output as was given by input
421  TString fileStr = infile;
422  Ssiz_t dir = fileStr.Last('/');
423  if (dir<0) {
424  gMessMgr->Error() << "No specification for output when input is in local directory!" << endm;
425  return;
426  }
427  fileStr.Remove(0,dir+1);
428  outFile = new TFile(fileStr.Data(), "RECREATE");
429  }
430  muDstTreeOut = muDstChain.CloneTree(0);
431  muDstTreeOut->Branch("PrimaryVertices", &verticesRefitted, 65536, 99);
432 
433  // processMaker = (StMaker*) (new StGenericVertexMaker());
434  // processMaker->ToWhiteConst("vtxArray",verticesRefitted);
435  // processMaker->SetAttr("useMuDst",1);
436 
437  } else {
438 
439  gMessMgr->Info() << "No processing specified - just reading a MuDst?" << endm;
440  // User code may be inserted here
441 
442  }
443 
444  // Set additional options (except DbV) as maker attributes
445  if (processMaker) {
446  for (int tk=0; tk < optionTokens->GetEntries(); tk++) {
447  TString& Tag = ((TObjString*) (optionTokens->At(tk)))->String();
448 
449  // copy of DbV code from StBFChain.cxx
450  if (Tag.BeginsWith("dbv")) {
451  int FDate=0,FTime=0;
452  if (Tag.Length() == 11) (void) sscanf(Tag.Data(),"dbv%8d",&FDate);
453  if (Tag.Length() == 18) (void) sscanf(Tag.Data(),"dbv%8d.%6d",&FDate,&FTime);
454  if (FDate) {
455  // db->SetMaxEntryTime(FDate,FTime);
456  // gMessMgr->Info() << "\tSet DataBase max entry time " << FDate << "/" << FTime
457  // << " for St_db_Maker(\"" << db->GetName() <<"\")" << endm;
458  }
459  continue;
460  }
461 
462  // assign attributes
463  StMaker* attrMaker = processMaker;
464  Ssiz_t delim = Tag.First(':');
465  // look for "::" to set attributes for a different maker
466  if (delim > 0 && Tag[delim+1] == ':') {
467  TString altMakerName = Tag(0,delim);
468  // GetMaker...() functions are case sensitive, so find original case
469  Ssiz_t casedMakerNameIdx = CasedOptions.Index(altMakerName,0,TString::ECaseCompare::kIgnoreCase);
470  if (casedMakerNameIdx >= 0) altMakerName = CasedOptions(casedMakerNameIdx,delim);
471  StMaker* altMaker = fullChain.GetMaker(altMakerName.Data());
472  if (!altMaker) altMaker = fullChain.GetMakerInheritsFrom(altMakerName.Data());
473  if (!altMaker) {
474  gMessMgr->Warning() << "No maker found with name or class " << altMakerName.Data() << endm;
475  continue;
476  }
477  attrMaker = altMaker;
478  Tag.Remove(0,delim+2);
479  delim = Tag.First(':');
480  }
481  if (delim < 0) {
482  attrMaker->SetAttr(Tag.Data(),1);
483  } else {
484  TString key(Tag(0,delim));
485  TString& val = Tag.Remove(0,delim+1);
486  if (val.IsDigit()) { attrMaker->SetAttr(key.Data(),val.Atoi()); }
487  else if (val.IsFloat()) { attrMaker->SetAttr(key.Data(),val.Atof()); }
488  else { attrMaker->SetAttr(key.Data(),val.Data()); }
489  }
490  }
491  processMaker->PrintAttr();
492  }
493 
494  {
495  TDatime t;
496  gMessMgr->QAInfo() << Form("Run is started at Date/Time %i/%i",t.GetDate(),t.GetTime()) << endm;
497  }
498  gMessMgr->QAInfo() << Form("Run on %s in %s",gSystem->HostName(),gSystem->WorkingDirectory()) << endm;
499  gMessMgr->QAInfo() << Form("with %s", fullChain.GetCVS()) << endm;
500 
501  gMessMgr->Info() << "Chain setup Complete" << endm;
502 
503  // Main loop over events
504  int iInit = fullChain.Init();
505  if (iInit >= kStEOF) {fullChain.FatalErr(iInit,"on init"); return;}
506  if (Last == 0) return;
507  int eventCount = 0;
508  // Skip, if any
509  if (First > 1) fullChain.Skip(First - 1);
510  for (unsigned int iEvent = First; iEvent <= LastToRead; iEvent++)
511  {
512  // make an StEvent so that Fwd can save tracks, etc.
513  // StEvent * stEv = new StEvent();
514  // fullChain.AddData( stEv );
515  fullChain.SetDebug(2);
516  fwdTrack->SetDebug(2);
517 
518  int iMake = fullChain.Make();
519  if (iMake) {fullChain.FatalErr(iMake,"on make"); return;}
520 
521  if (muDstTreeOut) muDstTreeOut->Fill();
522 
523  int iClear = fullChain.Clear();
524  if (iClear) {fullChain.FatalErr(iClear,"on clear"); return;}
525  eventCount++;
526  }
527  fullChain.Finish();
528 
529  //
530  // ATTENTION - please DO NOT change the format of the next 2 lines,
531  // they are used by our DataManagement parsers to detect a generation
532  // was succesful and thereafter Catalog the produced files.
533  // Thank you.
534  //
535  gMessMgr->QAInfo() << "NumberOfEvents= " << eventCount << endm;
536  gMessMgr->QAInfo() << "Run completed " << endm;
537 
538  if (outFile) {
539  outFile->Write();
540  outFile->Close();
541  delete outFile;
542  }
543 
544  // delete db;
545  delete processMaker;
546  delete optionTokens;
547 }
548 
549 //__________________________________________________________
550 void genDst(unsigned int Last,
551  const char* options,
552  char* infile,
553  char* outfile)
554 {
555  cout << TString::Format("genDst( %u, '%s', '%s', '%s' )", Last, options, infile, outfile ) << endl;
556  genDst(1,Last,options,infile,outfile);
557 }
558 
559 void pico(){
560  genDst(5000, "y2023a picodst PicoVtxMode:PicoVtxDefault", "/work/st_fwd_22355048_raw_1000012.MuDst.root", "PROD.root");
561 }
562 
563 void pico( TString f, int n = 500){
564  genDst(n, "y2023a picodst PicoVtxMode:PicoVtxDefault", f.Data(), "PROD.root" /*Not used?*/);
565 }
566 
568 //
569 // $Log: genDst.C,v $
570 // Revision 1.10 2022/05/12 07:16:56 weidenkaff
571 // Added eTOF support
572 //
573 // $Log: genDst.C,v $
574 // Revision 1.9 2020/10/10 07:16:56 genevb
575 // Specify makers to set attributes
576 //
577 // Revision 1.8 2020/08/19 15:27:33 genevb
578 // Add DB flavors
579 //
580 // Revision 1.7 2020/01/25 05:10:00 genevb
581 // Include DbV, more like BFC
582 //
583 // Revision 1.6 2019/09/18 17:54:48 genevb
584 // Acivate additional branches by default
585 //
586 // Revision 1.5 2019/03/21 18:53:34 jeromel
587 // Added ATTENTION message
588 //
589 // Revision 1.4 2019/01/15 17:24:29 genevb
590 // Added FMS
591 //
592 // Revision 1.3 2018/03/16 18:41:14 genevb
593 // Add BTof-matching
594 //
595 // Revision 1.2 2017/12/15 18:36:53 genevb
596 // Remove explicit function of StPicoDstMaker...params should be passed by attribute
597 //
598 // Revision 1.1 2017/12/05 16:47:58 genevb
599 // Introduce genDst.C for creating new Dsts from MuDsts
600 //
601 //
virtual TDataSet * First() const
Return the first object in the list. Returns 0 when list is empty.
Definition: TDataSet.cxx:403
Class that converts MuDst into PicoDst.
virtual void Remove(TDataSet *set)
Remiove the &quot;set&quot; from this TDataSet.
Definition: TDataSet.cxx:641
void setMaxFailedHitsInFit(int n=-1)
Sets the maximum number of hits that can be considered failed before the entire track fit fails...
void setUseVpdStart(const Bool_t val=kTRUE)
switch to force whether or not to use the VPD as the start time
void setMuDstIn(Bool_t muDstIn=kTRUE)
switch to read in StEvent/MuDst
void setMuDstIn(const bool val=kTRUE)
switch to read in StEvent/MuDst
Barrel TOF Match Maker.
void setVtxMode(const PicoVtxMode vtxMode)
Set vertex selection mode.
Definition: Stypes.h:43
Muon Telescope Detector (MTD) Match Maker.
TChain * chain()
In read mode, returns pointer to the chain of .MuDst.root files that where selected.
Definition: StMuDstMaker.h:426
void SetStatus(const char *arrType, int status)
void setGeoCache(TString gc)
Sets geometry cache filename.
void setSeedFindingWithFst()
Use Fst hits in the Seed Finding.
void setMuDstIn()
switch to read in StEvent/MuDst