From 05f3ea735fbfb48a749d89d03505f352e12416c3 Mon Sep 17 00:00:00 2001 From: perev Date: Mon, 9 Aug 2021 14:55:27 -0400 Subject: [PATCH 1/2] Star6 StTofHitMaker Move struct TofRawHit into private to avoid problems with Cling Change ClassDef(StTofHitMaker, 1) to ClassDef(StTofHitMaker, 0) again to avoid Cling problem. In the next update I will replace all maker ClassDef to 0. ClassDef non 0 means I/O for maker, which is senseless Star6 StTofHitMaker Move struct TofRawHit into private to avoid problems with Cling Change ClassDef(StTofHitMaker, 1) to ClassDef(StTofHitMaker, 0) again to avoid Cling problem. In the next update I will replace all maker ClassDef to 0. ClassDef non 0 means I/O for maker, which is senseless In ROOT6 kCanRebbib is obsolete. Star6 StQAMakerBase.cxx In class StarRoot/TH1Helper::SetCanRebin(..) was developed intead and used Look comments in St.h St.h St.cxx St::call(...) New class which support Cling macro call. In Root5 when Cint called macro from macro these maccro are called independently. When submacro is defined but not called even if such submacro does not exist or could not be called Cint is working smoothly. In Cling, all the submacros are compiled even if this submacro is not really called. In result your macro does not work if you have any problem in subbmacro, which is not even called. To solve this preoblem using gROOT->ProcessLine(...) is proposed. It is easy to do if there is no parameters. But parameters, especially with pointers is much complicated. You must convert this pointers to the addresses.In result this process line becames extremely long and unreadable. Example: gROOT->ProcessLine("subMacro(char*)0x1234567,char*)0x1234567, ....") Using method St::call it becames mor easy: char *name-...; char *name2=..; St::call("subMacro",name,name2) Class name St was selrcted only to be maximally short and simple. Arguments for St::call could are different and most popular. If it is needed to add one, class Sr could be easy changed Star6 Load.C Macro load completely rewrittem. It loads mpstly used set of classes UPD g2r Directory pams/sim/g2r removed. It is not usd anymore. It is assigned to Star6 branch because y sreange reason Cons failed there in Root6 Sure it is bug in my version of Cons. It is not fixed yet --- StRoot/StBTofUtil/StVpdSimConfig.h | 1 + StRoot/StTofHitMaker/StTofHitMaker.h | 24 ++++---- StRoot/St_QA_Maker/StQAMakerBase.cxx | 3 +- StRoot/St_base/St.cxx | 92 ++++++++++++++++++++++++++++ StRoot/St_base/St.h | 48 +++++++++++++++ StRoot/macros/Load.C | 34 +++++++--- pams/sim/g2r/g2t_rch.F | 76 ----------------------- 7 files changed, 181 insertions(+), 97 deletions(-) create mode 100644 StRoot/St_base/St.cxx create mode 100644 StRoot/St_base/St.h delete mode 100644 pams/sim/g2r/g2t_rch.F diff --git a/StRoot/StBTofUtil/StVpdSimConfig.h b/StRoot/StBTofUtil/StVpdSimConfig.h index 26176a355bd..aa81ead48a0 100644 --- a/StRoot/StBTofUtil/StVpdSimConfig.h +++ b/StRoot/StBTofUtil/StVpdSimConfig.h @@ -11,6 +11,7 @@ #include #include +#include "StMessMgr.h" #include #include "St_db_Maker/St_db_Maker.h" #include "tables/St_vpdSimParams_Table.h" diff --git a/StRoot/StTofHitMaker/StTofHitMaker.h b/StRoot/StTofHitMaker/StTofHitMaker.h index 646522a3aa2..c266273b6d7 100644 --- a/StRoot/StTofHitMaker/StTofHitMaker.h +++ b/StRoot/StTofHitMaker/StTofHitMaker.h @@ -31,18 +31,6 @@ class StTofDataCollection; class StTofHitMaker:public StRTSBaseMaker { - public: - - /// TOF Raw hits info. struct - struct TofRawHit { - unsigned short fiberid; /// 0 1 2,3 - unsigned short trayID; /// 1,2,......,120,for tray, 121, 122 for upvpd - unsigned short globaltdcchan; /// 0,1,......,191 - unsigned int tdc; /// tdc time (in bin) per hit. - unsigned int timestamp; /// data word before unpack - unsigned int triggertimestamp; /// trigger word before unpack - }; - private: StEvent *mStEvent; #ifndef __CINT__ @@ -55,6 +43,16 @@ class StTofHitMaker:public StRTSBaseMaker Int_t UnpackTofRawData(); void fillTofDataCollection(); void fillStEvent(); //! ship collection to StEvent + /// TOF Raw hits info. struct + ///---------------------------------------------------- + struct TofRawHit { + unsigned short fiberid; /// 0 1 2,3 + unsigned short trayID; /// 1,2,......,120,for tray, 121, 122 for upvpd + unsigned short globaltdcchan; /// 0,1,......,191 + unsigned int tdc; /// tdc time (in bin) per hit. + unsigned int timestamp; /// data word before unpack + unsigned int triggertimestamp; /// trigger word before unpack + }; vector TofLeadingHits; vector TofTrailingHits; @@ -87,7 +85,7 @@ class StTofHitMaker:public StRTSBaseMaker static const char cvs[]="Tag $Name: $Id: built " __DATE__ " " __TIME__ ; return cvs; } - ClassDef(StTofHitMaker, 1) ///StTofHitMaker - class to fille the StEvewnt from DAQ reader + ClassDef(StTofHitMaker, 0) ///StTofHitMaker - class to fille the StEvewnt from DAQ reader }; #endif diff --git a/StRoot/St_QA_Maker/StQAMakerBase.cxx b/StRoot/St_QA_Maker/StQAMakerBase.cxx index 39df8b3d18e..ee428b5b15d 100755 --- a/StRoot/St_QA_Maker/StQAMakerBase.cxx +++ b/StRoot/St_QA_Maker/StQAMakerBase.cxx @@ -176,12 +176,12 @@ /////////////////////////////////////////////////////////////////////////// #include "StMessMgr.h" +#include "TH1Helper.h" #include "StQAMakerBase.h" #include "StQABookHist.h" #include "QAH.h" #include "TList.h" #include "StDetectorDbMaker/St_tpcPadConfigC.h" -#include "StarRoot/TH1Helper.h" ClassImp(StQAMakerBase) @@ -593,6 +593,7 @@ void StQAMakerBase::BookHistFMS(){ title.c_str(), kNChannels, 0., kNChannels, // Channel axis bins 200, 0., kNAdc); // ADC axis bins +// h->SetBit(TH1::kCanRebin); TH1Helper::SetCanRebin(h); h->SetXTitle("slot * 32 + channel"); h->SetYTitle("ADC"); diff --git a/StRoot/St_base/St.cxx b/StRoot/St_base/St.cxx new file mode 100644 index 00000000000..22d6d92a39c --- /dev/null +++ b/StRoot/St_base/St.cxx @@ -0,0 +1,92 @@ +/*************************************************************************** + * + * $Id: St.cxx,v 1.5 2021/06/21 13:21:40 Perev Exp $ + * + *************************************************************************** + * + * Description: + * + *************************************************************************** + **************************************************************************/ +#include "St.h" +#include "TString.h" +#include "TROOT.h" +int St::mIn,St::mCn; +int St::mI[kIN+1]; +const char* St::mC[kIN+1]; + +//_______________________________________________________________________________ +ULong64_t St::Call(const char* fun) +{ + mIn=0; mCn=0; mC[kIN]=fun; + return MyCall(); +} +//_______________________________________________________________________________ +ULong64_t St::Call(const char* fun,const char* C0) +{ + mIn = 0; mCn=1; mC[kIN]=fun; + mC[0] = C0; + return MyCall(); +} +//_______________________________________________________________________________ +ULong64_t St::Call(const char* fun,const char* C0,const char* C1) +{ + mIn = 0; mCn=2; mC[kIN]=fun; + mC[0] = C0; mC[1] = C1; + return MyCall(); +} +//_______________________________________________________________________________ +ULong64_t St::Call(const char* fun,const char* C0,const char* C1,const char* C2) +{ + mIn = 0; mCn=3; mC[kIN]=fun; + mC[0] = C0; mC[1] = C1; mC[2] = C2; + return MyCall(); +} +//_______________________________________________________________________________ +ULong64_t St::Call(const char* fun,int I0) +{ + mIn = 1; mCn=0; mC[kIN]=fun; + mI[0] = I0; + return MyCall(); +} +//_______________________________________________________________________________ +ULong64_t St::Call(const char* fun,int I0,const char* C0) +{ + mIn = 1; mCn=1; mC[kIN]=fun; + mC[0] = C0; + mI[0] = I0; + return MyCall(); +} +//_______________________________________________________________________________ +ULong64_t St::Call(const char* fun,int I0,const char* C0,const char* C1) +{ + mIn = 1; mCn=2; mC[kIN]=fun; + mC[0] = C0; mC[1] = C1; + mI[0] = I0; + return MyCall(); +} +//_______________________________________________________________________________ +ULong64_t St::Call(const char* fun,int I0,const char* C0,const char* C1,const char* C2) +{ + mIn = 1; mCn=3; mC[kIN]=fun; + mC[0] = C0; mC[1] = C1; mC[2] = C2; + mI[0] = I0; + return MyCall(); +} +//_______________________________________________________________________________ +ULong64_t St::MyCall() +{ + TString ts("return "); ts += mC[kIN]; ts+="("; + for (int ii = 0; iiProcessLine(ts.Data()); +} diff --git a/StRoot/St_base/St.h b/StRoot/St_base/St.h new file mode 100644 index 00000000000..3918ddc4b8d --- /dev/null +++ b/StRoot/St_base/St.h @@ -0,0 +1,48 @@ +/*************************************************************************** + * + * $Id: St.h,v 1.2 2021/06/20 00:50:56 perev Exp $ + * + * Author: Victor Perev, Jun 2021 + *************************************************************************** + * + * Description: + * Helper for Cint/Cling + * Method Call - call script from script without full recompilation of all scripts + *************************************************************************** + * + * + **************************************************************************/ +#ifndef ST_H +#define ST_H +#include "RtypesCore.h" +#include "TObject.h" + +class St +{ +public: +enum { kIN = 9 }; +static ULong64_t Call(const char* fun); +static ULong64_t Call(const char* fun,const char* C1); +static ULong64_t Call(const char* fun,const char* C1,const char* C2); +static ULong64_t Call(const char* fun,const char* C1,const char* C2,const char* C3); + +static ULong64_t Call(const char* fun,int I0); +static ULong64_t Call(const char* fun,int I0,const char* C1); +static ULong64_t Call(const char* fun,int I0,const char* C1,const char* C2); +static ULong64_t Call(const char* fun,int I0,const char* C1,const char* C2,const char* C3); + + +private: + St(){}; + ~St(){}; +static ULong64_t MyCall(); + +static int mIn,mCn; +static int mI[kIN+1]; +static const char* mC[kIN+1]; + +ClassDef(St,0) + +}; + +#endif diff --git a/StRoot/macros/Load.C b/StRoot/macros/Load.C index c49dd20d0ad..0b9bcefab9e 100644 --- a/StRoot/macros/Load.C +++ b/StRoot/macros/Load.C @@ -4,11 +4,31 @@ // what it does: //======================================================================= -void Load(Char_t *loadList="St_base,St_Tables,StChain,StDetectorDbMaker,StBichsel,StEvent,StTpcDb,StUtilities,StDbLib,StDbBroker,St_db_Maker,StTriggerDataMaker,StEventUtilities,StBFChain"){ - TString opt(loadList); - TString separator = "[^ ;,]+"; - TObjArray *array = opt.Tokenize(separator); - TIter next(array); - while ((objs = (TObjString *) next())) {gSystem->Load(objs->GetString());} - delete array; +void Load() +{ +const char * const loadList[]={ + "St_base" +,"St_Tables" +,"StarRoot" +,"StChain" +,"StDetectorDbMaker" +,"StBichsel" +,"StarClassLibrary" +,"StEvent" +,"StEventUtilities" +,"StUtilities" +,"StTpcDb" +,"StDbLib" +,"StDbBroker" +,"St_db_Maker" +,"StTriggerDataMaker" +,"StBFChain" +,0}; + + for (int i=0;loadList[i];i++) { + TString ts(loadList[i]); + printf(" Loading %s\n",ts.Data()); + int ians = gSystem->Load(ts.Data()); + if (ians<0) printf("**Failed %s = %d\n",ts.Data(),ians); + } } diff --git a/pams/sim/g2r/g2t_rch.F b/pams/sim/g2r/g2t_rch.F deleted file mode 100644 index 8b41d4fc21e..00000000000 --- a/pams/sim/g2r/g2t_rch.F +++ /dev/null @@ -1,76 +0,0 @@ - FUNCTION G2T_RCH (g2t_track_h, g2t_track , - > g2t_rch_hit_h, g2t_rch_hit ) - IMPLICIT NONE -#include "g2t_rch.inc" -* - - - - - - - - - - Integer Lnmax - Parameter (Lnmax=50) - Integer id,trac,next,volume,IQQ(Lnmax) - Real x, xx, c, p ,r,rr,phi,the,eta,tdr,tof, - > Slen,Step,Etot,Lgam,Lpto,Elos,User,Unkn,QQ(Lnmax) - common /genhit/ id,trac,next,volume, - > x(3),xx(3),c(3),p(4),r,rr,phi,the,eta,tdr,tof, - > Slen,Step,Etot,Lgam,Lpto,Elos,User,Unkn(3) - Equivalence (QQ(1),IQQ(1),id) -* - - - - - - - - - - INTEGER G2T_RCH,G2R_GET_HIT,ISLFLAG,Iprin/0/,Idigi,Isys/0/,i,j - logical Local/.true./ -* - G2T_RCH=STAFCV_OK - if (g2t_rch_hit_h.maxlen.le.0) return -* - i=0 - g2t_rch_hit_h.nok = 0 -* open(unit=21,file='a.txt',status='unknown') - do Isys=1,2 - - if (isys.eq.1) call G2R_GET_SYS ('RICH','RGAP',Iprin,Idigi) - if (isys.eq.2) call G2R_GET_SYS ('RICH','RCSI',Iprin,Idigi) -* print *,'',Isys, ' routine ',Iprin - - if (Iprin.lt.0) goto 99 - Local = Idigi.ge.2 -* - Do While (G2R_GET_HIT('rch') .eq. 0) - i=i+1 - if (i.gt.g2t_rch_hit_h.maxlen) return - g2t_rch_hit_h.nok = i - g2t_rch_hit(i).id = id - - If (local) then - g2t_rch_hit(i).x(1) = x(1) - g2t_rch_hit(i).x(2) = x(2) - g2t_rch_hit(i).x(3) = x(3) - g2t_rch_hit(i).p(1) = c(1)*p(4) - g2t_rch_hit(i).p(2) = c(2)*p(4) - g2t_rch_hit(i).p(3) = c(3)*p(4) - else -* write(21,*) x(1),x(2),x(3),xx(1),xx(2),xx(3), -* > p(1),p(2),p(3),tof,Elos,Step, -* > ( volume+Isys*1000) - - g2t_rch_hit(i).x(1) = xx(1) - g2t_rch_hit(i).x(2) = xx(2) - g2t_rch_hit(i).x(3) = xx(3) - g2t_rch_hit(i).p(1) = p(1) - g2t_rch_hit(i).p(2) = p(2) - g2t_rch_hit(i).p(3) = p(3) - endif - g2t_rch_hit(i).tof = tof - g2t_rch_hit(i).de = Elos - g2t_rch_hit(i).ds = Step - g2t_rch_hit(i).track_p = trac - g2t_rch_hit(i).volume_id = volume+Isys*1000 -* print *,'step: ', g2t_rch_hit(i).ds -* -* add to track linked list -* -* g2t_rch_hit(i).next_tr_hit_p = g2t_track(trac).hit_rch_p -* g2t_track(trac).hit_rch_p = i -* g2t_track(trac).n_rch_hit = g2t_track(trac).n_rch_hit + 1 - - enddo - 99 enddo -* close (21) - RETURN - END From 347abdf9d20435139203f1583c029c9063ccce5e Mon Sep 17 00:00:00 2001 From: perev Date: Thu, 3 Feb 2022 18:46:51 -0500 Subject: [PATCH 2/2] Delete garbage Replace TableImpl(Bfc) by the same but with no Streamer. To avoid duplicated streamer Now ClassDef(St_Bfc,0) 0=no I/O Remove redundant flags Name of maker mmore accurate setting Add own enum { kBigNumber = 0x7FFFFFFF} to avoid Cling problemm Add temmporary Qwe() method for debbug only Add temmporary Qwe() method for debbug only Few fixes. Added .x, 0x for pointer Added std:: to be more clear Rewritten for Cling. Method ostream ==> Not tmmplate Rewritten for Cling. Method ostream ==> Not tmmplate Simplyfied KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) KFParticcle outdated, removed (YF suggests) More libs added Readme file added for new directory for Star Root6 Set of includes for often used Star classes Root logon file for Star Root6 Skip_dits macro example .rootrc for Star Root6 Initialization for Star Root6 Define CXXFLAGS exactly like in ROOT6 Add StRoot/Tabble Add rootmap option Add new file RootCling for future --- CHANGELOG.md | 159 -- StRoot/StBFChain/BFC.C | 6 +- StRoot/StBFChain/Bfc.h | 2 +- StRoot/StBFChain/StBFChain.cxx | 13 +- StRoot/StBFChain/doc/BFC.h | 1693 ++++++++++++ StRoot/StBFChain/doc/BFC2.h | 1693 ++++++++++++ StRoot/StBFChain/doc/StBFChain.cxx_doc | 173 +- StRoot/StBFChain/doc/index.html | 34 +- StRoot/StChain/StMaker.cxx | 13 +- StRoot/StMuDSTMaker/COMMON/StMuChainMaker.cxx | 14 +- .../StStrangeMuDstMaker.cxx | 6 + .../StStrangeMuDstMaker/StStrangeMuDstMaker.h | 2 + StRoot/St_base/St.cxx | 4 +- StRoot/St_base/StObject.h | 14 +- StRoot/StarClassLibrary/0.0cpp | 914 +++++++ StRoot/StarClassLibrary/StHelix.cc | 4 +- StRoot/StarClassLibrary/StThreeVector.cc | 11 +- StRoot/StarClassLibrary/StThreeVector.hh | 266 +- .../StarClassLibraryLinkDef.hh | 98 - StRoot/StarRoot/KFParticle.cxx | 350 --- StRoot/StarRoot/KFParticle.h | 916 ------- StRoot/StarRoot/KFParticleBase.cxx | 2261 ----------------- StRoot/StarRoot/KFParticleBase.h | 252 -- StRoot/StarRoot/KFVertex.cxx | 129 - StRoot/StarRoot/KFVertex.h | 119 - StRoot/StarRoot/StarRootLinkDef.h | 2 - StRoot/StiMaker/StKFEvent.cxx | 32 - StRoot/StiMaker/StKFEvent.h | 66 - StRoot/StiMaker/StKFTrack.cxx | 77 - StRoot/StiMaker/StKFTrack.h | 53 - StRoot/StiMaker/StKFVertex.cxx | 244 -- StRoot/StiMaker/StKFVertex.h | 86 - StRoot/StiMaker/StKFVertexMaker.cxx | 649 ----- StRoot/StiMaker/StKFVertexMaker.h | 94 - StRoot/StiMaker/StKFVerticesCollection.cxx | 401 --- StRoot/StiMaker/StKFVerticesCollection.h | 55 - StRoot/StiMaker/StMuDstVtxT.cxx | 44 - StRoot/StiMaker/StMuDstVtxT.h | 71 - StRoot/StiMaker/StVertexP.h | 19 - StRoot/StiMaker/StVertexT.h | 46 - StRoot/macros/Load.C | 13 +- StarEtc/0README | 30 + StarEtc/STAR.h | 18 + StarEtc/agmlupd.csh | 14 + StarEtc/rootlogon.C | 56 + StarEtc/skip_dirs.csh | 44 + StarEtc/star.rootrc | 54 + StarEtc/starroot.csh | 30 + mgr/ConsDefs.pm | 15 +- mgr/Construct | 1 + mgr/RootCint.pl | 12 +- mgr/RootCling.pl | 428 ++++ mgr/temp_gccflags.c | 0 53 files changed, 5243 insertions(+), 6557 deletions(-) delete mode 100644 CHANGELOG.md create mode 100644 StRoot/StBFChain/doc/BFC.h create mode 100644 StRoot/StBFChain/doc/BFC2.h create mode 100644 StRoot/StarClassLibrary/0.0cpp delete mode 100644 StRoot/StarRoot/KFParticle.cxx delete mode 100644 StRoot/StarRoot/KFParticle.h delete mode 100644 StRoot/StarRoot/KFParticleBase.cxx delete mode 100644 StRoot/StarRoot/KFParticleBase.h delete mode 100644 StRoot/StarRoot/KFVertex.cxx delete mode 100644 StRoot/StarRoot/KFVertex.h delete mode 100644 StRoot/StiMaker/StKFEvent.cxx delete mode 100644 StRoot/StiMaker/StKFEvent.h delete mode 100644 StRoot/StiMaker/StKFTrack.cxx delete mode 100644 StRoot/StiMaker/StKFTrack.h delete mode 100644 StRoot/StiMaker/StKFVertex.cxx delete mode 100644 StRoot/StiMaker/StKFVertex.h delete mode 100644 StRoot/StiMaker/StKFVertexMaker.cxx delete mode 100644 StRoot/StiMaker/StKFVertexMaker.h delete mode 100644 StRoot/StiMaker/StKFVerticesCollection.cxx delete mode 100644 StRoot/StiMaker/StKFVerticesCollection.h delete mode 100644 StRoot/StiMaker/StMuDstVtxT.cxx delete mode 100644 StRoot/StiMaker/StMuDstVtxT.h delete mode 100644 StRoot/StiMaker/StVertexP.h delete mode 100644 StRoot/StiMaker/StVertexT.h create mode 100644 StarEtc/0README create mode 100644 StarEtc/STAR.h create mode 100755 StarEtc/agmlupd.csh create mode 100644 StarEtc/rootlogon.C create mode 100644 StarEtc/skip_dirs.csh create mode 100644 StarEtc/star.rootrc create mode 100644 StarEtc/starroot.csh create mode 100755 mgr/RootCling.pl create mode 100644 mgr/temp_gccflags.c diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 66ab33ce6dc..00000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,159 +0,0 @@ -# Changelog - -## SL21d_0 - 2021-11-14 - -### Enhancements - -- FCS - - Updates from Tonko on StRoot/RTS/src/DAQ_FCS and TRG_FCS ([#179](https://github.com/star-bnl/star-sw/pull/179)) - - FCS db table fix (array size) ([#178](https://github.com/star-bnl/star-sw/pull/178)) - - Changing FCS Wcal and Hcal x positions in Geometry file based on run 21 survey ([#177](https://github.com/star-bnl/star-sw/pull/177)) - - Update readers for stgc and fcs ([#167](https://github.com/star-bnl/star-sw/pull/167)) - - Introduce new StFcsCosmicMaker in StRoot/SpinPool ([#58](https://github.com/star-bnl/star-sw/pull/58)) -- FST - - Initial Implement of FST Online Monitor ([#169](https://github.com/star-bnl/star-sw/pull/169)) - - Update to FST geometry to add a simplified version of the geometry for tracking ([#147](https://github.com/star-bnl/star-sw/pull/147)) -- TOF - - Move histogram creation of reference pulser outside of daQA flag ([#182](https://github.com/star-bnl/star-sw/pull/182)) - - Add good event flag to ETOF headers and StPicoEvent ([#160](https://github.com/star-bnl/star-sw/pull/160)) -- TPC - - Tuning up TpcRS for AuAu19GeV 2019 ([#184](https://github.com/star-bnl/star-sw/pull/184)) - - Add fix for fixed Target run with broken yellowIntensity information ([#180](https://github.com/star-bnl/star-sw/pull/180)) - - Dedx for fixed target in 2019 ([#175](https://github.com/star-bnl/star-sw/pull/175)) - - Averaged magnet current to set magnetic field strength ([#170](https://github.com/star-bnl/star-sw/pull/170)) - - Introduce FXT chain option to enable anything FXT-specific ([#161](https://github.com/star-bnl/star-sw/pull/161)) - - Xianglei Zhu, 09/11/2021: FXT3p85_2018 and 09/14/2021: Isobar parameters ([#156](https://github.com/star-bnl/star-sw/pull/156)) -- Online - - Adding StTriggerData2022 for new v47 trigger data structure ([#172](https://github.com/star-bnl/star-sw/pull/172)) - - update 2021 trigger data format to version 0x47 ([#171](https://github.com/star-bnl/star-sw/pull/171)) - - StEvent/StTriggerData : Adding 3 access functions for revTick ([#183](https://github.com/star-bnl/star-sw/pull/183)) -- Add Anti-H4 Lambda decay to Anti-He4 + pion- ([#176](https://github.com/star-bnl/star-sw/pull/176)) -- Geometry update for 2022 ([#173](https://github.com/star-bnl/star-sw/pull/173)) -- StJetMaker: add idTruth to StJetTrack ([#152](https://github.com/star-bnl/star-sw/pull/152)) -- Use std::ostringstream in place of STARs ostrstream ([#150](https://github.com/star-bnl/star-sw/pull/150), [#165](https://github.com/star-bnl/star-sw/pull/165), [#168](https://github.com/star-bnl/star-sw/pull/168)) -- Fix dependency of STAR geometry libraries on generated source files ([#148](https://github.com/star-bnl/star-sw/pull/148)) -- Various changes to make code compatible with ROOT6 API ([#47](https://github.com/star-bnl/star-sw/pull/47)) -- Updated CI - - Build against ROOT6 in addition to ROOT5; switch to multistage docker build; optimize base image ([#75](https://github.com/star-bnl/star-sw/pull/75)) - - Add test jobs to CI ([#112](https://github.com/star-bnl/star-sw/pull/112), [#106](https://github.com/star-bnl/star-sw/pull/106), [#71](https://github.com/star-bnl/star-sw/pull/71)) - - Fix compiler errors and include previously excluded packages into CI build - - StRoot/StSpinPool ([#63](https://github.com/star-bnl/star-sw/pull/63)) - - StarVMC/GeoTestMaker ([#72](https://github.com/star-bnl/star-sw/pull/72)) - - StRoot/StEEmcPool ([#83](https://github.com/star-bnl/star-sw/pull/83)) - - StRoot/StFgtPool ([#86](https://github.com/star-bnl/star-sw/pull/86), [#93](https://github.com/star-bnl/star-sw/pull/93)) - - StRoot/StHighptPool ([#87](https://github.com/star-bnl/star-sw/pull/87)) - - StRoot/StarGenerator/Kinematics ([#96](https://github.com/star-bnl/star-sw/pull/96)) - - StRoot/StHbtMaker ([#98](https://github.com/star-bnl/star-sw/pull/98)) - -### Miscellaneous - -- Fix file name conflicts on case insensitive systems ([#48](https://github.com/star-bnl/star-sw/pull/48)) -- Remove deprecated StRoot/StSpinMaker ([#66](https://github.com/star-bnl/star-sw/pull/66)) -- Cons build scripts cleanup ([#99](https://github.com/star-bnl/star-sw/pull/99), [#62](https://github.com/star-bnl/star-sw/pull/62)) -- Address compiler warning about set but not used variables in StRoot/StEEmcPool ([#104](https://github.com/star-bnl/star-sw/pull/104)) -- Update SCGL macro ([#105](https://github.com/star-bnl/star-sw/pull/105)) -- cons: Skip uncompilable package StShadowMaker ([#69](https://github.com/star-bnl/star-sw/pull/69)) - - -## SL21c_5 - 2021-10-08 - -### star-mcgen - -- StarPythia8 path to XML data ([#3](https://github.com/star-bnl/star-sw/pull/3)) -- Fix initialization of Hijing interface ([#5](https://github.com/star-bnl/star-sw/pull/5)) - - -## SL21c_4 - 2021-10-08 - -- fixed a logical error for the PicoVtxMod::Mtd in StPicoDstMaker.cxx ([#163](https://github.com/star-bnl/star-sw/pull/163)) - - -## SL21c_3 - 2021-09-16 - -- let StBTofSimResParams.h to use existed timestamp in bfc chain, instead of re-define a new timestamp ([#145](https://github.com/star-bnl/star-sw/pull/145)) - - -## SL21c_2 - 2021-08-24 - -- Add new BFC option for StPicoDstMaker: PicoVtxMtd ([#116](https://github.com/star-bnl/star-sw/pull/116)) - - -## SL21c_1 - 2021-08-20 - -- Add local DB parameters for TpcRS 26p5GeV_fixedTarget_2018 ([#107](https://github.com/star-bnl/star-sw/pull/107), [#88](https://github.com/star-bnl/star-sw/pull/88)) -- Change BTOF and VPD chain option names to something more descriptively useful ([#84](https://github.com/star-bnl/star-sw/pull/84)) -- StJetMaker: save additional TOF information to the jet trees ([#79](https://github.com/star-bnl/star-sw/pull/79)) -- TpcRS will need StEventUtilities lib for EbyET0 ([#78](https://github.com/star-bnl/star-sw/pull/78)) - - -## SL21c_0 - 2021-07-29 - -First release after code transfer to Git - -### Enhancements - -- Employ initial CI build based on a Docker container with Spack environment ([#37](https://github.com/star-bnl/star-sw/pull/37)) -- Introduce run time switch for dN/dx calculations in StRoot/StdEdxY2Maker ([#52](https://github.com/star-bnl/star-sw/pull/52)) -- Improve pp and pA handling in StRoot/StBTofCalibMaker -- Update centrality bins in StRoot/StRefMultCorr -- Enhance cons scripts to allow more control over external dependencies location ([#8](https://github.com/star-bnl/star-sw/pull/8)) -- Introduce .github/CODEOWNERS -- Add new data member to mark all primary tracks in StPicoTrack ([#34](https://github.com/star-bnl/star-sw/pull/34)) -- Event-by-event T0 correction applied in StTpcHitMoverMaker (reconstruction) - must by un-corrected in StTpcRSMaker (simulation) ([#76](https://github.com/star-bnl/star-sw/pull/76)) - -### Bug fixes - -- Fix pre Run 13 BTOF geometry by properly accounting valid trays and GEM-trays -- Fix memory leak introduced in SL21b (Issue [#21](https://github.com/star-bnl/star-sw/pull/21)) -- Fix BTOF tray indexing issue; Select params based on run number ([#65](https://github.com/star-bnl/star-sw/pull/65)) - -### API changes - -- Remove outdated `StAutoBrowse` and related public methods ([#6](https://github.com/star-bnl/star-sw/pull/6)): - - void StObject::Browse(TBrowser *tb) - Bool_t StObject::IsFolder() const - void StEmcDetector::Browse(TBrowser *b) - void StEvent::Browse(TBrowser* b) - -### Miscellaneous - -- Multiple changes in StRoot/StTpcHitMaker - -### star-mcgen - -- Move pams/gen/idl from star-mcgen repo to star-sw - - -## SL21b_v2 - 2021-04-02 - -### Enhancements - -- Introduce StFwdTrackMaker package for track reconstruction with Forward - Tracking System (FTS) -- Introduce fast simulators for FTS silicon-strip and small-strip Thin Gap - Chamber (sTGC) detectors -- New code for handling Forward Calorimeter data and simulation (StRoot/StFcs*) - -### Miscellaneous - -- Unreviewed commits submitted to StRoot/StTpcDb - - -## SL21b - 2021-03-24 - -- Event-by-event T0 corrections for TPC -- Add new BFC option for selecting a vertex in pico events: PicoVtxVpdOrDefault -- Save MC track and MC vertex information in PicoDst -- Provide initial revision for new y2021a geometry - - -## SL21a - 2021-02-08 - -### Enhancements - -- Update older geometries: y2018c, y2019b, and y2020b -- Updates to FST geometry (StarVMC/Geometry/FstmGeo/FstmGeo.xml) -- New code to support FCS commissioning - - StEvent data structures, database, and online DAQ support for the new system diff --git a/StRoot/StBFChain/BFC.C b/StRoot/StBFChain/BFC.C index 0d9805467cc..b44561b9f72 100644 --- a/StRoot/StBFChain/BFC.C +++ b/StRoot/StBFChain/BFC.C @@ -3,7 +3,11 @@ #endif #include "Bfc.h" #if !defined(__CINT__) -TableImpl(Bfc); +//TableImpl(Bfc); +//#define TableImpl(name) \ + TTableDescriptor *_NAME2_(St_,name)::fgColDescriptors = 0; \ + TableClassImp(_NAME2_(St_,name), _NAME2_(name,_st)) +// TableClassStreamerImp(_NAME2_(St_,name)) #endif #include "BigFullChain.h" TDataSet *CreateTable() { diff --git a/StRoot/StBFChain/Bfc.h b/StRoot/StBFChain/Bfc.h index 4f63fa8d56e..ce5a1e1259e 100644 --- a/StRoot/StBFChain/Bfc.h +++ b/StRoot/StBFChain/Bfc.h @@ -28,7 +28,7 @@ typedef std::vector StVecBFCTS; class St_Bfc : public TTable { public: ClassDefTable(St_Bfc,Bfc_st) - ClassDef(St_Bfc,1) //C++ container for chain/makers status + ClassDef(St_Bfc,0) //C++ container for chain/makers status }; #endif /* __Bfc_st__ */ diff --git a/StRoot/StBFChain/StBFChain.cxx b/StRoot/StBFChain/StBFChain.cxx index f29e1100142..fe8c0ae0bf5 100644 --- a/StRoot/StBFChain/StBFChain.cxx +++ b/StRoot/StBFChain/StBFChain.cxx @@ -638,11 +638,14 @@ Int_t StBFChain::Instantiate() } if (maker == "StStrangeMuDstMaker" && GetOption("CMuDST")&& GetOption("StrngMuDST") ) { - TString cmd(Form("StStrangeMuDstMaker *pSMMk = (StStrangeMuDstMaker*) %p;",mk)); - cmd += "pSMMk->DoV0();"; // Set StrangeMuDstMaker parameters - cmd += "pSMMk->DoXi();"; - cmd += "pSMMk->DoKink();"; - cmd += "pSMMk->SetNoKeep();"; // Set flag for output OFF +printf ("UUU Mk = %p\n",mk); +ProcessLine("StStrangeMuDstMaker::Qwe()"); + TString cmd(Form("StStrangeMuDstMaker *pSMMk = (StStrangeMuDstMaker*)%pUL;",mk)); +printf("UUUUU mk=%s\n",mk->GetName()); +//?? cmd += "pSMMk->DoV0();"; // Set StrangeMuDstMaker parameters +//?? cmd += "pSMMk->DoXi();"; +//?? cmd += "pSMMk->DoKink();"; +//?? cmd += "pSMMk->SetNoKeep();"; // Set flag for output OFF ProcessLine(cmd); } diff --git a/StRoot/StBFChain/doc/BFC.h b/StRoot/StBFChain/doc/BFC.h new file mode 100644 index 00000000000..84af04be45d --- /dev/null +++ b/StRoot/StBFChain/doc/BFC.h @@ -0,0 +1,1693 @@ +Bfc_st BFC[] = { + {"Key" ,"Name" ,"Chain" ,"Opts" ,"Maker","Libs","Comment",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"TIME STAMPS ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"RY2008","","","db,detDb,NosvtIT,NossdIT" ,"","","y2008 for dAu run",kFALSE}, + {"RY2009","","","db,detDb,NosvtIT,NossdIT" ,"","","y2009 for p+p run",kFALSE}, + {"ForceGeometry","","","","","", "Force geometry to overwrite the geometry coming from fz-file", kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Valid Db ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"NoDb" ,"" ,"","-db,-tpcDb,-magF" ,"","","Take out Db from Chain",kFALSE}, + {"DbV" ,"" ,"","db,ry1h" ,"","","19940614/0 Db Version for none",kFALSE}, + {"DbV0614" ,"" ,"","db,ry1h" ,"","","20000614/0 Db Version for p00hd",kFALSE}, + {"DbV0624" ,"" ,"","db,ry1h" ,"","","20000624/0 Db Version for p00hd_1",kFALSE}, + {"DbV0713" ,"" ,"","db,ry1h" ,"","","20000713/0 Db Version for p00he",kFALSE}, + {"DbV0727" ,"" ,"","db,ry1h" ,"","","20000727/0 Db Version for p00he",kFALSE}, + {"DbV0819" ,"" ,"","db,ry1h" ,"","","20000819/0 Db Version for p00hg",kFALSE}, + {"DbV1123" ,"" ,"","db,ry1h" ,"","","20001123/0 Db wo TpcDriftVel. from StTpcT0Maker",kFALSE}, + {"DbV0523" ,"" ,"","db,ry1h" ,"","", "20010523/0 Db Version for p01he",kFALSE}, + {"DbV1007" ,"" ,"","db,ry1h" ,"","", "20011007/0 Db Version for p01hi",kFALSE}, + {"DbV1107" ,"" ,"","db,ry1h" ,"","", "20011107/0 Db Version for pass1 p01gk",kFALSE}, + {"DbV1211" ,"" ,"","db,ry1h" ,"","", "20011211/0 Db Version for prod p01gl",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Geometry ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"ideal", "", "","", "", "", "Ideal Alignment", kFALSE}, + {"misalign", "", "","", "","-AgMLideal", "Misaligned Geometry", kFALSE}, + {"AgMLutil", "", "","", "","StarAgmlUtil", "AgML support", kFALSE}, + {"AgMLlib", "", "","", "","StarAgmlUtil,StarAgmlLib", "AgML support", kFALSE}, + {"AgML" ,"" ,"","AgMLlib,-Agi,-VmcGeo","","Geometry,StarGeometry" + , "Alias VmcGeometry to AgiLGeometry",kFALSE}, + {"Agi" ,"" ,"","-VmcGeo","","" ,"Alias VmcGeometry to AgiGeometry (gstar original geometry)",kFALSE}, + {"VmcGeo" ,"" ,"","-AgML,-Agi" ,"","" ,"Alias VmcGeometry to VmcGeo",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Trigger Type","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Physics" ,"","","", "","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"LaserTest" ,"","","", "","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"PulserSvt" ,"","","", "","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"alltrigger" ,"","","", "","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"phys_off" ,"","","" ,"","","Turn off physics in simulation",kFALSE}, + {"hadr_off" ,"","","" ,"","","Turn off hadronic interactions in simulation",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"C H A I N S ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Calibration chains","------------","-----------","-----------------------------------","","","",kFALSE}, + {"LanaDV", "","","LanaDVtpx","","" ,"get LDV",kFALSE}, + {"LanaDVtpx","","","MakeEvent,trgd,in,tpx,TpcHitMover,LaserIT,VFMinuit,Lana,Analysis,Corr4,NosvtIT,NossdIT", + "","" ,"get LDV with TPX",kFALSE}, + {"LaserDV.Chain","","","in,LaserCal,fcf,TpcHitMover,OGridLeak3D,OShortR,OSpaceZ2","","","get LDV",kFALSE}, + {"Test.default.ITTF","","","TpcRS,Simu,sss,svt,ssd,fss,bbcSim,IdTruth,MakeEvent,genvtx," + "miniMcMk,McAna,Test.reco.ITTF,CMuDst" ,"","","",kFALSE}, + {"Test.default.y2005g.ITTF","","","Test.default.ITTF,sdt20050130,noSimuDb" ,"","","",kFALSE}, + {"Test.default.y2007g.ITTF","","","Test.default.ITTF,sdt20070322,noSimuDb" ,"","","",kFALSE}, + {"Test.fast.y2005g.ITTF","","","Test.fast.ITTF,sdt20050130,noSimuDb" ,"","","",kFALSE}, + {"Test.reco.StiVMC","","","MakeEvent,tpcI,tcl,ftpc,SvtCL,Test.StiVMC" ,"","","",kFALSE}, + {"Test.default.StiVMC","","","TpcRS,Simu,sss,svt,ssd,fss,bbcSim,IdTruth,MakeEvent," + "miniMcMk,McAna,Test.reco.StiVMC,CMuDst" ,"","","",kFALSE}, + {"Test.StiVMC","","","TpcRS,StiVMC,event,analysis,tags,EvOut,StarMagField,FieldOn,Idst,CMuDst" + , "","","",kFALSE}, + {"Test.VeryFast.StiVMC","","","TpcFastSim,Simu,sfs,ssdfast,McEvOut,GeantOut,IdTruth,miniMcMk,McAna," + "SvtCL,tpc_T,globT,tls,db,tpcDB,svtDb,svtIT,ssdIT,StiVMC,Idst,event,analysis,EventQA,tags," + "EvOut,StarMagField,FieldOn,IAna,CMuDst" ,"","","",kFALSE}, + {"Test.fast.StiVMC","","","tfs,Simu,sfs,ssdfast,McEvOut,GeantOut,IdTruth,miniMcMk,McAna,SvtCL," + "tpc_T,globT,tls,db,tpcDB,svtDb,StiVMC,Idst,event,analysis,EventQA,tags,EvOut," + "StarMagField,FieldOn,IAna,CMuDst" ,"","","",kFALSE}, + {"Test.fast.y2007g.ITTF","","","Test.fast.ITTF,sdt20070322,noSimuDb" ,"","","",kFALSE}, + {"Test.VeryFast.y2005g.ITTF","","","Test.VeryFast.ITTF,sdt20050130,noSimuDb" ,"","","",kFALSE}, + {"Test.VeryFast.y2007g.ITTF","","","Test.VeryFast.ITTF,sdt20070322,noSimuDb" ,"","","",kFALSE}, + {"Test.default.StiVMC","","","TpcRS,Simu,sss,svt,ssd,fss,bbcSim,IdTruth,MakeEvent," + "miniMcMk,McAna,Test.reco.ITTF,CMuDst" ,"","","",kFALSE}, + {"Test.y2009.ITTF","","","Test.default.ITTF,y2009,TpcRS,sdt20090428.141700" ,"","","",kFALSE}, + {"Test.y2009.StiVMC","","","Test.default.StiVMC,y2009,TpcRS,sdt20090428.141700,noSimuDb","","","",kFALSE}, + {"Test.fast.y2005g.StiVMC","","","Test.fast.StiVMC,sdt20050130,noSimuDb" ,"","","",kFALSE}, + {"Test.VeryFast.y2005g.StiVMC","","","Test.VeryFast.StiVMC,sdt20050130,noSimuDb" ,"","","",kFALSE}, + {"Test.VeryFast.y2007g.StiVMC","","","Test.VeryFast.StiVMC,sdt20070322,noSimuDb" ,"","","",kFALSE}, + {"Test.default.Fast.ITTF","","","tfs,sfs,ssdFast,IdTruth,MakeEvent,miniMcMk,Test.ITTF", "","","",kFALSE}, + {"Test.srs.ITTF","","", "TpcRS,Simu,srs,svt,ssd,fss,bbcSim,emcY2,McEvOut,GeantOut,IdTruth," + "miniMcMk,McAna,Test.reco.ITTF,CMuDst" ,"","","",kFALSE}, + {"Test.ITTF","","","svtIT,ssdIT,ITTF,event,analysis,EventQA,tags,EvOut,StarMagField,FieldOn" + ",IDST,CMuDst,analysis" ,"","","",kFALSE}, + {"Test.reco.ITTF","","","MakeEvent,tpcI,tcl,ftpc,SvtCL,Test.ITTF" ,"","","",kFALSE}, + {"Test.fast.ITTF","","","tfs,Simu,sfs,ssdfast,McEvOut,GeantOut,IdTruth,miniMcMk,McAna,SvtCL," + "tpc_T,globT,tls,db,tpcDB,svtDb,svtIT,ssdIT,ITTF,Idst,event,analysis,EventQA,tags,EvOut," + "StarMagField,FieldOn,IAna,CMuDst" ,"","","",kFALSE}, + {"Test.VeryFast.ITTF","","","TpcFastSim,Simu,sfs,ssdfast,McEvOut,GeantOut,IdTruth,miniMcMk,McAna," + "SvtCL,tpc_T,globT,tls,db,tpcDB,svtDb,svtIT,ssdIT,ITTF,Idst,event,analysis,EventQA,tags," + "EvOut,StarMagField,FieldOn,IAna,CMuDst" ,"","","",kFALSE}, + {"nightly test (dev) chains","-----------","-----------","----------------------------","","","", kFALSE}, + {"MC----------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"MC.y2000" ,"","","trs,rrs,y1h,Idst,rich,IAna,l0,tpcI,tpxClu,NosvtIT,NossdIT," + "-Kink2,VFMinuit,geant,evout,IdTruth,tags,GeantOut,big" ,"","","",kFALSE}, + {"MC.y2001" ,"","","trs,fss,rrs,y2001n,Idst,rich,IAna,l0,tpcI,tpxClu,ftpc,-Kink2," + "VFMinuit,geant,evout,IdTruth,tags,emcY2,GeantOut,big" ,"","","",kFALSE}, + {"MC.pp.y2001" ,"","","trs,rrs,fss,y2001n,Idst,rich,IAna,l0,tpcI,tpxClu,ftpc,-Kink2," + "VFMinuit,geant,evout,IdTruth,tags,emcY2,MiniMcMk,GeantOut,big" ,"","","",kFALSE}, + {"MC.y2003" ,"","","trs,fss,y2003,Idst,IAna,l0,tpcI,tpxClu,ftpc,VFMinuit,bbcSim,tofsim," + "tags,emcY2,evout,IdTruth,geantout" ,"","","",kFALSE}, + {"MC.y2004" ,"","","trs,srs,fss,y2004,Idst,BAna,l0,tpcI,tpxClu,ftpc,VFMinuit,SvtIt,geant,evout," + "tags,bbcSim,tofsim,emcY2,EEfs,GeantOut,big" ,"","","",kFALSE}, + {"MC.y2004a" ,"","","trs,srs,fss,y2004a,Idst,BAna,l0,tpcI,tpxClu,ftpc,VFMinuit,SvtIT,geant" + ",tags,bbcSim,tofsim,emcY2,EEfs,evout,GeantOut,big" ,"","","",kFALSE}, + {"MC.y2005" ,"","","trs,srs,fss,ssd,y2005x,Idst,IAna,l0,tpcI,tpxClu,ftpc,SvtCL,svtDb," + "SsdIt,SvtIt,VFMinuit,geant,evout,tags,bbcSim,tofsim,emcY2,EEfs,GeantOut,big" + , "","","",kFALSE}, + {"MC.y2006" ,"","","trs,fss,y2006h,Idst,IAna,l0,tpcI,tpxClu,ftpc,VFMinuit,NoSsdIt,NoSvtIt" + ",MakeEvent,bbcSim,tofsim,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.y2007" ,"","","trs,srs,ssd,fss,y2007,Idst,BAna,tpcI,tpxClu,ftpc,SvtIt,SsdIt," + "VFMinuit,MakeEvent,IdTruth,geant,tags,bbcSim,tofsim,emcY2,EEfs,evout,GeantOut,big" + "" ,"","","",kFALSE}, + {"MC.y2008" ,"","","trs,fss,y2008a,Idst,IAna,tpcI,tpxClu,ftpc,VFMinuit,NoSsdIt,NoSvtIt" + ",MakeEvent,bbcSim,tofsim,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.in.y2008" ,"","","in,y2008e,FieldOn,ReverseField,Idst,BAna,ftpcT,fpt,NoSsdIt," + "NoSvtIt,VFMinuit,tpcDB,MakeEvent,IdTruth,tags,bbcsim,emcY2,EEfs,evout,big,McEvout,MiniMcMk," + "ReadAll" ,"","","",kFALSE}, + {"MC.in.y2009" ,"","","in,y2009c,FieldOn,ReverseField,Idst,BAna,ftpcT,fpt,NoSsdIt," + "NoSvtIt,VFMinuit,tpcDB,MakeEvent,IdTruth,tags,bbcsim,emcY2,EEfs,evout,big,McEvout,MiniMcMk," + "ReadAll" ,"","","",kFALSE}, + {"MC.y2009" ,"","","TpcRS,TpxClu,fss,y2009,Idst,IAna,tpcI,ftpc,VFMinuit,NoSsdIt,NoSvtIt" + ",MakeEvent,bbcSim,tofsim,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.y2009a" ,"","","TpcRS,TpxClu,fss,y2009a,Idst,IAna,tpcI,ftpc,VFMinuit,NoSsdIt,NoSvtIt," + "MakeEvent,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.y2010a" ,"","","TpcRS,TpxClu,y2010a,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB," + "TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.y2010" ,"","","TpcRS,TpxClu,y2010,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB," + "TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big", "","","",kFALSE}, + {"MC.fast.pp.y2011","","","y2011,Test.default.Fast.ITTF,bbcSim,btofsim,btofMatch,emcY2,emcSim,EEfs," + "NosvtIT,NossdIT,-sfs,-ssdFast,VFPPVnoCTB,beamline" ,"","","",kFALSE}, + {"MC.in.y2010" ,"","","in,y2010c,FieldOn,ReverseField,Idst,BAna,ftpcT,fpt,NoSsdIt," + "NoSvtIt,VFMinuit,tpcDB,MakeEvent,IdTruth,tags,bbcsim,emcY2,EEfs,evout,big,McEvout,MiniMcMk," + "ReadAll" ,"","","",kFALSE}, + {"MC.y2011" ,"","","TpcRS,TpxClu,y2011,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB" + ",TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.fast.y2011" ,"","","y2011,Test.default.Fast.ITTF,NosvtIT,NossdIT,-sfs,-ssdFast," + "VFPPVnoCTB,beamline,emcy2" ,"","","",kFALSE}, + {"MC.in.y2011" ,"","","in,y2011,FieldOn,ReverseField,Idst,BAna,ftpcT,fpt,NoSsdIt,NoSvtIt," + "VFMinuit,tpcDB,MakeEvent,IdTruth,tags,bbcsim,emcY2,EEfs,evout,big,McEvout,MiniMcMk,ReadAll" + , "","","",kFALSE}, + {"MC.y2012" ,"","","TpcRS,TpxClu,y2012,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB," + "TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.y2012a" ,"","","TpcRS,TpxClu,y2012a,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB," + "TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.y2012.eval" ,"","","in,y2012,FieldOn,ReverseField,Idst,BAna,ftpcT,fpt,NoSsdIt,NoSvtIt" + ",VFMinuit,tpcDB,MakeEvent,IdTruth,tags,bbcsim,emcY2,EEfs,evout,big,McEvout,MiniMcMk,ReadAll" + , "","","",kFALSE}, + {"MC.y2013" ,"","","TpcRS,TpxClu,y2013_1x,useXgeom,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB," + "TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big", "","","",kFALSE}, + {"MC.y2014" ,"","","TpcRS,TpxClu,y2014,useXgeom,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB," + "TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big", "","","",kFALSE}, + {"RC----------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"RC.y2000" ,"","","p2000,VFMinuit,CMuDst,NosvtIT,NossdIT" ,"","","",kFALSE}, + {"RC.y2001" ,"","","P2001a,VFMinuit,ZDCvtx,CMuDst,NosvtIT,NossdIT" ,"","","",kFALSE}, + {"RC.pp.y2001" ,"","","pp2001a,VFMinuit,CMuDst,NossdIT" ,"","","",kFALSE}, + {"RC.pp.y2001.ppv" ,"","","pp2001a,VFPPV,beamLine,CMuDst,NossdIT" ,"","","",kFALSE}, + {"RC.y2003" ,"","","DbV20040520,dau2003i,in,-SvtIT,NossdIT" ,"","","",kFALSE}, + {"RC.pp.y2003.VFPPV" ,"","","pp2003,VFPPV,beamLine,CMuDst,-svtIT,NossdIT,Corr2,v0,xi","","","",kFALSE}, + {"RC.y2004" ,"","","P2004,DbV20041213" ,"","","",kFALSE}, + {"RC.y2004.NoSvt" ,"","","P2004,DbV20041213,-SsdIt,-SvtIt,pmdRaw" ,"","","",kFALSE}, + {"RC.y2004.NoSvt.pmd" ,"","","P2004,DbV20041213,pmdRaw,-SvtIT,-SsdIT" ,"","","",kFALSE}, + {"RC.pp.y2004" ,"","","pp2004,DbV20041213,beamLine" ,"","","",kFALSE}, + {"RC.y2005" ,"","","P2005,tofDat,MakeEvent,ssddat,sptd,SsdIt,SvtIt,pmdRaw,OShortR,OSpaceZ2" + , "","","",kFALSE}, + {"RC.pp.y2005" ,"","","pp2005a,tofdat,OSpaceZ2,OGridLeak3D" ,"","","",kFALSE}, + {"RC.pp.y2006" ,"","","pp2006b,OSpaceZ2,OGridLeak3D" ,"","","",kFALSE}, + {"RC.y2007" ,"","","DbV20080418,B2007g,IAna,KeepSvtHit,hitfilt,VFMinuit3,emcDY2,ftpc,trgd," + "ZDCvtx,svtIT,ssdIT,Corr4,OSpaceZ2,OGridLeak3D" ,"","","",kFALSE}, + {"RC.y2007.NoSvt" ,"","","DbV20080418,B2007g,IAna,KeepSvtHit,hitfilt,VFMinuit3,emcDY2,ftpc," + "trgd,ZDCvtx,Corr4,OSpaceZ2,OGridLeak3D" ,"","","",kFALSE}, + {"RC.y2008" ,"","","DbV20080712,P2008,OSpaceZ2,OGridLeak3D,beamLine" ,"","","",kFALSE}, + {"RC.y2008.notof" ,"","","DbV20080712,P2008,-ToF,-tofDat,-tofrMatch,-tofpMatch,-tofCalib,OSpaceZ2," + "OGridLeak3D,beamLine" ,"","","",kFALSE}, + {"RC.pp.y2008" ,"","","DbV20080712,pp2008,OSpaceZ2,OGridLeak3D,beamLine" ,"","","",kFALSE}, + {"RC.pp.y2008.Minuit","","","DbV20080712,pp2008,-VFPPV,VFMinuit,-ToF,-tofDat,-tofrMatch,-tofpMatch," + "-tofCalib,OSpaceZ2,OGridLeak3D,beamLine" ,"","","",kFALSE}, + {"RC.pp.y2009" ,"","","pp2009c,VFMinuit,beamLine,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D" + , "","","",kFALSE}, + {"RC.pp.y2009.notof","","","pp2009c,VFMinuit,beamLine,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D" + , "","","",kFALSE}, + {"RC.pp.y2009.VFPP","","","pp2009c,VFPPVnoCTB,beamLine,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D" + , "","","",kFALSE}, + {"RC.y2010" ,"","","P2010a,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D,pmdReco", "","","",kFALSE}, + {"RC.y2010.notof" ,"","","P2010a,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D" ,"","","",kFALSE}, + {"RC.pp.y2011.VFPPV","","","pp2011a,VFPPVnoCTB,beamline,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D," + "-hitfilt" ,"","","",kFALSE}, + {"RC.pp.y2011","","","pp2011a,VFMinuit,beamline,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt" + , "","","",kFALSE}, + {"RC.y2011" ,"","","P2011a,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt,pmdReco,mtdDat" + , "","","",kFALSE}, + {"RC.y2011.notof" ,"","","P2011a,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt,pmdReco,mtdDat" + , "","","",kFALSE}, + {"RC.y2012" ,"","","P2012a,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt,mtdDat,fmsDat" + , "","","",kFALSE}, + {"RC.y2012.notof" ,"","","P2012a,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt", "","","",kFALSE}, + {"RC.pp.y2012" ,"","","pp2012a,VFPPVnoCTB,beamline,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D," + "-hitfilt,mtdDat,fmsDat", "","","",kFALSE}, + {"RC.pp.y2012.notof","","","pp2012a,VFPPVnoCTB,beamline,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D," + "-hitfilt", "","","",kFALSE}, + {"RC.pp.y2012.notofMin","","","pp2012a,VFMinuit,beamline,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D" + ",-hitfilt", "","","",kFALSE}, + {"RC.y2012b" ,"","","P2012b,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt,mtdDat,fmsDat" + , "","","",kFALSE}, + {"RC.y2012b.notof" ,"","","P2012b,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt", "","","",kFALSE}, + {"RC.pp.y2012b" ,"","","pp2012b,VFPPVnoCTB,beamline,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D," + "-hitfilt,mtdDat,fmsDat", "","","",kFALSE}, + {"RC.pp.y2012b.notof","","","pp2012b,VFPPVnoCTB,beamline,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D" + ",-hitfilt", "","","",kFALSE}, + {"RC.pp.y2012b.notofMin","","","pp2012b,VFMinuit,beamline,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D" + ",-hitfilt", "","","",kFALSE}, + {"RC.pp.y2012b.notofMin","","","pp2012b,VFMinuit,beamline,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D" + ",-hitfilt", "","","",kFALSE}, + {"RC.pp.y2013","","","pp2013a,mtd,btof,fmsDat,fgt,fgtPoint,VFPPVnoCTB,beamline,BEmcChkStat,Corr4," + "OSpaceZ2,OGridLeak3D,-hitfilt", "","","",kFALSE}, + {"RC.y2014","","","P2014a,mtd,btof,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt", "","","",kFALSE}, + {"MC nightlies and Eval","--","-----------","------------------------------------------","","","",kFALSE}, + {"test_MC.stan.y2000","","","MC.y2000,Sti,fzin,MiniMcMk","","" + ,"/star/rcf/simu/cocktail/hadronic/default/standard/year_1h/half_field/hadronic_on/Gstardata/" + "hc_standard.40_evts.fz", kFALSE}, + {"test_MC.pp.y2001","","","MC.pp.y2001,Sti,fzin,MiniMcMk","","" + ,"/star/rcf/simu/pp200/pythia/default/minbias/year2001/hadronic_on/gstardata/pds0200_04_12812evts.fzd" + , kFALSE}, + {"test_MC.stan.y2001","","","MC.y2001,Sti,fzin,MiniMcMk","","" + ,"/star/rcf/simu/cocktail/hadronic/default/standard/year2001/hadronic_on/Gstardata/hc_standard.40_evts.fz" + , kFALSE}, + {"test_dau.MC.y2003" ,"","","MC.y2003,Sti,fzin,MiniMcMk","" + , "","/star/rcf/simu/rcf1197_05_5940evts.fzd",kFALSE}, + {"test_auauCtr.MC.y2004" ,"","","MC.y2004a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1209_05_80evts.fzd",kFALSE}, + {"test_auau.MC.y2004" ,"","","MC.y2004,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1207_01_225evts.fzd",kFALSE}, + {"test_cucu200.MC.y2005" ,"","","MC.y2005,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1216_05_200evts.fzd",kFALSE}, + {"test_cucu62.MC.y2005" ,"","","MC.y2005,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1237_01_500evts.fzd",kFALSE}, + {"test_pp200.MC.y2006" ,"","","MC.y2006,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9991_01_1000evts.fzd",kFALSE}, + {"test_auau200.MC.y2007" ,"","","MC.y2007,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1296_02_100evts.fzd",kFALSE}, + {"test_dau200.MC.y2008","","","MC.y2008,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9066_20_1000evts.fzd",kFALSE}, + {"test_pp200.MC.y2008","","","MC.y2008,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9992_01_1000evts.fzd",kFALSE}, + {"test_pp200.MC.y2009","","","MC.y2009a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9993_01_1000evts.fzd",kFALSE}, + {"test_pp500.MC.y2009","","","MC.y2009a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9994_01_1000evts.fzd",kFALSE}, + {"test_auau11.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10031_1_100evts.fzd",kFALSE}, + {"test_auau200.MC.y2010","","","MC.y2010,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9068_305_100evts.fzd",kFALSE}, + {"test_auau39.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10032_1_100evts.fzd",kFALSE}, + {"test_auau62.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10033_1_100evts.fzd",kFALSE}, + {"test_auau7.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10030_1_100evts.fzd",kFALSE}, + {"test_auau200.MC.y2011","","","MC.y2011,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf11023_2060_25evts.fzd",kFALSE}, + {"test_pp500.MC.y2011","","","MC.fast.y2011,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd",kFALSE}, + {"test_pp500.pileup.MC.y2011","","","MC.fast.y2011,Sti,fzin,MiniMcMk","","" + ,"/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_200evts_Wplus_enu.fzd\n" + " gfile b /star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd\n" + " mode TPCE back 4001400\n gback 400 400 0.1 106.6" ,kFALSE}, + {"test_CuAu200.MC.AgML.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12003_1_100evts.fzd",kFALSE}, + {"test_CuAu200.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12003_1_100evts.fzd",kFALSE}, + {"test_pp200.MC.AgML.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12000_1_1000evts.fzd",kFALSE}, + {"test_pp200.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12000_1_1000evts.fzd",kFALSE}, + {"test_pp500.MC.AgML.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12001_1_1000evts.fzd",kFALSE}, + {"test_pp500.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12001_1_1000evts.fzd",kFALSE}, + {"test_UU200.MC.AgML.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12002_1_100evts.fzd",kFALSE}, + {"test_UU200.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12002_1_100evts.fzd",kFALSE}, + {"test.RC.centr.y2000","","","RC.y2000,Sti","","" + , "/star/rcf/test/daq/2000/09/st_physics_1248022_raw_0001.daq",kFALSE}, + {"test.RC.minb.y2000","","","RC.y2000,Sti","","" + , "/star/rcf/test/daq/2000/08/st_physics_1229021_raw_0003.daq",kFALSE}, + {"test.RC.cent.y2001d","","","RC.y2001,v02,xi2,Sti","","" + , "/star/rcf/test/daq/2001/327/st_physics_2327038_raw_0010.daq",kFALSE}, + {"test.RC.cent.y2001","","","RC.y2001,v0,xi,Sti","","" + , "/star/rcf/test/daq/2001/327/st_physics_2327038_raw_0010.daq",kFALSE}, + {"test.RC.minb.y2001d","","","RC.y2001,v02,xi2,Sti","","" + , "/star/rcf/test/daq/2001/295/st_physics_2295030_raw_0010.daq",kFALSE}, + {"test.RC.minb.y2001","","","RC.y2001,v0,xi,Sti","","" + , "/star/rcf/test/daq/2001/295/st_physics_2295030_raw_0010.daq",kFALSE}, + {"test.RC.pp.y2001d","","","RC.pp.y2001,v02,xi2,Sti","","" + , "/star/rcf/test/daq/2002/008/st_physics_3008016_raw_0001.daq",kFALSE}, + {"test.RC.pp.y2001","","","RC.pp.y2001.ppv,v0,xi,Sti","","" + , "/star/rcf/test/daq/2002/008/st_physics_3008016_raw_0001.daq",kFALSE}, + {"test.RC.pp.y2001_vfppvd","","","RC.pp.y2001.ppv,v02,xi2,Sti","","" + , "/star/rcf/test/daq/2002/008/st_physics_3008016_raw_0001.daq",kFALSE}, + {"test.RC.dau.y2003","","","RC.y2003,ITTF,Sti","","" + , "/star/rcf/test/daq/2003/041/st_physics_4041002_raw_0020001.daq",kFALSE}, + {"test.RC.pp.y2003","","","RC.pp.y2003.VFPPV,Sti","","" + , "/star/rcf/test/daq/2003/095/st_physics_4095050_raw_0010002.daq",kFALSE}, + {"test.RC.auau.lo.y2004","","","RC.y2004,-SvtIT,-SsdIT,pmdRaw,ITTF,Sti","","" + , "/star/rcf/test/daq/2004/044/st_physics_5044116_raw_3010002.daq",kFALSE}, + {"test.RC.auau.ph.y2004","","","RC.y2004,pmdRaw,-SvtIT,-SsdIT,ITTF,Sti","","" + , "/star/rcf/test/daq/2004/044/st_physics_5044102_raw_1010003.daq",kFALSE}, + {"test.RC.auau.StiCA.y2004","","","RC.y2004,-SsdIt,-SvtIt,pmdRaw,StiCA","","" + , "/star/rcf/test/daq/2004/028/st_physics_5028066_raw_1010003.daq",kFALSE}, + {"test.RC.auau.y2004","","","RC.y2004,-SsdIt,-SvtIt,pmdRaw,ITTF,Sti","","" + , "/star/rcf/test/daq/2004/028/st_physics_5028066_raw_1010003.daq",kFALSE}, + {"test.RC.pp.y2004","","","RC.pp.y2004,ITTF,Sti","","" + , "/star/rcf/test/daq/2004/134/st_physics_5134013_raw_2010010.daq",kFALSE}, + {"test.RC.cucu200.ht.y2005","","","RC.y2005,ITTF,Sti","","" + , "/star/rcf/test/daq/2005/054/st_physics_6054016_raw_1020005.daq",kFALSE}, + {"test.RC.cucu200.y2005","","","RC.y2005,ITTF,Sti","","" + , "/star/rcf/test/daq/2005/048/st_physics_6048025_raw_1020002.daq",kFALSE}, + {"test.RC.cucu22.y2005","","","RC.y2005,ITTF,Sti","","" + , "/star/rcf/test/daq/2005/083/st_physics_6083006_raw_1040002.daq",kFALSE}, + {"test.RC.cucu62.y2005","","","RC.y2005,ITTF,Sti","","" + , "/star/rcf/test/daq/2005/080/st_physics_6080011_raw_1020004.daq",kFALSE}, + {"test.RC.pp200.y2005","","","RC.pp.y2005,ITTF,Sti","","" + , "/star/rcf/test/daq/2005/171/st_physics_6171062_raw_2040010.daq",kFALSE}, + {"test.RC.pp200.Long.y2006","","","RC.pp.y2006,ITTF,Sti","","" + , "/star/rcf/test/daq/2006/155/7155010/st_physics_7155010_raw_1020003.daq",kFALSE}, + {"test.RC.pp200.Trans.y2006","","","RC.pp.y2006,ITTF,Sti","","" + , "/star/rcf/test/daq/2006/129/7129023/st_physics_7129023_raw_1020003.daq",kFALSE}, + {"test.RC.auau200.MB.y2007","","","RC.y2007,pmdReco,ITTF,Sti","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"test.RC.auau200.y2007","","","RC.y2007,pmdReco,ITTF,Sti","","" + , "/star/rcf/test/daq/2007/112/8112052/st_physics_8112052_raw_1020010.daq",kFALSE}, + {"test.RC.dau200.y2008","","","RC.y2008,ITTF,Sti","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"test.RC.pp200.y2008","","","RC.pp.y2008,ITTF,Sti","","" + , "/star/rcf/test/daq/2008/043/st_physics_9043046_raw_2030002.daq",kFALSE}, + {"test.RC.pp200.y2009","","","RC.pp.y2009.VFPP,ITTF,Sti","","" + , "/star/rcf/test/daq/2009/115/st_physics_10115020_raw_5020001.daq",kFALSE}, + {"test.RC.pp500.y2009","","","RC.pp.y2009.VFPP,ITTF,Sti","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"test.RC.auau11.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/157/st_physics_11157020_raw_2030001.daq",kFALSE}, + {"test.RC.auau200.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"test.RC.auau39.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"test.RC.auau62.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/098/st_physics_11098050_raw_3020001.daq",kFALSE}, + {"test.RC.auau7.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/143/st_physics_11143043_raw_1020001.daq",kFALSE}, + {"test.RC.auau200.y2011","","","RC.y2011,Sti","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"test.RC.auau20.y2011","","","RC.y2011,Sti","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"test.RC.auau27.y2011","","","RC.y2011,Sti","","" + , "/star/rcf/test/daq/2011/174/st_physics_12174106_raw_2040001.daq",kFALSE}, + {"test.RC.pp500.y2011","","","RC.pp.y2011.VFPPV,pmdReco,mtdDat,Sti","","" + , "/star/rcf/test/daq/2011/059/st_physics_12059038_raw_2030002.daq",kFALSE}, + {"test.RC.cuAu200.AgML.y2012","","","RC.y2012b,AgML,Sti","","" + , "/star/rcf/test/daq/2012/143/st_physics_13143018_raw_3020009.daq",kFALSE}, + {"test.RC.cuAu200.y2012","","","RC.y2012b,Sti","","" + , "/star/rcf/test/daq/2012/143/st_physics_13143018_raw_3020009.daq",kFALSE}, + {"test.RC.pp200.AgML.y2012","","","RC.pp.y2012b,AgML,Sti","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"test.RC.pp200.y2012","","","RC.pp.y2012b,Sti","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"test.RC.pp500.AgML.y2012","","","RC.pp.y2012b,AgML,Sti","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"test.RC.pp500.y2012","","","RC.pp.y2012b,Sti","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"test.RC.UU193.AgML.y2012","","","RC.y2012b,AgML,Sti","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"test.RC.UU193.y2012","","","RC.y2012b,Sti","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"test.RC.pp500.y2013","","","RC.pp.y2013,Sti","","" + , "/star/rcf/test/daq/2013/079/st_physics_14079008_raw_1920004.daq",kFALSE}, + {"test.RC.AuAu15.y2014","","","RC.y2014,Sti","","" + , "/star/rcf/test/daq/2014/069/st_physics_15069008_raw_2500008.daq",kFALSE}, + {"test.RC.AuAu200.y2014","","","RC.y2014,Sti","","" + , "/star/rcf/test/daq/2014/086/st_physics_15086051_raw_2500017.daq",kFALSE}, + {"test.RC.AuAu200.mid.y2014","","","RC.y2014,Sti","","" + , "/star/rcf/test/daq/2014/146/st_mtd_15146050_raw_1000030.daq",kFALSE}, + {"test.RC.He3Au200.y2014","","","RC.y2014,Sti","","" + , "/star/rcf/test/daq/2014/171/st_physics_15171039_raw_2000008.daq",kFALSE}, + {"eval_Sti_auau200.MC.y2007" ,"","","MC.y2007,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1296_02_100evts.fzd",kFALSE}, + {"eval_StiCA_auau200.MC.y2007","","","MC.y2007,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1296_02_100evts.fzd",kFALSE}, + {"eval_Sti.AgML_dau200.MC.y2008","","","MC.y2008,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9066_20_1000evts.fzd",kFALSE}, + {"eval_Sti.AgML_pp200.MC.y2008","","","MC.y2008,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9992_01_1000evts.fzd",kFALSE}, + {"eval_StiCA_dau200.MC.y2008","","","MC.y2008,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9066_20_1000evts.fzd",kFALSE}, + {"eval_StiCA_pp200.MC.y2008","","","MC.y2008,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9992_01_1000evts.fzd",kFALSE}, + {"eval_Sti_dau200.MC.y2008","","","MC.y2008,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9066_20_1000evts.fzd",kFALSE}, + {"eval_Sti_pp200.MC.y2008","","","MC.y2008,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9992_01_1000evts.fzd",kFALSE}, + {"eval_StvCA_dau200.MC.Stv.y2008","","","MC.in.y2008,StvPulls,StvCA,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11025_2040_100evts.event.root",kFALSE}, + {"eval_Stv_dau200.MC.y2008","","","MC.in.y2008,Stv,StvPulls,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11025_2040_100evts.event.root",kFALSE}, + {"eval_Sti.AgML_pp500.MC.y2009","","","MC.y2009a,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9994_01_1000evts.fzd",kFALSE}, + {"eval_StiCA_pp200.MC.y2009","","","MC.y2009a,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9993_01_1000evts.fzd",kFALSE}, + {"eval_StiCA_pp500.MC.y2009","","","MC.y2009a,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9994_01_1000evts.fzd",kFALSE}, + {"eval_Sti_pp200.MC.y2009","","","MC.y2009a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9993_01_1000evts.fzd",kFALSE}, + {"eval_Sti_pp500.MC.y2009","","","MC.y2009a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9994_01_1000evts.fzd",kFALSE}, + {"eval_StvCA_pp500.MC.y2009","","","MC.in.y2009,StvPulls,StvCA,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11026_1020_50evts_pileup.event.root",kFALSE}, + {"eval_Stv_pp500.MC.y2009","","","MC.in.y2009,Stv,StvPulls,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11026_1020_50evts_pileup.event.root",kFALSE}, + {"eval_Sti.AgML_auau11.MC.y2010","","","MC.y2010a,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10031_1_100evts.fzd",kFALSE}, + {"eval_Sti.AgML_auau200.MC.y2010","","","MC.y2010,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9068_305_100evts.fzd",kFALSE}, + {"eval_Sti_auau11.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10031_1_100evts.fzd",kFALSE}, + {"eval_Sti_auau200.MC.y2010","","","MC.y2010,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9068_305_100evts.fzd",kFALSE}, + {"eval_Sti_auau39.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10032_1_100evts.fzd",kFALSE}, + {"eval_Sti_auau62.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10033_1_100evts.fzd",kFALSE}, + {"eval_Sti_auau7.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10030_1_100evts.fzd",kFALSE}, + {"eval_StiCA_auau11.MC.y2010","","","MC.y2010a,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10031_1_100evts.fzd",kFALSE}, + {"eval_StiCA_auau200.MC.y2010","","","MC.y2010,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9068_305_100evts.fzd",kFALSE}, + {"eval_StiCA_auau39.MC.y2010","","","MC.y2010a,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10032_1_100evts.fzd",kFALSE}, + {"eval_StiCA_auau62.MC.y2010","","","MC.y2010a,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10033_1_100evts.fzd",kFALSE}, + {"eval_StiCA_auau7.MC.y2010","","","MC.y2010a,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10030_1_100evts.fzd",kFALSE}, + {"eval_Stv_auau200.MC.y2010","","","MC.in.y2010,Stv,StvPulls,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11022_2241_50evts.event.root",kFALSE}, + {"eval_StvCA_auau200.MC.y2010","","","MC.in.y2010,StvPulls,StvCA,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11022_2241_50evts.event.root",kFALSE}, + {"eval_StvCA_auau39.MC.y2010","","","MC.y2010a,StvCA","","" + , "/star/rcf/simu/rcf10032_1_100evts.fzd",kFALSE}, + {"eval_StvCA_auau62.MC.y2010","","","MC.y2010a,StvCA","","" + , "/star/rcf/simu/rcf10033_1_100evts.fzd",kFALSE}, + {"eval_StvCA_auau7.MC.y2010","","","MC.y2010a,StvCA","","" + , "/star/rcf/simu/rcf10030_1_100evts.fzd",kFALSE}, + {"eval_Sti.AgML_auau200.MC.y2011","","","MC.y2011,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf11023_2060_25evts.fzd",kFALSE}, + {"eval_Sti.AgML_pp500.MC.y2011","","","MC.fast.y2011,AgML,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd",kFALSE}, + {"eval_Sti_auau200.MC.y2011","","","MC.y2011,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf11023_2060_25evts.fzd",kFALSE}, + {"eval_StiCA_pp500.MC.y2011","","","MC.fast.y2011,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd",kFALSE}, + {"eval_StiCA_pp500.pileup.MC.y2011","","","MC.fast.y2011,StiCA,fzin,MiniMcMk","","" + ,"/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_200evts_Wplus_enu.fzd\n " + "gfile b /star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd\n" + " mode TPCE back 4001400\n gback 400 400 0.1 106.6" ,kFALSE}, + {"eval_Sti_pp500.MC.y2011","","","MC.fast.y2011,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd",kFALSE}, + {"eval_Sti_pp500.pileup.MC.y2011","","","MC.fast.y2011,Sti,fzin,MiniMcMk","","" + ,"/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_200evts_Wplus_enu.fzd\n" + " gfile b /star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd\n" + " mode TPCE back 4001400\n gback 400 400 0.1 106.6" ,kFALSE}, + {"eval_Stv_auau200.MC.y2011","","","MC.in.y2011,Stv,StvPulls,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11023_2060_25evts.event.root",kFALSE}, + {"eval_StvCA_auau200.MC.y2011","","","MC.in.y2011,StvPulls,StvCA,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11023_2060_25evts.event.root",kFALSE}, + {"eval_Sti.AgML_CuAu200.MC.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12003_1_100evts.fzd",kFALSE}, + {"eval_Sti.AgML_pp200.MC.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12000_1_1000evts.fzd",kFALSE}, + {"eval_Sti.AgML_pp500.MC.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12001_1_1000evts.fzd",kFALSE}, + {"eval_Sti.AgML_UU200.MC.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12002_1_100evts.fzd",kFALSE}, + {"eval_Sti_CuAu200.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12003_1_100evts.fzd",kFALSE}, + {"eval_Sti_pp200.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12000_1_1000evts.fzd",kFALSE}, + {"eval_Sti_pp500.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12001_1_1000evts.fzd",kFALSE}, + {"eval_Sti_UU200.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12002_1_100evts.fzd",kFALSE}, + {"eval_Sti.AgML.RC.auau200.MB.y2007","","","RC.y2007,pmdReco,ITTF,AgML,Sti","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"eval_StiCA.RC.auau200.MB.y2007","","","RC.y2007,pmdReco,StiCA","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"eval_StiCA.RC.auau200.y2007","","","RC.y2007,pmdReco,StiCA","","" + , "/star/rcf/test/daq/2007/112/8112052/st_physics_8112052_raw_1020010.daq",kFALSE}, + {"eval_Sti.RC.auau200.MB.y2007","","","RC.y2007,pmdReco,ITTF,Sti","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"eval_Stv.AgML.RC.auau200.MB.y2007","","","RC.y2007,Stv,AgML","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"eval_StvCA.RC.auau200.MB.y2007","","","RC.y2007.NoSvt,StvCA","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"eval_Stv.RC.auau200.MB.y2007","","","RC.y2007.NoSvt,Stv","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"eval_Sti.AgML.RC.dau200.y2008","","","RC.y2008,ITTF,AgML,Sti","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"eval_StiCA.RC.dau200.y2008","","","RC.y2008,StiCA","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"eval_StiCA.RC.pp200.y2008","","","RC.pp.y2008,StiCA","","" + , "/star/rcf/test/daq/2008/043/st_physics_9043046_raw_2030002.daq",kFALSE}, + {"eval_Sti.RC.dau200.y2008","","","RC.y2008,ITTF,Sti","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"eval_Sti.RC.pp200.y2008","","","RC.pp.y2008,ITTF,Sti","","" + , "/star/rcf/test/daq/2008/043/st_physics_9043046_raw_2030002.daq",kFALSE}, + {"eval_Stv.AgML.RC.dau200.y2008","","","RC.y2008.notof,Stv,AgML","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"eval_StvCA.RC.dau200.y2008","","","RC.y2008.notof,StvCA","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"eval_StvCA.RC.pp200.y2008","","","RC.pp.y2008.Minuit,StvCA","","" + , "/star/rcf/test/daq/2008/043/st_physics_9043046_raw_2030002.daq",kFALSE}, + {"eval_Stv.RC.dau200.y2008","","","RC.y2008.notof,Stv","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"eval_Stv.RC.pp200.y2008","","","RC.pp.y2008.Minuit,Stv","","" + , "/star/rcf/test/daq/2008/043/st_physics_9043046_raw_2030002.daq",kFALSE}, + {"eval_Sti.AgML.RC.pp500.y2009","","","RC.pp.y2009.VFPP,ITTF,Sti","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"eval_StiCA.RC.pp200.y2009","","","RC.pp.y2009.VFPP,StiCA","","" + , "/star/rcf/test/daq/2009/115/st_physics_10115020_raw_5020001.daq",kFALSE}, + {"eval_StiCA.RC.pp500.y2009","","","RC.pp.y2009.VFPP,StiCA","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"eval_Sti.RC.pp200.y2009","","","RC.pp.y2009.VFPP,ITTF,Sti","","" + , "/star/rcf/test/daq/2009/115/st_physics_10115020_raw_5020001.daq",kFALSE}, + {"eval_Sti.RC.pp500.y2009","","","RC.pp.y2009.VFPP,ITTF,Sti","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"eval_Stv.AgML.RC.pp500.y2009","","","RC.pp.y2009,Stv,AgML","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"eval_StvCA.RC.pp200.y2009","","","RC.pp.y2009,StvCA","","" + , "/star/rcf/test/daq/2009/115/st_physics_10115020_raw_5020001.daq",kFALSE}, + {"eval_StvCA.RC.pp500.y2009","","","RC.pp.y2009,StvCA","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"eval_Stv.RC.pp200.y2009","","","RC.pp.y2009,Stv","","" + , "/star/rcf/test/daq/2009/115/st_physics_10115020_raw_5020001.daq",kFALSE}, + {"eval_Stv.RC.pp500.y2009","","","RC.pp.y2009,Stv","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"eval_Sti.AgML.RC.auau200.y2010","","","RC.y2010.notof,AgML,Sti","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"eval_Sti.AgML.RC.auau39.y2010","","","RC.y2010.notof,AgML,Sti","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"eval_StiCA.RC.auau11.y2010","","","RC.y2010,StiCA","","" + , "/star/rcf/test/daq/2010/157/st_physics_11157020_raw_2030001.daq",kFALSE}, + {"eval_StiCA.RC.auau200.y2010","","","RC.y2010,StiCA","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"eval_StiCA.RC.auau39.y2010","","","RC.y2010,StiCA","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"eval_StiCA.RC.auau62.y2010","","","RC.y2010,StiCA","","" + , "/star/rcf/test/daq/2010/098/st_physics_11098050_raw_3020001.daq",kFALSE}, + {"eval_Sti.RC.auau11.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/157/st_physics_11157020_raw_2030001.daq",kFALSE}, + {"eval_Sti.RC.auau200.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"eval_Sti.RC.auau39.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"eval_Sti.RC.auau62.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/098/st_physics_11098050_raw_3020001.daq",kFALSE}, + {"eval_Stv.AgML.RC.auau200.y2010","","","RC.y2010.notof,Stv,AgML","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"eval_Stv.AgML.RC.auau39.y2010","","","RC.y2010.notof,Stv,AgML","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"eval_StvCA.RC.auau11.y2010","","","RC.y2010.notof,StvCA","","" + , "/star/rcf/test/daq/2010/157/st_physics_11157020_raw_2030001.daq",kFALSE}, + {"eval_StvCA.RC.auau200.y2010","","","RC.y2010.notof,StvCA","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"eval_StvCA.RC.auau39.y2010","","","RC.y2010.notof,StvCA","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"eval_StvCA.RC.auau62.y2010","","","RC.y2010.notof,StvCA","","" + , "/star/rcf/test/daq/2010/098/st_physics_11098050_raw_3020001.daq",kFALSE}, + {"eval_Stv.RC.auau11.y2010","","","RC.y2010.notof,Stv","","" + , "/star/rcf/test/daq/2010/157/st_physics_11157020_raw_2030001.daq",kFALSE}, + {"eval_Stv.RC.auau200.y2010","","","RC.y2010.notof,Stv","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"eval_Stv.RC.auau39.y2010","","","RC.y2010.notof,Stv","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"eval_Stv.RC.auau62.y2010","","","RC.y2010.notof,Stv","","" + , "/star/rcf/test/daq/2010/098/st_physics_11098050_raw_3020001.daq",kFALSE}, + {"eval_Sti.AgML.RC.auau200.y2011","","","RC.y2011,AgML,Sti","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"eval_Sti.AgML.RC.auau20.y2011","","","RC.y2011,AgML,Sti","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"eval_Sti.AgML.RC.pp500.y2011","","","RC.pp.y2011.VFPPV,pmdReco,mtdDat,Sti","","" + , "/star/rcf/test/daq/2011/059/st_physics_12059038_raw_2030002.daq",kFALSE}, + {"eval_StiCA.RC.auau200.y2011","","","RC.y2011,StiCA","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"eval_StiCA.RC.auau20.y2011","","","RC.y2011,StiCA","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"eval_StiCA.RC.auau27.y2011","","","RC.y2011,StiCA","","" + , "/star/rcf/test/daq/2011/174/st_physics_12174106_raw_2040001.daq",kFALSE}, + {"eval_StiCA.RC.pp500.y2011","","","RC.pp.y2011.VFPPV,pmdReco,mtdDat,StiCA","","" + , "/star/rcf/test/daq/2011/059/st_physics_12059038_raw_2030002.daq",kFALSE}, + {"eval_Sti.RC.auau200.y2011","","","RC.y2011,Sti","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"eval_Sti.RC.auau20.y2011","","","RC.y2011,Sti","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"eval_Sti.RC.auau27.y2011","","","RC.y2011,Sti","","" + , "/star/rcf/test/daq/2011/174/st_physics_12174106_raw_2040001.daq",kFALSE}, + {"eval_Sti.RC.pp500.y2011","","","RC.pp.y2011.VFPPV,pmdReco,mtdDat,Sti","","" + , "/star/rcf/test/daq/2011/059/st_physics_12059038_raw_2030002.daq",kFALSE}, + {"eval_Stv.AgML.RC.auau200.y2011","","","RC.y2011,Stv,AgML","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"eval_Stv.AgML.RC.auau20.y2011","","","RC.y2011,Stv,AgML","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"eval_StvCA.RC.auau200.y2011","","","RC.y2011,StvCA","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"eval_StvCA.RC.auau20.y2011","","","RC.y2011,StvCA","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"eval_StvCA.RC.auau27.y2011","","","RC.y2011,StvCA","","" + , "/star/rcf/test/daq/2011/174/st_physics_12174106_raw_2040001.daq",kFALSE}, + {"eval_StvCA.RC.pp500.y2011","","","RC.pp.y2011,pmdReco,mtdDat,StvCA","","" + , "/star/rcf/test/daq/2011/059/st_physics_12059038_raw_2030002.daq",kFALSE}, + {"eval_Stv.RC.auau200.y2011","","","RC.y2011,Stv","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"eval_Stv.RC.auau20.y2011","","","RC.y2011,Stv","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"eval_Stv.RC.auau27.y2011","","","RC.y2011,Stv","","" + , "/star/rcf/test/daq/2011/174/st_physics_12174106_raw_2040001.daq",kFALSE}, + {"eval_Stv.RC.pp500.y2011","","","RC.pp.y2011,pmdReco,mtdDat,Stv","","" + , "/star/rcf/test/daq/2011/059/st_physics_12059038_raw_2030002.daq",kFALSE}, + {"eval_Sti.AgML.RC.pp200.y2012","","","RC.pp.y2012,AgML,Sti","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"eval_Sti.AgML.RC.pp500.y2012","","","RC.pp.y2012,AgML,Sti","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"eval_Sti.AgML.RC.UU193.y2012","","","RC.y2012,AgML,Sti","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"eval_StiCA.RC.pp200.y2012","","","RC.pp.y2012,StiCA","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"eval_Sti.RC.pp200.y2012","","","RC.pp.y2012,Sti","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"eval_Sti.RC.pp500.y2012","","","RC.pp.y2012,Sti","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"eval_Sti.RC.UU193.y2012","","","RC.y2012,Sti","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"eval_Stv.AgML.RC.cuAu200.y2012","","","RC.y2012b.notof,Stv,AgML","","" + , "/star/rcf/test/daq/2012/143/st_physics_13143018_raw_3020009.daq",kFALSE}, + {"eval_Stv.AgML.RC.pp200.y2012","","","RC.pp.y2012.notofMin,Stv,AgML","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"eval_Stv.AgML.RC.pp500.y2012","","","RC.pp.y2012.notofMin,Stv,AgML","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"eval_Stv.AgML.RC.UU193.y2012","","","RC.y2012b.notof,Stv,AgML","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"eval_StvCA.RC.cuAu200.y2012","","","RC.y2012b.notof,StvCA","","" + , "/star/rcf/test/daq/2012/143/st_physics_13143018_raw_3020009.daq",kFALSE}, + {"eval_StvCA.RC.pp200.y2012","","","RC.pp.y2012.notofMin,StvCA","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"eval_StvCA.RC.pp500.y2012","","","RC.pp.y2012.notofMin,StvCA","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"eval_StvCA.RC.UU193.y2012","","","RC.y2012b.notof,StvCA","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"eval_Stv.RC.cuAu200.y2012","","","RC.y2012b.notof,Stv","","" + , "/star/rcf/test/daq/2012/143/st_physics_13143018_raw_3020009.daq",kFALSE}, + {"eval_Stv.RC.pp200.y2012","","","RC.pp.y2012.notofMin,Stv","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"eval_Stv.RC.pp500.y2012","","","RC.pp.y2012.notofMin,Stv","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"eval_Stv.RC.UU193.y2012","","","RC.y2012b.notof,Stv","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"doEvents" ,"" ,"","in,StEvent,analysis,NoDb" ,"","","",kFALSE}, + {"MakeMuDst","","","in,StEvent,CMuDST,Tree,nodefault,NoHistos,ReadAll","","" ,"StEvent => MuDst",kFALSE}, + {"drawDst" ,"" ,"","in,ry1h,globT,SCL,geant,display,NoDb,TbUtil" ,"","","",kFALSE}, + {"Cdst" ,"" ,"","ITTF,event,analysis,EventQA" ,"","","",kFALSE}, + {"C1default" ,"" ,"","rich,l0,Cdst,tags,Tree,EvOut,NoHits" ,"","","Year 1 chain",kFALSE}, + {"C2default" ,"" ,"","rich,l0,Cdst,tags,Tree,EvOut,ftpc,svt,emcY2" ,"","","Year 2 chain",kFALSE}, + {"C3default" ,"" ,"","l0,Cdst,tags,Tree,EvOut,NoHits,ftpc,svt,bbcsim,emcY2" + , "","","Year 3 simu base chain",kFALSE}, + {"CAdefault" ,"" ,"","l0,Cdst,tags,Tree,EvOut,NoHits,ftpc,svt,emcY2","","","Assymptotic chain",kFALSE}, + {"Cy1a" ,"" ,"","y1a,C1default" ,"","","Turn on chain y1a",kFALSE}, + {"Cy1b" ,"" ,"","y1b,C1default" ,"","","Turn on chain y1b",kFALSE}, + {"Cy1s" ,"" ,"","y1s,C1default" ,"","","Turn on chain y1s",kFALSE}, + {"Cy1d" ,"" ,"","y1d,C1default" ,"","","Turn on chain y1d",kFALSE}, + {"cy1e" ,"" ,"","y1e,C1default" ,"","","Turn on chain y1h",kFALSE}, + {"cy1h" ,"" ,"","y1h,C1default" ,"","","Turn on chain y1e",kFALSE}, + {"Cy2a" ,"" ,"","y2a,CAdefault" ,"","","Turn on chain y2a",kFALSE}, + {"Cy2b" ,"" ,"","y2b,C2default" ,"","","Turn on chain y2b",kFALSE}, + {"C2000" ,"" ,"","y2000,C1default" ,"","","Turn on chain Y2000",kFALSE}, + {"C2001" ,"" ,"","y2001,C2default" ,"","","Turn on chain Y2001",kFALSE}, + {"C2003" ,"" ,"","y2003,C3default" ,"","","Turn on chain Y2003",kFALSE}, + {"C2003X" ,"" ,"","y2003X,C3default" ,"","","Turn on chain Y2003X (full B/E EMC)",kFALSE}, + {"mdc3" ,"" ,"","cy1h,GeantOut" ,"","","MDC3 default chain",kFALSE}, + {"MDC4" ,"" ,"","C2001,trs,tpc_daq,Simu,srs,fss,rrs,big,GeantOut","","","Turn on chain for MDC4",kFALSE}, + {"MDC4New" ,"" ,"","y2001n,C2default,trs,tpc_daq,Simu,srs,fss,rrs,big,GeantOut","","" + , "Turn on chain for MDC4 (for after September)",kFALSE}, + {"PostMDC4" ,"" ,"","C2001,trs,tpc_daq,Simu,sss,fss,rrs,big,GeantOut" + , "","","Turn on Post MDC4 chain",kFALSE}, + {"ppMDC4","","","ppOpt,C2001,mwc,trs,tpc_daq,Simu,srs,rrs,big,GeantOut" + , "","","Turn on chain for ppMDC",kFALSE}, + {"dAuMDC" ,"" ,"","ppOpt,C2003,trs,tpc_daq,Simu,srs,fss,big,GeantOut","","","Chain for d+Au",kFALSE}, + {"dAuMDCa" ,"" ,"","ppOpt,C2003,trs,tpc_daq,Simu,srs,fss,big,GeantOut,est","","","Chain for d+Au",kFALSE}, + {"CComplete" ,"" ,"","Complete,C2default" ,"","","Turn on chain for Complete STAR",kFALSE}, + {"SvtD" ,"","","SvtCalDb,SvtSeqAdj,SvtClu,SvtCluAnal,SvtHit", "","","SVT chain for Data",kFALSE}, + {"P00h" ,"" ,"","ry1h,in,tpc_daq,tpc,rich,Physics,Cdst,Kalman,tags,Tree,evout,ExB,NoHits","","" + , "Production chain for summer 2000 data",kFALSE}, + {"P2000" ,"" ,"","ry2000,in,tpc_daq,tpc,rich,Physics,Cdst,Kalman,tags,Tree,evout,ExB,NoHits","","" + , "Production chain for summer 2000 data",kFALSE}, + {"B2000" ,"","","ry2000,in,tpc_daq,tpc,rich,Physics,Cdst,Kalman,tags,Tree,evout,NosvtIT,NossdIT","","" + , "Base chain for 2001 (tpc+rhic)",kFALSE}, + {"P2000a" ,"" ,"","B2000,Corr1","","" ,"Production chain for summer 2000 data",kFALSE}, + {"B2001" ,"" ,"","ry2001,in,tpc_daq,tpc,rich,Physics,Cdst,Kalman,tags,Tree,evout,svtDb","","" + ,"Base chain for 2001 (tpc+rhic)" ,kFALSE}, + {"P2001" ,"" ,"","B2001,l3onl,tofDat,Corr2,OSpaceZ","","" + , "Production chain for summer 2001 data (+ l3, tof)",kFALSE}, + {"P2001a" ,"" ,"","B2001,svt_daq,SvtD,ftpc,l3onl,tofDat,emcDY2,Corr2,OSpaceZ","","" + , "Production chain for summer 2001 data (+ ftpc, svt, l3, tof, emc)",kFALSE}, + {"pp2001","","","ppOpt,B2001,-PreVtx,l3onl,tofDat,emcDY2,Corr2","","" ,"pp 2001 (+ l3, tof, emc)",kFALSE}, + {"pp2001a" ,"" ,"","pp2001,svt_daq,SvtD,ftpc","","" ,"pp 2001 (+ ftpc, svt, l3, tof, emc)",kFALSE}, + {"B2003" ,"" ,"","ry2003,in,tpc_daq,tpc,Physics,Cdst,Kalman,tags,Tree,evout,svtDb","","" + , "Base chain for 2003 (tpc)",kFALSE}, + {"dau2003" ,"" ,"","B2003,Corr2,ppOpt,-PreVtx,l3onl,ToF,emcDY2,svt_daq,SvtD,ftpc","","" + , "Production chain for winter 2003 data (+ tof, svt (no est), ftpc, emc)",kFALSE}, + {"dau2003a" ,"" ,"","B2003,Corr2,ppOpt,-PreVtx,l3onl,ToF,emcDY2,svt_daq,SvtD,ftpc,trgd","","" + , "Production chain for winter 2003 data (+ tof, svt (no est), ftpc, emc, trgd)",kFALSE}, + {"pp2003" , "" ,"","B2003,Corr2,ppOpt,-PreVtx,l3onl,ToF,emcDY2,svt_daq,SvtD,ftpc,trgd","","" + , "Production chain for Spring 2003 data (+ tof, svt (no est), ftpc, emc, trgd)",kFALSE}, + {"Idst" ,"" ,"", "event,compend,EventQA" ,"","","Turn on DST for ITTF",kFALSE}, + {"IAna" ,"" ,"","dEdxY2,Kink2,xi2,CMuDst,analysis","","" ,"Turn on Xi, Kink, dEdx and MuDst",kFALSE}, + {"BAna" ,"" ,"","dEdxY2,CMuDst,analysis" ,"","" ,"Turn on dEdx and MuDst",kFALSE}, + {"B2003I" ,"","","ry2003,in,TpxRaw,TpxClu,Idst,l0,tags,Tree,evout,svtDb" + , "","","Base chain for 2003 ITTF",kFALSE}, + {"dau2003i" ,"","","B2003I,IAna,CtbMatchVtx,Corr2,ppOpt,l3onl,tofDat,emcDY2,svt_daq,SvtD,ftpc,trgd" + , "","","Production chain for winter 2003 data dau2003a with ITTF",kFALSE}, + {"pp2003i","","","B2003I,IAna,CtbMatchVtx,Corr2,ppOpt,-PreVtx,l3onl,ToF,emcDY2,svt_daq,SvtD,ftpc,trgd" + , "","","Production chain for winter 2003 data dau2003a with ITTF",kFALSE}, + {"B2004" ,"","","ry2004,in,tpc_daq,tpcI,svt_daq,SvtD,Physics,Idst,l0,tags,Tree,evout,ssdDb","","" + , "Base chain for 2004 ITTF (tpc+svt)",kFALSE}, + {"P2004","" ,"","B2004,IAna,fcf,VFMinuit,ToF,emcDY2,ftpc,trgd,ZDCvtx,svtIT,Corr4,OSpaceZ2" + , "","","Production chain for 2003/2004 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2004" ,"" ,"", + "B2004,IAna,fcf,ppOpt,VFppLMV5,CtbMatchVtx,ToF,emcDY2,ftpc,trgd,ZDCvtx,svtIT,Corr4,OSpaceZ2" + , "","","Production chain for 2003/2004 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"B2005" ,"","","ry2005b,in,tpc_daq,tpcI,svt_daq,SvtD,Physics,Idst,l0,tags,Tree,evout,ssdDb","","" + , "Base chain for 2005 ITTF (tpc+svt)",kFALSE}, + {"B2005a" ,"" ,"","ry2005b,in,tpc_daq,tpcI,Physics,Idst,l0,tags,Tree,evout,svtDb,ssdDb","","" + , "Base chain for 2005 ITTF (tpc only)",kFALSE}, + {"B2005b" ,"" ,"","ry2005f,in,tpc_daq,tpcI,svt_daq,SvtD,Physics,Idst,l0,tags,Tree,evout,ssdDb","","" + , "Base chain for 2005 ITTF Geo f (tpc+svt only)",kFALSE}, + {"B2005c" ,"" ,"","ry2005g,in,tpc_daq,tpcI,svt_daq,SvtD,Physics,Idst,l0,tags,Tree,evout,ssdDb","","" + , "Base chain for 2005 ITTF Geo g (tpc+svt only + dead material)",kFALSE}, + {"P2005" ,"" ,"", "B2005,IAna,fcf,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,svtIT,Corr3" + , "","","Production chain for 2004/2005 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2005b" ,"" ,"", "B2005b,IAna,fcf,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,svtIT,Corr3" + , "","","Production chain for 2004/2005 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2005c" ,"" ,"", "B2005c,IAna,fcf,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,svtIT,Corr3" + , "","","Production chain for 2004/2005 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2005","" ,"","B2005,IAna,fcf,ppOpt,VFppLMV5,CtbMatchVtx,emcDY2,ftpc,trgd,ZDCvtx,svtIT,Corr3" + , "","","Production chain for 2005 pp data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2005a","","","B2005a,IAna,fcf,ppOpt,VFPPV,beamline,CtbMatchVtx,emcDY2,ftpc,trgd,ZDCvtx,Corr4" + , "","","Production chain for 2005 pp data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2005b","","", "B2005b,IAna,fcf,ppOpt,VFPPV,beamline,CtbMatchVtx,emcDY2,ftpc,trgd,ZDCvtx,Corr4" + , "","","Production chain for 2005 pp data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"B2006" ,"" ,"","ry2005d,in,tpc_daq,tpcI,svt_daq,SvtD,Idst,tags,Tree,evout,ssdDb","","" + , "Base chain for 2006 ITTF (tpc+svt)",kFALSE}, + {"B2006a" ,"" ,"","ry2005d,in,tpc_daq,tpcI,Idst,tags,Tree,evout,svtDb,ssdDb","","" + , "Base chain for 2006 with 2005d geom ITTF (tpc only)",kFALSE}, + {"B2006b" ,"" ,"","ry2006,in,tpc_daq,tpcI,Idst,l0,tags,Tree,evout,svtDb,ssdDb","","" + , "Base chain for 2006 ITTF (tpc only)",kFALSE}, + {"B2006g" ,"" ,"","ry2006g,in,tpc_daq,tpcI,Idst,l0,tags,Tree,evout,svtDb,ssdDb","","" + , "Base chain for 2006 ITTF geo g (tpc only)",kFALSE}, + {"pp2006a" ,"" ,"", + "B2006a,IAna,fcf,ppOpt,VFPPVnoCTB,beamline,emcDY2,ftpc,trgd,ZDCvtx,Corr3" + , "","","Production chain for 2005 pp data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2006b" ,"" ,"", + "B2006b,IAna,fcf,ppOpt,VFPPVnoCTB,beamline,emcDY2,ftpc,trgd,ZDCvtx,Corr4,BeamBack" + , "","","Production chain for 2005 pp data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2006g" ,"" ,"", + "B2006g,IAna,fcf,ppOpt,VFPPVnoCTB,beamline,emcDY2,ftpc,trgd,ZDCvtx,Corr4,BeamBack" + , "","","Production chain for 2005 pp data geo g (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"T2007","","","ry2007g,MakeEvent,in,tpc_daq,tpcI,fcf,Tree,evout" + , "","","TPC only chain, 2007 ITTF",kFALSE}, + {"B2007","","","ry2007,MakeEvent,in,tpc_daq,tpcI,fcf,svt_daq,SvtD,ssddat,sptd,Idst,tags,Tree,evout" + , "","","Base chain for 2007 ITTF (tpc+svt+ssd)",kFALSE}, + {"B2007g","","","ry2007g,MakeEvent,in,tpc_daq,tpcI,fcf,svt_daq,SvtD,ssddat,sptd,Idst,tags,Tree,evout" + , "","","Base chain for 2007 ITTF geo g (tpc+svt+ssd)",kFALSE}, + {"P2007" ,"" ,"", + "B2007,IAna,KeepSvtHit,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,svtIT,ssdIT,Corr5" + , "","","Production chain for 2007 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2007g" ,"" ,"", + "B2007g,IAna,KeepSvtHit,hitfilt,VFMinuit2,emcDY2,ftpc,trgd,ZDCvtx,svtIT,ssdIT,Corr5" + , "","","Production chain for 2007 data, revised 2008 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2007a" ,"" ,"", + "B2007,IAna,KeepSvtHit,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,svtIT,ssdIT,Corr3" + , "","","Production chain for 2007 data Corr3 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2007b" ,"" ,"", + "B2007,IAna,KeepSvtHit,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,svtIT,ssdIT,Corr4" + , "","","Production chain for 2007 data Corr4 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"B2008" ,"","","ry2008,in,tpc_daq,tpcI,fcf,Idst,tags,Tree,evout","","" + , "Base chain for 2008 ITTF (tpc)",kFALSE}, + {"B2008a","","","ry2008,in,tpcX,ToFx,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2008 ITTF (tpc+tof)",kFALSE}, + {"P2008a" ,"" ,"", + "B2008,IAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr3,analysis" + , "","","Production chain for 2008 data Corr3 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2008b" ,"" ,"", + "B2008,IAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr4,analysis" + , "","","Production chain for 2008 data Corr4 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2008a" ,"" ,"", + "B2008,IAna,hitfilt,ppOpt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr4,analysis" + , "","","Production chain for 2008 data Corr3 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2008c" ,"" ,"", + "B2008,IAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr4,analysis" + , "","","Production chain for 2008 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2008c" ,"" ,"", + "B2008,IAna,hitfilt,ppOpt,Minuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr4,analysis" + , "","","Production chain for 2008 data Corr4 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2008" ,"" ,"", + "B2008a,IAna,hitfilt,ppOpt,VFPPV,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr4,analysis" + , "","","Production chain for 2008 data Corr3 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2008" ,"" ,"", + "B2008a,IAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr4,analysis" + , "","","Production chain for 2008 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"B2009.1","","","ry2009,in,tpcX,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2009 ITTF (tpc)",kFALSE}, + {"B2009.2","","","ry2009a,in,tpcX,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2009 ITTF (tpc)",kFALSE}, + {"B2009.3","","","ry2009d,in,tpcX,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2009 ITTF (tpc)",kFALSE}, + {"pp2009a" ,"" ,"", + "B2009.1,IAna,hitfilt,ppOpt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2009 data - no Corr (+ l3, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2009b" ,"" ,"", + "B2009.1,IAna,hitfilt,ppOpt,VFMinuit,emcDY2,ftpc,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2009 data - no Corr (+ l3, ftpc, e/b-emc, no trigger)",kFALSE}, + {"pp2009c" ,"" ,"", + "B2009.2,BAna,hitfilt,ppOpt,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,analysis","","" + , "Production chain for 2009 data - no Corr, no VF (+l3, ftpc, e/b-emc, trig)",kFALSE}, + {"pp2009d" ,"" ,"", + "B2009.3,BAna,hitfilt,ppOpt,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,analysis","","" + , "Production chain for 2009 data - no Corr, no VF (+l3, ftpc, e/b-emc, trig)",kFALSE}, + {"B2010","","","ry2010,in,tpcX,ITTF,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2010 ITTF (tpc)",kFALSE}, + {"B2010c","","","ry2010c,in,tpcX,ITTF,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2010 ITTF (tpc)",kFALSE}, + {"P2010a","" ,"", + "B2010,BAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2010 data - no Corr (+ l3, ftpc, e/b-emc)",kFALSE}, + {"pp2010a","" ,"", + "B2010,BAna,hitfilt,ppOpt,emcDY2,trgd,ftpc,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2010 data - no Corr (+ l3, ftpc, e/b-emc, no VF)",kFALSE}, + {"P2010c","" ,"", + "B2010c,BAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2010 data - no Corr (+ l3, ftpc, e/b-emc)",kFALSE}, + {"pp2010c","" ,"", + "B2010c,BAna,hitfilt,ppOpt,emcDY2,trgd,ftpc,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2010 data - no Corr (+ l3, ftpc, e/b-emc, no VF)",kFALSE}, + {"B2011","","","ry2011,in,tpcX,ITTF,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2011 ITTF (tpc)",kFALSE}, + {"P2011a","" ,"", + "B2011,BAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2011 data - no Corr (+ l3, ftpc, e/b-emc)",kFALSE}, + {"pp2011a","" ,"", + "B2011,BAna,hitfilt,ppOpt,emcDY2,trgd,ftpc,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2011 data - no Corr (+ l3, ftpc, e/b-emc, no VF)",kFALSE}, + {"B2012","","","ry2012,in,tpcX,ITTF,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2012 ITTF (tpc)",kFALSE}, + {"pp2012a","" ,"","B2012,BAna,hitfilt,ppOpt,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","", "Production chain for 2012 data - no Corr (+ l3, e/b-emc, no VF)",kFALSE}, + {"P2012a","" ,"", + "B2012,BAna,hitfilt,VFMinuit,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2011 data - no Corr (+ l3, e/b-emc)",kFALSE}, + {"B2012b","","","ry2012a,in,tpcX,ITTF,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2012 ITTF (tpc)",kFALSE}, + {"pp2012b","" ,"", + "B2012b,BAna,hitfilt,ppOpt,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","", "Production chain for 2012 data - no Corr (+ l3, e/b-emc, no VF)",kFALSE}, + {"P2012b","" ,"", + "B2012b,BAna,hitfilt,VFMinuit,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2011 data - no Corr (+ l3, e/b-emc)",kFALSE}, + {"B2013","","","in,tpcX,UseXgeom,ITTF,NosvtIT,NossdIT,tpcDB,TpcHitMover,Idst,tags,Tree,evout," + "btof,mtd,BAna,emcDY2,trgd,ZDCvtx","","", "Base chain for 2013 ITTF (tpc)",kFALSE}, + {"B2013x","","","ry2013_1x,B2013","","", "Base chain for 2013 ITTF (tpc)",kFALSE}, + {"pp2013x","","","B2013x,BAna,emcDY2,trgd,ZDCvtx" + , "","", "Production chain for 2013 data - no Corr (+ l3, e/b-emc, no VF)",kFALSE}, + {"B2013" ,"","","B2013_c2","","", "Alias for B2013 Configuration 2",kFALSE}, + {"B2013_c2","","","ry2013_2c,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2013 ITTF (tpc)",kFALSE}, + {"B2013_c1","","","ry2013_1c,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2013 ITTF (tpc)",kFALSE}, + {"pp2013a","" ,"", + "B2013_c2,ITTF,UseXgeom,BAna,hitfilt,ppOpt,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis", + "","", "Production chain for 2013 data - no Corr (+ l3, e/b-emc, no VF)",kFALSE}, + {"pp2013b","" ,"", + "B2013_c1,ITTF,UseXgeom,BAna,hitfilt,ppOpt,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","", "Production chain for 2013 data - no Corr (+ l3, e/b-emc, no VF)",kFALSE}, + {"pp2013","" ,"", + "BAna,hitfilt,ppOpt,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","", "Production chain for 2013 data - no Corr (+ l3, e/b-emc, no VF)",kFALSE}, + {"B2014" ,"","","ry2014,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2014 ITTF (tpc)",kFALSE}, + {"B2014a","","","ry2014a,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2014a ITTF (tpc)",kFALSE}, + {"P2014","" ,"", + "B2014,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,analysis" + , "","","Production chain for 2014 data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2014a","" ,"", + "B2014a,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis," + , "","","Production chain for 2014 data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2015" ,"","","ry2015,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2015 ITTF (tpc)",kFALSE}, + {"B2015a" ,"","","ry2015a,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for run 2015a data",kFALSE}, + {"B2015b" ,"","","ry2015b,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for run 2015 with y2015b geometry",kFALSE}, + {"B2015c" ,"","","ry2015c,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for run 2015 with y2015c geometry",kFALSE}, + {"pp2015","" ,"", + "B2015,ITTF,UseXgeom,BAna,hitfilt,ppOpt,VFPPVnoCTB,beamline,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for 2015 data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"pp2015a","" ,"", + "B2015a,ITTF,UseXgeom,BAna,hitfilt,ppOpt,VFPPVnoCTB,beamline,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for year 2015a data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"pp2015b","" ,"", + "B2015b,ITTF,UseXgeom,BAna,hitfilt,ppOpt,VFPPVnoCTB,beamline,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for year 2015b data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"pp2015c","" ,"", + "B2015c,ITTF,UseXgeom,BAna,hitfilt,ppOpt,VFPPVnoCTB,beamline,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for year 2015c data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2015","" ,"", + "B2015,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for 2015 data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2015a","" ,"", + "B2015a,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for year 2015a data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2015b","" ,"", + "B2015b,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for year 2015b data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2015c","" ,"", + "B2015c,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for year 2015c data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2016" ,"","","ry2016,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2016 ITTF (tpc)",kFALSE}, + {"P2016","" ,"", + "B2016,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for 2016 data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2016a" ,"","","ry2016a,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Production chain for 2016 data (tpc)",kFALSE}, + {"P2016a","" ,"", + "B2016a,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for 2016 data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2017" ,"","","ry2017,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for run 2017 data (tpc)",kFALSE}, + {"pp2017","" ,"", + "B2017,Sti,UseXgeom,BAna,hitfilt,ppOpt,VFPPVnoCTB,beamline,l3onl,emcDY2,fpd,trgd,ZDCvtx,analysis" + , "","","Base chain for year 2017 pp data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2017","" ,"", + "B2017,Sti,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,analysis" + , "","","Base chain for year 2017 AA data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2017a" ,"","","ry2017a,in,tpcX,CorrX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,picoWrite","","" + , "Production chain for run 2017 data (tpc)",kFALSE}, + {"pp2017a","" ,"", + "B2017a,ITTF,UseXgeom,BAna,hitfilt,ppOpt,VFPPVnoCTB,beamline3D,l3onl,emcDY2,fpd,trgd,ZDCvtx,analysis" + , "","","Production chain for year 2017 pp data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2017a","" ,"", + "B2017a,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,beamline3D,l3onl,emcDY2,fpd,trgd,ZDCvtx,analysis" + , "","","Production chain for year 2017 AA data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2018a" ,"","","ry2018a,in,tpcX,CorrX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,picoWrite","","" + , "Base chain for run 2018 data (tpc)",kFALSE}, + {"P2018a","" ,"", + "B2018a,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,beamline3D,l3onl,emcDY2,epdHit,fpd,trgd,ZDCvtx,analysis" + , "","","Base chain for year 2018 AA data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2019a" ,"","","ry2019a,in,tpcX,UseXgeom,iTpcIT,CorrX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,picoWrite", + "","", "Base chain for run 2019 data (tpc)",kFALSE}, + {"P2019a","" ,"", + "B2019a,ITTF,BAna,iTpcIT,hitfilt,VFMinuit,beamline3D,etofa,btof,mtd,l3onl,emcDY2,epdHit,trgd,ZDCvtx,analysis" + , "","", "Base chain for year 2019 AA data - no Corr (+ l3, epd, mtd, b/etof, b-emc)",kFALSE}, + {"B2020a" ,"","", + "ry2020a,in,tpcX,UseXgeom,iTpcIT,CorrY,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,picoWrite,picoVtxDefault,picoCovMtxWrite", + "","", "Base chain for run 2020 data (tpc)",kFALSE}, + {"P2020a","" ,"", + "B2020a,ITTF,BAna,iTpcIT,hitfilt,VFMinuit,etofa,btof,mtd,l3onl,emcDY2,epdHit,trgd,ZDCvtx,analysis" + , "","", "Base chain for year 2020 AA data - no Corr (+ l3, epd, mtd, b/etof, b-emc)",kFALSE}, + {"B2021a" ,"","", + "ry2021a,in,tpcX,UseXgeom,iTpcIT,CorrY,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,picoWrite,picoVtxDefault,picoCovMtxWrite", + "","", "Base chain for run 2020 data (tpc)",kFALSE}, + {"P2021a","" ,"", + "B2021a,ITTF,BAna,iTpcIT,hitfilt,VFMinuit,etofa,btof,mtd,l3onl,emcDY2,epdHit,trgd,ZDCvtx,analysis" + , "","", "Base chain for year 2020 AA data - no Corr (+ l3, epd, mtd, b/etof, b-emc)",kFALSE}, + {"LaserCal0","" ,"","db,detDb,tpc_daq,tpcDb,tcl,globT,laser,LaserTest","","" + , "Laser Calibration Chain (tcl)",kFALSE}, + {"LaserCal","" ,"","db,detDb,tpc_daq,tpcDb,fcf,globT,laser,LaserTest","","" + , "Laser Calibration Chain",kFALSE}, + {"L3Counter","" ,"","db,detDb,in,l3count","","", "L3 Counter extraction pass",kFALSE}, + {"VtxSeedCal","","","ppOpt,ry2001,in,tpc_daq,tpc,globT,-Tree,Physics,-PreVtx,FindVtxSeed,NoEvent,Corr2" + , "","","Pass0 Vertex evaluator",kFALSE}, + {"SpcChgCal","","","B2004,fcf,Corr3,OSpaceZ2,OShortR,SCEbyE,-Tree,-tags,-EvOut,-EventQA" + , "","","Pass0 SpaceCharge evaluator",kFALSE}, + {"SpcChgCalG","","","MuDST,fcf,Corr4,OSpaceZ2,OGridLeak3D,SCEbyE,-Tree,-tags,-EvOut,-EventQA" + , "","","Pass0 SpaceCharge evaluator with GridLeak, no geo or tracker dependence",kFALSE}, + {"VtxSeedCalG","","","MuDST,fcf,Corr4,FindEvtVtxSeed,-Tree,-tags,-EvOut,-EventQA" + , "","","Pass0 Vertex evaluator",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"OPTIONS ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"ITTF" ,"","","","","","request to use one of Sti(default), StiCA, Stv,StvCA, ... trackers",kFALSE}, + {"NoHits" ,"" ,"","" ,"","","Don\'t write hits into Event.Branch",kFALSE}, + {"Kalman" ,"" ,"","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Eval" ,"" ,"","","","" ,"Turn on evaluation switch for different makers",kFALSE}, + {"Ev03" ,"" ,"","","","" ,"Turn on alternative V0 method",kFALSE}, + {"off" ,"" ,"","","","" ,"Turn off default chain",kFALSE}, + {"clearDAQCTB" ,"" ,"","","" ,"" ,"clear DAQ CTB Hits for embedding",kFALSE}, + {"NoInput" ,"" ,"","","" ,"" ,"No input file",kFALSE}, + {"util" ,"" ,"","","","StAnalysisUtilities", "Load StAnalysisUtilities",kFALSE}, + {"StUtilities" ,"" ,"","","","StUtilities", "Load StUtilities",kFALSE}, + {"FieldOn" ,"" ,"","MagF" ,"","" ,"Constant nominal field",kFALSE}, + {"FieldOff" ,"" ,"","MagF" ,"","" ,"No Field option",kFALSE}, + {"HalfField" ,"" ,"","MagF" ,"","","Half Field option",kFALSE}, + {"ReverseField","" ,"","MagF" ,"","","Reverse Field option",kFALSE}, + {"NoCintDb" ,"" ,"","" ,"","","Switch off all Cint Db",kFALSE}, + {"NoStarCintDb","" ,"","" ,"","","Switch off standard Cint Db",kFALSE}, + {"NoLocalCintDb","" ,"","" ,"","","Switch off local Cint Db",kFALSE}, + {"NoMySQLDb" ,"" ,"","" ,"","","Switch off MySQL Db",kFALSE}, + {"NoCintCalDb" ,"" ,"","NoLocalCintDb" ,"","","Switch off local Cint Db",kFALSE}, + {"dbSnapshot" ,"" ,"","" ,"","","Create?use dbSnapshot",kFALSE}, + {"NoEvent" ,"" ,"","-event,-analysis" ,"","","Switch Off StEvent and StAnalysis Makers",kFALSE}, + {"MakeDoc" ,"" ,"","" ,"","","Make HTML documentation for the given Chain",kFALSE}, + {"Debug" ,"" ,"","" ,"","","Set debug flag = 1",kFALSE}, + {"Debug1" ,"" ,"","" ,"","","Set debug flag = 1",kFALSE}, + {"Debug2" ,"" ,"","" ,"","","Set debug flag = 2",kFALSE}, + {"IdTruth" ,"" ,"","" ,"","","Enable IdTruth association in StAssociationMaker",kFALSE}, + {"OldMiniMc" ,"" ,"","" ,"","","Keep pre-2008 convention for MiniMc",kFALSE}, + {"useInTracker","" ,"","","","" ,"switch from EGR to ITTF global tracks in StAssociationMaker",kFALSE}, + {"noRepeat" ,"" ,"","" ,"","","No repeat in Messenger",kFALSE}, + {"noHistos" ,"" ,"","" ,"","","Disables Attributes histos",kFALSE}, + {"noRunco" ,"" ,"","" ,"","","Disables Attributes runco",kFALSE}, + {"Higz" ,"" ,"","" ,"","","Pop Higz window",kFALSE}, + {"big" ,"" ,"","" ,"","","Set NwGEANT =20Mwords",kFALSE}, + {"bigbig" ,"" ,"","" ,"","","Set NwGEANT =40Mwords",kFALSE}, + {"huge" ,"" ,"","" ,"","","Set NwGEANT =80Mwords",kFALSE}, + {"clearmem" ,"" ,"","" ,"","","Obsolete",kFALSE}, + {"adcOnly" ,"" ,"","" ,"","","DAQMaker selects only TPC ADC events",kFALSE}, + {"InTree" ,"" ,"","in","" ,"","bfcTree Input Tree name",kFALSE}, + {"OutTree" ,"" ,"","Tree","" ,"","bfcTree Output Tree name",kFALSE}, + {"DstOut" ,"","","", "","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"McEvOut" ,"" ,"","StMcEvent,Tree" ,"","","Write StMcEvent to StTree",kFALSE}, + {"EvOut" ,"" ,"","Tree" ,"","","Write StEvent to StTree",kFALSE}, + {"GeantOut" ,"" ,"","Tree" ,"","","Write g2t tables to StTree",kFALSE}, + {"Simu" ,"" ,"","" ,"","","Simulated Data, force to use Db time stamp from used geometry",kFALSE}, + {"HitsBranch" ,"" ,"","" ,"","","take out points from dst branch and put them into HitsBranch",kFALSE}, + {"paw" ,"" ,"","" ,"","","Allocate memory for pawc",kFALSE}, + {"AllEvent" ,"" ,"","Tree" ,"","","Write whole event to StTree",kFALSE}, + {"AllTables" ,"" ,"","","" ,"St_Tables","Load Star Tables",kFALSE}, + {"FXT" ,"" ,"","","" ,"","enable anything FXT-specific",kFALSE}, + {"Corr1" ,"" ,"","AlignSectors,ExB,OBmap,OClock,OPr13","","" + , "... AlignSectors,ExB,OBmap,OClock,OPr13 ...",kFALSE}, + {"Corr2" ,"" ,"","Corr1,OTwist,OIFC" ,"","","...Corr1+OTwist,OIFC ...",kFALSE}, + {"Corr3" ,"" ,"","AlignSectors,ExB,OBmap2D,OClock,OPr13,OTwist,OIFC","","" + , "... AlignSectors,ExB,OBmap2D,OClock,OPr13,OTwist,OIFC ...",kFALSE}, + {"Corr4" ,"" ,"","Corr3,OShortR" ,"","","... Corr3+OShortR...",kFALSE}, + {"Corr5" ,"" ,"","Corr4,SCEbyE,OGridLeak3D,OSpaceZ2","","" + , "... Corr4+SCEbyE,OGridLeak3D,OSpaceZ2...",kFALSE}, + {"CorrX" ,"" ,"","ExB,OShortR,OBmap,OPr13,OIFC,OSectorAlign,NewTpcAlignment" + ",-AlignSectors,-OBmap2D,-OClock,-OTwist" ,"","","New Tpc Alignment",kFALSE}, + {"CorrY" ,"" ,"","ExB,OShortR,OBmap,OPr40,OIFC,OSectorAlign,NewTpcAlignment,OSpaceZ2,OGridLeakFull" + ",-AlignSectors,-OBmap2D,-OClock,-OTwist" ,"","","New Tpc Alignment",kFALSE}, + {"ExB" ,"" ,"","","" ,"","Activate ExB correction",kFALSE}, + {"EB1" ,"" ,"","","" ,"","Force ExB configuration 1",kFALSE}, + {"EB2" ,"" ,"","","" ,"","Force ExB configuration 2",kFALSE}, + {"OBmap" ,"" ,"","","" ,"","ExB shape correction",kFALSE}, + {"OBmap2D" ,"" ,"","","" ,"","ExB 2 D shape correction",kFALSE}, + {"OTwist" ,"" ,"","","" ,"","ExB twist correction",kFALSE}, + {"OClock" ,"" ,"","","" ,"","Clock/tpc rot. correction",kFALSE}, + {"OPr13" ,"" ,"","","" ,"","PadRow 13 distortion",kFALSE}, + {"OPr40" ,"" ,"","","" ,"","PadRow 40 distortion",kFALSE}, + {"OCentm" ,"" ,"","","" ,"","Central membrane correction",kFALSE}, + {"OECap" ,"" ,"","","" ,"","EndCap (curved) correction",kFALSE}, + {"OIFC" ,"" ,"","","" ,"","Field Cage correction",kFALSE}, + {"OSpaceZ" ,"" ,"","","" ,"","Space Charge corrections",kFALSE}, + {"OSpaceZ2" ,"" ,"","","" ,"","Space Charge corrections R2",kFALSE}, + {"OShortR" ,"" ,"","","" ,"","Shorted Ring correction",kFALSE}, + {"OGridLeak" ,"" ,"","","" ,"","Grid Leak correction",kFALSE}, + {"OGridLeak3D" ,"" ,"","","" ,"","3D Grid Leak correction",kFALSE}, + {"OGridLeakFull","" ,"","","" ,"","Full Grid Leak correction",kFALSE}, + {"OGGVoltErr" ,"" ,"","","" ,"","GG voltage error correction",kFALSE}, + {"OSectorAlign","" ,"","","" ,"","Sector alignment distortion correction",kFALSE}, + {"ODistoSmear" ,"" ,"","","" ,"","Distortion smearing accounting for calibration resolutions",kFALSE}, + {"OAbortGap" ,"" ,"","","" ,"","Abort gap cleaning event distortion correction",kFALSE}, + {"AlignSectors","" ,"","","" ,"","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"EbyET0" ,"" ,"","","" ,"","Event-by-event T0 corrections",kFALSE}, + {"DbRichSca" ,"" ,"","detdb","","", "Force reading of Rich scalers from DB",kFALSE}, + {"EastOff" ,"" ,"","","" ,"","Disactivate East part of tpc",kFALSE}, + {"WestOff" ,"" ,"","","" ,"","Disactivate West part of tpc",kFALSE}, + {"AllOn" ,"" ,"","","" ,"","Activate both East and West parts of tpc",kFALSE}, + {"ReadAll" ,"" ,"","","" ,"","Activate all branches to read",kFALSE}, + {"pp" ,"" ,"","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ppOpt" ,"" ,"","TrsPileUp","","", "pp option without enabling special cases",kFALSE}, + {"TrsPileUp" ,"" ,"","","","", "Trs pile up mode",kFALSE}, + {"TrsToF" ,"" ,"","","","", "Trs account for particle time of flight",kFALSE}, + {"SvtMatchVtx" ,"" ,"","","" ,"","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"VtxOffSet" ,"" ,"","","" ,"","Account Primary Vertex offset from y2000 data",kFALSE}, + {"Calibration" ,"" ,"","","" ,"","Calibration mode",kFALSE}, + {"beamLine" ,"" ,"","","" ,"","LMV Beam line constrain",kFALSE}, + {"beamLine3D" ,"" ,"","","" ,"","Use beamline in 3D vertex fit",kFALSE}, + {"min2trkVtx" ,"" ,"","","" ,"","...only 2 tracks needed for vertex finding",kFALSE}, + {"hitreuseon" ,"" ,"","","" ,"","...do re-use hits for other tracks in Sti",kFALSE}, + {"usePct4Vtx" ,"" ,"","","" ,"","Use Post-Crossing Tracks for vertex finding",kFALSE}, + {"useBTOF4Vtx" ,"" ,"","","" ,"","Use BTOF track matching for vertex ranking",kFALSE}, + {"useBTOFmatchOnly","","","useBTOF4Vtx","" ,"","Use BTOF track matching only",kFALSE}, + {"svt1hit" ,"" ,"","","" ,"","Use 1 SVT hit only combination",kFALSE}, + {"onlcl" ,"" ,"","","" ,"","Read/use TPC DAQ100 clusters",kFALSE}, + {"onlraw" ,"" ,"","","" ,"","Read/use TPC raw hits",kFALSE}, + {"ezTree" ,"" ,"","","" ,"","Create ezTree branch",kFALSE}, + {"BEmcDebug","" ,"","","" ,"","Turn OFF B-EMC hit reconstruction cuts",kFALSE}, + {"BEmcChkStat","" ,"","","" ,"","Turn ON status checking in raw data",kFALSE}, + {"useLDV" ,"" ,"","","" ,"","... uses laserDV database flavor",kFALSE}, + {"useCDV" ,"" ,"","","" ,"","... uses ofl database flavor",kFALSE}, + {"useNewLDV" ,"" ,"","","" ,"","... uses ofl database flavor",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Tables ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"tables" ,"","","StDbT,ebyeT,emc_T,ftpcT,gen_T,geomT,globT,l3_T,sim_T,svt_T,tpc_T","","","",kFALSE}, + {"StDbT" ,"" ,"","","" ,"StDb_Tables","Load StDb_Tables",kFALSE}, + {"ctf_T" ,"" ,"","","" ,"ctf_Tables","Load ctf_Tables",kFALSE}, + {"ebyeT" ,"" ,"","","" ,"ebye_Tables","Load ebye_Tables",kFALSE}, + {"emc_T" ,"" ,"","","" ,"emc_Tables","Load emc_Tables",kFALSE}, + {"ftpcT" ,"" ,"","","" ,"ftpc_Tables","Load ftpc_Tables",kFALSE}, + {"gen_T" ,"" ,"","","" ,"gen_Tables","Load gen_Tables",kFALSE}, + {"geomT" ,"" ,"","","" ,"geometry_Tables","Load geometry_Tables",kFALSE}, + {"globT" ,"" ,"","","" ,"global_Tables","Load global_Tables",kFALSE}, + {"l3_T" ,"", "","","" ,"l3_Tables","Load l3_Tables",kFALSE}, + {"mwc_T" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"sim_T" ,"" ,"","","" ,"sim_Tables","Load sim_Tables",kFALSE}, + {"svt_T" ,"" ,"","","" ,"svt_Tables","Load svt_Tables",kFALSE}, + {"tpc_T" ,"" ,"","" ,"" ,"","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"trg_T" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"vpd_T" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Embedding" ,"","","-Simu" ,"","","Embedding run",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Utilities ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Geometry+Mag","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"pgf77" ,"" ,"","","" ,"pgf77VMC","Fortran",kFALSE}, + {"rootcern" ,"" ,"","geant3","" ,"","ROOT minicern OBSOLETE",kFALSE}, + {"StarMiniCern","" ,"","geant3","" ,"","STAR addition to minicern OBSOLETE",kFALSE}, + {"mysql" ,"" ,"","","" ,"libmysqlclient","MySQL",kFALSE}, + {"libPhysics" ,"" ,"","","" ,"libPhysics","TVector",kFALSE}, + {"geant3vmc" ,"" ,"","-usexgeom,-xgeometry","", "libGeom,libVMC,libgeant3", "VMC geant3",kFALSE}, + {"geant3" ,"" ,"","geant3vmc","" ,"EG,Pythia6,EGPythia6","VMC geant3 plus ROOT EG,pythia6",kFALSE}, + {"geometry" ,"" ,"","","" ,"geometry","geometry+Mag.Field",kFALSE}, + {"StarMagField","", "","magF" ,"","VMC,StarMagField","Load StarMagField",kFALSE}, + {"geomNoField" ,"" ,"","-geometry,StarMagField" ,"","geometryNoField","geometry-Mag.Field",kFALSE}, + {"xgeometry" ,"" ,"","-geometry,-geomNoField" ,"","xgeometry","AgML geometry-Mag.Field",kFALSE}, + {"UseProjectedVertex" ,"" ,"","" ,"","","Run StBTofCalibMaker w/wo Primary Vertex",kFALSE}, + {"ImpBToFt0Mode" ,"" ,"","" ,"","","pppAMode in StVpdCalibMaker and StBTofCalibMaker",kFALSE}, + {"setOutlierRej4BToft0" ,"" ,"","" ,"","","setPPPAOutlierRej is set in StBTofCalibMaker",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"vpd" ,"" ,"","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"tls" ,"" ,"","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"rts" ,"" ,"","","" ,"RTS","load libRTS",kFALSE}, + {"daq" ,"" ,"","rts","" ,"StDaqLib,StDAQMaker","Load StDAQMaker",kFALSE}, + {"SCL" ,"" ,"","","" ,"StarClassLibrary","Load StarClassLibrary",kFALSE}, + {"SvtCL" ,"" ,"","","" ,"Geom,StSvtClassLibrary","",kFALSE}, + {"TbUtil" ,"" ,"","sim_T,tpc_t,globT,SCL","" ,"StTableUtilities","Load StTableUtilities",kFALSE}, + {"TofUtil" ,"" ,"","","" ,"StTofUtil","Load StTofUtil",kFALSE}, + {"BTofUtil" ,"" ,"","","" ,"StBTofUtil","Load StBTofUtil",kFALSE}, + {"ETofUtil" ,"" ,"","","" ,"StETofUtil","Load StETofUtil",kFALSE}, + {"MtdUtil" ,"" ,"","","" ,"StMtdUtil","Load StMtdUtil",kFALSE}, + {"StBichsel" ,"" ,"","","" ,"StBichsel","Load Bichsel model for dE/dx",kFALSE}, + {"StEvent" ,"","","globT,SCL,TRGDef,StBichsel,EmcUtil,TbUtil,detDb","","StEvent","Load StEvent",kFALSE}, + {"PxlUtil" ,"" ,"","","", "StPxlUtil","Load StPxlUtil",kFALSE}, + {"IstUtil" ,"" ,"","","", "StIstUtil","Load StIstUtil",kFALSE}, + {"SsdUtil" ,"" ,"","StarMagField,StEvent","" ,"Geom,StSsdUtil","Load SSD Util",kFALSE}, + {"SstUtil" ,"" ,"","StarMagField,StEvent","" ,"Geom,StSstUtil","Load SST Util",kFALSE}, + {"EmcUtil" ,"" ,"","emc_T,geomT,StDbT","" ,"StEmcUtil","Load StEmcUtil",kFALSE}, + {"EEmcUtil" ,"" ,"","","" ,"StEEmcUtil","Load StEEmcUtil",kFALSE}, + {"FmsUtil" ,"" ,"","","" ,"StFmsUtil,libMinuit","Load StFmsUtil",kFALSE}, + {"FgtUtil" ,"" ,"","","" ,"StFgtUtil","Load StFgtUtil",kFALSE}, + {"GmtUtil" ,"" ,"","","" ,"StGmtUtil","Load StGmtUtil",kFALSE}, + {"l3Util" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"PmdUtil" ,"" ,"","","", "StPmdUtil","Load StPmdUtil",kFALSE}, + {"QUtils" ,"" ,"","PmdUtil,EmcUtil","", "","Load QA Libs dependencies",kFALSE}, + {"Stu" ,"" ,"","","", "StEventUtilities","Load StEventUtilities",kFALSE}, + {"MuDSTDeps" ,"","","StEvent,Stu,StBichsel","" + , "StStrangeMuDstMaker,Tree","Load MuDST misc. dependencies",kFALSE}, + {"MuDST" ,"" ,"","MuDSTDeps,EmcUtil,TofUtil,BTofUtil,PmdUtil","" + , "StMuDSTMaker","Load MuDST library",kFALSE}, + {"picoEvt" ,"","","StEvent,Stu","", "StPicoEvent","Load picoEvent and dependencies",kFALSE}, + {"picoDst" ,"","","picoEvt,EmcUtil,TofUtil,BTofUtil,PmdUtil","" + , "StPicoDstMaker","Load PicoDST library",kFALSE}, + {"geantL","","","geomT,gen_T,sim_T,StarMagField","","geometry,Geom,St_db_Maker,St_g2t,St_geant_Maker" + , "Load GeantLibs",kFALSE}, + {"gstarLib","","","" ,"","gstar","Load gstar lib",kFALSE}, + {"flux" ,"","","simu" ,"","flux","Load flux lib",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Generators ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"stargen", "","", "gen_T,sim_T" , "", "libVMC.so,libStarGeneratorUtil.so,libStarGeneratorEvent.so,libStarGeneratorBase.so,libStarGeneratorFilt.so,libMathMore.so","STAR Generator BASE",false}, + {"pythia8.1.86","","","stargen", "", "Pythia8_1_86.so", "Load Pythia 8.1.86 generator", false }, + {"pythia8.2.35","","","stargen", "", "Pythia8_2_35.so", "Load Pythia 8.1.86 generator", false }, + {"hijing1.383" ,"","","stargen", "", "Hijing1_383.so", "Load Hijing 1.383 generator", false }, + {"kinematics" ,"","","stargen", "", "Kinematics.so", "Load STAR Particle Gun", false }, + {"genreader" ,"","","stargen", "", "StarGenEventReader.so", "Load STAR Gen Event Reader", false }, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"I/O Makers ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"gstar" ,"geant" ,"","-fzin,-ntin,-geant,Simu,geantL","St_geant_Maker" + , "","gstar for 80 muon tracks with pT = 1GeV in |eta|<4",kFALSE}, + {"pythia" ,"geant" ,"","-gstar,-fzin,-ntin,-geant,geantL","St_geant_Maker" + , "Pythia6_4_26,bpythia","Load Pythia in starsim, set pp 510 GeV",kFALSE}, + {"Wenu" ,"" ,"","pythia","", "" ,"set pp 510 GeV -> W+/- -> e+/- nu/nubar",kFALSE}, + {"hijing" ,"geant" ,"","-gstar,-fzin,-ntin,-geant,geantL","St_geant_Maker" + ,"StarGeneratorUtil,StarGeneratorEvent,StarGeneratorBase,Hijing1_383" + , "Load Hijing in starsim, set AuAu200 GeV",kFALSE}, + {"tdaq" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"miniDAQ" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"fzin" ,"geant","","Simu,-gstar,-ntin,-geant,geantL","St_geant_Maker","" + , "read gstar fz-file",kFALSE}, + {"UseXgeom","","","-geometry,-geomNoField,xgeometry","","","suppress mortran version of geometry",kFALSE}, + {"in" ,"" ,"","" , "StIOMaker","StIOMaker","Read [DAQ|ROOT] input file",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Db makers ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"db" ,"db" ,"","StDbT" ,"St_db_Maker","StDbLib,StDbBroker,St_db_Maker","",kFALSE}, + {"magF" ,"MagField","","StDbT,db,detDb","StMagFMaker","StarMagField,StMagF" + , "Mag.field map with scale factor from Db",kFALSE}, + {"detDb","detDb","","db","StDetectorDbMaker","StDetectorDbMaker","Load StDetectorDbMaker library",kFALSE}, + {"mtin" ,"geant" ,"","-fzin,-geant,-gstar,geantL,gstarLib,-magF","St_geant_Maker" + , "gstar","read event from MuDst",kFALSE}, + {"tpcDB" ,"tpcDB","","tpc_T,dbutil,detDb,StarMagField,magF,StEvent","StTpcDbMaker","StTpcDb","",kFALSE}, + {"dbutil" ,"" ,"","detDb,StDbT" ,"","StDbUtilities","Load StDbUtilities",kFALSE}, + {"svtDb" ,"svtDb","","tpcDb,SvtCL", "StSvtDbMaker","StSvtDbMaker","Load and run SvtDbMaker",kFALSE}, + {"ssdDb" ,"ssdDb","","tpcDb,SsdUtil","StSsdDbMaker","StSsdDbMaker","Load and run SsdDbMaker",kFALSE}, + {"sstDb" ,"sstDb","","tpcDb,SstUtil","StSstDbMaker","StSsdDbMaker","Load and run SstDbMaker",kFALSE}, + {"svtCalDb" ,"" ,"","svtDb" ,"","","Declare Calibrations/svt as while list member",kFALSE}, + {"ssdCalDb" ,"" ,"","ssdDb" ,"","","Declare Calibrations/ssd as while list member",kFALSE}, + {"sstCalDb" ,"" ,"","sstDb" ,"","","Declare Calibrations/sst as while list member",kFALSE}, + {"eemcDb" ,"eeDb" ,"","db,EEmcUtil", "StEEmcDbMaker","StEEmcDbMaker","Load EEmcDbMaker",kFALSE}, + {"fmsDb" ,"fmsDb","","db,fmsutil", "StFmsDbMaker","StFmsDbMaker","Load FmsDbMaker",kFALSE}, + {"fcsDb" ,"fcsDbMkr","","", "StFcsDbMaker","StFcsDbMaker","Load FcsDbMaker",kFALSE}, + {"fgtDb" ,"fgtDb","","db,fgtutil", "StFgtDbMaker","StFgtDbMaker","Load FgtDbMaker",kFALSE}, + {"pxlDb" ,"pxlDb","","tpcDb PxlUtil", "StPxlDbMaker","StPxlDbMaker","Load PxlDbMaker",kFALSE}, + {"istDb" ,"istDb","","tpcDb", "StIstDbMaker","StIstDbMaker","Load IstDbMaker",kFALSE}, + {"epdDb" ,"epdDb","","tpcDb", "StEpdDbMaker","StEpdDbMaker","Load EpdDbMaker",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"MAKERS ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"ntin" ,"geant","","paw,-fzin,-geant,-gstar,Simu,geantL,gstarLib","St_geant_Maker" + , "","read event generated Hbook nt-file",kFALSE}, + {"PrepEmbed","","","geantEmb","StPrepEmbedMaker","St_geant_Maker" + , "Prepare kinematics for embedding",kFALSE}, + {"PythiaEmbed","","","pythia,-Simu","","", "Prepare kinematics for embedding",kFALSE}, + {"geant" ,"geant","","geantL" ,"St_geant_Maker","","passive GEANT",kFALSE}, + {"geantEmb" ,"geant","","geantL" ,"St_geant_Maker","","GEANT embedding mode",kFALSE}, + {"RootVMC","","","-geant,-fzin,-ntin,StarMagField,-geantL,-geometry,-geomNoField,geant3","","","",kFALSE}, + {"VMCAppl" ,"","","geomT,gen_t,sim_T,tpcDB,RootVMC,","","StSvtDbMaker,StSsdDbMaker,StarVMCApplication" + , "VMC G3",kFALSE}, + {"VMC" ,"geant","","Simu,VMCAppl,-geant","StVMCMaker", "StVMCMaker","VMC Maker",kFALSE}, + {"VMCPassive" ,"geant","","VMCAppl", "StVMCMaker","StVMCMaker","VMC Maker in Passive Mode",kFALSE}, + {"trg" ,"trg","l0Chain","trg_T,globT,db","St_trg_Maker","St_trg,St_trg_Maker" + , "trigger analysis for Year 2001-2005 data",kFALSE}, + {"TRGDef" ,"" ,"","","" ,"StTriggerDataMaker","Load StTriggerData",kFALSE}, + {"trgd" ,"trgd","","TRGDef" ,"StTriggerDataMaker","StTriggerDataMaker","Get trigger data",kFALSE}, + {"MakeEvent","0Event","","StEvent,detDb","StEventMaker","StTpcDb,StEventMaker" + , "",kFALSE}, + {"LaserAvEv" ,"","","" ,"StLaserAvEventMaker","StLaserAvEventMaker","Hejrad",kFALSE}, + {"LaserAvCl" ,"","","" ,"StLaserAvClusterMaker","StLaserAvClusterMaker","",kFALSE}, + {"l0" ,"l0Chain","","globT,ctf,trg" ,"StMaker","StChain","",kFALSE}, + {"ctf" ,"ctf","l0Chain","ctf_T,db" ,"St_ctf_Maker","ctf,St_ctf,St_ctf_Maker","ToF simulation",kFALSE}, + {"mwc" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ppMCTrig" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"pp2pp" ,"","","", "St_pp2pp_Maker","St_pp2pp_Maker","pp->pp",kFALSE}, + {"mtdFilt" ,"","","", "StMtdEvtFilterApplyMaker","StDataFilterMaker","MTD-based event filtering",kFALSE}, + {"mtd" ,"MtdChain","","mtdDat,mtdMatch","StMaker", "StChain","MTD Chain",kFALSE}, + {"mtdDat" ,"mtd_raw","MtdChain","db,MuDst","StMtdHitMaker","StEvent,StMtdHitMaker" + , "MTD hit maker",kFALSE}, + {"mtdTrkMask","","","db","StMtdTrackingMaskMaker" ,"StMtdEvtFilterMaker","MTD track masking",kFALSE}, + {"epdHit", "", "", "epdDb,event", "StEpdHitMaker", "StEpdHitMaker","EPD hit maker", kFALSE}, + {"tpc" ,"","","TpxRaw,TpxClu,tpcI" ,"","","WARNING *** Option is OBSOLETE *** use TpxClu instead",kFALSE}, + {"tpcI" ,"tpcChain","","db,tpcDB,TpcHitMover", "StMaker","StChain","tpc with ITTF",kFALSE}, + {"tpcX" ,"tpcChain","","-tpcI,tpx,MakeEvent" ,"StMaker","StChain","tpc+tpcx with ITTF",kFALSE}, + {"Trs","Trs","tpcChain","scl,tpcDB,TrsToF,StEvent,EmbeddingShortCut","StTrsMaker","StTrsMaker","",kFALSE}, + {"TpcRS","","tpcChain","scl,tpcDB,-Trs,-EmbeddingShortCut,Stu","StTpcRSMaker" + ,"libMathMore,StdEdxY2Maker,StTpcRSMaker", "New Tpc Response Simulator",kFALSE}, + {"tfs" ,"","","TpcFastSim" ,"","","WARNING *** Option is OBSOLETE *** use TpcFastSim instead",kFALSE}, + {"TpcFastSim" ,"tpc_hits","tpcChain","MakeEvent,Simu,-trs,-TpcRS,-tcl,-tpxclu,-fcf,-tpc_daq,StEvent," + "-TpcHitMover,EmbeddingShortCut" ,"StTpcFastSimMaker","St_tcl_Maker","use tfs (no Trs or TpcRS)",kFALSE}, + {"EmbeddingShortCut","","","", "","","Short Cut for StdEdxY2Maker and StTpcHitMover",kFALSE}, + {"StMcEvent" ,"","","gen_t,sim_T" ,"","StMcEvent","",kFALSE}, + {"McEvent" ,"","","StEvent,tpcDb,EEmcUtil,EmcUtil,StMcEvent","StMcEventMaker","StMcEventMaker","",kFALSE}, + {"Mixer" ,"tpc_raw","","daq","StMixerMaker" ,"StTrsMaker,StMixerMaker","",kFALSE}, + {"St_tpc" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"St_svt" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"tpc_daq" ,"","","TpxRaw", "","","WARNING *** Option is OBSOLETE *** use TpxRaw instead",kFALSE}, + {"tcl","","","TpxRaw,TpxClu,MakeEvent","","" + , "WARNING *** Option is OBSOLETE *** use option TpxRaw,TpxClu,MakeEvent instead",kFALSE}, + {"fcf" ,"","","-tcl,tpcX", "","","WARNING *** Option is OBSOLETE *** use tpcX instead",kFALSE}, + {"tpx" ,"tpc_hits","tpcChain","MakeEvent,tpc_T,StEvent,rts,detDb" + , "StTpcHitMaker","StTpcHitMaker","TPC hit reader for tpc + tpx via EVP_READER",kFALSE}, + {"gmt" ,"GmtChain","","gmtDat,gmtClu" ,"StMaker","StChain","Gmt data Chain",kFALSE}, + {"gmtDat" ,"","GmtChain", "event","StGmtRawMaker","StGmtRawMaker", "GMT Data reader",kFALSE}, + {"gmtClu" ,"","GmtChain","gmtutil","StGmtClusterMaker","StGmtClusterMaker","GMT cluster maker",kFALSE}, + {"TpxPulser","TpxPulser","tpcChain","rts,detDb","StTpcHitMaker","StTpcHitMaker","TPC+TPX pulser analysis" + , kFALSE}, + {"TpxPadMonitor","","","" ,"","","WARNING *** Option is OBSOLETE ***", kFALSE}, + {"TpxAvLaser","TpxAvLaser","tpcChain","rts,detDb","StTpcHitMaker","StTpcHitMaker" + , "TPC+TPX averaging laser events into Sparse histogram on pixels level", kFALSE}, + {"TpxDumpPxls2Nt","TpxDumpPxls2Nt","tpcChain","rts,detDb","StTpcHitMaker","StTpcHitMaker" + , "TPC+TPX pixel dump to NTuple", kFALSE}, + {"TpxRaw","TpxRaw","tpcChain","rts,detDb,StEvent","StTpcHitMaker","StTpcHitMaker" + , "TPC+TPX convert DAQ Tpc Raw Data to TpcRawEvent used by TpcMixer and/or TpxClu", kFALSE}, + {"TpcMixer","","tpcChain","StEvent,rts,-Mixer,-tpx,TpxClu" ,"StTpcMixerMaker","StTpcHitMaker","",kFALSE}, + {"TpxClu","tpc_hits","tpcChain","rts,tpcDb,detDb,-tpx,-tpc_daq,-fcf","StTpcRTSHitMaker" + ,"StTpcHitMaker", "RTS(online) cluster maker",kFALSE}, + {"TpxClu2D" ,"","","TpxClu","","", "RTS(online) 2D-cluster maker",kFALSE}, + {"TpcAvCluster","TpcAvCluster","tpcChain","rts,detDb","StTpcAvClusterMaker","StTpcHitMaker" + , "TPC+TPX averaging laser events into Sparse histogram on cluster level", kFALSE}, + {"Velo" ,"","tpcChain","tpc_T" ,"StVeloMaker","StVeloMaker","",kFALSE}, + {"TpcHitMover" ,"tpc_hit_mover","tpcChain","tpcDb,StEvent,Stu" + , "StTpcHitMover","StTpcHitMoverMaker","TPC hits coord transform + corrections",kFALSE}, + {"tpt","","ITTF","", "","","WARNING *** Option is OBSOLETE *** use ITTF",kFALSE}, + {"tpt_old","","ITTF","", "","","WARNING *** Option is OBSOLETE *** use ITTF",kFALSE}, + {"TpcT0" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ChargeStep","","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"laser" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"PreVtx" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"svt" ,"svtChain","","svt_T,SvtCL" ,"StMaker","StChain","",kFALSE}, + {"svt_daq" ,"svt_raw","svtChain","daq,SvtCL" ,"StSvtDaqMaker","StSvtDaqMaker","",kFALSE}, + {"sss" ,"","","SvtSlowSim" ,"","","Short cut for SvtSlowSim",kFALSE}, + {"SvtSlowSim" ,"","","SvtSSim,SvtOnlSeq" ,"","","Short cut for SvtSlowSim and SvtOnlSeq",kFALSE}, + {"SvtSSim","SvtSSimu","svtChain","svtCalDb,SvtCL,Simu,SvtSeqAdj,SvtClu,SvtCluAnal,SvtHit" + , "StSvtSimulationMaker","StSvtSimulationMaker,StSvtCalibMaker","",kFALSE}, + {"SvtEmbed" ,"","","SvtSSim,SvtEm,SvtOnlSeq" ,"","","Short cutfor SvtSlowSim and SvtOnlSeq",kFALSE}, + {"SvtEm","SvtEm","svtChain","svtCalDb,SvtCL,Simu,SvtSeqAdj,SvtClu,SvtCluAnal,SvtHit","StSvtEmbeddingMaker" + , "StSvtSimulationMaker,StSvtCalibMaker","",kFALSE}, + {"SvtOnlSeq" ,"SvtOnlSeq","svtChain","svtCalDb,SvtCL,Simu,SvtSeqAdj,SvtClu,SvtCluAnal,SvtHit" + , "StSvtOnlineSeqAdjSimMaker","StSvtSimulationMaker","",kFALSE}, + {"srs","","","sfs", "","","WARNING *** Option is OBSOLETE use sfs instead ***",kFALSE}, + {"sfs","svt_hits","svtChain","svtDb,Simu,SvtCL,-sss,-SvtSlowSim,StEvent,MakeEvent" + , "St_sfs_Maker","St_srs_Maker","Very fast simulator for SVT",kFALSE}, + {"SvtSeqAdj" ,"SvtSeqAdj","svtChain","SvtCL" ,"StSvtSeqAdjMaker","StSvtSeqAdjMaker","",kFALSE}, + {"SvtClu" ,"SvtClu","svtChain","svt_T,StEvent,SvtCL","StSvtClusterMaker","StSvtClusterMaker","",kFALSE}, + {"SvtCluAnal" ,"SvtCluAnal","svtChain","SvtCL","StSvtClusterAnalysisMaker","StSvtClusterMaker","",kFALSE}, + {"SvtHit" ,"svt_hits","svtChain","SvtCL" ,"StSvtHitMaker","StSvtClusterMaker","",kFALSE}, + {"SvtVtx" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"stk" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Est" ,"","","SvtIT", "","","WARNING *** Option is OBSOLETE *** use SvtIT instead",kFALSE}, + {"global" ,"","","ITTF", "","","WARNING *** Option is OBSOLETE use ITTF instead***",kFALSE}, + {"Match" ,"","","ITTF", "","","WARNING *** Option is OBSOLETE use ITTF instead***",kFALSE}, + {"Vertex" ,"","","ITTF", "","","WARNING *** Option is OBSOLETE use ITTF instead***",kFALSE}, + {"Primary" ,"","","ITTF", "","","WARNING *** Option is OBSOLETE use ITTF instead***",kFALSE}, + {"V0" ,"","","V02", "","","WARNING *** Option is OBSOLETE use V02 instead***",kFALSE}, + {"Xi" ,"","","Xi2", "","","WARNING *** Option is OBSOLETE use Xi2 instead***",kFALSE}, + {"Kink" ,"","","Kink2", "","","WARNING *** Option is OBSOLETE use Kink2 instead***",kFALSE}, + {"dst" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Fglobal" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Fprimary" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"dEdx" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"svtdEdx" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Event" , "","","MakeEvent", "","","Request to initialize event",kFALSE}, + {"pxlRaw" ,"","","pxlDb", "StPxlRawHitMaker", "StPxlRawHitMaker", "PXL raw hit maker",kFALSE}, + {"pxlFastSim" ,"","","pxlRaw,StMcEvent,StEvent" + , "StPxlSimMaker","StPxlSimMaker","PXL Fast Simulator",kFALSE}, + {"pxlSlowSim" ,"","","pxlRaw,StMcEvent,StEvent" + , "StPxlSimMaker","StPxlSimMaker","PXL Slow Simulator",kFALSE}, + {"pxlCluster" ,"","","pxlRaw", "StPxlClusterMaker", "StPxlClusterMaker", "PXL cluster maker",kFALSE}, + {"pxlHit" ,"","","event pxlCluster", "StPxlHitMaker", "StPxlHitMaker", "PXL hit maker",kFALSE}, + {"istSlowSim", "", "","StMcEvent,StEvent,IstUtil", "StIstSlowSimMaker", + "StIstSimMaker", "IST Slow simulator", kFALSE}, + {"istFastSim","","","StMcEvent,StEvent","StIstFastSimMaker","StIstSimMaker","IST Fast simulator", kFALSE}, + {"istRawHit", "", "", "istUtil,istDb","StIstRawHitMaker", "StIstRawHitMaker","IST RAWhit maker", kFALSE}, + {"istCluster", "", "", "istRawHit","StIstClusterMaker", "StIstClusterMaker","IST Cluster maker", kFALSE}, + {"istHit", "", "", "event,istCluster", "StIstHitMaker", "StIstHitMaker","IST Hit Maker",kFALSE}, + {"ssddat" ,"","","ssd_daq" ,"","","SSD full chain for Real Data",kFALSE}, + {"sstdat" ,"","","sst_daq" ,"","","SST full chain for Real Data",kFALSE}, + {"ssd_daq","","","ssdCalDb,svt_T,-sls,-spa,ssdUtil","StSsdDaqMaker","StSsdDaqMaker","... SSD Daq",kFALSE}, + {"sst_daq","","","sstCalDb,svt_T,-sls,-spa,sstUtil","StSstDaqMaker","StSstDaqMaker","... SSDT Daq",kFALSE}, + {"ssdfast" ,"","","ssdDb,StMcEvent,StEvent","StSsdFastSimMaker","StSsdFastSimMaker", + "... SSD fast simulator" ,kFALSE}, + {"ssd" ,"","","ssdCalDb,sls,spa,sptd" ,"","","SSD full chain for simulation",kFALSE}, + {"sls","","","McEvent,Simu,svt_T,SvtCL" + , "St_sls_Maker","StSsdSimulationMaker", "... SSD slow simulator",kFALSE}, + {"spa" ,"SpaStrip","","Simu,svt_T,SvtCL,ssdUtil","St_spa_Maker","StSsdSimulationMaker" + , "... SSD Pedestal Annihilator",kFALSE}, + {"SsdEmbed" ,"","","","StSsdEmbeddingMaker","StSsdSimulationMaker","... SSD Mixing geom Maker" ,kFALSE}, + {"spt" ,"","","sptd", "","" ,"Alias for sptd - please replace in chain",kFALSE}, + {"sptd" ,"","","ssdUtil,svt_T", "StSsdPointMaker","StSsdPointMaker","... SSD Point Creator",kFALSE}, + {"sptt" ,"","","sstUtil", "StSstPointMaker","StSstPointMaker", "... SST Point Creator",kFALSE}, + {"sstHit", "", "", "sst_daq,sptt", "", "","SST reconstruction chain",kFALSE}, + {"ssdpre" ,"","","ssdEmbed,spa" ,"","","SSD full chain for pre-embedding",kFALSE}, + {"ssdAdd" ,"","","ssd_daq","StSsdAddMaker","StSsdAddMaker", "... SSD merge maker",kFALSE}, + {"ssdE" ,"","","ssdpre,ssdAdd" ,"","","SSD full chain for embedding",kFALSE}, + {"ZDCVtx" ,"","","db" ,"StZdcVertexMaker","StZdcVertexMaker","",kFALSE}, + {"emcDY2" ,"emcRaw","","daq,eemcDb,EEmcUtil,emc_T,EmcUtil,StEvent,PreEcl,Epc" + ,"StEmcRawMaker","StEmcRawMaker", "B/E EMC data common maker",kFALSE}, + {"eemcD" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"emcY2" ,"","","emc_T,tpc_T,db,emcSim,PreEcl,epc","","" + , "EMC Chain for Y2A (must be before makers which include in this chain)",kFALSE}, + {"emcSim" ,"","","emc_T,EmcUtil,McEvent,MuDST","StEmcSimulatorMaker","StEmcSimulatorMaker" + , "New simulator for BEMC",kFALSE}, + {"EEfs" ,"eefs","","eemcDb,EEmcUtil,MuDst","StEEmcFastMaker","StEEmcSimulatorMaker" + , "EEMC fast simulator",kFALSE}, + {"EEss" ,"eess","","-eefs,eemcDb,EEmcUtil,MuDst","StEEmcSlowMaker","StEEmcSimulatorMaker" + , "EEMC slow simulator",kFALSE}, + {"BEmcMixer", "","","", "StEmcMixerMaker","StEmcMixerMaker","BEMC mixer",kFALSE}, + {"emcAtoE" ,"bemcA2E","" ,"db","StEmcADCtoEMaker","StEmcADCtoEMaker" + , "B-EMC ADC to E converter OBSOLETE for data in Run 9 or later",kFALSE}, + {"PreEcl" ,"preecl","","" ,"StPreEclMaker", "StPreEclMaker","B-EMC Cluster finder",kFALSE}, + {"Epc" ,"epc","","PreEcl,EmcUtil" ,"StEpcMaker","StEpcMaker","B-EMC point maker",kFALSE}, + {"EEmcMixer", "","","", "StEEmcMixerMaker","StEEmcSimulatorMaker","EEMC mixer",kFALSE}, + {"eemcA2E","eemcA2E","" ,"db","StEEmcA2EMaker", "StEEmcA2EMaker","E-EMC ADC to E converter",kFALSE}, + {"eemCl" ,"eemCl","","db","StEEmcClusterMaker" ,"StEEmcClusterMaker","E-EMC clustering",kFALSE}, + {"btof" ,"BTofChain","","btofDat,vpdCalib,btofMatch,btofCalib","StMaker" + , "StChain","BTOF Chain",kFALSE}, + {"BtofDat" ,"tof_raw","BTofChain","db,BTofutil","StBTofHitMaker","StEvent,StBTofHitMaker" + , "BTOF hit maker",kFALSE}, + {"vpdSim" ,"","VpdChain","BTofUtil","StVpdSimMaker","StEvent,StMcEvent,StBTofHitMaker,StVpdSimMaker" + , "Vpd Simulator",kFALSE}, + {"vpdCalib","","BTofChain","db,BTofUtil","StVpdCalibMaker" ,"StVpdCalibMaker","VPD calibration",kFALSE}, + {"btofSim" ,"","BTofChain","BTofUtil" ,"StBTofSimMaker", + "StEvent,StMcEvent,StTofUtil,StBTofHitMaker,StBTofSimMaker","BTOF Simulator",kFALSE}, + {"btofMixer" ,"","BTofChain","BTofUtil","StBTofMixerMaker","StEvent,StBTofHitMaker,StBTofMixerMaker" + , "BTof Mixer",kFALSE}, + {"ETofDat", "etof_raw","ETofChain", "db, ETofUtil", "StETofDigiMaker", "StEvent,StETofDigiMaker", + "ETOF digi maker",kFALSE}, + {"ETofCalib", "", "ETofChain", "db, ETofUtil, muDst", "StETofCalibMaker", "StETofCalibMaker", + "ETOF calibration",kFALSE}, + {"ETofSim" , "", "ETofChain", "", "StETofSimMaker", "StETofSimMaker", + "ETOF simulator",kFALSE}, + {"mtdSim" ,"","MtdChain","","StMtdSimMaker", "StEvent,StMtdSimMaker","MTD Simulator",kFALSE}, + {"ToF" ,"TofChain","","tofDat,tofrMatch,tofpMatch,tofCalib,geant","StMaker","StChain","ToF Chain",kFALSE}, + {"ToFx" ,"TofChain","","tofXDat,tofrMatch,tofCalib,geant" ,"StMaker","StChain","ToFx Chain",kFALSE}, + {"tofDat" ,"tof_raw","TofChain","db,Tofutil","StTofMaker","StEvent,StTofMaker", + "TOF Data base chain", kFALSE}, + {"tofXDat" ,"tof_raw","TofChain","db,Tofutil","StTofHitMaker","StEvent,StTofMaker,StTofHitMaker", + "TOF hit maker", kFALSE}, + {"tofsim" ,"","TofChain","TofUtil","StTofSimMaker","StEvent,StTofMaker,StTofSimMaker", + "TOF Simulator, Tof version before y2009", kFALSE}, + {"tofrMatch" ,"","TofChain","db,TofUtil","StTofrMatchMaker","StTofrMatchMaker", + "TPC to TOFr track matching", kFALSE}, + {"tofpMatch" ,"","TofChain","db,TofUtil","StTofpMatchMaker","StTofpMatchMaker", + "TPC to TOFp track matching", kFALSE}, + {"tofCalib" ,"","TofChain","db,TofUtil","StTofCalibMaker","StTofCalibMaker", "TOF calibration",kFALSE}, + {"FiltGamma" ,"","","StEvent,StMcEvent,EmcUtil", + "StGammaFilterMaker","StFilterMaker", "BEmc Gamma filtering", kFALSE}, + {"FiltEemcGamma" ,"","","StEvent,StMcEvent,EmcUtil", + "StEemcGammaFilterMaker","StFilterMaker", "EEmc Gamma filtering", kFALSE}, + {"rich" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Rrs" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"rch" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"RichPiD" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"l3" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"l3cl" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"l3t" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"l3onl" ,"","","" ,"Stl3RawReaderMaker","Stl3RawReaderMaker","",kFALSE}, + {"l3count" ,"","","" ,"Stl3CounterMaker","Stl3RawReaderMaker","",kFALSE}, + {"bbcSim" ,"","","db","StBbcSimulationMaker" ,"StBbcSimulationMaker","BBC Simulator",kFALSE}, + {"fmsSim","" ,"","StEvent,fmsDb", + "StFmsFastSimulatorMaker","StFmsFastSimulatorMaker","FMS Fast Simulator", kFALSE}, + {"fmsDat" ,"","", "StEvent,fmsDb", + "StFmsHitMaker","StFmsHitMaker","Fill FMS struct and zero TRG", kFALSE}, + {"fpsDat" ,"","", "StEvent,fmsdb", + "StFpsRawHitMaker","StFpsRawHitMaker","Fill FPS struct", kFALSE}, + {"fmsPoint" ,"","", "event,fmsDb", + "StFmsPointMaker","StFmsPointMaker","Fill FMS clusters and points", kFALSE}, + {"fmsfps" ,"","", "event,fmsDb", + "StFmsFpsMaker","StFmsFpsMaker","Fill FPS association in FMS points", kFALSE}, + {"fcsSim","" ,"","StEvent,fcsDb", + "StFcsFastSimulatorMaker","StFcsFastSimulatorMaker","FCS Fast Simulator", kFALSE}, + {"fcsDat","" ,"","StEvent,fcsDb", + "StFcsRawHitMaker","StFcsRawHitMaker","FCS daq file reader/hit maker", kFALSE}, + {"fcsWFF" ,"","", "StEvent,fcsDb", + "StFcsWaveformFitMaker","StFcsWaveformFitMaker","Fit FCS waveform", kFALSE}, + {"fcsCluster" ,"","", "StEvent,fcsDb", + "StFcsClusterMaker","StFcsClusterMaker","Fill FCS clusters", kFALSE}, + {"fcsPoint" ,"","", "StEvent,fcsDb", + "StFcsPointMaker","StFcsPointMaker,libMinuit","Fill FCS points", kFALSE}, + {"fpd" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"fgt" ,"FgtChain","","fgtDat,fgtClu,fgtAtoC" ,"StMaker","StChain","Fgt data Chain",kFALSE}, + {"fgtDat" ,"","", "event,fgtdb","StFgtRawMaker","StFgtRawMaker", "FGT Data reader",kFALSE}, + {"fgtAtoC" ,"","", "fgtdb", "StFgtA2CMaker","StFgtA2CMaker", "FGT ADC to Charge maker",kFALSE}, + {"fgtClu" ,"","", "fgtutil", "StFgtClusterMaker","StFgtClusterMaker", "FGT cluster maker",kFALSE}, + {"fgtAtoC" ,"","", "fgtdb", "StFgtA2CMaker","StFgtA2CMaker", "FGT ADC to Charge maker",kFALSE}, + {"fgtPoint" ,"","", "event", "StFgtPointMaker", "StFgtPointMaker", "Creates FGT points",kFALSE}, + {"genvtx" ,"" ,"","EEmcUtil","StGenericVertexMaker" + , "Minuit,StGenericVertexMakerNoSti" + , "Generic Vertex Finder library (default is MinuitVertexFinder)",kFALSE}, + {"VFMinuit" ,"" ,"" ,"genvtx" ,"","","... Generic VF will use Minuit method",kFALSE}, + {"CtbMatchVtx" ,"" ,"","VFMinuit","" ,"","... CTB Matching ON in Vertex Finding",kFALSE}, + {"VFMinuit2" ,"" ,"","VFMinuit","","","... Generic VF will use Minuit method w/rank mode 2",kFALSE}, + {"VFMinuit3" ,"" ,"","VFMinuit","","","... Generic VF will use Minuit method w/rank mode 3",kFALSE}, + {"VFFV" ,"" ,"","genvtx" ,"","","... Fixed dummy VF method",kFALSE}, + {"VFMCE" ,"" ,"","genvtx" ,"","","... Fixed vertex from MCEvent",kFALSE}, + {"VFppLMV" ,"" ,"","genvtx" ,"","","... VertexMaker will use ppLMV method",kFALSE}, + {"VFppLMV5" ,"" ,"","VFppLMV" ,"","","... VertexMaker will use ppLMV method (tuned)",kFALSE}, + {"VFStoreX" ,"" ,"","" ,"","","... VertexMaker will use save at least 100 vertices",kFALSE}, + {"StiPulls" ,"","","" ,"","", "Request to make Sti Pulls",kFALSE}, + {"StvPulls" ,"","","" ,"","", "Request to make Stv Pulls",kFALSE}, + {"StiLib" ,"","","" ,"","Sti,StiUtilities","Load Sti",kFALSE}, + {"StiCALib" ,"","","" ,"","TPCCATracker,StiCA","Load Sti+CA",kFALSE}, + {"StiTpc" ,"","","TpcDb,ITTF,tpc_T,dbutil,detDb,StarMagField,magF" ,"","StiTpc","Load StiTpc",kFALSE}, + {"StiSvt" ,"",""," " ,"","StSvtClassLibrary,StSvtDbMaker,StiSvt","Load StiSvt",kFALSE}, + {"StiSsd" ,"","","" ,"","StSsdUtil,StSsdDbMaker,StiSsd","Load StiSsd",kFALSE}, + {"StiSst" ,"","","" ,"","StSsdUtil,StSsdDbMaker,StiSsd","Load StiSsd(t)",kFALSE}, + {"StiPxl" ,"","","" ,"","StPxlUtil,StPxlDbMaker,StiPxl","Load StiPxl",kFALSE}, + {"StiIst" ,"","","" ,"","StIstUtil,StIstDbMaker,StiIst","Load StiIst",kFALSE}, + {"StiLibs" ,"","","StiTpc,StiSvt,StiSsd,BTofUtil" + ,"","StEEmcDbMaker","Load Sti Detector libs",kFALSE}, + {"StiLibsHft" ,"","","StiLibs,StiSst,StiPxl,StiIst" ,"","","Load Sti Detector libs for HFT",kFALSE}, + {"StiHftP", "","","StiLibsHft,-SvtIT,-SsdIT,PxlIT,pxlDb","" ,"","Enables partial Hft (PXL)",kFALSE}, + {"StiHftC", "","","StiLibsHft,-SvtIT,-SsdIT,PxlIT,pxlDb,IstIT,istDb,SstIT,sstDb","" + , "","Enables complete Hft (PXL+IST+SST)",kFALSE}, + {"VFPPV" ,"" ,""," eemcDb,StiLib,-VFMinuit,-VFMinuit2,-VFMinuit3,","StGenericVertexMaker" + , "Minuit,StGenericVertexMaker","... Pile-up proof vertex finder",kFALSE}, + {"VFPPVnoCTB" ,"" ,"","VFPPV","" ,"","... Pile-up proof vertex finder, noCTB",kFALSE}, + {"VFPPVEv" ,"" ,"" ,"eemcDb" ,"StGenericVertexMaker" + , "Minui,StGenericVertexMaker" ,"... StEvent based VFPPV, noCTB",kFALSE}, + {"VFPPVEvNoBtof" ,"" ,"" ,"VFPPVEv" ,"" ,"","...VFPPVEv with no Btof ",kFALSE}, + {"Sti" ,"Sti","","StiLib,StiLibs,SCL,StEvent,StDbT,TpcIT,compend,sim_T,tbutil","StiMaker" + , "StEventUtilities,StiUtilities,StiMaker","Sti tracker",kFALSE}, + {"StiCA" ,"Sti","","Sti","StiMaker","TPCCATracker,StiCA" ,"StiCA tracker",kFALSE}, + {"StiCAPerf","","","","", "TPCCATrackerPerformance", "CA Performance",kFALSE}, + {"StiCA" ,"Sti","","Sti,StiLib,StiCALib,StiLibs,SCL,StEvent,StDbT,TpcIT,compend,tbutil","StiMaker" + , "StEventUtilities,libEG,StiUtilities,StiMaker","Sti+CA tracker",kFALSE}, + {"HLTCA" ,"" ,"Sti","", "StHLTCAMaker","StHLTCAMaker", "HLT reconstruction",kFALSE}, + {"KFVertex" ,"" ,"Sti","-genvtx,-VFMinuit,-VFFV,-VFMCE,-VFppLMV,-VFPPVnoCTB,-VFPPV,-Kink2,-V02,-Xi2" + ,"StKFVertexMaker", "MathMore,Spectrum", "...KFParticle based multi vertex reconstruction",kFALSE}, + {"Stv" ,"Stv","","-xgeometry,-Sti,-StiTpc,-StiSsd,-StiSvt,-StiPxl,-StiSsd,-StiSst,-StiIst,","StvMaker" + ,"libHist,libHistPainter,libVMC,StarMiniCern,geant3,GeoTestMaker,StvUtil,Stv,StvSeed,StvMaker,StEventUtilities,-StiLibs,-StiLibsHft","Stv",kFALSE}, + {"StvCA" ,"StvCA","","Stv","","" ,"StvCA",kFALSE}, + {"StiVMC" ,"StiVMC","","-Sti,SCL,StEvent,StDbT,TpcDb,compend","StiVMCMaker" + , "StEventUtilities,StiVMC,StiVMCMaker" ,"ITTF VMC tracker",kFALSE}, + {"StiVMCLibs","","","detDb,StarMagField","", "","ITTF:load StiVMC libraries",kFALSE}, + {"laserIT" ,"","","","", "TpcIT","use Sti for laser reconstruction",kFALSE}, + {"TpcIT" ,"","","ITTF" ,"","","Sti tracking: TPC",kFALSE}, + {"SvtIT" ,"","","ITTF" ,"","","Sti tracking: SVT",kFALSE}, + {"SsdIT" ,"","","ITTF" ,"","","Sti tracking: SSD",kFALSE}, + {"HpdIT" ,"" ,"","ITTF","" ,"Sti,StiRnD","Sti tracking: Hpd geom",kFALSE}, + {"PixelIT","" ,"","PxlIT","" ,"","Alias for PxlIT",kFALSE}, + {"PxlIT" ,"" ,"","ITTF","" ,"","Sti tracking: Pixel geom",kFALSE}, + {"IstIT" ,"" ,"","ITTF","" ,"","Sti tracking: Ist geom",kFALSE}, + {"SstIT" ,"" ,"","ITTF","" ,"","Sti tracking: Sst geom",kFALSE}, + {"iTpcIT" ,"" ,"","ITTF","" ,"","Sti tracking: iTpc geom + hits",kFALSE}, + {"BTofIT" ,"" ,"","ITTF","" ,"","Sti tracking: BTof geom",kFALSE}, + {"NoSvtIT" ,"" ,"","-SvtIT","" ,"","ITTF: track with switch off SVT geom",kFALSE}, + {"NoSsdIT" ,"" ,"","-SsdIT","" ,"","ITTF: track with switch off SSD geom",kFALSE}, + {"NoSstIT" ,"" ,"","-SstIT","" ,"","ITTF: track with switch off SST geom",kFALSE}, + {"NoPxlIT" ,"" ,"","-PxlIT","" ,"","ITTF: track with switch off PXL geom",kFALSE}, + {"NoIstIT" ,"" ,"","-IstIT","" ,"","ITTF: track with switch off IST geom",kFALSE}, + {"skip1row" ,"" ,"","","" ,"","ITTF: skip the first pad row in TPC",kFALSE}, + {"StiRnD" ,"","","", "","StiRnD", "Load StiRnD shared library",kFALSE}, + {"Alignment" ,"","","", "","", "Sti Tpc Alignment, reconstruction per sector",kFALSE}, + {"Cosmics" ,"","","", "","", "Ignore events without recostructed tracks",kFALSE}, + {"StiPulls" ,"","","Sti", "","", "Request to make Sti Pulls",kFALSE}, + {"BeamBack" ,"","","StEvent" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"dEdxY2" ,"dEdxY2","","tpcDb,StEvent","StdEdxY2Maker","libMinuit,StdEdxY2Maker" + , "Bichsel method used for dEdx",kFALSE}, + {"CalcdNdx", "", "", "dEdxY2", "", "", "Option for StdEdxY2Maker to calculate dN/dx",kFALSE}, + {"btofMatch" ,"","","db,BTofUtil,vpdCalib,btofCalib","StBTofMatchMaker","StBTofMatchMaker" + , "TPC-BTOF track matching",kFALSE}, + {"btofCalib","","","db,BTofUtil", "StBTofCalibMaker","StBTofCalibMaker","BTOF calibration",kFALSE}, + {"ETofHit", "", "ETofChain", "db, ETofUtil, muDst", "StETofHitMaker", "StETofHitMaker", + "ETOF hit maker",kFALSE}, + {"ETofMatch", "", "ETofChain", "db, ETofUtil, muDst", "StETofMatchMaker", "StETofMatchMaker", + "ETOF match maker",kFALSE}, + {"ETofQa", "", "ETofChain", "db, ETofUtil, muDst", "StETofQAMaker", "StETofQAMaker", + "ETOF QA maker",kFALSE}, + {"ETofA", "", "","etofdat,ETofCalib,etofhit,ETofMatch","","... ETOF chain options for data", kFALSE}, + {"mtdMatch" ,"","","db,MtdUtil", "StMtdMatchMaker","StMtdMatchMaker","TPC-MTD track matching",kFALSE}, + {"mtdCalib" ,"","","db", "StMtdCalibMaker","StMtdCalibMaker","MTD calibration",kFALSE}, + {"mtdEvtFilt" ,"","","db", "StMtdEvtFilterMaker","StMtdEvtFilterMaker","MTD event filter" ,kFALSE}, + {"FindVtxSeed" ,"FindVtxSeed" ,"","globT,MuDSTDeps,picoDst","StVertexSeedMaker" + , "StPass0CalibMaker", "Performs vertex seed finding",kFALSE}, + {"FindEvtVtxSeed","FindEvtVtxSeed","","MuDSTDeps,picoDst","StEvtVtxSeedMaker" + , "StPass0CalibMaker","Performs vertex seed finding using StEvent",kFALSE}, + {"Ftpc" ,"ftpcChain" ,"","ftpcT,fcl,fpt" ,"StMaker","StChain","",kFALSE}, + {"fss" ,"ftpc_raw","ftpcChain","SCL,Simu","StFtpcSlowSimMaker" + , "StFtpcSlowSimMaker,StFtpcTrackMaker,StFtpcClusterMaker","FTPC Slow simulator",kFALSE}, + {"Fcl" ,"ftpc_hits","ftpcChain","SCL,daq","StFtpcClusterMaker" + , "StFtpcTrackMaker,StFtpcClusterMaker","FTPC cluster finder",kFALSE}, + {"fpt" ,"ftpc_tracks","ftpcChain","SCL" + , "StFtpcTrackMaker","StFtpcTrackMaker","FTPC Track Maker",kFALSE}, + {"fgain" ,"","","fcl,fpt","","" + , "StFtpcClusterMaker and StFtpcTrackMaker will produce gain scan histograms",kFALSE}, + {"fdbg" ,"","","fcl,fpt","","","StFtpcClusterMaker and StFtpcTrackMaker will write debugfile",kFALSE}, + {"flaser" ,"","","fcl,fpt" ,"","","StFtpcClusterMaker and StFtpcTrackMaker for LASERTRACKING",kFALSE}, + {"pmdReco" ,"pmdReco","","PmdUtil,pmdClust" ,"StMaker","StChain","PMD Reco chain",kFALSE}, + {"pmdRaw" ,"pmdRaw","pmdReco","pmdReco,pmdRead" ,"","","PMD Reco chain giving raw data",kFALSE}, + {"pmd" ,"pmd","pmdReco","pmdReco,pmdSim,pmdDis" ,"","", "PMD Simulation chain",kFALSE}, + {"pmdRead" ,"","pmdReco","PmdUtil","StPmdReadMaker" ,"StPmdReadMaker", "DAQ reader for PMD",kFALSE}, + {"pmdSim" ,"","pmdReco","PmdUtil","StPmdSimulatorMaker","StPmdSimulatorMaker" + ,"Hit Simulator for PMD" ,kFALSE}, + {"pmdClust" ,"pmdClust","pmdReco","","StPmdClusterMaker","StPmdClusterMaker" + ,"ClusterMaker for PMD" ,kFALSE}, + {"pmdDis" ,"pmdDis","pmdReco","PmdClust","StPmdDiscriminatorMaker" + , "StPmdDiscriminatorMaker","Discriminator for PMD",kFALSE}, + {"Kink2" ,"kink2","","db,MuDST,-kink","StKinkMaker","StSecondaryVertexMaker" + , "Find Kinks from StEvent",kFALSE}, + {"V02" ,"v02","","db,MuDST,-V0","StV0FinderMaker","StSecondaryVertexMaker" + , "Find V0s from StEvent",kFALSE}, + {"Xi2" ,"xi2","","db,MuDST,-V02,-Xi","StXiFinderMaker","StSecondaryVertexMaker" + , "Xis AND V0s from StEvent",kFALSE}, + {"V0svt" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Xisvt" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"SCEbyE" ,"scebye","","MuDSTDeps,picoDst","StSpaceChargeEbyEMaker" + , "StMuDSTMaker,StPass0CalibMaker","Determine EbyE SpaceCharge using StEvent",kFALSE}, + {"SCScalerCal" ,"scscalercal","","MuDSTDeps,picoDst","StSpaceChargeEbyEMaker" + , "StMuDSTMaker,StPass0CalibMaker","Calibrate SpaceCharge scalers",kFALSE}, + {"compend" ,"","","event,detDb","StEventCompendiumMaker","StEventCompendiumMaker" + , "Fill event summary in ITTF Chain",kFALSE}, + {"shadow" ,"","","event,compend" ,"StShadowMaker","StShadowMaker","",kFALSE}, + {"TpcAligner" ,"","","Alignment" ,"StTpcAlignerMaker","StTpcAlignerMaker","TpcAligner",kFALSE}, + {"pec" ,"PeC","","Event" ,"StPeCMaker","StPeCMaker","PCollAnalysis",kFALSE}, + {"RichSpectra" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"TagsChain" ,"TagsChain","","" ,"StMaker","StChain","",kFALSE}, + {"TpcTag" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Flow" ,"","","," ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"FlowTag" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"FlowAnalysis","","","" ,"","WARNING *** Option is OBSOLETE ***","",kFALSE}, + {"SpectraTag" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"HeavyTags" ,"","TagsChain","StEVent" ,"StHeavyTagMaker","StHeavyTagMaker","",kFALSE}, + {"EbyeScaTags" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"HighPtTags" ,"","TagsChain","StEVent" ,"StHighPtTagsMaker","StHighPtTagsMaker","",kFALSE}, + {"PCollTag" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"tags" ,"","TagsChain","globT,Event,HeavyTags,HighPtTags" + , "StTagsMaker","StTagsMaker","Collect all tags to TTree",kFALSE}, + {"noTags" ,"","","-tags,-HeavyTags,-HighPtTags" ,"","","Turn Off tags",kFALSE}, + {"MuDSTChain","MuDSTChain","EMCmDST,CMuDST","" ,"StMaker","StChain","",kFALSE}, + {"StrngMuDST","","MuDSTDeps","", "StStrangeMuDstMaker","","Creates Stangeness MuDST",kFALSE}, + {"EMCmDST" ,"","MuDSTChain","MuDst", "StEmcMicroDstMaker","","Creates EMC MuDST",kFALSE}, + {"CMuDST" ,"","MuDSTChain","MuDst,StrngMuDST,Tree", "StMuDstMaker","","Writes Common MuDST",kFALSE}, + {"RMuDST" ,"","","CMuDST" ,"","","reads Common MuDST, do not disactivate if no output files",kFALSE}, + {"picoWrite" ,"","PicoChain","picoDst","StPicoDstMaker","" ,"Writes picoDST format",kFALSE}, + {"picoRead" ,"","PicoChain","picoDst","StPicoDstMaker","" ,"WritesRead picoDST format",kFALSE}, + {"PicoVtxDefault" ,"","","" ,"" ,"","pico Vtx default mode",kFALSE}, + {"PicoVtxVpd" ,"","","-PicoVtxDefault" ,"" ,"","pico Vtx cut on Tof and VPD mode",kFALSE}, + {"PicoVtxVpdOrDefault","","","-PicoVtxDefault" ,"","","pico Vtx cut on Tof and VPD or default",kFALSE}, + {"PicoVtxFXT" ,"","","-PicoVtxDefault" ,"" ,"","pico Vtx constraint on FXT [198,202] mode",kFALSE}, + {"PicoVtxMtd" ,"","","-PicoVtxDefault" ,"" ,"","pico Vtx using MTD matching mode",kFALSE}, + {"PicoCovMtxSkip" ,"","","" ,"" ,"","Do not write covariance matrices to picoDst (default)",kFALSE}, + {"PicoCovMtxWrite","","","-PicoCovMtxSkip" ,"" ,"","Write track covariance matrices to picoDst",kFALSE}, + {"PicoBEmcSmdSkip" ,"","","" ,"" ,"","Do not write BSMD to picoDst (default)",kFALSE}, + {"PicoBEmcSmdWrite","","","-PicoBEmcSmdSkip" ,"" ,"","Write BSMD to picoDst",kFALSE}, + {"St_geom" ,"" ,"","" , "St_geom_Maker","St_geom_Maker","",kFALSE}, + {"Display" ,"","","", "","","WARNING *** Option is OBSOLETE *** use Ed.C macro instead",kFALSE}, + {"Mc" ,"McChain","McEvent","sim_T,globT,McAss,McAna" ,"StMaker","StChain","",kFALSE}, + {"McAss" ,"","McChain","McEvent", "StAssociationMaker","StAssociationMaker","",kFALSE}, + {"McAnaTpc" ,"","","McAna" ,"","","Mc Analysis for Tpc",kFALSE}, + {"McAnaSvt" ,"","","McAna" ,"","","Mc Analysis for Svt",kFALSE}, + {"McAnaSsd" ,"","","McAna" ,"","","Mc Analysis for Ssd",kFALSE}, + {"McAna" ,"","McChain","McEvent,McAss", "StMcAnalysisMaker","StMcAnalysisMaker","",kFALSE}, + {"McQa" ,"","McChain","McEvent", "StMcQaMaker","StMcQaMaker","QA histogramms for McEvent",kFALSE}, + {"McTpcAna" ,"","McAnaChain","tpcDb,dbutil,McEvent,StEvent" + , "StTpcMcAnalysisMaker","StTpcMcAnalysisMaker","",kFALSE}, + {"MiniMcEvent" ,"","","","", "StMiniMcEvent","Loads StMiniMcEvent library only",kFALSE}, + {"MiniMcMk" ,"","","McAss,MiniMcEvent","StMiniMcMaker","StMiniMcMaker" + , "Creates tree in minimc.root file",kFALSE}, + {"SvtMatTree","","","","SvtMatchedTree" + , "StSvtPoolEventT,StSvtPoolSvtMatchedTree","Create SvtMatchedTree",kFALSE}, + {"LAna" ,"","","in,detDb,StEvent,tpcDb","StLaserAnalysisMaker" + , "StLaserAnalysisMaker","Laser data Analysis",kFALSE}, + {"EandBDir","","","in,StEvent,TpcHitMover,nodefault" + , "StEandBDirMaker","MathMore,Spectrum,StEandBDirMaker", "get E&B direction",kFALSE}, + {"SpinTag" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ppLPfind1" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"SpinSortA" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ppLPprojectA","","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ppDAQfilter1","","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ppLPeval1" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"QA" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"EventQA","EventQA","","QUtils,Event","StEventQAMaker" ,"St_QA_Maker","Filling Y2/Y3 Qa histo",kFALSE}, + {"QAC" ,"CosmicsQA","globT","" ,"StQACosmicMaker","StQACosmicMaker","",kFALSE}, + {"QAalltrigs" ,"", "","", "","","Analyze all triggers in QA",kFALSE}, + {"HitFilt" ,"", "","", "StHitFilterMaker","StHitFilterMaker","Hit filter Maker",kFALSE}, + {"SvtHitFilt" ,"", "","HitFilt", "","","SVT Hit filter Maker",kFALSE}, + {"TpcHitFilt" ,"", "","HitFilt", "","","filter out TPC Hits not on tracks",kFALSE}, + {"HftHitFilt" ,"", "","HitFilt", "","","filter out non-HFT hits",kFALSE}, + {"KeepTpcHit" ,"", "","HitFilt", "","","Keep all TPC hits in StHitFilterMaker",kFALSE}, + {"KeepSvtHit" ,"", "","HitFilt", "","","Keep all SVT hits in StHitFilterMaker",kFALSE}, + {"KeepFgtHit" ,"", "","HitFilt", "","","Keep all FGT hits in StHitFilterMaker",kFALSE}, + {"Tree" ,"OutTree","","","StTreeMaker","StTreeMaker","Write requested branches into files",kFALSE}, + {"logger" ,"" ,"","" ,"","","Use log4cxx package to manage the program messages",kFALSE}, + {"NoSimuDb" ,"" ,"","" ,"","","Switch off Simu Option for DB",kFALSE}, + {"SimuDb" ,"" ,"","-NoSimuDb" ,"","","Switch on Simu Option for DB",kFALSE}, + {"NoOutput" ,"" ,"","-Tree,-EvOut,noTags" ,"","","Suppress Output root files",kFALSE}, + {"EvOutOnly" ,"" ,"","EvOut,Tree,noTags" ,"","","Only event.root files",kFALSE}, + {"NoDefault" ,"" ,"","" ,"","","No Default consistency check",kFALSE}, + {"Notpc_daq" ,"" ,"","-tpc_daq" ,"","","No tpc_daq",kFALSE}, + {"analysis" ,"","","StEvent" ,"StAnalysisMaker","StAnalysisMaker","Example of Analysis",kFALSE}, + {"NewTpcAlignment","","","" ,"","","Switch on new Tpc Alignment schema",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Aliased ","time stamps","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE} +}; diff --git a/StRoot/StBFChain/doc/BFC2.h b/StRoot/StBFChain/doc/BFC2.h new file mode 100644 index 00000000000..84af04be45d --- /dev/null +++ b/StRoot/StBFChain/doc/BFC2.h @@ -0,0 +1,1693 @@ +Bfc_st BFC[] = { + {"Key" ,"Name" ,"Chain" ,"Opts" ,"Maker","Libs","Comment",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"TIME STAMPS ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"RY2008","","","db,detDb,NosvtIT,NossdIT" ,"","","y2008 for dAu run",kFALSE}, + {"RY2009","","","db,detDb,NosvtIT,NossdIT" ,"","","y2009 for p+p run",kFALSE}, + {"ForceGeometry","","","","","", "Force geometry to overwrite the geometry coming from fz-file", kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Valid Db ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"NoDb" ,"" ,"","-db,-tpcDb,-magF" ,"","","Take out Db from Chain",kFALSE}, + {"DbV" ,"" ,"","db,ry1h" ,"","","19940614/0 Db Version for none",kFALSE}, + {"DbV0614" ,"" ,"","db,ry1h" ,"","","20000614/0 Db Version for p00hd",kFALSE}, + {"DbV0624" ,"" ,"","db,ry1h" ,"","","20000624/0 Db Version for p00hd_1",kFALSE}, + {"DbV0713" ,"" ,"","db,ry1h" ,"","","20000713/0 Db Version for p00he",kFALSE}, + {"DbV0727" ,"" ,"","db,ry1h" ,"","","20000727/0 Db Version for p00he",kFALSE}, + {"DbV0819" ,"" ,"","db,ry1h" ,"","","20000819/0 Db Version for p00hg",kFALSE}, + {"DbV1123" ,"" ,"","db,ry1h" ,"","","20001123/0 Db wo TpcDriftVel. from StTpcT0Maker",kFALSE}, + {"DbV0523" ,"" ,"","db,ry1h" ,"","", "20010523/0 Db Version for p01he",kFALSE}, + {"DbV1007" ,"" ,"","db,ry1h" ,"","", "20011007/0 Db Version for p01hi",kFALSE}, + {"DbV1107" ,"" ,"","db,ry1h" ,"","", "20011107/0 Db Version for pass1 p01gk",kFALSE}, + {"DbV1211" ,"" ,"","db,ry1h" ,"","", "20011211/0 Db Version for prod p01gl",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Geometry ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"ideal", "", "","", "", "", "Ideal Alignment", kFALSE}, + {"misalign", "", "","", "","-AgMLideal", "Misaligned Geometry", kFALSE}, + {"AgMLutil", "", "","", "","StarAgmlUtil", "AgML support", kFALSE}, + {"AgMLlib", "", "","", "","StarAgmlUtil,StarAgmlLib", "AgML support", kFALSE}, + {"AgML" ,"" ,"","AgMLlib,-Agi,-VmcGeo","","Geometry,StarGeometry" + , "Alias VmcGeometry to AgiLGeometry",kFALSE}, + {"Agi" ,"" ,"","-VmcGeo","","" ,"Alias VmcGeometry to AgiGeometry (gstar original geometry)",kFALSE}, + {"VmcGeo" ,"" ,"","-AgML,-Agi" ,"","" ,"Alias VmcGeometry to VmcGeo",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Trigger Type","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Physics" ,"","","", "","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"LaserTest" ,"","","", "","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"PulserSvt" ,"","","", "","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"alltrigger" ,"","","", "","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"phys_off" ,"","","" ,"","","Turn off physics in simulation",kFALSE}, + {"hadr_off" ,"","","" ,"","","Turn off hadronic interactions in simulation",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"C H A I N S ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Calibration chains","------------","-----------","-----------------------------------","","","",kFALSE}, + {"LanaDV", "","","LanaDVtpx","","" ,"get LDV",kFALSE}, + {"LanaDVtpx","","","MakeEvent,trgd,in,tpx,TpcHitMover,LaserIT,VFMinuit,Lana,Analysis,Corr4,NosvtIT,NossdIT", + "","" ,"get LDV with TPX",kFALSE}, + {"LaserDV.Chain","","","in,LaserCal,fcf,TpcHitMover,OGridLeak3D,OShortR,OSpaceZ2","","","get LDV",kFALSE}, + {"Test.default.ITTF","","","TpcRS,Simu,sss,svt,ssd,fss,bbcSim,IdTruth,MakeEvent,genvtx," + "miniMcMk,McAna,Test.reco.ITTF,CMuDst" ,"","","",kFALSE}, + {"Test.default.y2005g.ITTF","","","Test.default.ITTF,sdt20050130,noSimuDb" ,"","","",kFALSE}, + {"Test.default.y2007g.ITTF","","","Test.default.ITTF,sdt20070322,noSimuDb" ,"","","",kFALSE}, + {"Test.fast.y2005g.ITTF","","","Test.fast.ITTF,sdt20050130,noSimuDb" ,"","","",kFALSE}, + {"Test.reco.StiVMC","","","MakeEvent,tpcI,tcl,ftpc,SvtCL,Test.StiVMC" ,"","","",kFALSE}, + {"Test.default.StiVMC","","","TpcRS,Simu,sss,svt,ssd,fss,bbcSim,IdTruth,MakeEvent," + "miniMcMk,McAna,Test.reco.StiVMC,CMuDst" ,"","","",kFALSE}, + {"Test.StiVMC","","","TpcRS,StiVMC,event,analysis,tags,EvOut,StarMagField,FieldOn,Idst,CMuDst" + , "","","",kFALSE}, + {"Test.VeryFast.StiVMC","","","TpcFastSim,Simu,sfs,ssdfast,McEvOut,GeantOut,IdTruth,miniMcMk,McAna," + "SvtCL,tpc_T,globT,tls,db,tpcDB,svtDb,svtIT,ssdIT,StiVMC,Idst,event,analysis,EventQA,tags," + "EvOut,StarMagField,FieldOn,IAna,CMuDst" ,"","","",kFALSE}, + {"Test.fast.StiVMC","","","tfs,Simu,sfs,ssdfast,McEvOut,GeantOut,IdTruth,miniMcMk,McAna,SvtCL," + "tpc_T,globT,tls,db,tpcDB,svtDb,StiVMC,Idst,event,analysis,EventQA,tags,EvOut," + "StarMagField,FieldOn,IAna,CMuDst" ,"","","",kFALSE}, + {"Test.fast.y2007g.ITTF","","","Test.fast.ITTF,sdt20070322,noSimuDb" ,"","","",kFALSE}, + {"Test.VeryFast.y2005g.ITTF","","","Test.VeryFast.ITTF,sdt20050130,noSimuDb" ,"","","",kFALSE}, + {"Test.VeryFast.y2007g.ITTF","","","Test.VeryFast.ITTF,sdt20070322,noSimuDb" ,"","","",kFALSE}, + {"Test.default.StiVMC","","","TpcRS,Simu,sss,svt,ssd,fss,bbcSim,IdTruth,MakeEvent," + "miniMcMk,McAna,Test.reco.ITTF,CMuDst" ,"","","",kFALSE}, + {"Test.y2009.ITTF","","","Test.default.ITTF,y2009,TpcRS,sdt20090428.141700" ,"","","",kFALSE}, + {"Test.y2009.StiVMC","","","Test.default.StiVMC,y2009,TpcRS,sdt20090428.141700,noSimuDb","","","",kFALSE}, + {"Test.fast.y2005g.StiVMC","","","Test.fast.StiVMC,sdt20050130,noSimuDb" ,"","","",kFALSE}, + {"Test.VeryFast.y2005g.StiVMC","","","Test.VeryFast.StiVMC,sdt20050130,noSimuDb" ,"","","",kFALSE}, + {"Test.VeryFast.y2007g.StiVMC","","","Test.VeryFast.StiVMC,sdt20070322,noSimuDb" ,"","","",kFALSE}, + {"Test.default.Fast.ITTF","","","tfs,sfs,ssdFast,IdTruth,MakeEvent,miniMcMk,Test.ITTF", "","","",kFALSE}, + {"Test.srs.ITTF","","", "TpcRS,Simu,srs,svt,ssd,fss,bbcSim,emcY2,McEvOut,GeantOut,IdTruth," + "miniMcMk,McAna,Test.reco.ITTF,CMuDst" ,"","","",kFALSE}, + {"Test.ITTF","","","svtIT,ssdIT,ITTF,event,analysis,EventQA,tags,EvOut,StarMagField,FieldOn" + ",IDST,CMuDst,analysis" ,"","","",kFALSE}, + {"Test.reco.ITTF","","","MakeEvent,tpcI,tcl,ftpc,SvtCL,Test.ITTF" ,"","","",kFALSE}, + {"Test.fast.ITTF","","","tfs,Simu,sfs,ssdfast,McEvOut,GeantOut,IdTruth,miniMcMk,McAna,SvtCL," + "tpc_T,globT,tls,db,tpcDB,svtDb,svtIT,ssdIT,ITTF,Idst,event,analysis,EventQA,tags,EvOut," + "StarMagField,FieldOn,IAna,CMuDst" ,"","","",kFALSE}, + {"Test.VeryFast.ITTF","","","TpcFastSim,Simu,sfs,ssdfast,McEvOut,GeantOut,IdTruth,miniMcMk,McAna," + "SvtCL,tpc_T,globT,tls,db,tpcDB,svtDb,svtIT,ssdIT,ITTF,Idst,event,analysis,EventQA,tags," + "EvOut,StarMagField,FieldOn,IAna,CMuDst" ,"","","",kFALSE}, + {"nightly test (dev) chains","-----------","-----------","----------------------------","","","", kFALSE}, + {"MC----------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"MC.y2000" ,"","","trs,rrs,y1h,Idst,rich,IAna,l0,tpcI,tpxClu,NosvtIT,NossdIT," + "-Kink2,VFMinuit,geant,evout,IdTruth,tags,GeantOut,big" ,"","","",kFALSE}, + {"MC.y2001" ,"","","trs,fss,rrs,y2001n,Idst,rich,IAna,l0,tpcI,tpxClu,ftpc,-Kink2," + "VFMinuit,geant,evout,IdTruth,tags,emcY2,GeantOut,big" ,"","","",kFALSE}, + {"MC.pp.y2001" ,"","","trs,rrs,fss,y2001n,Idst,rich,IAna,l0,tpcI,tpxClu,ftpc,-Kink2," + "VFMinuit,geant,evout,IdTruth,tags,emcY2,MiniMcMk,GeantOut,big" ,"","","",kFALSE}, + {"MC.y2003" ,"","","trs,fss,y2003,Idst,IAna,l0,tpcI,tpxClu,ftpc,VFMinuit,bbcSim,tofsim," + "tags,emcY2,evout,IdTruth,geantout" ,"","","",kFALSE}, + {"MC.y2004" ,"","","trs,srs,fss,y2004,Idst,BAna,l0,tpcI,tpxClu,ftpc,VFMinuit,SvtIt,geant,evout," + "tags,bbcSim,tofsim,emcY2,EEfs,GeantOut,big" ,"","","",kFALSE}, + {"MC.y2004a" ,"","","trs,srs,fss,y2004a,Idst,BAna,l0,tpcI,tpxClu,ftpc,VFMinuit,SvtIT,geant" + ",tags,bbcSim,tofsim,emcY2,EEfs,evout,GeantOut,big" ,"","","",kFALSE}, + {"MC.y2005" ,"","","trs,srs,fss,ssd,y2005x,Idst,IAna,l0,tpcI,tpxClu,ftpc,SvtCL,svtDb," + "SsdIt,SvtIt,VFMinuit,geant,evout,tags,bbcSim,tofsim,emcY2,EEfs,GeantOut,big" + , "","","",kFALSE}, + {"MC.y2006" ,"","","trs,fss,y2006h,Idst,IAna,l0,tpcI,tpxClu,ftpc,VFMinuit,NoSsdIt,NoSvtIt" + ",MakeEvent,bbcSim,tofsim,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.y2007" ,"","","trs,srs,ssd,fss,y2007,Idst,BAna,tpcI,tpxClu,ftpc,SvtIt,SsdIt," + "VFMinuit,MakeEvent,IdTruth,geant,tags,bbcSim,tofsim,emcY2,EEfs,evout,GeantOut,big" + "" ,"","","",kFALSE}, + {"MC.y2008" ,"","","trs,fss,y2008a,Idst,IAna,tpcI,tpxClu,ftpc,VFMinuit,NoSsdIt,NoSvtIt" + ",MakeEvent,bbcSim,tofsim,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.in.y2008" ,"","","in,y2008e,FieldOn,ReverseField,Idst,BAna,ftpcT,fpt,NoSsdIt," + "NoSvtIt,VFMinuit,tpcDB,MakeEvent,IdTruth,tags,bbcsim,emcY2,EEfs,evout,big,McEvout,MiniMcMk," + "ReadAll" ,"","","",kFALSE}, + {"MC.in.y2009" ,"","","in,y2009c,FieldOn,ReverseField,Idst,BAna,ftpcT,fpt,NoSsdIt," + "NoSvtIt,VFMinuit,tpcDB,MakeEvent,IdTruth,tags,bbcsim,emcY2,EEfs,evout,big,McEvout,MiniMcMk," + "ReadAll" ,"","","",kFALSE}, + {"MC.y2009" ,"","","TpcRS,TpxClu,fss,y2009,Idst,IAna,tpcI,ftpc,VFMinuit,NoSsdIt,NoSvtIt" + ",MakeEvent,bbcSim,tofsim,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.y2009a" ,"","","TpcRS,TpxClu,fss,y2009a,Idst,IAna,tpcI,ftpc,VFMinuit,NoSsdIt,NoSvtIt," + "MakeEvent,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.y2010a" ,"","","TpcRS,TpxClu,y2010a,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB," + "TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.y2010" ,"","","TpcRS,TpxClu,y2010,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB," + "TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big", "","","",kFALSE}, + {"MC.fast.pp.y2011","","","y2011,Test.default.Fast.ITTF,bbcSim,btofsim,btofMatch,emcY2,emcSim,EEfs," + "NosvtIT,NossdIT,-sfs,-ssdFast,VFPPVnoCTB,beamline" ,"","","",kFALSE}, + {"MC.in.y2010" ,"","","in,y2010c,FieldOn,ReverseField,Idst,BAna,ftpcT,fpt,NoSsdIt," + "NoSvtIt,VFMinuit,tpcDB,MakeEvent,IdTruth,tags,bbcsim,emcY2,EEfs,evout,big,McEvout,MiniMcMk," + "ReadAll" ,"","","",kFALSE}, + {"MC.y2011" ,"","","TpcRS,TpxClu,y2011,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB" + ",TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.fast.y2011" ,"","","y2011,Test.default.Fast.ITTF,NosvtIT,NossdIT,-sfs,-ssdFast," + "VFPPVnoCTB,beamline,emcy2" ,"","","",kFALSE}, + {"MC.in.y2011" ,"","","in,y2011,FieldOn,ReverseField,Idst,BAna,ftpcT,fpt,NoSsdIt,NoSvtIt," + "VFMinuit,tpcDB,MakeEvent,IdTruth,tags,bbcsim,emcY2,EEfs,evout,big,McEvout,MiniMcMk,ReadAll" + , "","","",kFALSE}, + {"MC.y2012" ,"","","TpcRS,TpxClu,y2012,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB," + "TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.y2012a" ,"","","TpcRS,TpxClu,y2012a,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB," + "TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big" + , "","","",kFALSE}, + {"MC.y2012.eval" ,"","","in,y2012,FieldOn,ReverseField,Idst,BAna,ftpcT,fpt,NoSsdIt,NoSvtIt" + ",VFMinuit,tpcDB,MakeEvent,IdTruth,tags,bbcsim,emcY2,EEfs,evout,big,McEvout,MiniMcMk,ReadAll" + , "","","",kFALSE}, + {"MC.y2013" ,"","","TpcRS,TpxClu,y2013_1x,useXgeom,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB," + "TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big", "","","",kFALSE}, + {"MC.y2014" ,"","","TpcRS,TpxClu,y2014,useXgeom,MakeEvent,NoSsdIt,NoSvtIt,Idst,BAna,VFMinuit,tpcDB," + "TpcHitMover,bbcSim,btofsim,btofMatch,tags,emcY2,EEfs,evout,IdTruth,geantout,big", "","","",kFALSE}, + {"RC----------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"RC.y2000" ,"","","p2000,VFMinuit,CMuDst,NosvtIT,NossdIT" ,"","","",kFALSE}, + {"RC.y2001" ,"","","P2001a,VFMinuit,ZDCvtx,CMuDst,NosvtIT,NossdIT" ,"","","",kFALSE}, + {"RC.pp.y2001" ,"","","pp2001a,VFMinuit,CMuDst,NossdIT" ,"","","",kFALSE}, + {"RC.pp.y2001.ppv" ,"","","pp2001a,VFPPV,beamLine,CMuDst,NossdIT" ,"","","",kFALSE}, + {"RC.y2003" ,"","","DbV20040520,dau2003i,in,-SvtIT,NossdIT" ,"","","",kFALSE}, + {"RC.pp.y2003.VFPPV" ,"","","pp2003,VFPPV,beamLine,CMuDst,-svtIT,NossdIT,Corr2,v0,xi","","","",kFALSE}, + {"RC.y2004" ,"","","P2004,DbV20041213" ,"","","",kFALSE}, + {"RC.y2004.NoSvt" ,"","","P2004,DbV20041213,-SsdIt,-SvtIt,pmdRaw" ,"","","",kFALSE}, + {"RC.y2004.NoSvt.pmd" ,"","","P2004,DbV20041213,pmdRaw,-SvtIT,-SsdIT" ,"","","",kFALSE}, + {"RC.pp.y2004" ,"","","pp2004,DbV20041213,beamLine" ,"","","",kFALSE}, + {"RC.y2005" ,"","","P2005,tofDat,MakeEvent,ssddat,sptd,SsdIt,SvtIt,pmdRaw,OShortR,OSpaceZ2" + , "","","",kFALSE}, + {"RC.pp.y2005" ,"","","pp2005a,tofdat,OSpaceZ2,OGridLeak3D" ,"","","",kFALSE}, + {"RC.pp.y2006" ,"","","pp2006b,OSpaceZ2,OGridLeak3D" ,"","","",kFALSE}, + {"RC.y2007" ,"","","DbV20080418,B2007g,IAna,KeepSvtHit,hitfilt,VFMinuit3,emcDY2,ftpc,trgd," + "ZDCvtx,svtIT,ssdIT,Corr4,OSpaceZ2,OGridLeak3D" ,"","","",kFALSE}, + {"RC.y2007.NoSvt" ,"","","DbV20080418,B2007g,IAna,KeepSvtHit,hitfilt,VFMinuit3,emcDY2,ftpc," + "trgd,ZDCvtx,Corr4,OSpaceZ2,OGridLeak3D" ,"","","",kFALSE}, + {"RC.y2008" ,"","","DbV20080712,P2008,OSpaceZ2,OGridLeak3D,beamLine" ,"","","",kFALSE}, + {"RC.y2008.notof" ,"","","DbV20080712,P2008,-ToF,-tofDat,-tofrMatch,-tofpMatch,-tofCalib,OSpaceZ2," + "OGridLeak3D,beamLine" ,"","","",kFALSE}, + {"RC.pp.y2008" ,"","","DbV20080712,pp2008,OSpaceZ2,OGridLeak3D,beamLine" ,"","","",kFALSE}, + {"RC.pp.y2008.Minuit","","","DbV20080712,pp2008,-VFPPV,VFMinuit,-ToF,-tofDat,-tofrMatch,-tofpMatch," + "-tofCalib,OSpaceZ2,OGridLeak3D,beamLine" ,"","","",kFALSE}, + {"RC.pp.y2009" ,"","","pp2009c,VFMinuit,beamLine,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D" + , "","","",kFALSE}, + {"RC.pp.y2009.notof","","","pp2009c,VFMinuit,beamLine,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D" + , "","","",kFALSE}, + {"RC.pp.y2009.VFPP","","","pp2009c,VFPPVnoCTB,beamLine,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D" + , "","","",kFALSE}, + {"RC.y2010" ,"","","P2010a,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D,pmdReco", "","","",kFALSE}, + {"RC.y2010.notof" ,"","","P2010a,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D" ,"","","",kFALSE}, + {"RC.pp.y2011.VFPPV","","","pp2011a,VFPPVnoCTB,beamline,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D," + "-hitfilt" ,"","","",kFALSE}, + {"RC.pp.y2011","","","pp2011a,VFMinuit,beamline,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt" + , "","","",kFALSE}, + {"RC.y2011" ,"","","P2011a,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt,pmdReco,mtdDat" + , "","","",kFALSE}, + {"RC.y2011.notof" ,"","","P2011a,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt,pmdReco,mtdDat" + , "","","",kFALSE}, + {"RC.y2012" ,"","","P2012a,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt,mtdDat,fmsDat" + , "","","",kFALSE}, + {"RC.y2012.notof" ,"","","P2012a,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt", "","","",kFALSE}, + {"RC.pp.y2012" ,"","","pp2012a,VFPPVnoCTB,beamline,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D," + "-hitfilt,mtdDat,fmsDat", "","","",kFALSE}, + {"RC.pp.y2012.notof","","","pp2012a,VFPPVnoCTB,beamline,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D," + "-hitfilt", "","","",kFALSE}, + {"RC.pp.y2012.notofMin","","","pp2012a,VFMinuit,beamline,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D" + ",-hitfilt", "","","",kFALSE}, + {"RC.y2012b" ,"","","P2012b,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt,mtdDat,fmsDat" + , "","","",kFALSE}, + {"RC.y2012b.notof" ,"","","P2012b,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt", "","","",kFALSE}, + {"RC.pp.y2012b" ,"","","pp2012b,VFPPVnoCTB,beamline,BEmcChkStat,btof,Corr4,OSpaceZ2,OGridLeak3D," + "-hitfilt,mtdDat,fmsDat", "","","",kFALSE}, + {"RC.pp.y2012b.notof","","","pp2012b,VFPPVnoCTB,beamline,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D" + ",-hitfilt", "","","",kFALSE}, + {"RC.pp.y2012b.notofMin","","","pp2012b,VFMinuit,beamline,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D" + ",-hitfilt", "","","",kFALSE}, + {"RC.pp.y2012b.notofMin","","","pp2012b,VFMinuit,beamline,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D" + ",-hitfilt", "","","",kFALSE}, + {"RC.pp.y2013","","","pp2013a,mtd,btof,fmsDat,fgt,fgtPoint,VFPPVnoCTB,beamline,BEmcChkStat,Corr4," + "OSpaceZ2,OGridLeak3D,-hitfilt", "","","",kFALSE}, + {"RC.y2014","","","P2014a,mtd,btof,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt", "","","",kFALSE}, + {"MC nightlies and Eval","--","-----------","------------------------------------------","","","",kFALSE}, + {"test_MC.stan.y2000","","","MC.y2000,Sti,fzin,MiniMcMk","","" + ,"/star/rcf/simu/cocktail/hadronic/default/standard/year_1h/half_field/hadronic_on/Gstardata/" + "hc_standard.40_evts.fz", kFALSE}, + {"test_MC.pp.y2001","","","MC.pp.y2001,Sti,fzin,MiniMcMk","","" + ,"/star/rcf/simu/pp200/pythia/default/minbias/year2001/hadronic_on/gstardata/pds0200_04_12812evts.fzd" + , kFALSE}, + {"test_MC.stan.y2001","","","MC.y2001,Sti,fzin,MiniMcMk","","" + ,"/star/rcf/simu/cocktail/hadronic/default/standard/year2001/hadronic_on/Gstardata/hc_standard.40_evts.fz" + , kFALSE}, + {"test_dau.MC.y2003" ,"","","MC.y2003,Sti,fzin,MiniMcMk","" + , "","/star/rcf/simu/rcf1197_05_5940evts.fzd",kFALSE}, + {"test_auauCtr.MC.y2004" ,"","","MC.y2004a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1209_05_80evts.fzd",kFALSE}, + {"test_auau.MC.y2004" ,"","","MC.y2004,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1207_01_225evts.fzd",kFALSE}, + {"test_cucu200.MC.y2005" ,"","","MC.y2005,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1216_05_200evts.fzd",kFALSE}, + {"test_cucu62.MC.y2005" ,"","","MC.y2005,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1237_01_500evts.fzd",kFALSE}, + {"test_pp200.MC.y2006" ,"","","MC.y2006,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9991_01_1000evts.fzd",kFALSE}, + {"test_auau200.MC.y2007" ,"","","MC.y2007,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1296_02_100evts.fzd",kFALSE}, + {"test_dau200.MC.y2008","","","MC.y2008,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9066_20_1000evts.fzd",kFALSE}, + {"test_pp200.MC.y2008","","","MC.y2008,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9992_01_1000evts.fzd",kFALSE}, + {"test_pp200.MC.y2009","","","MC.y2009a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9993_01_1000evts.fzd",kFALSE}, + {"test_pp500.MC.y2009","","","MC.y2009a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9994_01_1000evts.fzd",kFALSE}, + {"test_auau11.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10031_1_100evts.fzd",kFALSE}, + {"test_auau200.MC.y2010","","","MC.y2010,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9068_305_100evts.fzd",kFALSE}, + {"test_auau39.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10032_1_100evts.fzd",kFALSE}, + {"test_auau62.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10033_1_100evts.fzd",kFALSE}, + {"test_auau7.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10030_1_100evts.fzd",kFALSE}, + {"test_auau200.MC.y2011","","","MC.y2011,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf11023_2060_25evts.fzd",kFALSE}, + {"test_pp500.MC.y2011","","","MC.fast.y2011,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd",kFALSE}, + {"test_pp500.pileup.MC.y2011","","","MC.fast.y2011,Sti,fzin,MiniMcMk","","" + ,"/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_200evts_Wplus_enu.fzd\n" + " gfile b /star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd\n" + " mode TPCE back 4001400\n gback 400 400 0.1 106.6" ,kFALSE}, + {"test_CuAu200.MC.AgML.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12003_1_100evts.fzd",kFALSE}, + {"test_CuAu200.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12003_1_100evts.fzd",kFALSE}, + {"test_pp200.MC.AgML.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12000_1_1000evts.fzd",kFALSE}, + {"test_pp200.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12000_1_1000evts.fzd",kFALSE}, + {"test_pp500.MC.AgML.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12001_1_1000evts.fzd",kFALSE}, + {"test_pp500.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12001_1_1000evts.fzd",kFALSE}, + {"test_UU200.MC.AgML.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12002_1_100evts.fzd",kFALSE}, + {"test_UU200.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12002_1_100evts.fzd",kFALSE}, + {"test.RC.centr.y2000","","","RC.y2000,Sti","","" + , "/star/rcf/test/daq/2000/09/st_physics_1248022_raw_0001.daq",kFALSE}, + {"test.RC.minb.y2000","","","RC.y2000,Sti","","" + , "/star/rcf/test/daq/2000/08/st_physics_1229021_raw_0003.daq",kFALSE}, + {"test.RC.cent.y2001d","","","RC.y2001,v02,xi2,Sti","","" + , "/star/rcf/test/daq/2001/327/st_physics_2327038_raw_0010.daq",kFALSE}, + {"test.RC.cent.y2001","","","RC.y2001,v0,xi,Sti","","" + , "/star/rcf/test/daq/2001/327/st_physics_2327038_raw_0010.daq",kFALSE}, + {"test.RC.minb.y2001d","","","RC.y2001,v02,xi2,Sti","","" + , "/star/rcf/test/daq/2001/295/st_physics_2295030_raw_0010.daq",kFALSE}, + {"test.RC.minb.y2001","","","RC.y2001,v0,xi,Sti","","" + , "/star/rcf/test/daq/2001/295/st_physics_2295030_raw_0010.daq",kFALSE}, + {"test.RC.pp.y2001d","","","RC.pp.y2001,v02,xi2,Sti","","" + , "/star/rcf/test/daq/2002/008/st_physics_3008016_raw_0001.daq",kFALSE}, + {"test.RC.pp.y2001","","","RC.pp.y2001.ppv,v0,xi,Sti","","" + , "/star/rcf/test/daq/2002/008/st_physics_3008016_raw_0001.daq",kFALSE}, + {"test.RC.pp.y2001_vfppvd","","","RC.pp.y2001.ppv,v02,xi2,Sti","","" + , "/star/rcf/test/daq/2002/008/st_physics_3008016_raw_0001.daq",kFALSE}, + {"test.RC.dau.y2003","","","RC.y2003,ITTF,Sti","","" + , "/star/rcf/test/daq/2003/041/st_physics_4041002_raw_0020001.daq",kFALSE}, + {"test.RC.pp.y2003","","","RC.pp.y2003.VFPPV,Sti","","" + , "/star/rcf/test/daq/2003/095/st_physics_4095050_raw_0010002.daq",kFALSE}, + {"test.RC.auau.lo.y2004","","","RC.y2004,-SvtIT,-SsdIT,pmdRaw,ITTF,Sti","","" + , "/star/rcf/test/daq/2004/044/st_physics_5044116_raw_3010002.daq",kFALSE}, + {"test.RC.auau.ph.y2004","","","RC.y2004,pmdRaw,-SvtIT,-SsdIT,ITTF,Sti","","" + , "/star/rcf/test/daq/2004/044/st_physics_5044102_raw_1010003.daq",kFALSE}, + {"test.RC.auau.StiCA.y2004","","","RC.y2004,-SsdIt,-SvtIt,pmdRaw,StiCA","","" + , "/star/rcf/test/daq/2004/028/st_physics_5028066_raw_1010003.daq",kFALSE}, + {"test.RC.auau.y2004","","","RC.y2004,-SsdIt,-SvtIt,pmdRaw,ITTF,Sti","","" + , "/star/rcf/test/daq/2004/028/st_physics_5028066_raw_1010003.daq",kFALSE}, + {"test.RC.pp.y2004","","","RC.pp.y2004,ITTF,Sti","","" + , "/star/rcf/test/daq/2004/134/st_physics_5134013_raw_2010010.daq",kFALSE}, + {"test.RC.cucu200.ht.y2005","","","RC.y2005,ITTF,Sti","","" + , "/star/rcf/test/daq/2005/054/st_physics_6054016_raw_1020005.daq",kFALSE}, + {"test.RC.cucu200.y2005","","","RC.y2005,ITTF,Sti","","" + , "/star/rcf/test/daq/2005/048/st_physics_6048025_raw_1020002.daq",kFALSE}, + {"test.RC.cucu22.y2005","","","RC.y2005,ITTF,Sti","","" + , "/star/rcf/test/daq/2005/083/st_physics_6083006_raw_1040002.daq",kFALSE}, + {"test.RC.cucu62.y2005","","","RC.y2005,ITTF,Sti","","" + , "/star/rcf/test/daq/2005/080/st_physics_6080011_raw_1020004.daq",kFALSE}, + {"test.RC.pp200.y2005","","","RC.pp.y2005,ITTF,Sti","","" + , "/star/rcf/test/daq/2005/171/st_physics_6171062_raw_2040010.daq",kFALSE}, + {"test.RC.pp200.Long.y2006","","","RC.pp.y2006,ITTF,Sti","","" + , "/star/rcf/test/daq/2006/155/7155010/st_physics_7155010_raw_1020003.daq",kFALSE}, + {"test.RC.pp200.Trans.y2006","","","RC.pp.y2006,ITTF,Sti","","" + , "/star/rcf/test/daq/2006/129/7129023/st_physics_7129023_raw_1020003.daq",kFALSE}, + {"test.RC.auau200.MB.y2007","","","RC.y2007,pmdReco,ITTF,Sti","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"test.RC.auau200.y2007","","","RC.y2007,pmdReco,ITTF,Sti","","" + , "/star/rcf/test/daq/2007/112/8112052/st_physics_8112052_raw_1020010.daq",kFALSE}, + {"test.RC.dau200.y2008","","","RC.y2008,ITTF,Sti","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"test.RC.pp200.y2008","","","RC.pp.y2008,ITTF,Sti","","" + , "/star/rcf/test/daq/2008/043/st_physics_9043046_raw_2030002.daq",kFALSE}, + {"test.RC.pp200.y2009","","","RC.pp.y2009.VFPP,ITTF,Sti","","" + , "/star/rcf/test/daq/2009/115/st_physics_10115020_raw_5020001.daq",kFALSE}, + {"test.RC.pp500.y2009","","","RC.pp.y2009.VFPP,ITTF,Sti","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"test.RC.auau11.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/157/st_physics_11157020_raw_2030001.daq",kFALSE}, + {"test.RC.auau200.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"test.RC.auau39.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"test.RC.auau62.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/098/st_physics_11098050_raw_3020001.daq",kFALSE}, + {"test.RC.auau7.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/143/st_physics_11143043_raw_1020001.daq",kFALSE}, + {"test.RC.auau200.y2011","","","RC.y2011,Sti","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"test.RC.auau20.y2011","","","RC.y2011,Sti","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"test.RC.auau27.y2011","","","RC.y2011,Sti","","" + , "/star/rcf/test/daq/2011/174/st_physics_12174106_raw_2040001.daq",kFALSE}, + {"test.RC.pp500.y2011","","","RC.pp.y2011.VFPPV,pmdReco,mtdDat,Sti","","" + , "/star/rcf/test/daq/2011/059/st_physics_12059038_raw_2030002.daq",kFALSE}, + {"test.RC.cuAu200.AgML.y2012","","","RC.y2012b,AgML,Sti","","" + , "/star/rcf/test/daq/2012/143/st_physics_13143018_raw_3020009.daq",kFALSE}, + {"test.RC.cuAu200.y2012","","","RC.y2012b,Sti","","" + , "/star/rcf/test/daq/2012/143/st_physics_13143018_raw_3020009.daq",kFALSE}, + {"test.RC.pp200.AgML.y2012","","","RC.pp.y2012b,AgML,Sti","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"test.RC.pp200.y2012","","","RC.pp.y2012b,Sti","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"test.RC.pp500.AgML.y2012","","","RC.pp.y2012b,AgML,Sti","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"test.RC.pp500.y2012","","","RC.pp.y2012b,Sti","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"test.RC.UU193.AgML.y2012","","","RC.y2012b,AgML,Sti","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"test.RC.UU193.y2012","","","RC.y2012b,Sti","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"test.RC.pp500.y2013","","","RC.pp.y2013,Sti","","" + , "/star/rcf/test/daq/2013/079/st_physics_14079008_raw_1920004.daq",kFALSE}, + {"test.RC.AuAu15.y2014","","","RC.y2014,Sti","","" + , "/star/rcf/test/daq/2014/069/st_physics_15069008_raw_2500008.daq",kFALSE}, + {"test.RC.AuAu200.y2014","","","RC.y2014,Sti","","" + , "/star/rcf/test/daq/2014/086/st_physics_15086051_raw_2500017.daq",kFALSE}, + {"test.RC.AuAu200.mid.y2014","","","RC.y2014,Sti","","" + , "/star/rcf/test/daq/2014/146/st_mtd_15146050_raw_1000030.daq",kFALSE}, + {"test.RC.He3Au200.y2014","","","RC.y2014,Sti","","" + , "/star/rcf/test/daq/2014/171/st_physics_15171039_raw_2000008.daq",kFALSE}, + {"eval_Sti_auau200.MC.y2007" ,"","","MC.y2007,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1296_02_100evts.fzd",kFALSE}, + {"eval_StiCA_auau200.MC.y2007","","","MC.y2007,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf1296_02_100evts.fzd",kFALSE}, + {"eval_Sti.AgML_dau200.MC.y2008","","","MC.y2008,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9066_20_1000evts.fzd",kFALSE}, + {"eval_Sti.AgML_pp200.MC.y2008","","","MC.y2008,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9992_01_1000evts.fzd",kFALSE}, + {"eval_StiCA_dau200.MC.y2008","","","MC.y2008,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9066_20_1000evts.fzd",kFALSE}, + {"eval_StiCA_pp200.MC.y2008","","","MC.y2008,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9992_01_1000evts.fzd",kFALSE}, + {"eval_Sti_dau200.MC.y2008","","","MC.y2008,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9066_20_1000evts.fzd",kFALSE}, + {"eval_Sti_pp200.MC.y2008","","","MC.y2008,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9992_01_1000evts.fzd",kFALSE}, + {"eval_StvCA_dau200.MC.Stv.y2008","","","MC.in.y2008,StvPulls,StvCA,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11025_2040_100evts.event.root",kFALSE}, + {"eval_Stv_dau200.MC.y2008","","","MC.in.y2008,Stv,StvPulls,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11025_2040_100evts.event.root",kFALSE}, + {"eval_Sti.AgML_pp500.MC.y2009","","","MC.y2009a,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9994_01_1000evts.fzd",kFALSE}, + {"eval_StiCA_pp200.MC.y2009","","","MC.y2009a,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9993_01_1000evts.fzd",kFALSE}, + {"eval_StiCA_pp500.MC.y2009","","","MC.y2009a,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9994_01_1000evts.fzd",kFALSE}, + {"eval_Sti_pp200.MC.y2009","","","MC.y2009a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9993_01_1000evts.fzd",kFALSE}, + {"eval_Sti_pp500.MC.y2009","","","MC.y2009a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9994_01_1000evts.fzd",kFALSE}, + {"eval_StvCA_pp500.MC.y2009","","","MC.in.y2009,StvPulls,StvCA,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11026_1020_50evts_pileup.event.root",kFALSE}, + {"eval_Stv_pp500.MC.y2009","","","MC.in.y2009,Stv,StvPulls,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11026_1020_50evts_pileup.event.root",kFALSE}, + {"eval_Sti.AgML_auau11.MC.y2010","","","MC.y2010a,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10031_1_100evts.fzd",kFALSE}, + {"eval_Sti.AgML_auau200.MC.y2010","","","MC.y2010,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9068_305_100evts.fzd",kFALSE}, + {"eval_Sti_auau11.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10031_1_100evts.fzd",kFALSE}, + {"eval_Sti_auau200.MC.y2010","","","MC.y2010,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9068_305_100evts.fzd",kFALSE}, + {"eval_Sti_auau39.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10032_1_100evts.fzd",kFALSE}, + {"eval_Sti_auau62.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10033_1_100evts.fzd",kFALSE}, + {"eval_Sti_auau7.MC.y2010","","","MC.y2010a,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10030_1_100evts.fzd",kFALSE}, + {"eval_StiCA_auau11.MC.y2010","","","MC.y2010a,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10031_1_100evts.fzd",kFALSE}, + {"eval_StiCA_auau200.MC.y2010","","","MC.y2010,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf9068_305_100evts.fzd",kFALSE}, + {"eval_StiCA_auau39.MC.y2010","","","MC.y2010a,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10032_1_100evts.fzd",kFALSE}, + {"eval_StiCA_auau62.MC.y2010","","","MC.y2010a,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10033_1_100evts.fzd",kFALSE}, + {"eval_StiCA_auau7.MC.y2010","","","MC.y2010a,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf10030_1_100evts.fzd",kFALSE}, + {"eval_Stv_auau200.MC.y2010","","","MC.in.y2010,Stv,StvPulls,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11022_2241_50evts.event.root",kFALSE}, + {"eval_StvCA_auau200.MC.y2010","","","MC.in.y2010,StvPulls,StvCA,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11022_2241_50evts.event.root",kFALSE}, + {"eval_StvCA_auau39.MC.y2010","","","MC.y2010a,StvCA","","" + , "/star/rcf/simu/rcf10032_1_100evts.fzd",kFALSE}, + {"eval_StvCA_auau62.MC.y2010","","","MC.y2010a,StvCA","","" + , "/star/rcf/simu/rcf10033_1_100evts.fzd",kFALSE}, + {"eval_StvCA_auau7.MC.y2010","","","MC.y2010a,StvCA","","" + , "/star/rcf/simu/rcf10030_1_100evts.fzd",kFALSE}, + {"eval_Sti.AgML_auau200.MC.y2011","","","MC.y2011,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf11023_2060_25evts.fzd",kFALSE}, + {"eval_Sti.AgML_pp500.MC.y2011","","","MC.fast.y2011,AgML,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd",kFALSE}, + {"eval_Sti_auau200.MC.y2011","","","MC.y2011,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf11023_2060_25evts.fzd",kFALSE}, + {"eval_StiCA_pp500.MC.y2011","","","MC.fast.y2011,StiCA,fzin,MiniMcMk","","" + , "/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd",kFALSE}, + {"eval_StiCA_pp500.pileup.MC.y2011","","","MC.fast.y2011,StiCA,fzin,MiniMcMk","","" + ,"/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_200evts_Wplus_enu.fzd\n " + "gfile b /star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd\n" + " mode TPCE back 4001400\n gback 400 400 0.1 106.6" ,kFALSE}, + {"eval_Sti_pp500.MC.y2011","","","MC.fast.y2011,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd",kFALSE}, + {"eval_Sti_pp500.pileup.MC.y2011","","","MC.fast.y2011,Sti,fzin,MiniMcMk","","" + ,"/star/rcf/simu/pp500/pythia/pileup/rcf10100_90_200evts_Wplus_enu.fzd\n" + " gfile b /star/rcf/simu/pp500/pythia/pileup/rcf10100_90_4000evts_minb.fzd\n" + " mode TPCE back 4001400\n gback 400 400 0.1 106.6" ,kFALSE}, + {"eval_Stv_auau200.MC.y2011","","","MC.in.y2011,Stv,StvPulls,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11023_2060_25evts.event.root",kFALSE}, + {"eval_StvCA_auau200.MC.y2011","","","MC.in.y2011,StvPulls,StvCA,in,MiniMcMk","","" + , "/star/rcf/simu/rcf11023_2060_25evts.event.root",kFALSE}, + {"eval_Sti.AgML_CuAu200.MC.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12003_1_100evts.fzd",kFALSE}, + {"eval_Sti.AgML_pp200.MC.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12000_1_1000evts.fzd",kFALSE}, + {"eval_Sti.AgML_pp500.MC.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12001_1_1000evts.fzd",kFALSE}, + {"eval_Sti.AgML_UU200.MC.y2012","","","MC.y2012,Sti,AgML,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12002_1_100evts.fzd",kFALSE}, + {"eval_Sti_CuAu200.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12003_1_100evts.fzd",kFALSE}, + {"eval_Sti_pp200.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12000_1_1000evts.fzd",kFALSE}, + {"eval_Sti_pp500.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12001_1_1000evts.fzd",kFALSE}, + {"eval_Sti_UU200.MC.y2012","","","MC.y2012,Sti,fzin,MiniMcMk","","" + , "/star/rcf/simu/rcf12002_1_100evts.fzd",kFALSE}, + {"eval_Sti.AgML.RC.auau200.MB.y2007","","","RC.y2007,pmdReco,ITTF,AgML,Sti","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"eval_StiCA.RC.auau200.MB.y2007","","","RC.y2007,pmdReco,StiCA","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"eval_StiCA.RC.auau200.y2007","","","RC.y2007,pmdReco,StiCA","","" + , "/star/rcf/test/daq/2007/112/8112052/st_physics_8112052_raw_1020010.daq",kFALSE}, + {"eval_Sti.RC.auau200.MB.y2007","","","RC.y2007,pmdReco,ITTF,Sti","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"eval_Stv.AgML.RC.auau200.MB.y2007","","","RC.y2007,Stv,AgML","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"eval_StvCA.RC.auau200.MB.y2007","","","RC.y2007.NoSvt,StvCA","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"eval_Stv.RC.auau200.MB.y2007","","","RC.y2007.NoSvt,Stv","","" + , "/star/rcf/test/daq/2007/113/8113044/st_physics_8113044_raw_1040042.daq",kFALSE}, + {"eval_Sti.AgML.RC.dau200.y2008","","","RC.y2008,ITTF,AgML,Sti","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"eval_StiCA.RC.dau200.y2008","","","RC.y2008,StiCA","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"eval_StiCA.RC.pp200.y2008","","","RC.pp.y2008,StiCA","","" + , "/star/rcf/test/daq/2008/043/st_physics_9043046_raw_2030002.daq",kFALSE}, + {"eval_Sti.RC.dau200.y2008","","","RC.y2008,ITTF,Sti","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"eval_Sti.RC.pp200.y2008","","","RC.pp.y2008,ITTF,Sti","","" + , "/star/rcf/test/daq/2008/043/st_physics_9043046_raw_2030002.daq",kFALSE}, + {"eval_Stv.AgML.RC.dau200.y2008","","","RC.y2008.notof,Stv,AgML","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"eval_StvCA.RC.dau200.y2008","","","RC.y2008.notof,StvCA","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"eval_StvCA.RC.pp200.y2008","","","RC.pp.y2008.Minuit,StvCA","","" + , "/star/rcf/test/daq/2008/043/st_physics_9043046_raw_2030002.daq",kFALSE}, + {"eval_Stv.RC.dau200.y2008","","","RC.y2008.notof,Stv","","" + , "/star/rcf/test/daq/2007/352/st_physics_8352025_raw_1030011.daq",kFALSE}, + {"eval_Stv.RC.pp200.y2008","","","RC.pp.y2008.Minuit,Stv","","" + , "/star/rcf/test/daq/2008/043/st_physics_9043046_raw_2030002.daq",kFALSE}, + {"eval_Sti.AgML.RC.pp500.y2009","","","RC.pp.y2009.VFPP,ITTF,Sti","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"eval_StiCA.RC.pp200.y2009","","","RC.pp.y2009.VFPP,StiCA","","" + , "/star/rcf/test/daq/2009/115/st_physics_10115020_raw_5020001.daq",kFALSE}, + {"eval_StiCA.RC.pp500.y2009","","","RC.pp.y2009.VFPP,StiCA","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"eval_Sti.RC.pp200.y2009","","","RC.pp.y2009.VFPP,ITTF,Sti","","" + , "/star/rcf/test/daq/2009/115/st_physics_10115020_raw_5020001.daq",kFALSE}, + {"eval_Sti.RC.pp500.y2009","","","RC.pp.y2009.VFPP,ITTF,Sti","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"eval_Stv.AgML.RC.pp500.y2009","","","RC.pp.y2009,Stv,AgML","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"eval_StvCA.RC.pp200.y2009","","","RC.pp.y2009,StvCA","","" + , "/star/rcf/test/daq/2009/115/st_physics_10115020_raw_5020001.daq",kFALSE}, + {"eval_StvCA.RC.pp500.y2009","","","RC.pp.y2009,StvCA","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"eval_Stv.RC.pp200.y2009","","","RC.pp.y2009,Stv","","" + , "/star/rcf/test/daq/2009/115/st_physics_10115020_raw_5020001.daq",kFALSE}, + {"eval_Stv.RC.pp500.y2009","","","RC.pp.y2009,Stv","","" + , "/star/rcf/test/daq/2009/085/st_physics_10085024_raw_2020001.daq",kFALSE}, + {"eval_Sti.AgML.RC.auau200.y2010","","","RC.y2010.notof,AgML,Sti","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"eval_Sti.AgML.RC.auau39.y2010","","","RC.y2010.notof,AgML,Sti","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"eval_StiCA.RC.auau11.y2010","","","RC.y2010,StiCA","","" + , "/star/rcf/test/daq/2010/157/st_physics_11157020_raw_2030001.daq",kFALSE}, + {"eval_StiCA.RC.auau200.y2010","","","RC.y2010,StiCA","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"eval_StiCA.RC.auau39.y2010","","","RC.y2010,StiCA","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"eval_StiCA.RC.auau62.y2010","","","RC.y2010,StiCA","","" + , "/star/rcf/test/daq/2010/098/st_physics_11098050_raw_3020001.daq",kFALSE}, + {"eval_Sti.RC.auau11.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/157/st_physics_11157020_raw_2030001.daq",kFALSE}, + {"eval_Sti.RC.auau200.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"eval_Sti.RC.auau39.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"eval_Sti.RC.auau62.y2010","","","RC.y2010,Sti","","" + , "/star/rcf/test/daq/2010/098/st_physics_11098050_raw_3020001.daq",kFALSE}, + {"eval_Stv.AgML.RC.auau200.y2010","","","RC.y2010.notof,Stv,AgML","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"eval_Stv.AgML.RC.auau39.y2010","","","RC.y2010.notof,Stv,AgML","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"eval_StvCA.RC.auau11.y2010","","","RC.y2010.notof,StvCA","","" + , "/star/rcf/test/daq/2010/157/st_physics_11157020_raw_2030001.daq",kFALSE}, + {"eval_StvCA.RC.auau200.y2010","","","RC.y2010.notof,StvCA","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"eval_StvCA.RC.auau39.y2010","","","RC.y2010.notof,StvCA","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"eval_StvCA.RC.auau62.y2010","","","RC.y2010.notof,StvCA","","" + , "/star/rcf/test/daq/2010/098/st_physics_11098050_raw_3020001.daq",kFALSE}, + {"eval_Stv.RC.auau11.y2010","","","RC.y2010.notof,Stv","","" + , "/star/rcf/test/daq/2010/157/st_physics_11157020_raw_2030001.daq",kFALSE}, + {"eval_Stv.RC.auau200.y2010","","","RC.y2010.notof,Stv","","" + , "/star/rcf/test/daq/2010/029/st_physics_11029020_raw_1030002.daq",kFALSE}, + {"eval_Stv.RC.auau39.y2010","","","RC.y2010.notof,Stv","","" + , "/star/rcf/test/daq/2010/100/st_physics_11100070_raw_1030001.daq",kFALSE}, + {"eval_Stv.RC.auau62.y2010","","","RC.y2010.notof,Stv","","" + , "/star/rcf/test/daq/2010/098/st_physics_11098050_raw_3020001.daq",kFALSE}, + {"eval_Sti.AgML.RC.auau200.y2011","","","RC.y2011,AgML,Sti","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"eval_Sti.AgML.RC.auau20.y2011","","","RC.y2011,AgML,Sti","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"eval_Sti.AgML.RC.pp500.y2011","","","RC.pp.y2011.VFPPV,pmdReco,mtdDat,Sti","","" + , "/star/rcf/test/daq/2011/059/st_physics_12059038_raw_2030002.daq",kFALSE}, + {"eval_StiCA.RC.auau200.y2011","","","RC.y2011,StiCA","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"eval_StiCA.RC.auau20.y2011","","","RC.y2011,StiCA","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"eval_StiCA.RC.auau27.y2011","","","RC.y2011,StiCA","","" + , "/star/rcf/test/daq/2011/174/st_physics_12174106_raw_2040001.daq",kFALSE}, + {"eval_StiCA.RC.pp500.y2011","","","RC.pp.y2011.VFPPV,pmdReco,mtdDat,StiCA","","" + , "/star/rcf/test/daq/2011/059/st_physics_12059038_raw_2030002.daq",kFALSE}, + {"eval_Sti.RC.auau200.y2011","","","RC.y2011,Sti","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"eval_Sti.RC.auau20.y2011","","","RC.y2011,Sti","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"eval_Sti.RC.auau27.y2011","","","RC.y2011,Sti","","" + , "/star/rcf/test/daq/2011/174/st_physics_12174106_raw_2040001.daq",kFALSE}, + {"eval_Sti.RC.pp500.y2011","","","RC.pp.y2011.VFPPV,pmdReco,mtdDat,Sti","","" + , "/star/rcf/test/daq/2011/059/st_physics_12059038_raw_2030002.daq",kFALSE}, + {"eval_Stv.AgML.RC.auau200.y2011","","","RC.y2011,Stv,AgML","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"eval_Stv.AgML.RC.auau20.y2011","","","RC.y2011,Stv,AgML","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"eval_StvCA.RC.auau200.y2011","","","RC.y2011,StvCA","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"eval_StvCA.RC.auau20.y2011","","","RC.y2011,StvCA","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"eval_StvCA.RC.auau27.y2011","","","RC.y2011,StvCA","","" + , "/star/rcf/test/daq/2011/174/st_physics_12174106_raw_2040001.daq",kFALSE}, + {"eval_StvCA.RC.pp500.y2011","","","RC.pp.y2011,pmdReco,mtdDat,StvCA","","" + , "/star/rcf/test/daq/2011/059/st_physics_12059038_raw_2030002.daq",kFALSE}, + {"eval_Stv.RC.auau200.y2011","","","RC.y2011,Stv","","" + , "/star/rcf/test/daq/2011/130/st_physics_12130084_raw_5020002.daq",kFALSE}, + {"eval_Stv.RC.auau20.y2011","","","RC.y2011,Stv","","" + , "/star/rcf/test/daq/2011/122/st_physics_12122018_raw_2010002.daq",kFALSE}, + {"eval_Stv.RC.auau27.y2011","","","RC.y2011,Stv","","" + , "/star/rcf/test/daq/2011/174/st_physics_12174106_raw_2040001.daq",kFALSE}, + {"eval_Stv.RC.pp500.y2011","","","RC.pp.y2011,pmdReco,mtdDat,Stv","","" + , "/star/rcf/test/daq/2011/059/st_physics_12059038_raw_2030002.daq",kFALSE}, + {"eval_Sti.AgML.RC.pp200.y2012","","","RC.pp.y2012,AgML,Sti","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"eval_Sti.AgML.RC.pp500.y2012","","","RC.pp.y2012,AgML,Sti","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"eval_Sti.AgML.RC.UU193.y2012","","","RC.y2012,AgML,Sti","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"eval_StiCA.RC.pp200.y2012","","","RC.pp.y2012,StiCA","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"eval_Sti.RC.pp200.y2012","","","RC.pp.y2012,Sti","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"eval_Sti.RC.pp500.y2012","","","RC.pp.y2012,Sti","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"eval_Sti.RC.UU193.y2012","","","RC.y2012,Sti","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"eval_Stv.AgML.RC.cuAu200.y2012","","","RC.y2012b.notof,Stv,AgML","","" + , "/star/rcf/test/daq/2012/143/st_physics_13143018_raw_3020009.daq",kFALSE}, + {"eval_Stv.AgML.RC.pp200.y2012","","","RC.pp.y2012.notofMin,Stv,AgML","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"eval_Stv.AgML.RC.pp500.y2012","","","RC.pp.y2012.notofMin,Stv,AgML","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"eval_Stv.AgML.RC.UU193.y2012","","","RC.y2012b.notof,Stv,AgML","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"eval_StvCA.RC.cuAu200.y2012","","","RC.y2012b.notof,StvCA","","" + , "/star/rcf/test/daq/2012/143/st_physics_13143018_raw_3020009.daq",kFALSE}, + {"eval_StvCA.RC.pp200.y2012","","","RC.pp.y2012.notofMin,StvCA","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"eval_StvCA.RC.pp500.y2012","","","RC.pp.y2012.notofMin,StvCA","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"eval_StvCA.RC.UU193.y2012","","","RC.y2012b.notof,StvCA","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"eval_Stv.RC.cuAu200.y2012","","","RC.y2012b.notof,Stv","","" + , "/star/rcf/test/daq/2012/143/st_physics_13143018_raw_3020009.daq",kFALSE}, + {"eval_Stv.RC.pp200.y2012","","","RC.pp.y2012.notofMin,Stv","","" + , "/star/rcf/test/daq/2012/044/st_physics_13044030_raw_2010001.daq",kFALSE}, + {"eval_Stv.RC.pp500.y2012","","","RC.pp.y2012.notofMin,Stv","","" + , "/star/rcf/test/daq/2012/082/st_physics_13082004_raw_1020004.daq",kFALSE}, + {"eval_Stv.RC.UU193.y2012","","","RC.y2012b.notof,Stv","","" + , "/star/rcf/test/daq/2012/115/st_physics_13115004_raw_2010002.daq",kFALSE}, + {"doEvents" ,"" ,"","in,StEvent,analysis,NoDb" ,"","","",kFALSE}, + {"MakeMuDst","","","in,StEvent,CMuDST,Tree,nodefault,NoHistos,ReadAll","","" ,"StEvent => MuDst",kFALSE}, + {"drawDst" ,"" ,"","in,ry1h,globT,SCL,geant,display,NoDb,TbUtil" ,"","","",kFALSE}, + {"Cdst" ,"" ,"","ITTF,event,analysis,EventQA" ,"","","",kFALSE}, + {"C1default" ,"" ,"","rich,l0,Cdst,tags,Tree,EvOut,NoHits" ,"","","Year 1 chain",kFALSE}, + {"C2default" ,"" ,"","rich,l0,Cdst,tags,Tree,EvOut,ftpc,svt,emcY2" ,"","","Year 2 chain",kFALSE}, + {"C3default" ,"" ,"","l0,Cdst,tags,Tree,EvOut,NoHits,ftpc,svt,bbcsim,emcY2" + , "","","Year 3 simu base chain",kFALSE}, + {"CAdefault" ,"" ,"","l0,Cdst,tags,Tree,EvOut,NoHits,ftpc,svt,emcY2","","","Assymptotic chain",kFALSE}, + {"Cy1a" ,"" ,"","y1a,C1default" ,"","","Turn on chain y1a",kFALSE}, + {"Cy1b" ,"" ,"","y1b,C1default" ,"","","Turn on chain y1b",kFALSE}, + {"Cy1s" ,"" ,"","y1s,C1default" ,"","","Turn on chain y1s",kFALSE}, + {"Cy1d" ,"" ,"","y1d,C1default" ,"","","Turn on chain y1d",kFALSE}, + {"cy1e" ,"" ,"","y1e,C1default" ,"","","Turn on chain y1h",kFALSE}, + {"cy1h" ,"" ,"","y1h,C1default" ,"","","Turn on chain y1e",kFALSE}, + {"Cy2a" ,"" ,"","y2a,CAdefault" ,"","","Turn on chain y2a",kFALSE}, + {"Cy2b" ,"" ,"","y2b,C2default" ,"","","Turn on chain y2b",kFALSE}, + {"C2000" ,"" ,"","y2000,C1default" ,"","","Turn on chain Y2000",kFALSE}, + {"C2001" ,"" ,"","y2001,C2default" ,"","","Turn on chain Y2001",kFALSE}, + {"C2003" ,"" ,"","y2003,C3default" ,"","","Turn on chain Y2003",kFALSE}, + {"C2003X" ,"" ,"","y2003X,C3default" ,"","","Turn on chain Y2003X (full B/E EMC)",kFALSE}, + {"mdc3" ,"" ,"","cy1h,GeantOut" ,"","","MDC3 default chain",kFALSE}, + {"MDC4" ,"" ,"","C2001,trs,tpc_daq,Simu,srs,fss,rrs,big,GeantOut","","","Turn on chain for MDC4",kFALSE}, + {"MDC4New" ,"" ,"","y2001n,C2default,trs,tpc_daq,Simu,srs,fss,rrs,big,GeantOut","","" + , "Turn on chain for MDC4 (for after September)",kFALSE}, + {"PostMDC4" ,"" ,"","C2001,trs,tpc_daq,Simu,sss,fss,rrs,big,GeantOut" + , "","","Turn on Post MDC4 chain",kFALSE}, + {"ppMDC4","","","ppOpt,C2001,mwc,trs,tpc_daq,Simu,srs,rrs,big,GeantOut" + , "","","Turn on chain for ppMDC",kFALSE}, + {"dAuMDC" ,"" ,"","ppOpt,C2003,trs,tpc_daq,Simu,srs,fss,big,GeantOut","","","Chain for d+Au",kFALSE}, + {"dAuMDCa" ,"" ,"","ppOpt,C2003,trs,tpc_daq,Simu,srs,fss,big,GeantOut,est","","","Chain for d+Au",kFALSE}, + {"CComplete" ,"" ,"","Complete,C2default" ,"","","Turn on chain for Complete STAR",kFALSE}, + {"SvtD" ,"","","SvtCalDb,SvtSeqAdj,SvtClu,SvtCluAnal,SvtHit", "","","SVT chain for Data",kFALSE}, + {"P00h" ,"" ,"","ry1h,in,tpc_daq,tpc,rich,Physics,Cdst,Kalman,tags,Tree,evout,ExB,NoHits","","" + , "Production chain for summer 2000 data",kFALSE}, + {"P2000" ,"" ,"","ry2000,in,tpc_daq,tpc,rich,Physics,Cdst,Kalman,tags,Tree,evout,ExB,NoHits","","" + , "Production chain for summer 2000 data",kFALSE}, + {"B2000" ,"","","ry2000,in,tpc_daq,tpc,rich,Physics,Cdst,Kalman,tags,Tree,evout,NosvtIT,NossdIT","","" + , "Base chain for 2001 (tpc+rhic)",kFALSE}, + {"P2000a" ,"" ,"","B2000,Corr1","","" ,"Production chain for summer 2000 data",kFALSE}, + {"B2001" ,"" ,"","ry2001,in,tpc_daq,tpc,rich,Physics,Cdst,Kalman,tags,Tree,evout,svtDb","","" + ,"Base chain for 2001 (tpc+rhic)" ,kFALSE}, + {"P2001" ,"" ,"","B2001,l3onl,tofDat,Corr2,OSpaceZ","","" + , "Production chain for summer 2001 data (+ l3, tof)",kFALSE}, + {"P2001a" ,"" ,"","B2001,svt_daq,SvtD,ftpc,l3onl,tofDat,emcDY2,Corr2,OSpaceZ","","" + , "Production chain for summer 2001 data (+ ftpc, svt, l3, tof, emc)",kFALSE}, + {"pp2001","","","ppOpt,B2001,-PreVtx,l3onl,tofDat,emcDY2,Corr2","","" ,"pp 2001 (+ l3, tof, emc)",kFALSE}, + {"pp2001a" ,"" ,"","pp2001,svt_daq,SvtD,ftpc","","" ,"pp 2001 (+ ftpc, svt, l3, tof, emc)",kFALSE}, + {"B2003" ,"" ,"","ry2003,in,tpc_daq,tpc,Physics,Cdst,Kalman,tags,Tree,evout,svtDb","","" + , "Base chain for 2003 (tpc)",kFALSE}, + {"dau2003" ,"" ,"","B2003,Corr2,ppOpt,-PreVtx,l3onl,ToF,emcDY2,svt_daq,SvtD,ftpc","","" + , "Production chain for winter 2003 data (+ tof, svt (no est), ftpc, emc)",kFALSE}, + {"dau2003a" ,"" ,"","B2003,Corr2,ppOpt,-PreVtx,l3onl,ToF,emcDY2,svt_daq,SvtD,ftpc,trgd","","" + , "Production chain for winter 2003 data (+ tof, svt (no est), ftpc, emc, trgd)",kFALSE}, + {"pp2003" , "" ,"","B2003,Corr2,ppOpt,-PreVtx,l3onl,ToF,emcDY2,svt_daq,SvtD,ftpc,trgd","","" + , "Production chain for Spring 2003 data (+ tof, svt (no est), ftpc, emc, trgd)",kFALSE}, + {"Idst" ,"" ,"", "event,compend,EventQA" ,"","","Turn on DST for ITTF",kFALSE}, + {"IAna" ,"" ,"","dEdxY2,Kink2,xi2,CMuDst,analysis","","" ,"Turn on Xi, Kink, dEdx and MuDst",kFALSE}, + {"BAna" ,"" ,"","dEdxY2,CMuDst,analysis" ,"","" ,"Turn on dEdx and MuDst",kFALSE}, + {"B2003I" ,"","","ry2003,in,TpxRaw,TpxClu,Idst,l0,tags,Tree,evout,svtDb" + , "","","Base chain for 2003 ITTF",kFALSE}, + {"dau2003i" ,"","","B2003I,IAna,CtbMatchVtx,Corr2,ppOpt,l3onl,tofDat,emcDY2,svt_daq,SvtD,ftpc,trgd" + , "","","Production chain for winter 2003 data dau2003a with ITTF",kFALSE}, + {"pp2003i","","","B2003I,IAna,CtbMatchVtx,Corr2,ppOpt,-PreVtx,l3onl,ToF,emcDY2,svt_daq,SvtD,ftpc,trgd" + , "","","Production chain for winter 2003 data dau2003a with ITTF",kFALSE}, + {"B2004" ,"","","ry2004,in,tpc_daq,tpcI,svt_daq,SvtD,Physics,Idst,l0,tags,Tree,evout,ssdDb","","" + , "Base chain for 2004 ITTF (tpc+svt)",kFALSE}, + {"P2004","" ,"","B2004,IAna,fcf,VFMinuit,ToF,emcDY2,ftpc,trgd,ZDCvtx,svtIT,Corr4,OSpaceZ2" + , "","","Production chain for 2003/2004 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2004" ,"" ,"", + "B2004,IAna,fcf,ppOpt,VFppLMV5,CtbMatchVtx,ToF,emcDY2,ftpc,trgd,ZDCvtx,svtIT,Corr4,OSpaceZ2" + , "","","Production chain for 2003/2004 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"B2005" ,"","","ry2005b,in,tpc_daq,tpcI,svt_daq,SvtD,Physics,Idst,l0,tags,Tree,evout,ssdDb","","" + , "Base chain for 2005 ITTF (tpc+svt)",kFALSE}, + {"B2005a" ,"" ,"","ry2005b,in,tpc_daq,tpcI,Physics,Idst,l0,tags,Tree,evout,svtDb,ssdDb","","" + , "Base chain for 2005 ITTF (tpc only)",kFALSE}, + {"B2005b" ,"" ,"","ry2005f,in,tpc_daq,tpcI,svt_daq,SvtD,Physics,Idst,l0,tags,Tree,evout,ssdDb","","" + , "Base chain for 2005 ITTF Geo f (tpc+svt only)",kFALSE}, + {"B2005c" ,"" ,"","ry2005g,in,tpc_daq,tpcI,svt_daq,SvtD,Physics,Idst,l0,tags,Tree,evout,ssdDb","","" + , "Base chain for 2005 ITTF Geo g (tpc+svt only + dead material)",kFALSE}, + {"P2005" ,"" ,"", "B2005,IAna,fcf,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,svtIT,Corr3" + , "","","Production chain for 2004/2005 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2005b" ,"" ,"", "B2005b,IAna,fcf,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,svtIT,Corr3" + , "","","Production chain for 2004/2005 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2005c" ,"" ,"", "B2005c,IAna,fcf,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,svtIT,Corr3" + , "","","Production chain for 2004/2005 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2005","" ,"","B2005,IAna,fcf,ppOpt,VFppLMV5,CtbMatchVtx,emcDY2,ftpc,trgd,ZDCvtx,svtIT,Corr3" + , "","","Production chain for 2005 pp data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2005a","","","B2005a,IAna,fcf,ppOpt,VFPPV,beamline,CtbMatchVtx,emcDY2,ftpc,trgd,ZDCvtx,Corr4" + , "","","Production chain for 2005 pp data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2005b","","", "B2005b,IAna,fcf,ppOpt,VFPPV,beamline,CtbMatchVtx,emcDY2,ftpc,trgd,ZDCvtx,Corr4" + , "","","Production chain for 2005 pp data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"B2006" ,"" ,"","ry2005d,in,tpc_daq,tpcI,svt_daq,SvtD,Idst,tags,Tree,evout,ssdDb","","" + , "Base chain for 2006 ITTF (tpc+svt)",kFALSE}, + {"B2006a" ,"" ,"","ry2005d,in,tpc_daq,tpcI,Idst,tags,Tree,evout,svtDb,ssdDb","","" + , "Base chain for 2006 with 2005d geom ITTF (tpc only)",kFALSE}, + {"B2006b" ,"" ,"","ry2006,in,tpc_daq,tpcI,Idst,l0,tags,Tree,evout,svtDb,ssdDb","","" + , "Base chain for 2006 ITTF (tpc only)",kFALSE}, + {"B2006g" ,"" ,"","ry2006g,in,tpc_daq,tpcI,Idst,l0,tags,Tree,evout,svtDb,ssdDb","","" + , "Base chain for 2006 ITTF geo g (tpc only)",kFALSE}, + {"pp2006a" ,"" ,"", + "B2006a,IAna,fcf,ppOpt,VFPPVnoCTB,beamline,emcDY2,ftpc,trgd,ZDCvtx,Corr3" + , "","","Production chain for 2005 pp data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2006b" ,"" ,"", + "B2006b,IAna,fcf,ppOpt,VFPPVnoCTB,beamline,emcDY2,ftpc,trgd,ZDCvtx,Corr4,BeamBack" + , "","","Production chain for 2005 pp data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2006g" ,"" ,"", + "B2006g,IAna,fcf,ppOpt,VFPPVnoCTB,beamline,emcDY2,ftpc,trgd,ZDCvtx,Corr4,BeamBack" + , "","","Production chain for 2005 pp data geo g (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"T2007","","","ry2007g,MakeEvent,in,tpc_daq,tpcI,fcf,Tree,evout" + , "","","TPC only chain, 2007 ITTF",kFALSE}, + {"B2007","","","ry2007,MakeEvent,in,tpc_daq,tpcI,fcf,svt_daq,SvtD,ssddat,sptd,Idst,tags,Tree,evout" + , "","","Base chain for 2007 ITTF (tpc+svt+ssd)",kFALSE}, + {"B2007g","","","ry2007g,MakeEvent,in,tpc_daq,tpcI,fcf,svt_daq,SvtD,ssddat,sptd,Idst,tags,Tree,evout" + , "","","Base chain for 2007 ITTF geo g (tpc+svt+ssd)",kFALSE}, + {"P2007" ,"" ,"", + "B2007,IAna,KeepSvtHit,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,svtIT,ssdIT,Corr5" + , "","","Production chain for 2007 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2007g" ,"" ,"", + "B2007g,IAna,KeepSvtHit,hitfilt,VFMinuit2,emcDY2,ftpc,trgd,ZDCvtx,svtIT,ssdIT,Corr5" + , "","","Production chain for 2007 data, revised 2008 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2007a" ,"" ,"", + "B2007,IAna,KeepSvtHit,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,svtIT,ssdIT,Corr3" + , "","","Production chain for 2007 data Corr3 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2007b" ,"" ,"", + "B2007,IAna,KeepSvtHit,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,svtIT,ssdIT,Corr4" + , "","","Production chain for 2007 data Corr4 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"B2008" ,"","","ry2008,in,tpc_daq,tpcI,fcf,Idst,tags,Tree,evout","","" + , "Base chain for 2008 ITTF (tpc)",kFALSE}, + {"B2008a","","","ry2008,in,tpcX,ToFx,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2008 ITTF (tpc+tof)",kFALSE}, + {"P2008a" ,"" ,"", + "B2008,IAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr3,analysis" + , "","","Production chain for 2008 data Corr3 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2008b" ,"" ,"", + "B2008,IAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr4,analysis" + , "","","Production chain for 2008 data Corr4 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2008a" ,"" ,"", + "B2008,IAna,hitfilt,ppOpt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr4,analysis" + , "","","Production chain for 2008 data Corr3 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2008c" ,"" ,"", + "B2008,IAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr4,analysis" + , "","","Production chain for 2008 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2008c" ,"" ,"", + "B2008,IAna,hitfilt,ppOpt,Minuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr4,analysis" + , "","","Production chain for 2008 data Corr4 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2008" ,"" ,"", + "B2008a,IAna,hitfilt,ppOpt,VFPPV,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr4,analysis" + , "","","Production chain for 2008 data Corr3 (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"P2008" ,"" ,"", + "B2008a,IAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,Corr4,analysis" + , "","","Production chain for 2008 data (+ l3, tof, ftpc, e/b-emc, trgd)",kFALSE}, + {"B2009.1","","","ry2009,in,tpcX,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2009 ITTF (tpc)",kFALSE}, + {"B2009.2","","","ry2009a,in,tpcX,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2009 ITTF (tpc)",kFALSE}, + {"B2009.3","","","ry2009d,in,tpcX,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2009 ITTF (tpc)",kFALSE}, + {"pp2009a" ,"" ,"", + "B2009.1,IAna,hitfilt,ppOpt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2009 data - no Corr (+ l3, ftpc, e/b-emc, trgd)",kFALSE}, + {"pp2009b" ,"" ,"", + "B2009.1,IAna,hitfilt,ppOpt,VFMinuit,emcDY2,ftpc,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2009 data - no Corr (+ l3, ftpc, e/b-emc, no trigger)",kFALSE}, + {"pp2009c" ,"" ,"", + "B2009.2,BAna,hitfilt,ppOpt,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,analysis","","" + , "Production chain for 2009 data - no Corr, no VF (+l3, ftpc, e/b-emc, trig)",kFALSE}, + {"pp2009d" ,"" ,"", + "B2009.3,BAna,hitfilt,ppOpt,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,analysis","","" + , "Production chain for 2009 data - no Corr, no VF (+l3, ftpc, e/b-emc, trig)",kFALSE}, + {"B2010","","","ry2010,in,tpcX,ITTF,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2010 ITTF (tpc)",kFALSE}, + {"B2010c","","","ry2010c,in,tpcX,ITTF,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2010 ITTF (tpc)",kFALSE}, + {"P2010a","" ,"", + "B2010,BAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2010 data - no Corr (+ l3, ftpc, e/b-emc)",kFALSE}, + {"pp2010a","" ,"", + "B2010,BAna,hitfilt,ppOpt,emcDY2,trgd,ftpc,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2010 data - no Corr (+ l3, ftpc, e/b-emc, no VF)",kFALSE}, + {"P2010c","" ,"", + "B2010c,BAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2010 data - no Corr (+ l3, ftpc, e/b-emc)",kFALSE}, + {"pp2010c","" ,"", + "B2010c,BAna,hitfilt,ppOpt,emcDY2,trgd,ftpc,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2010 data - no Corr (+ l3, ftpc, e/b-emc, no VF)",kFALSE}, + {"B2011","","","ry2011,in,tpcX,ITTF,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2011 ITTF (tpc)",kFALSE}, + {"P2011a","" ,"", + "B2011,BAna,hitfilt,VFMinuit,emcDY2,ftpc,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2011 data - no Corr (+ l3, ftpc, e/b-emc)",kFALSE}, + {"pp2011a","" ,"", + "B2011,BAna,hitfilt,ppOpt,emcDY2,trgd,ftpc,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2011 data - no Corr (+ l3, ftpc, e/b-emc, no VF)",kFALSE}, + {"B2012","","","ry2012,in,tpcX,ITTF,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2012 ITTF (tpc)",kFALSE}, + {"pp2012a","" ,"","B2012,BAna,hitfilt,ppOpt,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","", "Production chain for 2012 data - no Corr (+ l3, e/b-emc, no VF)",kFALSE}, + {"P2012a","" ,"", + "B2012,BAna,hitfilt,VFMinuit,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2011 data - no Corr (+ l3, e/b-emc)",kFALSE}, + {"B2012b","","","ry2012a,in,tpcX,ITTF,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2012 ITTF (tpc)",kFALSE}, + {"pp2012b","" ,"", + "B2012b,BAna,hitfilt,ppOpt,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","", "Production chain for 2012 data - no Corr (+ l3, e/b-emc, no VF)",kFALSE}, + {"P2012b","" ,"", + "B2012b,BAna,hitfilt,VFMinuit,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","","Production chain for 2011 data - no Corr (+ l3, e/b-emc)",kFALSE}, + {"B2013","","","in,tpcX,UseXgeom,ITTF,NosvtIT,NossdIT,tpcDB,TpcHitMover,Idst,tags,Tree,evout," + "btof,mtd,BAna,emcDY2,trgd,ZDCvtx","","", "Base chain for 2013 ITTF (tpc)",kFALSE}, + {"B2013x","","","ry2013_1x,B2013","","", "Base chain for 2013 ITTF (tpc)",kFALSE}, + {"pp2013x","","","B2013x,BAna,emcDY2,trgd,ZDCvtx" + , "","", "Production chain for 2013 data - no Corr (+ l3, e/b-emc, no VF)",kFALSE}, + {"B2013" ,"","","B2013_c2","","", "Alias for B2013 Configuration 2",kFALSE}, + {"B2013_c2","","","ry2013_2c,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2013 ITTF (tpc)",kFALSE}, + {"B2013_c1","","","ry2013_1c,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2013 ITTF (tpc)",kFALSE}, + {"pp2013a","" ,"", + "B2013_c2,ITTF,UseXgeom,BAna,hitfilt,ppOpt,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis", + "","", "Production chain for 2013 data - no Corr (+ l3, e/b-emc, no VF)",kFALSE}, + {"pp2013b","" ,"", + "B2013_c1,ITTF,UseXgeom,BAna,hitfilt,ppOpt,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","", "Production chain for 2013 data - no Corr (+ l3, e/b-emc, no VF)",kFALSE}, + {"pp2013","" ,"", + "BAna,hitfilt,ppOpt,emcDY2,trgd,ZDCvtx,NosvtIT,NossdIT,analysis" + , "","", "Production chain for 2013 data - no Corr (+ l3, e/b-emc, no VF)",kFALSE}, + {"B2014" ,"","","ry2014,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2014 ITTF (tpc)",kFALSE}, + {"B2014a","","","ry2014a,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2014a ITTF (tpc)",kFALSE}, + {"P2014","" ,"", + "B2014,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,analysis" + , "","","Production chain for 2014 data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2014a","" ,"", + "B2014a,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis," + , "","","Production chain for 2014 data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2015" ,"","","ry2015,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2015 ITTF (tpc)",kFALSE}, + {"B2015a" ,"","","ry2015a,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for run 2015a data",kFALSE}, + {"B2015b" ,"","","ry2015b,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for run 2015 with y2015b geometry",kFALSE}, + {"B2015c" ,"","","ry2015c,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for run 2015 with y2015c geometry",kFALSE}, + {"pp2015","" ,"", + "B2015,ITTF,UseXgeom,BAna,hitfilt,ppOpt,VFPPVnoCTB,beamline,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for 2015 data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"pp2015a","" ,"", + "B2015a,ITTF,UseXgeom,BAna,hitfilt,ppOpt,VFPPVnoCTB,beamline,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for year 2015a data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"pp2015b","" ,"", + "B2015b,ITTF,UseXgeom,BAna,hitfilt,ppOpt,VFPPVnoCTB,beamline,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for year 2015b data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"pp2015c","" ,"", + "B2015c,ITTF,UseXgeom,BAna,hitfilt,ppOpt,VFPPVnoCTB,beamline,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for year 2015c data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2015","" ,"", + "B2015,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for 2015 data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2015a","" ,"", + "B2015a,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for year 2015a data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2015b","" ,"", + "B2015b,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for year 2015b data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2015c","" ,"", + "B2015c,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for year 2015c data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2016" ,"","","ry2016,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for 2016 ITTF (tpc)",kFALSE}, + {"P2016","" ,"", + "B2016,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for 2016 data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2016a" ,"","","ry2016a,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Production chain for 2016 data (tpc)",kFALSE}, + {"P2016a","" ,"", + "B2016a,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,StiHftC,analysis" + , "","","Production chain for 2016 data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2017" ,"","","ry2017,in,tpcX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,evout","","" + , "Base chain for run 2017 data (tpc)",kFALSE}, + {"pp2017","" ,"", + "B2017,Sti,UseXgeom,BAna,hitfilt,ppOpt,VFPPVnoCTB,beamline,l3onl,emcDY2,fpd,trgd,ZDCvtx,analysis" + , "","","Base chain for year 2017 pp data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2017","" ,"", + "B2017,Sti,UseXgeom,BAna,hitfilt,VFMinuit,l3onl,emcDY2,fpd,trgd,ZDCvtx,analysis" + , "","","Base chain for year 2017 AA data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2017a" ,"","","ry2017a,in,tpcX,CorrX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,picoWrite","","" + , "Production chain for run 2017 data (tpc)",kFALSE}, + {"pp2017a","" ,"", + "B2017a,ITTF,UseXgeom,BAna,hitfilt,ppOpt,VFPPVnoCTB,beamline3D,l3onl,emcDY2,fpd,trgd,ZDCvtx,analysis" + , "","","Production chain for year 2017 pp data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"P2017a","" ,"", + "B2017a,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,beamline3D,l3onl,emcDY2,fpd,trgd,ZDCvtx,analysis" + , "","","Production chain for year 2017 AA data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2018a" ,"","","ry2018a,in,tpcX,CorrX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,picoWrite","","" + , "Base chain for run 2018 data (tpc)",kFALSE}, + {"P2018a","" ,"", + "B2018a,ITTF,UseXgeom,BAna,hitfilt,VFMinuit,beamline3D,l3onl,emcDY2,epdHit,fpd,trgd,ZDCvtx,analysis" + , "","","Base chain for year 2018 AA data - no Corr (+ l3, bcc/fpd, e/b-emc)",kFALSE}, + {"B2019a" ,"","","ry2019a,in,tpcX,UseXgeom,iTpcIT,CorrX,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,picoWrite", + "","", "Base chain for run 2019 data (tpc)",kFALSE}, + {"P2019a","" ,"", + "B2019a,ITTF,BAna,iTpcIT,hitfilt,VFMinuit,beamline3D,etofa,btof,mtd,l3onl,emcDY2,epdHit,trgd,ZDCvtx,analysis" + , "","", "Base chain for year 2019 AA data - no Corr (+ l3, epd, mtd, b/etof, b-emc)",kFALSE}, + {"B2020a" ,"","", + "ry2020a,in,tpcX,UseXgeom,iTpcIT,CorrY,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,picoWrite,picoVtxDefault,picoCovMtxWrite", + "","", "Base chain for run 2020 data (tpc)",kFALSE}, + {"P2020a","" ,"", + "B2020a,ITTF,BAna,iTpcIT,hitfilt,VFMinuit,etofa,btof,mtd,l3onl,emcDY2,epdHit,trgd,ZDCvtx,analysis" + , "","", "Base chain for year 2020 AA data - no Corr (+ l3, epd, mtd, b/etof, b-emc)",kFALSE}, + {"B2021a" ,"","", + "ry2021a,in,tpcX,UseXgeom,iTpcIT,CorrY,AgML,tpcDB,TpcHitMover,Idst,tags,Tree,picoWrite,picoVtxDefault,picoCovMtxWrite", + "","", "Base chain for run 2020 data (tpc)",kFALSE}, + {"P2021a","" ,"", + "B2021a,ITTF,BAna,iTpcIT,hitfilt,VFMinuit,etofa,btof,mtd,l3onl,emcDY2,epdHit,trgd,ZDCvtx,analysis" + , "","", "Base chain for year 2020 AA data - no Corr (+ l3, epd, mtd, b/etof, b-emc)",kFALSE}, + {"LaserCal0","" ,"","db,detDb,tpc_daq,tpcDb,tcl,globT,laser,LaserTest","","" + , "Laser Calibration Chain (tcl)",kFALSE}, + {"LaserCal","" ,"","db,detDb,tpc_daq,tpcDb,fcf,globT,laser,LaserTest","","" + , "Laser Calibration Chain",kFALSE}, + {"L3Counter","" ,"","db,detDb,in,l3count","","", "L3 Counter extraction pass",kFALSE}, + {"VtxSeedCal","","","ppOpt,ry2001,in,tpc_daq,tpc,globT,-Tree,Physics,-PreVtx,FindVtxSeed,NoEvent,Corr2" + , "","","Pass0 Vertex evaluator",kFALSE}, + {"SpcChgCal","","","B2004,fcf,Corr3,OSpaceZ2,OShortR,SCEbyE,-Tree,-tags,-EvOut,-EventQA" + , "","","Pass0 SpaceCharge evaluator",kFALSE}, + {"SpcChgCalG","","","MuDST,fcf,Corr4,OSpaceZ2,OGridLeak3D,SCEbyE,-Tree,-tags,-EvOut,-EventQA" + , "","","Pass0 SpaceCharge evaluator with GridLeak, no geo or tracker dependence",kFALSE}, + {"VtxSeedCalG","","","MuDST,fcf,Corr4,FindEvtVtxSeed,-Tree,-tags,-EvOut,-EventQA" + , "","","Pass0 Vertex evaluator",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"OPTIONS ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"ITTF" ,"","","","","","request to use one of Sti(default), StiCA, Stv,StvCA, ... trackers",kFALSE}, + {"NoHits" ,"" ,"","" ,"","","Don\'t write hits into Event.Branch",kFALSE}, + {"Kalman" ,"" ,"","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Eval" ,"" ,"","","","" ,"Turn on evaluation switch for different makers",kFALSE}, + {"Ev03" ,"" ,"","","","" ,"Turn on alternative V0 method",kFALSE}, + {"off" ,"" ,"","","","" ,"Turn off default chain",kFALSE}, + {"clearDAQCTB" ,"" ,"","","" ,"" ,"clear DAQ CTB Hits for embedding",kFALSE}, + {"NoInput" ,"" ,"","","" ,"" ,"No input file",kFALSE}, + {"util" ,"" ,"","","","StAnalysisUtilities", "Load StAnalysisUtilities",kFALSE}, + {"StUtilities" ,"" ,"","","","StUtilities", "Load StUtilities",kFALSE}, + {"FieldOn" ,"" ,"","MagF" ,"","" ,"Constant nominal field",kFALSE}, + {"FieldOff" ,"" ,"","MagF" ,"","" ,"No Field option",kFALSE}, + {"HalfField" ,"" ,"","MagF" ,"","","Half Field option",kFALSE}, + {"ReverseField","" ,"","MagF" ,"","","Reverse Field option",kFALSE}, + {"NoCintDb" ,"" ,"","" ,"","","Switch off all Cint Db",kFALSE}, + {"NoStarCintDb","" ,"","" ,"","","Switch off standard Cint Db",kFALSE}, + {"NoLocalCintDb","" ,"","" ,"","","Switch off local Cint Db",kFALSE}, + {"NoMySQLDb" ,"" ,"","" ,"","","Switch off MySQL Db",kFALSE}, + {"NoCintCalDb" ,"" ,"","NoLocalCintDb" ,"","","Switch off local Cint Db",kFALSE}, + {"dbSnapshot" ,"" ,"","" ,"","","Create?use dbSnapshot",kFALSE}, + {"NoEvent" ,"" ,"","-event,-analysis" ,"","","Switch Off StEvent and StAnalysis Makers",kFALSE}, + {"MakeDoc" ,"" ,"","" ,"","","Make HTML documentation for the given Chain",kFALSE}, + {"Debug" ,"" ,"","" ,"","","Set debug flag = 1",kFALSE}, + {"Debug1" ,"" ,"","" ,"","","Set debug flag = 1",kFALSE}, + {"Debug2" ,"" ,"","" ,"","","Set debug flag = 2",kFALSE}, + {"IdTruth" ,"" ,"","" ,"","","Enable IdTruth association in StAssociationMaker",kFALSE}, + {"OldMiniMc" ,"" ,"","" ,"","","Keep pre-2008 convention for MiniMc",kFALSE}, + {"useInTracker","" ,"","","","" ,"switch from EGR to ITTF global tracks in StAssociationMaker",kFALSE}, + {"noRepeat" ,"" ,"","" ,"","","No repeat in Messenger",kFALSE}, + {"noHistos" ,"" ,"","" ,"","","Disables Attributes histos",kFALSE}, + {"noRunco" ,"" ,"","" ,"","","Disables Attributes runco",kFALSE}, + {"Higz" ,"" ,"","" ,"","","Pop Higz window",kFALSE}, + {"big" ,"" ,"","" ,"","","Set NwGEANT =20Mwords",kFALSE}, + {"bigbig" ,"" ,"","" ,"","","Set NwGEANT =40Mwords",kFALSE}, + {"huge" ,"" ,"","" ,"","","Set NwGEANT =80Mwords",kFALSE}, + {"clearmem" ,"" ,"","" ,"","","Obsolete",kFALSE}, + {"adcOnly" ,"" ,"","" ,"","","DAQMaker selects only TPC ADC events",kFALSE}, + {"InTree" ,"" ,"","in","" ,"","bfcTree Input Tree name",kFALSE}, + {"OutTree" ,"" ,"","Tree","" ,"","bfcTree Output Tree name",kFALSE}, + {"DstOut" ,"","","", "","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"McEvOut" ,"" ,"","StMcEvent,Tree" ,"","","Write StMcEvent to StTree",kFALSE}, + {"EvOut" ,"" ,"","Tree" ,"","","Write StEvent to StTree",kFALSE}, + {"GeantOut" ,"" ,"","Tree" ,"","","Write g2t tables to StTree",kFALSE}, + {"Simu" ,"" ,"","" ,"","","Simulated Data, force to use Db time stamp from used geometry",kFALSE}, + {"HitsBranch" ,"" ,"","" ,"","","take out points from dst branch and put them into HitsBranch",kFALSE}, + {"paw" ,"" ,"","" ,"","","Allocate memory for pawc",kFALSE}, + {"AllEvent" ,"" ,"","Tree" ,"","","Write whole event to StTree",kFALSE}, + {"AllTables" ,"" ,"","","" ,"St_Tables","Load Star Tables",kFALSE}, + {"FXT" ,"" ,"","","" ,"","enable anything FXT-specific",kFALSE}, + {"Corr1" ,"" ,"","AlignSectors,ExB,OBmap,OClock,OPr13","","" + , "... AlignSectors,ExB,OBmap,OClock,OPr13 ...",kFALSE}, + {"Corr2" ,"" ,"","Corr1,OTwist,OIFC" ,"","","...Corr1+OTwist,OIFC ...",kFALSE}, + {"Corr3" ,"" ,"","AlignSectors,ExB,OBmap2D,OClock,OPr13,OTwist,OIFC","","" + , "... AlignSectors,ExB,OBmap2D,OClock,OPr13,OTwist,OIFC ...",kFALSE}, + {"Corr4" ,"" ,"","Corr3,OShortR" ,"","","... Corr3+OShortR...",kFALSE}, + {"Corr5" ,"" ,"","Corr4,SCEbyE,OGridLeak3D,OSpaceZ2","","" + , "... Corr4+SCEbyE,OGridLeak3D,OSpaceZ2...",kFALSE}, + {"CorrX" ,"" ,"","ExB,OShortR,OBmap,OPr13,OIFC,OSectorAlign,NewTpcAlignment" + ",-AlignSectors,-OBmap2D,-OClock,-OTwist" ,"","","New Tpc Alignment",kFALSE}, + {"CorrY" ,"" ,"","ExB,OShortR,OBmap,OPr40,OIFC,OSectorAlign,NewTpcAlignment,OSpaceZ2,OGridLeakFull" + ",-AlignSectors,-OBmap2D,-OClock,-OTwist" ,"","","New Tpc Alignment",kFALSE}, + {"ExB" ,"" ,"","","" ,"","Activate ExB correction",kFALSE}, + {"EB1" ,"" ,"","","" ,"","Force ExB configuration 1",kFALSE}, + {"EB2" ,"" ,"","","" ,"","Force ExB configuration 2",kFALSE}, + {"OBmap" ,"" ,"","","" ,"","ExB shape correction",kFALSE}, + {"OBmap2D" ,"" ,"","","" ,"","ExB 2 D shape correction",kFALSE}, + {"OTwist" ,"" ,"","","" ,"","ExB twist correction",kFALSE}, + {"OClock" ,"" ,"","","" ,"","Clock/tpc rot. correction",kFALSE}, + {"OPr13" ,"" ,"","","" ,"","PadRow 13 distortion",kFALSE}, + {"OPr40" ,"" ,"","","" ,"","PadRow 40 distortion",kFALSE}, + {"OCentm" ,"" ,"","","" ,"","Central membrane correction",kFALSE}, + {"OECap" ,"" ,"","","" ,"","EndCap (curved) correction",kFALSE}, + {"OIFC" ,"" ,"","","" ,"","Field Cage correction",kFALSE}, + {"OSpaceZ" ,"" ,"","","" ,"","Space Charge corrections",kFALSE}, + {"OSpaceZ2" ,"" ,"","","" ,"","Space Charge corrections R2",kFALSE}, + {"OShortR" ,"" ,"","","" ,"","Shorted Ring correction",kFALSE}, + {"OGridLeak" ,"" ,"","","" ,"","Grid Leak correction",kFALSE}, + {"OGridLeak3D" ,"" ,"","","" ,"","3D Grid Leak correction",kFALSE}, + {"OGridLeakFull","" ,"","","" ,"","Full Grid Leak correction",kFALSE}, + {"OGGVoltErr" ,"" ,"","","" ,"","GG voltage error correction",kFALSE}, + {"OSectorAlign","" ,"","","" ,"","Sector alignment distortion correction",kFALSE}, + {"ODistoSmear" ,"" ,"","","" ,"","Distortion smearing accounting for calibration resolutions",kFALSE}, + {"OAbortGap" ,"" ,"","","" ,"","Abort gap cleaning event distortion correction",kFALSE}, + {"AlignSectors","" ,"","","" ,"","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"EbyET0" ,"" ,"","","" ,"","Event-by-event T0 corrections",kFALSE}, + {"DbRichSca" ,"" ,"","detdb","","", "Force reading of Rich scalers from DB",kFALSE}, + {"EastOff" ,"" ,"","","" ,"","Disactivate East part of tpc",kFALSE}, + {"WestOff" ,"" ,"","","" ,"","Disactivate West part of tpc",kFALSE}, + {"AllOn" ,"" ,"","","" ,"","Activate both East and West parts of tpc",kFALSE}, + {"ReadAll" ,"" ,"","","" ,"","Activate all branches to read",kFALSE}, + {"pp" ,"" ,"","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ppOpt" ,"" ,"","TrsPileUp","","", "pp option without enabling special cases",kFALSE}, + {"TrsPileUp" ,"" ,"","","","", "Trs pile up mode",kFALSE}, + {"TrsToF" ,"" ,"","","","", "Trs account for particle time of flight",kFALSE}, + {"SvtMatchVtx" ,"" ,"","","" ,"","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"VtxOffSet" ,"" ,"","","" ,"","Account Primary Vertex offset from y2000 data",kFALSE}, + {"Calibration" ,"" ,"","","" ,"","Calibration mode",kFALSE}, + {"beamLine" ,"" ,"","","" ,"","LMV Beam line constrain",kFALSE}, + {"beamLine3D" ,"" ,"","","" ,"","Use beamline in 3D vertex fit",kFALSE}, + {"min2trkVtx" ,"" ,"","","" ,"","...only 2 tracks needed for vertex finding",kFALSE}, + {"hitreuseon" ,"" ,"","","" ,"","...do re-use hits for other tracks in Sti",kFALSE}, + {"usePct4Vtx" ,"" ,"","","" ,"","Use Post-Crossing Tracks for vertex finding",kFALSE}, + {"useBTOF4Vtx" ,"" ,"","","" ,"","Use BTOF track matching for vertex ranking",kFALSE}, + {"useBTOFmatchOnly","","","useBTOF4Vtx","" ,"","Use BTOF track matching only",kFALSE}, + {"svt1hit" ,"" ,"","","" ,"","Use 1 SVT hit only combination",kFALSE}, + {"onlcl" ,"" ,"","","" ,"","Read/use TPC DAQ100 clusters",kFALSE}, + {"onlraw" ,"" ,"","","" ,"","Read/use TPC raw hits",kFALSE}, + {"ezTree" ,"" ,"","","" ,"","Create ezTree branch",kFALSE}, + {"BEmcDebug","" ,"","","" ,"","Turn OFF B-EMC hit reconstruction cuts",kFALSE}, + {"BEmcChkStat","" ,"","","" ,"","Turn ON status checking in raw data",kFALSE}, + {"useLDV" ,"" ,"","","" ,"","... uses laserDV database flavor",kFALSE}, + {"useCDV" ,"" ,"","","" ,"","... uses ofl database flavor",kFALSE}, + {"useNewLDV" ,"" ,"","","" ,"","... uses ofl database flavor",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Tables ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"tables" ,"","","StDbT,ebyeT,emc_T,ftpcT,gen_T,geomT,globT,l3_T,sim_T,svt_T,tpc_T","","","",kFALSE}, + {"StDbT" ,"" ,"","","" ,"StDb_Tables","Load StDb_Tables",kFALSE}, + {"ctf_T" ,"" ,"","","" ,"ctf_Tables","Load ctf_Tables",kFALSE}, + {"ebyeT" ,"" ,"","","" ,"ebye_Tables","Load ebye_Tables",kFALSE}, + {"emc_T" ,"" ,"","","" ,"emc_Tables","Load emc_Tables",kFALSE}, + {"ftpcT" ,"" ,"","","" ,"ftpc_Tables","Load ftpc_Tables",kFALSE}, + {"gen_T" ,"" ,"","","" ,"gen_Tables","Load gen_Tables",kFALSE}, + {"geomT" ,"" ,"","","" ,"geometry_Tables","Load geometry_Tables",kFALSE}, + {"globT" ,"" ,"","","" ,"global_Tables","Load global_Tables",kFALSE}, + {"l3_T" ,"", "","","" ,"l3_Tables","Load l3_Tables",kFALSE}, + {"mwc_T" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"sim_T" ,"" ,"","","" ,"sim_Tables","Load sim_Tables",kFALSE}, + {"svt_T" ,"" ,"","","" ,"svt_Tables","Load svt_Tables",kFALSE}, + {"tpc_T" ,"" ,"","" ,"" ,"","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"trg_T" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"vpd_T" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Embedding" ,"","","-Simu" ,"","","Embedding run",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Utilities ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Geometry+Mag","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"pgf77" ,"" ,"","","" ,"pgf77VMC","Fortran",kFALSE}, + {"rootcern" ,"" ,"","geant3","" ,"","ROOT minicern OBSOLETE",kFALSE}, + {"StarMiniCern","" ,"","geant3","" ,"","STAR addition to minicern OBSOLETE",kFALSE}, + {"mysql" ,"" ,"","","" ,"libmysqlclient","MySQL",kFALSE}, + {"libPhysics" ,"" ,"","","" ,"libPhysics","TVector",kFALSE}, + {"geant3vmc" ,"" ,"","-usexgeom,-xgeometry","", "libGeom,libVMC,libgeant3", "VMC geant3",kFALSE}, + {"geant3" ,"" ,"","geant3vmc","" ,"EG,Pythia6,EGPythia6","VMC geant3 plus ROOT EG,pythia6",kFALSE}, + {"geometry" ,"" ,"","","" ,"geometry","geometry+Mag.Field",kFALSE}, + {"StarMagField","", "","magF" ,"","VMC,StarMagField","Load StarMagField",kFALSE}, + {"geomNoField" ,"" ,"","-geometry,StarMagField" ,"","geometryNoField","geometry-Mag.Field",kFALSE}, + {"xgeometry" ,"" ,"","-geometry,-geomNoField" ,"","xgeometry","AgML geometry-Mag.Field",kFALSE}, + {"UseProjectedVertex" ,"" ,"","" ,"","","Run StBTofCalibMaker w/wo Primary Vertex",kFALSE}, + {"ImpBToFt0Mode" ,"" ,"","" ,"","","pppAMode in StVpdCalibMaker and StBTofCalibMaker",kFALSE}, + {"setOutlierRej4BToft0" ,"" ,"","" ,"","","setPPPAOutlierRej is set in StBTofCalibMaker",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"vpd" ,"" ,"","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"tls" ,"" ,"","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"rts" ,"" ,"","","" ,"RTS","load libRTS",kFALSE}, + {"daq" ,"" ,"","rts","" ,"StDaqLib,StDAQMaker","Load StDAQMaker",kFALSE}, + {"SCL" ,"" ,"","","" ,"StarClassLibrary","Load StarClassLibrary",kFALSE}, + {"SvtCL" ,"" ,"","","" ,"Geom,StSvtClassLibrary","",kFALSE}, + {"TbUtil" ,"" ,"","sim_T,tpc_t,globT,SCL","" ,"StTableUtilities","Load StTableUtilities",kFALSE}, + {"TofUtil" ,"" ,"","","" ,"StTofUtil","Load StTofUtil",kFALSE}, + {"BTofUtil" ,"" ,"","","" ,"StBTofUtil","Load StBTofUtil",kFALSE}, + {"ETofUtil" ,"" ,"","","" ,"StETofUtil","Load StETofUtil",kFALSE}, + {"MtdUtil" ,"" ,"","","" ,"StMtdUtil","Load StMtdUtil",kFALSE}, + {"StBichsel" ,"" ,"","","" ,"StBichsel","Load Bichsel model for dE/dx",kFALSE}, + {"StEvent" ,"","","globT,SCL,TRGDef,StBichsel,EmcUtil,TbUtil,detDb","","StEvent","Load StEvent",kFALSE}, + {"PxlUtil" ,"" ,"","","", "StPxlUtil","Load StPxlUtil",kFALSE}, + {"IstUtil" ,"" ,"","","", "StIstUtil","Load StIstUtil",kFALSE}, + {"SsdUtil" ,"" ,"","StarMagField,StEvent","" ,"Geom,StSsdUtil","Load SSD Util",kFALSE}, + {"SstUtil" ,"" ,"","StarMagField,StEvent","" ,"Geom,StSstUtil","Load SST Util",kFALSE}, + {"EmcUtil" ,"" ,"","emc_T,geomT,StDbT","" ,"StEmcUtil","Load StEmcUtil",kFALSE}, + {"EEmcUtil" ,"" ,"","","" ,"StEEmcUtil","Load StEEmcUtil",kFALSE}, + {"FmsUtil" ,"" ,"","","" ,"StFmsUtil,libMinuit","Load StFmsUtil",kFALSE}, + {"FgtUtil" ,"" ,"","","" ,"StFgtUtil","Load StFgtUtil",kFALSE}, + {"GmtUtil" ,"" ,"","","" ,"StGmtUtil","Load StGmtUtil",kFALSE}, + {"l3Util" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"PmdUtil" ,"" ,"","","", "StPmdUtil","Load StPmdUtil",kFALSE}, + {"QUtils" ,"" ,"","PmdUtil,EmcUtil","", "","Load QA Libs dependencies",kFALSE}, + {"Stu" ,"" ,"","","", "StEventUtilities","Load StEventUtilities",kFALSE}, + {"MuDSTDeps" ,"","","StEvent,Stu,StBichsel","" + , "StStrangeMuDstMaker,Tree","Load MuDST misc. dependencies",kFALSE}, + {"MuDST" ,"" ,"","MuDSTDeps,EmcUtil,TofUtil,BTofUtil,PmdUtil","" + , "StMuDSTMaker","Load MuDST library",kFALSE}, + {"picoEvt" ,"","","StEvent,Stu","", "StPicoEvent","Load picoEvent and dependencies",kFALSE}, + {"picoDst" ,"","","picoEvt,EmcUtil,TofUtil,BTofUtil,PmdUtil","" + , "StPicoDstMaker","Load PicoDST library",kFALSE}, + {"geantL","","","geomT,gen_T,sim_T,StarMagField","","geometry,Geom,St_db_Maker,St_g2t,St_geant_Maker" + , "Load GeantLibs",kFALSE}, + {"gstarLib","","","" ,"","gstar","Load gstar lib",kFALSE}, + {"flux" ,"","","simu" ,"","flux","Load flux lib",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Generators ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"stargen", "","", "gen_T,sim_T" , "", "libVMC.so,libStarGeneratorUtil.so,libStarGeneratorEvent.so,libStarGeneratorBase.so,libStarGeneratorFilt.so,libMathMore.so","STAR Generator BASE",false}, + {"pythia8.1.86","","","stargen", "", "Pythia8_1_86.so", "Load Pythia 8.1.86 generator", false }, + {"pythia8.2.35","","","stargen", "", "Pythia8_2_35.so", "Load Pythia 8.1.86 generator", false }, + {"hijing1.383" ,"","","stargen", "", "Hijing1_383.so", "Load Hijing 1.383 generator", false }, + {"kinematics" ,"","","stargen", "", "Kinematics.so", "Load STAR Particle Gun", false }, + {"genreader" ,"","","stargen", "", "StarGenEventReader.so", "Load STAR Gen Event Reader", false }, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"I/O Makers ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"gstar" ,"geant" ,"","-fzin,-ntin,-geant,Simu,geantL","St_geant_Maker" + , "","gstar for 80 muon tracks with pT = 1GeV in |eta|<4",kFALSE}, + {"pythia" ,"geant" ,"","-gstar,-fzin,-ntin,-geant,geantL","St_geant_Maker" + , "Pythia6_4_26,bpythia","Load Pythia in starsim, set pp 510 GeV",kFALSE}, + {"Wenu" ,"" ,"","pythia","", "" ,"set pp 510 GeV -> W+/- -> e+/- nu/nubar",kFALSE}, + {"hijing" ,"geant" ,"","-gstar,-fzin,-ntin,-geant,geantL","St_geant_Maker" + ,"StarGeneratorUtil,StarGeneratorEvent,StarGeneratorBase,Hijing1_383" + , "Load Hijing in starsim, set AuAu200 GeV",kFALSE}, + {"tdaq" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"miniDAQ" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"fzin" ,"geant","","Simu,-gstar,-ntin,-geant,geantL","St_geant_Maker","" + , "read gstar fz-file",kFALSE}, + {"UseXgeom","","","-geometry,-geomNoField,xgeometry","","","suppress mortran version of geometry",kFALSE}, + {"in" ,"" ,"","" , "StIOMaker","StIOMaker","Read [DAQ|ROOT] input file",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Db makers ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"db" ,"db" ,"","StDbT" ,"St_db_Maker","StDbLib,StDbBroker,St_db_Maker","",kFALSE}, + {"magF" ,"MagField","","StDbT,db,detDb","StMagFMaker","StarMagField,StMagF" + , "Mag.field map with scale factor from Db",kFALSE}, + {"detDb","detDb","","db","StDetectorDbMaker","StDetectorDbMaker","Load StDetectorDbMaker library",kFALSE}, + {"mtin" ,"geant" ,"","-fzin,-geant,-gstar,geantL,gstarLib,-magF","St_geant_Maker" + , "gstar","read event from MuDst",kFALSE}, + {"tpcDB" ,"tpcDB","","tpc_T,dbutil,detDb,StarMagField,magF,StEvent","StTpcDbMaker","StTpcDb","",kFALSE}, + {"dbutil" ,"" ,"","detDb,StDbT" ,"","StDbUtilities","Load StDbUtilities",kFALSE}, + {"svtDb" ,"svtDb","","tpcDb,SvtCL", "StSvtDbMaker","StSvtDbMaker","Load and run SvtDbMaker",kFALSE}, + {"ssdDb" ,"ssdDb","","tpcDb,SsdUtil","StSsdDbMaker","StSsdDbMaker","Load and run SsdDbMaker",kFALSE}, + {"sstDb" ,"sstDb","","tpcDb,SstUtil","StSstDbMaker","StSsdDbMaker","Load and run SstDbMaker",kFALSE}, + {"svtCalDb" ,"" ,"","svtDb" ,"","","Declare Calibrations/svt as while list member",kFALSE}, + {"ssdCalDb" ,"" ,"","ssdDb" ,"","","Declare Calibrations/ssd as while list member",kFALSE}, + {"sstCalDb" ,"" ,"","sstDb" ,"","","Declare Calibrations/sst as while list member",kFALSE}, + {"eemcDb" ,"eeDb" ,"","db,EEmcUtil", "StEEmcDbMaker","StEEmcDbMaker","Load EEmcDbMaker",kFALSE}, + {"fmsDb" ,"fmsDb","","db,fmsutil", "StFmsDbMaker","StFmsDbMaker","Load FmsDbMaker",kFALSE}, + {"fcsDb" ,"fcsDbMkr","","", "StFcsDbMaker","StFcsDbMaker","Load FcsDbMaker",kFALSE}, + {"fgtDb" ,"fgtDb","","db,fgtutil", "StFgtDbMaker","StFgtDbMaker","Load FgtDbMaker",kFALSE}, + {"pxlDb" ,"pxlDb","","tpcDb PxlUtil", "StPxlDbMaker","StPxlDbMaker","Load PxlDbMaker",kFALSE}, + {"istDb" ,"istDb","","tpcDb", "StIstDbMaker","StIstDbMaker","Load IstDbMaker",kFALSE}, + {"epdDb" ,"epdDb","","tpcDb", "StEpdDbMaker","StEpdDbMaker","Load EpdDbMaker",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"MAKERS ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"ntin" ,"geant","","paw,-fzin,-geant,-gstar,Simu,geantL,gstarLib","St_geant_Maker" + , "","read event generated Hbook nt-file",kFALSE}, + {"PrepEmbed","","","geantEmb","StPrepEmbedMaker","St_geant_Maker" + , "Prepare kinematics for embedding",kFALSE}, + {"PythiaEmbed","","","pythia,-Simu","","", "Prepare kinematics for embedding",kFALSE}, + {"geant" ,"geant","","geantL" ,"St_geant_Maker","","passive GEANT",kFALSE}, + {"geantEmb" ,"geant","","geantL" ,"St_geant_Maker","","GEANT embedding mode",kFALSE}, + {"RootVMC","","","-geant,-fzin,-ntin,StarMagField,-geantL,-geometry,-geomNoField,geant3","","","",kFALSE}, + {"VMCAppl" ,"","","geomT,gen_t,sim_T,tpcDB,RootVMC,","","StSvtDbMaker,StSsdDbMaker,StarVMCApplication" + , "VMC G3",kFALSE}, + {"VMC" ,"geant","","Simu,VMCAppl,-geant","StVMCMaker", "StVMCMaker","VMC Maker",kFALSE}, + {"VMCPassive" ,"geant","","VMCAppl", "StVMCMaker","StVMCMaker","VMC Maker in Passive Mode",kFALSE}, + {"trg" ,"trg","l0Chain","trg_T,globT,db","St_trg_Maker","St_trg,St_trg_Maker" + , "trigger analysis for Year 2001-2005 data",kFALSE}, + {"TRGDef" ,"" ,"","","" ,"StTriggerDataMaker","Load StTriggerData",kFALSE}, + {"trgd" ,"trgd","","TRGDef" ,"StTriggerDataMaker","StTriggerDataMaker","Get trigger data",kFALSE}, + {"MakeEvent","0Event","","StEvent,detDb","StEventMaker","StTpcDb,StEventMaker" + , "",kFALSE}, + {"LaserAvEv" ,"","","" ,"StLaserAvEventMaker","StLaserAvEventMaker","Hejrad",kFALSE}, + {"LaserAvCl" ,"","","" ,"StLaserAvClusterMaker","StLaserAvClusterMaker","",kFALSE}, + {"l0" ,"l0Chain","","globT,ctf,trg" ,"StMaker","StChain","",kFALSE}, + {"ctf" ,"ctf","l0Chain","ctf_T,db" ,"St_ctf_Maker","ctf,St_ctf,St_ctf_Maker","ToF simulation",kFALSE}, + {"mwc" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ppMCTrig" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"pp2pp" ,"","","", "St_pp2pp_Maker","St_pp2pp_Maker","pp->pp",kFALSE}, + {"mtdFilt" ,"","","", "StMtdEvtFilterApplyMaker","StDataFilterMaker","MTD-based event filtering",kFALSE}, + {"mtd" ,"MtdChain","","mtdDat,mtdMatch","StMaker", "StChain","MTD Chain",kFALSE}, + {"mtdDat" ,"mtd_raw","MtdChain","db,MuDst","StMtdHitMaker","StEvent,StMtdHitMaker" + , "MTD hit maker",kFALSE}, + {"mtdTrkMask","","","db","StMtdTrackingMaskMaker" ,"StMtdEvtFilterMaker","MTD track masking",kFALSE}, + {"epdHit", "", "", "epdDb,event", "StEpdHitMaker", "StEpdHitMaker","EPD hit maker", kFALSE}, + {"tpc" ,"","","TpxRaw,TpxClu,tpcI" ,"","","WARNING *** Option is OBSOLETE *** use TpxClu instead",kFALSE}, + {"tpcI" ,"tpcChain","","db,tpcDB,TpcHitMover", "StMaker","StChain","tpc with ITTF",kFALSE}, + {"tpcX" ,"tpcChain","","-tpcI,tpx,MakeEvent" ,"StMaker","StChain","tpc+tpcx with ITTF",kFALSE}, + {"Trs","Trs","tpcChain","scl,tpcDB,TrsToF,StEvent,EmbeddingShortCut","StTrsMaker","StTrsMaker","",kFALSE}, + {"TpcRS","","tpcChain","scl,tpcDB,-Trs,-EmbeddingShortCut,Stu","StTpcRSMaker" + ,"libMathMore,StdEdxY2Maker,StTpcRSMaker", "New Tpc Response Simulator",kFALSE}, + {"tfs" ,"","","TpcFastSim" ,"","","WARNING *** Option is OBSOLETE *** use TpcFastSim instead",kFALSE}, + {"TpcFastSim" ,"tpc_hits","tpcChain","MakeEvent,Simu,-trs,-TpcRS,-tcl,-tpxclu,-fcf,-tpc_daq,StEvent," + "-TpcHitMover,EmbeddingShortCut" ,"StTpcFastSimMaker","St_tcl_Maker","use tfs (no Trs or TpcRS)",kFALSE}, + {"EmbeddingShortCut","","","", "","","Short Cut for StdEdxY2Maker and StTpcHitMover",kFALSE}, + {"StMcEvent" ,"","","gen_t,sim_T" ,"","StMcEvent","",kFALSE}, + {"McEvent" ,"","","StEvent,tpcDb,EEmcUtil,EmcUtil,StMcEvent","StMcEventMaker","StMcEventMaker","",kFALSE}, + {"Mixer" ,"tpc_raw","","daq","StMixerMaker" ,"StTrsMaker,StMixerMaker","",kFALSE}, + {"St_tpc" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"St_svt" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"tpc_daq" ,"","","TpxRaw", "","","WARNING *** Option is OBSOLETE *** use TpxRaw instead",kFALSE}, + {"tcl","","","TpxRaw,TpxClu,MakeEvent","","" + , "WARNING *** Option is OBSOLETE *** use option TpxRaw,TpxClu,MakeEvent instead",kFALSE}, + {"fcf" ,"","","-tcl,tpcX", "","","WARNING *** Option is OBSOLETE *** use tpcX instead",kFALSE}, + {"tpx" ,"tpc_hits","tpcChain","MakeEvent,tpc_T,StEvent,rts,detDb" + , "StTpcHitMaker","StTpcHitMaker","TPC hit reader for tpc + tpx via EVP_READER",kFALSE}, + {"gmt" ,"GmtChain","","gmtDat,gmtClu" ,"StMaker","StChain","Gmt data Chain",kFALSE}, + {"gmtDat" ,"","GmtChain", "event","StGmtRawMaker","StGmtRawMaker", "GMT Data reader",kFALSE}, + {"gmtClu" ,"","GmtChain","gmtutil","StGmtClusterMaker","StGmtClusterMaker","GMT cluster maker",kFALSE}, + {"TpxPulser","TpxPulser","tpcChain","rts,detDb","StTpcHitMaker","StTpcHitMaker","TPC+TPX pulser analysis" + , kFALSE}, + {"TpxPadMonitor","","","" ,"","","WARNING *** Option is OBSOLETE ***", kFALSE}, + {"TpxAvLaser","TpxAvLaser","tpcChain","rts,detDb","StTpcHitMaker","StTpcHitMaker" + , "TPC+TPX averaging laser events into Sparse histogram on pixels level", kFALSE}, + {"TpxDumpPxls2Nt","TpxDumpPxls2Nt","tpcChain","rts,detDb","StTpcHitMaker","StTpcHitMaker" + , "TPC+TPX pixel dump to NTuple", kFALSE}, + {"TpxRaw","TpxRaw","tpcChain","rts,detDb,StEvent","StTpcHitMaker","StTpcHitMaker" + , "TPC+TPX convert DAQ Tpc Raw Data to TpcRawEvent used by TpcMixer and/or TpxClu", kFALSE}, + {"TpcMixer","","tpcChain","StEvent,rts,-Mixer,-tpx,TpxClu" ,"StTpcMixerMaker","StTpcHitMaker","",kFALSE}, + {"TpxClu","tpc_hits","tpcChain","rts,tpcDb,detDb,-tpx,-tpc_daq,-fcf","StTpcRTSHitMaker" + ,"StTpcHitMaker", "RTS(online) cluster maker",kFALSE}, + {"TpxClu2D" ,"","","TpxClu","","", "RTS(online) 2D-cluster maker",kFALSE}, + {"TpcAvCluster","TpcAvCluster","tpcChain","rts,detDb","StTpcAvClusterMaker","StTpcHitMaker" + , "TPC+TPX averaging laser events into Sparse histogram on cluster level", kFALSE}, + {"Velo" ,"","tpcChain","tpc_T" ,"StVeloMaker","StVeloMaker","",kFALSE}, + {"TpcHitMover" ,"tpc_hit_mover","tpcChain","tpcDb,StEvent,Stu" + , "StTpcHitMover","StTpcHitMoverMaker","TPC hits coord transform + corrections",kFALSE}, + {"tpt","","ITTF","", "","","WARNING *** Option is OBSOLETE *** use ITTF",kFALSE}, + {"tpt_old","","ITTF","", "","","WARNING *** Option is OBSOLETE *** use ITTF",kFALSE}, + {"TpcT0" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ChargeStep","","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"laser" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"PreVtx" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"svt" ,"svtChain","","svt_T,SvtCL" ,"StMaker","StChain","",kFALSE}, + {"svt_daq" ,"svt_raw","svtChain","daq,SvtCL" ,"StSvtDaqMaker","StSvtDaqMaker","",kFALSE}, + {"sss" ,"","","SvtSlowSim" ,"","","Short cut for SvtSlowSim",kFALSE}, + {"SvtSlowSim" ,"","","SvtSSim,SvtOnlSeq" ,"","","Short cut for SvtSlowSim and SvtOnlSeq",kFALSE}, + {"SvtSSim","SvtSSimu","svtChain","svtCalDb,SvtCL,Simu,SvtSeqAdj,SvtClu,SvtCluAnal,SvtHit" + , "StSvtSimulationMaker","StSvtSimulationMaker,StSvtCalibMaker","",kFALSE}, + {"SvtEmbed" ,"","","SvtSSim,SvtEm,SvtOnlSeq" ,"","","Short cutfor SvtSlowSim and SvtOnlSeq",kFALSE}, + {"SvtEm","SvtEm","svtChain","svtCalDb,SvtCL,Simu,SvtSeqAdj,SvtClu,SvtCluAnal,SvtHit","StSvtEmbeddingMaker" + , "StSvtSimulationMaker,StSvtCalibMaker","",kFALSE}, + {"SvtOnlSeq" ,"SvtOnlSeq","svtChain","svtCalDb,SvtCL,Simu,SvtSeqAdj,SvtClu,SvtCluAnal,SvtHit" + , "StSvtOnlineSeqAdjSimMaker","StSvtSimulationMaker","",kFALSE}, + {"srs","","","sfs", "","","WARNING *** Option is OBSOLETE use sfs instead ***",kFALSE}, + {"sfs","svt_hits","svtChain","svtDb,Simu,SvtCL,-sss,-SvtSlowSim,StEvent,MakeEvent" + , "St_sfs_Maker","St_srs_Maker","Very fast simulator for SVT",kFALSE}, + {"SvtSeqAdj" ,"SvtSeqAdj","svtChain","SvtCL" ,"StSvtSeqAdjMaker","StSvtSeqAdjMaker","",kFALSE}, + {"SvtClu" ,"SvtClu","svtChain","svt_T,StEvent,SvtCL","StSvtClusterMaker","StSvtClusterMaker","",kFALSE}, + {"SvtCluAnal" ,"SvtCluAnal","svtChain","SvtCL","StSvtClusterAnalysisMaker","StSvtClusterMaker","",kFALSE}, + {"SvtHit" ,"svt_hits","svtChain","SvtCL" ,"StSvtHitMaker","StSvtClusterMaker","",kFALSE}, + {"SvtVtx" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"stk" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Est" ,"","","SvtIT", "","","WARNING *** Option is OBSOLETE *** use SvtIT instead",kFALSE}, + {"global" ,"","","ITTF", "","","WARNING *** Option is OBSOLETE use ITTF instead***",kFALSE}, + {"Match" ,"","","ITTF", "","","WARNING *** Option is OBSOLETE use ITTF instead***",kFALSE}, + {"Vertex" ,"","","ITTF", "","","WARNING *** Option is OBSOLETE use ITTF instead***",kFALSE}, + {"Primary" ,"","","ITTF", "","","WARNING *** Option is OBSOLETE use ITTF instead***",kFALSE}, + {"V0" ,"","","V02", "","","WARNING *** Option is OBSOLETE use V02 instead***",kFALSE}, + {"Xi" ,"","","Xi2", "","","WARNING *** Option is OBSOLETE use Xi2 instead***",kFALSE}, + {"Kink" ,"","","Kink2", "","","WARNING *** Option is OBSOLETE use Kink2 instead***",kFALSE}, + {"dst" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Fglobal" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Fprimary" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"dEdx" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"svtdEdx" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Event" , "","","MakeEvent", "","","Request to initialize event",kFALSE}, + {"pxlRaw" ,"","","pxlDb", "StPxlRawHitMaker", "StPxlRawHitMaker", "PXL raw hit maker",kFALSE}, + {"pxlFastSim" ,"","","pxlRaw,StMcEvent,StEvent" + , "StPxlSimMaker","StPxlSimMaker","PXL Fast Simulator",kFALSE}, + {"pxlSlowSim" ,"","","pxlRaw,StMcEvent,StEvent" + , "StPxlSimMaker","StPxlSimMaker","PXL Slow Simulator",kFALSE}, + {"pxlCluster" ,"","","pxlRaw", "StPxlClusterMaker", "StPxlClusterMaker", "PXL cluster maker",kFALSE}, + {"pxlHit" ,"","","event pxlCluster", "StPxlHitMaker", "StPxlHitMaker", "PXL hit maker",kFALSE}, + {"istSlowSim", "", "","StMcEvent,StEvent,IstUtil", "StIstSlowSimMaker", + "StIstSimMaker", "IST Slow simulator", kFALSE}, + {"istFastSim","","","StMcEvent,StEvent","StIstFastSimMaker","StIstSimMaker","IST Fast simulator", kFALSE}, + {"istRawHit", "", "", "istUtil,istDb","StIstRawHitMaker", "StIstRawHitMaker","IST RAWhit maker", kFALSE}, + {"istCluster", "", "", "istRawHit","StIstClusterMaker", "StIstClusterMaker","IST Cluster maker", kFALSE}, + {"istHit", "", "", "event,istCluster", "StIstHitMaker", "StIstHitMaker","IST Hit Maker",kFALSE}, + {"ssddat" ,"","","ssd_daq" ,"","","SSD full chain for Real Data",kFALSE}, + {"sstdat" ,"","","sst_daq" ,"","","SST full chain for Real Data",kFALSE}, + {"ssd_daq","","","ssdCalDb,svt_T,-sls,-spa,ssdUtil","StSsdDaqMaker","StSsdDaqMaker","... SSD Daq",kFALSE}, + {"sst_daq","","","sstCalDb,svt_T,-sls,-spa,sstUtil","StSstDaqMaker","StSstDaqMaker","... SSDT Daq",kFALSE}, + {"ssdfast" ,"","","ssdDb,StMcEvent,StEvent","StSsdFastSimMaker","StSsdFastSimMaker", + "... SSD fast simulator" ,kFALSE}, + {"ssd" ,"","","ssdCalDb,sls,spa,sptd" ,"","","SSD full chain for simulation",kFALSE}, + {"sls","","","McEvent,Simu,svt_T,SvtCL" + , "St_sls_Maker","StSsdSimulationMaker", "... SSD slow simulator",kFALSE}, + {"spa" ,"SpaStrip","","Simu,svt_T,SvtCL,ssdUtil","St_spa_Maker","StSsdSimulationMaker" + , "... SSD Pedestal Annihilator",kFALSE}, + {"SsdEmbed" ,"","","","StSsdEmbeddingMaker","StSsdSimulationMaker","... SSD Mixing geom Maker" ,kFALSE}, + {"spt" ,"","","sptd", "","" ,"Alias for sptd - please replace in chain",kFALSE}, + {"sptd" ,"","","ssdUtil,svt_T", "StSsdPointMaker","StSsdPointMaker","... SSD Point Creator",kFALSE}, + {"sptt" ,"","","sstUtil", "StSstPointMaker","StSstPointMaker", "... SST Point Creator",kFALSE}, + {"sstHit", "", "", "sst_daq,sptt", "", "","SST reconstruction chain",kFALSE}, + {"ssdpre" ,"","","ssdEmbed,spa" ,"","","SSD full chain for pre-embedding",kFALSE}, + {"ssdAdd" ,"","","ssd_daq","StSsdAddMaker","StSsdAddMaker", "... SSD merge maker",kFALSE}, + {"ssdE" ,"","","ssdpre,ssdAdd" ,"","","SSD full chain for embedding",kFALSE}, + {"ZDCVtx" ,"","","db" ,"StZdcVertexMaker","StZdcVertexMaker","",kFALSE}, + {"emcDY2" ,"emcRaw","","daq,eemcDb,EEmcUtil,emc_T,EmcUtil,StEvent,PreEcl,Epc" + ,"StEmcRawMaker","StEmcRawMaker", "B/E EMC data common maker",kFALSE}, + {"eemcD" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"emcY2" ,"","","emc_T,tpc_T,db,emcSim,PreEcl,epc","","" + , "EMC Chain for Y2A (must be before makers which include in this chain)",kFALSE}, + {"emcSim" ,"","","emc_T,EmcUtil,McEvent,MuDST","StEmcSimulatorMaker","StEmcSimulatorMaker" + , "New simulator for BEMC",kFALSE}, + {"EEfs" ,"eefs","","eemcDb,EEmcUtil,MuDst","StEEmcFastMaker","StEEmcSimulatorMaker" + , "EEMC fast simulator",kFALSE}, + {"EEss" ,"eess","","-eefs,eemcDb,EEmcUtil,MuDst","StEEmcSlowMaker","StEEmcSimulatorMaker" + , "EEMC slow simulator",kFALSE}, + {"BEmcMixer", "","","", "StEmcMixerMaker","StEmcMixerMaker","BEMC mixer",kFALSE}, + {"emcAtoE" ,"bemcA2E","" ,"db","StEmcADCtoEMaker","StEmcADCtoEMaker" + , "B-EMC ADC to E converter OBSOLETE for data in Run 9 or later",kFALSE}, + {"PreEcl" ,"preecl","","" ,"StPreEclMaker", "StPreEclMaker","B-EMC Cluster finder",kFALSE}, + {"Epc" ,"epc","","PreEcl,EmcUtil" ,"StEpcMaker","StEpcMaker","B-EMC point maker",kFALSE}, + {"EEmcMixer", "","","", "StEEmcMixerMaker","StEEmcSimulatorMaker","EEMC mixer",kFALSE}, + {"eemcA2E","eemcA2E","" ,"db","StEEmcA2EMaker", "StEEmcA2EMaker","E-EMC ADC to E converter",kFALSE}, + {"eemCl" ,"eemCl","","db","StEEmcClusterMaker" ,"StEEmcClusterMaker","E-EMC clustering",kFALSE}, + {"btof" ,"BTofChain","","btofDat,vpdCalib,btofMatch,btofCalib","StMaker" + , "StChain","BTOF Chain",kFALSE}, + {"BtofDat" ,"tof_raw","BTofChain","db,BTofutil","StBTofHitMaker","StEvent,StBTofHitMaker" + , "BTOF hit maker",kFALSE}, + {"vpdSim" ,"","VpdChain","BTofUtil","StVpdSimMaker","StEvent,StMcEvent,StBTofHitMaker,StVpdSimMaker" + , "Vpd Simulator",kFALSE}, + {"vpdCalib","","BTofChain","db,BTofUtil","StVpdCalibMaker" ,"StVpdCalibMaker","VPD calibration",kFALSE}, + {"btofSim" ,"","BTofChain","BTofUtil" ,"StBTofSimMaker", + "StEvent,StMcEvent,StTofUtil,StBTofHitMaker,StBTofSimMaker","BTOF Simulator",kFALSE}, + {"btofMixer" ,"","BTofChain","BTofUtil","StBTofMixerMaker","StEvent,StBTofHitMaker,StBTofMixerMaker" + , "BTof Mixer",kFALSE}, + {"ETofDat", "etof_raw","ETofChain", "db, ETofUtil", "StETofDigiMaker", "StEvent,StETofDigiMaker", + "ETOF digi maker",kFALSE}, + {"ETofCalib", "", "ETofChain", "db, ETofUtil, muDst", "StETofCalibMaker", "StETofCalibMaker", + "ETOF calibration",kFALSE}, + {"ETofSim" , "", "ETofChain", "", "StETofSimMaker", "StETofSimMaker", + "ETOF simulator",kFALSE}, + {"mtdSim" ,"","MtdChain","","StMtdSimMaker", "StEvent,StMtdSimMaker","MTD Simulator",kFALSE}, + {"ToF" ,"TofChain","","tofDat,tofrMatch,tofpMatch,tofCalib,geant","StMaker","StChain","ToF Chain",kFALSE}, + {"ToFx" ,"TofChain","","tofXDat,tofrMatch,tofCalib,geant" ,"StMaker","StChain","ToFx Chain",kFALSE}, + {"tofDat" ,"tof_raw","TofChain","db,Tofutil","StTofMaker","StEvent,StTofMaker", + "TOF Data base chain", kFALSE}, + {"tofXDat" ,"tof_raw","TofChain","db,Tofutil","StTofHitMaker","StEvent,StTofMaker,StTofHitMaker", + "TOF hit maker", kFALSE}, + {"tofsim" ,"","TofChain","TofUtil","StTofSimMaker","StEvent,StTofMaker,StTofSimMaker", + "TOF Simulator, Tof version before y2009", kFALSE}, + {"tofrMatch" ,"","TofChain","db,TofUtil","StTofrMatchMaker","StTofrMatchMaker", + "TPC to TOFr track matching", kFALSE}, + {"tofpMatch" ,"","TofChain","db,TofUtil","StTofpMatchMaker","StTofpMatchMaker", + "TPC to TOFp track matching", kFALSE}, + {"tofCalib" ,"","TofChain","db,TofUtil","StTofCalibMaker","StTofCalibMaker", "TOF calibration",kFALSE}, + {"FiltGamma" ,"","","StEvent,StMcEvent,EmcUtil", + "StGammaFilterMaker","StFilterMaker", "BEmc Gamma filtering", kFALSE}, + {"FiltEemcGamma" ,"","","StEvent,StMcEvent,EmcUtil", + "StEemcGammaFilterMaker","StFilterMaker", "EEmc Gamma filtering", kFALSE}, + {"rich" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Rrs" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"rch" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"RichPiD" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"l3" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"l3cl" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"l3t" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"l3onl" ,"","","" ,"Stl3RawReaderMaker","Stl3RawReaderMaker","",kFALSE}, + {"l3count" ,"","","" ,"Stl3CounterMaker","Stl3RawReaderMaker","",kFALSE}, + {"bbcSim" ,"","","db","StBbcSimulationMaker" ,"StBbcSimulationMaker","BBC Simulator",kFALSE}, + {"fmsSim","" ,"","StEvent,fmsDb", + "StFmsFastSimulatorMaker","StFmsFastSimulatorMaker","FMS Fast Simulator", kFALSE}, + {"fmsDat" ,"","", "StEvent,fmsDb", + "StFmsHitMaker","StFmsHitMaker","Fill FMS struct and zero TRG", kFALSE}, + {"fpsDat" ,"","", "StEvent,fmsdb", + "StFpsRawHitMaker","StFpsRawHitMaker","Fill FPS struct", kFALSE}, + {"fmsPoint" ,"","", "event,fmsDb", + "StFmsPointMaker","StFmsPointMaker","Fill FMS clusters and points", kFALSE}, + {"fmsfps" ,"","", "event,fmsDb", + "StFmsFpsMaker","StFmsFpsMaker","Fill FPS association in FMS points", kFALSE}, + {"fcsSim","" ,"","StEvent,fcsDb", + "StFcsFastSimulatorMaker","StFcsFastSimulatorMaker","FCS Fast Simulator", kFALSE}, + {"fcsDat","" ,"","StEvent,fcsDb", + "StFcsRawHitMaker","StFcsRawHitMaker","FCS daq file reader/hit maker", kFALSE}, + {"fcsWFF" ,"","", "StEvent,fcsDb", + "StFcsWaveformFitMaker","StFcsWaveformFitMaker","Fit FCS waveform", kFALSE}, + {"fcsCluster" ,"","", "StEvent,fcsDb", + "StFcsClusterMaker","StFcsClusterMaker","Fill FCS clusters", kFALSE}, + {"fcsPoint" ,"","", "StEvent,fcsDb", + "StFcsPointMaker","StFcsPointMaker,libMinuit","Fill FCS points", kFALSE}, + {"fpd" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"fgt" ,"FgtChain","","fgtDat,fgtClu,fgtAtoC" ,"StMaker","StChain","Fgt data Chain",kFALSE}, + {"fgtDat" ,"","", "event,fgtdb","StFgtRawMaker","StFgtRawMaker", "FGT Data reader",kFALSE}, + {"fgtAtoC" ,"","", "fgtdb", "StFgtA2CMaker","StFgtA2CMaker", "FGT ADC to Charge maker",kFALSE}, + {"fgtClu" ,"","", "fgtutil", "StFgtClusterMaker","StFgtClusterMaker", "FGT cluster maker",kFALSE}, + {"fgtAtoC" ,"","", "fgtdb", "StFgtA2CMaker","StFgtA2CMaker", "FGT ADC to Charge maker",kFALSE}, + {"fgtPoint" ,"","", "event", "StFgtPointMaker", "StFgtPointMaker", "Creates FGT points",kFALSE}, + {"genvtx" ,"" ,"","EEmcUtil","StGenericVertexMaker" + , "Minuit,StGenericVertexMakerNoSti" + , "Generic Vertex Finder library (default is MinuitVertexFinder)",kFALSE}, + {"VFMinuit" ,"" ,"" ,"genvtx" ,"","","... Generic VF will use Minuit method",kFALSE}, + {"CtbMatchVtx" ,"" ,"","VFMinuit","" ,"","... CTB Matching ON in Vertex Finding",kFALSE}, + {"VFMinuit2" ,"" ,"","VFMinuit","","","... Generic VF will use Minuit method w/rank mode 2",kFALSE}, + {"VFMinuit3" ,"" ,"","VFMinuit","","","... Generic VF will use Minuit method w/rank mode 3",kFALSE}, + {"VFFV" ,"" ,"","genvtx" ,"","","... Fixed dummy VF method",kFALSE}, + {"VFMCE" ,"" ,"","genvtx" ,"","","... Fixed vertex from MCEvent",kFALSE}, + {"VFppLMV" ,"" ,"","genvtx" ,"","","... VertexMaker will use ppLMV method",kFALSE}, + {"VFppLMV5" ,"" ,"","VFppLMV" ,"","","... VertexMaker will use ppLMV method (tuned)",kFALSE}, + {"VFStoreX" ,"" ,"","" ,"","","... VertexMaker will use save at least 100 vertices",kFALSE}, + {"StiPulls" ,"","","" ,"","", "Request to make Sti Pulls",kFALSE}, + {"StvPulls" ,"","","" ,"","", "Request to make Stv Pulls",kFALSE}, + {"StiLib" ,"","","" ,"","Sti,StiUtilities","Load Sti",kFALSE}, + {"StiCALib" ,"","","" ,"","TPCCATracker,StiCA","Load Sti+CA",kFALSE}, + {"StiTpc" ,"","","TpcDb,ITTF,tpc_T,dbutil,detDb,StarMagField,magF" ,"","StiTpc","Load StiTpc",kFALSE}, + {"StiSvt" ,"",""," " ,"","StSvtClassLibrary,StSvtDbMaker,StiSvt","Load StiSvt",kFALSE}, + {"StiSsd" ,"","","" ,"","StSsdUtil,StSsdDbMaker,StiSsd","Load StiSsd",kFALSE}, + {"StiSst" ,"","","" ,"","StSsdUtil,StSsdDbMaker,StiSsd","Load StiSsd(t)",kFALSE}, + {"StiPxl" ,"","","" ,"","StPxlUtil,StPxlDbMaker,StiPxl","Load StiPxl",kFALSE}, + {"StiIst" ,"","","" ,"","StIstUtil,StIstDbMaker,StiIst","Load StiIst",kFALSE}, + {"StiLibs" ,"","","StiTpc,StiSvt,StiSsd,BTofUtil" + ,"","StEEmcDbMaker","Load Sti Detector libs",kFALSE}, + {"StiLibsHft" ,"","","StiLibs,StiSst,StiPxl,StiIst" ,"","","Load Sti Detector libs for HFT",kFALSE}, + {"StiHftP", "","","StiLibsHft,-SvtIT,-SsdIT,PxlIT,pxlDb","" ,"","Enables partial Hft (PXL)",kFALSE}, + {"StiHftC", "","","StiLibsHft,-SvtIT,-SsdIT,PxlIT,pxlDb,IstIT,istDb,SstIT,sstDb","" + , "","Enables complete Hft (PXL+IST+SST)",kFALSE}, + {"VFPPV" ,"" ,""," eemcDb,StiLib,-VFMinuit,-VFMinuit2,-VFMinuit3,","StGenericVertexMaker" + , "Minuit,StGenericVertexMaker","... Pile-up proof vertex finder",kFALSE}, + {"VFPPVnoCTB" ,"" ,"","VFPPV","" ,"","... Pile-up proof vertex finder, noCTB",kFALSE}, + {"VFPPVEv" ,"" ,"" ,"eemcDb" ,"StGenericVertexMaker" + , "Minui,StGenericVertexMaker" ,"... StEvent based VFPPV, noCTB",kFALSE}, + {"VFPPVEvNoBtof" ,"" ,"" ,"VFPPVEv" ,"" ,"","...VFPPVEv with no Btof ",kFALSE}, + {"Sti" ,"Sti","","StiLib,StiLibs,SCL,StEvent,StDbT,TpcIT,compend,sim_T,tbutil","StiMaker" + , "StEventUtilities,StiUtilities,StiMaker","Sti tracker",kFALSE}, + {"StiCA" ,"Sti","","Sti","StiMaker","TPCCATracker,StiCA" ,"StiCA tracker",kFALSE}, + {"StiCAPerf","","","","", "TPCCATrackerPerformance", "CA Performance",kFALSE}, + {"StiCA" ,"Sti","","Sti,StiLib,StiCALib,StiLibs,SCL,StEvent,StDbT,TpcIT,compend,tbutil","StiMaker" + , "StEventUtilities,libEG,StiUtilities,StiMaker","Sti+CA tracker",kFALSE}, + {"HLTCA" ,"" ,"Sti","", "StHLTCAMaker","StHLTCAMaker", "HLT reconstruction",kFALSE}, + {"KFVertex" ,"" ,"Sti","-genvtx,-VFMinuit,-VFFV,-VFMCE,-VFppLMV,-VFPPVnoCTB,-VFPPV,-Kink2,-V02,-Xi2" + ,"StKFVertexMaker", "MathMore,Spectrum", "...KFParticle based multi vertex reconstruction",kFALSE}, + {"Stv" ,"Stv","","-xgeometry,-Sti,-StiTpc,-StiSsd,-StiSvt,-StiPxl,-StiSsd,-StiSst,-StiIst,","StvMaker" + ,"libHist,libHistPainter,libVMC,StarMiniCern,geant3,GeoTestMaker,StvUtil,Stv,StvSeed,StvMaker,StEventUtilities,-StiLibs,-StiLibsHft","Stv",kFALSE}, + {"StvCA" ,"StvCA","","Stv","","" ,"StvCA",kFALSE}, + {"StiVMC" ,"StiVMC","","-Sti,SCL,StEvent,StDbT,TpcDb,compend","StiVMCMaker" + , "StEventUtilities,StiVMC,StiVMCMaker" ,"ITTF VMC tracker",kFALSE}, + {"StiVMCLibs","","","detDb,StarMagField","", "","ITTF:load StiVMC libraries",kFALSE}, + {"laserIT" ,"","","","", "TpcIT","use Sti for laser reconstruction",kFALSE}, + {"TpcIT" ,"","","ITTF" ,"","","Sti tracking: TPC",kFALSE}, + {"SvtIT" ,"","","ITTF" ,"","","Sti tracking: SVT",kFALSE}, + {"SsdIT" ,"","","ITTF" ,"","","Sti tracking: SSD",kFALSE}, + {"HpdIT" ,"" ,"","ITTF","" ,"Sti,StiRnD","Sti tracking: Hpd geom",kFALSE}, + {"PixelIT","" ,"","PxlIT","" ,"","Alias for PxlIT",kFALSE}, + {"PxlIT" ,"" ,"","ITTF","" ,"","Sti tracking: Pixel geom",kFALSE}, + {"IstIT" ,"" ,"","ITTF","" ,"","Sti tracking: Ist geom",kFALSE}, + {"SstIT" ,"" ,"","ITTF","" ,"","Sti tracking: Sst geom",kFALSE}, + {"iTpcIT" ,"" ,"","ITTF","" ,"","Sti tracking: iTpc geom + hits",kFALSE}, + {"BTofIT" ,"" ,"","ITTF","" ,"","Sti tracking: BTof geom",kFALSE}, + {"NoSvtIT" ,"" ,"","-SvtIT","" ,"","ITTF: track with switch off SVT geom",kFALSE}, + {"NoSsdIT" ,"" ,"","-SsdIT","" ,"","ITTF: track with switch off SSD geom",kFALSE}, + {"NoSstIT" ,"" ,"","-SstIT","" ,"","ITTF: track with switch off SST geom",kFALSE}, + {"NoPxlIT" ,"" ,"","-PxlIT","" ,"","ITTF: track with switch off PXL geom",kFALSE}, + {"NoIstIT" ,"" ,"","-IstIT","" ,"","ITTF: track with switch off IST geom",kFALSE}, + {"skip1row" ,"" ,"","","" ,"","ITTF: skip the first pad row in TPC",kFALSE}, + {"StiRnD" ,"","","", "","StiRnD", "Load StiRnD shared library",kFALSE}, + {"Alignment" ,"","","", "","", "Sti Tpc Alignment, reconstruction per sector",kFALSE}, + {"Cosmics" ,"","","", "","", "Ignore events without recostructed tracks",kFALSE}, + {"StiPulls" ,"","","Sti", "","", "Request to make Sti Pulls",kFALSE}, + {"BeamBack" ,"","","StEvent" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"dEdxY2" ,"dEdxY2","","tpcDb,StEvent","StdEdxY2Maker","libMinuit,StdEdxY2Maker" + , "Bichsel method used for dEdx",kFALSE}, + {"CalcdNdx", "", "", "dEdxY2", "", "", "Option for StdEdxY2Maker to calculate dN/dx",kFALSE}, + {"btofMatch" ,"","","db,BTofUtil,vpdCalib,btofCalib","StBTofMatchMaker","StBTofMatchMaker" + , "TPC-BTOF track matching",kFALSE}, + {"btofCalib","","","db,BTofUtil", "StBTofCalibMaker","StBTofCalibMaker","BTOF calibration",kFALSE}, + {"ETofHit", "", "ETofChain", "db, ETofUtil, muDst", "StETofHitMaker", "StETofHitMaker", + "ETOF hit maker",kFALSE}, + {"ETofMatch", "", "ETofChain", "db, ETofUtil, muDst", "StETofMatchMaker", "StETofMatchMaker", + "ETOF match maker",kFALSE}, + {"ETofQa", "", "ETofChain", "db, ETofUtil, muDst", "StETofQAMaker", "StETofQAMaker", + "ETOF QA maker",kFALSE}, + {"ETofA", "", "","etofdat,ETofCalib,etofhit,ETofMatch","","... ETOF chain options for data", kFALSE}, + {"mtdMatch" ,"","","db,MtdUtil", "StMtdMatchMaker","StMtdMatchMaker","TPC-MTD track matching",kFALSE}, + {"mtdCalib" ,"","","db", "StMtdCalibMaker","StMtdCalibMaker","MTD calibration",kFALSE}, + {"mtdEvtFilt" ,"","","db", "StMtdEvtFilterMaker","StMtdEvtFilterMaker","MTD event filter" ,kFALSE}, + {"FindVtxSeed" ,"FindVtxSeed" ,"","globT,MuDSTDeps,picoDst","StVertexSeedMaker" + , "StPass0CalibMaker", "Performs vertex seed finding",kFALSE}, + {"FindEvtVtxSeed","FindEvtVtxSeed","","MuDSTDeps,picoDst","StEvtVtxSeedMaker" + , "StPass0CalibMaker","Performs vertex seed finding using StEvent",kFALSE}, + {"Ftpc" ,"ftpcChain" ,"","ftpcT,fcl,fpt" ,"StMaker","StChain","",kFALSE}, + {"fss" ,"ftpc_raw","ftpcChain","SCL,Simu","StFtpcSlowSimMaker" + , "StFtpcSlowSimMaker,StFtpcTrackMaker,StFtpcClusterMaker","FTPC Slow simulator",kFALSE}, + {"Fcl" ,"ftpc_hits","ftpcChain","SCL,daq","StFtpcClusterMaker" + , "StFtpcTrackMaker,StFtpcClusterMaker","FTPC cluster finder",kFALSE}, + {"fpt" ,"ftpc_tracks","ftpcChain","SCL" + , "StFtpcTrackMaker","StFtpcTrackMaker","FTPC Track Maker",kFALSE}, + {"fgain" ,"","","fcl,fpt","","" + , "StFtpcClusterMaker and StFtpcTrackMaker will produce gain scan histograms",kFALSE}, + {"fdbg" ,"","","fcl,fpt","","","StFtpcClusterMaker and StFtpcTrackMaker will write debugfile",kFALSE}, + {"flaser" ,"","","fcl,fpt" ,"","","StFtpcClusterMaker and StFtpcTrackMaker for LASERTRACKING",kFALSE}, + {"pmdReco" ,"pmdReco","","PmdUtil,pmdClust" ,"StMaker","StChain","PMD Reco chain",kFALSE}, + {"pmdRaw" ,"pmdRaw","pmdReco","pmdReco,pmdRead" ,"","","PMD Reco chain giving raw data",kFALSE}, + {"pmd" ,"pmd","pmdReco","pmdReco,pmdSim,pmdDis" ,"","", "PMD Simulation chain",kFALSE}, + {"pmdRead" ,"","pmdReco","PmdUtil","StPmdReadMaker" ,"StPmdReadMaker", "DAQ reader for PMD",kFALSE}, + {"pmdSim" ,"","pmdReco","PmdUtil","StPmdSimulatorMaker","StPmdSimulatorMaker" + ,"Hit Simulator for PMD" ,kFALSE}, + {"pmdClust" ,"pmdClust","pmdReco","","StPmdClusterMaker","StPmdClusterMaker" + ,"ClusterMaker for PMD" ,kFALSE}, + {"pmdDis" ,"pmdDis","pmdReco","PmdClust","StPmdDiscriminatorMaker" + , "StPmdDiscriminatorMaker","Discriminator for PMD",kFALSE}, + {"Kink2" ,"kink2","","db,MuDST,-kink","StKinkMaker","StSecondaryVertexMaker" + , "Find Kinks from StEvent",kFALSE}, + {"V02" ,"v02","","db,MuDST,-V0","StV0FinderMaker","StSecondaryVertexMaker" + , "Find V0s from StEvent",kFALSE}, + {"Xi2" ,"xi2","","db,MuDST,-V02,-Xi","StXiFinderMaker","StSecondaryVertexMaker" + , "Xis AND V0s from StEvent",kFALSE}, + {"V0svt" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Xisvt" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"SCEbyE" ,"scebye","","MuDSTDeps,picoDst","StSpaceChargeEbyEMaker" + , "StMuDSTMaker,StPass0CalibMaker","Determine EbyE SpaceCharge using StEvent",kFALSE}, + {"SCScalerCal" ,"scscalercal","","MuDSTDeps,picoDst","StSpaceChargeEbyEMaker" + , "StMuDSTMaker,StPass0CalibMaker","Calibrate SpaceCharge scalers",kFALSE}, + {"compend" ,"","","event,detDb","StEventCompendiumMaker","StEventCompendiumMaker" + , "Fill event summary in ITTF Chain",kFALSE}, + {"shadow" ,"","","event,compend" ,"StShadowMaker","StShadowMaker","",kFALSE}, + {"TpcAligner" ,"","","Alignment" ,"StTpcAlignerMaker","StTpcAlignerMaker","TpcAligner",kFALSE}, + {"pec" ,"PeC","","Event" ,"StPeCMaker","StPeCMaker","PCollAnalysis",kFALSE}, + {"RichSpectra" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"TagsChain" ,"TagsChain","","" ,"StMaker","StChain","",kFALSE}, + {"TpcTag" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"Flow" ,"","","," ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"FlowTag" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"FlowAnalysis","","","" ,"","WARNING *** Option is OBSOLETE ***","",kFALSE}, + {"SpectraTag" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"HeavyTags" ,"","TagsChain","StEVent" ,"StHeavyTagMaker","StHeavyTagMaker","",kFALSE}, + {"EbyeScaTags" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"HighPtTags" ,"","TagsChain","StEVent" ,"StHighPtTagsMaker","StHighPtTagsMaker","",kFALSE}, + {"PCollTag" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"tags" ,"","TagsChain","globT,Event,HeavyTags,HighPtTags" + , "StTagsMaker","StTagsMaker","Collect all tags to TTree",kFALSE}, + {"noTags" ,"","","-tags,-HeavyTags,-HighPtTags" ,"","","Turn Off tags",kFALSE}, + {"MuDSTChain","MuDSTChain","EMCmDST,CMuDST","" ,"StMaker","StChain","",kFALSE}, + {"StrngMuDST","","MuDSTDeps","", "StStrangeMuDstMaker","","Creates Stangeness MuDST",kFALSE}, + {"EMCmDST" ,"","MuDSTChain","MuDst", "StEmcMicroDstMaker","","Creates EMC MuDST",kFALSE}, + {"CMuDST" ,"","MuDSTChain","MuDst,StrngMuDST,Tree", "StMuDstMaker","","Writes Common MuDST",kFALSE}, + {"RMuDST" ,"","","CMuDST" ,"","","reads Common MuDST, do not disactivate if no output files",kFALSE}, + {"picoWrite" ,"","PicoChain","picoDst","StPicoDstMaker","" ,"Writes picoDST format",kFALSE}, + {"picoRead" ,"","PicoChain","picoDst","StPicoDstMaker","" ,"WritesRead picoDST format",kFALSE}, + {"PicoVtxDefault" ,"","","" ,"" ,"","pico Vtx default mode",kFALSE}, + {"PicoVtxVpd" ,"","","-PicoVtxDefault" ,"" ,"","pico Vtx cut on Tof and VPD mode",kFALSE}, + {"PicoVtxVpdOrDefault","","","-PicoVtxDefault" ,"","","pico Vtx cut on Tof and VPD or default",kFALSE}, + {"PicoVtxFXT" ,"","","-PicoVtxDefault" ,"" ,"","pico Vtx constraint on FXT [198,202] mode",kFALSE}, + {"PicoVtxMtd" ,"","","-PicoVtxDefault" ,"" ,"","pico Vtx using MTD matching mode",kFALSE}, + {"PicoCovMtxSkip" ,"","","" ,"" ,"","Do not write covariance matrices to picoDst (default)",kFALSE}, + {"PicoCovMtxWrite","","","-PicoCovMtxSkip" ,"" ,"","Write track covariance matrices to picoDst",kFALSE}, + {"PicoBEmcSmdSkip" ,"","","" ,"" ,"","Do not write BSMD to picoDst (default)",kFALSE}, + {"PicoBEmcSmdWrite","","","-PicoBEmcSmdSkip" ,"" ,"","Write BSMD to picoDst",kFALSE}, + {"St_geom" ,"" ,"","" , "St_geom_Maker","St_geom_Maker","",kFALSE}, + {"Display" ,"","","", "","","WARNING *** Option is OBSOLETE *** use Ed.C macro instead",kFALSE}, + {"Mc" ,"McChain","McEvent","sim_T,globT,McAss,McAna" ,"StMaker","StChain","",kFALSE}, + {"McAss" ,"","McChain","McEvent", "StAssociationMaker","StAssociationMaker","",kFALSE}, + {"McAnaTpc" ,"","","McAna" ,"","","Mc Analysis for Tpc",kFALSE}, + {"McAnaSvt" ,"","","McAna" ,"","","Mc Analysis for Svt",kFALSE}, + {"McAnaSsd" ,"","","McAna" ,"","","Mc Analysis for Ssd",kFALSE}, + {"McAna" ,"","McChain","McEvent,McAss", "StMcAnalysisMaker","StMcAnalysisMaker","",kFALSE}, + {"McQa" ,"","McChain","McEvent", "StMcQaMaker","StMcQaMaker","QA histogramms for McEvent",kFALSE}, + {"McTpcAna" ,"","McAnaChain","tpcDb,dbutil,McEvent,StEvent" + , "StTpcMcAnalysisMaker","StTpcMcAnalysisMaker","",kFALSE}, + {"MiniMcEvent" ,"","","","", "StMiniMcEvent","Loads StMiniMcEvent library only",kFALSE}, + {"MiniMcMk" ,"","","McAss,MiniMcEvent","StMiniMcMaker","StMiniMcMaker" + , "Creates tree in minimc.root file",kFALSE}, + {"SvtMatTree","","","","SvtMatchedTree" + , "StSvtPoolEventT,StSvtPoolSvtMatchedTree","Create SvtMatchedTree",kFALSE}, + {"LAna" ,"","","in,detDb,StEvent,tpcDb","StLaserAnalysisMaker" + , "StLaserAnalysisMaker","Laser data Analysis",kFALSE}, + {"EandBDir","","","in,StEvent,TpcHitMover,nodefault" + , "StEandBDirMaker","MathMore,Spectrum,StEandBDirMaker", "get E&B direction",kFALSE}, + {"SpinTag" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ppLPfind1" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"SpinSortA" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ppLPprojectA","","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ppDAQfilter1","","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"ppLPeval1" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"QA" ,"","","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, + {"EventQA","EventQA","","QUtils,Event","StEventQAMaker" ,"St_QA_Maker","Filling Y2/Y3 Qa histo",kFALSE}, + {"QAC" ,"CosmicsQA","globT","" ,"StQACosmicMaker","StQACosmicMaker","",kFALSE}, + {"QAalltrigs" ,"", "","", "","","Analyze all triggers in QA",kFALSE}, + {"HitFilt" ,"", "","", "StHitFilterMaker","StHitFilterMaker","Hit filter Maker",kFALSE}, + {"SvtHitFilt" ,"", "","HitFilt", "","","SVT Hit filter Maker",kFALSE}, + {"TpcHitFilt" ,"", "","HitFilt", "","","filter out TPC Hits not on tracks",kFALSE}, + {"HftHitFilt" ,"", "","HitFilt", "","","filter out non-HFT hits",kFALSE}, + {"KeepTpcHit" ,"", "","HitFilt", "","","Keep all TPC hits in StHitFilterMaker",kFALSE}, + {"KeepSvtHit" ,"", "","HitFilt", "","","Keep all SVT hits in StHitFilterMaker",kFALSE}, + {"KeepFgtHit" ,"", "","HitFilt", "","","Keep all FGT hits in StHitFilterMaker",kFALSE}, + {"Tree" ,"OutTree","","","StTreeMaker","StTreeMaker","Write requested branches into files",kFALSE}, + {"logger" ,"" ,"","" ,"","","Use log4cxx package to manage the program messages",kFALSE}, + {"NoSimuDb" ,"" ,"","" ,"","","Switch off Simu Option for DB",kFALSE}, + {"SimuDb" ,"" ,"","-NoSimuDb" ,"","","Switch on Simu Option for DB",kFALSE}, + {"NoOutput" ,"" ,"","-Tree,-EvOut,noTags" ,"","","Suppress Output root files",kFALSE}, + {"EvOutOnly" ,"" ,"","EvOut,Tree,noTags" ,"","","Only event.root files",kFALSE}, + {"NoDefault" ,"" ,"","" ,"","","No Default consistency check",kFALSE}, + {"Notpc_daq" ,"" ,"","-tpc_daq" ,"","","No tpc_daq",kFALSE}, + {"analysis" ,"","","StEvent" ,"StAnalysisMaker","StAnalysisMaker","Example of Analysis",kFALSE}, + {"NewTpcAlignment","","","" ,"","","Switch on new Tpc Alignment schema",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Aliased ","time stamps","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE} +}; diff --git a/StRoot/StBFChain/doc/StBFChain.cxx_doc b/StRoot/StBFChain/doc/StBFChain.cxx_doc index 5deb01edf3a..103c80cc0b6 100644 --- a/StRoot/StBFChain/doc/StBFChain.cxx_doc +++ b/StRoot/StBFChain/doc/StBFChain.cxx_doc @@ -1,4 +1,4 @@ -// @(#)StRoot/StBFChain:$Name: $:$Id: StBFChain.cxx_doc,v 1.180 2021/03/30 14:45:42 genevb Exp $ +// @(#)StRoot/StBFChain:$Name: $:$Id: StBFChain.cxx,v 1.670 2021/03/21 03:32:28 genevb Exp $ #include "TROOT.h" #include "TPRegexp.h" @@ -1077,6 +1077,7 @@ Bfc_st BFC[] = { {"paw" ,"" ,"","" ,"","","Allocate memory for pawc",kFALSE}, {"AllEvent" ,"" ,"","Tree" ,"","","Write whole event to StTree",kFALSE}, {"AllTables" ,"" ,"","","" ,"St_Tables","Load Star Tables",kFALSE}, + {"FXT" ,"" ,"","","" ,"","enable anything FXT-specific",kFALSE}, {"Corr1" ,"" ,"","AlignSectors,ExB,OBmap,OClock,OPr13","","" , "... AlignSectors,ExB,OBmap,OClock,OPr13 ...",kFALSE}, {"Corr2" ,"" ,"","Corr1,OTwist,OIFC" ,"","","...Corr1+OTwist,OIFC ...",kFALSE}, @@ -1177,6 +1178,8 @@ Bfc_st BFC[] = { {"geomNoField" ,"" ,"","-geometry,StarMagField" ,"","geometryNoField","geometry-Mag.Field",kFALSE}, {"xgeometry" ,"" ,"","-geometry,-geomNoField" ,"","xgeometry","AgML geometry-Mag.Field",kFALSE}, {"UseProjectedVertex" ,"" ,"","" ,"","","Run StBTofCalibMaker w/wo Primary Vertex",kFALSE}, + {"ImpBToFt0Mode" ,"" ,"","" ,"","","pppAMode in StVpdCalibMaker and StBTofCalibMaker",kFALSE}, + {"setOutlierRej4BToft0" ,"" ,"","" ,"","","setPPPAOutlierRej is set in StBTofCalibMaker",kFALSE}, {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, {"vpd" ,"" ,"","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, {"tls" ,"" ,"","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, @@ -1216,6 +1219,15 @@ Bfc_st BFC[] = { {"gstarLib","","","" ,"","gstar","Load gstar lib",kFALSE}, {"flux" ,"","","simu" ,"","flux","Load flux lib",kFALSE}, {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Generators ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"stargen", "","", "gen_T,sim_T" , "", "libVMC.so,libStarGeneratorUtil.so,libStarGeneratorEvent.so,libStarGeneratorBase.so,libStarGeneratorFilt.so,libMathMore.so","STAR Generator BASE",false}, + {"pythia8.1.86","","","stargen", "", "Pythia8_1_86.so", "Load Pythia 8.1.86 generator", false }, + {"pythia8.2.35","","","stargen", "", "Pythia8_2_35.so", "Load Pythia 8.1.86 generator", false }, + {"hijing1.383" ,"","","stargen", "", "Hijing1_383.so", "Load Hijing 1.383 generator", false }, + {"kinematics" ,"","","stargen", "", "Kinematics.so", "Load STAR Particle Gun", false }, + {"genreader" ,"","","stargen", "", "StarGenEventReader.so", "Load STAR Gen Event Reader", false }, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, {"I/O Makers ","-----------","-----------","------------------------------------------","","","",kFALSE}, {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, {"gstar" ,"geant" ,"","-fzin,-ntin,-geant,Simu,geantL","St_geant_Maker" @@ -1294,7 +1306,7 @@ Bfc_st BFC[] = { {"tpcI" ,"tpcChain","","db,tpcDB,TpcHitMover", "StMaker","StChain","tpc with ITTF",kFALSE}, {"tpcX" ,"tpcChain","","-tpcI,tpx,MakeEvent" ,"StMaker","StChain","tpc+tpcx with ITTF",kFALSE}, {"Trs","Trs","tpcChain","scl,tpcDB,TrsToF,StEvent,EmbeddingShortCut","StTrsMaker","StTrsMaker","",kFALSE}, - {"TpcRS","","tpcChain","scl,tpcDB,-Trs,-EmbeddingShortCut","StTpcRSMaker" + {"TpcRS","","tpcChain","scl,tpcDB,-Trs,-EmbeddingShortCut,Stu","StTpcRSMaker" ,"libMathMore,StdEdxY2Maker,StTpcRSMaker", "New Tpc Response Simulator",kFALSE}, {"tfs" ,"","","TpcFastSim" ,"","","WARNING *** Option is OBSOLETE *** use TpcFastSim instead",kFALSE}, {"TpcFastSim" ,"tpc_hits","tpcChain","MakeEvent,Simu,-trs,-TpcRS,-tcl,-tpxclu,-fcf,-tpc_daq,StEvent," @@ -1569,6 +1581,7 @@ Bfc_st BFC[] = { {"BeamBack" ,"","","StEvent" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, {"dEdxY2" ,"dEdxY2","","tpcDb,StEvent","StdEdxY2Maker","libMinuit,StdEdxY2Maker" , "Bichsel method used for dEdx",kFALSE}, + {"CalcdNdx", "", "", "dEdxY2", "", "", "Option for StdEdxY2Maker to calculate dN/dx",kFALSE}, {"btofMatch" ,"","","db,BTofUtil,vpdCalib,btofCalib","StBTofMatchMaker","StBTofMatchMaker" , "TPC-BTOF track matching",kFALSE}, {"btofCalib","","","db,BTofUtil", "StBTofCalibMaker","StBTofCalibMaker","BTOF calibration",kFALSE}, @@ -1649,6 +1662,7 @@ Bfc_st BFC[] = { {"PicoVtxVpd" ,"","","-PicoVtxDefault" ,"" ,"","pico Vtx cut on Tof and VPD mode",kFALSE}, {"PicoVtxVpdOrDefault","","","-PicoVtxDefault" ,"","","pico Vtx cut on Tof and VPD or default",kFALSE}, {"PicoVtxFXT" ,"","","-PicoVtxDefault" ,"" ,"","pico Vtx constraint on FXT [198,202] mode",kFALSE}, + {"PicoVtxMtd" ,"","","-PicoVtxDefault" ,"" ,"","pico Vtx using MTD matching mode",kFALSE}, {"PicoCovMtxSkip" ,"","","" ,"" ,"","Do not write covariance matrices to picoDst (default)",kFALSE}, {"PicoCovMtxWrite","","","-PicoCovMtxSkip" ,"" ,"","Write track covariance matrices to picoDst",kFALSE}, {"PicoBEmcSmdSkip" ,"","","" ,"" ,"","Do not write BSMD to picoDst (default)",kFALSE}, @@ -2761,6 +2775,7 @@ Bfc_st BFC[] = { {"paw" ,"" ,"","" ,"","","Allocate memory for pawc",kFALSE}, {"AllEvent" ,"" ,"","Tree" ,"","","Write whole event to StTree",kFALSE}, {"AllTables" ,"" ,"","","" ,"St_Tables","Load Star Tables",kFALSE}, + {"FXT" ,"" ,"","","" ,"","enable anything FXT-specific",kFALSE}, {"Corr1" ,"" ,"","AlignSectors,ExB,OBmap,OClock,OPr13","","" , "... AlignSectors,ExB,OBmap,OClock,OPr13 ...",kFALSE}, {"Corr2" ,"" ,"","Corr1,OTwist,OIFC" ,"","","...Corr1+OTwist,OIFC ...",kFALSE}, @@ -2861,6 +2876,8 @@ Bfc_st BFC[] = { {"geomNoField" ,"" ,"","-geometry,StarMagField" ,"","geometryNoField","geometry-Mag.Field",kFALSE}, {"xgeometry" ,"" ,"","-geometry,-geomNoField" ,"","xgeometry","AgML geometry-Mag.Field",kFALSE}, {"UseProjectedVertex" ,"" ,"","" ,"","","Run StBTofCalibMaker w/wo Primary Vertex",kFALSE}, + {"ImpBToFt0Mode" ,"" ,"","" ,"","","pppAMode in StVpdCalibMaker and StBTofCalibMaker",kFALSE}, + {"setOutlierRej4BToft0" ,"" ,"","" ,"","","setPPPAOutlierRej is set in StBTofCalibMaker",kFALSE}, {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, {"vpd" ,"" ,"","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, {"tls" ,"" ,"","" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, @@ -2900,6 +2917,15 @@ Bfc_st BFC[] = { {"gstarLib","","","" ,"","gstar","Load gstar lib",kFALSE}, {"flux" ,"","","simu" ,"","flux","Load flux lib",kFALSE}, {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"Generators ","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, + {"stargen", "","", "gen_T,sim_T" , "", "libVMC.so,libStarGeneratorUtil.so,libStarGeneratorEvent.so,libStarGeneratorBase.so,libStarGeneratorFilt.so,libMathMore.so","STAR Generator BASE",false}, + {"pythia8.1.86","","","stargen", "", "Pythia8_1_86.so", "Load Pythia 8.1.86 generator", false }, + {"pythia8.2.35","","","stargen", "", "Pythia8_2_35.so", "Load Pythia 8.1.86 generator", false }, + {"hijing1.383" ,"","","stargen", "", "Hijing1_383.so", "Load Hijing 1.383 generator", false }, + {"kinematics" ,"","","stargen", "", "Kinematics.so", "Load STAR Particle Gun", false }, + {"genreader" ,"","","stargen", "", "StarGenEventReader.so", "Load STAR Gen Event Reader", false }, + {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, {"I/O Makers ","-----------","-----------","------------------------------------------","","","",kFALSE}, {"------------","-----------","-----------","------------------------------------------","","","",kFALSE}, {"gstar" ,"geant" ,"","-fzin,-ntin,-geant,Simu,geantL","St_geant_Maker" @@ -2978,7 +3004,7 @@ Bfc_st BFC[] = { {"tpcI" ,"tpcChain","","db,tpcDB,TpcHitMover", "StMaker","StChain","tpc with ITTF",kFALSE}, {"tpcX" ,"tpcChain","","-tpcI,tpx,MakeEvent" ,"StMaker","StChain","tpc+tpcx with ITTF",kFALSE}, {"Trs","Trs","tpcChain","scl,tpcDB,TrsToF,StEvent,EmbeddingShortCut","StTrsMaker","StTrsMaker","",kFALSE}, - {"TpcRS","","tpcChain","scl,tpcDB,-Trs,-EmbeddingShortCut","StTpcRSMaker" + {"TpcRS","","tpcChain","scl,tpcDB,-Trs,-EmbeddingShortCut,Stu","StTpcRSMaker" ,"libMathMore,StdEdxY2Maker,StTpcRSMaker", "New Tpc Response Simulator",kFALSE}, {"tfs" ,"","","TpcFastSim" ,"","","WARNING *** Option is OBSOLETE *** use TpcFastSim instead",kFALSE}, {"TpcFastSim" ,"tpc_hits","tpcChain","MakeEvent,Simu,-trs,-TpcRS,-tcl,-tpxclu,-fcf,-tpc_daq,StEvent," @@ -3253,6 +3279,7 @@ Bfc_st BFC[] = { {"BeamBack" ,"","","StEvent" ,"","","WARNING *** Option is OBSOLETE ***",kFALSE}, {"dEdxY2" ,"dEdxY2","","tpcDb,StEvent","StdEdxY2Maker","libMinuit,StdEdxY2Maker" , "Bichsel method used for dEdx",kFALSE}, + {"CalcdNdx", "", "", "dEdxY2", "", "", "Option for StdEdxY2Maker to calculate dN/dx",kFALSE}, {"btofMatch" ,"","","db,BTofUtil,vpdCalib,btofCalib","StBTofMatchMaker","StBTofMatchMaker" , "TPC-BTOF track matching",kFALSE}, {"btofCalib","","","db,BTofUtil", "StBTofCalibMaker","StBTofCalibMaker","BTOF calibration",kFALSE}, @@ -3333,6 +3360,7 @@ Bfc_st BFC[] = { {"PicoVtxVpd" ,"","","-PicoVtxDefault" ,"" ,"","pico Vtx cut on Tof and VPD mode",kFALSE}, {"PicoVtxVpdOrDefault","","","-PicoVtxDefault" ,"","","pico Vtx cut on Tof and VPD or default",kFALSE}, {"PicoVtxFXT" ,"","","-PicoVtxDefault" ,"" ,"","pico Vtx constraint on FXT [198,202] mode",kFALSE}, + {"PicoVtxMtd" ,"","","-PicoVtxDefault" ,"" ,"","pico Vtx using MTD matching mode",kFALSE}, {"PicoCovMtxSkip" ,"","","" ,"" ,"","Do not write covariance matrices to picoDst (default)",kFALSE}, {"PicoCovMtxWrite","","","-PicoCovMtxSkip" ,"" ,"","Write track covariance matrices to picoDst",kFALSE}, {"PicoBEmcSmdSkip" ,"","","" ,"" ,"","Do not write BSMD to picoDst (default)",kFALSE}, @@ -3539,7 +3567,7 @@ Int_t StBFChain::Load() } } else { if ( ! index(fBFC[i].Libs,',') || Debug() > 1 ) { - LOG_WARN << "No path for Key=" << fBFC[i].Key << "-> Searched for [" << libL + LOG_WARN << "No path for Key=" << fBFC[i].Key << "-> Searched for [" << libL << "] from Libs=" << fBFC[i].Libs << " (will proceed)" << endm; } } @@ -3620,7 +3648,7 @@ Int_t StBFChain::Instantiate() if (GetOption("NoLocalCintDb")) {MyCintDb = "";} if (GetOption("NoStarCintDb") ) {MainCintDb = "";} if (GetOption("NoCintDb") ) {MainCintDb = ""; MyCintDb = "";} - + TString Dirs[10]; Int_t j; for (j = 0; j < 10; j++) Dirs[j] = ""; @@ -3632,20 +3660,23 @@ Int_t StBFChain::Instantiate() if (MyCintDbObj != "") {Dirs[j] = MyCintDbObj; j++;} dbMk = new St_db_Maker(fBFC[i].Name,Dirs[0],Dirs[1],Dirs[2],Dirs[3],Dirs[4]); if (!dbMk) goto Error; - + TString namec = dbMk->GetName(); int len = sizeof(fBFC[i].Name); if ( namec.Length() <= len){ strncpy (fBFC[i].Name, namec.Data(),len); } else { gMessMgr->Error() << "Maker name [" << namec - << "] length is > " << len + << "] length is > " << len << " - increase BFC Name field length" << endm; } // Determine flavors TString flavors = "ofl"; // default flavor for offline + // fixed target flavor + if (GetOption("FXT")) flavors.Prepend("FXT+"); + // simulation flavors if (GetOption("Simu") && ! GetOption("NoSimuDb")) flavors.Prepend("sim+"); @@ -3658,7 +3689,7 @@ Int_t StBFChain::Instantiate() if (fileStream.Length()>0) flavors.Prepend(fileStream += '+'); } } - + LOG_INFO << "Using DB flavors: " << flavors << endm; dbMk->SetFlavor(flavors.Data()); mk = dbMk; @@ -3685,7 +3716,7 @@ Int_t StBFChain::Instantiate() strncpy (fBFC[i].Name, namec.Data() , len); } else { gMessMgr->Error() << "Maker name [" << namec - << "] length is > " << len + << "] length is > " << len << " - increase BFC Name field length" << endm; } @@ -3720,7 +3751,7 @@ Int_t StBFChain::Instantiate() strncpy (fBFC[i].Name, namec.Data() , len); } else { gMessMgr->Error() << "Maker name [" << namec - << "] length is > " << len + << "] length is > " << len << " - increase BFC Name field length" << endm; } treeMk->SetIOMode("w"); @@ -3746,7 +3777,7 @@ Int_t StBFChain::Instantiate() strncpy (fBFC[i].Name,namec.Data(),len); } else { gMessMgr->Error() << "Maker name [" << namec - << "] length is > " << len + << "] length is > " << len << " - increase BFC Name field length" << endm; } } @@ -3758,9 +3789,9 @@ Int_t StBFChain::Instantiate() if (maker == "St_geant_Maker") { // takes only first request for geant, if it is active then it should be the first one Int_t NwGeant = 10; // default geant parameters - if (!GetOption("fzin") && + if (!GetOption("fzin") && !GetOption("ntin") && - !GetOption("gstar") && + !GetOption("gstar") && !GetOption("pythia")) NwGeant = 5; if (GetOption("big")) NwGeant = 20; if (GetOption("bigbig")) NwGeant = 40; @@ -3768,12 +3799,12 @@ Int_t StBFChain::Instantiate() ProcessLine(Form("((St_geant_Maker *) %p)->SetNwGEANT(%i);",mk,NwGeant)); if (GetOption("Higz")) ProcessLine(Form("((St_geant_Maker *) %p)->SetIwtype(1);",mk)); if (GetOption("paw")) ProcessLine(Form("((St_geant_Maker *) %p)->SetNwPAW(2);",mk)); - if (GetOption("fzin") || - GetOption("ntin") || - GetOption("gstar") || - GetOption("pythia") || - GetOption("hijing") || - GetOption("PrepEmbed") || + if (GetOption("fzin") || + GetOption("ntin") || + GetOption("gstar") || + GetOption("pythia") || + GetOption("hijing") || + GetOption("PrepEmbed") || GetOption("mtin")) { mk->SetActive(kTRUE); // if (GetOption("PrepEmbed")) mk->SetMode(10*(mk->GetMode()/10)+1); @@ -3795,7 +3826,7 @@ Int_t StBFChain::Instantiate() // special maker options // m_Mode xyz - // x = 1 phys_off + // x = 1 phys_off // y = 1 Passive mode (do not call RunMC() // z = 1 Mixer Mode if (maker == "StVMCMaker") { @@ -3829,7 +3860,7 @@ Int_t StBFChain::Instantiate() // Option to re-use hits in other tracks if ( GetOption("hitreuseon") ){ - mk->SetAttr("SetMaxTimes", 100); + mk->SetAttr("SetMaxTimes", 100); } // By default iTpc hits are used in tracking @@ -3896,7 +3927,7 @@ Int_t StBFChain::Instantiate() mk->SetAttr("activeBTof" ,kTRUE); } - if (GetOption("StiPulls") || + if (GetOption("StiPulls") || GetOption("StvPulls")) mk->SetAttr("makePulls" ,kTRUE); if (GetOption("skip1row")) mk->SetAttr("skip1row" ,kTRUE); if (GetOption("EastOff")) mk->SetAttr("EastOff" ,kTRUE); @@ -3940,8 +3971,8 @@ Int_t StBFChain::Instantiate() // X-tended works only for VFPPV, VFPPVnoCTB, VFPPVev for now but could be re-used // However, we will change this to a more flexible arbitrarry setting later - if (GetOption("VFStoreX") ) mk->SetAttr("VFStore" , 100); - //if (GetOption("VFStoreX") ) mk->SetAttr("VFStore" , 100); + if (GetOption("VFStoreX") ) mk->SetAttr("VFStore" , 100); + //if (GetOption("VFStoreX") ) mk->SetAttr("VFStore" , 100); mk->PrintAttr(); } if (maker=="StKFVertexMaker") { @@ -4024,18 +4055,13 @@ Int_t StBFChain::Instantiate() if ( GetOption("picoRead") ) mk->SetMode(2); // possibly more magic if ( GetOption("PicoVtxVpd")) mk->SetAttr("PicoVtxMode", "PicoVtxVpd"); else if ( GetOption("PicoVtxFXT")) mk->SetAttr("PicoVtxMode", "PicoVtxFXT"); + else if ( GetOption("PicoVtxMtd")) mk->SetAttr("PicoVtxMode", "PicoVtxMtd"); else if ( GetOption("PicoVtxVpdOrDefault")) mk->SetAttr("PicoVtxMode", "PicoVtxVpdOrDefault"); else if ( GetOption("PicoVtxDefault")) mk->SetAttr("PicoVtxMode", "PicoVtxDefault"); if ( GetOption("PicoCovMtxWrite")) mk->SetAttr("PicoCovMtxMode", "PicoCovMtxWrite"); else if ( GetOption("PicoCovMtxSkip")) mk->SetAttr("PicoCovMtxMode", "PicoCovMtxSkip"); // Default mode - //<<<<<<< StBFChain.cxx - if ( GetOption("PicoBEmcSmdWrite")) mk->SetAttr("PicoBEmcSmdMode", "PicoBEmcSmdWrite"); - else if ( GetOption("PicoBEmcSmdSkip")) mk->SetAttr("PicoBEmcSmdMode", "PicoBEmcSmdSkip"); // Default mode - - //======= if ( GetOption("PicoBEmcSmdWrite")) mk->SetAttr("PicoBEmcSmdMode", "PicoBEmcSmdWrite"); else if ( GetOption("PicoBEmcSmdSkip")) mk->SetAttr("PicoBEmcSmdMode", "PicoBEmcSmdSkip"); // Default mode - //>>>>>>> 1.660.2.3 } @@ -4051,6 +4077,7 @@ Int_t StBFChain::Instantiate() mode |= (1 << 10); // kNoToflight //10 don't account for particle time of flight mk->SetMode(mode); } + if (GetOption("EbyET0")) mk->SetAttr("EbyET0", kTRUE); } if (maker == "StTrsMaker") { Int_t mode = 0; @@ -4149,6 +4176,9 @@ Int_t StBFChain::Instantiate() mk->SetAttr("EmbeddingShortCut", kTRUE); mk->PrintAttr(); } + if (maker == "StdEdxY2Maker" && !GetOption("CalcdNdx")) { + mk->SetAttr("SkipdNdx", kTRUE); + } if (maker == "StSvtDbMaker" || maker == "StSsdDbMaker"){ mk->SetMode(0); // If simulation running make sure pick up simu stuff from db @@ -4238,7 +4268,13 @@ Int_t StBFChain::Instantiate() if (mode) ProcessLine(Form("((StMaker *) %p)->SetMode(%i);", mk, mode)); } - if (maker == "StBTofCalibMaker" && GetOption("UseProjectedVertex")) mk->SetAttr("UseProjectedVertex",kTRUE); + if (maker == "StBTofCalibMaker") { + if (GetOption("UseProjectedVertex")) mk->SetAttr("UseProjectedVertex",kTRUE); + if (GetOption("setOutlierRej4BToft0")) mk->SetAttr("setPPPAOutlierRej", kTRUE); + if (GetOption("ImpBToFt0Mode")) mk->SetAttr("pppAMode", kTRUE); + } + if (maker == "StVpdCalibMaker" && GetOption("ImpBToFt0Mode")) mk->SetAttr("pppAMode", kTRUE); + if (maker == "StEventMaker" && fFiltTrg.Length()) { mk->SetAttr("FiltTrg",(Int_t) (fFiltTrg.BeginsWith('+') ? 1 : -1)); TString FiltTrgFlavor = fFiltTrg(1,128); @@ -4280,7 +4316,7 @@ Int_t StBFChain::Instantiate() if (GetOption("svt1hit")) SetAttr("minPrecHits",1,"StiVMC"); for ( unsigned int n=0 ; n < Gproperty.size() ; n++ ){ - gMessMgr->QAInfo() << "+++ Setting attribute " + gMessMgr->QAInfo() << "+++ Setting attribute " << (Gproperty.at(n)).Data() << " = " << (Gvalue.at(n)).Data() << " for " << (Gpattern.at(n).Data()) << endm; @@ -4327,18 +4363,18 @@ Int_t StBFChain::Init() { if (fNoChainOptions) { - if (GetOption("misalign") && TClass::GetClass("AgPosition") ) + if (GetOption("misalign") && TClass::GetClass("AgPosition") ) gROOT->ProcessLine("AgPosition::SetReal();"); - else if ( TClass::GetClass("AgPosition") ) + else if ( TClass::GetClass("AgPosition") ) gROOT->ProcessLine("AgPosition::SetIdeal();"); } // force load of geometry for VMC and Sti - - if (GetOption("Sti") || GetOption("StiCA") || - GetOption("Stv") || - GetOption("StiVMC") ||GetOption("VMC") || + + if (GetOption("Sti") || GetOption("StiCA") || + GetOption("Stv") || + GetOption("StiVMC") ||GetOption("VMC") || GetOption("VMCPassive")) { const DbAlias_t *DbAlias = GetDbAliases(); for (Int_t i = 0; DbAlias[i].tag; i++) { @@ -4497,7 +4533,7 @@ Int_t StBFChain::kOpt (const TString *tag, Bool_t Check) const { if (Tag.Length() == 11 || Tag.Length() == 18) return 0; // Else we need to parse some more - assume a pattern {dbv|sdt}YYYYMMDD[.HHMMSS]_XXX_ZZZZZ - // First, detect it using quick counting + // First, detect it using quick counting Tag.ToLower(); if ( TPRegexp(BFC_DBREGEXP).Match(Tag) == 7) return 0; } @@ -4520,7 +4556,7 @@ Int_t StBFChain::kOpt (const TString *tag, Bool_t Check) const { if ( TPRegexp("^FiltTrg(Inc|Exc)?(_.*)*$").Match(Tag,"i") > 0) return 0; } if ( Tag.BeginsWith("VFStore",TString::kIgnoreCase) || - Tag.BeginsWith("TpcVpdVzDiffCut",TString::kIgnoreCase) + Tag.BeginsWith("TpcVpdVzDiffCut",TString::kIgnoreCase) ) { // need to match an ":" sign Check = kTRUE; @@ -4555,7 +4591,7 @@ void StBFChain::SetOptions(const Char_t *options, const Char_t *chain) { strncpy (fBFC[kgo].Comment, Comment.Data(),sizeof(fBFC[kgo].Comment)); gMessMgr->QAInfo() << Form(" Set %s = %s", fBFC[kgo].Key,fBFC[kgo].Comment) << endm; } else { - gMessMgr->Error() << Form(" Cpy problem [%s] is > %d - adjust BFC Comment field size", + gMessMgr->Error() << Form(" Cpy problem [%s] is > %d - adjust BFC Comment field size", Comment.Data(),len) << endm; } } @@ -4568,7 +4604,7 @@ void StBFChain::SetOptions(const Char_t *options, const Char_t *chain) { if (kgo > 0) { TString Comment(fBFC[kgo].Comment); TString Opts(fBFC[kgo].Opts); - if (Tag.BeginsWith("Test.",TString::kIgnoreCase) && ! Comment.BeginsWith("/star/") && + if (Tag.BeginsWith("Test.",TString::kIgnoreCase) && ! Comment.BeginsWith("/star/") && Opts.BeginsWith("test_",TString::kIgnoreCase)) { SetOptions(Opts,Tag); } else { @@ -4577,13 +4613,13 @@ void StBFChain::SetOptions(const Char_t *options, const Char_t *chain) { Tag.BeginsWith("eval_",TString::kIgnoreCase)) && Comment.BeginsWith("/star/") ) { fkChain = kgo; gMessMgr->QAInfo() << "Default Test chain set " << fBFC[fkChain].Key << " with input " << fBFC[fkChain].Comment << endm; - } + } } } } else { - // it is 0 i.e. was not recognized. + // it is 0 i.e. was not recognized. // Check if it is a (dbv|sdt)YYYYMMDD or (dbv|sdt)YYYYMMDD.HHMMSS and derivative - // We really set the options only once later in SetDbOptions() (removing the fBFC[i].Flag check) + // We really set the options only once later in SetDbOptions() (removing the fBFC[i].Flag check) // but the goal here is to avoid user's histeria by displaying extra messages NOW. // // Note that kOpt() has already validated the pattern (so it has to be right here). @@ -4614,7 +4650,7 @@ void StBFChain::SetOptions(const Char_t *options, const Char_t *chain) { GTSOptions.push_back(TS); - LOG_WARN << "Override timestamp for detector requested\n\t" + LOG_WARN << "Override timestamp for detector requested\n\t" << "Detector " << TS.Detector << "\n\t" << "Realm " << realm << "\n\t" << "Date " << TS.Date << "\n\t" @@ -4650,7 +4686,7 @@ void StBFChain::SetOptions(const Char_t *options, const Char_t *chain) { Gpattern.push_back("*"); // JL - this is not finished, see comment in kOpt() - + // pattern is case sensitive, need more checks on this before // setting to something else than "*" //Gpattern += GOptName; @@ -4667,13 +4703,13 @@ void StBFChain::SetOptions(const Char_t *options, const Char_t *chain) { } else if (Tag.BeginsWith("rung")) { fRunG = 1; if (Tag.Length() > 4) (void) sscanf(Tag.Data(),"rung.%d",&fRunG); - gMessMgr->QAInfo() << Tag.Data() << " will be considered as Run number (& rndm seed set) " - << fRunG << " for simulation." << endm; + gMessMgr->QAInfo() << Tag.Data() << " will be considered as Run number (& rndm seed set) " + << fRunG << " for simulation." << endm; // JL: super long options I could not accomomodate with gopt (also used ":") } else if (Tag.BeginsWith("VFStore" ,TString::kIgnoreCase) || - Tag.BeginsWith("TpcVpdVzDiffCut",TString::kIgnoreCase) + Tag.BeginsWith("TpcVpdVzDiffCut",TString::kIgnoreCase) ) { TString VFS = Tag; Ssiz_t idx = Tag.Index(':'); @@ -4692,7 +4728,7 @@ void StBFChain::SetOptions(const Char_t *options, const Char_t *chain) { // Attr() need to be set after the maker exist } - + } else if (Tag.BeginsWith("FiltTrg",TString::kIgnoreCase)) { TString filtTrgTag = Tag; @@ -4906,7 +4942,7 @@ void StBFChain::SetFlags(const Char_t *Chain) TString STAR_LEVEL(gSystem->Getenv("STAR_LEVEL")); if (STAR_LEVEL == ".DEV2") SetOption("StiCA","Default,ITTF"); else SetOption("Sti" ,"Default,ITTF"); - } + } if (GetOption("Stv")) { SetOption("-TpcIT","Default,Stv"); SetOption("-SvtIT","Default,Stv"); @@ -4915,8 +4951,8 @@ void StBFChain::SetFlags(const Char_t *Chain) SetOption("-BTofIT","Default,Stv"); SetOption("-PxlIT","Default,Stv"); SetOption("-IstIT","Default,Stv"); - } - + } + } if (!GetOption("Eval") && GetOption("AllEvent")) SetOption("Eval","-Eval,AllEvent"); // Print set values @@ -4982,7 +5018,7 @@ void StBFChain::SetInputFile (const Char_t *infile){ /// Takes care of output file name (extension) void StBFChain::SetOutputFile (const Char_t *outfile){ if (! GetOption("NoOutput")) { - if (outfile) { + if (outfile) { fFileOut = outfile; } else { if (fInFile != "") { @@ -5023,7 +5059,7 @@ void StBFChain::SetOutputFile (const Char_t *outfile){ delete fileOutTokens; } } - } + } if (fFileOut == "") { if (GetOption("pythia")) fFileOut = "pythia.root"; else if (GetOption("hijing")) fFileOut = "hijing.root"; @@ -5183,7 +5219,7 @@ void StBFChain::SetDbOptions(StMaker *mk){ db->SetMaxEntryTime(Idate,Itime); gMessMgr->Info() << "\tSet DataBase max entry time " << Idate << "/" << Itime << " for St_db_Maker(\"" << db->GetName() <<"\")" << endm; - } + } #ifdef USE_BFCTIMESTAMP // // Now treat the detector specific options @@ -5201,12 +5237,12 @@ void StBFChain::SetDbOptions(StMaker *mk){ (char *) realm.Data(), (char *) GTSOptions[i].Detector.Data()); - LOG_INFO << "Recovering override stamp " << i << " :: " - << GTSOptions[i].Detector << ", " << realm << ", " + LOG_INFO << "Recovering override stamp " << i << " :: " + << GTSOptions[i].Detector << ", " << realm << ", " << GTSOptions[i].Date << ", " << GTSOptions[i].Time << endm; } else { - LOG_WARN << "Found override type " << GTSOptions[i].Type << " no treated yet" - << GTSOptions[i].Detector << ", " << realm << ", " + LOG_WARN << "Found override type " << GTSOptions[i].Type << " no treated yet" + << GTSOptions[i].Detector << ", " << realm << ", " << GTSOptions[i].Date << ", " << GTSOptions[i].Time << endm; } } @@ -5280,11 +5316,11 @@ void StBFChain::SetTreeOptions() } if (GetOption("GeantOut")) treeMk->IntoBranch("geantBranch","geant"); if (GetOption("AllEvent")) { - if (GetOption("fzin") || - GetOption("ntin") || - GetOption("gstar") || - GetOption("pythia") || - GetOption("VMC") || + if (GetOption("fzin") || + GetOption("ntin") || + GetOption("gstar") || + GetOption("pythia") || + GetOption("VMC") || GetOption("PrepEmbed")) { treeMk->IntoBranch("geantBranch","geant"); treeMk->IntoBranch("geantBranch","geant/.data/particle"); @@ -5319,6 +5355,5 @@ TString StBFChain::GetGeometry() const if (k[4] <'0' || k[4]>'9') continue; return k; } - return TString(""); -} - + return TString(""); +} diff --git a/StRoot/StBFChain/doc/index.html b/StRoot/StBFChain/doc/index.html index fff72531d43..1a5646a8a0c 100644 --- a/StRoot/StBFChain/doc/index.html +++ b/StRoot/StBFChain/doc/index.html @@ -1,7 +1,7 @@ BFChain Options - +

BFChain Options

  • Block 0
      @@ -15,6 +15,7 @@

      BFChain Options

    • OPTIONS
    • Utilities
    • Geometry+Mag
    • +
    • Generators
    • I/O Makers
    • Db makers
    • MAKERS
    • @@ -32,6 +33,7 @@

      BFChain Options

    • OPTIONS
    • Utilities
    • Geometry+Mag
    • +
    • Generators
    • I/O Makers
    • Db makers
    • MAKERS
    • @@ -597,6 +599,7 @@

      BFChain Options

      paw      Allocate memory for pawc AllEvent  Tree   Write whole event to StTree AllTables     St_TablesLoad Star Tables +FXT      enable anything FXT-specific Corr1  AlignSectors ExB OBmap OClock OPr13   ... AlignSectors ExB OBmap OClock OPr13 ... Corr2  Corr1 OTwist OIFC   ...Corr1+OTwist OIFC ... Corr3  AlignSectors ExB OBmap2D OClock OPr13 OTwist OIFC   ... AlignSectors ExB OBmap2D OClock OPr13 OTwist OIFC ... @@ -688,6 +691,8 @@

      BFChain Options

      geomNoField  -geometry StarMagField  geometryNoFieldgeometry-Mag.Field xgeometry  -geometry -geomNoField  xgeometryAgML geometry-Mag.Field UseProjectedVertex      Run StBTofCalibMaker w/wo Primary Vertex +ImpBToFt0Mode      pppAMode in StVpdCalibMaker and StBTofCalibMaker +setOutlierRej4BToft0      setPPPAOutlierRej is set in StBTofCalibMaker vpd      WARNING *** Option is OBSOLETE *** tls      WARNING *** Option is OBSOLETE *** rts     RTSload libRTS @@ -721,6 +726,13 @@

      BFChain Options

      geantL  geomT gen_T sim_T StarMagField  geometry Geom St_db_Maker St_g2t St_geant_MakerLoad GeantLibs gstarLib     gstarLoad gstar lib flux  simu  fluxLoad flux lib +Generators +stargen  gen_T sim_T  libVMC.so libStarGeneratorUtil.so libStarGeneratorEvent.so libStarGeneratorBase.so libStarGeneratorFilt.so libMathMore.soSTAR Generator BASE +pythia8.1.86  stargen  Pythia8_1_86.soLoad Pythia 8.1.86 generator +pythia8.2.35  stargen  Pythia8_2_35.soLoad Pythia 8.1.86 generator +hijing1.383  stargen  Hijing1_383.soLoad Hijing 1.383 generator +kinematics  stargen  Kinematics.soLoad STAR Particle Gun +genreader  stargen  StarGenEventReader.soLoad STAR Gen Event Reader I/O Makers gstargeant -fzin -ntin -geant Simu geantL St_geant_Maker gstar for 80 muon tracks with pT = 1GeV in |eta|<4 pythiageant -gstar -fzin -ntin -geant geantL St_geant_MakerPythia6_4_26 bpythiaLoad Pythia in starsim set pp 510 GeV @@ -781,7 +793,7 @@

      BFChain Options

      tpcItpcChain db tpcDB TpcHitMover StMakerStChaintpc with ITTF tpcXtpcChain -tpcI tpx MakeEvent StMakerStChaintpc+tpcx with ITTF TrsTrstpcChainscl tpcDB TrsToF StEvent EmbeddingShortCut StTrsMakerStTrsMaker  -TpcRS tpcChainscl tpcDB -Trs -EmbeddingShortCut StTpcRSMakerlibMathMore StdEdxY2Maker StTpcRSMakerNew Tpc Response Simulator +TpcRS tpcChainscl tpcDB -Trs -EmbeddingShortCut Stu StTpcRSMakerlibMathMore StdEdxY2Maker StTpcRSMakerNew Tpc Response Simulator tfs  TpcFastSim   WARNING *** Option is OBSOLETE *** use TpcFastSim instead TpcFastSimtpc_hitstpcChainMakeEvent Simu -trs -TpcRS -tcl -tpxclu -fcf -tpc_daq StEvent -TpcHitMover EmbeddingShortCut StTpcFastSimMakerSt_tcl_Makeruse tfs (no Trs or TpcRS) EmbeddingShortCut      Short Cut for StdEdxY2Maker and StTpcHitMover @@ -992,6 +1004,7 @@

      BFChain Options

      StiPulls  Sti   Request to make Sti Pulls BeamBack  StEvent   WARNING *** Option is OBSOLETE *** dEdxY2dEdxY2 tpcDb StEvent StdEdxY2MakerlibMinuit StdEdxY2MakerBichsel method used for dEdx +CalcdNdx  dEdxY2   Option for StdEdxY2Maker to calculate dN/dx btofMatch  db BTofUtil vpdCalib btofCalib StBTofMatchMakerStBTofMatchMakerTPC-BTOF track matching btofCalib  db BTofUtil StBTofCalibMakerStBTofCalibMakerBTOF calibration ETofHit ETofChaindb ETofUtil muDst StETofHitMakerStETofHitMakerETOF hit maker @@ -1052,6 +1065,7 @@

      BFChain Options

      PicoVtxVpd  -PicoVtxDefault   pico Vtx cut on Tof and VPD mode PicoVtxVpdOrDefault  -PicoVtxDefault   pico Vtx cut on Tof and VPD or default PicoVtxFXT  -PicoVtxDefault   pico Vtx constraint on FXT [198 202] mode +PicoVtxMtd  -PicoVtxDefault   pico Vtx using MTD matching mode PicoCovMtxSkip      Do not write covariance matrices to picoDst (default) PicoCovMtxWrite  -PicoCovMtxSkip   Write track covariance matrices to picoDst PicoBEmcSmdSkip      Do not write BSMD to picoDst (default) @@ -1659,6 +1673,7 @@

      Options for Block 1

      paw      Allocate memory for pawc AllEvent  Tree   Write whole event to StTree AllTables     St_TablesLoad Star Tables +FXT      enable anything FXT-specific Corr1  AlignSectors ExB OBmap OClock OPr13   ... AlignSectors ExB OBmap OClock OPr13 ... Corr2  Corr1 OTwist OIFC   ...Corr1+OTwist OIFC ... Corr3  AlignSectors ExB OBmap2D OClock OPr13 OTwist OIFC   ... AlignSectors ExB OBmap2D OClock OPr13 OTwist OIFC ... @@ -1750,6 +1765,8 @@

      Options for Block 1

      geomNoField  -geometry StarMagField  geometryNoFieldgeometry-Mag.Field xgeometry  -geometry -geomNoField  xgeometryAgML geometry-Mag.Field UseProjectedVertex      Run StBTofCalibMaker w/wo Primary Vertex +ImpBToFt0Mode      pppAMode in StVpdCalibMaker and StBTofCalibMaker +setOutlierRej4BToft0      setPPPAOutlierRej is set in StBTofCalibMaker vpd      WARNING *** Option is OBSOLETE *** tls      WARNING *** Option is OBSOLETE *** rts     RTSload libRTS @@ -1783,6 +1800,13 @@

      Options for Block 1

      geantL  geomT gen_T sim_T StarMagField  geometry Geom St_db_Maker St_g2t St_geant_MakerLoad GeantLibs gstarLib     gstarLoad gstar lib flux  simu  fluxLoad flux lib +Generators +stargen  gen_T sim_T  libVMC.so libStarGeneratorUtil.so libStarGeneratorEvent.so libStarGeneratorBase.so libStarGeneratorFilt.so libMathMore.soSTAR Generator BASE +pythia8.1.86  stargen  Pythia8_1_86.soLoad Pythia 8.1.86 generator +pythia8.2.35  stargen  Pythia8_2_35.soLoad Pythia 8.1.86 generator +hijing1.383  stargen  Hijing1_383.soLoad Hijing 1.383 generator +kinematics  stargen  Kinematics.soLoad STAR Particle Gun +genreader  stargen  StarGenEventReader.soLoad STAR Gen Event Reader I/O Makers gstargeant -fzin -ntin -geant Simu geantL St_geant_Maker gstar for 80 muon tracks with pT = 1GeV in |eta|<4 pythiageant -gstar -fzin -ntin -geant geantL St_geant_MakerPythia6_4_26 bpythiaLoad Pythia in starsim set pp 510 GeV @@ -1843,7 +1867,7 @@

      Options for Block 1

      tpcItpcChain db tpcDB TpcHitMover StMakerStChaintpc with ITTF tpcXtpcChain -tpcI tpx MakeEvent StMakerStChaintpc+tpcx with ITTF TrsTrstpcChainscl tpcDB TrsToF StEvent EmbeddingShortCut StTrsMakerStTrsMaker  -TpcRS tpcChainscl tpcDB -Trs -EmbeddingShortCut StTpcRSMakerlibMathMore StdEdxY2Maker StTpcRSMakerNew Tpc Response Simulator +TpcRS tpcChainscl tpcDB -Trs -EmbeddingShortCut Stu StTpcRSMakerlibMathMore StdEdxY2Maker StTpcRSMakerNew Tpc Response Simulator tfs  TpcFastSim   WARNING *** Option is OBSOLETE *** use TpcFastSim instead TpcFastSimtpc_hitstpcChainMakeEvent Simu -trs -TpcRS -tcl -tpxclu -fcf -tpc_daq StEvent -TpcHitMover EmbeddingShortCut StTpcFastSimMakerSt_tcl_Makeruse tfs (no Trs or TpcRS) EmbeddingShortCut      Short Cut for StdEdxY2Maker and StTpcHitMover @@ -2054,6 +2078,7 @@

      Options for Block 1

      StiPulls  Sti   Request to make Sti Pulls BeamBack  StEvent   WARNING *** Option is OBSOLETE *** dEdxY2dEdxY2 tpcDb StEvent StdEdxY2MakerlibMinuit StdEdxY2MakerBichsel method used for dEdx +CalcdNdx  dEdxY2   Option for StdEdxY2Maker to calculate dN/dx btofMatch  db BTofUtil vpdCalib btofCalib StBTofMatchMakerStBTofMatchMakerTPC-BTOF track matching btofCalib  db BTofUtil StBTofCalibMakerStBTofCalibMakerBTOF calibration ETofHit ETofChaindb ETofUtil muDst StETofHitMakerStETofHitMakerETOF hit maker @@ -2114,6 +2139,7 @@

      Options for Block 1

      PicoVtxVpd  -PicoVtxDefault   pico Vtx cut on Tof and VPD mode PicoVtxVpdOrDefault  -PicoVtxDefault   pico Vtx cut on Tof and VPD or default PicoVtxFXT  -PicoVtxDefault   pico Vtx constraint on FXT [198 202] mode +PicoVtxMtd  -PicoVtxDefault   pico Vtx using MTD matching mode PicoCovMtxSkip      Do not write covariance matrices to picoDst (default) PicoCovMtxWrite  -PicoCovMtxSkip   Write track covariance matrices to picoDst PicoBEmcSmdSkip      Do not write BSMD to picoDst (default) @@ -2162,6 +2188,6 @@

      Options for Block 1

      NewTpcAlignment      Switch on new Tpc Alignment schema Aliasedtime stamps       -
      Created by BFCOpt2Html.pl on Tue Mar 30 10:44:51 2021 - J. Lauret
      +
      Created by BFCOpt2Html.pl on Fri Dec 3 12:00:05 2021 - J. Lauret
      diff --git a/StRoot/StChain/StMaker.cxx b/StRoot/StChain/StMaker.cxx index a618283d578..0f8eadd1115 100755 --- a/StRoot/StChain/StMaker.cxx +++ b/StRoot/StChain/StMaker.cxx @@ -1414,20 +1414,29 @@ void StMaker::Streamer(TBuffer &) //______________________________________________________________________________ StMaker *StMaker::New(const Char_t *classname, const Char_t *name, void *title) { +static char oldName[20]={0}; // This static method creates a new StMaker object if provided StMaker *maker = 0; + + const char* nam = (name )? (const char*)name:""; + const char* tit = (title)? (const char*)title:""; if (classname) { TClass *cl = gROOT->GetClass(classname); if (cl) { maker = (StMaker *)cl->New(); if (maker) { - if (name && strlen(name)) maker->SetName(name); - if (title) maker->SetTitle((Char_t *) title); + if (nam && strlen(nam)) maker->SetName(nam); + if (tit && strlen(tit)) maker->SetTitle(tit); } + } } + assert(maker); + printf (" ==== New %s(%p) %s\n",classname,maker,maker->GetName()); +//??? assert(!strcmp(oldName,maker->GetName())); + return maker; } //_____________________________________________________________________________ diff --git a/StRoot/StMuDSTMaker/COMMON/StMuChainMaker.cxx b/StRoot/StMuDSTMaker/COMMON/StMuChainMaker.cxx index 3df2be49deb..29fadde200b 100644 --- a/StRoot/StMuDSTMaker/COMMON/StMuChainMaker.cxx +++ b/StRoot/StMuDSTMaker/COMMON/StMuChainMaker.cxx @@ -22,7 +22,7 @@ #include "StMessMgr.h" extern TSystem* gSystem; - +enum { kBigNumber = 0x7FFFFFFF}; string StMuChainMaker::mSQLConnection =""; ClassImp(StMuChainMaker) @@ -219,15 +219,15 @@ void StMuChainMaker::add( StMuStringIntPair filenameEvents) { } } - if (entries==0 || entries==TChain::kBigNumber) { // try to read the number of event from the db reader + if (entries==0 || entries==kBigNumber) { // try to read the number of event from the db reader int tmp_entries = mDbReader->entries(file.c_str()); if (tmp_entries != 0) entries = tmp_entries; else - entries = TChain::kBigNumber; // If still not known, set to kBigNumber to avoid opening of file + entries = kBigNumber; // If still not known, set to kBigNumber to avoid opening of file } // If entries==0, TChain will open the file and get the number of entries - // If entries==TChain::kBigNumber, TChain will start reading + // If entries==kBigNumber, TChain will start reading // and figure out the numbers of events while going along mChain->Add( file.c_str(), entries ); mFileCounter++; @@ -251,7 +251,7 @@ void StMuChainMaker::fromDir(string dir) { if ( good && pass(name,mSubFilters) ) { char* fullFile = gSystem->ConcatFileName(dir.c_str(),fileName); // add it to the list of files - mFileList.push_back( StMuStringIntPair( fullFile, TChain::kBigNumber ) ); + mFileList.push_back( StMuStringIntPair( fullFile, kBigNumber ) ); delete []fullFile; } } @@ -343,7 +343,7 @@ void StMuChainMaker::fromList(string list) { inputStream.getline(line,512); string ltest(line); if (inputStream.good()) { - int numberOfEvents = TChain::kBigNumber; + int numberOfEvents = kBigNumber; int iret = sscanf(line,"%s%i",name, &numberOfEvents); if(iret) {/*warnOff*/} if ( pass(name,mSubFilters) && ltest!="") { @@ -358,7 +358,7 @@ void StMuChainMaker::fromList(string list) { void StMuChainMaker::fromFile(string file) { DEBUGMESSAGE2(""); DEBUGMESSAGE2(mTreeName.c_str()); - mFileList.push_back( StMuStringIntPair( file, TChain::kBigNumber ) ); + mFileList.push_back( StMuStringIntPair( file, kBigNumber ) ); } //----------------------------------------------------------------------- //----------------------------------------------------------------------- diff --git a/StRoot/StStrangeMuDstMaker/StStrangeMuDstMaker.cxx b/StRoot/StStrangeMuDstMaker/StStrangeMuDstMaker.cxx index 7037b14498b..c547dcd8437 100755 --- a/StRoot/StStrangeMuDstMaker/StStrangeMuDstMaker.cxx +++ b/StRoot/StStrangeMuDstMaker/StStrangeMuDstMaker.cxx @@ -37,6 +37,12 @@ Int_t thisRun,thisEvent,lastRun,lastEvent,readEventNumber; TFile* lastFile; ClassImp(StStrangeMuDstMaker) + +void StStrangeMuDstMaker::Qwe() { printf ("UUUUUUUUUUUUUU Static\n");} + + + + //_____________________________________________________________________________ StStrangeMuDstMaker::StStrangeMuDstMaker(const char *name) : StMaker(name) { diff --git a/StRoot/StStrangeMuDstMaker/StStrangeMuDstMaker.h b/StRoot/StStrangeMuDstMaker/StStrangeMuDstMaker.h index 7069b79cbaa..b66a48077d5 100644 --- a/StRoot/StStrangeMuDstMaker/StStrangeMuDstMaker.h +++ b/StRoot/StStrangeMuDstMaker/StStrangeMuDstMaker.h @@ -51,6 +51,8 @@ enum StrangeEnum {StrangeNoKeep, StrangeNoFile, StrangeWrite, StrangeRead}; class StStrangeMuDstMaker : public StMaker { public: +static void Qwe(); + StStrangeMuDstMaker(const char *name="strangeMuDst"); virtual ~StStrangeMuDstMaker(); void DoT0JitterAbort(Bool_t doIt=kTRUE); diff --git a/StRoot/St_base/St.cxx b/StRoot/St_base/St.cxx index 22d6d92a39c..e17b7b5a217 100644 --- a/StRoot/St_base/St.cxx +++ b/StRoot/St_base/St.cxx @@ -76,7 +76,7 @@ ULong64_t St::Call(const char* fun,int I0,const char* C0,const char* C1,const ch //_______________________________________________________________________________ ULong64_t St::MyCall() { - TString ts("return "); ts += mC[kIN]; ts+="("; + TString ts(".x "); ts += mC[kIN]; ts+="("; for (int ii = 0; ii #include -#ifndef ST_NO_NAMESPACES using namespace std; -#endif class StProxyUrr; -typedef list StCollList; +typedef std::list StCollList; typedef StCollList::iterator StCollListIter; -typedef list StXRefManagerList; +typedef std::list StXRefManagerList; typedef StXRefManagerList::iterator StXRefManagerListIter; -typedef vector UIntVector; +typedef std::vector UIntVector; typedef UIntVector::iterator UIntVectorIter; //_____________________________________________________________________________ @@ -186,9 +184,9 @@ class StProxyUrr : public UIntVector { StProxyUrr(TObject **adr){fAdr = adr; fType=1;} StProxyUrr(StObject **adr){fAdr = (TObject **)adr; fType=1;} ~StProxyUrr(){fArr = 0;} -int GetType() {return fType;} -TObject *GetArr() {return fArr;} -TObject **GetAdr() {return fAdr;} +int GetType(){return fType;} +TObject *GetArr() {return fArr; } +TObject **GetAdr() {return fAdr; } private: int fType; diff --git a/StRoot/StarClassLibrary/0.0cpp b/StRoot/StarClassLibrary/0.0cpp new file mode 100644 index 00000000000..dafb3c65b3e --- /dev/null +++ b/StRoot/StarClassLibrary/0.0cpp @@ -0,0 +1,914 @@ + + **** Listing of file: StThreeVector.hh **** + + 1 - 0 /*************************************************************************** + 2 - 0 * + 3 - 0 * $Id: StThreeVector.hh,v 1.23 2010/10/18 21:55:11 fisyak Exp $ + 4 - 0 * + 5 - 0 * Author: Brian Lasiuk, Thomas Ullrich, April 1998 + 6 - 0 *************************************************************************** + 7 - 0 * + 8 - 0 * Description: + 9 - 0 * + 10 - 0 * Remarks: Since not all compilers support member templates + 11 - 0 * we have to specialize the templated member on these + 12 - 0 * platforms. If member templates are not supported the + 13 - 0 * ST_NO_MEMBER_TEMPLATES flag has to be set. tu. + 14 - 0 * + 15 - 0 *************************************************************************** + 16 - 0 * + 17 - 0 * $Log: StThreeVector.hh,v $ + 18 - 0 * Revision 1.23 2010/10/18 21:55:11 fisyak + 19 - 0 * Warn off for gcc4.5.1 64bits + 20 - 0 * + 21 - 0 * Revision 1.22 2009/09/22 16:43:29 fine + 22 - 0 * Introdcue the dedicated default ctor for StThreeVector #1612 + 23 - 0 * + 24 - 0 * Revision 1.21 2008/10/29 19:16:13 perev + 25 - 0 * set(x,y,z) added + 26 - 0 * + 27 - 0 * Revision 1.20 2007/02/23 22:41:42 ullrich + 28 - 0 * Also add non-const version of xyz(). + 29 - 0 * + 30 - 0 * Revision 1.19 2007/02/23 17:36:19 ullrich + 31 - 0 * Added xyz() method. + 32 - 0 * + 33 - 0 * Revision 1.18 2006/02/14 17:57:31 perev + 34 - 0 * x(),y(),z() return references now + 35 - 0 * + 36 - 0 * Revision 1.17 2006/01/09 23:47:27 fisyak + 37 - 0 * Add missing methods (found by Zhangbu) to Cint dictionary + 38 - 0 * + 39 - 0 * Revision 1.16 2005/12/07 20:47:21 perev + 40 - 0 * uint<0 redundand. WarnOff + 41 - 0 * + 42 - 0 * Revision 1.15 2005/09/22 20:09:20 fisyak + 43 - 0 * Make StLorentzVector persistent + 44 - 0 * + 45 - 0 * Revision 1.14 2005/07/19 22:27:11 perev + 46 - 0 * Cleanup + 47 - 0 * + 48 - 0 * Revision 1.13 2005/07/06 18:49:57 fisyak + 49 - 0 * Replace StHelixD, StLorentzVectorD,StLorentzVectorF,StMatrixD,StMatrixF,StPhysicalHelixD,StThreeVectorD,StThreeVectorF by templated version + 50 - 0 * + 51 - 0 * Revision 1.12 2005/03/28 06:03:41 perev + 52 - 0 * Defence FPE added + 53 - 0 * + 54 - 0 * Revision 1.11 2004/12/02 20:07:32 fine + 55 - 0 * define the valid method for both flavor of StThreeVector + 56 - 0 * + 57 - 0 * Revision 1.10 2003/10/30 20:06:46 perev + 58 - 0 * Check of quality added + 59 - 0 * + 60 - 0 * Revision 1.9 2003/09/02 17:59:35 perev + 61 - 0 * gcc 3.2 updates + WarnOff + 62 - 0 * + 63 - 0 * Revision 1.8 2002/06/21 17:47:37 genevb + 64 - 0 * Added pseudoProduct + 65 - 0 * + 66 - 0 * Revision 1.7 2000/01/04 19:56:05 ullrich + 67 - 0 * Added cpp macro for CINT. + 68 - 0 * + 69 - 0 * Revision 1.6 1999/12/21 15:14:31 ullrich + 70 - 0 * Modified to cope with new compiler version on Sun (CC5.0). + 71 - 0 * + 72 - 0 * Revision 1.5 1999/10/15 15:46:54 ullrich + 73 - 0 * Changed output format in operator<< + 74 - 0 * + 75 - 0 * Revision 1.4 1999/06/04 18:00:05 ullrich + 76 - 0 * Added new constructor which takes C-style array as argument. + 77 - 0 * New operators operator() and operator[] which can be used + 78 - 0 * as lvalues. + 79 - 0 * + 80 - 0 * Revision 1.3 1999/02/17 11:42:19 ullrich + 81 - 0 * Removed specialization for 'long double'. + 82 - 0 * + 83 - 0 * Revision 1.2 1999/02/14 23:11:48 fisyak + 84 - 0 * Fixes for Rootcint + 85 - 0 * + 86 - 0 * Revision 1.1 1999/01/30 03:59:05 fisyak + 87 - 0 * Root Version of StarClassLibrary + 88 - 0 * + 89 - 0 * Revision 1.1 1999/01/23 00:28:04 ullrich + 90 - 0 * Initial Revision + 91 - 0 * + 92 - 0 **************************************************************************/ + 93 - 0 #ifndef ST_THREE_VECTOR_HH + 94 - 1 #define ST_THREE_VECTOR_HH + 95 - 1 #ifdef __ROOT__ + 96 - 2 #include "Rtypes.h" + 97 - 1 #endif + 98 - 1 #ifndef __CINT__ + 99 - 2 #include + 100 - 2 #include + 101 - 2 #ifdef GNU_GCC + 102 - 3 # include + 103 - 2 #endif + 104 - 2 #if defined (__SUNPRO_CC) && __SUNPRO_CC < 0x500 + 105 - 3 # include + 106 - 2 #endif + 107 - 2 #ifndef ST_NO_EXCEPTIONS + 108 - 3 # include + 109 - 3 # if !defined(ST_NO_NAMESPACES) + 110 - 4 using std::out_of_range; + 111 - 3 # endif + 112 - 2 #endif + 113 - 1 #endif // __CINT__ + 114 - 1 + 115 - 1 #define ST_NO_MEMBER_TEMPLATES 1946 + 116 - 1 + 117 - 1 template class StThreeVector { + 118 - 1 public: + 119 - 1 StThreeVector(); + 120 - 1 StThreeVector(T, T, T); + 121 - 1 // ROOT_VERSION(5,03,01) + 122 - 1 #if ROOT_VERSION_CODE >= 328449 + 123 - 2 StThreeVector(TRootIOCtor*) : mX1(0), mX2(0), mX3(0) {} + 124 - 1 #endif + 125 - 1 virtual ~StThreeVector(); + 126 - 1 + 127 - 1 #if !defined(ST_NO_MEMBER_TEMPLATES) && !defined(__CINT__) + 128 - 2 template StThreeVector(const StThreeVector&); + 129 - 2 template StThreeVector(const X*); + 130 - 2 template StThreeVector& operator=(const StThreeVector&); + 131 - 2 // StThreeVector(const StThreeVector&); use default + 132 - 2 // StThreeVector& operator=(const StThreeVector&); use default + 133 - 2 #else + 134 - 2 StThreeVector(const StThreeVector&); + 135 - 2 StThreeVector(const StThreeVector&); + 136 - 2 + 137 - 2 StThreeVector(const float*); + 138 - 2 StThreeVector(const double*); + 139 - 2 + 140 - 2 StThreeVector& operator=(const StThreeVector&); + 141 - 2 StThreeVector& operator=(const StThreeVector&); + 142 - 1 #endif + 143 - 1 + 144 - 1 void setX(T); + 145 - 1 void setY(T); + 146 - 1 void setZ(T); + 147 - 1 void set(T X,T Y, T Z) {mX1=X;mX2=Y;mX3=Z;} + 148 - 1 + 149 - 1 void setPhi(T); + 150 - 1 void setTheta(T); + 151 - 1 void setMag(T); + 152 - 1 void setMagnitude(T); + 153 - 1 + 154 - 1 const T& x() const; + 155 - 1 const T& y() const; + 156 - 1 const T& z() const; + 157 - 1 const T* xyz() const; + 158 - 1 T* xyz(); + 159 - 1 T theta() const; + 160 - 1 T cosTheta() const; + 161 - 1 T phi() const; + 162 - 1 T perp() const; + 163 - 1 T perp2() const; + 164 - 1 T magnitude() const; + 165 - 1 T mag() const; + 166 - 1 T mag2() const; + 167 - 1 T pseudoRapidity() const; + 168 - 1 T operator() (size_t) const; + 169 - 1 T operator[] (size_t) const; + 170 - 1 + 171 - 1 T& operator() (size_t); + 172 - 1 T& operator[] (size_t); + 173 - 1 + 174 - 1 T massHypothesis(T mass) const; + 175 - 1 + 176 - 1 StThreeVector unit() const; + 177 - 1 StThreeVector orthogonal() const; + 178 - 1 + 179 - 1 void rotateX(T); + 180 - 1 void rotateY(T); + 181 - 1 void rotateZ(T); + 182 - 1 + 183 - 1 StThreeVector operator- (); + 184 - 1 StThreeVector operator+ (); + 185 - 1 StThreeVector& operator*= (double); + 186 - 1 StThreeVector& operator/= (double); + 187 - 1 StThreeVector pseudoProduct(double,double,double) const; + 188 - 1 + 189 - 1 #if !defined(ST_NO_MEMBER_TEMPLATES) && !defined(__CINT__) + 190 - 2 template T angle(const StThreeVector&) const; + 191 - 2 template StThreeVector cross(const StThreeVector&) const; + 192 - 2 template T dot (const StThreeVector&) const; + 193 - 2 template StThreeVector pseudoProduct(const StThreeVector&) const; + 194 - 2 + 195 - 2 template bool operator == (const StThreeVector& v) const; + 196 - 2 template bool operator != (const StThreeVector& v) const; + 197 - 2 + 198 - 2 template StThreeVector& operator+= (const StThreeVector&); + 199 - 2 template StThreeVector& operator-= (const StThreeVector&); + 200 - 2 #else + 201 - 2 T angle(const StThreeVector&) const; + 202 - 2 StThreeVector cross(const StThreeVector&) const; + 203 - 2 T dot (const StThreeVector&) const; + 204 - 2 StThreeVector pseudoProduct(const StThreeVector&) const; + 205 - 2 + 206 - 2 T angle(const StThreeVector&) const; + 207 - 2 T dot (const StThreeVector&) const; + 208 - 2 StThreeVector cross(const StThreeVector&) const; + 209 - 2 StThreeVector pseudoProduct(const StThreeVector&) const; + 210 - 2 + 211 - 2 bool operator == (const StThreeVector& v) const; + 212 - 2 bool operator != (const StThreeVector& v) const; + 213 - 2 StThreeVector& operator+= (const StThreeVector&); + 214 - 2 StThreeVector& operator-= (const StThreeVector&); + 215 - 2 + 216 - 2 bool operator == (const StThreeVector& v) const; + 217 - 2 bool operator != (const StThreeVector& v) const; + 218 - 2 StThreeVector& operator+= (const StThreeVector&); + 219 - 2 StThreeVector& operator-= (const StThreeVector&); + 220 - 1 #endif + 221 - 1 int valid(double world = 1.e+5) const; + 222 - 1 int bad(double world = 1.e+5) const; + 223 - 1 protected: + 224 - 1 T mX1, mX2, mX3; + 225 - 1 #ifdef __ROOT__ + 226 - 2 ClassDef(StThreeVector,3) + 227 - 1 #endif /* __ROOT__ */ + 228 - 1 }; + 229 - 1 + 230 - 1 // + 231 - 1 // Implementation of member functions + 232 - 1 // + 233 - 1 template + 234 - 1 inline StThreeVector::StThreeVector() + 235 - 1 : mX1(0), mX2(0), mX3(0) {/* nop */} + 236 - 1 + 237 - 1 template + 238 - 1 inline StThreeVector::StThreeVector(T X, T Y, T Z) + 239 - 1 : mX1(X), mX2(Y), mX3(Z) {/* nop */} + 240 - 1 template + 241 - 1 inline StThreeVector::~StThreeVector() {/* nop */} + 242 - 1 + 243 - 1 template + 244 - 1 inline void StThreeVector::setX(T X) {mX1 = X;} + 245 - 1 + 246 - 1 template + 247 - 1 inline void StThreeVector::setY(T Y) {mX2 = Y;} + 248 - 1 + 249 - 1 template + 250 - 1 inline void StThreeVector::setZ(T Z) {mX3 = Z;} + 251 - 1 + 252 - 1 template + 253 - 1 void StThreeVector::setPhi(T Angle) + 254 - 1 { + 255 - 1 double r = magnitude(); + 256 - 1 double th = theta(); + 257 - 1 + 258 - 1 mX1 = r*sin(th)*cos(Angle); + 259 - 1 mX2 = r*sin(th)*sin(Angle); + 260 - 1 } + 261 - 1 + 262 - 1 template + 263 - 1 void StThreeVector::setTheta(T Angle) + 264 - 1 { + 265 - 1 double r = magnitude(); + 266 - 1 double ph = phi(); + 267 - 1 + 268 - 1 mX1 = r*sin(Angle)*cos(ph); + 269 - 1 mX2 = r*sin(Angle)*sin(ph); + 270 - 1 mX3 = r*cos(Angle); + 271 - 1 } + 272 - 1 + 273 - 1 template + 274 - 1 void StThreeVector::setMagnitude(T r) + 275 - 1 { + 276 - 1 double th = theta(); + 277 - 1 double ph = phi(); + 278 - 1 + 279 - 1 mX1 = r*sin(th)*cos(ph); + 280 - 1 mX2 = r*sin(th)*sin(ph); + 281 - 1 mX3 = r*cos(th); + 282 - 1 } + 283 - 1 + 284 - 1 template + 285 - 1 void StThreeVector::setMag(T Mag) + 286 - 1 { + 287 - 1 setMagnitude(Mag); + 288 - 1 } + 289 - 1 + 290 - 1 template + 291 - 1 inline const T& StThreeVector::x() const {return mX1;} + 292 - 1 + 293 - 1 template + 294 - 1 inline const T& StThreeVector::y() const {return mX2;} + 295 - 1 + 296 - 1 template + 297 - 1 inline const T& StThreeVector::z() const {return mX3;} + 298 - 1 + 299 - 1 template + 300 - 1 inline const T* StThreeVector::xyz() const {return &mX1;} + 301 - 1 + 302 - 1 template + 303 - 1 inline T* StThreeVector::xyz() {return &mX1;} + 304 - 1 + 305 - 1 template + 306 - 1 inline T StThreeVector::theta() const + 307 - 1 { + 308 - 1 return acos(cosTheta()); + 309 - 1 } + 310 - 1 + 311 - 1 template + 312 - 1 inline T StThreeVector::cosTheta() const + 313 - 1 { + 314 - 1 return mX3/(mag()+1e-20); + 315 - 1 } + 316 - 1 + 317 - 1 template + 318 - 1 inline T StThreeVector::phi() const + 319 - 1 { + 320 - 1 return atan2(mX2,mX1); + 321 - 1 } + 322 - 1 + 323 - 1 template + 324 - 1 inline T StThreeVector::pseudoRapidity() const + 325 - 1 { + 326 - 1 // + 327 - 1 // change code to more optimal: + 328 - 1 // double m = mag(); + 329 - 1 // return 0.5*::log( (m+z())/(m-z()) ); + 330 - 1 double tmp = tan(theta()/2.); if (tmp <=0.) return 1e20; + 331 - 1 return -::log(tmp); + 332 - 1 } + 333 - 1 + 334 - 1 template + 335 - 1 inline StThreeVector StThreeVector::unit() const + 336 - 1 { + 337 - 1 double tmp = mag(); if (tmp<=0.) tmp = 1e-20; + 338 - 1 return *this/tmp; + 339 - 1 } + 340 - 1 + 341 - 1 template + 342 - 1 T StThreeVector::massHypothesis(T mass) const + 343 - 1 { + 344 - 1 return ::sqrt((*this)*(*this) + mass*mass); + 345 - 1 } + 346 - 1 + 347 - 1 template + 348 - 1 StThreeVector StThreeVector::orthogonal() const + 349 - 1 { + 350 - 1 // Direct copy from CLHEP--it is probably better to + 351 - 1 // use your own dot/cross product code... + 352 - 1 double X = (mX1 < 0.0) ? -mX1 : mX1; + 353 - 1 double Y = (mX2 < 0.0) ? -mX2 : mX2; + 354 - 1 double Z = (mX3 < 0.0) ? -mX3 : mX3; + 355 - 1 + 356 - 1 if(X(0,mX3,-mX2) : StThreeVector(mX2,-mX1,0); + 358 - 1 else + 359 -t 1 return mX2 < mX3 ? StThreeVector(-mX3,0,mX1) : StThreeVector(mX2,-mX1,0); + 360 - 1 } + 361 - 1 + 362 - 1 template + 363 - 1 void StThreeVector::rotateX(T Angle) + 364 - 1 { + 365 - 1 // may in the future make use of the StRotation class! + 366 - 1 double yPrime = cos(Angle)*mX2 - sin(Angle)*mX3; + 367 - 1 double zPrime = sin(Angle)*mX2 + cos(Angle)*mX3; + 368 - 1 + 369 - 1 mX2 = yPrime; + 370 - 1 mX3 = zPrime; + 371 - 1 } + 372 - 1 + 373 - 1 template + 374 - 1 void StThreeVector::rotateY(T Angle) + 375 - 1 { + 376 - 1 // may in the future make use of the StRotation class! + 377 - 1 double zPrime = cos(Angle)*mX3 - sin(Angle)*mX1; + 378 - 1 double xPrime = sin(Angle)*mX3 + cos(Angle)*mX1; + 379 - 1 + 380 - 1 mX1 = xPrime; + 381 - 1 mX3 = zPrime; + 382 - 1 } + 383 - 1 + 384 - 1 template + 385 - 1 void StThreeVector::rotateZ(T Angle) + 386 - 1 { + 387 - 1 // may in the future make use of the StRotation class! + 388 - 1 double xPrime = cos(Angle)*mX1 - sin(Angle)*mX2; + 389 - 1 double yPrime = sin(Angle)*mX1 + cos(Angle)*mX2; + 390 - 1 + 391 - 1 mX1 = xPrime; + 392 - 1 mX2 = yPrime; + 393 - 1 } + 394 - 1 + 395 - 1 template + 396 - 1 inline T StThreeVector::perp() const + 397 - 1 { + 398 - 1 return ::sqrt(mX1*mX1+mX2*mX2); + 399 - 1 } + 400 - 1 + 401 - 1 template + 402 - 1 inline T StThreeVector::perp2() const + 403 - 1 { + 404 - 1 return mX1*mX1+mX2*mX2; + 405 - 1 } + 406 - 1 + 407 - 1 template + 408 - 1 inline T StThreeVector::magnitude() const + 409 - 1 { + 410 - 1 return mag(); + 411 - 1 } + 412 - 1 + 413 - 1 template + 414 - 1 inline T StThreeVector::mag() const + 415 - 1 { + 416 - 1 return ::sqrt(mX1*mX1+mX2*mX2+mX3*mX3); + 417 - 1 } + 418 - 1 + 419 - 1 template + 420 - 1 inline T StThreeVector::mag2() const + 421 - 1 { + 422 - 1 return mX1*mX1+mX2*mX2+mX3*mX3; + 423 - 1 } + 424 - 1 + 425 - 1 template + 426 - 1 inline T StThreeVector::operator() (size_t i) const + 427 - 1 { + 428 - 1 if (i <= 2) return (&mX1)[i]; + 429 - 1 #ifndef ST_NO_EXCEPTIONS + 430 - 2 throw out_of_range("StThreeVector::operator(): bad index"); + 431 - 2 #else + 432 - 2 cerr << "StThreeVector::operator(): bad index" << endl; + 433 - 1 #endif + 434 - 1 return 0; + 435 - 1 } + 436 - 1 + 437 - 1 template + 438 - 1 inline T& StThreeVector::operator() (size_t i) + 439 - 1 { + 440 - 1 if (i <= 2) return (&mX1)[i]; + 441 - 1 #ifndef ST_NO_EXCEPTIONS + 442 - 2 throw out_of_range("StThreeVector::operator(): bad index"); + 443 - 2 #else + 444 - 2 cerr << "StThreeVector::operator(): bad index" << endl; + 445 - 1 #endif + 446 - 1 return mX1; + 447 - 1 } + 448 - 1 + 449 - 1 template + 450 - 1 inline T StThreeVector::operator[] (size_t i) const + 451 - 1 { + 452 - 1 if (i <= 2) return (&mX1)[i]; + 453 - 1 #ifndef ST_NO_EXCEPTIONS + 454 - 2 throw out_of_range("StThreeVector::operator[]: bad index"); + 455 - 2 #else + 456 - 2 cerr << "StThreeVector::operator[]: bad index" << endl; + 457 - 1 #endif + 458 - 1 return 0; + 459 - 1 } + 460 - 1 + 461 - 1 template + 462 - 1 inline T &StThreeVector::operator[] (size_t i) + 463 - 1 { + 464 - 1 if (i <= 2) return (&mX1)[i]; + 465 - 1 #ifndef ST_NO_EXCEPTIONS + 466 - 2 throw out_of_range("StThreeVector::operator[]: bad index"); + 467 - 2 #else + 468 - 2 cerr << "StThreeVector::operator[]: bad index" << endl; + 469 - 1 #endif + 470 - 1 return mX1; + 471 - 1 } + 472 - 1 #ifndef __CINT__ + 473 - 2 template + 474 - 2 inline StThreeVector& StThreeVector::operator*= (double c) + 475 - 2 { + 476 - 2 mX1 *= c; mX2 *= c; mX3 *= c; + 477 - 2 return *this; + 478 - 2 } + 479 - 2 #else + 480 - 2 template <> StThreeVector& StThreeVector::operator*= (double c); + 481 - 2 template <> StThreeVector& StThreeVector::operator*= (double c); + 482 - 1 #endif + 483 - 1 template + 484 - 1 inline StThreeVector& StThreeVector::operator/= (double c) + 485 - 1 { + 486 - 1 mX1 /= c; mX2 /= c; mX3 /= c; + 487 - 1 return *this; + 488 - 1 } + 489 - 1 + 490 - 1 template + 491 - 1 inline StThreeVector + 492 - 1 StThreeVector::pseudoProduct(double X,double Y,double Z) const + 493 - 1 { + 494 - 1 return StThreeVector(mX1*X,mX2*Y,mX3*Z); + 495 - 1 } + 496 - 1 + 497 - 1 template + 498 - 1 StThreeVector StThreeVector::operator- () + 499 - 1 { + 500 - 1 return StThreeVector(-mX1, -mX2, -mX3); + 501 - 1 } + 502 - 1 + 503 - 1 template + 504 - 1 StThreeVector StThreeVector::operator+ () + 505 - 1 { + 506 - 1 return *this; + 507 - 1 } + 508 - 1 + 509 - 1 #if !defined(ST_NO_MEMBER_TEMPLATES) && !defined(__CINT__) + 510 - 2 + 511 - 2 template + 512 - 2 template + 513 - 2 inline StThreeVector::StThreeVector(const StThreeVector& v) + 514 - 2 : mX1(v.x()), mX2(v.y()), mX3(v.z()) {/* nop */} + 515 - 2 + 516 - 2 template + 517 - 2 template + 518 - 2 inline StThreeVector::StThreeVector(const X *a) + 519 - 2 { + 520 - 2 mX1 = a[0]; + 521 - 2 mX2 = a[1]; + 522 - 2 mX3 = a[2]; + 523 - 2 } + 524 - 2 + 525 - 2 template + 526 - 2 template + 527 - 2 inline StThreeVector& + 528 - 2 StThreeVector::operator=(const StThreeVector& v) + 529 - 2 { + 530 - 2 mX1 = v.x(); mX2 = v.y(); mX3 = v.z(); + 531 - 2 return *this; + 532 - 2 } + 533 - 2 + 534 - 2 template + 535 - 2 template + 536 - 2 inline bool StThreeVector::operator== (const StThreeVector& v) const + 537 - 2 { + 538 - 2 return mX1 == v.x() && mX2 == v.y() && mX3 == v.z(); + 539 - 2 } + 540 - 2 + 541 - 2 template + 542 - 2 template + 543 - 2 inline bool StThreeVector::operator!= (const StThreeVector& v) const + 544 - 2 { + 545 - 2 return !(*this == v); + 546 - 2 } + 547 - 2 + 548 - 2 template + 549 - 2 template + 550 - 2 inline StThreeVector& + 551 - 2 StThreeVector::operator+= (const StThreeVector& v) + 552 - 2 { + 553 - 2 mX1 += v.x(); mX2 += v.y(); mX3 += v.z(); + 554 - 2 return *this; + 555 - 2 } + 556 - 2 + 557 - 2 template + 558 - 2 template + 559 - 2 inline StThreeVector& + 560 - 2 StThreeVector::operator-= (const StThreeVector& v) + 561 - 2 { + 562 - 2 mX1 -= v.x(); mX2 -= v.y(); mX3 -= v.z(); + 563 - 2 return *this; + 564 - 2 } + 565 - 2 + 566 - 2 template + 567 - 2 template + 568 - 2 inline T StThreeVector::dot(const StThreeVector& v) const + 569 - 2 { + 570 - 2 return mX1*v.x() + mX2*v.y() + mX3*v.z(); + 571 - 2 } + 572 - 2 + 573 - 2 template + 574 - 2 template + 575 - 2 inline StThreeVector + 576 - 2 StThreeVector::cross(const StThreeVector& v) const + 577 - 2 { + 578 - 2 return StThreeVector(mX2*v.z() - mX3*v.y(), + 579 -t 2 mX3*v.x() - mX1*v.z(), + 580 -t 2 mX1*v.y() - mX2*v.x()); + 581 - 2 } + 582 - 2 + 583 - 2 template + 584 - 2 template + 585 - 2 inline T StThreeVector::angle(const StThreeVector& vec) const + 586 - 2 { + 587 - 2 double norm = this->mag2()*vec.mag2(); + 588 - 2 + 589 - 2 return norm > 0 ? acos(this->dot(vec)/(::sqrt(norm))) : 0; + 590 - 2 } + 591 - 2 + 592 - 2 template + 593 - 2 template + 594 - 2 inline StThreeVector + 595 - 2 StThreeVector::pseudoProduct(const StThreeVector& v) const + 596 - 2 { + 597 - 2 return this->pseudoProduct(v.x(),v.y(),v.z()); + 598 - 2 } + 599 - 2 + 600 - 2 #else + 601 - 2 + 602 - 2 template + 603 - 2 inline StThreeVector::StThreeVector(const StThreeVector& v) + 604 - 2 : mX1(v.x()), mX2(v.y()), mX3(v.z()) {/* nop */} + 605 - 2 + 606 - 2 template + 607 - 2 inline StThreeVector::StThreeVector(const StThreeVector& v) + 608 - 2 : mX1(v.x()), mX2(v.y()), mX3(v.z()) {/* nop */} + 609 - 2 + 610 - 2 template + 611 - 2 inline StThreeVector::StThreeVector(const float *a) + 612 - 2 { + 613 - 2 mX1 = a[0]; + 614 - 2 mX2 = a[1]; + 615 - 2 mX3 = a[2]; + 616 - 2 } + 617 - 2 + 618 - 2 template + 619 - 2 inline StThreeVector::StThreeVector(const double *a) + 620 - 2 { + 621 - 2 mX1 = a[0]; + 622 - 2 mX2 = a[1]; + 623 - 2 mX3 = a[2]; + 624 - 2 } + 625 - 2 + 626 - 2 template + 627 - 2 inline StThreeVector& + 628 - 2 StThreeVector::operator=(const StThreeVector& v) + 629 - 2 { + 630 - 2 mX1 = v.x(); mX2 = v.y(); mX3 = v.z(); + 631 - 2 return *this; + 632 - 2 } + 633 - 2 + 634 - 2 template + 635 - 2 inline StThreeVector& + 636 - 2 StThreeVector::operator=(const StThreeVector& v) + 637 - 2 { + 638 - 2 mX1 = v.x(); mX2 = v.y(); mX3 = v.z(); + 639 - 2 return *this; + 640 - 2 } + 641 - 2 + 642 - 2 template + 643 - 2 inline bool + 644 - 2 StThreeVector::operator== (const StThreeVector& v) const + 645 - 2 { + 646 - 2 return mX1 == v.x() && mX2 == v.y() && mX3 == v.z(); + 647 - 2 } + 648 - 2 + 649 - 2 template + 650 - 2 inline bool + 651 - 2 StThreeVector::operator== (const StThreeVector& v) const + 652 - 2 { + 653 - 2 return mX1 == v.x() && mX2 == v.y() && mX3 == v.z(); + 654 - 2 } + 655 - 2 + 656 - 2 template + 657 - 2 inline bool + 658 - 2 StThreeVector::operator!= (const StThreeVector& v) const + 659 - 2 { + 660 - 2 return !(*this == v); + 661 - 2 } + 662 - 2 + 663 - 2 template + 664 - 2 inline bool + 665 - 2 StThreeVector::operator!= (const StThreeVector& v) const + 666 - 2 { + 667 - 2 return !(*this == v); + 668 - 2 } + 669 - 2 + 670 - 2 template + 671 - 2 inline StThreeVector& + 672 - 2 StThreeVector::operator+= (const StThreeVector& v) + 673 - 2 { + 674 - 2 mX1 += v.x(); mX2 += v.y(); mX3 += v.z(); + 675 - 2 return *this; + 676 - 2 } + 677 - 2 + 678 - 2 template + 679 - 2 inline StThreeVector& + 680 - 2 StThreeVector::operator+= (const StThreeVector& v) + 681 - 2 { + 682 - 2 mX1 += v.x(); mX2 += v.y(); mX3 += v.z(); + 683 - 2 return *this; + 684 - 2 } + 685 - 2 + 686 - 2 template + 687 - 2 inline StThreeVector& + 688 - 2 StThreeVector::operator-= (const StThreeVector& v) + 689 - 2 { + 690 - 2 mX1 -= v.x(); mX2 -= v.y(); mX3 -= v.z(); + 691 - 2 return *this; + 692 - 2 } + 693 - 2 + 694 - 2 template + 695 - 2 inline StThreeVector& + 696 - 2 StThreeVector::operator-= (const StThreeVector& v) + 697 - 2 { + 698 - 2 mX1 -= v.x(); mX2 -= v.y(); mX3 -= v.z(); + 699 - 2 return *this; + 700 - 2 } + 701 - 2 + 702 - 2 template + 703 - 2 inline T StThreeVector::dot(const StThreeVector& v) const + 704 - 2 { + 705 - 2 return mX1*v.x() + mX2*v.y() + mX3*v.z(); + 706 - 2 } + 707 - 2 + 708 - 2 template + 709 - 2 inline T StThreeVector::dot(const StThreeVector& v) const + 710 - 2 { + 711 - 2 return mX1*v.x() + mX2*v.y() + mX3*v.z(); + 712 - 2 } + 713 - 2 + 714 - 2 template + 715 - 2 inline StThreeVector + 716 - 2 StThreeVector::cross(const StThreeVector& v) const + 717 - 2 { + 718 - 2 return StThreeVector(mX2*v.z() - mX3*v.y(), + 719 -t 2 mX3*v.x() - mX1*v.z(), + 720 -t 2 mX1*v.y() - mX2*v.x()); + 721 - 2 } + 722 - 2 + 723 - 2 template + 724 - 2 inline StThreeVector + 725 - 2 StThreeVector::cross(const StThreeVector& v) const + 726 - 2 { + 727 - 2 return StThreeVector(mX2*v.z() - mX3*v.y(), + 728 -t 2 mX3*v.x() - mX1*v.z(), + 729 -t 2 mX1*v.y() - mX2*v.x()); + 730 - 2 } + 731 - 2 + 732 - 2 template + 733 - 2 inline T StThreeVector::angle(const StThreeVector& v) const + 734 - 2 { + 735 - 2 double tmp = mag()*v.mag(); if (tmp <=0) tmp = 1e-20; + 736 - 2 return acos(this->dot(v)/tmp); + 737 - 2 } + 738 - 2 + 739 - 2 template + 740 - 2 inline T StThreeVector::angle(const StThreeVector& v) const + 741 - 2 { + 742 - 2 double tmp = mag()*v.mag(); if (tmp <=0) tmp = 1e-20; + 743 - 2 return acos(this->dot(v)/tmp); + 744 - 2 } + 745 - 2 + 746 - 2 template + 747 - 2 inline StThreeVector + 748 - 2 StThreeVector::pseudoProduct(const StThreeVector& v) const + 749 - 2 { + 750 - 2 return this->pseudoProduct(v.x(),v.y(),v.z()); + 751 - 2 } + 752 - 2 + 753 - 2 template + 754 - 2 inline StThreeVector + 755 - 2 StThreeVector::pseudoProduct(const StThreeVector& v) const + 756 - 2 { + 757 - 2 return this->pseudoProduct(v.x(),v.y(),v.z()); + 758 - 2 } + 759 - 1 #endif // ST_NO_MEMBER_TEMPLATES + 760 - 1 template + 761 - 1 inline int + 762 - 1 StThreeVector::valid(double world) const {return !bad(world);} + 763 - 1 + 764 - 1 template + 765 - 1 inline int + 766 - 1 StThreeVector::bad(double world) const + 767 - 1 { + 768 - 1 for (int i=0;i<3;i++) { + 769 - 1 if (!::finite((&mX1)[i]) ) return 10+i; + 770 - 1 if ( ::fabs ((&mX1)[i])>world) return 20+i; + 771 - 1 } + 772 - 1 return 0; + 773 - 1 } + 774 - 1 // + 775 - 1 // Non-member functions + 776 - 1 // + 777 - 1 #if !defined(ST_NO_MEMBER_TEMPLATES) && !defined(__CINT__) + 778 - 2 template + 779 - 2 inline T abs(const StThreeVector& v) {return v.mag();} + 780 - 2 template + 781 - 2 inline StThreeVector + 782 - 2 cross_product(const StThreeVector& v1, const StThreeVector& v2) + 783 - 2 { + 784 - 2 return v1.cross(v2); + 785 - 2 } + 786 - 2 template + 787 - 2 inline StThreeVector + 788 - 2 operator+ (const StThreeVector& v1, const StThreeVector& v2) + 789 - 2 { + 790 - 2 return StThreeVector(v1) += v2; + 791 - 2 } + 792 - 2 + 793 - 2 template + 794 - 2 inline StThreeVector + 795 - 2 operator- (const StThreeVector& v1, const StThreeVector& v2) + 796 - 2 { + 797 - 2 return StThreeVector(v1) -= v2; + 798 - 2 } + 799 - 2 + 800 - 2 template + 801 - 2 inline T operator* (const StThreeVector& v1, const StThreeVector& v2) + 802 - 2 { + 803 - 2 return StThreeVector(v1).dot(v2); + 804 - 2 } + 805 - 2 #else + 806 - 2 template<> + 807 - 2 inline double abs(const StThreeVector& v) {return v.mag();} + 808 - 2 + 809 - 2 template<> + 810 - 2 inline float abs(const StThreeVector& v) {return v.mag();} + 811 - 2 + 812 - 2 template + 813 - 2 inline StThreeVector + 814 - 2 cross_product(const StThreeVector& v1, const StThreeVector& v2) + 815 - 2 { + 816 - 2 return v1.cross(v2); + 817 - 2 } + 818 - 2 template + 819 - 2 inline StThreeVector + 820 - 2 cross_product(const StThreeVector& v1, const StThreeVector& v2) + 821 - 2 { + 822 - 2 return v1.cross(v2); + 823 - 2 } + 824 - 2 + 825 - 2 + 826 - 2 // + 827 - 2 // Non-member operators + 828 - 2 // + 829 - 2 template + 830 - 2 inline StThreeVector + 831 - 2 operator+ (const StThreeVector& v1, const StThreeVector& v2) + 832 - 2 { + 833 - 2 return StThreeVector(v1) += v2; + 834 - 2 } + 835 - 2 + 836 - 2 template + 837 - 2 inline StThreeVector + 838 - 2 operator- (const StThreeVector& v1, const StThreeVector& v2) + 839 - 2 { + 840 - 2 return StThreeVector(v1) -= v2; + 841 - 2 } + 842 - 2 #ifndef __CINT__ + 843 - 3 template + 844 - 3 inline T operator* (const StThreeVector& v1, const StThreeVector& v2) + 845 - 3 { + 846 - 3 return StThreeVector(v1).dot(v2); + 847 - 3 } + 848 - 3 template + 849 - 3 inline T operator* (const StThreeVector& v1, const StThreeVector& v2) + 850 - 3 { + 851 - 3 return StThreeVector(v1).dot(v2); + 852 - 3 } + 853 - 3 #else + 854 - 3 template<> double operator* (const StThreeVector& v1, const StThreeVector& v2); + 855 - 3 template<> double operator* (const StThreeVector& v1, const StThreeVector& v2); + 856 - 3 template<> double operator* (const StThreeVector& v1, const StThreeVector& v2); + 857 - 3 template<> float operator* (const StThreeVector& v1, const StThreeVector& v2); + 858 - 2 #endif + 859 - 2 template + 860 - 2 inline StThreeVector + 861 - 2 operator+ (const StThreeVector& v1, const StThreeVector& v2) + 862 - 2 { + 863 - 2 return StThreeVector(v1) += v2; + 864 - 2 } + 865 - 2 + 866 - 2 template + 867 - 2 inline StThreeVector + 868 - 2 operator- (const StThreeVector& v1, const StThreeVector& v2) + 869 - 2 { + 870 - 2 return StThreeVector(v1) -= v2; + 871 - 2 } + 872 - 2 + 873 - 1 #endif + 874 - 1 template + 875 - 1 inline StThreeVector operator* (const StThreeVector& v, double c) + 876 - 1 { + 877 - 1 return StThreeVector(v) *= c; + 878 - 1 } + 879 - 1 + 880 - 1 template + 881 - 1 inline StThreeVector operator* (double c, const StThreeVector& v) + 882 - 1 { + 883 - 1 return StThreeVector(v) *= c; + 884 - 1 } + 885 - 1 + 886 - 1 template + 887 - 1 inline StThreeVector operator/ (const StThreeVector& v,double c) + 888 - 1 { + 889 - 1 return StThreeVector(v) /= c; + 890 - 1 } + 891 - 1 #ifndef __CINT__ + 892 - 2 template + 893 - 2 ostream& operator<<(ostream& os, const StThreeVector& v) + 894 - 2 { + 895 - 2 return os << v.x() << '\t' << v.y() << '\t' << v.z(); + 896 - 2 } + 897 - 2 #else + 898 - 2 template<> ostream& operator<<(ostream& os, const StThreeVector& v); + 899 - 2 template<> ostream& operator<<(ostream& os, const StThreeVector& v); + 900 - 1 #endif + 901 - 1 template + 902 - 1 istream& operator>>(istream& is, StThreeVector& v) + 903 - 1 { + 904 - 1 T x, y, z; + 905 - 1 is >> x >> y >> z; + 906 - 1 v.setX(x); + 907 - 1 v.setY(y); + 908 - 1 v.setZ(z); + 909 - 1 return is; + 910 - 1 } + 911 - 0 #endif diff --git a/StRoot/StarClassLibrary/StHelix.cc b/StRoot/StarClassLibrary/StHelix.cc index abf69787260..a8b27933b80 100644 --- a/StRoot/StarClassLibrary/StHelix.cc +++ b/StRoot/StarClassLibrary/StHelix.cc @@ -468,7 +468,7 @@ double StHelix::pathLength(const StThreeVector& r, double a, f, fp; double sOld = s = 0; - double shiftOld = 0; +//VP double shiftOld = 0; double shift; // (cos(angMax)-1)/angMax = 0.1 const double angMax = 0.21; @@ -498,7 +498,7 @@ double StHelix::pathLength(const StThreeVector& r, shift = f/fp; } s -= shift; - shiftOld = shift; +//VP shiftOld = shift; if (fabs(sOld-s) < MaxPrecisionNeeded) break; sOld = s; } diff --git a/StRoot/StarClassLibrary/StThreeVector.cc b/StRoot/StarClassLibrary/StThreeVector.cc index 5e1c1716208..112bd9cdfed 100644 --- a/StRoot/StarClassLibrary/StThreeVector.cc +++ b/StRoot/StarClassLibrary/StThreeVector.cc @@ -1,8 +1,16 @@ #include "StThreeVector.hh" -#ifdef __ROOT__ #include "TBuffer.h" #include "TClass.h" ClassImpT(StThreeVector,float); + +std::ostream& operator<<(std::ostream& os, const StThreeVector& v) +{ return os << v.x() << '\t' << v.y() << '\t' << v.z();} +std::ostream& operator<<(std::ostream& os, const StThreeVector& v) +{ return os << v.x() << '\t' << v.y() << '\t' << v.z();} + + + + //________________________________________________________________________________ template <> void StThreeVector::Streamer(TBuffer &R__b) { @@ -31,4 +39,3 @@ template <> void StThreeVector::Streamer(TBuffer &R__b) } else Class()->WriteBuffer(R__b,this); } -#endif diff --git a/StRoot/StarClassLibrary/StThreeVector.hh b/StRoot/StarClassLibrary/StThreeVector.hh index df806994a8e..c7a408a9e66 100644 --- a/StRoot/StarClassLibrary/StThreeVector.hh +++ b/StRoot/StarClassLibrary/StThreeVector.hh @@ -92,18 +92,14 @@ **************************************************************************/ #ifndef ST_THREE_VECTOR_HH #define ST_THREE_VECTOR_HH -#ifdef __ROOT__ #include "Rtypes.h" -#endif +#include #ifndef __CINT__ #include #include #ifdef GNU_GCC # include #endif -#if defined (__SUNPRO_CC) && __SUNPRO_CC < 0x500 -# include -#endif #ifndef ST_NO_EXCEPTIONS # include # if !defined(ST_NO_NAMESPACES) @@ -117,18 +113,8 @@ public: StThreeVector(); StThreeVector(T, T, T); // ROOT_VERSION(5,03,01) -#if ROOT_VERSION_CODE >= 328449 - StThreeVector(TRootIOCtor*) : mX1(0), mX2(0), mX3(0) {} -#endif virtual ~StThreeVector(); -#if !defined(ST_NO_MEMBER_TEMPLATES) && !defined(__CINT__) - template StThreeVector(const StThreeVector&); - template StThreeVector(const X*); - template StThreeVector& operator=(const StThreeVector&); - // StThreeVector(const StThreeVector&); use default - // StThreeVector& operator=(const StThreeVector&); use default -#else StThreeVector(const StThreeVector&); StThreeVector(const StThreeVector&); @@ -137,7 +123,6 @@ public: StThreeVector& operator=(const StThreeVector&); StThreeVector& operator=(const StThreeVector&); -#endif void setX(T); void setY(T); @@ -184,18 +169,6 @@ public: StThreeVector& operator/= (double); StThreeVector pseudoProduct(double,double,double) const; -#if !defined(ST_NO_MEMBER_TEMPLATES) && !defined(__CINT__) - template T angle(const StThreeVector&) const; - template StThreeVector cross(const StThreeVector&) const; - template T dot (const StThreeVector&) const; - template StThreeVector pseudoProduct(const StThreeVector&) const; - - template bool operator == (const StThreeVector& v) const; - template bool operator != (const StThreeVector& v) const; - - template StThreeVector& operator+= (const StThreeVector&); - template StThreeVector& operator-= (const StThreeVector&); -#else T angle(const StThreeVector&) const; StThreeVector cross(const StThreeVector&) const; T dot (const StThreeVector&) const; @@ -215,7 +188,6 @@ public: bool operator != (const StThreeVector& v) const; StThreeVector& operator+= (const StThreeVector&); StThreeVector& operator-= (const StThreeVector&); -#endif int valid(double world = 1.e+5) const; int bad(double world = 1.e+5) const; protected: @@ -424,11 +396,7 @@ template inline T StThreeVector::operator() (size_t i) const { if (i <= 2) return (&mX1)[i]; -#ifndef ST_NO_EXCEPTIONS - throw out_of_range("StThreeVector::operator(): bad index"); -#else - cerr << "StThreeVector::operator(): bad index" << endl; -#endif + assert(i<=2); return 0; } @@ -436,11 +404,7 @@ template inline T& StThreeVector::operator() (size_t i) { if (i <= 2) return (&mX1)[i]; -#ifndef ST_NO_EXCEPTIONS - throw out_of_range("StThreeVector::operator(): bad index"); -#else - cerr << "StThreeVector::operator(): bad index" << endl; -#endif + assert(i<=2); return mX1; } @@ -448,36 +412,22 @@ template inline T StThreeVector::operator[] (size_t i) const { if (i <= 2) return (&mX1)[i]; -#ifndef ST_NO_EXCEPTIONS - throw out_of_range("StThreeVector::operator[]: bad index"); -#else - cerr << "StThreeVector::operator[]: bad index" << endl; -#endif - return 0; + assert(i<=2); + return 0; } template inline T &StThreeVector::operator[] (size_t i) { if (i <= 2) return (&mX1)[i]; -#ifndef ST_NO_EXCEPTIONS - throw out_of_range("StThreeVector::operator[]: bad index"); -#else - cerr << "StThreeVector::operator[]: bad index" << endl; -#endif - return mX1; + assert(i<=2); + return mX1; } -#ifndef __CINT__ template inline StThreeVector& StThreeVector::operator*= (double c) { - mX1 *= c; mX2 *= c; mX3 *= c; - return *this; + mX1 *= c; mX2 *= c; mX3 *= c; return *this; } -#else -template <> StThreeVector& StThreeVector::operator*= (double c); -template <> StThreeVector& StThreeVector::operator*= (double c); -#endif template inline StThreeVector& StThreeVector::operator/= (double c) { @@ -504,98 +454,6 @@ StThreeVector StThreeVector::operator+ () return *this; } -#if !defined(ST_NO_MEMBER_TEMPLATES) && !defined(__CINT__) - -template -template -inline StThreeVector::StThreeVector(const StThreeVector& v) - : mX1(v.x()), mX2(v.y()), mX3(v.z()) {/* nop */} - -template -template -inline StThreeVector::StThreeVector(const X *a) -{ - mX1 = a[0]; - mX2 = a[1]; - mX3 = a[2]; -} - -template -template -inline StThreeVector& -StThreeVector::operator=(const StThreeVector& v) -{ - mX1 = v.x(); mX2 = v.y(); mX3 = v.z(); - return *this; -} - -template -template -inline bool StThreeVector::operator== (const StThreeVector& v) const -{ - return mX1 == v.x() && mX2 == v.y() && mX3 == v.z(); -} - -template -template -inline bool StThreeVector::operator!= (const StThreeVector& v) const -{ - return !(*this == v); -} - -template -template -inline StThreeVector& -StThreeVector::operator+= (const StThreeVector& v) -{ - mX1 += v.x(); mX2 += v.y(); mX3 += v.z(); - return *this; -} - -template -template -inline StThreeVector& -StThreeVector::operator-= (const StThreeVector& v) -{ - mX1 -= v.x(); mX2 -= v.y(); mX3 -= v.z(); - return *this; -} - -template -template -inline T StThreeVector::dot(const StThreeVector& v) const -{ - return mX1*v.x() + mX2*v.y() + mX3*v.z(); -} - -template -template -inline StThreeVector -StThreeVector::cross(const StThreeVector& v) const -{ - return StThreeVector(mX2*v.z() - mX3*v.y(), - mX3*v.x() - mX1*v.z(), - mX1*v.y() - mX2*v.x()); -} - -template -template -inline T StThreeVector::angle(const StThreeVector& vec) const -{ - double norm = this->mag2()*vec.mag2(); - - return norm > 0 ? acos(this->dot(vec)/(::sqrt(norm))) : 0; -} - -template -template -inline StThreeVector -StThreeVector::pseudoProduct(const StThreeVector& v) const -{ - return this->pseudoProduct(v.x(),v.y(),v.z()); -} - -#else template inline StThreeVector::StThreeVector(const StThreeVector& v) @@ -754,7 +612,6 @@ StThreeVector::pseudoProduct(const StThreeVector& v) const { return this->pseudoProduct(v.x(),v.y(),v.z()); } -#endif // ST_NO_MEMBER_TEMPLATES template inline int StThreeVector::valid(double world) const {return !bad(world);} @@ -772,39 +629,10 @@ StThreeVector::bad(double world) const // // Non-member functions // -#if !defined(ST_NO_MEMBER_TEMPLATES) && !defined(__CINT__) -template -inline T abs(const StThreeVector& v) {return v.mag();} -template -inline StThreeVector -cross_product(const StThreeVector& v1, const StThreeVector& v2) -{ - return v1.cross(v2); -} -template -inline StThreeVector -operator+ (const StThreeVector& v1, const StThreeVector& v2) -{ - return StThreeVector(v1) += v2; -} - -template -inline StThreeVector -operator- (const StThreeVector& v1, const StThreeVector& v2) -{ - return StThreeVector(v1) -= v2; -} - -template -inline T operator* (const StThreeVector& v1, const StThreeVector& v2) -{ - return StThreeVector(v1).dot(v2); -} -#else -template<> +//template<> inline double abs(const StThreeVector& v) {return v.mag();} -template<> +//template<> inline float abs(const StThreeVector& v) {return v.mag();} template @@ -837,7 +665,6 @@ operator- (const StThreeVector& v1, const StThreeVector& v2) { return StThreeVector(v1) -= v2; } -#ifndef __CINT__ template inline T operator* (const StThreeVector& v1, const StThreeVector& v2) { @@ -848,12 +675,6 @@ inline T operator* (const StThreeVector& v1, const StThreeVector& v2) { return StThreeVector(v1).dot(v2); } -#else -template<> double operator* (const StThreeVector& v1, const StThreeVector& v2); -template<> double operator* (const StThreeVector& v1, const StThreeVector& v2); -template<> double operator* (const StThreeVector& v1, const StThreeVector& v2); -template<> float operator* (const StThreeVector& v1, const StThreeVector& v2); -#endif template inline StThreeVector operator+ (const StThreeVector& v1, const StThreeVector& v2) @@ -868,42 +689,41 @@ operator- (const StThreeVector& v1, const StThreeVector& v2) return StThreeVector(v1) -= v2; } -#endif -template -inline StThreeVector operator* (const StThreeVector& v, double c) -{ - return StThreeVector(v) *= c; -} +// template +// inline StThreeVector operator* (const StThreeVector& v, double c) +// { return StThreeVector(v) *= c;} -template -inline StThreeVector operator* (double c, const StThreeVector& v) -{ - return StThreeVector(v) *= c; -} +inline StThreeVector operator* (const StThreeVector& v, double c) +{ return StThreeVector(v) *= c;} template -inline StThreeVector operator/ (const StThreeVector& v,double c) -{ - return StThreeVector(v) /= c; -} +inline StThreeVector operator* (const StThreeVector& v, double c) +{ return StThreeVector(v) *= c;} + + + +// template +// inline StThreeVector operator* (double c, const StThreeVector& v) +// { return StThreeVector(v) *= c;} +// +inline StThreeVector operator* (double c, const StThreeVector& v) +{ return StThreeVector(v) *= c;} +inline StThreeVector operator* (double c, const StThreeVector& v) +{ return StThreeVector(v) *= c;} + +// template +// inline StThreeVector operator/ (const StThreeVector& v,double c) +inline StThreeVector operator/ (const StThreeVector& v,double c) +{ return StThreeVector(v) /= c;} +inline StThreeVector operator/ (const StThreeVector& v,double c) +{ return StThreeVector(v) /= c;} + #ifndef __CINT__ -template -ostream& operator<<(ostream& os, const StThreeVector& v) -{ - return os << v.x() << '\t' << v.y() << '\t' << v.z(); -} -#else -template<> ostream& operator<<(ostream& os, const StThreeVector& v); -template<> ostream& operator<<(ostream& os, const StThreeVector& v); -#endif -template -istream& operator>>(istream& is, StThreeVector& v) -{ - T x, y, z; - is >> x >> y >> z; - v.setX(x); - v.setY(y); - v.setZ(z); - return is; -} +// template +// inline std::ostream& operator<<(std::ostream& os, const StThreeVector& v) +// { return os << v.x() << '\t' << v.y() << '\t' << v.z();} + +std::ostream& operator<<(std::ostream& os, const StThreeVector& v); +std::ostream& operator<<(std::ostream& os, const StThreeVector& v); +#endif // -__CINT__ #endif diff --git a/StRoot/StarClassLibrary/StarClassLibraryLinkDef.hh b/StRoot/StarClassLibrary/StarClassLibraryLinkDef.hh index 7febcdd8573..2b3d0882574 100644 --- a/StRoot/StarClassLibrary/StarClassLibraryLinkDef.hh +++ b/StRoot/StarClassLibrary/StarClassLibraryLinkDef.hh @@ -80,104 +80,6 @@ #pragma link C++ class StHelix+; #pragma link C++ class StPhysicalHelix+; -#pragma link C++ function abs(const StThreeVector&); -#pragma link C++ function abs(const StThreeVector&); -#pragma link C++ function cross_product(const StThreeVector&, const StThreeVector&); -#pragma link C++ function cross_product(const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator+ (const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator+ (const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator- (const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator- (const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator* (const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator* (const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator* (const StThreeVector&, double); -#pragma link C++ function operator* (double, const StThreeVector&); -#pragma link C++ function operator/ (const StThreeVector&, double); - -#pragma link C++ function operator<<(ostream&, const StThreeVector&); -#pragma link C++ function operator>>(istream&, StThreeVector&); -#pragma link C++ function operator<<(ostream&, const StThreeVector&); -#pragma link C++ function operator>>(istream&, StThreeVector&); - -#pragma link C++ function cross_product(const StThreeVector&, const StThreeVector&); -#pragma link C++ function cross_product(const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator+ (const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator+ (const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator- (const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator- (const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator* (const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator* (const StThreeVector&, const StThreeVector&); -#pragma link C++ function operator* (const StThreeVector&, double); -#pragma link C++ function operator* (double, const StThreeVector&); -#pragma link C++ function operator/ (const StThreeVector&, double); -#pragma link C++ function operator<< (ostream&, const StLorentzVector&); -#pragma link C++ function operator+ (const StLorentzVector&, const StLorentzVector&); -#pragma link C++ function operator- (const StLorentzVector&, const StLorentzVector&); -#pragma link C++ function operator* (const StLorentzVector&, const StLorentzVector&); -#pragma link C++ function operator* (const StLorentzVector&, double); -#pragma link C++ function operator* (double, const StLorentzVector&); -#pragma link C++ function operator/ (const StLorentzVector&, double); -#pragma link C++ function abs(const StLorentzVector&); - -#pragma link C++ function operator+ (const StLorentzVector&, const StLorentzVector&); -#pragma link C++ function operator+ (const StLorentzVector&, const StLorentzVector&); -#pragma link C++ function operator+ (const StLorentzVector&, const StLorentzVector&); -#pragma link C++ function operator- (const StLorentzVector&, const StLorentzVector&); -#pragma link C++ function operator- (const StLorentzVector&, const StLorentzVector&); -#pragma link C++ function operator- (const StLorentzVector&, const StLorentzVector&); -#pragma link C++ function operator<< (ostream&, const StLorentzVector&); -#pragma link C++ function operator* (const StLorentzVector&, const StLorentzVector&); -#pragma link C++ function operator* (const StLorentzVector&, const StLorentzVector&); -#pragma link C++ function operator* (const StLorentzVector&, const StLorentzVector&); -#pragma link C++ function operator* (const StLorentzVector&, double); -#pragma link C++ function operator* (double, const StLorentzVector&); -#pragma link C++ function operator/ (const StLorentzVector&, double); -#pragma link C++ function abs(const StLorentzVector&); - -#pragma link C++ function operator*(const StMatrix&,const StMatrix&); -#pragma link C++ function operator*(const StMatrix&, const StThreeVector&); -#pragma link C++ function operator*(const StMatrix&, const StThreeVector&); -#pragma link C++ function operator*(const StThreeVector&, const StMatrix&); -#pragma link C++ function operator*(const StThreeVector&, const StMatrix&); -#pragma link C++ function operator*(const StMatrix&, const StLorentzVector&); -#pragma link C++ function operator*(const StMatrix&, const StLorentzVector&); -#pragma link C++ function operator*(const StLorentzVector&, const StMatrix&); -#pragma link C++ function operator*(const StLorentzVector&, const StMatrix&); -#pragma link C++ function operator+(const StMatrix&,const StMatrix&); -#pragma link C++ function operator-(const StMatrix&,const StMatrix&); -#pragma link C++ function operator<<(ostream&, const StMatrix&); -#pragma link C++ function norm_infinity(const StMatrix&); -#pragma link C++ function normInfinity(const StMatrix&); -#pragma link C++ function norm1(const StMatrix&); - -#pragma link C++ function operator*(const StMatrix&,const StMatrix&); -#pragma link C++ function operator*(const StMatrix&,const StMatrix&); -#pragma link C++ function operator*(const StMatrix&,const StMatrix&); -#pragma link C++ function operator*(const StMatrix&, const StThreeVector&); -#pragma link C++ function operator*(const StMatrix&, const StThreeVector&); -#pragma link C++ function operator*(const StThreeVector&, const StMatrix&); -#pragma link C++ function operator*(const StThreeVector&, const StMatrix&); -#pragma link C++ function operator*(const StMatrix&, const StLorentzVector&); -#pragma link C++ function operator*(const StMatrix&, const StLorentzVector&); -#pragma link C++ function operator*(const StLorentzVector&, const StMatrix&); -#pragma link C++ function operator*(const StLorentzVector&, const StMatrix&); -#pragma link C++ function operator+(const StMatrix&,const StMatrix&); -#pragma link C++ function operator+(const StMatrix&,const StMatrix&); -#pragma link C++ function operator+(const StMatrix&,const StMatrix&); -#pragma link C++ function operator-(const StMatrix&,const StMatrix&); -#pragma link C++ function operator-(const StMatrix&,const StMatrix&); -#pragma link C++ function operator-(const StMatrix&,const StMatrix&); -#pragma link C++ function operator<<(ostream&, const StMatrix&); -#pragma link C++ function norm_infinity(const StMatrix&); -#pragma link C++ function normInfinity(const StMatrix&); -#pragma link C++ function norm1(const StMatrix&); - -#pragma link C++ function operator== (const StHelix&, const StHelix&); -#pragma link C++ function operator!= (const StHelix&, const StHelix&); -#pragma link C++ function operator<<(ostream&, const StHelix&); -//IncFile=StThreeVector.hh -//IncFile=StThreeVectorF.hh -//IncFile=StThreeVectorD.hh //IncFile=StLorentzVector.hh //IncFile=StLorentzVectorF.hh //IncFile=StLorentzVectorD.hh diff --git a/StRoot/StarRoot/KFParticle.cxx b/StRoot/StarRoot/KFParticle.cxx deleted file mode 100644 index d082882d216..00000000000 --- a/StRoot/StarRoot/KFParticle.cxx +++ /dev/null @@ -1,350 +0,0 @@ -//---------------------------------------------------------------------------- -// Implementation of the KFParticle class -// . -// @author S.Gorbunov, I.Kisel -// @version 1.0 -// @since 13.05.07 -// -// Class to reconstruct and store the decayed particle parameters. -// The method is described in CBM-SOFT note 2007-003, -// ``Reconstruction of decayed particles based on the Kalman filter'', -// http://www.gsi.de/documents/DOC-2007-May-14-1.pdf -// -// This class is ALICE interface to general mathematics in KFParticleCore -// -// -= Copyright © ALICE HLT Group =- -//____________________________________________________________________________ - - -#include "KFParticle.h" -#include "TDatabasePDG.h" -#include "TParticlePDG.h" -#include "MTrack.h" -#include "MVertex.h" -ClassImp(KFParticle); - -Double_t KFParticle::fgBz = -5.; //* Bz compoment of the magnetic field - -void KFParticle::Create( const Double_t Param[], const Double_t Cov[], Int_t Charge, Int_t PID ) -{ - // Constructor from "cartesian" track, PID hypothesis should be provided - // - // Param[6] = { X, Y, Z, Px, Py, Pz } - position and momentum - // Cov [21] = lower-triangular part of the covariance matrix: - // - // ( 0 . . . . . ) - // ( 1 2 . . . . ) - // Cov. matrix = ( 3 4 5 . . . ) - numbering of covariance elements in Cov[] - // ( 6 7 8 9 . . ) - // ( 10 11 12 13 14 . ) - // ( 15 16 17 18 19 20 ) - Double_t C[21]; - for( int i=0; i<21; i++ ) C[i] = Cov[i]; - - TParticlePDG* particlePDG = TDatabasePDG::Instance()->GetParticle(PID); - Double_t mass = (particlePDG) ? particlePDG->Mass() :0.13957; - - KFParticleBase::Initialize( Param, C, Charge, mass, PID ); -} - -KFParticle::KFParticle( const MTrack &track, Int_t PID ) -{ - // Constructor from ALICE track, PID hypothesis should be provided - - track.XvYvZv(fP); - track.PxPyPz(fP+3); - fQ = track.Charge(); - track.GetCovarianceXYZPxPyPz( fC ); - Create(fP,fC,fQ,PID); -} - -KFParticle::KFParticle( const MVertex &vertex ) -{ - // Constructor from ALICE vertex - - vertex.GetXYZ( fP ); - vertex.GetCovarianceMatrix( fC ); - fChi2 = vertex.GetChi2(); - fNDF = 2*vertex.GetNContributors() - 3; - fQ = 0; - fAtProductionVertex = 0; - fIsLinearized = 0; - fSFromDecay = 0; -} - -void KFParticle::GetExternalTrackParam( const KFParticleBase &p, Double_t &X, Double_t &Alpha, Double_t P[5] ) -{ - // Conversion to AliExternalTrackParam parameterization - - Double_t cosA = p.GetPx(), sinA = p.GetPy(); - Double_t pt = TMath::Sqrt(cosA*cosA + sinA*sinA); - Double_t pti = 0; - if( pt<1.e-4 ){ - cosA = 1; - sinA = 0; - } else { - pti = 1./pt; - cosA*=pti; - sinA*=pti; - } - Alpha = TMath::ATan2(sinA,cosA); - X = p.GetX()*cosA + p.GetY()*sinA; - P[0]= p.GetY()*cosA - p.GetX()*sinA; - P[1]= p.GetZ(); - P[2]= 0; - P[3]= p.GetPz()*pti; - P[4]= p.GetQ()*pti; -} - -Bool_t KFParticle::GetDistanceFromVertexXY( const Double_t vtx[], const Double_t Cv[], Double_t &val, Double_t &err ) const -{ - //* Calculate DCA distance from vertex (transverse impact parameter) in XY - //* v = [xy], Cv=[Cxx,Cxy,Cyy ]-covariance matrix - - Bool_t ret = 0; - - Double_t mP[8]; - Double_t mC[36]; - - Transport( GetDStoPoint(vtx), mP, mC ); - - Double_t dx = mP[0] - vtx[0]; - Double_t dy = mP[1] - vtx[1]; - Double_t px = mP[3]; - Double_t py = mP[4]; - Double_t pt = TMath::Sqrt(px*px + py*py); - Double_t ex=0, ey=0; - if( pt<1.e-4 ){ - ret = 1; - pt = 1.; - val = 1.e4; - } else{ - ex = px/pt; - ey = py/pt; - val = dy*ex - dx*ey; - } - - Double_t h0 = -ey; - Double_t h1 = ex; - Double_t h3 = (dy*ey + dx*ex)*ey/pt; - Double_t h4 = -(dy*ey + dx*ex)*ex/pt; - - err = - h0*(h0*GetCovariance(0,0) + h1*GetCovariance(0,1) + h3*GetCovariance(0,3) + h4*GetCovariance(0,4) ) + - h1*(h0*GetCovariance(1,0) + h1*GetCovariance(1,1) + h3*GetCovariance(1,3) + h4*GetCovariance(1,4) ) + - h3*(h0*GetCovariance(3,0) + h1*GetCovariance(3,1) + h3*GetCovariance(3,3) + h4*GetCovariance(3,4) ) + - h4*(h0*GetCovariance(4,0) + h1*GetCovariance(4,1) + h3*GetCovariance(4,3) + h4*GetCovariance(4,4) ); - - if( Cv ){ - err+= h0*(h0*Cv[0] + h1*Cv[1] ) + h1*(h0*Cv[1] + h1*Cv[2] ); - } - - err = TMath::Sqrt(TMath::Abs(err)); - - return ret; -} - -Bool_t KFParticle::GetDistanceFromVertexXY( const Double_t vtx[], Double_t &val, Double_t &err ) const -{ - return GetDistanceFromVertexXY( vtx, 0, val, err ); -} - - -Bool_t KFParticle::GetDistanceFromVertexXY( const KFParticle &Vtx, Double_t &val, Double_t &err ) const -{ - //* Calculate distance from vertex [cm] in XY-plane - - return GetDistanceFromVertexXY( Vtx.fP, Vtx.fC, val, err ); -} - -Bool_t KFParticle::GetDistanceFromVertexXY( const MVertex &Vtx, Double_t &val, Double_t &err ) const -{ - //* Calculate distance from vertex [cm] in XY-plane - - return GetDistanceFromVertexXY( KFParticle(Vtx), val, err ); -} - -Double_t KFParticle::GetDistanceFromVertexXY( const Double_t vtx[] ) const -{ - //* Calculate distance from vertex [cm] in XY-plane - Double_t val, err; - GetDistanceFromVertexXY( vtx, 0, val, err ); - return val; -} - -Double_t KFParticle::GetDistanceFromVertexXY( const KFParticle &Vtx ) const -{ - //* Calculate distance from vertex [cm] in XY-plane - - return GetDistanceFromVertexXY( Vtx.fP ); -} - -Double_t KFParticle::GetDistanceFromVertexXY( const MVertex &Vtx ) const -{ - //* Calculate distance from vertex [cm] in XY-plane - - return GetDistanceFromVertexXY( KFParticle(Vtx).fP ); -} - -Double_t KFParticle::GetDistanceFromParticleXY( const KFParticle &p ) const -{ - //* Calculate distance to other particle [cm] - - Double_t dS, dS1; - GetDStoParticleXY( p, dS, dS1 ); - Double_t mP[8], mC[36], mP1[8], mC1[36]; - Transport( dS, mP, mC ); - p.Transport( dS1, mP1, mC1 ); - Double_t dx = mP[0]-mP1[0]; - Double_t dy = mP[1]-mP1[1]; - return TMath::Sqrt(dx*dx+dy*dy); -} - -Double_t KFParticle::GetDeviationFromParticleXY( const KFParticle &p ) const -{ - //* Calculate sqrt(Chi2/ndf) deviation from other particle - - Double_t dS, dS1; - GetDStoParticleXY( p, dS, dS1 ); - Double_t mP1[8], mC1[36]; - p.Transport( dS1, mP1, mC1 ); - - Double_t d[2]={ fP[0]-mP1[0], fP[1]-mP1[1] }; - - Double_t sigmaS = .1+10.*TMath::Sqrt( (d[0]*d[0]+d[1]*d[1] )/ - (mP1[3]*mP1[3]+mP1[4]*mP1[4] ) ); - - Double_t h[2] = { mP1[3]*sigmaS, mP1[4]*sigmaS }; - - mC1[0] +=h[0]*h[0]; - mC1[1] +=h[1]*h[0]; - mC1[2] +=h[1]*h[1]; - - return GetDeviationFromVertexXY( mP1, mC1 )*TMath::Sqrt(2./1.); -} - - -Double_t KFParticle::GetDeviationFromVertexXY( const Double_t vtx[], const Double_t Cv[] ) const -{ - //* Calculate sqrt(Chi2/ndf) deviation from vertex - //* v = [xyz], Cv=[Cxx,Cxy,Cyy,Cxz,Cyz,Czz]-covariance matrix - - Double_t val, err; - Bool_t problem = GetDistanceFromVertexXY( vtx, Cv, val, err ); - if( problem || err<1.e-20 ) return 1.e4; - else return val/err; -} - - -Double_t KFParticle::GetDeviationFromVertexXY( const KFParticle &Vtx ) const -{ - //* Calculate sqrt(Chi2/ndf) deviation from vertex - //* v = [xyz], Cv=[Cxx,Cxy,Cyy,Cxz,Cyz,Czz]-covariance matrix - - return GetDeviationFromVertexXY( Vtx.fP, Vtx.fC ); -} - -Double_t KFParticle::GetDeviationFromVertexXY( const MVertex &Vtx ) const -{ - //* Calculate sqrt(Chi2/ndf) deviation from vertex - //* v = [xyz], Cv=[Cxx,Cxy,Cyy,Cxz,Cyz,Czz]-covariance matrix - - KFParticle v(Vtx); - return GetDeviationFromVertexXY( v.fP, v.fC ); -} - -Double_t KFParticle::GetAngle ( const KFParticle &p ) const -{ - //* Calculate the opening angle between two particles - - Double_t dS, dS1; - GetDStoParticle( p, dS, dS1 ); - Double_t mP[8], mC[36], mP1[8], mC1[36]; - Transport( dS, mP, mC ); - p.Transport( dS1, mP1, mC1 ); - Double_t n = TMath::Sqrt( mP[3]*mP[3] + mP[4]*mP[4] + mP[5]*mP[5] ); - Double_t n1= TMath::Sqrt( mP1[3]*mP1[3] + mP1[4]*mP1[4] + mP1[5]*mP1[5] ); - n*=n1; - Double_t a = 0; - if( n>1.e-8 ) a = ( mP[3]*mP1[3] + mP[4]*mP1[4] + mP[5]*mP1[5] )/n; - if (TMath::Abs(a)<1.) a = TMath::ACos(a); - else a = (a>=0) ?0 :TMath::Pi(); - return a; -} - -Double_t KFParticle::GetAngleXY( const KFParticle &p ) const -{ - //* Calculate the opening angle between two particles in XY plane - - Double_t dS, dS1; - GetDStoParticleXY( p, dS, dS1 ); - Double_t mP[8], mC[36], mP1[8], mC1[36]; - Transport( dS, mP, mC ); - p.Transport( dS1, mP1, mC1 ); - Double_t n = TMath::Sqrt( mP[3]*mP[3] + mP[4]*mP[4] ); - Double_t n1= TMath::Sqrt( mP1[3]*mP1[3] + mP1[4]*mP1[4] ); - n*=n1; - Double_t a = 0; - if( n>1.e-8 ) a = ( mP[3]*mP1[3] + mP[4]*mP1[4] )/n; - if (TMath::Abs(a)<1.) a = TMath::ACos(a); - else a = (a>=0) ?0 :TMath::Pi(); - return a; -} - -Double_t KFParticle::GetAngleRZ( const KFParticle &p ) const -{ - //* Calculate the opening angle between two particles in RZ plane - - Double_t dS, dS1; - GetDStoParticle( p, dS, dS1 ); - Double_t mP[8], mC[36], mP1[8], mC1[36]; - Transport( dS, mP, mC ); - p.Transport( dS1, mP1, mC1 ); - Double_t nr = TMath::Sqrt( mP[3]*mP[3] + mP[4]*mP[4] ); - Double_t n1r= TMath::Sqrt( mP1[3]*mP1[3] + mP1[4]*mP1[4] ); - Double_t n = TMath::Sqrt( nr*nr + mP[5]*mP[5] ); - Double_t n1= TMath::Sqrt( n1r*n1r + mP1[5]*mP1[5] ); - n*=n1; - Double_t a = 0; - if( n>1.e-8 ) a = ( nr*n1r +mP[5]*mP1[5])/n; - if (TMath::Abs(a)<1.) a = TMath::ACos(a); - else a = (a>=0) ?0 :TMath::Pi(); - return a; -} - - -/* - -#include "AliExternalTrackParam.h" - -void KFParticle::GetDStoParticleALICE( const KFParticleBase &p, - Double_t &DS, Double_t &DS1 ) - const -{ - DS = DS1 = 0; - Double_t x1, a1, x2, a2; - Double_t par1[5], par2[5], cov[15]; - for(int i=0; i<15; i++) cov[i] = 0; - cov[0] = cov[2] = cov[5] = cov[9] = cov[14] = .001; - - GetExternalTrackParam( *this, x1, a1, par1 ); - GetExternalTrackParam( p, x2, a2, par2 ); - - AliExternalTrackParam t1(x1,a1, par1, cov); - AliExternalTrackParam t2(x2,a2, par2, cov); - - Double_t xe1=0, xe2=0; - t1.GetDCA( &t2, -GetFieldAlice(), xe1, xe2 ); - t1.PropagateTo( xe1, -GetFieldAlice() ); - t2.PropagateTo( xe2, -GetFieldAlice() ); - - Double_t xyz1[3], xyz2[3]; - t1.GetXYZ( xyz1 ); - t2.GetXYZ( xyz2 ); - - DS = GetDStoPoint( xyz1 ); - DS1 = p.GetDStoPoint( xyz2 ); - - return; -} -*/ diff --git a/StRoot/StarRoot/KFParticle.h b/StRoot/StarRoot/KFParticle.h deleted file mode 100644 index 7b9bce99987..00000000000 --- a/StRoot/StarRoot/KFParticle.h +++ /dev/null @@ -1,916 +0,0 @@ -//--------------------------------------------------------------------------------- -// The KFParticle class -// . -// @author S.Gorbunov, I.Kisel -// @version 1.0 -// @since 13.05.07 -// -// Class to reconstruct and store the decayed particle parameters. -// The method is described in CBM-SOFT note 2007-003, -// ``Reconstruction of decayed particles based on the Kalman filter'', -// http://www.gsi.de/documents/DOC-2007-May-14-1.pdf -// -// This class is ALICE interface to general mathematics in KFParticleBase -// -// -= Copyright © ALICE HLT Group =- -//_________________________________________________________________________________ - -#ifndef KFParticle_H -#define KFParticle_H - -#include "KFParticleBase.h" -#include "TMath.h" - -class MTrack; -class MVertex; - -class KFParticle :public KFParticleBase -{ - - public: - - //* - //* INITIALIZATION - //* - - //* Set magnetic field for all particles - - static void SetField( Double_t Bz ); - - //* Constructor (empty) - - KFParticle():KFParticleBase(){ ; } - - //* Destructor (empty) - - ~KFParticle(){ ; } - - //* Construction of mother particle by its 2-3-4 daughters - - KFParticle( const KFParticle &d1, const KFParticle &d2 ); - - KFParticle( const KFParticle &d1, const KFParticle &d2, - const KFParticle &d3 ); - - KFParticle( const KFParticle &d1, const KFParticle &d2, - const KFParticle &d3, const KFParticle &d4 ); - - //* Initialisation from "cartesian" coordinates ( X Y Z Px Py Pz ) - //* Parameters, covariance matrix, charge and PID hypothesis should be provided - - void Create( const Double_t Param[], const Double_t Cov[], Int_t Charge, Int_t PID ); - - //* Initialisation from ALICE track, PID hypothesis shoould be provided - - KFParticle( const MTrack &track, Int_t PID ); - virtual void Clear(Option_t *option ="") {KFParticleBase::Clear(option);} - - //* Initialisation from VVertex - KFParticle( const MVertex &vertex ); - //* Initialise covariance matrix and set current parameters to 0.0 -#if 0 - void Initialize(); -#endif - - //* Set decay vertex parameters for linearisation - - void SetVtxGuess( Double_t x, Double_t y, Double_t z ); - - //* - //* ACCESSORS - //* - - //* Simple accessors - - Double_t GetX () const ; //* x of current position - Double_t GetY () const ; //* y of current position - Double_t GetZ () const ; //* z of current position - Double_t GetPx () const ; //* x-compoment of 3-momentum - Double_t GetPy () const ; //* y-compoment of 3-momentum - Double_t GetPz () const ; //* z-compoment of 3-momentum - Double_t GetE () const ; //* energy - Double_t GetS () const ; //* decay length / momentum - Short_t GetQ () const ; //* charge - Double_t GetChi2 () const ; //* chi^2 - Short_t GetNDF () const ; //* Number of Degrees of Freedom - Double_t GetParameter ( Int_t i ) const ; - Double_t GetCovariance( Int_t i ) const ; - Double_t GetCovariance( Int_t i, Int_t j ) const ; - //* Accessors with calculations, value returned w/o error flag - - Double_t GetP () const; //* momentum - Double_t GetPt () const; //* transverse momentum - Double_t GetEta () const; //* pseudorapidity - Double_t GetPhi () const; //* phi - Double_t GetMomentum () const; //* momentum (same as GetP() ) - Double_t GetMass () const; //* mass - Double_t GetDecayLength () const; //* decay length - Double_t GetDecayLengthXY () const; //* decay length in XY - Double_t GetLifeTime () const; //* life time - Double_t GetR () const; //* distance to the origin - - //* Accessors to estimated errors - - Double_t GetErrX () const ; //* x of current position - Double_t GetErrY () const ; //* y of current position - Double_t GetErrZ () const ; //* z of current position - Double_t GetErrPx () const ; //* x-compoment of 3-momentum - Double_t GetErrPy () const ; //* y-compoment of 3-momentum - Double_t GetErrPz () const ; //* z-compoment of 3-momentum - Double_t GetErrE () const ; //* energy - Double_t GetErrS () const ; //* decay length / momentum - Double_t GetErrP () const ; //* momentum - Double_t GetErrPt () const ; //* transverse momentum - Double_t GetErrEta () const ; //* pseudorapidity - Double_t GetErrPhi () const ; //* phi - Double_t GetErrMomentum () const ; //* momentum - Double_t GetErrMass () const ; //* mass - Double_t GetErrDecayLength () const ; //* decay length - Double_t GetErrDecayLengthXY () const ; //* decay length in XY - Double_t GetErrLifeTime () const ; //* life time - Double_t GetErrR () const ; //* distance to the origin - - //* Accessors with calculations( &value, &estimated sigma ) - //* error flag returned (0 means no error during calculations) - - Int_t GetP ( Double_t &P, Double_t &SigmaP ) const ; //* momentum - Int_t GetPt ( Double_t &Pt, Double_t &SigmaPt ) const ; //* transverse momentum - Int_t GetEta ( Double_t &Eta, Double_t &SigmaEta ) const ; //* pseudorapidity - Int_t GetPhi ( Double_t &Phi, Double_t &SigmaPhi ) const ; //* phi - Int_t GetMomentum ( Double_t &P, Double_t &SigmaP ) const ; //* momentum - Int_t GetMass ( Double_t &M, Double_t &SigmaM ) const ; //* mass - Int_t GetDecayLength ( Double_t &L, Double_t &SigmaL ) const ; //* decay length - Int_t GetDecayLengthXY ( Double_t &L, Double_t &SigmaL ) const ; //* decay length in XY - Int_t GetLifeTime ( Double_t &T, Double_t &SigmaT ) const ; //* life time - Int_t GetR ( Double_t &R, Double_t &SigmaR ) const ; //* R - - - //* - //* MODIFIERS - //* - - Double_t & X () ; - Double_t & Y () ; - Double_t & Z () ; - Double_t & Px () ; - Double_t & Py () ; - Double_t & Pz () ; - Double_t & E () ; - Double_t & S () ; - Short_t & Q () ; - Double_t & Chi2 () ; - Short_t & NDF () ; - - Double_t & Parameter ( Int_t i ) ; - Double_t & Covariance( Int_t i ) ; - Double_t & Covariance( Int_t i, Int_t j ) ; - Double_t * Parameters () ; - Double_t * CovarianceMatrix() ; - - //* - //* CONSTRUCTION OF THE PARTICLE BY ITS DAUGHTERS AND MOTHER - //* USING THE KALMAN FILTER METHOD - //* - - //* Add daughter to the particle - - void AddDaughter( const KFParticle &Daughter ); - - //* Add daughter via += operator: ex.{ D0; D0+=Pion; D0+= Kaon; } - - void operator +=( const KFParticle &Daughter ); - - //* Set production vertex - - void SetProductionVertex( const KFParticle &Vtx ); - - //* Set mass constraint - - void SetMassConstraint( Double_t Mass, Double_t SigmaMass = 0 ); - - //* Set no decay length for resonances - - void SetNoDecayLength(); - - //* Everything in one go - - void Construct( const KFParticle *vDaughters[], Int_t NDaughters, - const KFParticle *ProdVtx=0, Double_t Mass=-1, Bool_t IsConstrained=0 ); - - //* - //* TRANSPORT - //* - //* ( main transportation parameter is S = SignedPath/Momentum ) - //* ( parameters of decay & production vertices are stored locally ) - //* - - //* Transport the particle to its decay vertex - - void TransportToDecayVertex(); - - //* Transport the particle to its production vertex - - void TransportToProductionVertex(); - - //* Transport the particle close to xyz[] point - - void TransportToPoint( const Double_t xyz[] ); - - //* Transport the particle close to VVertex - - void TransportToVertex( const MVertex &v ); - - //* Transport the particle close to another particle p - - void TransportToParticle( const KFParticle &p ); - - //* Transport the particle on dS parameter (SignedPath/Momentum) - - void TransportToDS( Double_t dS ); - - //* Get dS to a certain space point - - Double_t GetDStoPoint( const Double_t xyz[] ) const ; - - //* Get dS to other particle p (dSp for particle p also returned) - - void GetDStoParticle( const KFParticle &p, - Double_t &DS, Double_t &DSp ) const ; - - //* Get dS to other particle p in XY-plane - - void GetDStoParticleXY( const KFParticleBase &p, - Double_t &DS, Double_t &DSp ) const ; - - //* - //* OTHER UTILITIES - //* - - - //* Calculate distance from another object [cm] - - Double_t GetDistanceFromVertex( const Double_t vtx[] ) const ; - Double_t GetDistanceFromVertex( const KFParticle &Vtx ) const ; - Double_t GetDistanceFromVertex( const MVertex &Vtx ) const ; - Double_t GetDistanceFromParticle( const KFParticle &p ) const ; - //* Calculate sqrt(Chi2/ndf) deviation from another object - //* ( v = [xyz]-vertex, Cv=[Cxx,Cxy,Cyy,Cxz,Cyz,Czz]-covariance matrix ) - - Double_t GetDeviationFromVertex( const Double_t v[], const Double_t Cv[]=0 ) const ; - Double_t GetDeviationFromVertex( const KFParticle &Vtx ) const ; - Double_t GetDeviationFromVertex( const MVertex &Vtx ) const ; - Double_t GetDeviationFromParticle( const KFParticle &p ) const ; - - //* Calculate distance from another object [cm] in XY-plane - - Bool_t GetDistanceFromVertexXY( const Double_t vtx[], Double_t &val, Double_t &err ) const ; - Bool_t GetDistanceFromVertexXY( const Double_t vtx[], const Double_t Cv[], Double_t &val, Double_t &err ) const ; - Bool_t GetDistanceFromVertexXY( const KFParticle &Vtx, Double_t &val, Double_t &err ) const ; - Bool_t GetDistanceFromVertexXY( const MVertex &Vtx, Double_t &val, Double_t &err ) const ; - - Double_t GetDistanceFromVertexXY( const Double_t vtx[] ) const ; - Double_t GetDistanceFromVertexXY( const KFParticle &Vtx ) const ; - Double_t GetDistanceFromVertexXY( const MVertex &Vtx ) const ; - Double_t GetDistanceFromParticleXY( const KFParticle &p ) const ; - - //* Calculate sqrt(Chi2/ndf) deviation from another object in XY plane - //* ( v = [xyz]-vertex, Cv=[Cxx,Cxy,Cyy,Cxz,Cyz,Czz]-covariance matrix ) - - Double_t GetDeviationFromVertexXY( const Double_t v[], const Double_t Cv[]=0 ) const ; - Double_t GetDeviationFromVertexXY( const KFParticle &Vtx ) const ; - Double_t GetDeviationFromVertexXY( const MVertex &Vtx ) const ; - Double_t GetDeviationFromParticleXY( const KFParticle &p ) const ; - - //* Calculate opennig angle between two particles - - Double_t GetAngle ( const KFParticle &p ) const ; - Double_t GetAngleXY( const KFParticle &p ) const ; - Double_t GetAngleRZ( const KFParticle &p ) const ; - - //* Subtract the particle from the vertex - - void SubtractFromVertex( KFParticle &v ) const ; - - //* Special method for creating gammas - - void ConstructGamma( const KFParticle &daughter1, - const KFParticle &daughter2 ); - protected: - - //* - //* INTERNAL STUFF - //* - - //* Method to access ALICE field - - static Double_t GetFieldAlice(); - - //* Other methods required by the abstract KFParticleBase class - - void GetFieldValue( const Double_t xyz[], Double_t B[] ) const ; - void GetDStoParticle( const KFParticleBase &p, Double_t &DS, Double_t &DSp )const ; - void Transport( Double_t dS, Double_t P[], Double_t C[] ) const ; - static void GetExternalTrackParam( const KFParticleBase &p, Double_t &X, Double_t &Alpha, Double_t P[5] ) ; - - //void GetDStoParticleALICE( const KFParticleBase &p, Double_t &DS, Double_t &DS1 ) const; - - - private: - - static Double32_t fgBz; //! * Bz compoment of the magnetic field - - - ClassDef(KFParticle,1) -}; -#ifndef __CINT__ - - -//--------------------------------------------------------------------- -// -// Inline implementation of the KFParticle methods -// -//--------------------------------------------------------------------- - - -inline void KFParticle::SetField( Double_t Bz ) -{ - fgBz = Bz;//!!! -} - - -inline KFParticle::KFParticle( const KFParticle &d1, - const KFParticle &d2 ) -{ - KFParticle mother; - mother+= d1; - mother+= d2; - *this = mother; -} - -inline KFParticle::KFParticle( const KFParticle &d1, - const KFParticle &d2, - const KFParticle &d3 ) -{ - KFParticle mother; - mother+= d1; - mother+= d2; - mother+= d3; - *this = mother; -} - -inline KFParticle::KFParticle( const KFParticle &d1, - const KFParticle &d2, - const KFParticle &d3, - const KFParticle &d4 ) -{ - KFParticle mother; - mother+= d1; - mother+= d2; - mother+= d3; - mother+= d4; - *this = mother; -} -#if 0 -inline void KFParticle::Initialize() -{ - KFParticleBase::Initialize(); -} -#endif -inline void KFParticle::SetVtxGuess( Double_t x, Double_t y, Double_t z ) -{ - KFParticleBase::SetVtxGuess(x,y,z); -} - -inline Double_t KFParticle::GetX () const -{ - return KFParticleBase::GetX(); -} - -inline Double_t KFParticle::GetY () const -{ - return KFParticleBase::GetY(); -} - -inline Double_t KFParticle::GetZ () const -{ - return KFParticleBase::GetZ(); -} - -inline Double_t KFParticle::GetPx () const -{ - return KFParticleBase::GetPx(); -} - -inline Double_t KFParticle::GetPy () const -{ - return KFParticleBase::GetPy(); -} - -inline Double_t KFParticle::GetPz () const -{ - return KFParticleBase::GetPz(); -} - -inline Double_t KFParticle::GetE () const -{ - return KFParticleBase::GetE(); -} - -inline Double_t KFParticle::GetS () const -{ - return KFParticleBase::GetS(); -} - -inline Short_t KFParticle::GetQ () const -{ - return KFParticleBase::GetQ(); -} - -inline Double_t KFParticle::GetChi2 () const -{ - return KFParticleBase::GetChi2(); -} - -inline Short_t KFParticle::GetNDF () const -{ - return KFParticleBase::GetNDF(); -} -inline Double_t KFParticle::GetParameter ( Int_t i ) const -{ - return KFParticleBase::GetParameter(i); -} - -inline Double_t KFParticle::GetCovariance( Int_t i ) const -{ - return KFParticleBase::GetCovariance(i); -} - -inline Double_t KFParticle::GetCovariance( Int_t i, Int_t j ) const -{ - return KFParticleBase::GetCovariance(i,j); -} - -inline Double_t KFParticle::GetP () const -{ - Double_t par, err; - if( KFParticleBase::GetMomentum( par, err ) ) return 0; - else return par; -} - -inline Double_t KFParticle::GetPt () const -{ - Double_t par, err; - if( KFParticleBase::GetPt( par, err ) ) return 0; - else return par; -} - -inline Double_t KFParticle::GetEta () const -{ - Double_t par, err; - if( KFParticleBase::GetEta( par, err ) ) return 0; - else return par; -} - -inline Double_t KFParticle::GetPhi () const -{ - Double_t par, err; - if( KFParticleBase::GetPhi( par, err ) ) return 0; - else return par; -} - -inline Double_t KFParticle::GetMomentum () const -{ - Double_t par, err; - if( KFParticleBase::GetMomentum( par, err ) ) return 0; - else return par; -} - -inline Double_t KFParticle::GetMass () const -{ - Double_t par, err; - if( KFParticleBase::GetMass( par, err ) ) return 0; - else return par; -} - -inline Double_t KFParticle::GetDecayLength () const -{ - Double_t par, err; - if( KFParticleBase::GetDecayLength( par, err ) ) return 0; - else return par; -} - -inline Double_t KFParticle::GetDecayLengthXY () const -{ - Double_t par, err; - if( KFParticleBase::GetDecayLengthXY( par, err ) ) return 0; - else return par; -} - -inline Double_t KFParticle::GetLifeTime () const -{ - Double_t par, err; - if( KFParticleBase::GetLifeTime( par, err ) ) return 0; - else return par; -} - -inline Double_t KFParticle::GetR () const -{ - Double_t par, err; - if( KFParticleBase::GetR( par, err ) ) return 0; - else return par; -} - -inline Double_t KFParticle::GetErrX () const -{ - return TMath::Sqrt(TMath::Abs( GetCovariance(0,0) )); -} - -inline Double_t KFParticle::GetErrY () const -{ - return TMath::Sqrt(TMath::Abs( GetCovariance(1,1) )); -} - -inline Double_t KFParticle::GetErrZ () const -{ - return TMath::Sqrt(TMath::Abs( GetCovariance(2,2) )); -} - -inline Double_t KFParticle::GetErrPx () const -{ - return TMath::Sqrt(TMath::Abs( GetCovariance(3,3) )); -} - -inline Double_t KFParticle::GetErrPy () const -{ - return TMath::Sqrt(TMath::Abs( GetCovariance(4,4) )); -} - -inline Double_t KFParticle::GetErrPz () const -{ - return TMath::Sqrt(TMath::Abs( GetCovariance(5,5) )); -} - -inline Double_t KFParticle::GetErrE () const -{ - return TMath::Sqrt(TMath::Abs( GetCovariance(6,6) )); -} - -inline Double_t KFParticle::GetErrS () const -{ - return TMath::Sqrt(TMath::Abs( GetCovariance(7,7) )); -} - -inline Double_t KFParticle::GetErrP () const -{ - Double_t par, err; - if( KFParticleBase::GetMomentum( par, err ) ) return 1.e10; - else return err; -} - -inline Double_t KFParticle::GetErrPt () const -{ - Double_t par, err; - if( KFParticleBase::GetPt( par, err ) ) return 1.e10; - else return err; -} - -inline Double_t KFParticle::GetErrEta () const -{ - Double_t par, err; - if( KFParticleBase::GetEta( par, err ) ) return 1.e10; - else return err; -} - -inline Double_t KFParticle::GetErrPhi () const -{ - Double_t par, err; - if( KFParticleBase::GetPhi( par, err ) ) return 1.e10; - else return err; -} - -inline Double_t KFParticle::GetErrMomentum () const -{ - Double_t par, err; - if( KFParticleBase::GetMomentum( par, err ) ) return 1.e10; - else return err; -} - -inline Double_t KFParticle::GetErrMass () const -{ - Double_t par, err; - if( KFParticleBase::GetMass( par, err ) ) return 1.e10; - else return err; -} - -inline Double_t KFParticle::GetErrDecayLength () const -{ - Double_t par, err; - if( KFParticleBase::GetDecayLength( par, err ) ) return 1.e10; - else return err; -} - -inline Double_t KFParticle::GetErrDecayLengthXY () const -{ - Double_t par, err; - if( KFParticleBase::GetDecayLengthXY( par, err ) ) return 1.e10; - else return err; -} - -inline Double_t KFParticle::GetErrLifeTime () const -{ - Double_t par, err; - if( KFParticleBase::GetLifeTime( par, err ) ) return 1.e10; - else return err; -} - -inline Double_t KFParticle::GetErrR () const -{ - Double_t par, err; - if( KFParticleBase::GetR( par, err ) ) return 1.e10; - else return err; -} - -inline Int_t KFParticle::GetP( Double_t &P, Double_t &SigmaP ) const -{ - return KFParticleBase::GetMomentum( P, SigmaP ); -} -inline Int_t KFParticle::GetPt( Double_t &Pt, Double_t &SigmaPt ) const -{ - return KFParticleBase::GetPt( Pt, SigmaPt ); -} - -inline Int_t KFParticle::GetEta( Double_t &Eta, Double_t &SigmaEta ) const -{ - return KFParticleBase::GetEta( Eta, SigmaEta ); -} - -inline Int_t KFParticle::GetPhi( Double_t &Phi, Double_t &SigmaPhi ) const -{ - return KFParticleBase::GetPhi( Phi, SigmaPhi ); -} - -inline Int_t KFParticle::GetMomentum( Double_t &P, Double_t &SigmaP ) const -{ - return KFParticleBase::GetMomentum( P, SigmaP ); -} - -inline Int_t KFParticle::GetMass( Double_t &M, Double_t &SigmaM ) const -{ - return KFParticleBase::GetMass( M, SigmaM ); -} - -inline Int_t KFParticle::GetDecayLength( Double_t &L, Double_t &SigmaL ) const -{ - return KFParticleBase::GetDecayLength( L, SigmaL ); -} - -inline Int_t KFParticle::GetDecayLengthXY( Double_t &L, Double_t &SigmaL ) const -{ - return KFParticleBase::GetDecayLengthXY( L, SigmaL ); -} - -inline Int_t KFParticle::GetLifeTime( Double_t &T, Double_t &SigmaT ) const -{ - return KFParticleBase::GetLifeTime( T, SigmaT ); -} - -inline Int_t KFParticle::GetR( Double_t &R, Double_t &SigmaR ) const -{ - return KFParticleBase::GetR( R, SigmaR ); -} -inline Double_t & KFParticle::X() -{ - return KFParticleBase::X(); -} - -inline Double_t & KFParticle::Y() -{ - return KFParticleBase::Y(); -} - -inline Double_t & KFParticle::Z() -{ - return KFParticleBase::Z(); -} - -inline Double_t & KFParticle::Px() -{ - return KFParticleBase::Px(); -} - -inline Double_t & KFParticle::Py() -{ - return KFParticleBase::Py(); -} - -inline Double_t & KFParticle::Pz() -{ - return KFParticleBase::Pz(); -} - -inline Double_t & KFParticle::E() -{ - return KFParticleBase::E(); -} - -inline Double_t & KFParticle::S() -{ - return KFParticleBase::S(); -} - -inline Short_t & KFParticle::Q() -{ - return KFParticleBase::Q(); -} - -inline Double_t & KFParticle::Chi2() -{ - return KFParticleBase::Chi2(); -} - -inline Short_t & KFParticle::NDF() -{ - return KFParticleBase::NDF(); -} - -inline Double_t & KFParticle::Parameter ( Int_t i ) -{ - return KFParticleBase::Parameter(i); -} - -inline Double_t & KFParticle::Covariance( Int_t i ) -{ - return KFParticleBase::Covariance(i); -} - -inline Double_t & KFParticle::Covariance( Int_t i, Int_t j ) -{ - return KFParticleBase::Covariance(i,j); -} -inline Double_t * KFParticle::Parameters () -{ - return fP; -} - -inline Double_t * KFParticle::CovarianceMatrix() -{ - return fC; -} - -inline void KFParticle::operator +=( const KFParticle &Daughter ) -{ - KFParticleBase::operator +=( Daughter ); -} - - -inline void KFParticle::AddDaughter( const KFParticle &Daughter ) -{ - KFParticleBase::AddDaughter( Daughter ); -} - -inline void KFParticle::SetProductionVertex( const KFParticle &Vtx ) -{ - KFParticleBase::SetProductionVertex( Vtx ); -} - -inline void KFParticle::SetMassConstraint( Double_t Mass, Double_t SigmaMass ) -{ - KFParticleBase::SetMassConstraint( Mass, SigmaMass ); -} - -inline void KFParticle::SetNoDecayLength() -{ - KFParticleBase::SetNoDecayLength(); -} - -inline void KFParticle::Construct( const KFParticle *vDaughters[], Int_t NDaughters, - const KFParticle *ProdVtx, Double_t Mass, Bool_t IsConstrained ) -{ - KFParticleBase::Construct( ( const KFParticleBase**)vDaughters, NDaughters, - ( const KFParticleBase*)ProdVtx, Mass, IsConstrained ); -} - -inline void KFParticle::TransportToDecayVertex() -{ - KFParticleBase::TransportToDecayVertex(); -} - -inline void KFParticle::TransportToProductionVertex() -{ - KFParticleBase::TransportToProductionVertex(); -} -inline void KFParticle::TransportToPoint( const Double_t xyz[] ) -{ - TransportToDS( GetDStoPoint(xyz) ); -} - -inline void KFParticle::TransportToVertex( const MVertex &v ) -{ - TransportToPoint( KFParticle(v).fP ); -} - -inline void KFParticle::TransportToParticle( const KFParticle &p ) -{ - Double_t dS, dSp; - GetDStoParticle( p, dS, dSp ); - TransportToDS( dS ); -} - -inline void KFParticle::TransportToDS( Double_t dS ) -{ - KFParticleBase::TransportToDS( dS ); -} - -inline Double_t KFParticle::GetDStoPoint( const Double_t xyz[] ) const -{ - return KFParticleBase::GetDStoPointBz( GetFieldAlice(), xyz ); -} - - -inline void KFParticle::GetDStoParticle( const KFParticle &p, - Double_t &DS, Double_t &DSp ) const -{ - GetDStoParticleXY( p, DS, DSp ); -} - - -inline Double_t KFParticle::GetDistanceFromVertex( const Double_t vtx[] ) const -{ - return KFParticleBase::GetDistanceFromVertex( vtx ); -} - -inline Double_t KFParticle::GetDeviationFromVertex( const Double_t v[], - const Double_t Cv[] ) const -{ - return KFParticleBase::GetDeviationFromVertex( v, Cv); -} - -inline Double_t KFParticle::GetDistanceFromVertex( const KFParticle &Vtx ) const -{ - return KFParticleBase::GetDistanceFromVertex( Vtx ); -} - -inline Double_t KFParticle::GetDeviationFromVertex( const KFParticle &Vtx ) const -{ - return KFParticleBase::GetDeviationFromVertex( Vtx ); -} - -inline Double_t KFParticle::GetDistanceFromVertex( const MVertex &Vtx ) const -{ - return GetDistanceFromVertex( KFParticle(Vtx) ); -} - -inline Double_t KFParticle::GetDeviationFromVertex( const MVertex &Vtx ) const -{ - return GetDeviationFromVertex( KFParticle(Vtx) ); -} -inline Double_t KFParticle::GetDistanceFromParticle( const KFParticle &p ) const -{ - return KFParticleBase::GetDistanceFromParticle( p ); -} -inline Double_t KFParticle::GetDeviationFromParticle( const KFParticle &p ) const -{ - return KFParticleBase::GetDeviationFromParticle( p ); -} - -inline void KFParticle::SubtractFromVertex( KFParticle &v ) const -{ - KFParticleBase::SubtractFromVertex( v ); -} - -inline Double_t KFParticle::GetFieldAlice() -{ - return fgBz; -} - -inline void KFParticle::GetFieldValue( const Double_t * /*xyz*/, Double_t B[] ) const -{ - B[0] = B[1] = 0; - B[2] = GetFieldAlice(); -} - -inline void KFParticle::GetDStoParticle( const KFParticleBase &p, - Double_t &DS, Double_t &DSp )const -{ - GetDStoParticleXY( p, DS, DSp ); -} - -inline void KFParticle::GetDStoParticleXY( const KFParticleBase &p, - Double_t &DS, Double_t &DSp ) const -{ - KFParticleBase::GetDStoParticleBz( GetFieldAlice(), p, DS, DSp ) ; - //GetDStoParticleALICE( p, DS, DSp ) ; -} - -inline void KFParticle::Transport( Double_t dS, Double_t P[], Double_t C[] ) const -{ - KFParticleBase::TransportBz( GetFieldAlice(), dS, P, C ); -} - -inline void KFParticle::ConstructGamma( const KFParticle &daughter1, - const KFParticle &daughter2 ) -{ - KFParticleBase::ConstructGammaBz( daughter1, daughter2, GetFieldAlice() ); -} -#endif /* ! __CINT__ */ -#endif diff --git a/StRoot/StarRoot/KFParticleBase.cxx b/StRoot/StarRoot/KFParticleBase.cxx deleted file mode 100644 index 7003f96b52c..00000000000 --- a/StRoot/StarRoot/KFParticleBase.cxx +++ /dev/null @@ -1,2261 +0,0 @@ -//--------------------------------------------------------------------------------- -// Implementation of the KFParticleBase class -// . -// @author S.Gorbunov, I.Kisel -// @version 1.0 -// @since 13.05.07 -// -// Class to reconstruct and store the decayed particle parameters. -// The method is described in CBM-SOFT note 2007-003, -// ``Reconstruction of decayed particles based on the Kalman filter'', -// http://www.gsi.de/documents/DOC-2007-May-14-1.pdf -// -// This class describes general mathematics which is used by KFParticle class -// -// -= Copyright © ALICE HLT Group =- -//_________________________________________________________________________________ - -#include -#include "KFParticleBase.h" -#include "TMath.h" -#include "Riostream.h" -#include "TString.h" -#include "TRSymMatrix.h" -#include "TRVector.h" -ClassImp(KFParticleBase); -static Int_t _debug = 0; - - -KFParticleBase::KFParticleBase() :fID(0), fParentID(0), fQ(0), fNDF(-3), fChi2(0), fSFromDecay(0), fAtProductionVertex(0), fIsLinearized(0), - fIdTruth(0), fQuality(0), fIdParentMcVx(0), fPDG(0) -{ - //* Constructor - Clear(); - Initialize(); -} - -void KFParticleBase::Initialize( const Double_t Param[], const Double_t Cov[], Int_t Charge, Double_t Mass, Int_t PID ) -{ - // Constructor from "cartesian" track, particle mass hypothesis should be provided - // - // Param[6] = { X, Y, Z, Px, Py, Pz } - position and momentum - // Cov [21] = lower-triangular part of the covariance matrix: - // - // ( 0 . . . . . ) - // ( 1 2 . . . . ) - // Cov. matrix = ( 3 4 5 . . . ) - numbering of covariance elements in Cov[] - // ( 6 7 8 9 . . ) - // ( 10 11 12 13 14 . ) - // ( 15 16 17 18 19 20 ) - fPDG = PID; - for( Int_t i=0; i<6 ; i++ ) fP[i] = Param[i]; - for( Int_t i=0; i<21; i++ ) fC[i] = Cov[i]; - - Double_t energy = TMath::Sqrt( Mass*Mass + fP[3]*fP[3] + fP[4]*fP[4] + fP[5]*fP[5]); - fP[6] = energy; - fP[7] = 0; - fQ = Charge; - fNDF = 0; - fChi2 = 0; - fAtProductionVertex = 0; - fIsLinearized = 0; - fSFromDecay = 0; - - Double_t energyInv = 1./energy; - Double_t - h0 = fP[3]*energyInv, - h1 = fP[4]*energyInv, - h2 = fP[5]*energyInv; - - fC[21] = h0*fC[ 6] + h1*fC[10] + h2*fC[15]; - fC[22] = h0*fC[ 7] + h1*fC[11] + h2*fC[16]; - fC[23] = h0*fC[ 8] + h1*fC[12] + h2*fC[17]; - fC[24] = h0*fC[ 9] + h1*fC[13] + h2*fC[18]; - fC[25] = h0*fC[13] + h1*fC[14] + h2*fC[19]; - fC[26] = h0*fC[18] + h1*fC[19] + h2*fC[20]; - fC[27] = ( h0*h0*fC[ 9] + h1*h1*fC[14] + h2*h2*fC[20] - + 2*(h0*h1*fC[13] + h0*h2*fC[18] + h1*h2*fC[19] ) ); - if (_debug) { - std::cout << "KFParticle::Create " << *this << std::endl; - } -} - -void KFParticleBase::Initialize() -{ - //* Initialise covariance matrix and set current parameters to 0.0 -} -void KFParticleBase::Clear(Option_t *option) { - memset(fBeg,0,fEnd-fBeg+1); - fC[0] = fC[2] = fC[5] = 100.; - fC[35] = 1.; - fNDF = -3; -} -void KFParticleBase::SetVtxGuess( Double_t x, Double_t y, Double_t z ) -{ - //* Set decay vertex parameters for linearisation - - fVtxGuess[0] = x; - fVtxGuess[1] = y; - fVtxGuess[2] = z; - fIsLinearized = 1; -} - - -Int_t KFParticleBase::GetMomentum( Double_t &p, Double_t &error ) const -{ - //* Calculate particle momentum - - Double_t x = fP[3]; - Double_t y = fP[4]; - Double_t z = fP[5]; - Double_t x2 = x*x; - Double_t y2 = y*y; - Double_t z2 = z*z; - Double_t p2 = x2+y2+z2; - p = TMath::Sqrt(p2); - error = (x2*fC[9]+y2*fC[14]+z2*fC[20] + 2*(x*y*fC[13]+x*z*fC[18]+y*z*fC[19]) ); - if( error>0 && p>1.e-4 ){ - error = TMath::Sqrt(error)/p; - return 0; - } - return 1; -} - -Int_t KFParticleBase::GetPt( Double_t &pt, Double_t &error ) const -{ - //* Calculate particle transverse momentum - - Double_t px = fP[3]; - Double_t py = fP[4]; - Double_t px2 = px*px; - Double_t py2 = py*py; - Double_t pt2 = px2+py2; - pt = TMath::Sqrt(pt2); - error = (px2*fC[9] + py2*fC[14] + 2*px*py*fC[13] ); - if( error>0 && pt>1.e-4 ){ - error = TMath::Sqrt(error)/pt; - return 0; - } - error = 1.e10; - return 1; -} - -Int_t KFParticleBase::GetEta( Double_t &eta, Double_t &error ) const -{ - //* Calculate particle pseudorapidity - - Double_t px = fP[3]; - Double_t py = fP[4]; - Double_t pz = fP[5]; - Double_t pt2 = px*px + py*py; - Double_t p2 = pt2 + pz*pz; - Double_t p = TMath::Sqrt(p2); - Double_t a = p + pz; - Double_t b = p - pz; - eta = 1.e10; - if( b > 1.e-8 ){ - Double_t c = a/b; - if( c>1.e-8 ) eta = 0.5*TMath::Log(c); - } - Double_t h3 = -px*pz; - Double_t h4 = -py*pz; - Double_t pt4 = pt2*pt2; - Double_t p2pt4 = p2*pt4; - error = (h3*h3*fC[9] + h4*h4*fC[14] + pt4*fC[20] + 2*( h3*(h4*fC[13] + fC[18]*pt2) + pt2*h4*fC[19] ) ); - - if( error>0 && p2pt4>1.e-10 ){ - error = TMath::Sqrt(error/p2pt4); - return 0; - } - - error = 1.e10; - return 1; -} - -Int_t KFParticleBase::GetPhi( Double_t &phi, Double_t &error ) const -{ - //* Calculate particle polar angle - - Double_t px = fP[3]; - Double_t py = fP[4]; - Double_t px2 = px*px; - Double_t py2 = py*py; - Double_t pt2 = px2 + py2; - phi = TMath::ATan2(py,px); - error = (py2*fC[9] + px2*fC[14] - 2*px*py*fC[13] ); - if( error>0 && pt2>1.e-4 ){ - error = TMath::Sqrt(error)/pt2; - return 0; - } - error = 1.e10; - return 1; -} - -Int_t KFParticleBase::GetR( Double_t &r, Double_t &error ) const -{ - //* Calculate distance to the origin - - Double_t x = fP[0]; - Double_t y = fP[1]; - Double_t x2 = x*x; - Double_t y2 = y*y; - r = TMath::Sqrt(x2 + y2); - error = (x2*fC[0] + y2*fC[2] - 2*x*y*fC[1] ); - if( error>0 && r>1.e-4 ){ - error = TMath::Sqrt(error)/r; - return 0; - } - error = 1.e10; - return 1; -} - -Int_t KFParticleBase::GetMass( Double_t &m, Double_t &error ) const -{ - //* Calculate particle mass - - // s = sigma^2 of m2/2 - - Double_t s = ( fP[3]*fP[3]*fC[9] + fP[4]*fP[4]*fC[14] + fP[5]*fP[5]*fC[20] - + fP[6]*fP[6]*fC[27] - +2*( + fP[3]*fP[4]*fC[13] + fP[5]*(fP[3]*fC[18] + fP[4]*fC[19]) - - fP[6]*( fP[3]*fC[24] + fP[4]*fC[25] + fP[5]*fC[26] ) ) - ); - Double_t m2 = TMath::Abs(fP[6]*fP[6] - fP[3]*fP[3] - fP[4]*fP[4] - fP[5]*fP[5]); - m = TMath::Sqrt(m2); - if( m>1.e-10 ){ - if( s>=0 ){ - error = TMath::Sqrt(s)/m; - return 0; - } - } - error = 1.e20; - return 1; -} - - -Int_t KFParticleBase::GetDecayLength( Double_t &l, Double_t &error ) const -{ - //* Calculate particle decay length [cm] - - Double_t x = fP[3]; - Double_t y = fP[4]; - Double_t z = fP[5]; - Double_t t = fP[7]; - Double_t x2 = x*x; - Double_t y2 = y*y; - Double_t z2 = z*z; - Double_t p2 = x2+y2+z2; - l = t*TMath::Sqrt(p2); - if( p2>1.e-4){ - error = p2*fC[35] + t*t/p2*(x2*fC[9]+y2*fC[14]+z2*fC[20] - + 2*(x*y*fC[13]+x*z*fC[18]+y*z*fC[19]) ) - + 2*t*(x*fC[31]+y*fC[32]+z*fC[33]); - error = TMath::Sqrt(TMath::Abs(error)); - return 0; - } - error = 1.e20; - return 1; -} - -Int_t KFParticleBase::GetDecayLengthXY( Double_t &l, Double_t &error ) const -{ - //* Calculate particle decay length in XY projection [cm] - - Double_t x = fP[3]; - Double_t y = fP[4]; - Double_t t = fP[7]; - Double_t x2 = x*x; - Double_t y2 = y*y; - Double_t pt2 = x2+y2; - l = t*TMath::Sqrt(pt2); - if( pt2>1.e-4){ - error = pt2*fC[35] + t*t/pt2*(x2*fC[9]+y2*fC[14] + 2*x*y*fC[13] ) - + 2*t*(x*fC[31]+y*fC[32]); - error = TMath::Sqrt(TMath::Abs(error)); - return 0; - } - error = 1.e20; - return 1; -} - - -Int_t KFParticleBase::GetLifeTime( Double_t &tauC, Double_t &error ) const -{ - //* Calculate particle decay time [s] - - Double_t m, dm; - GetMass( m, dm ); - Double_t cTM = (-fP[3]*fC[31] - fP[4]*fC[32] - fP[5]*fC[33] + fP[6]*fC[34]); - tauC = fP[7]*m; - error = m*m*fC[35] + 2*fP[7]*cTM + fP[7]*fP[7]*dm*dm; - if( error > 0 ){ - error = TMath::Sqrt( error ); - return 0; - } - error = 1.e20; - return 1; -} - - -void KFParticleBase::operator +=( const KFParticleBase &Daughter ) -{ - //* Add daughter via operator+= - - AddDaughter( Daughter ); -} - -Double_t KFParticleBase::GetSCorrection( const Double_t Part[], const Double_t XYZ[] ) -{ - //* Get big enough correction for S error to let the particle Part be fitted to XYZ point - - Double_t d[3] = { XYZ[0]-Part[0], XYZ[1]-Part[1], XYZ[2]-Part[2] }; - Double_t p2 = Part[3]*Part[3]+Part[4]*Part[4]+Part[5]*Part[5]; - Double_t sigmaS = (p2>1.e-4) ? ( .1+3.*TMath::Sqrt( d[0]*d[0]+d[1]*d[1]+d[2]*d[2]) )/TMath::Sqrt(p2) : 1.; - return sigmaS; -} - -void KFParticleBase::GetMeasurement( const Double_t XYZ[], Double_t m[], Double_t V[] ) const -{ - //* Get additional covariances V used during measurement - - Double_t b[3]; - GetFieldValue( XYZ, b ); - const Double_t kCLight = 0.000299792458; - b[0]*=kCLight; b[1]*=kCLight; b[2]*=kCLight; - - Transport( GetDStoPoint(XYZ), m, V ); - - Double_t sigmaS = GetSCorrection( m, XYZ ); - - Double_t h[6]; - - h[0] = m[3]*sigmaS; - h[1] = m[4]*sigmaS; - h[2] = m[5]*sigmaS; - h[3] = ( h[1]*b[2]-h[2]*b[1] )*GetQ(); - h[4] = ( h[2]*b[0]-h[0]*b[2] )*GetQ(); - h[5] = ( h[0]*b[1]-h[1]*b[0] )*GetQ(); - - V[ 0]+= h[0]*h[0]; - V[ 1]+= h[1]*h[0]; - V[ 2]+= h[1]*h[1]; - V[ 3]+= h[2]*h[0]; - V[ 4]+= h[2]*h[1]; - V[ 5]+= h[2]*h[2]; - - V[ 6]+= h[3]*h[0]; - V[ 7]+= h[3]*h[1]; - V[ 8]+= h[3]*h[2]; - V[ 9]+= h[3]*h[3]; - - V[10]+= h[4]*h[0]; - V[11]+= h[4]*h[1]; - V[12]+= h[4]*h[2]; - V[13]+= h[4]*h[3]; - V[14]+= h[4]*h[4]; - - V[15]+= h[5]*h[0]; - V[16]+= h[5]*h[1]; - V[17]+= h[5]*h[2]; - V[18]+= h[5]*h[3]; - V[19]+= h[5]*h[4]; - V[20]+= h[5]*h[5]; -} - - -void KFParticleBase::AddDaughter( const KFParticleBase &Daughter ) -{ - //* Add daughter - if( fNDF<-1 ){ // first daughter -> just copy - fNDF = -1; - fQ = Daughter.GetQ(); - - if( Daughter.fC[35]>0 ){ //TODO Check this: only the first daughter is used here! - Daughter.GetMeasurement( fVtxGuess, fP, fC ); - } else { - for( Int_t i=0; i<8; i++ ) fP[i] = Daughter.fP[i]; - for( Int_t i=0; i<36; i++ ) fC[i] = Daughter.fC[i]; - } - fSFromDecay = 0; - return; - } - -// TransportToDecayVertex(); - - Double_t b[3]; - Int_t maxIter = 1; - - if( !fIsLinearized ){ - if( fNDF==-1 ){ - Double_t ds, ds1; - GetDStoParticle(Daughter, ds, ds1); - TransportToDS( ds ); - Double_t m[8]; - Double_t mCd[36]; - Daughter.Transport( ds1, m, mCd ); - fVtxGuess[0] = .5*( fP[0] + m[0] ); - fVtxGuess[1] = .5*( fP[1] + m[1] ); - fVtxGuess[2] = .5*( fP[2] + m[2] ); - } else { - fVtxGuess[0] = fP[0]; - fVtxGuess[1] = fP[1]; - fVtxGuess[2] = fP[2]; - } - maxIter = 3; - } - - for( Int_t iter=0; iter0 ){ - Daughter.GetMeasurement( fVtxGuess, m, mV ); - } else { - for( Int_t i=0; i<8; i++ ) m[i] = Daughter.fP[i]; - for( Int_t i=0; i<36; i++ ) mV[i] = Daughter.fC[i]; - } - - //* - - Double_t mS[6]= { ffC[0]+mV[0], - ffC[1]+mV[1], ffC[2]+mV[2], - ffC[3]+mV[3], ffC[4]+mV[4], ffC[5]+mV[5] }; - InvertCholetsky3(mS); - //* Residual (measured - estimated) - - Double_t zeta[3] = { m[0]-ffP[0], m[1]-ffP[1], m[2]-ffP[2] }; - - - //* CHt = CH' - D' - - Double_t mCHt0[7], mCHt1[7], mCHt2[7]; - - mCHt0[0]=ffC[ 0] ; mCHt1[0]=ffC[ 1] ; mCHt2[0]=ffC[ 3] ; - mCHt0[1]=ffC[ 1] ; mCHt1[1]=ffC[ 2] ; mCHt2[1]=ffC[ 4] ; - mCHt0[2]=ffC[ 3] ; mCHt1[2]=ffC[ 4] ; mCHt2[2]=ffC[ 5] ; - mCHt0[3]=ffC[ 6]-mV[ 6]; mCHt1[3]=ffC[ 7]-mV[ 7]; mCHt2[3]=ffC[ 8]-mV[ 8]; - mCHt0[4]=ffC[10]-mV[10]; mCHt1[4]=ffC[11]-mV[11]; mCHt2[4]=ffC[12]-mV[12]; - mCHt0[5]=ffC[15]-mV[15]; mCHt1[5]=ffC[16]-mV[16]; mCHt2[5]=ffC[17]-mV[17]; - mCHt0[6]=ffC[21]-mV[21]; mCHt1[6]=ffC[22]-mV[22]; mCHt2[6]=ffC[23]-mV[23]; - - //* Kalman gain K = mCH'*S - - Double_t k0[7], k1[7], k2[7]; - - for(Int_t i=0;i<7;++i){ - k0[i] = mCHt0[i]*mS[0] + mCHt1[i]*mS[1] + mCHt2[i]*mS[3]; - k1[i] = mCHt0[i]*mS[1] + mCHt1[i]*mS[2] + mCHt2[i]*mS[4]; - k2[i] = mCHt0[i]*mS[3] + mCHt1[i]*mS[4] + mCHt2[i]*mS[5]; - } - - //* New estimation of the vertex position - - if( iter update the particle - - //* Add the daughter momentum to the particle momentum - - ffP[ 3] += m[ 3]; - ffP[ 4] += m[ 4]; - ffP[ 5] += m[ 5]; - ffP[ 6] += m[ 6]; - - ffC[ 9] += mV[ 9]; - ffC[13] += mV[13]; - ffC[14] += mV[14]; - ffC[18] += mV[18]; - ffC[19] += mV[19]; - ffC[20] += mV[20]; - ffC[24] += mV[24]; - ffC[25] += mV[25]; - ffC[26] += mV[26]; - ffC[27] += mV[27]; - - - //* New estimation of the vertex position r += K*zeta - - for(Int_t i=0;i<7;++i) - fP[i] = ffP[i] + k0[i]*zeta[0] + k1[i]*zeta[1] + k2[i]*zeta[2]; - - //* New covariance matrix C -= K*(mCH')' - - for(Int_t i=0, k=0;i<7;++i){ - for(Int_t j=0;j<=i;++j,++k) { - fC[k] = ffC[k] - (k0[i]*mCHt0[j] + k1[i]*mCHt1[j] + k2[i]*mCHt2[j] ); - } - } - - //* Calculate Chi^2 - - fNDF += 2; - fQ += Daughter.GetQ(); - fSFromDecay = 0; - fChi2 += (mS[0]*zeta[0] + mS[1]*zeta[1] + mS[3]*zeta[2])*zeta[0] - + (mS[1]*zeta[0] + mS[2]*zeta[1] + mS[4]*zeta[2])*zeta[1] - + (mS[3]*zeta[0] + mS[4]*zeta[1] + mS[5]*zeta[2])*zeta[2]; - } -} - - -void KFParticleBase::SetProductionVertex( const KFParticleBase &Vtx ) -{ - //* Set production vertex for the particle, when the particle was not used in the vertex fit - - const Double_t *m = Vtx.fP, *mV = Vtx.fC; - - Bool_t noS = ( fC[35]<=0 ); // no decay length allowed - - if( noS ){ - TransportToDecayVertex(); - fP[7] = 0; - fC[28] = 0; fC[29] = 0; fC[30] = 0; fC[31] = 0; fC[32] = 0; fC[33] = 0; fC[35] = 0; fC[35] = 0; - } else { - TransportToDS( GetDStoPoint( m ) ); - fP[7] = -fSFromDecay; - Convert(1); - } - - Double_t mAi[6]; - for(int i=0; i<6; i++) mAi[i] = fC[i]; - InvertCholetsky3(mAi); - //InvertCholetsky3( fC, mAi ); - - Double_t mB[5][3]; - - mB[0][0] = fC[ 6]*mAi[0] + fC[ 7]*mAi[1] + fC[ 8]*mAi[3]; - mB[0][1] = fC[ 6]*mAi[1] + fC[ 7]*mAi[2] + fC[ 8]*mAi[4]; - mB[0][2] = fC[ 6]*mAi[3] + fC[ 7]*mAi[4] + fC[ 8]*mAi[5]; - - mB[1][0] = fC[10]*mAi[0] + fC[11]*mAi[1] + fC[12]*mAi[3]; - mB[1][1] = fC[10]*mAi[1] + fC[11]*mAi[2] + fC[12]*mAi[4]; - mB[1][2] = fC[10]*mAi[3] + fC[11]*mAi[4] + fC[12]*mAi[5]; - - mB[2][0] = fC[15]*mAi[0] + fC[16]*mAi[1] + fC[17]*mAi[3]; - mB[2][1] = fC[15]*mAi[1] + fC[16]*mAi[2] + fC[17]*mAi[4]; - mB[2][2] = fC[15]*mAi[3] + fC[16]*mAi[4] + fC[17]*mAi[5]; - - mB[3][0] = fC[21]*mAi[0] + fC[22]*mAi[1] + fC[23]*mAi[3]; - mB[3][1] = fC[21]*mAi[1] + fC[22]*mAi[2] + fC[23]*mAi[4]; - mB[3][2] = fC[21]*mAi[3] + fC[22]*mAi[4] + fC[23]*mAi[5]; - - mB[4][0] = fC[28]*mAi[0] + fC[29]*mAi[1] + fC[30]*mAi[3]; - mB[4][1] = fC[28]*mAi[1] + fC[29]*mAi[2] + fC[30]*mAi[4]; - mB[4][2] = fC[28]*mAi[3] + fC[29]*mAi[4] + fC[30]*mAi[5]; - - Double_t z[3] = { m[0]-fP[0], m[1]-fP[1], m[2]-fP[2] }; - - { - Double_t mAVi[6] = { fC[0]-mV[0], fC[1]-mV[1], fC[2]-mV[2], - fC[3]-mV[3], fC[4]-mV[4], fC[5]-mV[5] }; - - //if( !InvertCholetsky3( mAVi, mAVi ) ) - InvertCholetsky3( mAVi); - { - - Double_t dChi2 = ( +(mAVi[0]*z[0] + mAVi[1]*z[1] + mAVi[3]*z[2])*z[0] - +(mAVi[1]*z[0] + mAVi[2]*z[1] + mAVi[4]*z[2])*z[1] - +(mAVi[3]*z[0] + mAVi[4]*z[1] + mAVi[5]*z[2])*z[2] ); - - // Take Abs(dChi2) here. Negative value of 'det' or 'dChi2' shows that the particle - // was not used in the production vertex fit - - fChi2+= TMath::Abs( dChi2 ); - } - fNDF += 2; - } - - fP[0] = m[0]; - fP[1] = m[1]; - fP[2] = m[2]; - fP[3]+= mB[0][0]*z[0] + mB[0][1]*z[1] + mB[0][2]*z[2]; - fP[4]+= mB[1][0]*z[0] + mB[1][1]*z[1] + mB[1][2]*z[2]; - fP[5]+= mB[2][0]*z[0] + mB[2][1]*z[1] + mB[2][2]*z[2]; - fP[6]+= mB[3][0]*z[0] + mB[3][1]*z[1] + mB[3][2]*z[2]; - fP[7]+= mB[4][0]*z[0] + mB[4][1]*z[1] + mB[4][2]*z[2]; - - Double_t d0, d1, d2; - - fC[0] = mV[0]; - fC[1] = mV[1]; - fC[2] = mV[2]; - fC[3] = mV[3]; - fC[4] = mV[4]; - fC[5] = mV[5]; - - d0= mB[0][0]*mV[0] + mB[0][1]*mV[1] + mB[0][2]*mV[3] - fC[ 6]; - d1= mB[0][0]*mV[1] + mB[0][1]*mV[2] + mB[0][2]*mV[4] - fC[ 7]; - d2= mB[0][0]*mV[3] + mB[0][1]*mV[4] + mB[0][2]*mV[5] - fC[ 8]; - - fC[ 6]+= d0; - fC[ 7]+= d1; - fC[ 8]+= d2; - fC[ 9]+= d0*mB[0][0] + d1*mB[0][1] + d2*mB[0][2]; - - d0= mB[1][0]*mV[0] + mB[1][1]*mV[1] + mB[1][2]*mV[3] - fC[10]; - d1= mB[1][0]*mV[1] + mB[1][1]*mV[2] + mB[1][2]*mV[4] - fC[11]; - d2= mB[1][0]*mV[3] + mB[1][1]*mV[4] + mB[1][2]*mV[5] - fC[12]; - - fC[10]+= d0; - fC[11]+= d1; - fC[12]+= d2; - fC[13]+= d0*mB[0][0] + d1*mB[0][1] + d2*mB[0][2]; - fC[14]+= d0*mB[1][0] + d1*mB[1][1] + d2*mB[1][2]; - - d0= mB[2][0]*mV[0] + mB[2][1]*mV[1] + mB[2][2]*mV[3] - fC[15]; - d1= mB[2][0]*mV[1] + mB[2][1]*mV[2] + mB[2][2]*mV[4] - fC[16]; - d2= mB[2][0]*mV[3] + mB[2][1]*mV[4] + mB[2][2]*mV[5] - fC[17]; - - fC[15]+= d0; - fC[16]+= d1; - fC[17]+= d2; - fC[18]+= d0*mB[0][0] + d1*mB[0][1] + d2*mB[0][2]; - fC[19]+= d0*mB[1][0] + d1*mB[1][1] + d2*mB[1][2]; - fC[20]+= d0*mB[2][0] + d1*mB[2][1] + d2*mB[2][2]; - - d0= mB[3][0]*mV[0] + mB[3][1]*mV[1] + mB[3][2]*mV[3] - fC[21]; - d1= mB[3][0]*mV[1] + mB[3][1]*mV[2] + mB[3][2]*mV[4] - fC[22]; - d2= mB[3][0]*mV[3] + mB[3][1]*mV[4] + mB[3][2]*mV[5] - fC[23]; - - fC[21]+= d0; - fC[22]+= d1; - fC[23]+= d2; - fC[24]+= d0*mB[0][0] + d1*mB[0][1] + d2*mB[0][2]; - fC[25]+= d0*mB[1][0] + d1*mB[1][1] + d2*mB[1][2]; - fC[26]+= d0*mB[2][0] + d1*mB[2][1] + d2*mB[2][2]; - fC[27]+= d0*mB[3][0] + d1*mB[3][1] + d2*mB[3][2]; - - d0= mB[4][0]*mV[0] + mB[4][1]*mV[1] + mB[4][2]*mV[3] - fC[28]; - d1= mB[4][0]*mV[1] + mB[4][1]*mV[2] + mB[4][2]*mV[4] - fC[29]; - d2= mB[4][0]*mV[3] + mB[4][1]*mV[4] + mB[4][2]*mV[5] - fC[30]; - - fC[28]+= d0; - fC[29]+= d1; - fC[30]+= d2; - fC[31]+= d0*mB[0][0] + d1*mB[0][1] + d2*mB[0][2]; - fC[32]+= d0*mB[1][0] + d1*mB[1][1] + d2*mB[1][2]; - fC[33]+= d0*mB[2][0] + d1*mB[2][1] + d2*mB[2][2]; - fC[34]+= d0*mB[3][0] + d1*mB[3][1] + d2*mB[3][2]; - fC[35]+= d0*mB[4][0] + d1*mB[4][1] + d2*mB[4][2]; - - if( noS ){ - fP[7] = 0; - fC[28] = 0;fC[29] = 0;fC[30] = 0;fC[31] = 0;fC[32] = 0;fC[33] = 0;fC[35] = 0;fC[35] = 0; - } else { - TransportToDS( fP[7] ); - Convert(0); - } - - fSFromDecay = 0; -} - - - -void KFParticleBase::SetMassConstraint( Double_t Mass, Double_t SigmaMass ) -{ - //* Set hard( SigmaMass=0 ) or soft (SigmaMass>0) mass constraint - - Double_t m2 = Mass*Mass; // measurement, weighted by Mass - Double_t s2 = m2*SigmaMass*SigmaMass; // sigma^2 - - Double_t p2 = fP[3]*fP[3] + fP[4]*fP[4] + fP[5]*fP[5]; - Double_t e0 = TMath::Sqrt(m2+p2); - - Double_t mH[8]; - mH[0] = mH[1] = mH[2] = 0.; - mH[3] = -2*fP[3]; - mH[4] = -2*fP[4]; - mH[5] = -2*fP[5]; - mH[6] = 2*fP[6];//e0; - mH[7] = 0; - - Double_t zeta = e0*e0 - e0*fP[6]; - zeta = m2 - (fP[6]*fP[6]-p2); - - Double_t mCHt[8], s2_est=0; - for( Int_t i=0; i<8; ++i ){ - mCHt[i] = 0.0; - for (Int_t j=0;j<8;++j) mCHt[i] += Cij(i,j)*mH[j]; - s2_est += mH[i]*mCHt[i]; - } - - if( s2_est<1.e-20 ) return; // calculated mass error is already 0, - // the particle can not be constrained on mass - - Double_t w2 = 1./( s2 + s2_est ); - fChi2 += zeta*zeta*w2; - fNDF += 1; - for( Int_t i=0, ii=0; i<8; ++i ){ - Double_t ki = mCHt[i]*w2; - fP[i]+= ki*zeta; - for(Int_t j=0;j<=i;++j) fC[ii++] -= ki*mCHt[j]; - } -} - - -void KFParticleBase::SetNoDecayLength() -{ - //* Set no decay length for resonances - - TransportToDecayVertex(); - - Double_t h[8]; - h[0] = h[1] = h[2] = h[3] = h[4] = h[5] = h[6] = 0; - h[7] = 1; - - Double_t zeta = 0 - fP[7]; - for(Int_t i=0;i<8;++i) zeta -= h[i]*(fP[i]-fP[i]); - - Double_t s = fC[35]; - if( s>1.e-20 ){ - s = 1./s; - fChi2 += zeta*zeta*s; - fNDF += 1; - for( Int_t i=0, ii=0; i<7; ++i ){ - Double_t ki = fC[28+i]*s; - fP[i]+= ki*zeta; - for(Int_t j=0;j<=i;++j) fC[ii++] -= ki*fC[28+j]; - } - } - fP[7] = 0; - fC[28] = 0;fC[29] = 0;fC[30] = 0;fC[31] = 0;fC[32] = 0;fC[33] = 0;fC[35] = 0;fC[35] = 0; -} - - -void KFParticleBase::Construct( const KFParticleBase* vDaughters[], Int_t NDaughters, - const KFParticleBase *Parent, Double_t Mass, Bool_t IsConstrained ) -{ - //* Full reconstruction in one go - - Int_t maxIter = 1; - Bool_t wasLinearized = fIsLinearized; - if( !fIsLinearized || IsConstrained ){ - //fVtxGuess[0] = fVtxGuess[1] = fVtxGuess[2] = 0; //!!!! - fVtxGuess[0] = GetX(); - fVtxGuess[1] = GetY(); - fVtxGuess[2] = GetZ(); - fIsLinearized = 1; - maxIter = 3; - } - - Double_t constraintC[6]; - - if( IsConstrained ){ - for(Int_t i=0;i<6;++i) constraintC[i]=fC[i]; - } else { - for(Int_t i=0;i<6;++i) constraintC[i]=0.; - constraintC[0] = constraintC[2] = constraintC[5] = 100.; - } - - - for( Int_t iter=0; iter=0 ) SetMassConstraint( Mass ); - if( Parent ) SetProductionVertex( *Parent ); -} - - -void KFParticleBase::Convert( Bool_t ToProduction ) -{ - //* Tricky function - convert the particle error along its trajectory to - //* the value which corresponds to its production/decay vertex - //* It is done by combination of the error of decay length with the position errors - - Double_t fld[3]; - { - GetFieldValue( fP, fld ); - const Double_t kCLight = fQ*0.000299792458; - fld[0]*=kCLight; fld[1]*=kCLight; fld[2]*=kCLight; - } - - Double_t h[6]; - - h[0] = fP[3]; - h[1] = fP[4]; - h[2] = fP[5]; - if( ToProduction ){ h[0]=-h[0]; h[1]=-h[1]; h[2]=-h[2]; } - h[3] = h[1]*fld[2]-h[2]*fld[1]; - h[4] = h[2]*fld[0]-h[0]*fld[2]; - h[5] = h[0]*fld[1]-h[1]*fld[0]; - - Double_t c; - - c = fC[28]+h[0]*fC[35]; - fC[ 0]+= h[0]*(c+fC[28]); - fC[28] = c; - - fC[ 1]+= h[1]*fC[28] + h[0]*fC[29]; - c = fC[29]+h[1]*fC[35]; - fC[ 2]+= h[1]*(c+fC[29]); - fC[29] = c; - - fC[ 3]+= h[2]*fC[28] + h[0]*fC[30]; - fC[ 4]+= h[2]*fC[29] + h[1]*fC[30]; - c = fC[30]+h[2]*fC[35]; - fC[ 5]+= h[2]*(c+fC[30]); - fC[30] = c; - - fC[ 6]+= h[3]*fC[28] + h[0]*fC[31]; - fC[ 7]+= h[3]*fC[29] + h[1]*fC[31]; - fC[ 8]+= h[3]*fC[30] + h[2]*fC[31]; - c = fC[31]+h[3]*fC[35]; - fC[ 9]+= h[3]*(c+fC[31]); - fC[31] = c; - - fC[10]+= h[4]*fC[28] + h[0]*fC[32]; - fC[11]+= h[4]*fC[29] + h[1]*fC[32]; - fC[12]+= h[4]*fC[30] + h[2]*fC[32]; - fC[13]+= h[4]*fC[31] + h[3]*fC[32]; - c = fC[32]+h[4]*fC[35]; - fC[14]+= h[4]*(c+fC[32]); - fC[32] = c; - - fC[15]+= h[5]*fC[28] + h[0]*fC[33]; - fC[16]+= h[5]*fC[29] + h[1]*fC[33]; - fC[17]+= h[5]*fC[30] + h[2]*fC[33]; - fC[18]+= h[5]*fC[31] + h[3]*fC[33]; - fC[19]+= h[5]*fC[32] + h[4]*fC[33]; - c = fC[33]+h[5]*fC[35]; - fC[20]+= h[5]*(c+fC[33]); - fC[33] = c; - - fC[21]+= h[0]*fC[34]; - fC[22]+= h[1]*fC[34]; - fC[23]+= h[2]*fC[34]; - fC[24]+= h[3]*fC[34]; - fC[25]+= h[4]*fC[34]; - fC[26]+= h[5]*fC[34]; -} - - -void KFParticleBase::TransportToDecayVertex() -{ - //* Transport the particle to its decay vertex - - if( fSFromDecay != 0 ) TransportToDS( -fSFromDecay ); - if( fAtProductionVertex ) Convert(0); - fAtProductionVertex = 0; -} - -void KFParticleBase::TransportToProductionVertex() -{ - //* Transport the particle to its production vertex - - if( fSFromDecay != -fP[7] ) TransportToDS( -fSFromDecay-fP[7] ); - if( !fAtProductionVertex ) Convert( 1 ); - fAtProductionVertex = 1; -} - - -void KFParticleBase::TransportToDS( Double_t dS ) -{ - //* Transport the particle on dS parameter (SignedPath/Momentum) - - Transport( dS, fP, fC ); - fSFromDecay+= dS; -} - - -Double_t KFParticleBase::GetDStoPointLine( const Double_t xyz[] ) const -{ - //* Get dS to a certain space point without field - - Double_t p2 = fP[3]*fP[3] + fP[4]*fP[4] + fP[5]*fP[5]; - if( p2<1.e-4 ) p2 = 1; - return ( fP[3]*(xyz[0]-fP[0]) + fP[4]*(xyz[1]-fP[1]) + fP[5]*(xyz[2]-fP[2]) )/p2; -} - - -Double_t KFParticleBase::GetDStoPointBz( Double_t B, const Double_t xyz[] ) - const -{ - - //* Get dS to a certain space point for Bz field - const Double_t kCLight = 0.000299792458; - Double_t bq = B*fQ*kCLight; - Double_t pt2 = fP[3]*fP[3] + fP[4]*fP[4]; - if( pt2<1.e-4 ) return 0; - Double_t dx = xyz[0] - fP[0]; - Double_t dy = xyz[1] - fP[1]; - Double_t a = dx*fP[3]+dy*fP[4]; - Double_t dS; - - if( TMath::Abs(bq)<1.e-8 ) dS = a/pt2; - else dS = TMath::ATan2( bq*a, pt2 + bq*(dy*fP[3] -dx*fP[4]) )/bq; - - if(0){ - - Double_t px = fP[3]; - Double_t py = fP[4]; - Double_t pz = fP[5]; - Double_t ss[2], g[2][5]; - - ss[0] = dS; - ss[1] = -dS; - for( Int_t i=0; i<2; i++){ - Double_t bs = bq*ss[i]; - Double_t c = TMath::Cos(bs), s = TMath::Sin(bs); - Double_t cB,sB; - if( TMath::Abs(bq)>1.e-8){ - cB= (1-c)/bq; - sB= s/bq; - }else{ - const Double_t kOvSqr6 = 1./TMath::Sqrt(6.); - sB = (1.-bs*kOvSqr6)*(1.+bs*kOvSqr6)*ss[i]; - cB = .5*sB*bs; - } - g[i][0] = fP[0] + sB*px + cB*py; - g[i][1] = fP[1] - cB*px + sB*py; - g[i][2] = fP[2] + ss[i]*pz; - g[i][3] = + c*px + s*py; - g[i][4] = - s*px + c*py; - } - - Int_t i=0; - - Double_t dMin = 1.e10; - for( Int_t j=0; j<2; j++){ - Double_t xx = g[j][0]-xyz[0]; - Double_t yy = g[j][1]-xyz[1]; - Double_t zz = g[j][2]-xyz[2]; - Double_t d = xx*xx + yy*yy + zz*zz; - if( d1.e-8 ){ - dS+=c/pp2; - } - } - return dS; -} - - -void KFParticleBase::GetDStoParticleBz( Double_t B, const KFParticleBase &p, - Double_t &DS, Double_t &DS1 ) - const -{ - //* Get dS to another particle for Bz field - Double_t px = fP[3]; - Double_t py = fP[4]; - Double_t pz = fP[5]; - - Double_t px1 = p.fP[3]; - Double_t py1 = p.fP[4]; - Double_t pz1 = p.fP[5]; - - const Double_t kCLight = 0.000299792458; - - Double_t bq = B*fQ*kCLight; - Double_t bq1 = B*p.fQ*kCLight; - Double_t s=0, ds=0, s1=0, ds1=0; - - if( TMath::Abs(bq)>1.e-8 || TMath::Abs(bq1)>1.e-8 ){ - - Double_t dx = (p.fP[0] - fP[0]); - Double_t dy = (p.fP[1] - fP[1]); - Double_t d2 = (dx*dx+dy*dy); - - Double_t p2 = (px *px + py *py); - Double_t p21 = (px1*px1 + py1*py1); - - Double_t a = (px*py1 - py*px1); - Double_t b = (px*px1 + py*py1); - - Double_t ldx = bq*bq1*dx - bq1*py + bq*py1 ; - Double_t ldy = bq*bq1*dy + bq1*px - bq*px1 ; - Double_t l2 = ldx*ldx + ldy*ldy; - - Double_t cS = bq1*p2 + bq*bq1*(dy* px - dx* py) - bq*b; - Double_t cS1= bq*p21 - bq*bq1*(dy*px1 - dx*py1) - bq1*b; - - Double_t ca = bq*bq*bq1*d2 +2*( cS + bq*bq*(py1*dx-px1*dy)) ; - Double_t ca1 = bq*bq1*bq1*d2 +2*( cS1 - bq1*bq1*(py*dx-px*dy)) ; - - Double_t sa = 4*l2*p2 - ca*ca; - Double_t sa1 = 4*l2*p21 - ca1*ca1; - - if(sa<0) sa=0; - if(sa1<0)sa1=0; - - if( TMath::Abs(bq)>1.e-8){ - s = TMath::ATan2( bq*( bq1*(dx*px +dy*py) + a ) , cS )/bq; - ds = TMath::ATan2(TMath::Sqrt(sa),ca)/bq; - } else { - s = ( (dx*px + dy*py) + (py*px1-px*py1)/bq1)/p2; - ds = s*s - (d2-2*(px1*dy-py1*dx)/bq1)/p2; - if( ds<0 ) ds = 0; - ds = TMath::Sqrt(ds); - } - - if( TMath::Abs(bq1)>1.e-8){ - s1 = TMath::ATan2( -bq1*( bq*(dx*px1+dy*py1) + a), cS1 )/bq1; - ds1 = TMath::ATan2(TMath::Sqrt(sa1),ca1)/bq1; - } else { - s1 = (-(dx*px1 + dy*py1) + (py*px1-px*py1)/bq)/p21; - ds1 = s1*s1 - (d2+2*(px*dy-py*dx)/bq)/p21; - if( ds1<0 ) ds1 = 0; - ds1 = TMath::Sqrt(ds1); - } - } - - Double_t ss[2], ss1[2], g[2][5],g1[2][5]; - - ss[0] = s + ds; - ss[1] = s - ds; - ss1[0] = s1 + ds1; - ss1[1] = s1 - ds1; - for( Int_t i=0; i<2; i++){ - Double_t bs = bq*ss[i]; - Double_t c = TMath::Cos(bs), sss = TMath::Sin(bs); - Double_t cB,sB; - if( TMath::Abs(bq)>1.e-8){ - cB= (1-c)/bq; - sB= sss/bq; - }else{ - const Double_t kOvSqr6 = 1./TMath::Sqrt(6.); - sB = (1.-bs*kOvSqr6)*(1.+bs*kOvSqr6)*ss[i]; - cB = .5*sB*bs; - } - g[i][0] = fP[0] + sB*px + cB*py; - g[i][1] = fP[1] - cB*px + sB*py; - g[i][2] = fP[2] + ss[i]*pz; - g[i][3] = + c*px + sss*py; - g[i][4] = - sss*px + c*py; - - bs = bq1*ss1[i]; - c = TMath::Cos(bs); sss = TMath::Sin(bs); - if( TMath::Abs(bq1)>1.e-8){ - cB= (1-c)/bq1; - sB= sss/bq1; - }else{ - const Double_t kOvSqr6 = 1./TMath::Sqrt(6.); - sB = (1.-bs*kOvSqr6)*(1.+bs*kOvSqr6)*ss1[i]; - cB = .5*sB*bs; - } - - g1[i][0] = p.fP[0] + sB*px1 + cB*py1; - g1[i][1] = p.fP[1] - cB*px1 + sB*py1; - g1[i][2] = p.fP[2] + ss[i]*pz1; - g1[i][3] = + c*px1 + sss*py1; - g1[i][4] = - sss*px1 + c*py1; - } - - Int_t i=0, i1=0; - - Double_t dMin = 1.e10; - for( Int_t j=0; j<2; j++){ - for( Int_t j1=0; j1<2; j1++){ - Double_t xx = g[j][0]-g1[j1][0]; - Double_t yy = g[j][1]-g1[j1][1]; - Double_t zz = g[j][2]-g1[j1][2]; - Double_t d = xx*xx + yy*yy + zz*zz; - if( d1.e-8 ){ - DS+=(a*b-pp21*c)/det; - DS1+=(a*c-pp2*b)/det; - } - } -} - - - -void KFParticleBase::TransportCBM( Double_t dS, - Double_t P[], Double_t C[] ) const -{ - //* Transport the particle on dS, output to P[],C[], for CBM field - - if( fQ==0 ){ - TransportLine( dS, P, C ); - return; - } - - const Double_t kCLight = 0.000299792458; - - Double_t c = fQ*kCLight; - - // construct coefficients - - Double_t - px = fP[3], - py = fP[4], - pz = fP[5]; - - Double_t sx=0, sy=0, sz=0, syy=0, syz=0, syyy=0, ssx=0, ssy=0, ssz=0, ssyy=0, ssyz=0, ssyyy=0; - - { // get field integrals - - Double_t fld[3][3]; - Double_t p0[3], p1[3], p2[3]; - - // line track approximation - - p0[0] = fP[0]; - p0[1] = fP[1]; - p0[2] = fP[2]; - - p2[0] = fP[0] + px*dS; - p2[1] = fP[1] + py*dS; - p2[2] = fP[2] + pz*dS; - - p1[0] = 0.5*(p0[0]+p2[0]); - p1[1] = 0.5*(p0[1]+p2[1]); - p1[2] = 0.5*(p0[2]+p2[2]); - - // first order track approximation - { - GetFieldValue( p0, fld[0] ); - GetFieldValue( p1, fld[1] ); - GetFieldValue( p2, fld[2] ); - - Double_t ssy1 = ( 7*fld[0][1] + 6*fld[1][1]-fld[2][1] )*c*dS*dS/96.; - Double_t ssy2 = ( fld[0][1] + 2*fld[1][1] )*c*dS*dS/6.; - - p1[0] -= ssy1*pz; - p1[2] += ssy1*px; - p2[0] -= ssy2*pz; - p2[2] += ssy2*px; - } - - GetFieldValue( p0, fld[0] ); - GetFieldValue( p1, fld[1] ); - GetFieldValue( p2, fld[2] ); - - sx = c*( fld[0][0] + 4*fld[1][0] + fld[2][0] )*dS/6.; - sy = c*( fld[0][1] + 4*fld[1][1] + fld[2][1] )*dS/6.; - sz = c*( fld[0][2] + 4*fld[1][2] + fld[2][2] )*dS/6.; - - ssx = c*( fld[0][0] + 2*fld[1][0])*dS*dS/6.; - ssy = c*( fld[0][1] + 2*fld[1][1])*dS*dS/6.; - ssz = c*( fld[0][2] + 2*fld[1][2])*dS*dS/6.; - - Double_t c2[3][3] = { { 5, -4, -1},{ 44, 80, -4},{ 11, 44, 5} }; // /=360. - Double_t cc2[3][3] = { { 38, 8, -4},{ 148, 208, -20},{ 3, 36, 3} }; // /=2520. - for(Int_t n=0; n<3; n++) - for(Int_t m=0; m<3; m++) - { - syz += c2[n][m]*fld[n][1]*fld[m][2]; - ssyz += cc2[n][m]*fld[n][1]*fld[m][2]; - } - - syz *= c*c*dS*dS/360.; - ssyz *= c*c*dS*dS*dS/2520.; - - syy = c*( fld[0][1] + 4*fld[1][1] + fld[2][1] )*dS; - syyy = syy*syy*syy / 1296; - syy = syy*syy/72; - - ssyy = ( fld[0][1]*( 38*fld[0][1] + 156*fld[1][1] - fld[2][1] )+ - fld[1][1]*( 208*fld[1][1] +16*fld[2][1] )+ - fld[2][1]*( 3*fld[2][1] ) - )*dS*dS*dS*c*c/2520.; - ssyyy = - ( - fld[0][1]*( fld[0][1]*( 85*fld[0][1] + 526*fld[1][1] - 7*fld[2][1] )+ - fld[1][1]*( 1376*fld[1][1] +84*fld[2][1] )+ - fld[2][1]*( 19*fld[2][1] ) )+ - fld[1][1]*( fld[1][1]*( 1376*fld[1][1] +256*fld[2][1] )+ - fld[2][1]*( 62*fld[2][1] ) )+ - fld[2][1]*fld[2][1] *( 3*fld[2][1] ) - )*dS*dS*dS*dS*c*c*c/90720.; - - } - - Double_t mJ[8][8]; - for( Int_t i=0; i<8; i++ ) for( Int_t j=0; j<8; j++) mJ[i][j]=0; - - mJ[0][0]=1; mJ[0][1]=0; mJ[0][2]=0; mJ[0][3]=dS-ssyy; mJ[0][4]=ssx; mJ[0][5]=ssyyy-ssy; - mJ[1][0]=0; mJ[1][1]=1; mJ[1][2]=0; mJ[1][3]=-ssz; mJ[1][4]=dS; mJ[1][5]=ssx+ssyz; - mJ[2][0]=0; mJ[2][1]=0; mJ[2][2]=1; mJ[2][3]=ssy-ssyyy; mJ[2][4]=-ssx; mJ[2][5]=dS-ssyy; - - mJ[3][0]=0; mJ[3][1]=0; mJ[3][2]=0; mJ[3][3]=1-syy; mJ[3][4]=sx; mJ[3][5]=syyy-sy; - mJ[4][0]=0; mJ[4][1]=0; mJ[4][2]=0; mJ[4][3]=-sz; mJ[4][4]=1; mJ[4][5]=sx+syz; - mJ[5][0]=0; mJ[5][1]=0; mJ[5][2]=0; mJ[5][3]=sy-syyy; mJ[5][4]=-sx; mJ[5][5]=1-syy; - mJ[6][6] = mJ[7][7] = 1; - - P[0] = fP[0] + mJ[0][3]*px + mJ[0][4]*py + mJ[0][5]*pz; - P[1] = fP[1] + mJ[1][3]*px + mJ[1][4]*py + mJ[1][5]*pz; - P[2] = fP[2] + mJ[2][3]*px + mJ[2][4]*py + mJ[2][5]*pz; - P[3] = mJ[3][3]*px + mJ[3][4]*py + mJ[3][5]*pz; - P[4] = mJ[4][3]*px + mJ[4][4]*py + mJ[4][5]*pz; - P[5] = mJ[5][3]*px + mJ[5][4]*py + mJ[5][5]*pz; - P[6] = fP[6]; - P[7] = fP[7]; - - MultQSQt( mJ[0], fC, C); - -} - - -void KFParticleBase::TransportBz( Double_t b, Double_t t, - Double_t p[], Double_t e[] ) const -{ - //* Transport the particle on dS, output to P[],C[], for Bz field - - const Double_t kCLight = 0.000299792458; - b = b*fQ*kCLight; - Double_t bs= b*t; - Double_t s = TMath::Sin(bs), c = TMath::Cos(bs); - Double_t sB, cB; - if( TMath::Abs(bs)>1.e-10){ - sB= s/b; - cB= (1-c)/b; - }else{ - const Double_t kOvSqr6 = 1./TMath::Sqrt(6.); - sB = (1.-bs*kOvSqr6)*(1.+bs*kOvSqr6)*t; - cB = .5*sB*bs; - } - - Double_t px = fP[3]; - Double_t py = fP[4]; - Double_t pz = fP[5]; - - p[0] = fP[0] + sB*px + cB*py; - p[1] = fP[1] - cB*px + sB*py; - p[2] = fP[2] + t*pz; - p[3] = c*px + s*py; - p[4] = -s*px + c*py; - p[5] = fP[5]; - p[6] = fP[6]; - p[7] = fP[7]; - - /* - Double_t mJ[8][8] = { {1,0,0, sB, cB, 0, 0, 0 }, - {0,1,0, -cB, sB, 0, 0, 0 }, - {0,0,1, 0, 0, t, 0, 0 }, - {0,0,0, c, s, 0, 0, 0 }, - {0,0,0, -s, c, 0, 0, 0 }, - {0,0,0, 0, 0, 1, 0, 0 }, - {0,0,0, 0, 0, 0, 1, 0 }, - {0,0,0, 0, 0, 0, 0, 1 } }; - Double_t mA[8][8]; - for( Int_t k=0,i=0; i<8; i++) - for( Int_t j=0; j<=i; j++, k++ ) mA[i][j] = mA[j][i] = fC[k]; - - Double_t mJC[8][8]; - for( Int_t i=0; i<8; i++ ) - for( Int_t j=0; j<8; j++ ){ - mJC[i][j]=0; - for( Int_t k=0; k<8; k++ ) mJC[i][j]+=mJ[i][k]*mA[k][j]; - } - - for( Int_t k=0,i=0; i<8; i++) - for( Int_t j=0; j<=i; j++, k++ ){ - e[k] = 0; - for( Int_t l=0; l<8; l++ ) e[k]+=mJC[i][l]*mJ[j][l]; - } - - return; - */ - - Double_t - c6=fC[6], c7=fC[7], c8=fC[8], c17=fC[17], c18=fC[18], - c24 = fC[24], c31 = fC[31]; - - Double_t - cBC13 = cB*fC[13], - mJC13 = c7 - cB*fC[9] + sB*fC[13], - mJC14 = fC[11] - cBC13 + sB*fC[14], - mJC23 = c8 + t*c18, - mJC24 = fC[12] + t*fC[19], - mJC33 = c*fC[9] + s*fC[13], - mJC34 = c*fC[13] + s*fC[14], - mJC43 = -s*fC[9] + c*fC[13], - mJC44 = -s*fC[13] + c*fC[14]; - - - e[0]= fC[0] + 2*(sB*c6 + cB*fC[10]) + (sB*fC[9] + 2*cBC13)*sB + cB*cB*fC[14]; - e[1]= fC[1] - cB*c6 + sB*fC[10] + mJC13*sB + mJC14*cB; - e[2]= fC[2] - cB*c7 + sB*fC[11] - mJC13*cB + mJC14*sB; - e[3]= fC[3] + t*fC[15] + mJC23*sB + mJC24*cB; - e[4]= fC[4] + t*fC[16] - mJC23*cB + mJC24*sB; - - e[15]= fC[15] + c18*sB + fC[19]*cB; - e[16]= fC[16] - c18*cB + fC[19]*sB; - e[17]= c17 + fC[20]*t; - e[18]= c18*c + fC[19]*s; - e[19]= -c18*s + fC[19]*c; - - e[5]= fC[5] + (c17 + e[17] )*t; - - e[6]= c*c6 + s*fC[10] + mJC33*sB + mJC34*cB; - e[7]= c*c7 + s*fC[11] - mJC33*cB + mJC34*sB; - e[8]= c*c8 + s*fC[12] + e[18]*t; - e[9]= mJC33*c + mJC34*s; - e[10]= -s*c6 + c*fC[10] + mJC43*sB + mJC44*cB; - - - e[11]= -s*c7 + c*fC[11] - mJC43*cB + mJC44*sB; - e[12]= -s*c8 + c*fC[12] + e[19]*t; - e[13]= mJC43*c + mJC44*s; - e[14]= -mJC43*s + mJC44*c; - e[20]= fC[20]; - e[21]= fC[21] + fC[25]*cB + c24*sB; - e[22]= fC[22] - c24*cB + fC[25]*sB; - e[23]= fC[23] + fC[26]*t; - e[24]= c*c24 + s*fC[25]; - e[25]= c*fC[25] - c24*s; - e[26]= fC[26]; - e[27]= fC[27]; - e[28]= fC[28] + fC[32]*cB + c31*sB; - e[29]= fC[29] - c31*cB + fC[32]*sB; - e[30]= fC[30] + fC[33]*t; - e[31]= c*c31 + s*fC[32]; - e[32]= c*fC[32] - s*c31; - e[33]= fC[33]; - e[34]= fC[34]; - e[35]= fC[35]; -} - - -Double_t KFParticleBase::GetDistanceFromVertex( const KFParticleBase &Vtx ) const -{ - //* Calculate distance from vertex [cm] - - return GetDistanceFromVertex( Vtx.fP ); -} - -Double_t KFParticleBase::GetDistanceFromVertex( const Double_t vtx[] ) const -{ - //* Calculate distance from vertex [cm] - - Double_t mP[8], mC[36]; - Transport( GetDStoPoint(vtx), mP, mC ); - Double_t d[3]={ vtx[0]-mP[0], vtx[1]-mP[1], vtx[2]-mP[2]}; - return TMath::Sqrt( d[0]*d[0]+d[1]*d[1]+d[2]*d[2] ); -} - -Double_t KFParticleBase::GetDistanceFromParticle( const KFParticleBase &p ) - const -{ - //* Calculate distance to other particle [cm] - - Double_t dS, dS1; - GetDStoParticle( p, dS, dS1 ); - Double_t mP[8], mC[36], mP1[8], mC1[36]; - Transport( dS, mP, mC ); - p.Transport( dS1, mP1, mC1 ); - Double_t dx = mP[0]-mP1[0]; - Double_t dy = mP[1]-mP1[1]; - Double_t dz = mP[2]-mP1[2]; - return TMath::Sqrt(dx*dx+dy*dy+dz*dz); -} - -Double_t KFParticleBase::GetDeviationFromVertex( const KFParticleBase &Vtx ) const -{ - //* Calculate sqrt(Chi2/ndf) deviation from vertex - - return GetDeviationFromVertex( Vtx.fP, Vtx.fC ); -} - - -Double_t KFParticleBase::GetDeviationFromVertex( const Double_t v[], const Double_t Cv[] ) const -{ - //* Calculate sqrt(Chi2/ndf) deviation from vertex - //* v = [xyz], Cv=[Cxx,Cxy,Cyy,Cxz,Cyz,Czz]-covariance matrix - - Double_t mP[8]; - Double_t mC[36]; - Double_t dS = GetDStoPoint(v); - Transport(dS , mP, mC ); - - Double_t d[3]={ v[0]-mP[0], v[1]-mP[1], v[2]-mP[2]}; - - Double_t sigmaS = .1+10.*TMath::Sqrt( (d[0]*d[0]+d[1]*d[1]+d[2]*d[2])/ - (mP[3]*mP[3]+mP[4]*mP[4]+mP[5]*mP[5]) ); - - - Double_t h[3] = { mP[3]*sigmaS, mP[4]*sigmaS, mP[5]*sigmaS }; - - Double_t mSi[6] = - { mC[0] +h[0]*h[0], - mC[1] +h[1]*h[0], mC[2] +h[1]*h[1], - mC[3] +h[2]*h[0], mC[4] +h[2]*h[1], mC[5] +h[2]*h[2] }; - - if( Cv ){ - mSi[0]+=Cv[0]; - mSi[1]+=Cv[1]; - mSi[2]+=Cv[2]; - mSi[3]+=Cv[3]; - mSi[4]+=Cv[4]; - mSi[5]+=Cv[5]; - } - - Double_t mS[6]; - - mS[0] = mSi[2]*mSi[5] - mSi[4]*mSi[4]; - mS[1] = mSi[3]*mSi[4] - mSi[1]*mSi[5]; - mS[2] = mSi[0]*mSi[5] - mSi[3]*mSi[3]; - mS[3] = mSi[1]*mSi[4] - mSi[2]*mSi[3]; - mS[4] = mSi[1]*mSi[3] - mSi[0]*mSi[4]; - mS[5] = mSi[0]*mSi[2] - mSi[1]*mSi[1]; - - Double_t s = ( mSi[0]*mS[0] + mSi[1]*mS[1] + mSi[3]*mS[3] ); - s = ( s > 1.E-20 ) ?1./s :0; - - return TMath::Sqrt( TMath::Abs(s*( ( mS[0]*d[0] + mS[1]*d[1] + mS[3]*d[2])*d[0] - +(mS[1]*d[0] + mS[2]*d[1] + mS[4]*d[2])*d[1] - +(mS[3]*d[0] + mS[4]*d[1] + mS[5]*d[2])*d[2] ))/2); -} - - -Double_t KFParticleBase::GetDeviationFromParticle( const KFParticleBase &p ) - const -{ - //* Calculate sqrt(Chi2/ndf) deviation from other particle - - Double_t dS, dS1; - GetDStoParticle( p, dS, dS1 ); - Double_t mP1[8], mC1[36]; - p.Transport( dS1, mP1, mC1 ); - - Double_t d[3]={ fP[0]-mP1[0], fP[1]-mP1[1], fP[2]-mP1[2]}; - - Double_t sigmaS = .1+10.*TMath::Sqrt( (d[0]*d[0]+d[1]*d[1]+d[2]*d[2])/ - (mP1[3]*mP1[3]+mP1[4]*mP1[4]+mP1[5]*mP1[5]) ); - - Double_t h[3] = { mP1[3]*sigmaS, mP1[4]*sigmaS, mP1[5]*sigmaS }; - - mC1[0] +=h[0]*h[0]; - mC1[1] +=h[1]*h[0]; - mC1[2] +=h[1]*h[1]; - mC1[3] +=h[2]*h[0]; - mC1[4] +=h[2]*h[1]; - mC1[5] +=h[2]*h[2]; - - return GetDeviationFromVertex( mP1, mC1 )*TMath::Sqrt(2./1.); -} - - - -void KFParticleBase::SubtractFromVertex( KFParticleBase &Vtx ) const -{ - //* Subtract the particle from the vertex - - Double_t fld[3]; - { - GetFieldValue( Vtx.fP, fld ); - const Double_t kCLight = 0.000299792458; - fld[0]*=kCLight; fld[1]*=kCLight; fld[2]*=kCLight; - } - - Double_t m[8]; - Double_t mCm[36]; - - if( Vtx.fIsLinearized ){ - GetMeasurement( Vtx.fVtxGuess, m, mCm ); - } else { - GetMeasurement( Vtx.fP, m, mCm ); - } - - Double_t mV[6]; - - mV[ 0] = mCm[ 0]; - mV[ 1] = mCm[ 1]; - mV[ 2] = mCm[ 2]; - mV[ 3] = mCm[ 3]; - mV[ 4] = mCm[ 4]; - mV[ 5] = mCm[ 5]; - - //* - - Double_t mS[6] = { mV[0]-Vtx.fC[0], - mV[1]-Vtx.fC[1], mV[2]-Vtx.fC[2], - mV[3]-Vtx.fC[3], mV[4]-Vtx.fC[4], mV[5]-Vtx.fC[5] }; - InvertCholetsky3(mS); - //* Residual (measured - estimated) - - Double_t zeta[3] = { m[0]-Vtx.fP[0], m[1]-Vtx.fP[1], m[2]-Vtx.fP[2] }; - - //* mCHt = mCH' - D' - - Double_t mCHt0[3], mCHt1[3], mCHt2[3]; - - mCHt0[0]=Vtx.fC[ 0] ; mCHt1[0]=Vtx.fC[ 1] ; mCHt2[0]=Vtx.fC[ 3] ; - mCHt0[1]=Vtx.fC[ 1] ; mCHt1[1]=Vtx.fC[ 2] ; mCHt2[1]=Vtx.fC[ 4] ; - mCHt0[2]=Vtx.fC[ 3] ; mCHt1[2]=Vtx.fC[ 4] ; mCHt2[2]=Vtx.fC[ 5] ; - - //* Kalman gain K = mCH'*S - - Double_t k0[3], k1[3], k2[3]; - - for(Int_t i=0;i<3;++i){ - k0[i] = mCHt0[i]*mS[0] + mCHt1[i]*mS[1] + mCHt2[i]*mS[3]; - k1[i] = mCHt0[i]*mS[1] + mCHt1[i]*mS[2] + mCHt2[i]*mS[4]; - k2[i] = mCHt0[i]*mS[3] + mCHt1[i]*mS[4] + mCHt2[i]*mS[5]; - } - - //* New estimation of the vertex position r += K*zeta - - Double_t dChi2 = -(mS[0]*zeta[0] + mS[1]*zeta[1] + mS[3]*zeta[2])*zeta[0] - - (mS[1]*zeta[0] + mS[2]*zeta[1] + mS[4]*zeta[2])*zeta[1] - - (mS[3]*zeta[0] + mS[4]*zeta[1] + mS[5]*zeta[2])*zeta[2]; - - if( Vtx.fChi2 - dChi2 < 0 ) return; - - for(Int_t i=0;i<3;++i) - Vtx.fP[i] -= (k0[i]*zeta[0] + k1[i]*zeta[1] + k2[i]*zeta[2]); - - //* New covariance matrix C -= K*(mCH')' - - for(Int_t i=0, k=0;i<3;++i){ - for(Int_t j=0;j<=i;++j,++k) - Vtx.fC[k] += k0[i]*mCHt0[j] + k1[i]*mCHt1[j] + k2[i]*mCHt2[j]; - } - - //* Calculate Chi^2 - - Vtx.fNDF -= 2; - Vtx.fChi2 += dChi2; -} - -void KFParticleBase::SubtractFromParticle( KFParticleBase &Vtx ) const -{ - //* Subtract the particle from the mother particle - - Double_t m[8]; - Double_t mV[36]; - - if( Vtx.fIsLinearized ){ - GetMeasurement( Vtx.fVtxGuess, m, mV ); - } else { - GetMeasurement( Vtx.fP, m, mV ); - } - - Double_t mS[6]= { mV[0] - Vtx.fC[0], - mV[1] - Vtx.fC[1], mV[2] - Vtx.fC[2], - mV[3] - Vtx.fC[3], mV[4] - Vtx.fC[4], mV[5] - Vtx.fC[5] }; - InvertCholetsky3(mS); - - //* Residual (measured - estimated) - - Double_t zeta[3] = { m[0]-Vtx.fP[0], m[1]-Vtx.fP[1], m[2]-Vtx.fP[2] }; - - //* CHt = CH' - D' - - Double_t mCHt0[7], mCHt1[7], mCHt2[7]; - - mCHt0[0]=mV[ 0] ; mCHt1[0]=mV[ 1] ; mCHt2[0]=mV[ 3] ; - mCHt0[1]=mV[ 1] ; mCHt1[1]=mV[ 2] ; mCHt2[1]=mV[ 4] ; - mCHt0[2]=mV[ 3] ; mCHt1[2]=mV[ 4] ; mCHt2[2]=mV[ 5] ; - mCHt0[3]=Vtx.fC[ 6]-mV[ 6]; mCHt1[3]=Vtx.fC[ 7]-mV[ 7]; mCHt2[3]=Vtx.fC[ 8]-mV[ 8]; - mCHt0[4]=Vtx.fC[10]-mV[10]; mCHt1[4]=Vtx.fC[11]-mV[11]; mCHt2[4]=Vtx.fC[12]-mV[12]; - mCHt0[5]=Vtx.fC[15]-mV[15]; mCHt1[5]=Vtx.fC[16]-mV[16]; mCHt2[5]=Vtx.fC[17]-mV[17]; - mCHt0[6]=Vtx.fC[21]-mV[21]; mCHt1[6]=Vtx.fC[22]-mV[22]; mCHt2[6]=Vtx.fC[23]-mV[23]; - - //* Kalman gain K = mCH'*S - - Double_t k0[7], k1[7], k2[7]; - - for(Int_t i=0;i<7;++i){ - k0[i] = mCHt0[i]*mS[0] + mCHt1[i]*mS[1] + mCHt2[i]*mS[3]; - k1[i] = mCHt0[i]*mS[1] + mCHt1[i]*mS[2] + mCHt2[i]*mS[4]; - k2[i] = mCHt0[i]*mS[3] + mCHt1[i]*mS[4] + mCHt2[i]*mS[5]; - } - - //* Add the daughter momentum to the particle momentum - - Vtx.fP[ 3] -= m[ 3]; - Vtx.fP[ 4] -= m[ 4]; - Vtx.fP[ 5] -= m[ 5]; - Vtx.fP[ 6] -= m[ 6]; - - Vtx.fC[ 9] -= mV[ 9]; - Vtx.fC[13] -= mV[13]; - Vtx.fC[14] -= mV[14]; - Vtx.fC[18] -= mV[18]; - Vtx.fC[19] -= mV[19]; - Vtx.fC[20] -= mV[20]; - Vtx.fC[24] -= mV[24]; - Vtx.fC[25] -= mV[25]; - Vtx.fC[26] -= mV[26]; - Vtx.fC[27] -= mV[27]; - - //* New estimation of the vertex position r += K*zeta - - for(Int_t i=0;i<3;++i) - Vtx.fP[i] = m[i] - (k0[i]*zeta[0] + k1[i]*zeta[1] + k2[i]*zeta[2]); - for(Int_t i=3;i<7;++i) - Vtx.fP[i] = Vtx.fP[i] - (k0[i]*zeta[0] + k1[i]*zeta[1] + k2[i]*zeta[2]); - - //* New covariance matrix C -= K*(mCH')' - - Double_t ffC[28] = { -mV[ 0], - -mV[ 1], -mV[ 2], - -mV[ 3], -mV[ 4], -mV[ 5], - mV[ 6], mV[ 7], mV[ 8], Vtx.fC[ 9], - mV[10], mV[11], mV[12], Vtx.fC[13], Vtx.fC[14], - mV[15], mV[16], mV[17], Vtx.fC[18], Vtx.fC[19], Vtx.fC[20], - mV[21], mV[22], mV[23], Vtx.fC[24], Vtx.fC[25], Vtx.fC[26], Vtx.fC[27] }; - - for(Int_t i=0, k=0;i<7;++i){ - for(Int_t j=0;j<=i;++j,++k){ - Vtx.fC[k] = ffC[k] + (k0[i]*mCHt0[j] + k1[i]*mCHt1[j] + k2[i]*mCHt2[j] ); - } - } - - //* Calculate Chi^2 - Vtx.fNDF -= 2; - Vtx.fQ -= GetQ(); - Vtx.fSFromDecay = 0; - Vtx.fChi2 -= ((mS[0]*zeta[0] + mS[1]*zeta[1] + mS[3]*zeta[2])*zeta[0] - +(mS[1]*zeta[0] + mS[2]*zeta[1] + mS[4]*zeta[2])*zeta[1] - +(mS[3]*zeta[0] + mS[4]*zeta[1] + mS[5]*zeta[2])*zeta[2]); -} - -void KFParticleBase::TransportLine( Double_t dS, - Double_t P[], Double_t C[] ) const -{ - //* Transport the particle as a straight line - - P[0] = fP[0] + dS*fP[3]; - P[1] = fP[1] + dS*fP[4]; - P[2] = fP[2] + dS*fP[5]; - P[3] = fP[3]; - P[4] = fP[4]; - P[5] = fP[5]; - P[6] = fP[6]; - P[7] = fP[7]; - - Double_t c6 = fC[ 6] + dS*fC[ 9]; - Double_t c11 = fC[11] + dS*fC[14]; - Double_t c17 = fC[17] + dS*fC[20]; - Double_t sc13 = dS*fC[13]; - Double_t sc18 = dS*fC[18]; - Double_t sc19 = dS*fC[19]; - - C[ 0] = fC[ 0] + dS*( fC[ 6] + c6 ); - C[ 2] = fC[ 2] + dS*( fC[11] + c11 ); - C[ 5] = fC[ 5] + dS*( fC[17] + c17 ); - - C[ 7] = fC[ 7] + sc13; - C[ 8] = fC[ 8] + sc18; - C[ 9] = fC[ 9]; - - C[12] = fC[12] + sc19; - - C[ 1] = fC[ 1] + dS*( fC[10] + C[ 7] ); - C[ 3] = fC[ 3] + dS*( fC[15] + C[ 8] ); - C[ 4] = fC[ 4] + dS*( fC[16] + C[12] ); - C[ 6] = c6; - - C[10] = fC[10] + sc13; - C[11] = c11; - - C[13] = fC[13]; - C[14] = fC[14]; - C[15] = fC[15] + sc18; - C[16] = fC[16] + sc19; - C[17] = c17; - - C[18] = fC[18]; - C[19] = fC[19]; - C[20] = fC[20]; - C[21] = fC[21] + dS*fC[24]; - C[22] = fC[22] + dS*fC[25]; - C[23] = fC[23] + dS*fC[26]; - - C[24] = fC[24]; - C[25] = fC[25]; - C[26] = fC[26]; - C[27] = fC[27]; - C[28] = fC[28] + dS*fC[31]; - C[29] = fC[29] + dS*fC[32]; - C[30] = fC[30] + dS*fC[33]; - - C[31] = fC[31]; - C[32] = fC[32]; - C[33] = fC[33]; - C[34] = fC[34]; - C[35] = fC[35]; -} - - -void KFParticleBase::ConstructGammaBz( const KFParticleBase &daughter1, - const KFParticleBase &daughter2, Double_t Bz ) -{ - //* Create gamma - - const KFParticleBase *daughters[2] = { &daughter1, &daughter2}; - - Double_t v0[3]; - - if( !fIsLinearized ){ - Double_t ds, ds1; - Double_t m[8]; - Double_t mCd[36]; - daughter1.GetDStoParticle(daughter2, ds, ds1); - daughter1.Transport( ds, m, mCd ); - v0[0] = m[0]; - v0[1] = m[1]; - v0[2] = m[2]; - daughter2.Transport( ds1, m, mCd ); - v0[0] = .5*( v0[0] + m[0] ); - v0[1] = .5*( v0[1] + m[1] ); - v0[2] = .5*( v0[2] + m[2] ); - } else { - v0[0] = fVtxGuess[0]; - v0[1] = fVtxGuess[1]; - v0[2] = fVtxGuess[2]; - } - - fAtProductionVertex = 0; - fSFromDecay = 0; - fP[0] = v0[0]; - fP[1] = v0[1]; - fP[2] = v0[2]; - fP[3] = 0; - fP[4] = 0; - fP[5] = 0; - fP[6] = 0; - fP[7] = 0; - - - // fit daughters to the vertex guess - - Double_t daughterP[2][8], daughterC[2][36]; - Double_t vtxMom[2][3]; - - { - for( Int_t id=0; id<2; id++ ){ - - Double_t *p = daughterP[id]; - Double_t *mC = daughterC[id]; - - daughters[id]->GetMeasurement( v0, p, mC ); - - Double_t mAi[6]; - for(int i=0; i<6; i++) mAi[i] = mC[i]; - InvertCholetsky3(mAi); - //InvertSym3(mC, mAi ); - - Double_t mB[3][3]; - - mB[0][0] = mC[ 6]*mAi[0] + mC[ 7]*mAi[1] + mC[ 8]*mAi[3]; - mB[0][1] = mC[ 6]*mAi[1] + mC[ 7]*mAi[2] + mC[ 8]*mAi[4]; - mB[0][2] = mC[ 6]*mAi[3] + mC[ 7]*mAi[4] + mC[ 8]*mAi[5]; - - mB[1][0] = mC[10]*mAi[0] + mC[11]*mAi[1] + mC[12]*mAi[3]; - mB[1][1] = mC[10]*mAi[1] + mC[11]*mAi[2] + mC[12]*mAi[4]; - mB[1][2] = mC[10]*mAi[3] + mC[11]*mAi[4] + mC[12]*mAi[5]; - - mB[2][0] = mC[15]*mAi[0] + mC[16]*mAi[1] + mC[17]*mAi[3]; - mB[2][1] = mC[15]*mAi[1] + mC[16]*mAi[2] + mC[17]*mAi[4]; - mB[2][2] = mC[15]*mAi[3] + mC[16]*mAi[4] + mC[17]*mAi[5]; - - Double_t z[3] = { v0[0]-p[0], v0[1]-p[1], v0[2]-p[2] }; - - vtxMom[id][0] = p[3] + mB[0][0]*z[0] + mB[0][1]*z[1] + mB[0][2]*z[2]; - vtxMom[id][1] = p[4] + mB[1][0]*z[0] + mB[1][1]*z[1] + mB[1][2]*z[2]; - vtxMom[id][2] = p[5] + mB[2][0]*z[0] + mB[2][1]*z[1] + mB[2][2]*z[2]; - - daughters[id]->Transport( daughters[id]->GetDStoPoint(v0), p, mC ); - - } - - } // fit daughters to guess - - - // fit new vertex - { - - Double_t mpx0 = vtxMom[0][0]+vtxMom[1][0]; - Double_t mpy0 = vtxMom[0][1]+vtxMom[1][1]; - Double_t mpt0 = TMath::Sqrt(mpx0*mpx0 + mpy0*mpy0); - // Double_t a0 = TMath::ATan2(mpy0,mpx0); - - Double_t ca0 = mpx0/mpt0; - Double_t sa0 = mpy0/mpt0; - Double_t r[3] = { v0[0], v0[1], v0[2] }; - Double_t mC[3][3] = {{10000., 0 , 0 }, - {0, 10000., 0 }, - {0, 0, 10000. } }; - Double_t chi2=0; - - for( Int_t id=0; id<2; id++ ){ - const Double_t kCLight = 0.000299792458; - Double_t q = Bz*daughters[id]->GetQ()*kCLight; - Double_t px0 = vtxMom[id][0]; - Double_t py0 = vtxMom[id][1]; - Double_t pz0 = vtxMom[id][2]; - Double_t pt0 = TMath::Sqrt(px0*px0+py0*py0); - Double_t mG[3][6], mB[3], mH[3][3]; - // r = {vx,vy,vz}; - // m = {x,y,z,Px,Py,Pz}; - // V = daughter.C - // G*m + B = H*r; - // q*x + Py - q*vx - sin(a)*Pt = 0 - // q*y - Px - q*vy + cos(a)*Pt = 0 - // (Px*cos(a) + Py*sin(a) ) (vz -z) - Pz( cos(a)*(vx-x) + sin(a)*(vy-y)) = 0 - - mG[0][0] = q; - mG[0][1] = 0; - mG[0][2] = 0; - mG[0][3] = -sa0*px0/pt0; - mG[0][4] = 1 -sa0*py0/pt0; - mG[0][5] = 0; - mH[0][0] = q; - mH[0][1] = 0; - mH[0][2] = 0; - mB[0] = py0 - sa0*pt0 - mG[0][3]*px0 - mG[0][4]*py0 ; - - // q*y - Px - q*vy + cos(a)*Pt = 0 - - mG[1][0] = 0; - mG[1][1] = q; - mG[1][2] = 0; - mG[1][3] = -1 + ca0*px0/pt0; - mG[1][4] = + ca0*py0/pt0; - mG[1][5] = 0; - mH[1][0] = 0; - mH[1][1] = q; - mH[1][2] = 0; - mB[1] = -px0 + ca0*pt0 - mG[1][3]*px0 - mG[1][4]*py0 ; - - // (Px*cos(a) + Py*sin(a) ) (z -vz) - Pz( cos(a)*(x-vx) + sin(a)*(y-vy)) = 0 - - mG[2][0] = -pz0*ca0; - mG[2][1] = -pz0*sa0; - mG[2][2] = px0*ca0 + py0*sa0; - mG[2][3] = 0; - mG[2][4] = 0; - mG[2][5] = 0; - - mH[2][0] = mG[2][0]; - mH[2][1] = mG[2][1]; - mH[2][2] = mG[2][2]; - - mB[2] = 0; - - // fit the vertex - - // V = GVGt - - Double_t mGV[3][6]; - Double_t mV[6]; - Double_t m[3]; - for( Int_t i=0; i<3; i++ ){ - m[i] = mB[i]; - for( Int_t k=0; k<6; k++ ) m[i]+=mG[i][k]*daughterP[id][k]; - } - for( Int_t i=0; i<3; i++ ){ - for( Int_t j=0; j<6; j++ ){ - mGV[i][j] = 0; - for( Int_t k=0; k<6; k++ ) mGV[i][j]+=mG[i][k]*daughterC[id][ IJ(k,j) ]; - } - } - for( Int_t i=0, k=0; i<3; i++ ){ - for( Int_t j=0; j<=i; j++,k++ ){ - mV[k] = 0; - for( Int_t l=0; l<6; l++ ) mV[k]+=mGV[i][l]*mG[j][l]; - } - } - - - //* CHt - - Double_t mCHt[3][3]; - Double_t mHCHt[6]; - Double_t mHr[3]; - for( Int_t i=0; i<3; i++ ){ - mHr[i] = 0; - for( Int_t k=0; k<3; k++ ) mHr[i]+= mH[i][k]*r[k]; - } - - for( Int_t i=0; i<3; i++ ){ - for( Int_t j=0; j<3; j++){ - mCHt[i][j] = 0; - for( Int_t k=0; k<3; k++ ) mCHt[i][j]+= mC[i][k]*mH[j][k]; - } - } - - for( Int_t i=0, k=0; i<3; i++ ){ - for( Int_t j=0; j<=i; j++, k++ ){ - mHCHt[k] = 0; - for( Int_t l=0; l<3; l++ ) mHCHt[k]+= mH[i][l]*mCHt[l][j]; - } - } - - Double_t mS[6] = { mHCHt[0]+mV[0], - mHCHt[1]+mV[1], mHCHt[2]+mV[2], - mHCHt[3]+mV[3], mHCHt[4]+mV[4], mHCHt[5]+mV[5] }; - - - //InvertSym3(mS,mS); - InvertCholetsky3(mS); - - //* Residual (measured - estimated) - - Double_t zeta[3] = { m[0]-mHr[0], m[1]-mHr[1], m[2]-mHr[2] }; - - //* Kalman gain K = mCH'*S - - Double_t k[3][3]; - - for(Int_t i=0;i<3;++i){ - k[i][0] = mCHt[i][0]*mS[0] + mCHt[i][1]*mS[1] + mCHt[i][2]*mS[3]; - k[i][1] = mCHt[i][0]*mS[1] + mCHt[i][1]*mS[2] + mCHt[i][2]*mS[4]; - k[i][2] = mCHt[i][0]*mS[3] + mCHt[i][1]*mS[4] + mCHt[i][2]*mS[5]; - } - - //* New estimation of the vertex position r += K*zeta - - for(Int_t i=0;i<3;++i) - r[i] = r[i] + k[i][0]*zeta[0] + k[i][1]*zeta[1] + k[i][2]*zeta[2]; - - //* New covariance matrix C -= K*(mCH')' - - for(Int_t i=0;i<3;++i){ - for(Int_t j=0;j<=i;++j){ - mC[i][j] = mC[i][j] - (k[i][0]*mCHt[j][0] + k[i][1]*mCHt[j][1] + k[i][2]*mCHt[j][2]); - mC[j][i] = mC[i][j]; - } - } - - - //* Calculate Chi^2 - - chi2 += ( ( mS[0]*zeta[0] + mS[1]*zeta[1] + mS[3]*zeta[2] )*zeta[0] - +(mS[1]*zeta[0] + mS[2]*zeta[1] + mS[4]*zeta[2] )*zeta[1] - +(mS[3]*zeta[0] + mS[4]*zeta[1] + mS[5]*zeta[2] )*zeta[2] ); - } - - // store vertex - - fNDF = 2; - fChi2 = chi2; - for( Int_t i=0; i<3; i++ ) fP[i] = r[i]; - for( Int_t i=0,k=0; i<3; i++ ){ - for( Int_t j=0; j<=i; j++,k++ ){ - fC[k] = mC[i][j]; - } - } - } - - // now fit daughters to the vertex - - fQ = 0; - fSFromDecay = 0; - - for(Int_t i=3;i<8;++i) fP[i]=0.; - for(Int_t i=6;i<36;++i) fC[i]=0.; - - - for( Int_t id=0; id<2; id++ ){ - - Double_t *p = daughterP[id]; - Double_t *mC = daughterC[id]; - daughters[id]->GetMeasurement( v0, p, mC ); - - const Double_t *m = fP, *mV = fC; - - Double_t mAi[6]; - for(int i=0; i<6; i++) mAi[i] = mC[i]; - InvertCholetsky3(mAi); - //InvertSym3(mC, mAi ); - - Double_t mB[4][3]; - - mB[0][0] = mC[ 6]*mAi[0] + mC[ 7]*mAi[1] + mC[ 8]*mAi[3]; - mB[0][1] = mC[ 6]*mAi[1] + mC[ 7]*mAi[2] + mC[ 8]*mAi[4]; - mB[0][2] = mC[ 6]*mAi[3] + mC[ 7]*mAi[4] + mC[ 8]*mAi[5]; - - mB[1][0] = mC[10]*mAi[0] + mC[11]*mAi[1] + mC[12]*mAi[3]; - mB[1][1] = mC[10]*mAi[1] + mC[11]*mAi[2] + mC[12]*mAi[4]; - mB[1][2] = mC[10]*mAi[3] + mC[11]*mAi[4] + mC[12]*mAi[5]; - - mB[2][0] = mC[15]*mAi[0] + mC[16]*mAi[1] + mC[17]*mAi[3]; - mB[2][1] = mC[15]*mAi[1] + mC[16]*mAi[2] + mC[17]*mAi[4]; - mB[2][2] = mC[15]*mAi[3] + mC[16]*mAi[4] + mC[17]*mAi[5]; - - mB[3][0] = mC[21]*mAi[0] + mC[22]*mAi[1] + mC[23]*mAi[3]; - mB[3][1] = mC[21]*mAi[1] + mC[22]*mAi[2] + mC[23]*mAi[4]; - mB[3][2] = mC[21]*mAi[3] + mC[22]*mAi[4] + mC[23]*mAi[5]; - - - Double_t z[3] = { m[0]-p[0], m[1]-p[1], m[2]-p[2] }; - - { - Double_t mAV[6] = { mC[0]-mV[0], mC[1]-mV[1], mC[2]-mV[2], - mC[3]-mV[3], mC[4]-mV[4], mC[5]-mV[5] }; - - Double_t mAVi[6]; - for(int i=0; i<6; i++) mAVi[i] = mAV[i]; - InvertCholetsky3(mAVi); -// if( !InvertSym3(mAV, mAVi) ){ - Double_t dChi2 = ( +(mAVi[0]*z[0] + mAVi[1]*z[1] + mAVi[3]*z[2])*z[0] - +(mAVi[1]*z[0] + mAVi[2]*z[1] + mAVi[4]*z[2])*z[1] - +(mAVi[3]*z[0] + mAVi[4]*z[1] + mAVi[5]*z[2])*z[2] ); - fChi2+= TMath::Abs( dChi2 ); - // } - fNDF += 2; - } - - //* Add the daughter momentum to the particle momentum - - fP[3]+= p[3] + mB[0][0]*z[0] + mB[0][1]*z[1] + mB[0][2]*z[2]; - fP[4]+= p[4] + mB[1][0]*z[0] + mB[1][1]*z[1] + mB[1][2]*z[2]; - fP[5]+= p[5] + mB[2][0]*z[0] + mB[2][1]*z[1] + mB[2][2]*z[2]; - fP[6]+= p[6] + mB[3][0]*z[0] + mB[3][1]*z[1] + mB[3][2]*z[2]; - - Double_t d0, d1, d2; - - d0= mB[0][0]*mV[0] + mB[0][1]*mV[1] + mB[0][2]*mV[3] - mC[ 6]; - d1= mB[0][0]*mV[1] + mB[0][1]*mV[2] + mB[0][2]*mV[4] - mC[ 7]; - d2= mB[0][0]*mV[3] + mB[0][1]*mV[4] + mB[0][2]*mV[5] - mC[ 8]; - - //fC[6]+= mC[ 6] + d0; - //fC[7]+= mC[ 7] + d1; - //fC[8]+= mC[ 8] + d2; - fC[9]+= mC[ 9] + d0*mB[0][0] + d1*mB[0][1] + d2*mB[0][2]; - - d0= mB[1][0]*mV[0] + mB[1][1]*mV[1] + mB[1][2]*mV[3] - mC[10]; - d1= mB[1][0]*mV[1] + mB[1][1]*mV[2] + mB[1][2]*mV[4] - mC[11]; - d2= mB[1][0]*mV[3] + mB[1][1]*mV[4] + mB[1][2]*mV[5] - mC[12]; - - //fC[10]+= mC[10]+ d0; - //fC[11]+= mC[11]+ d1; - //fC[12]+= mC[12]+ d2; - fC[13]+= mC[13]+ d0*mB[0][0] + d1*mB[0][1] + d2*mB[0][2]; - fC[14]+= mC[14]+ d0*mB[1][0] + d1*mB[1][1] + d2*mB[1][2]; - - d0= mB[2][0]*mV[0] + mB[2][1]*mV[1] + mB[2][2]*mV[3] - mC[15]; - d1= mB[2][0]*mV[1] + mB[2][1]*mV[2] + mB[2][2]*mV[4] - mC[16]; - d2= mB[2][0]*mV[3] + mB[2][1]*mV[4] + mB[2][2]*mV[5] - mC[17]; - - //fC[15]+= mC[15]+ d0; - //fC[16]+= mC[16]+ d1; - //fC[17]+= mC[17]+ d2; - fC[18]+= mC[18]+ d0*mB[0][0] + d1*mB[0][1] + d2*mB[0][2]; - fC[19]+= mC[19]+ d0*mB[1][0] + d1*mB[1][1] + d2*mB[1][2]; - fC[20]+= mC[20]+ d0*mB[2][0] + d1*mB[2][1] + d2*mB[2][2]; - - d0= mB[3][0]*mV[0] + mB[3][1]*mV[1] + mB[3][2]*mV[3] - mC[21]; - d1= mB[3][0]*mV[1] + mB[3][1]*mV[2] + mB[3][2]*mV[4] - mC[22]; - d2= mB[3][0]*mV[3] + mB[3][1]*mV[4] + mB[3][2]*mV[5] - mC[23]; - - //fC[21]+= mC[21] + d0; - //fC[22]+= mC[22] + d1; - //fC[23]+= mC[23] + d2; - fC[24]+= mC[24] + d0*mB[0][0] + d1*mB[0][1] + d2*mB[0][2]; - fC[25]+= mC[25] + d0*mB[1][0] + d1*mB[1][1] + d2*mB[1][2]; - fC[26]+= mC[26] + d0*mB[2][0] + d1*mB[2][1] + d2*mB[2][2]; - fC[27]+= mC[27] + d0*mB[3][0] + d1*mB[3][1] + d2*mB[3][2]; - } - - SetMassConstraint(0,0); - -} - -Bool_t KFParticleBase::InvertSym3( const Double_t A[], Double_t Ai[] ) -{ - //* Invert symmetric matric stored in low-triagonal form - - Bool_t ret = 0; - Double_t a0 = A[0], a1 = A[1], a2 = A[2], a3 = A[3]; - - Ai[0] = a2*A[5] - A[4]*A[4]; - Ai[1] = a3*A[4] - a1*A[5]; - Ai[3] = a1*A[4] - a2*a3; - Double_t det = (a0*Ai[0] + a1*Ai[1] + a3*Ai[3]); - if( det>1.e-20 ) det = 1./det; - else{ - det = 0; - ret = 1; - } - Ai[0] *= det; - Ai[1] *= det; - Ai[3] *= det; - Ai[2] = ( a0*A[5] - a3*a3 )*det; - Ai[4] = ( a1*a3 - a0*A[4] )*det; - Ai[5] = ( a0*a2 - a1*a1 )*det; - return ret; -} - -void KFParticleBase::InvertCholetsky3(Double_t a[6]) -{ - Double_t d[3], uud, u[3][3]; - for(int i=0; i<3; i++) - { - d[i]=0; - for(int j=0; j<3; j++) - u[i][j]=0; - } - - for(int i=0; i<3 ; i++) - { - uud=0; - for(int j=0; j 0) - os << Form(" %s:%8.3f+/-%6.3f", vn[i], particle.GetParameter(i), TMath::Sqrt(particle.GetCovariance(i,i))); - else - os << Form(" %s:%8.3f", vn[i], particle.GetParameter(i)); - } - Double_t Mtp[3], MtpErr[3]; - particle.GetMass(Mtp[0], MtpErr[0]); if (MtpErr[0] < 1e-7 || MtpErr[0] > 1e10) MtpErr[0] = -13; - particle.GetLifeTime(Mtp[1], MtpErr[1]); if (MtpErr[1] <= 0 || MtpErr[1] > 1e10) MtpErr[1] = -13; - particle.GetMomentum(Mtp[2], MtpErr[2]); if (MtpErr[2] <= 0 || MtpErr[2] > 1e10) MtpErr[2] = -13; - for (Int_t i = 8; i < 11; i++) { - if (i == 9 && Mtp[i-8] <= 0.0) continue; // t - if (MtpErr[i-8] > 0 && MtpErr[i-8] < 1e10) os << Form(" %s:%8.3f+/-%7.3f", vn[i],Mtp[i-8],MtpErr[i-8]); - else os << Form(" %s:%8.3f", vn[i],Mtp[i-8]); - } - os << Form(" pdg:%5i Q:%2i chi2/NDF :%8.2f/%2i",particle.GetPDG(),particle.GetQ(),particle.GetChi2(),particle.GetNDF()); - if (particle.IdTruth()) os << Form(" IdT:%4i/%3i",particle.IdTruth(),particle.QaTruth()); - return os; -} diff --git a/StRoot/StarRoot/KFParticleBase.h b/StRoot/StarRoot/KFParticleBase.h deleted file mode 100644 index a8dc59d82a7..00000000000 --- a/StRoot/StarRoot/KFParticleBase.h +++ /dev/null @@ -1,252 +0,0 @@ -//--------------------------------------------------------------------------------- -// The KFParticleBase class -// . -// @author S.Gorbunov, I.Kisel -// @version 1.0 -// @since 13.05.07 -// -// Class to reconstruct and store the decayed particle parameters. -// The method is described in CBM-SOFT note 2007-003, -// ``Reconstruction of decayed particles based on the Kalman filter'', -// http://www.gsi.de/documents/DOC-2007-May-14-1.pdf -// -// This class describes general mathematics which is used by KFParticle class -// -// -= Copyright © ALICE HLT Group =- -//_________________________________________________________________________________ -#ifndef KFParticleBASE_H -#define KFParticleBASE_H -#include "TObject.h" -class KFParticleBase : public TObject { - public: - // ABSTRACT METHODS HAVE TO BE DEFINED IN USER CLASS - // Virtual method to access the magnetic field - virtual void GetFieldValue(const Double_t xyz[], Double_t B[]) const = 0; - // Virtual methods needed for particle transportation - // One can use particular implementations for collider (only Bz component) - // geometry and for fixed-target (CBM-like) geometry which are provided below - // in TRANSPORT section - - // Get dS to xyz[] space point - virtual Double_t GetDStoPoint( const Double_t xyz[] ) const = 0; - // Get dS to other particle p (dSp for particle p also returned) - virtual void GetDStoParticle( const KFParticleBase &p, - Double_t &DS, Double_t &DSp ) const = 0; - // Transport on dS value along trajectory, output to P,C - virtual void Transport( Double_t dS, Double_t P[], Double_t C[] ) const = 0; - KFParticleBase(); - virtual ~KFParticleBase() {} - // Initialisation from "cartesian" coordinates ( X Y Z Px Py Pz ) - // Parameters, covariance matrix, charge, and mass hypothesis should be provided - void Initialize( const Double_t Param[], const Double_t Cov[], Int_t Charge, Double_t Mass, Int_t PID = 0); - // Initialise covariance matrix and set current parameters to 0.0 - void Initialize(); - virtual void Clear(Option_t * /*option*/ =""); - // Set decay vertex parameters for linearisation - void SetVtxGuess( Double_t x, Double_t y, Double_t z ); - void SetID(Int_t id=0) {fID = id;} - void SetParentID(Int_t id=0) {fParentID = id;} - // ACCESSORS - Int_t GetID() const {return fID;} - Int_t GetParentID() const {return fParentID;} - Double_t GetX () const { return fP[0]; } - Double_t GetY () const { return fP[1]; } - Double_t GetZ () const { return fP[2]; } - Double_t GetPx () const { return fP[3]; } - Double_t GetPy () const { return fP[4]; } - Double_t GetPz () const { return fP[5]; } - Double_t GetE () const { return fP[6]; } - Double_t GetS () const { return fP[7]; } - Short_t GetQ () const { return fQ; } - Double_t GetChi2 () const { return fChi2; } - Short_t GetNDF () const { return fNDF; } - - const Double_t *GetParameter() const { return fP;} - Double_t GetParameter ( Int_t i ) const { return fP[i];} - const Double_t *GetCovariance() const { return fC;} - Double_t GetCovariance( Int_t i ) const { return fC[i]; } - Double_t GetCovariance( Int_t i, Int_t j ) const { return fC[IJ(i,j)]; } - - // Accessors with calculations( &value, &estimated sigma ) - // error flag returned (0 means no error during calculations) - - Int_t GetMomentum ( Double_t &P, Double_t &SigmaP ) const ; - Int_t GetPt ( Double_t &Pt, Double_t &SigmaPt ) const ; - Int_t GetEta ( Double_t &Eta, Double_t &SigmaEta ) const ; - Int_t GetPhi ( Double_t &Phi, Double_t &SigmaPhi ) const ; - Int_t GetMass ( Double_t &M, Double_t &SigmaM ) const ; - Int_t GetDecayLength ( Double_t &L, Double_t &SigmaL ) const ; - Int_t GetDecayLengthXY ( Double_t &L, Double_t &SigmaL ) const ; - Int_t GetLifeTime ( Double_t &T, Double_t &SigmaT ) const ; - Int_t GetR ( Double_t &R, Double_t &SigmaR ) const ; - - // - // MODIFIERS - // - - Double_t & X () { return fP[0]; } - Double_t & Y () { return fP[1]; } - Double_t & Z () { return fP[2]; } - Double_t & Px () { return fP[3]; } - Double_t & Py () { return fP[4]; } - Double_t & Pz () { return fP[5]; } - Double_t & E () { return fP[6]; } - Double_t & S () { return fP[7]; } - Short_t & Q () { return fQ; } - Double_t & Chi2 () { return fChi2; } - Short_t & NDF () { return fNDF; } - - Double_t & Parameter ( Int_t i ) { return fP[i]; } - Double_t & Covariance( Int_t i ) { return fC[i]; } - Double_t & Covariance( Int_t i, Int_t j ) { return fC[IJ(i,j)]; } - - - // - // CONSTRUCTION OF THE PARTICLE BY ITS DAUGHTERS AND MOTHER - // USING THE KALMAN FILTER METHOD - // - - - // Simple way to add daughter ex. D0+= Pion; - - void operator +=( const KFParticleBase &Daughter ); - - // Add daughter track to the particle - - void AddDaughter( const KFParticleBase &Daughter ); - - // Set production vertex - - void SetProductionVertex( const KFParticleBase &Vtx ); - - // Set mass constraint - - void SetMassConstraint( Double_t Mass, Double_t SigmaMass = 0 ); - - // Set no decay length for resonances - - void SetNoDecayLength(); - - - // Everything in one go - - void Construct( const KFParticleBase *vDaughters[], Int_t NDaughters, - const KFParticleBase *ProdVtx=0, Double_t Mass=-1, Bool_t IsConstrained=0 ); - - - // - // TRANSPORT - // - // ( main transportation parameter is S = SignedPath/Momentum ) - // ( parameters of decay & production vertices are stored locally ) - // - - - // Transport the particle to its decay vertex - - void TransportToDecayVertex(); - - // Transport the particle to its production vertex - - void TransportToProductionVertex(); - - // Transport the particle on dS parameter (SignedPath/Momentum) - - void TransportToDS( Double_t dS ); - - // Particular extrapolators one can use - - Double_t GetDStoPointBz( Double_t Bz, const Double_t xyz[] ) const; - - void GetDStoParticleBz( Double_t Bz, const KFParticleBase &p, - Double_t &dS, Double_t &dS1 ) const ; - - // Double_t GetDStoPointCBM( const Double_t xyz[] ) const; - - void TransportBz( Double_t Bz, Double_t dS, Double_t P[], Double_t C[] ) const; - void TransportCBM( Double_t dS, Double_t P[], Double_t C[] ) const; - - - // - // OTHER UTILITIES - // - - // Calculate distance from another object [cm] - - Double_t GetDistanceFromVertex( const Double_t vtx[] ) const; - Double_t GetDistanceFromVertex( const KFParticleBase &Vtx ) const; - Double_t GetDistanceFromParticle( const KFParticleBase &p ) const; - - // Calculate sqrt(Chi2/ndf) deviation from vertex - // v = [xyz], Cv=[Cxx,Cxy,Cyy,Cxz,Cyz,Czz]-covariance matrix - - Double_t GetDeviationFromVertex( const Double_t v[], - const Double_t Cv[]=0 ) const; - Double_t GetDeviationFromVertex( const KFParticleBase &Vtx ) const; - Double_t GetDeviationFromParticle( const KFParticleBase &p ) const; - - // Subtract the particle from the vertex - - void SubtractFromVertex( KFParticleBase &Vtx ) const ; - void SubtractFromParticle( KFParticleBase &Vtx ) const; - - // Special method for creating gammas - - void ConstructGammaBz( const KFParticleBase &daughter1, - const KFParticleBase &daughter2, Double_t Bz ); - virtual void Print(Option_t *opt="") const; - Int_t IdTruth() const { return fIdTruth;} - Int_t QaTruth() const { return fQuality; } - Int_t IdParentMcVx() const {return fIdParentMcVx;} - Int_t IdParentVx() const {return IdParentMcVx();} - - void SetIdTruth(Int_t idtru,Int_t qatru=0) {fIdTruth = (UShort_t) idtru; fQuality = (UShort_t) qatru;} - void SetIdParentMcVx(Int_t id) {fIdParentMcVx = id;} - void SetPDG ( Int_t pdg ) { fPDG = pdg; } - Int_t GetPDG () const { return fPDG; } - protected: - - static Int_t IJ( Int_t i, Int_t j ){ - return ( j<=i ) ? i*(i+1)/2+j :j*(j+1)/2+i; - } - - Double_t & Cij( Int_t i, Int_t j ){ return fC[IJ(i,j)]; } - - void Convert( Bool_t ToProduction ); - void TransportLine( Double_t S, Double_t P[], Double_t C[] ) const ; - Double_t GetDStoPointLine( const Double_t xyz[] ) const; - - static Bool_t InvertSym3( const Double_t A[], Double_t Ainv[] ); - static void InvertCholetsky3(Double_t a[6]); - - static void MultQSQt( const Double_t Q[], const Double_t S[], - Double_t SOut[] ); - - static Double_t GetSCorrection( const Double_t Part[], const Double_t XYZ[] ); - - void GetMeasurement( const Double_t XYZ[], Double_t m[], Double_t V[] ) const ; - - Char_t fBeg[1]; //! - Int_t fID; - Int_t fParentID; - Double32_t fP[8]; // Main particle parameters {X,Y,Z,Px,Py,Pz,E,S[=DecayLength/P]} - Double32_t fC[36]; // Low-triangle covariance matrix of fP - Short_t fQ; // Particle charge - Short_t fNDF; // Number of degrees of freedom - Double32_t fChi2; // Chi^2 - - Double32_t fSFromDecay; // Distance from decay vertex to current position - Bool_t fAtProductionVertex; //! Flag shows that the particle error along its trajectory is taken from production vertex - - Double32_t fVtxGuess[3]; //! Guess for the position of the decay vertex ( used for linearisation of equations ) - - Bool_t fIsLinearized; //! Flag shows that the guess is present - UShort_t fIdTruth; // MC track id - UShort_t fQuality; // quality of this information (percentage of hits coming from the above MC track) - UShort_t fIdParentMcVx; // for track and McTrack for vertex - Short_t fPDG; // pdg hypothesis - Char_t fEnd[1]; //! - ClassDef(KFParticleBase,4) -}; -std::ostream& operator<<(std::ostream& os, KFParticleBase const & particle); -#endif diff --git a/StRoot/StarRoot/KFVertex.cxx b/StRoot/StarRoot/KFVertex.cxx deleted file mode 100644 index d0f05c4a618..00000000000 --- a/StRoot/StarRoot/KFVertex.cxx +++ /dev/null @@ -1,129 +0,0 @@ -//---------------------------------------------------------------------------- -// Implementation of the KFVertex class -// . -// @author S.Gorbunov, I.Kisel -// @version 1.0 -// @since 13.05.07 -// -// Class to reconstruct and store primary and secondary vertices -// The method is described in CBM-SOFT note 2007-003, -// ``Reconstruction of decayed particles based on the Kalman filter'', -// http://www.gsi.de/documents/DOC-2007-May-14-1.pdf -// -// This class is ALICE interface to general mathematics in KFParticleCore -// -// -= Copyright © ALICE HLT Group =- -//____________________________________________________________________________ - - -#include "KFVertex.h" - -ClassImp(KFVertex) - - -KFVertex::KFVertex( const VVertex &vertex ): fIsConstrained(0) -{ - // Constructor from ALICE VVertex - - vertex.GetXYZ( fP ); - vertex.GetCovarianceMatrix( fC ); - fChi2 = vertex.GetChi2(); - fNDF = 2*vertex.GetNContributors() - 3; - fQ = 0; - fAtProductionVertex = 0; - fIsLinearized = 0; - fSFromDecay = 0; -} - -/* -void KFVertex::Print(Option_t* ) const -{ - cout<<"KFVertex position: "<2 ) - { - Double_t worstChi = 0.; - Int_t worstDaughter = 0; - for( Int_t it=0; it=2 ){// final refit - SetVtxGuess( fP[0], fP[1], fP[2] ); - if( fIsConstrained ){ - fP[0] = constrP[0]; - fP[1] = constrP[1]; - fP[2] = constrP[2]; - for( int i=0; i<6; i++ ) fC[i] = constrC[i]; - } - int nDaughtersNew=0; - const KFParticle **vDaughtersNew=new const KFParticle *[NDaughters]; - for( int i=0; iChiCut*ChiCut*GetNDF() ){ - for( int i=0; iClear(option); - fNKFVtx = 0; fKFVtx->Clear(option); - fNDKFPair = 0; fDKFPair->Clear(option); - fNKFKFPair = 0; fKFKFPair->Clear(option); - } - void Reset(Option_t */* option = "" */) {SafeDelete(fgMuDstVtx); SafeDelete(fgKFVtx); SafeDelete(fgDKFPair); SafeDelete(fgKFKFPair);} - Int_t NoMuDstVtx() {return fNMuDstVtx;} - TClonesArray *MuDstVtx() {return fMuDstVtx;} - Int_t NoKFVtx() {return fNKFVtx;} - TClonesArray *KFVtx() {return fKFVtx;} - Int_t NoDKFPair() {return fNDKFPair;} - TClonesArray *DKFPair() {return fDKFPair;} - Int_t NoKFKFPair() {return fNKFKFPair;} - TClonesArray *KFKFPair() {return fKFKFPair;} -private: - Double_t fTemperature; - Int_t fNMuDstVtx; - Int_t fNKFVtx; - Int_t fNDKFPair; - Int_t fNKFKFPair; - TClonesArray *fMuDstVtx; //-> - TClonesArray *fKFVtx; //-> - TClonesArray *fDKFPair; //-> - TClonesArray *fKFKFPair; //-> - static TClonesArray *fgMuDstVtx; - static TClonesArray *fgKFVtx; - static TClonesArray *fgDKFPair; - static TClonesArray *fgKFKFPair; - - ClassDef(StKFEvent,1) -}; -#endif diff --git a/StRoot/StiMaker/StKFTrack.cxx b/StRoot/StiMaker/StKFTrack.cxx deleted file mode 100644 index 274ee0d9760..00000000000 --- a/StRoot/StiMaker/StKFTrack.cxx +++ /dev/null @@ -1,77 +0,0 @@ -// $Id: StKFTrack.cxx,v 2.3 2018/04/10 11:32:09 smirnovd Exp $ -#include "StKFTrack.h" -//________________________________________________________________________________ -StKFTrack::StKFTrack(Int_t k, KFParticle *particle, Double_t chi2, Int_t iWE) : - fK(k), fWeight(-1), fW(-1), fOrigKFParticle(particle), fWestOrEast(iWE) { - if (particle) { - fParticle = KFParticle(*particle); - SetChi2(chi2); - } -} -//________________________________________________________________________________ -void StKFTrack::SetChi2(Double_t chi2) { - fChi2 = chi2; - if (fChi2 >= 0) { - fWeight = TMath::Exp(-fChi2/(2.*StAnneling::Temperature())); - } else { - fWeight = -1; - } -} -//________________________________________________________________________________ -Int_t StKFTrack::CorrectGePid(Int_t gePid) { - // By pass embedding particle redefinition - if (gePid == 99) gePid = 11151; - if (gePid == 207) gePid = 41; - if (gePid == 40001) gePid = 24; - if (gePid == 98) gePid = 18; - if (gePid == 40002) gePid = 32; - if (gePid == 97) gePid = 26; - if (gePid == 40003) gePid = 23; - if (gePid == 40004) gePid = 31; - if (gePid == 40005) gePid = 22; - if (gePid == 40006) gePid = 30; - if (gePid == 10150) gePid = 150; - if (gePid == 10151) gePid = 151; - if (gePid == 11151) gePid = 10151; - if (gePid == 10018) gePid = 98; - if (gePid == 10026) gePid = 97; - if (gePid == 10017) gePid = 17; - if (gePid == 10039) gePid = 39; - if (gePid == 10040) gePid = 40; - if (gePid == 98) gePid = 18; - if (gePid == 97) gePid = 26; - if (gePid < 0 || gePid > 50) { - std::cout << "Illegal gePid " << gePid << std::endl; - } - if (gePid < 0 || gePid > 50) gePid = 51; - return gePid; -} -//________________________________________________________________________________ -std::ostream& operator<<(std::ostream& os, const StKFTrack& p) { - os << Form("%5i %9.3f %9.3f %9.3f %9.3f", - p.K(),p.Weight(),p.W(),p.OrigParticle()->GetZ(),p.Chi2()); - return os; -} -// $Log: StKFTrack.cxx,v $ -// Revision 2.3 2018/04/10 11:32:09 smirnovd -// Minor corrections across multiple files -// -// - Remove ClassImp macro -// - Change white space -// - Correct windows newlines to unix -// - Remove unused debugging -// - Correct StTpcRTSHitMaker header guard -// - Remove unused preprocessor directives in StiCA -// - Minor changes in status and debug print out -// - Remove using std namespace from StiKalmanTrackFinder -// - Remove includes for unused headers -// -// Revision 2.2 2012/06/11 15:33:41 fisyak -// std namespace -// -// Revision 2.1 2012/05/07 14:56:14 fisyak -// Add StKFVertexMaker -// -// Revision 1.2 2012/02/07 19:38:26 fisyak -// Repackage -// diff --git a/StRoot/StiMaker/StKFTrack.h b/StRoot/StiMaker/StKFTrack.h deleted file mode 100644 index 421101ad078..00000000000 --- a/StRoot/StiMaker/StKFTrack.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef __StKFTrack_h__ -#define __StKFTrack_h__ -// $Id: StKFTrack.h,v 2.2 2012/06/11 15:33:41 fisyak Exp $ -#include "Riostream.h" -#include "TObject.h" -#include "KFParticle.h" -#include "TRSymMatrix.h" -#include "StAnneling.h" -#include "TString.h" -class StKFTrack; -std::ostream& operator<<(std::ostream& os, const StKFTrack& p); -class StKFTrack : public TObject { -public: - StKFTrack(Int_t k = -1, KFParticle *particle = 0, Double_t chi2=-1, Int_t iWE = 0); - virtual ~StKFTrack() {} - void SetChi2(Double_t chi2=-1); - void Reset() {fParticle = KFParticle(*fOrigKFParticle);} - Int_t K() const {return fK;} // index in particle array - Double_t Weight() const {return fWeight;} // adaptive weight - Double_t W() const {return fW;} // adaptive weigth for multi vertices - Double_t Chi2() const {return fChi2;} - KFParticle Particle()const {return fParticle;}// particle with modified covariance matrix accourdingly to weight - KFParticle &Particle(){return *&fParticle;}// particle with modified covariance matrix accourdingly to weight - - Double_t &Weight() {return *&fWeight;} // adaptive weight - Double_t &W() {return *&fW;} // adaptive weigth for multi vertices - Double_t &Chi2() {return *&fChi2;} - KFParticle *OrigParticle() const {return fOrigKFParticle;} // - Bool_t IsWest() {return fWestOrEast > 0;} - Bool_t IsEast() {return fWestOrEast < 0;} - void Print(Option_t *option="") const {if (option) {}; std::cout << *this << std::endl;} - static Int_t CorrectGePid(Int_t gePid); -private: - const Int_t fK; // index in particle array - Double_t fWeight; // adaptive weight - Double_t fW; // adaptive weigth for multi vertices - Double_t fChi2; - KFParticle fParticle;// particle with modified covariance matrix accourdingly to weight - KFParticle *fOrigKFParticle; // - Int_t fWestOrEast; - ClassDef(StKFTrack,0) -}; -// $Log: StKFTrack.h,v $ -// Revision 2.2 2012/06/11 15:33:41 fisyak -// std namespace -// -// Revision 2.1 2012/05/07 14:56:14 fisyak -// Add StKFVertexMaker -// -// Revision 1.2 2012/02/07 19:38:26 fisyak -// Repackage -// -#endif diff --git a/StRoot/StiMaker/StKFVertex.cxx b/StRoot/StiMaker/StKFVertex.cxx deleted file mode 100644 index dc7f82c67c2..00000000000 --- a/StRoot/StiMaker/StKFVertex.cxx +++ /dev/null @@ -1,244 +0,0 @@ -// $Id: StKFVertex.cxx,v 2.5 2018/04/10 11:32:09 smirnovd Exp $ -#include "StKFVertex.h" -#include "StKFTrack.h" -#include "TArrayC.h" - -#define __DEBUG__ -#if defined(__DEBUG__) -#define PrPP(A,B) if (Debug()) {cout << "StKFVertex::" << (#A) << "\t" << (#B) << " = \t" << (B) << endl;} -#else -#define PrPP(A,B) -#endif -using namespace std; -Int_t StKFVertex::_debug = 0; -const Char_t *StKFVertex::GeNames[52] = { - // 1 2 3 4 5 6 7 8 9 10 - "", - "gamma" ,"e+" ,"e-" ,"nu" ,"mu+" ,"mu-" ,"pi0" ,"pi+" ,"pi-" ,"K0L", - "K+" ,"K-" ,"N" ,"P" ,"Pbar" ,"K0S" ,"eta" ,"Lambda","Sigma+" ,"Sigma0", - "S-" ,"Xi0" ,"Xi-" ,"Omega","Nbar" ,"LamBar","SBar-","SBar0" ,"SBar+" ,"XiBar0", - "XiBar+" ,"OmBar","tau+","tau-" ,"D+" ,"D-" ,"D0" ,"Dbar0" ,"Ds+" ,"Ds-" , - "LambC+" ,"W+" ,"W-" ,"Z0" ,"H2" ,"H3" ,"alpha","geanti","He3" ,"Cerenk", - "??????"}; -//________________________________________________________________________________ -ostream& operator<<(ostream& os, const StKFVertex& v) { - Int_t iWest = v.MultW(); - Int_t iEast = v.MultE(); - os << Form(" with %4i tracks Q:%3i W/E = %3i/%3i",v.NoTracks(),v.Charge(),iWest,iEast); - for (Int_t i = 0; i < 3; i++) { - os << Form("%9.3f +/- %5.3f",v.Vertex().GetParameter(i),TMath::Sqrt(v.Vertex().GetCovariance(i,i))); - } - Double_t prob = TMath::Prob(v.Vertex().GetChi2(),v.Vertex().GetNDF()); - os << Form("\tchi2/NDF = %8.2f/%4i",v.Vertex().GetChi2(),v.Vertex().GetNDF()) - << Form(" prob = %6.4f",prob); - Double_t M, dM; - if (! v.Vertex().GetMass(M,dM)) { - os << " M = " << Form("%7.3f +/- %5.3f",M,dM); - } - Int_t kv = v.IdTruth(); - if (kv > 0) { - os << Form(" Mc/QA/t:%4i/%3i/%6.0f xyz: %8.3f%8.3f%8.3f m:%4i %6s",kv, v.QaTruth(), - v.TimeMc(), v.XyzMc().X(), v.XyzMc().Y(), v.XyzMc().Z(), - v.NoDaughtersMc(),StKFVertex::StKFVertex::GeNames[v.gePidMc()]); - } - return os; -} -//________________________________________________________________________________ -void StKFVertex::Fit() { - Compress(); - Int_t N = NoTracks(); - if (! N) return; - KFParticle **particles = new KFParticle*[N]; - for (Int_t i = 0; i < N; i++) { - // Track(i)->Reset(); - particles[i] = &(Track(i)->Particle()); - } - TArrayC Flag(N); - Vertex().ConstructPrimaryVertex((const KFParticle **) particles, N, - (Bool_t*) Flag.GetArray(),TMath::Sqrt(StAnneling::Chi2Cut()/2)); - //Check Covariance Matrix - // Double_t prob = TMath::Prob(Vertex().GetChi2(),Vertex().GetNDF()); - TRSymMatrix CL(3,Vertex().CovarianceMatrix()); - if (CL[0] <= 0 || CL[2] <= 0 || CL[5] <= 0) { - for (Int_t i = N-1; i >= 0; i--) delete Remove(i); - } else { - for (Int_t i = N-1; i >= 0; i--) if (! Flag[i]) delete Remove(i); - } - delete [] particles; - Compress(); - N = NoTracks(); - // Assign MC and RC - struct vertexPing { - Int_t Id; - Int_t nPings; - }; - static vertexPing candidates[20]; - memset(candidates,0,sizeof(candidates)); - Int_t NC = 0; - for (Int_t i = 0; i < N; i++) { - const StKFTrack *pTrack = Track(i); - if (! pTrack) continue; - Int_t IdVx = pTrack->Particle().IdParentVx(); - if (IdVx <= 0) continue; - Int_t J = -1; - for (Int_t j = 0; j < NC; j++) if (candidates[j].Id == IdVx) {J = j; break;} - if (J < 0) {J = NC; if (NC < 18) NC++;} - candidates[J].Id = IdVx; - candidates[J].nPings++; - } - Int_t dominant = -1; - Int_t J = -1; - for (Int_t j = 0; j < NC; j++) if (candidates[j].nPings > dominant) {dominant = candidates[j].nPings; J = j;} - if (J > -1) { - Int_t Id = candidates[J].Id; - Int_t QA = (100*dominant)/N; - SetIdTruth(Id,QA); - } - for (Int_t i = 0; i < N; i++) { - Track(i)->Particle().SetProductionVertex(Vertex()); - } -} -//________________________________________________________________________________ -void StKFVertex::AddTrack(const StKFTrack *track) { - Int_t k2 = track->K()%100000; - Int_t N1 = NoTracks(); - for (Int_t j = 0; j < N1; j++) {// protect from multiple copies of beam track - StKFTrack* t1 = Track(j); - Int_t k1 = t1->K()%100000; - if (k1 == k2) { - PrintW("AddTrack"); - assert(0); - } - } - fKFTracks.AddLast((TObject *)track); -} -//________________________________________________________________________________ -Double_t StKFVertex::UpdateVertex2TrackChi2() { - Int_t Ntracks = NoTracks(); - Double_t chi2Vx = 0; - PrPP(UpdateVertex2TrackChi2,fVertex); - if (_debug) PrintW("old Weghts "); - for (Int_t k = Ntracks - 1; k >= 0; k--) { - KFVertex vTmp = fVertex; - // PrPP(UpdateVertex2TrackChi2,vTmp); - StKFTrack &track = *Track(k); - // PrPP(UpdateVertex2TrackChi2,track.Particle()); - vTmp -= track.Particle(); - // PrPP(UpdateVertex2TrackChi2,vTmp); - KFParticle *particle = track.OrigParticle(); - if (! particle) continue; - // PrPP(UpdateVertex2TrackChi2,*particle); - Double_t chi2il = particle->GetDeviationFromVertex(vTmp); - chi2il *= 2*chi2il; - if (chi2il > StAnneling::Chi2Cut()) { - Remove(k); - continue; - } - track.SetChi2(chi2il); - chi2Vx += track.Chi2()/2 + TMath::Log(track.Weight() + StAnneling::Weight()); - } - Compress(); - if (_debug) PrintW("new Weights "); - return chi2Vx; -} -//________________________________________________________________________________ -StKFTrack* StKFVertex::Remove(KFParticle *particle) { - Int_t N = NoTracks(); - for (Int_t k = 0; k < N; k++) if (particle == Track(k)->OrigParticle()) return Remove(k); - return 0; -} -//________________________________________________________________________________ -Int_t StKFVertex::MultWE(Int_t k) const { - Int_t N = NoTracks(); - Int_t iWE = 0; - for (Int_t i = 0; i < N; i++) { - const StKFTrack* t = Track(i); - if (t) { - Int_t id = (t->OrigParticle()->GetID()/100000)%10; - if (id == k) iWE++; - } - } - return iWE; -} -//________________________________________________________________________________ -Int_t StKFVertex::Q() const { - Int_t iQ = 0; - Int_t N = NoTracks(); - for (Int_t i = 0; i < N; i++) { - const StKFTrack* t = Track(i); - if (t) {iQ += t->OrigParticle()->GetQ();} - } - return iQ; -} -//________________________________________________________________________________ -void StKFVertex::operator +=(StKFVertex &vtx) { - if (_debug) { - PrintW("Before Merge 1"); - vtx.PrintW("Before Merge 2"); - } - Int_t N2 = vtx.NoTracks(); - for (Int_t i = N2-1; i >= 0; i--) { - StKFTrack* t2 = (StKFTrack* ) vtx.Remove(i); - Int_t k2 = t2->K()%100000; - Int_t N1 = NoTracks(); - for (Int_t j = 0; j < N1; j++) {// protect from multiple copies of beam track - StKFTrack* t1 = Track(j); - Int_t k1 = t1->K()%100000; - if (k1 == k2) {SafeDelete(t2); break;} - } - if (t2) fKFTracks.AddLast(t2); - } - vtx.Compress(); - if (_debug) { - PrintW("After Merge 1"); - vtx.PrintW("After Merge 2"); - } -} -//________________________________________________________________________________ -void StKFVertex::PrintW(Option_t *option) const { - Int_t N = NoTracks(); - cout << Form("Vertex %5i with %5i tracks\t",fID,N); - Print(option); - cout << Form(" i k Weight W Z chi2") << endl; - for (Int_t i = 0; i < N; i++) { - const StKFTrack* t = Track(i); - cout << Form("%6i",i) << *t << endl; - } -} -//________________________________________________________________________________ -void StKFVertex::SetMc(Float_t time, Float_t x, Float_t y, Float_t z, Int_t NoDaughters, Int_t gePid) { - fTimeMc = 1e9*time; - fXyzMc = TVector3(x,y,z); - fNoDaughtersMc = NoDaughters; - fgePidMc = StKFTrack::CorrectGePid(gePid); -} -#undef PrPP -// $Log: StKFVertex.cxx,v $ -// Revision 2.5 2018/04/10 11:32:09 smirnovd -// Minor corrections across multiple files -// -// - Remove ClassImp macro -// - Change white space -// - Correct windows newlines to unix -// - Remove unused debugging -// - Correct StTpcRTSHitMaker header guard -// - Remove unused preprocessor directives in StiCA -// - Minor changes in status and debug print out -// - Remove using std namespace from StiKalmanTrackFinder -// - Remove includes for unused headers -// -// Revision 2.4 2013/04/10 22:14:20 fisyak -// Roll back to version 04/04/2013 -// -// Revision 2.2 2012/06/11 15:33:41 fisyak -// std namespace -// -// Revision 2.1 2012/05/07 14:56:14 fisyak -// Add StKFVertexMaker -// -// Revision 1.3 2012/03/29 23:35:47 fisyak -// Fix problem with multiple beam tracks -// -// Revision 1.2 2012/02/07 19:38:26 fisyak -// Repackage -// diff --git a/StRoot/StiMaker/StKFVertex.h b/StRoot/StiMaker/StKFVertex.h deleted file mode 100644 index e4c12aac4b1..00000000000 --- a/StRoot/StiMaker/StKFVertex.h +++ /dev/null @@ -1,86 +0,0 @@ -#ifndef __StKFVertex_h__ -#define __StKFVertex_h__ -// $Id: StKFVertex.h,v 2.4 2013/04/10 22:14:20 fisyak Exp $ -#include "Riostream.h" -#include "TObject.h" -#include "StKFTrack.h" -#include "TObjArray.h" -#include "KFVertex.h" -#include "TVector3.h" - -class StKFVertex; -std::ostream& operator<<(std::ostream& os, const StKFVertex& v); -class StKFVertex : public TObject { -public: - StKFVertex(Int_t id = -1) : fID(id) , fIdTruth(0), fQuality(0), fIdParentTk(0), - fTimeMc(0), fNoDaughtersMc(0), fgePidMc(0) - {fKFTracks.SetOwner(kTRUE); Clear();} - virtual ~StKFVertex() {Clear();} - void AddTrack(const StKFTrack *track); - virtual void Clear(Option_t *opt="") {fKFTracks.Clear(opt);} - StKFTrack* Remove(Int_t k=0) {return (StKFTrack *) fKFTracks.RemoveAt(k);} - StKFTrack* Remove(StKFTrack *track) {return (StKFTrack *) fKFTracks.Remove(track);} - StKFTrack* Remove(KFParticle *particle); - Int_t ID() const {return fID;} - KFVertex &Vertex() {return *&fVertex;} - KFVertex Vertex() const {return fVertex;} - TObjArray &Tracks() {return *&fKFTracks;} - Int_t NoTracks() const {return fKFTracks.GetEntriesFast();} - Int_t Charge() const {return fVertex.GetQ();} - StKFTrack* Track(Int_t k = 0) {return (StKFTrack* ) fKFTracks[k];} - const StKFTrack* Track(Int_t k = 0) const {return (const StKFTrack* ) fKFTracks[k];} - Double_t UpdateVertex2TrackChi2(); - void Compress() {fKFTracks.Compress();} - void Fit(); - Int_t IdTruth() const { return fIdTruth;} - Int_t QaTruth() const { return fQuality; } - Int_t IdParentTk() const {return fIdParentTk;} - void SetIdTruth(Int_t idtru,Int_t qatru=0) {fIdTruth = (UShort_t) idtru; fQuality = (UShort_t) qatru;} - void SetIdParentTk(Int_t id) {fIdParentTk = id;} - Int_t MultW() const {return MultWE(1);} - Int_t MultE() const {return MultWE(2);} - Int_t MultWE(Int_t k = 1) const; - Int_t Q() const; - void operator +=(StKFVertex &vtx); - void Print(Option_t *option="") const {std::cout << option << *this << std::endl; } - void PrintW(Option_t *option="") const; - void SetMc(Float_t time, Float_t x, Float_t y, Float_t z, Int_t NoDaughters, Int_t gePid); - Float_t TimeMc() const {return fTimeMc;} - const TVector3 &XyzMc() const {return *&fXyzMc;} - Int_t NoDaughtersMc() const {return fNoDaughtersMc;} - Int_t gePidMc() const {return fgePidMc;} - static void SetDebug(Int_t k = 0) {_debug = k;} - static Int_t Debug() {return _debug;} -private: - Int_t fID; - KFVertex fVertex; - TObjArray fKFTracks; - UShort_t fIdTruth; // MC vertex id - UShort_t fQuality; // quality of this information (percentage of hits coming from the above MC track) - Int_t fIdParentTk; - Float_t fTimeMc; - TVector3 fXyzMc; - Int_t fNoDaughtersMc; - Int_t fgePidMc; - public: - static Int_t _debug; - static const Char_t *GeNames[52]; - ClassDef(StKFVertex,0) -}; -// $Log: StKFVertex.h,v $ -// Revision 2.4 2013/04/10 22:14:20 fisyak -// Roll back to version 04/04/2013 -// -// Revision 2.2 2012/06/11 15:33:41 fisyak -// std namespace -// -// Revision 2.1 2012/05/07 14:56:14 fisyak -// Add StKFVertexMaker -// -// Revision 1.3 2012/03/29 23:35:47 fisyak -// Fix problem with multiple beam tracks -// -// Revision 1.2 2012/02/07 19:38:26 fisyak -// Repackage -// -#endif diff --git a/StRoot/StiMaker/StKFVertexMaker.cxx b/StRoot/StiMaker/StKFVertexMaker.cxx deleted file mode 100644 index 538907cbb38..00000000000 --- a/StRoot/StiMaker/StKFVertexMaker.cxx +++ /dev/null @@ -1,649 +0,0 @@ -// $Id: StKFVertexMaker.cxx,v 2.8 2018/04/10 11:32:09 smirnovd Exp $ -#include "RVersion.h" -#if ROOT_VERSION_CODE < 331013 -#include "TCL.h" -#else -#include "TCernLib.h" -#endif -#include -using std::map; -#include "TMath.h" -#include "TH1.h" -#include "TCanvas.h" -#include "StDcaGeometry.h" -#include "KFParticle.h" -#include "KFVertex.h" -#include "MTrack.h" -#include "VVertex.h" -#include "TH1K.h" -#include "StAnneling.h" -#include "StKFEvent.h" -#include "StKFTrack.h" -#include "StKFVertex.h" -#include "StKFVerticesCollection.h" -#include "StVertexP.h" -#include "StVertexT.h" -#include "TDirectory.h" -#include "StEventTypes.h" -#include "Stypes.h" -#include "SystemOfUnits.h" -#include "StKFVertexMaker.h" -#include "StDetectorDbMaker/St_vertexSeedC.h" -#include "Sti/StiHit.h" -#include "Sti/StiKalmanTrack.h" -#include "Sti/StiKalmanTrackNode.h" -#include "StiStEventFiller.h" -#include "TRMatrix.h" -#include "TRSymMatrix.h" -#include "Sti/StiToolkit.h" -#include "TArrayI.h" - -StKFVerticesCollection *StKFVertexMaker::fcVertices = 0; -//________________________________________________________________________________ -StKFVertexMaker::~StKFVertexMaker() { - SafeDelete(fVtxM); - for (Int_t pass = 0; pass < fNPasses; pass++) { - SafeDelete(fVtxKs[pass]); - SafeDelete(fVtxKs[pass]); - } - SafeDelete(fSpectrum); - SafeDelete(func); - SafeDelete(fminBrent); - delete [] fVerticesPass; fVerticesPass = 0; - SafeDelete(fParticles); -} -//________________________________________________________________________________ -void StKFVertexMaker::Clear(Option_t *option) { - for (Int_t pass = 0; pass < fNPasses; pass++) { - fVtxKs[pass]->Reset(); - fVtxKs[pass]->SetMaximum(); - fVtxs[pass]->Reset(); - fVtxs[pass]->SetMaximum(); - } - fVtx = fVtxs[0]; // << switch between types Vtx = fVtxKs[0]; - fVtxM->Reset(); - fcVertices = 0; - fParticles->Clear("C"); -} -//________________________________________________________________________________ -StKFVertexMaker::StKFVertexMaker(const char *name) : StMaker(name), - fNzBins(2500), fNPasses(2), fSpectrum(0), fzWindow(2), - fVtxM(0), fVerticesPass(0), fTempLog(2), fminBrent(0), func(0), - mBeamLine(kFALSE), fc1(0) -{ - Int_t npeaks = 100; - Double_t zmin = -250; - Double_t zmax = 250; - // StKFVertex::_debug = 1; - for (Int_t pass = 0; pass < fNPasses; pass++) { - fVtxs[pass] = new TH1F(Form("Vtx%1i",pass),Form("z-dca distribution for pass = %1i",pass),fNzBins,zmin,zmax); - fVtxs[pass]->SetDirectory(0); - if (pass) fVtxs[pass]->SetLineColor(5); - fVtxs[pass]->SetDefaultSumw2(); - fVtxs[pass]->SetStats(0); - fVtxKs[pass] = new TH1K(Form("VtxK%1i",pass),Form("z-dca distribution for pass = %1i",pass),fNzBins,zmin,zmax); - fVtxKs[pass]->SetDirectory(0); - fVtxKs[pass]->SetStats(0); - fVtxKs[pass]->SetLineColor(2); - } - fVtxM = new TH1F("VtxM","MuDst reconstructed multiplicities versus Z",fNzBins,zmin,zmax); - fVtxM->SetDirectory(0); - fSpectrum = new TSpectrum(2*npeaks); - func = new ROOT::Math::Functor1D(&StKFVertexMaker::AnnelingFcn); - fminBrent = new ROOT::Math::GSLMinimizer1D(); - fVerticesPass = new StKFVerticesCollection *[fNPasses+1]; - memset (fVerticesPass, 0, (fNPasses+1)*sizeof(StKFVerticesCollection *)); - fParticles = new TObjArray(); - fParticles->SetOwner(kTRUE); - mVertexOrderMethod = orderByRanking; // change ordering by ranking -} -//_____________________________________________________________________________ -Int_t StKFVertexMaker::Init(){ - mBeamLine = IAttr("beamLine"); - return StMaker::Init(); -} -//_____________________________________________________________________________ -Int_t StKFVertexMaker::InitRun(Int_t runumber){ - return StMaker::InitRun(runumber); -} -//________________________________________________________________________________ -Int_t StKFVertexMaker::Make() { - StEvent* pEvent = dynamic_cast (GetInputDS("StEvent")); - if (! pEvent) { - LOG_WARN << "StKFVertexMaker::fit: no StEvent " << endm; - return kStOK; // if no event, we're done - } - Double_t bField = 0; - if (pEvent->runInfo()) bField = pEvent->runInfo()->magneticField(); - KFParticle::SetField(bField); - if (mBeamLine) { - St_vertexSeedC* vSeed = St_vertexSeedC::instance(); - Double_t x0 = vSeed->x0() ; Double_t err_x0 = vSeed->err_x0(); - Double_t y0 = vSeed->y0() ; Double_t err_y0 = vSeed->err_y0(); - Double_t dxdz = vSeed->dxdz(); Double_t err_dxdz = vSeed->err_dxdz(); - Double_t dydz = vSeed->dydz(); Double_t err_dydz = vSeed->err_dydz(); - Double_t weight = vSeed->weight(); - if (err_x0 < 0.010) err_x0 = 0.010; - if (err_y0 < 0.010) err_y0 = 0.010; - static Bool_t firstTime = kTRUE; - if (firstTime) { - firstTime = kFALSE; - LOG_INFO << "BeamLine Constraint: weight = " << weight << endm; - LOG_INFO << "x(z) = (" << x0 << " +- " << err_x0 << ") + (" << dxdz << " +- " << err_dxdz << ") * z" << endm; - LOG_INFO << "y(z) = (" << y0 << " +- " << err_y0 << ") + (" << dydz << " +- " << err_dydz << ") * z" << endm; - } - static Double_t pZ = 1000; - static MTrack track; - Double_t xyzP[6] = { x0, y0, 0., - pZ*dxdz, pZ*dydz, pZ}; - Double_t CovXyzP[21] = { - err_x0*err_x0, - 0 ,err_y0*err_y0, - 0 ,0 , 0, - 0 ,0 , 0, (err_dxdz*pZ)*(err_dxdz*pZ), - 0 ,0 , 0, 0, (err_dydz*pZ)*(err_dydz*pZ) - }; - track.SetParameters(xyzP); - track.SetCovarianceMatrix(CovXyzP); - track.SetNDF(1); - track.SetID(0); - track.SetCharge(1); - KFParticle *beam = new KFParticle(track, 321); - fParticles->AddAt(beam, 0); - } - StSPtrVecTrackNode& trackNode = pEvent->trackNodes(); - UInt_t nTracks = trackNode.size(); - StTrackNode *node=0; - Int_t NGoodGlobals = 0; - map TrackNodeMap; - for (UInt_t i=0; i < nTracks; i++) { - node = trackNode[i]; - if (!node) continue; - StGlobalTrack *gTrack = static_cast(node->track(global)); - if (! gTrack) continue; - const StDcaGeometry* dca = gTrack->dcaGeometry(); - if (! dca) continue; - if (gTrack->flag() < 0) continue; // Bad fit - if (gTrack->flag() > 700) continue; // FTPC - if (gTrack->flag()%100 == 11) continue; // Short track pointing to EEMC - if ((gTrack->isWestTpcOnly() || gTrack->isEastTpcOnly()) && gTrack->isPostXTrack()) continue; // wrong TPC side track - Int_t kg = gTrack->key(); - TrackNodeMap[kg] = node; - KFParticle *particle = AddTrackAt(dca,kg); - if (Debug() > 1) { - if (Debug() > 2) {LOG_INFO << Form("particle: %4i/%4i ",NGoodGlobals,kg) << *particle << endm;} - LOG_INFO << "Add to map[" << kg << "] node = " << TrackNodeMap[kg] << endm; - } - NGoodGlobals++; - } - if (NGoodGlobals < 2) return 0; - Fit(); - if (! Vertices()) return 0; - // - // In case there are no tracks left we better quit - // - StSPtrVecTrackDetectorInfo& detInfoVec = pEvent->trackDetectorInfo(); - Int_t Nvtx = Vertices()->NoVertices(); - for (Int_t l = 0; l < Nvtx; l++) { - const StKFVertex *V = Vertices()->Vertex(l); - if (! V) continue; - if (Debug() > 2) V->PrintW(); - // Store vertex - StPrimaryVertex *primV = new StPrimaryVertex; - StThreeVectorF XVertex(&V->Vertex().X()); - primV->setPosition(XVertex); - primV->setChiSquared(V->Vertex().Chi2()/V->Vertex().GetNDF()); - primV->setProbChiSquared(TMath::Prob(V->Vertex().GetChi2(),V->Vertex().GetNDF())); - Float_t cov[6]; - TCL::ucopy(&V->Vertex().Covariance(0),cov,6); - primV->setCovariantMatrix(cov); - primV->setVertexFinderId(KFVertexFinder); - primV->setFlag(1); // was not set earlier by this vertex finder ?? Jan - primV->setRanking(333); - primV->setNumTracksUsedInFinder(V->NoTracks()); - Bool_t beam = kFALSE; - Double_t Pars[6]; - TCL::ucopy(&V->Vertex().X(), Pars, 6); - Double_t Cov[21]; - TCL::ucopy(&V->Vertex().Covariance(0), Cov, 21); - StiHit *Vertex = StiToolkit::instance()->getHitFactory()->getInstance(); - Vertex->setGlobal(0, 0, V->Vertex().X(), V->Vertex().Y(), V->Vertex().Z(), 0); - Vertex->setError(cov); - Int_t NoTracks = V->NoTracks(); - TArrayI indexT(NoTracks); Int_t *indexes = indexT.GetArray(); - TArrayI IdT(NoTracks); Int_t *Ids = IdT.GetArray(); - for (Int_t itk = 0; itk < NoTracks; itk++) { - Ids[itk] = 999999; - const StKFTrack* track = V->Track(itk); - if (! track) continue; - const KFParticle &P = track->Particle(); - Int_t kg = P.GetID()%100000; - Ids[itk] = kg; - } - TMath::Sort(NoTracks,Ids,indexes,0); - for (Int_t i = 0; i < NoTracks; i++) { - Int_t itk = indexes[i]; - const StKFTrack* track = V->Track(itk); - if (! track) continue; - const KFParticle &P = track->Particle(); - Int_t kg = P.GetID()%100000; - if (kg == 0) { - assert(!beam); - beam = kTRUE; - continue; - } - if (Debug() > 2) { - const KFParticle *PO = track->OrigParticle(); - const KFParticle *PS[2] = {PO, &P}; - for (Int_t m = 0; m < 2; m++) { - if (! m) cout << "Original"; - else cout << "Fitted "; - static const Char_t *names[6] = {"x","y","z","px","py","pz"}; - for (Int_t j = 0; j < 6; j++) { - cout << Form(" %2s: %8.3f +/- %8.3f",names[j], - PS[m]->GetParameter(j), - PS[m]->GetCovariance(j,j) > 0 ? TMath::Sqrt(PS[m]->GetCovariance(j,j)) : -13); - } - cout << endl; - } - } - node = TrackNodeMap[kg]; - if (! node) { - LOG_INFO << "Missing node in map[" << kg << "] node = " << TrackNodeMap[kg] << endm; - assert(node); - } - StiKalmanTrack* kTrack = (*StiStEventFiller::Node2TrackMap())[node]; - assert(kTrack); - StGlobalTrack *gTrack = static_cast(node->track(global)); - assert(gTrack); -#ifdef ADD_NEW_NODE - // Replace dca node by a primary vertex - StiKalmanTrackNode *tNode = kTrack->getInnerMostNode(); - if (! tNode->isDca()) continue; -#if 1 - // tNode->print("XYZEPIJK"); -#endif - tNode->rotate(-tNode->getAlpha()); - // StiHit localVertex = *Vertex; - // localVertex.rotate(tNode->getAlpha()); - // tNode->setHit(&localVertex); - tNode->setHit(Vertex); - tNode->setDetector(0); - Double_t Phi, dPhi; - P.GetPhi(Phi,dPhi); - Double_t pT, dpT; - P.GetPt(pT,dpT); - StiNodePars &FP = tNode->fitPars(); - FP.x() = P.GetX(); - FP.y() = P.GetY(); // local Y-coordinate of this track (reference plane) - FP.z() = P.GetZ(); // local Z-coordinate of this track (reference plane) - FP.eta() = Phi - tNode->getAlpha(); // (signed curvature)*(local Xc of helix axis - X current point on track) - FP.ptin() = - P.GetQ()/pT; // signed invert pt [sign = sign(-qB)] - FP.tanl() = P.GetPz()/pT; // tangent of the track momentum dip angle - // FP.curv() = FP.hz()/FP.ptin(); // signed curvature [sign = sign(-qB)] - FP.ready(); - // FP.hz() = 0; // Z component magnetic field in units Pt(Gev) = Hz * RCurv(cm) - Double_t pzpT3 = - P.GetPz()/(pT*pT*pT); - Double_t f[6*6] = { - /* x, y, z, pX, pY, pZ */ - /* x */ 1, 0, 0, 0, 0, 0, - /* y */ 0, 1, 0, 0, 0, 0, - /* z */ 0, 0, 1, 0, 0, 0, - /* eta */ 0, 0, 0, P.GetPy()/(pT*pT), -P.GetPx()/(pT*pT), 0, - /* q/pT */ 0, 0, 0, -FP.ptin()*P.GetPx()/(pT*pT), -FP.ptin()*P.GetPy()/(pT*pT), 0, - /* tanL */ 0, 0, 0, pzpT3*P.GetPx(), pzpT3*P.GetPy(), 1./pT}; - TRMatrix F(6,6,f); if (Debug()) {LOG_INFO << "F\t" << F << endm;} - TRSymMatrix CovP(6,&((KFParticle *)&P)->Covariance(0)); if (Debug()) {LOG_INFO << "CovP\t" << CovP << endm;} - TRSymMatrix Covi(F,TRArray::kAxSxAT,CovP); if (Debug()) {LOG_INFO << "Covi\t" << Covi << endm;} - StiNodeErrs &FE = tNode->fitErrs(); - TCL::ucopy(Covi.GetArray(), FE.A, 21); - tNode->setReady(); -#if 0 - // tNode->print("XYZEPIJK"); - StiKalmanTrackNode *test = kTrack->getInnerMostHitNode(); - assert(test == tNode); - // Int_t status = kTrack->refit(); // refit with primary vertex - Int_t status = kTrack->fit(kInsideOut); - if (status) continue; // failed to refit -#endif - kTrack->setPrimary(l+1); -#else /* ! ADD_NEW_NODE */ - StiKalmanTrackNode *extended = (StiKalmanTrackNode*) kTrack->extendToVertex(Vertex); - if (extended) { - kTrack->add(extended,kOutsideIn); - if (extended && !extended->isValid()) extended=0; - if (extended && extended->getChi2()>1000) extended=0; - } - kTrack->reduce(); - if (! extended) continue; - //? kTrack->add(extended,kOutsideIn); - kTrack->setPrimary(l+1); - extended->setUntouched(); - Int_t ifail = kTrack->refit(); - ifail |= (kTrack->getInnerMostHitNode(3)!=extended); - kTrack->reduce(); - // something is wrong. It is not a primary - if (ifail) { - kTrack->removeLastNode(); - kTrack->setPrimary(0); - continue; - } -#endif /* ADD_NEW_NODE */ - //________________________________________________________________________________ - StTrackDetectorInfo* detInfo = new StTrackDetectorInfo; - StiStEventFiller::instance()->fillDetectorInfo(detInfo,kTrack,kFALSE); //3d argument used to increase/not increase the refCount. MCBS oct 04. - // StiStEventFiller::instance()->fillPulls(kTrack,1); - StPrimaryTrack* pTrack = new StPrimaryTrack; - node->addTrack(pTrack); // StTrackNode::addTrack() calls track->setNode(this); - pTrack->setKey( gTrack->key()); - pTrack->setFlagExtension( gTrack->flagExtension()); - StiStEventFiller::instance()->fillTrack(pTrack,kTrack, detInfo); - // set up relationships between objects - detInfoVec.push_back(detInfo); - primV->addDaughter(pTrack); - //________________________________________________________________________________ - } - if (beam ) primV->setBeamConstrained(); - //..... add vertex to the list - if (primV->numberOfDaughters() < 1) { - delete primV; - } else { - primV->setTrackNumbers(); - calculateRank(primV); - pEvent->addPrimaryVertex(primV,orderByRanking); - } - } - return kStOK; -} -//________________________________________________________________________________ -void StKFVertexMaker::calculateRank(StPrimaryVertex *primV) { - // Calculation of veretx ranks to select 'best' (i.e. triggered) vertex - // Simpilfied version (w/o weighting) - Float_t rank = primV->probChiSquared(); - static Float_t Wveto = 1; - static Float_t Wmatch = 4; - if (primV->isBeamConstrained()) rank += Wmatch; - rank -= Wveto*primV->numPostXTracks(); - rank += Wmatch*primV->numTracksWithPromptHit(); - rank += Wmatch*primV->numTracksCrossingCentralMembrane(); - rank += Wmatch*primV->numMatchesWithCTB() - - Wveto*primV->numNotMatchesWithCTB(); - rank += Wmatch*primV->numMatchesWithBTOF() - - Wveto*primV->numNotMatchesWithBTOF(); - rank += Wmatch*(primV->numMatchesWithBEMC() + primV->numMatchesWithEEMC()); - // It is unclear why the next line was uncommented but apparently it is not - // used. So, either this line or the semicolumn at the end of the preceeding - // line should be removed - //- Wveto*(primV->numNotMatchesWithBEMC() + primV->numNotMatchesWithEEMC()); - if (primV->numTracksTpcWestOnly() > 0 && primV->numTracksTpcEastOnly() > 0) - rank += Wmatch*TMath::Min(primV->numTracksTpcWestOnly(),primV->numTracksTpcEastOnly()); - primV->setRanking(rank); - if (Debug()) primV->Print(); -} -//________________________________________________________________________________ -KFParticle *StKFVertexMaker::AddTrackAt(const StDcaGeometry *dca, Int_t kg) { - fParticles->AddAtAndExpand (0,kg); - if (! dca) return 0; - Double_t xyzp[6], CovXyzp[21]; - dca->GetXYZ(xyzp,CovXyzp); - static MTrack track; - track.SetParameters(xyzp); - track.SetCovarianceMatrix(CovXyzp); - track.SetNDF(1); - // track.SetChi2(GlobalTracks_mChiSqXY[k]); - track.SetID(kg); - Int_t q = 1; - Int_t pdg = 211; - if (dca->charge() < 0) { - q = -1; - pdg = -211; - } - track.SetCharge(q); - KFParticle *particle = new KFParticle(track, pdg); - particle->SetID(kg); - fParticles->AddAt(particle,kg); - return particle; -} -//________________________________________________________________________________ -void StKFVertexMaker::Fit() { - if (Debug() != 2) StKFVertex::SetDebug(Debug()); - fcVertices = 0; - for (Int_t i = 0; i < fNPasses+1; i++) { - SafeDelete(fVerticesPass[i]); - } - Int_t NGoodGlobals = Particles().GetLast(); - - Double_t TempLog = fTempLog; // default Temperature Log - for (Int_t pass = 0; pass < fNPasses; pass++) { - Int_t nAccepted = 0; - Double_t dZ = fVtxs[pass]->GetBinWidth(1); - for (Int_t k = 0; k < NGoodGlobals; k++) { - KFParticle *particle = (KFParticle *) Particles()[k]; - if (! particle) continue; - Double_t pT; - Double_t dpT; - particle->GetPt(pT,dpT); - Double_t offset = 0.5*particle->GetPz()/pT; - Double_t SigmaZ = TMath::Sqrt(particle->Covariance(2,2) + offset*offset); - SigmaZ += dZ; - Double_t Z = particle->GetZ(); - fVtxKs[pass]->Fill(Z); - Int_t bin1 = fVtxs[pass]->FindBin(Z - 5*SigmaZ); - if (bin1 < 1) bin1 = 1; - Int_t bin2 = fVtxs[pass]->FindBin(Z + 5*SigmaZ); - if (bin2 > fNzBins) bin2 = fNzBins; - Double_t z = fVtxs[pass]->GetBinCenter(bin1); - for (Int_t bin = bin1; bin <= bin2; bin++, z += dZ) { - fVtxs[pass]->Fill(z,(TMath::Erfc((z - Z - fzWindow)/SigmaZ) - TMath::Erfc((z - Z + fzWindow)/SigmaZ))/2.); - } - nAccepted++; - } - Double_t F = fVtxKs[pass]->GetEntries(); - if (F < 1) continue; - fVtxKs[pass]->SetNormFactor(F/dZ); - fVtx = fVtxs[0]; // << switch between types Vtx = fVtxKs[0]; - TString opt("new"); - if (! Canvas()) opt = "goff"; - Int_t nfound = fSpectrum->Search(fVtx,3,opt,TMath::Min(0.1,5./NGoodGlobals)); - if (! nfound) continue; - if (Canvas()) { - Canvas()->cd(); - fVtxs[0]->Draw(); fVtxKs[0]->Draw("same"); - fVtxM->Draw("same"); - if (pass) fVtx->Draw("same"); - Canvas()->Update(); - } - if (StKFVertex::Debug() > 1) { - LOG_INFO << "Found " << nfound - << " candidate peaks to fit with " << NGoodGlobals - << " good globals from with " << nAccepted << " accepted" << endm; - } - Double_t *zOfPeaks = new Double_t[nfound]; - Int_t npeaks = 0; -#if ROOT_VERSION_CODE > 336641 /* ROOT_VERSION(5,35,1) */ - Double_t *xpeaks = fSpectrum->GetPositionX(); -#else - Float_t *xpeaks = fSpectrum->GetPositionX(); -#endif - for (Int_t p = 0; p < nfound; p++) { -#if ROOT_VERSION_CODE > 336641 /* ROOT_VERSION(5,35,1) */ - Double_t xp = xpeaks[p]; -#else - Float_t xp = xpeaks[p]; -#endif - Int_t bin = fVtx->GetXaxis()->FindBin(xp); - Double_t yp = fVtx->GetBinContent(bin); - Double_t ep = fVtx->GetBinError(bin); - if (yp-1.25*ep < 0) continue; - zOfPeaks[npeaks] = xp; - npeaks++; - } - if (StKFVertex::Debug() > 1) { - LOG_INFO << "Found " << npeaks << " useful peaks to fit" << endm; - } - if (! npeaks) {delete [] zOfPeaks; break; } - if (fVerticesPass[pass]) {delete fVerticesPass[pass]; fVerticesPass[pass] = 0;} - fVerticesPass[pass] = new StKFVerticesCollection(npeaks, zOfPeaks); - delete [] zOfPeaks; - fcVertices = fVerticesPass[pass]; - fcVertices->DoTrack2VertexAssociation(Particles()); - if (! fcVertices->NoVertices()) continue; - if (AnnelingFcn(TMath::Exp(-TempLog)) <= 0) continue; - if (! fcVertices->NoVertices()) continue; - fcVertices->UniqueTracks2VertexAssociation(); // Make track associated with only vertex - // fcVertices->PrintV(NoMuMcVertex,NoMuMcTrack,StMuMcVertex_time, - // StMuMcVertex_xyzV_mX1,StMuMcVertex_xyzV_mX2,StMuMcVertex_xyzV_mX3, - // StMuMcVertex_NoDaughters,StMuMcVertex_IdParTrk,StMuMcTrack_gePid); - } - if (! fVerticesPass[0]) return; - if (fNPasses > 1 && Canvas()) { - Canvas()->cd(); - fVtxs[1]->Draw("same"); - Canvas()->Update(); - } - Int_t N1 = fVerticesPass[0]->NoVertices(); - if (! N1) return; - if (fVerticesPass[1]) { - *fVerticesPass[0] += *fVerticesPass[1]; - } - fcVertices = fVerticesPass[0]; - fcVertices->MergeDuplicatedVertices(); - if (! fcVertices->NoVertices()) return; - // Double_t Temperature = TMath::Exp(TempLog); - TempLog = 5; - Double_t Temperature = TMath::Exp(TempLog); -#if 1 - // secondary vertices - Int_t pass = fNPasses; - if (fVerticesPass[pass]) {delete fVerticesPass[pass]; fVerticesPass[pass] = 0;} - fVerticesPass[pass] = new StKFVerticesCollection(); - fcVertices = fVerticesPass[pass]; - StAnneling::SetTemperature(Temperature); - for (Int_t k = 1; k < NGoodGlobals; k++) { - KFParticle *particleK = (KFParticle *) Particles()[k]; - if (! particleK) continue; - if (particleK->GetID() > 100000) continue; - StKFVertex *vtx = 0; - for (Int_t l = k+1; l < NGoodGlobals; l++) { - KFParticle *particleL = (KFParticle *) Particles()[l]; - if (! particleL) continue; - if (particleL->GetID() > 100000) continue; - Double_t dist = particleK->GetDistanceFromParticle(*particleL); - if (dist > 5.0) continue; - if (! vtx) { - vtx = new StKFVertex(fcVertices->NoVertices() + 1); - vtx->AddTrack(new StKFTrack(k,particleK)); - } - vtx->AddTrack(new StKFTrack(l,particleL)); - } - if (! vtx) continue; - vtx->Fit(); - Int_t N = vtx->NoTracks(); - if (! N) {delete vtx; vtx = 0; continue;} - Double_t X = vtx->Vertex().X(); - Double_t Y = vtx->Vertex().Y(); - Double_t R = TMath::Sqrt(X*X + Y*Y); - if (R > 200 ) {delete vtx; vtx = 0; continue;} - Double_t prob = TMath::Prob(vtx->Vertex().GetChi2(),vtx->Vertex().GetNDF()); - if (N > 2 || prob > 1.e-3) {// Allow V2 to share tracks - for (Int_t i = 0; i < N; i++) { - KFParticle *particle = vtx->Track(i)->OrigParticle();; - Int_t ID = particle->GetID()%100000 + 100000*vtx->ID();; - particle->SetID(ID); - } - } - fcVertices->AddVertex(vtx); - } - if (StKFVertex::Debug() > 1) { - LOG_INFO << "Candidate for secondary vertices: " << fcVertices->NoVertices() << endm; - } - if ( fcVertices->NoVertices() ) { - // fcVertices->PrintV(NoMuMcVertex,NoMuMcTrack,StMuMcVertex_time, - // StMuMcVertex_xyzV_mX1,StMuMcVertex_xyzV_mX2,StMuMcVertex_xyzV_mX3, - // StMuMcVertex_NoDaughters,StMuMcVertex_IdParTrk,StMuMcTrack_gePid); - *fVerticesPass[0] += *fVerticesPass[fNPasses]; - } - // end of loop for secondary vertices -#endif - fcVertices = fVerticesPass[0]; - fcVertices->Compress(); - if (! fcVertices->NoVertices()) return; - fcVertices->MergeDuplicatedVertices(); - fminBrent->SetFunction(*func,TMath::Exp(-0.5*(TempLog)),TMath::Exp(-TempLog),1); - if (! fminBrent->Minimize(10,0.1,0.1)) { - LOG_WARN << "Temperature fit has failed" << endm; - Temperature = 1; - } else { - Temperature = 1./fminBrent->XMinimum(); - } - StAnneling::SetTemperature(Temperature); - fcVertices->UniqueTracks2VertexAssociation(); // Make track associated with only vertex - fcVertices->Fit(29,Canvas(),fVtx); - if (Canvas()) Canvas()->Update(); -} -//________________________________________________________________________________ -Double_t StKFVertexMaker::AnnelingFcn(Double_t TInv) { - if (! fcVertices) return 0; - Double_t Temperature = 1./TInv; - StAnneling::SetTemperature(Temperature); - Double_t Chi2 = fcVertices->Fit(); - if (StKFVertex::Debug()) - LOG_INFO << "StKFVertexMaker::AnnelingFcn\tTemperature = " << Temperature << " Chi2 = " << Chi2 << endm; - return Chi2; -} -//________________________________________________________________________________ -// $Log: StKFVertexMaker.cxx,v $ -// Revision 2.8 2018/04/10 11:32:09 smirnovd -// Minor corrections across multiple files -// -// - Remove ClassImp macro -// - Change white space -// - Correct windows newlines to unix -// - Remove unused debugging -// - Correct StTpcRTSHitMaker header guard -// - Remove unused preprocessor directives in StiCA -// - Minor changes in status and debug print out -// - Remove using std namespace from StiKalmanTrackFinder -// - Remove includes for unused headers -// -// Revision 2.7 2016/06/08 23:32:46 smirnovd -// Integration of StiCA -// -// This is a squashed commit with all changes combined. To see individual -// modifications check out the ds-StiCA_2016 branch in star-sti repository. -// Alternatively, one can explore the StiCA_2016 branch in the STAR's CVS -// repository. -// -// Revision 2.6 2013/04/10 22:14:20 fisyak -// Roll back to version 04/04/2013 -// -// Revision 2.4 2013/01/28 21:51:17 fisyak -// Correct ranking -// -// Revision 2.3 2013/01/17 15:57:25 fisyak -// Add handles for debugging -// -// Revision 2.2 2012/09/16 21:38:42 fisyak -// use of Tpc West Only and East Only tracks, clean up -// -// Revision 2.1 2012/05/07 14:56:14 fisyak -// Add StKFVertexMaker -// -// Revision 1.5 2012/04/13 14:42:58 fisyak -// Freeze -// -// Revision 1.4 2012/03/29 23:35:47 fisyak -// Fix problem with multiple beam tracks -// -// Revision 1.3 2012/03/26 23:42:35 fisyak -// Add beam constrain -// -// Revision 1.2 2012/02/20 22:38:34 fisyak -// Freeze before go for ranking -// -// Revision 1.1 2012/02/18 23:20:52 fisyak -// Rename StKFVertexFitter => StKFVertexMaker -// -// Revision 1.3 2012/02/07 19:38:26 fisyak -// Repackage -// diff --git a/StRoot/StiMaker/StKFVertexMaker.h b/StRoot/StiMaker/StKFVertexMaker.h deleted file mode 100644 index 2b4a82396e5..00000000000 --- a/StRoot/StiMaker/StKFVertexMaker.h +++ /dev/null @@ -1,94 +0,0 @@ -// $Id: StKFVertexMaker.h,v 2.5 2018/01/03 21:23:36 smirnovd Exp $ - -#ifndef STAR_StKFVertexMaker -#define STAR_StKFVertexMaker - -/*! - * - * \class StKFVertexMaker - * \author fisyak - * \date 2012/04/18 - * \brief virtual base class for Maker - * - */ - -#ifndef StMaker_H -#include "StMaker.h" -#endif -#include "TObjArray.h" -#include "TSpectrum.h" -#include "Math/Functor.h" -#include "Math/GSLMinimizer1D.h" -#include "StEnumerations.h" -#include "TCanvas.h" -#include "TH1K.h" -class StPrimaryVertex; -class StEvent; -class StDcaGeometry; -class KFParticle; -class StKFVerticesCollection; - -class StKFVertexMaker : public StMaker { - public: - StKFVertexMaker(const char *name="KFVertex"); - virtual ~StKFVertexMaker(); - virtual Int_t Init(); - virtual Int_t Make(); - virtual Int_t InitRun (Int_t runumber); - // virtual Int_t FinishRun(Int_t runumber){return 0;}; // Overload empty StMaker::FinishRun - void Clear(Option_t *option=""); - void Fit(); - TH1F *VtxM() {return fVtxM;} - void SetZwindow(Double_t z = 2) {fzWindow = z;} - void SetDefaultTempLog(Double_t tLog = 2) {fTempLog = tLog;} - static Double_t AnnelingFcn(Double_t TInv=1); - TH1 *Vtx() {return fVtx;} - StKFVerticesCollection* Vertices() {return fcVertices;} - TObjArray &Particles() {return *fParticles;} - KFParticle *AddTrackAt(const StDcaGeometry *dca,Int_t kg); - void calculateRank(StPrimaryVertex *primV); - void SetCanvas(TCanvas *c1) {fc1 = c1;} - TCanvas *Canvas() {return fc1;} - TH1F *GetVtxs(Int_t pass = 0) {return fVtxs[pass];} - TH1K *GetVtxKs(Int_t pass = 0) {return fVtxKs[pass];} - TH1F *GetVtxM() {return fVtxM;} - private: - TObjArray *fParticles; // KF particles - Int_t fNzBins; - Int_t fNPasses; - TSpectrum *fSpectrum; - Double_t fzWindow; - TH1F *fVtxM; - StKFVerticesCollection **fVerticesPass; - static StKFVerticesCollection *fcVertices; // current vertex collection - Double_t fTempLog; - ROOT::Math::GSLMinimizer1D *fminBrent; - ROOT::Math::Functor1D *func; - TH1F *fVtxs[2]; - TH1 *fVtx; - TH1K *fVtxKs[2]; - Bool_t mBeamLine; - StPrimaryVertexOrder mVertexOrderMethod; // will default to 0 i.e. orderByNumberOfDaughters - TCanvas *fc1; - /// Displayed on session exit, leave it as-is please ... - virtual const char *GetCVS() const { - static const char cvs[]="Tag $Name: $ $Id: StKFVertexMaker.h,v 2.5 2018/01/03 21:23:36 smirnovd Exp $ built " __DATE__ " " __TIME__ ; - return cvs; - } - - ClassDef(StKFVertexMaker,0) //StAF chain virtual base class for Makers -}; -#endif -// $Log: StKFVertexMaker.h,v $ -// Revision 2.5 2018/01/03 21:23:36 smirnovd -// StKFVertexMaker: Added missing include -// -// Revision 2.4 2014/08/06 11:43:59 jeromel -// Suffix on literals need to be space (later gcc compiler makes it an error) - first wave of fixes -// -// Revision 2.3 2013/04/10 22:14:20 fisyak -// Roll back to version 04/04/2013 -// -// Revision 2.1 2012/05/07 14:56:14 fisyak -// Add StKFVertexMaker -// diff --git a/StRoot/StiMaker/StKFVerticesCollection.cxx b/StRoot/StiMaker/StKFVerticesCollection.cxx deleted file mode 100644 index 8f151a7ca76..00000000000 --- a/StRoot/StiMaker/StKFVerticesCollection.cxx +++ /dev/null @@ -1,401 +0,0 @@ -// $Id: StKFVerticesCollection.cxx,v 2.5 2018/04/10 11:32:10 smirnovd Exp $ -#include "StKFVerticesCollection.h" -#include "TArrayI.h" -#include "TArrayD.h" -#include "TRSymMatrix.h" -#include "TRVector.h" -#include "TPolyMarker.h" -#include "TList.h" -using namespace std; -Double_t StKFVerticesCollection::fgVxPenaltyFactor = 1000; -//________________________________________________________________________________ -StKFVerticesCollection::StKFVerticesCollection(Int_t NoPeaks, Double_t *zOfPeaks, Double_t sigmaXY, Double_t sigmaZ) : - fVertices(NoPeaks,0) { - fVertices.SetOwner(kTRUE); - for (Int_t peak = 0; peak < NoPeaks; peak++) { - AddVertex(0.,0., zOfPeaks[peak], sigmaXY, sigmaZ); - } -} -//________________________________________________________________________________ -void StKFVerticesCollection::AddVertex(Double_t x, Double_t y, Double_t z, Double_t sigmaXY, Double_t sigmaZ) { - StKFVertex *vtx = new StKFVertex(fVertices.GetEntriesFast() + 1); - vtx->Vertex().SetBeamConstraint(x, y, z, sigmaXY, sigmaXY, sigmaZ); - fVertices.AddLast(vtx); -} -//________________________________________________________________________________ -void StKFVerticesCollection::operator +=(StKFVerticesCollection &col) { - Int_t N2 = col.NoVertices(); - for (Int_t i = N2-1; i >= 0; i--) { - fVertices.AddLast(col.Remove(i)); - } - col.Compress(); -} -//________________________________________________________________________________ -void StKFVerticesCollection::SetMc(Int_t NoMuMcVertex, Int_t NoMuMcTrack, const Float_t *time, - const Float_t *x,const Float_t *y,const Float_t *z, - const Int_t *NoDaughters,const Int_t *IdParTrk,const Int_t *gePid) { - Int_t Nvtx = NoVertices(); - for (Int_t l = 0; l < Nvtx; l++) { - StKFVertex *V = Vertex(l); - if (! V) continue; - Int_t kv = V->IdTruth(); - if (kv > 0 && kv <= NoMuMcVertex) { - if (time && x && y && z && NoDaughters && IdParTrk) { - Int_t kvp = IdParTrk[kv-1]; - Int_t ge = 0; - if (kvp > 0 && kvp <= NoMuMcTrack) ge = gePid[kvp-1]; - V->SetMc(time[kv-1],x[kv-1],y[kv-1],z[kv-1],NoDaughters[kv-1],ge); - } - } - } -} -//________________________________________________________________________________ -ostream& operator<<(ostream& os, const StKFVerticesCollection& vc) { - Int_t Nvtx = vc.NoVertices(); - for (Int_t l = 0; l < Nvtx; l++) { - const StKFVertex *V = vc.Vertex(l); - if (! V) continue; - os << Form("Vtx: %3i",l) << *V << endl; - } - return os; -} -//________________________________________________________________________________ -Double_t StKFVerticesCollection::DoTrack2VertexAssociation(const TObjArray &particles) { - Double_t chi2Total = 0; - Int_t NVtx = NoVertices(); - Int_t Ntracks = particles.GetEntriesFast(); - TArrayI Idx(Ntracks); - TArrayD Chi2s(Ntracks); - for (Int_t l = 0; l < NVtx; l++) { - StKFVertex *vtx = Vertex(l); - if (! vtx) continue; - // if (! vtx->Vertex()) continue; - // vtx->PrintW(); - KFParticle *particle = 0; - for (Int_t k = 0; k < Ntracks; k++) { - Chi2s[k] = 1e10; - particle = (KFParticle *) particles.UncheckedAt(k); - if (! particle) continue; - if (particle->GetID() > 100000) continue; - Double_t chi2il = particle->GetDeviationFromVertex(vtx->Vertex()); - chi2il *= 2*chi2il; - Chi2s[k] = chi2il; - } - vtx->Clear(); - TMath::Sort(Ntracks,Chi2s.GetArray(),Idx.GetArray(),0); - Double_t chi2Vx = 0; - for (Int_t j = 0; j < Ntracks; j++) { - Int_t k = Idx[j]; - particle = (KFParticle *) particles.UncheckedAt(k); - if (! particle) continue; - if (Chi2s[k] > StAnneling::Chi2Cut()) break; - StKFTrack *track = new StKFTrack(k,particle,Chi2s[k]); - chi2Vx += track->Chi2()/2 + TMath::Log(track->Weight() + StAnneling::Weight()); - vtx->AddTrack(track); - } - if (vtx->NoTracks() < 2) { - delete vtx; Vertex(l) = 0; - continue; - } - if (StKFVertex::Debug()) vtx->PrintW("DoTrack2VertexAssociation "); - chi2Total += chi2Vx; - // vtx->PrintW(); - } - fVertices.Compress(); - if (NoVertices()) UpdateWeights(); - return chi2Total; -} -//________________________________________________________________________________ -Double_t StKFVerticesCollection::UpdateStVertexTrackAssociation() { - Double_t chi2Total = 0; - Int_t NVtx = NoVertices(); - for (Int_t l = 0; l < NVtx; l++) { - StKFVertex *vtx = Vertex(l); - if (! vtx) continue; - chi2Total += vtx->UpdateVertex2TrackChi2(); - } - return chi2Total; -} -//________________________________________________________________________________ -void StKFVerticesCollection::CleanDuplicatedVertices() { - Int_t NVtx = NoVertices(); - // Check that vertices are the same - for (Int_t l = 1; l < NVtx; l++) { - StKFVertex *vtxl = Vertex(l); - if (! vtxl) continue; - Int_t NL = vtxl->NoTracks(); - TRVector vL(3,vtxl->Vertex().Parameters()); - TRSymMatrix CL(3,vtxl->Vertex().CovarianceMatrix()); - for (Int_t m = 0; m < l; m++) { - StKFVertex *vtxm = Vertex(m); - if (! vtxm) continue; - // compliete overlap by an other vertex - Int_t NM = vtxm->NoTracks(); - Int_t Nmatched = 0; - for (Int_t i = 0; i < NL; i++) - for (Int_t j = 0; j < NM; j++) - if (vtxl->Track(i)->OrigParticle() == vtxm->Track(j)->OrigParticle()) Nmatched++; - if (Nmatched == TMath::Min(NL,NM)) { - TRVector vM(3,vtxm->Vertex().Parameters()); - TRSymMatrix CM(3,vtxm->Vertex().CovarianceMatrix()); - vM -= vL; - CM += CL; - TRSymMatrix G(CM,TRArray::kInverted); - Double_t chi2 = G.Product(vM,TRArray::kATxSxA); - Double_t prob = TMath::Prob(chi2,3); - if (prob > 0.10) { - if ((NL > NM) || ((NL == NM) && (vtxl->Vertex().GetChi2() < vtxm->Vertex().GetChi2()))) { - if (StKFVertex::Debug()) { - vtxm->Print(Form("Cleaned Vertex prob %7.2f M %3i keep L %3i L(%3i/%7.2f) M (%3i/%7.2f)\t", - prob,m,l,NL,vtxl->Vertex().GetChi2(),NM,vtxm->Vertex().GetChi2())); - } - delete vtxm; Vertex(m) = 0; - continue; - } else { - if (StKFVertex::Debug()) { - vtxl->Print(Form("Cleaned Vertex prob %7.2f L %3i keep M %3i M(%3i/%7.2f) L (%3i/%7.2f)", - prob,l,m,NM,vtxm->Vertex().GetChi2(),NL,vtxl->Vertex().GetChi2())); - } - delete vtxl; Vertex(l) = 0; - break; - } - } - } - } - } - fVertices.Compress(); -} -//________________________________________________________________________________ -void StKFVerticesCollection::MergeDuplicatedVertices() { - // Check that vertices are the same - for (Int_t l = 1; l < NoVertices(); l++) { - StKFVertex *vtxl = Vertex(l); - if (! vtxl) continue; - if (! vtxl->NoTracks()) {delete vtxl; vtxl = Vertex(l) = 0; continue;} - TRVector vL(3,vtxl->Vertex().Parameters()); - TRSymMatrix CL(3,vtxl->Vertex().CovarianceMatrix()); - for (Int_t m = 0; m < l; m++) { - StKFVertex *vtxm = Vertex(m); - if (! vtxm) continue; - if (! vtxm->NoTracks()) {delete vtxm; vtxm = Vertex(m) = 0; continue;} - TRVector vM(3,vtxm->Vertex().Parameters()); - vM -= vL; - if (vM.Mag() > 5.) continue; - TRSymMatrix CM(3,vtxm->Vertex().CovarianceMatrix()); - CM += CL; - CM[0] += 0.0001; // 100 mkm tolerance - CM[2] += 0.0001; - CM[5] += 0.0001; - TRSymMatrix G(CM,TRArray::kInverted); - Double_t chi2 = G.Product(vM,TRArray::kATxSxA); - Double_t prob = TMath::Prob(chi2,3); - if (prob > 1e-4) { - *vtxm += *vtxl; - // if (vtxl->NoTracks()) vtxl->Clear("keep"); - delete vtxl; vtxl = Vertex(l) = 0; - vtxm->Fit(); - break; - } - } - } - fVertices.Compress(); -} -//________________________________________________________________________________ -void StKFVerticesCollection::UpdateWeights() { - Int_t NVtx = NoVertices(); - for (Int_t l = 0; l < NVtx; l++) { - StKFVertex *vtxl = Vertex(l); - if (! vtxl) continue; - // recalculate weights - if (StKFVertex::Debug()) vtxl->PrintW("Weights to Update "); - for (Int_t i = 0; i < vtxl->NoTracks(); i++) { - Double_t Dominator = TMath::Exp(-StAnneling::Chi2Cut()/(2*StAnneling::Temperature())) + vtxl->Track(i)->Weight(); - for (Int_t m = 0; m < NVtx; m++) { - if (l == m) continue; - StKFVertex *vtxm = Vertex(m); - if (! vtxm) continue; - for (Int_t j = 0; j < vtxm->NoTracks(); j++) { - if (vtxl->Track(i)->OrigParticle() == vtxm->Track(j)->OrigParticle()) { - Dominator += vtxm->Track(j)->Weight(); - break; - } - } - } - vtxl->Track(i)->W() = vtxl->Track(i)->Weight()/Dominator; - vtxl->Track(i)->Particle() = *(vtxl->Track(i)->OrigParticle()); - Double_t *CovXyz = vtxl->Track(i)->Particle().CovarianceMatrix(); - for (Int_t j = 0; j < 36; j++) CovXyz[j] = CovXyz[j]/vtxl->Track(i)->W(); - } - if (StKFVertex::Debug()) vtxl->PrintW("Updated Weights "); - } -} -//________________________________________________________________________________ -void StKFVerticesCollection::UniqueTracks2VertexAssociation(){ - // Make track associated with only vertex (by maximum weight to the vertex) - Int_t NVtx = NoVertices(); - for (Int_t l = 0; l < NVtx; l++) { - StKFVertex *vtxl = Vertex(l); - if (! vtxl) continue; - // recalculate weights - for (Int_t i = vtxl->NoTracks()-1; i >= 0; i--) { - if (! vtxl->Track(i)) continue; - Double_t WMax = vtxl->Track(i)->Weight(); - Int_t iMax = i; - Int_t lMax = l; - Int_t nPart = 1; - KFParticle *particleMax = vtxl->Track(i)->OrigParticle(); - for (Int_t m = 0; m < NVtx; m++) { - if (l == m) continue; - StKFVertex *vtxm = Vertex(m); - if (! vtxm) continue; - for (Int_t j = 0; j < vtxm->NoTracks(); j++) { - if (particleMax == vtxm->Track(j)->OrigParticle()) { - nPart++; - if (vtxm->Track(j)->Weight() > WMax) { - WMax = vtxm->Track(j)->Weight(); - iMax = j; - lMax = m; - particleMax = vtxm->Track(j)->OrigParticle(); - break; - } - } - } - } - if (WMax < 0.01) { // Particle weight is too small => remove the particle from all vertices - for (Int_t m = 0; m < NVtx; m++) { - StKFVertex *vtxm = Vertex(m); - if (! vtxm) continue; - delete vtxm->Remove(particleMax); - vtxm->Compress(); - } - if (! vtxl->NoTracks()) break; - continue; - } - if (nPart > 1) { - for (Int_t m = 0; m < NVtx; m++) { - StKFVertex *vtxm = Vertex(m); - if (! vtxm) continue; - if (m != lMax) { - if (particleMax->GetID()%100000) { // beam track is not in the game - delete vtxm->Remove(particleMax); - vtxm->Compress(); - if (vtxm->NoTracks() == 0) {delete vtxm; Vertex(m) = 0;} - } - } else vtxm->Track(iMax)->W() = vtxm->Track(iMax)->Weight(); - } - } - } - } - for (Int_t l = 0; l < NVtx; l++) { - StKFVertex *vtxl = Vertex(l); - if (! vtxl) continue; - if (vtxl->NoTracks() == 0) {delete vtxl; Vertex(l) = 0;} - } - fVertices.Compress(); - NVtx = NoVertices(); - // Set particle ID - for (Int_t l = 0; l < NVtx; l++) { - StKFVertex *vtxl = Vertex(l); - if (! vtxl) continue; - Int_t N = vtxl->NoTracks(); - for (Int_t i = 0; i < N; i++) { - KFParticle *particle = vtxl->Track(i)->OrigParticle();; - Int_t ID = particle->GetID()%100000 + 100000*vtxl->ID();; - particle->SetID(ID); - } - } -} -//________________________________________________________________________________ -Double_t StKFVerticesCollection::Fit(Int_t marker, TCanvas *c1, TH1 *Vtx) { - // Primary Vertex fit - Double_t chi2Total = 1e10; - fVertices.Compress(); - Int_t NVtx = NoVertices(); - if (! NVtx) return chi2Total; - for (Int_t l = 0; l < NVtx; l++) { - StKFVertex *vtx = Vertex(l); - if (! vtx) continue; - vtx->Vertex().SetBeamConstraintOff(); - vtx->Fit(); - if (vtx->Vertex().GetNDF() < 1 || vtx->NoTracks() < 2) { - delete vtx; - Vertex(l) = 0; - continue; - } else { - chi2Total += fgVxPenaltyFactor; - } - } - fVertices.Compress(); - CleanDuplicatedVertices(); - fVertices.Compress(); - chi2Total = UpdateStVertexTrackAssociation(); - UpdateWeights(); - // - if (StKFVertex::Debug()) { - cout << "chi2Total = " << chi2Total - << " at Temperature " << StAnneling::Temperature() - << " and Log(Temperature) " << TMath::Log(StAnneling::Temperature()) - << " no. vertices " << NoVertices() - << endl; - } - if (Vtx) { - Double_t ymax = Vtx->GetMaximum(); - for (Int_t i = 0; i < NVtx; i++) { - StKFVertex *vtx = Vertex(i); - if (! vtx) continue; - Double_t X = vtx->Vertex().GetParameter(2); - Double_t Y = vtx->NoTracks(); - if (Y > ymax) ymax = Y; - TPolyMarker * pm = new TPolyMarker(1, &X, &Y); - Vtx->GetListOfFunctions()->Add(pm); - pm->SetMarkerColor(TMath::Log(StAnneling::Temperature())+2); - Int_t m = 22; - if (marker) { - m = marker; - pm->SetMarkerColor(4); - if (StKFVertex::Debug()) vtx->PrintW(); - } - pm->SetMarkerStyle(m); - pm->SetMarkerSize(2); - // chi2NDF->Fill(TMath::Log10(vtx->NoTracks()),vtx->Vertex().GetChi2()/vtx->Vertex().GetNDF()); - } - if (c1) { - Vtx->SetMaximum(ymax); - Vtx->Draw("same"); - c1->Update(); - } - } - return chi2Total; -} -// $Log: StKFVerticesCollection.cxx,v $ -// Revision 2.5 2018/04/10 11:32:10 smirnovd -// Minor corrections across multiple files -// -// - Remove ClassImp macro -// - Change white space -// - Correct windows newlines to unix -// - Remove unused debugging -// - Correct StTpcRTSHitMaker header guard -// - Remove unused preprocessor directives in StiCA -// - Minor changes in status and debug print out -// - Remove using std namespace from StiKalmanTrackFinder -// - Remove includes for unused headers -// -// Revision 2.4 2013/04/10 22:14:20 fisyak -// Roll back to version 04/04/2013 -// -// Revision 2.2 2012/06/11 15:33:41 fisyak -// std namespace -// -// Revision 2.1 2012/05/07 14:56:14 fisyak -// Add StKFVertexMaker -// -// Revision 1.5 2012/03/29 23:35:47 fisyak -// Fix problem with multiple beam tracks -// -// Revision 1.4 2012/03/26 23:42:35 fisyak -// Add beam constrain -// -// Revision 1.3 2012/02/07 19:38:26 fisyak -// Repackage -// diff --git a/StRoot/StiMaker/StKFVerticesCollection.h b/StRoot/StiMaker/StKFVerticesCollection.h deleted file mode 100644 index 8f9b30cc18b..00000000000 --- a/StRoot/StiMaker/StKFVerticesCollection.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef __StKFVerticesCollection_h__ -// $Id: StKFVerticesCollection.h,v 2.2 2012/06/11 15:33:41 fisyak Exp $ -#define __StKFVerticesCollection_h__ -#include "TObject.h" -#include "TObjArray.h" -#include "StKFVertex.h" -#include "TCanvas.h" -#include "TH1.h" -#include "TH1K.h" -class StKFVerticesCollection; -std::ostream& operator<<(std::ostream& os, const StKFVerticesCollection& vc); -class StKFVerticesCollection : public TObject { -public: - StKFVerticesCollection(Int_t NoPeaks = 0, Double_t *zOfPeaks = 0, Double_t sigmaXY = 1.5, Double_t sigmaZ = 2); - void AddVertex(Double_t x, Double_t y, Double_t z, Double_t sigmaXY, Double_t sigmaZ); - void AddVertex(StKFVertex*vtx) {fVertices.AddLast(vtx);} - virtual ~StKFVerticesCollection() {} - Int_t NoVertices() const {return fVertices.GetEntriesFast();} - StKFVertex* Remove(Int_t k=0) {return (StKFVertex *) fVertices.RemoveAt(k);} - Double_t DoTrack2VertexAssociation(const TObjArray &particles); // associate tracks to vertex - Double_t UpdateStVertexTrackAssociation(); // reassociate tracks to vertex - void CleanDuplicatedVertices(); - void MergeDuplicatedVertices(); - void UpdateWeights(); - void UniqueTracks2VertexAssociation(); - void Compress() {fVertices.Compress();} - Double_t Fit(Int_t marker = 0, TCanvas *c1 = 0, TH1* Vtx = 0); - StKFVertex *&Vertex(Int_t l) {return (StKFVertex *&) fVertices[l];} - const StKFVertex *Vertex(Int_t l) const {return (const StKFVertex *) fVertices[l];} - void operator +=(StKFVerticesCollection &col); - void SetMc(Int_t NoMuMcVertex = 0, Int_t NoMuMcTrack = 0, const Float_t *time = 0, - const Float_t *x = 0,const Float_t *y = 0,const Float_t *z = 0, - const Int_t *NoDaughters = 0,const Int_t *IdParTrk = 0,const Int_t *gePid = 0); - virtual void Print(const Option_t* opt = "") const {if (opt) {}; std::cout << *this;} - static void SetVxPenaltyFactor(Double_t chi2 = 1000) {fgVxPenaltyFactor = chi2;} - private: - TObjArray fVertices; - static Double_t fgVxPenaltyFactor; - public: - ClassDef(StKFVerticesCollection,0) -}; -// $Log: StKFVerticesCollection.h,v $ -// Revision 2.2 2012/06/11 15:33:41 fisyak -// std namespace -// -// Revision 2.1 2012/05/07 14:56:14 fisyak -// Add StKFVertexMaker -// -// Revision 1.3 2012/03/26 23:42:36 fisyak -// Add beam constrain -// -// Revision 1.2 2012/02/07 19:38:26 fisyak -// Repackage -// -#endif diff --git a/StRoot/StiMaker/StMuDstVtxT.cxx b/StRoot/StiMaker/StMuDstVtxT.cxx deleted file mode 100644 index 34c5e829daf..00000000000 --- a/StRoot/StiMaker/StMuDstVtxT.cxx +++ /dev/null @@ -1,44 +0,0 @@ -// $Id: StMuDstVtxT.cxx,v 2.7 2018/04/10 11:32:10 smirnovd Exp $ -#include "StMuDstVtxT.h" -#include "StKFVertex.h" - -std::ostream& operator<<(std::ostream& os, const StMuDstVtxT& v) { - os << Form("Q:%3i M:%3i/%3i/%3i W/E %3i/%3i tracks rank %5i xyz = %9.3f +/- %5.3f, %9.3f +/- %5.3f, %9.3f +/- %5.3f", - v.Q(),v.MultU(),v.Mult(),v.MultC(),v.MultW(),v.MultE(),v.Rank(), - v.Xyz().x(),v.SigmaXyz().x(), - v.Xyz().y(),v.SigmaXyz().x(), - v.Xyz().z(),v.SigmaXyz().x()) - << Form(" Mc/QA/t:%4i/%3i/%6.0f xyz: %8.3f%8.3f%8.3f m:%4i %6s",v.IdTruth(), v.QaTruth(), - v.TimeMc(), v.XyzMc().X(), v.XyzMc().Y(), v.XyzMc().Z(), - v.NoDaughtersMc(),StKFVertex::GeNames[v.gePidMc()]); - return os; -} -// $Log: StMuDstVtxT.cxx,v $ -// Revision 2.7 2018/04/10 11:32:10 smirnovd -// Minor corrections across multiple files -// -// - Remove ClassImp macro -// - Change white space -// - Correct windows newlines to unix -// - Remove unused debugging -// - Correct StTpcRTSHitMaker header guard -// - Remove unused preprocessor directives in StiCA -// - Minor changes in status and debug print out -// - Remove using std namespace from StiKalmanTrackFinder -// - Remove includes for unused headers -// -// Revision 2.6 2015/12/20 01:35:12 fisyak -// Move back commits done by mistate -// -// Revision 2.4 2013/04/10 22:14:20 fisyak -// Roll back to version 04/04/2013 -// -// Revision 2.2 2012/06/11 15:33:41 fisyak -// std namespace -// -// Revision 2.1 2012/05/07 14:56:14 fisyak -// Add StKFVertexMaker -// -// Revision 1.2 2012/02/07 19:38:26 fisyak -// Repackage -// diff --git a/StRoot/StiMaker/StMuDstVtxT.h b/StRoot/StiMaker/StMuDstVtxT.h deleted file mode 100644 index 57745b9c195..00000000000 --- a/StRoot/StiMaker/StMuDstVtxT.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef __StMuDstVtxT_h__ -#define __StMuDstVtxT_h__ -#include "Riostream.h" -#include "TObject.h" -#include "TVector3.h" -#include "StKFTrack.h" -class StMuDstVtxT; -std::ostream& operator<<(std::ostream& os, const StMuDstVtxT& v); -class StMuDstVtxT : public TObject { -public: - StMuDstVtxT(Double_t x = 0, Double_t y = 0, Double_t z = 0, - Double_t sigma_x = 0, Double_t sigma_y = 0, Double_t sigma_z = 0, - Int_t multU = 0, Int_t mult = 0, Int_t multC = 0, Int_t multW = 0, - Int_t multE = 0, Int_t q = 0, Int_t r = 0, - Short_t idTruth = 0, Short_t Qual = 0, Int_t idParentTk = 0) : - fMultU(multU), fMult(mult), fMultC(multC), fMultW(multW), fMultE(multE), fQ(q), fRank(r), - fXyz(x,y,z), fSigmaXyz(sigma_x,sigma_y,sigma_z), - fIdTruth(idTruth), fQuality(Qual), fIdParentTk(idParentTk), fTimeMc(0), fNoDaughtersMc(0), fgePidMc(0) {} - virtual ~StMuDstVtxT() {} - TVector3 &Xyz() {return *&fXyz;} - TVector3 &SigmaXyz() {return *&fSigmaXyz;} - TVector3 Xyz() const {return fXyz;} - TVector3 SigmaXyz() const {return fSigmaXyz;} - TVector3 &XyzMc() {return *&fXyzMc;} - TVector3 XyzMc() const {return fXyzMc;} - Int_t Mult() const {return fMult;} - Int_t MultU() const {return fMultU;} - Int_t MultC() const {return fMultC;} - Int_t MultW() const {return fMultW;} - Int_t MultE() const {return fMultE;} - Int_t Q() const {return fQ;} - Int_t Rank() const {return fRank;} - Short_t IdTruth() const {return fIdTruth;} - Short_t QaTruth() const {return fQuality;} - Int_t IdParentTk() const {return fIdParentTk;} - Float_t TimeMc() const {return fTimeMc;} - Int_t NoDaughtersMc() const {return fNoDaughtersMc;} - Int_t gePidMc() const {return fgePidMc;} - void Print(Option_t *option="") const {if (option) {}; std::cout << *this << std::endl;} - void SetMc(Int_t NoMuMcVertex = 0, Int_t NoMuMcTrack = 0, const Float_t *time = 0, - const Float_t *x = 0,const Float_t *y = 0,const Float_t *z = 0, - const Int_t *NoDaughters = 0,const Int_t *IdParTrk = 0,const Int_t *gePid = 0) { - Int_t kv = IdTruth(); - if (kv > 0 && kv <= NoMuMcVertex) { - if (time && x && y && z && NoDaughters && IdParTrk) { - fTimeMc = 1e9*time[kv-1]; - fXyzMc = TVector3(x[kv-1],y[kv-1],z[kv-1]); - fNoDaughtersMc = NoDaughters[kv-1]; - Int_t kvp = IdParTrk[kv-1]; - if (kvp > 0 && kvp <= NoMuMcTrack) { - fgePidMc = StKFTrack::CorrectGePid(gePid[kvp-1]); - } - } - } - } -protected: - Int_t fMultU, fMult, fMultC, fMultW, fMultE; - Int_t fQ; // charge - Int_t fRank; // MC=>0 - TVector3 fXyz; - TVector3 fSigmaXyz; - Short_t fIdTruth; - Short_t fQuality; - Int_t fIdParentTk; - Float_t fTimeMc; - TVector3 fXyzMc; - Int_t fNoDaughtersMc; - Int_t fgePidMc; - ClassDef(StMuDstVtxT,1) -}; -#endif diff --git a/StRoot/StiMaker/StVertexP.h b/StRoot/StiMaker/StVertexP.h deleted file mode 100644 index c4ca505dddd..00000000000 --- a/StRoot/StiMaker/StVertexP.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef __StVertexP_h__ -#define __StVertexP_h__ - -#include "TObject.h" -#include "StVertexT.h" -class StVertexP : public TObject { // Vertex pair -public: - StVertexP() : fI(0), fJ(0), fChi2(0) {} - StVertexP(Int_t i, Int_t j, StVertexT &VI, StVertexT &VJ, Double_t chi2) : fI(i), fJ(j), fChi2(chi2), fVI(VI), fVJ(VJ) {} - virtual ~StVertexP() {} -private: - Int_t fI; - Int_t fJ; - Double_t fChi2; - StVertexT fVI; - StVertexT fVJ; - ClassDef(StVertexP,1) -}; // for pair vertices -#endif diff --git a/StRoot/StiMaker/StVertexT.h b/StRoot/StiMaker/StVertexT.h deleted file mode 100644 index b1867426a67..00000000000 --- a/StRoot/StiMaker/StVertexT.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef __StVertexT_h__ -#define __StVertexT_h__ -#include "StMuDstVtxT.h" -class StVertexT : public StMuDstVtxT { -public: - StVertexT(Double_t x = 0, Double_t y = 0, Double_t z = 0, - Double_t sigma_x = 0, Double_t sigma_y = 0, Double_t sigma_z = 0, - Int_t multU = 0, Int_t mult = 0, Int_t multW = 0, Int_t multE = 0, Int_t q = 0, Int_t r = 0, - Int_t ndf = 0, Double_t prob = 0, Double_t chi2 = 0, - Short_t idTruth = 0, Short_t Qual = 0, Int_t idParentTk = 0) : - StMuDstVtxT(x,y,z,sigma_x,sigma_y,sigma_z,multU,mult,multW,multE,q,r,idTruth,Qual,idParentTk), - fNDF(ndf), fProb(prob), fChi2(chi2), - fiMuDst(0), fChi2MuDst(0), fiKF(0), fChi2KF(0) {} - StVertexT(StMuDstVtxT &dst, Int_t ndf = 0, Double_t prob = 0, Double_t chi2 = 0) : - StMuDstVtxT(dst), fNDF(ndf), fProb(prob), fChi2(chi2), - fiMuDst(0), fChi2MuDst(0), fiKF(0), fChi2KF(0) {} - StVertexT(StKFVertex &v) : StMuDstVtxT(v.Vertex().GetX(), - v.Vertex().GetY(), - v.Vertex().GetZ(), - TMath::Sqrt(v.Vertex().GetCovariance(0,0)), - TMath::Sqrt(v.Vertex().GetCovariance(1,1)), - TMath::Sqrt(v.Vertex().GetCovariance(2,2)), - -1, v.NoTracks(), -1, v.MultW(), v.MultE(), v.Q(), 0, - v.IdTruth(), v.QaTruth(), v.IdParentTk()), - fNDF(v.Vertex().GetNDF()),fProb(TMath::Prob(v.Vertex().GetChi2(),v.Vertex().GetNDF())), - fChi2(v.Vertex().GetChi2()), - fiMuDst(0), fChi2MuDst(0), fiKF(0), fChi2KF(0) { - fTimeMc = v.TimeMc(); - fXyzMc = v.XyzMc(); - fNoDaughtersMc = v.NoDaughtersMc(); - fgePidMc = v.gePidMc(); - } - virtual ~StVertexT() {} - void SetMuDst(Int_t i, Double_t p) {fiMuDst = i; fChi2MuDst = p;} - void SetKF(Int_t i, Double_t p) {fiKF = i; fChi2KF = p;} -private: - Int_t fNDF; - Double_t fProb; - Double_t fChi2; - Int_t fiMuDst; // KFVertex best match with MuDst - Double_t fChi2MuDst; // chi2 for the above match - Int_t fiKF; // KFVertex best match with KFVertex in (x,y) - Double_t fChi2KF; // chi2 for the above match - ClassDef(StVertexT,1) -}; -#endif diff --git a/StRoot/macros/Load.C b/StRoot/macros/Load.C index 0b9bcefab9e..81d75de3f89 100644 --- a/StRoot/macros/Load.C +++ b/StRoot/macros/Load.C @@ -7,7 +7,11 @@ void Load() { const char * const loadList[]={ - "St_base" + "libCore" +,"libPhysics" +,"libTree" +,"libGeom" +,"St_base" ,"St_Tables" ,"StarRoot" ,"StChain" @@ -22,6 +26,9 @@ const char * const loadList[]={ ,"StDbBroker" ,"St_db_Maker" ,"StTriggerDataMaker" +,"StStrangeMuDstMaker" +,"StEmcUtil" +,"StMuDSTMaker" ,"StBFChain" ,0}; @@ -30,5 +37,9 @@ const char * const loadList[]={ printf(" Loading %s\n",ts.Data()); int ians = gSystem->Load(ts.Data()); if (ians<0) printf("**Failed %s = %d\n",ts.Data(),ians); + ians = gSystem->Load(ts.Data()); + if (ians<0) printf("**Failed %s = %d\n",ts.Data(),ians); + ians = gSystem->Load(ts.Data()); + if (ians<0) printf("**Failed %s = %d\n",ts.Data(),ians); } } diff --git a/StarEtc/0README b/StarEtc/0README new file mode 100644 index 00000000000..47ad861e35e --- /dev/null +++ b/StarEtc/0README @@ -0,0 +1,30 @@ +StarEtc directory contains different auxiliary files for STAT+ROOT + +1. star.rootrc rootrc file for ROOT.60.24.00. To run ROOT must do copy: + cp 601600.rootrc ~/.rootrc + +2. rootlogon.C ROOT logon which is called on init + +3. STAR.h include file with the set of popular STAR includes used in macros. + for instance in bfc.C + +4 source skip_dirs.csh + An example how to skip compilation of non desirable directories + + +5 source rstarroot.csh + Initialisation of Root 6.24.00 + +6. agmlupd.csh acro to compile & update AGML stuff. + +How to copile everything. +Unfortunatelly in cons still existing soe bugs. As a result some dependency +are not correct. But compilation still possible +=========================================================================== +stardev +cd $STAR +source StarEtc/skip_dirs.csh # if you need only subset of libbraries +source StarEtc/starroot.csh # in it of star version of Root6 +cons + + diff --git a/StarEtc/STAR.h b/StarEtc/STAR.h new file mode 100644 index 00000000000..f8369554436 --- /dev/null +++ b/StarEtc/STAR.h @@ -0,0 +1,18 @@ +#ifndef STAR_H +#include "TInterpreter.h" + +#include "TTable.h" +#include "TDataSet.h" +#include "TDataSetIter.h" +#include "Stsstream.h" +#include "St.h" + +#include "StChain/StMaker.h" +#if 1 +#include "StChain/StChain.h" +#include "StBFChain/StBFChain.h" +#include "StChain/StChain.h" +#include "StiUtilities/StiDebug.h" +#endif +#define STAR_H 1946 +#endif diff --git a/StarEtc/agmlupd.csh b/StarEtc/agmlupd.csh new file mode 100755 index 00000000000..63d717de0eb --- /dev/null +++ b/StarEtc/agmlupd.csh @@ -0,0 +1,14 @@ +# +rm -r StarVMC/StarGeometry/*.cxx StarVMC/StarGeometry/*.h +set x = (StarVMC/xgeometry/*.age) +foreach f ($x) + if ($f == "xgeometry.age") next + rm -f $f +end +#Create compilable code and compile + +cons +StarVMC/Geometry +cons +StarGeometry +cons +xgeometry +echo '******* AGML Update ENDED *******' +exit 0 diff --git a/StarEtc/rootlogon.C b/StarEtc/rootlogon.C new file mode 100644 index 00000000000..e453619030e --- /dev/null +++ b/StarEtc/rootlogon.C @@ -0,0 +1,56 @@ +void rootlogon() +{ + printf("***** BOT OHO *****\n"); +const char* path[] = { +"-I $CWD", +"-I .${STAR_HOST_SYS}/include", +"-I .${STAR_TABLES}/include", +"-I StRoot", +"-I StarVMC", +"-I ${STAR}", +"-I ${STAR}/.${STAR_HOST_SYS}/include", +"-I ${STAR}/StRoot", +"-I ${STAR}/StarVMC", +"-I ${STAR}/StarEtc", +"-I ${ROOTSYS}/include", +0}; + + const char *myTab = gSystem->Getenv("STAR_TABLES"); + if (!myTab) path[2] = " "; + + + for (int i=0;path[i];i++) { + if (path[i][0]==' ') continue; + TString ts(path[i]+3); +// TString ts(path[i]); + gSystem->ExpandPathName(ts); + gSystem->AddIncludePath(ts); + gInterpreter->AddIncludePath(ts); + }; + +printf("*** InterpreterInclude ***\n"); + const char* g = 0; + g = (const char*)gInterpreter->ProcessLine(".include"); +//??? assert(g); + printf("%s\n\n\n",g); + +printf(" *** SystemInclude ***\n\n"); + g = gSystem->GetIncludePath(); + assert(g); + printf("%s\n\n\n",g); + + gSystem->Setenv("ROOT_INCLUDE_PATH",g); + g = gInterpreter->GetIncludePath(); + printf("%s\n\n\n",g); + +printf(" *** DynamicInclude ***\n\n"); + g = gSystem->GetDynamicPath(); +assert(g); + printf("%s\n\n\n",g); + + gSystem->SetFlagsOpt("-g -DDEBUG"); + g = gSystem->GetFlagsOpt(); +assert(g); +printf("SetFlagsOpt %s\n\n\n",g); + +} diff --git a/StarEtc/skip_dirs.csh b/StarEtc/skip_dirs.csh new file mode 100644 index 00000000000..35c5a29ff0a --- /dev/null +++ b/StarEtc/skip_dirs.csh @@ -0,0 +1,44 @@ +# +# source skip_dirs.csh +# An example how ro skip compilation of non desirable directories + +setenv SKIP_DIRS " " +#_____________________________________________________________________________ +# Normal skip dirs + + +#_____________________________________________________________________________ +setenv SKIP_DIRS "$SKIP_DIRS StTriggerUtilities StSvtSelfMaker StVeloMaker " +setenv SKIP_DIRS "$SKIP_DIRS St_pp2pp_Maker " +setenv SKIP_DIRS "$SKIP_DIRS StHbtMaker " +setenv SKIP_DIRS "$SKIP_DIRS OnlTools " +setenv SKIP_DIRS "$SKIP_DIRS QtRoot" +setenv SKIP_DIRS "$SKIP_DIRS GeoTestMaker Stv " +setenv SKIP_DIRS "$SKIP_DIRS StJetMaker" +setenv SKIP_DIRS "$SKIP_DIRS StBTofPool" +setenv SKIP_DIRS "$SKIP_DIRS StEEmcPool" +setenv SKIP_DIRS "$SKIP_DIRS StEmcPool" +setenv SKIP_DIRS "$SKIP_DIRS StructPool" +setenv SKIP_DIRS "$SKIP_DIRS StFgtPool" +setenv SKIP_DIRS "$SKIP_DIRS StHighptPool" +setenv SKIP_DIRS "$SKIP_DIRS StRichPool" +setenv SKIP_DIRS "$SKIP_DIRS StSpectraPool" +setenv SKIP_DIRS "$SKIP_DIRS StSpinPool" +setenv SKIP_DIRS "$SKIP_DIRS StSvtPool" +setenv SKIP_DIRS "$SKIP_DIRS StTofPool" +setenv SKIP_DIRS "$SKIP_DIRS StTpcPool" + +setenv SKIP_DIRS "$SKIP_DIRS StShadowMaker" +setenv SKIP_DIRS "$SKIP_DIRS StTrsMaker" + + +#_____________________________________________________________________________ +# Skip Temp +setenv SKIP_DIRS "$SKIP_DIRS StFwdTrackMaker " +setenv SKIP_DIRS "$SKIP_DIRS StiCA" ##Not compiling in Any ROOT +setenv SKIP_DIRS "$SKIP_DIRS TPCCATracker" ##Not compiling in Any ROOT +#_____________________________________________________________________________ +# End Temp skip +echo $SKIP_DIRS + +# diff --git a/StarEtc/star.rootrc b/StarEtc/star.rootrc new file mode 100644 index 00000000000..457425cd6da --- /dev/null +++ b/StarEtc/star.rootrc @@ -0,0 +1,54 @@ +# @(#)root/config:$Id$ +# Author: Fons Rademakers 22/09/95 + +# ROOT Environment settings are handled via the class TEnv. To see +# which values are active do: gEnv->Print(). + +# Path used by dynamic loader to find shared libraries. +# This path will be appended to the (DY)LD_LIBRARY_PATH on Unix +# and to PATH on Windows. +# Paths are different for Unix and Windows. The example shows the defaults +# for all ROOT applications for either Unix or Windows. +#Unix.*.Root.DynamicPath: .:$(ROOTSYS)/lib +Unix.*.Root.DynamicPath: .:($LD_LIBRARY_PATH):$(ROOTSYS)/lib +********************* + +# Path used to find macros. +# Paths are different for Unix and Windows. The example shows the defaults +# for all ROOT applications for either Unix or Windows. +#Unix.*.Root.MacroPath: .:$(ROOTSYS)/macros +Unix.*.Root.MacroPath: .:./StRoot/macros:./StRoot/macros/graphics:./StRoot/macros/analysis:./StRoot/macros/test:./StRoot/macros/examples:./StRoot/macros/html:./StRoot/macros/qa:./StRoot/macros/calib:./StRoot/macros/mudst:$STAR:$(STAR)/StRoot/macros:$(STAR)/StRoot/macros/graphics:$(STAR)/StRoot/macros/analysis:$(STAR)/StRoot/macros/test:$(STAR)/StRoot/macros/examples:$(STAR)/StRoot/macros/html:$(STAR)/StRoot/macros/qa:$(STAR)/StRoot/macros/calib:$(STAR)/StRoot/macros/mudst:$(ROOTSYS)/macros:$(ROOTSYS)/tutorials + + +# Add additional include directives for ACLiC compilations. +#ACLiC.IncludePaths: +#-I $(PWD) +#-I $(PWD)/.$(STAR_HOST_SYS)/include +#-I $(PWD)/StRoot +#-I $(PWD)/StarVMC +#-I $(STAR) +#-I $(STAR)/.$(STAR_HOST_SYS)/include +#-I $(STAR)/StRoot +#-I $(STAR)/StarVMC +#-I $(ROOTSYS)/include +# + +#ACLiC.IncludePaths: -I$(PWD) -I$(PWD)/.$(STAR_HOST_SYS)/Include -I$(PWD)/StRoot -I$(PWD)/StarVMC -I$(STAR) -I$(STAR)/.$(STAR_HOST_SYS)/Include -I$(STAR)/StRoot -I$(STAR)/StarVMC -I$(ROOTSYS)/include +#Unix.*.Root.IncludePath: -I$(PWD) -I$(PWD)/.$(STAR_HOST_SYS)/Include -I$(PWD)/StRoot -I$(PWD)/StarVMC -I$(STAR) -I$(STAR)/.$(STAR_HOST_SYS)/Include -I$(STAR)/StRoot -I$(STAR)/StarVMC -I$(ROOTSYS)/include + +# Select whether and how ACLiC tracks the dependency of the libraries. +# 0 - No tracking +# 1 - [Default] New libraries are explicitly linked to all currently loaded libraries +# 2 - Generate and use rootmap file for each library +# 3 - Generate rootmap file for each library _and_ explicitly link to the +# needed libraries. +# On Windows, the default is 3 +ACLiC.LinkLibs: 3 +Unix.*.Root.IncludePath: -I$(PWD) -I$(PWD)/.$(STAR_HOST_SYS)/Include -I$(PWD)/StRoot -I$(PWD)/StarVMC -I$(STAR) -I$(STAR)/.$(STAR_HOST_SYS)/Include -I$(STAR)/StRoot -I$(STAR)/StarVMC -I$(ROOTSYS)/include + +# Rint (interactive ROOT executable) specific alias, logon and logoff macros. +Rint.Load: rootalias.C +Rint.Logon: $(STAR)/StarEtc/rootlogon.C +Rint.Logoff: rootlogoff.C + +# End of 62400.rootrc for STAR diff --git a/StarEtc/starroot.csh b/StarEtc/starroot.csh new file mode 100644 index 00000000000..d419d351316 --- /dev/null +++ b/StarEtc/starroot.csh @@ -0,0 +1,30 @@ +# +setenv myDEV2 /gpfs01/star/subsys-tpc/fisyak/STAR/packages/.DEV2 +setup 64b +if (1) then + set myROOT = 6.24.00 + setenv ROOT_LEVEL $myROOT +# module avail + module use /cvmfs/star.sdcc.bnl.gov/star-spack/spack/share/spack/modules/linux-rhel7-x86_64 + module load star-env-root-6.24.00 +endif +if (0) then + set myROOT = 6.24.07 + setenv ROOT_LEVEL $myROOT + setenv ROOTSYS /gpfs01/star/subsys-tpc/fisyak/STAR/ROOT/6.99.99/.sl73_x8664_gcc485/rootdeb +endif + +setenv PATH $ROOTSYS/bin:/opt/star/sl73_x8664_gcc485/bin:/star/u/perev/bin:/usr/lib/jvm/jre-openjdk/bin:/afs/rhic/rhstar/group:mgr:$STAR/mgr:/afs/rhic.bnl.gov/star/packages/scripts:/afs/rhic.bnl.gov/star/packages/cgi:.sl73_x8664_gcc485/bin:/usr/afsws/bin:/usr/afsws/etc:/usr/local/bin:/opt/star/sl73_x8664_gcc485/qt4/bin:/usr/bin:/bin:/usr/sbin:.:/usr/local/sbin:/usr/lpp/mmfs/bin/:/cern64/pro/bin:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_x8664_gcc485/bin +setenv XROOTDSYS /afs/rhic.bnl.gov/star/ROOT/Xrootd/prod +setenv MANPATH $ROOTSYS/man:/opt/star/sl73_x8664_gcc485/man:/usr/share/man:/afs/rhic.bnl.gov/star/packages/man +setenv STAR_ROOT /afs/rhic.bnl.gov/star +setenv CVSROOT /afs/rhic.bnl.gov/star/packages/repository +setenv PYTHONPATH $ROOTSYS/lib +##setenv CINTSYSDIR /afs/rhic.bnl.gov/star/ROOT/6.24.00/.sl73_x8664_gcc485/rootdeb/cint +setenv STARSYS ${STAR}/.${STAR_HOST_SYS} +setenv STAR_OBJ $STARSYS/obj +setenv STAR_BIN $STARSYS/bin +setenv LD_LIBRARY_PATH $STARSYS/lib:$ROOTSYS/lib:/opt/star/sl73_x8664_gcc485/qt4/lib:/opt/star/sl73_x8664_gcc485/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86_64/gcc-4.8.5/zlib-1.2.11-vhzh5cfaki5lx5sjuth5iuojq5azdkbd/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86_64/gcc-4.8.5/libiconv-1.16-xqfklyc2vor3e36qddhohdjn23oizvzp/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86_64/gcc-4.8.5/libbsd-0.11.3-rtahy5ln7qia6gkaqld5zkqwhwr4fbcn/lib:/cvmfs/star.sdcc.bnl.gov/star-spack/spack/opt/spack/linux-rhel7-x86_64/gcc-4.8.5/libmd-1.0.3-27t6n5ivk3c2bshfhge3cpmfndimvuj3/lib:/afs/rhic.bnl.gov/star/ROOT/Xrootd/prod/.sl73_x8664_gcc485/lib + +unsetenv STAR_PAMS + diff --git a/mgr/ConsDefs.pm b/mgr/ConsDefs.pm index 6b64f4d8c99..64a6f0e8026 100644 --- a/mgr/ConsDefs.pm +++ b/mgr/ConsDefs.pm @@ -103,6 +103,7 @@ next if $f =~ /^-I/; push @List, $f; } + if ($#List >= 0) { $ROOTCFLAGS = " " . join ' ', @List; } @@ -173,8 +174,9 @@ $CXXFLAGS = $CFLAGS = $LDFLAGS = $SOFLAGS = "$XMACHOPT"; $CXXFLAGS .= " -fPIC -w"; +$CXXFLAGS .= "-fdiagnostics-color=always -msse4.2 -std=c++11 -pipe -Wshadow -Wall -W -Woverloaded-virtual -fsigned-char -pthread -DNDEBUG"; + $EXTRA_CXXFLAGS= ""; - $CXXOPT = ""; $CC = "gcc"; @@ -502,7 +504,7 @@ # SL5 we had 4.3.2 supporting a weak set of c++11 # SL6 had gcc 4.4.7 with more advanced c++11 implementations via std=c++0x # SL6 with gcc 4.8.2 supports all c++11 features via std=c++0x - for backward compat, - $CXXFLAGS .= " -std=c++0x"; # -fpermissive"; + $CXXFLAGS .= " -std=c++11"; # -fpermissive"; print "\tCXX version implies using C++/C++11 c++0x standard\n"; } } @@ -653,7 +655,7 @@ " -fsigned-char -fno-common $FINK_CXXFLAGS " . "-DG__REGEXP -DG__UNIX -DG__SHAREDLIB " . "-DG__ROOT -DG__REDIRECTIO -DG__OSFDLL " . - "-DG__STD_EXCEPTION"; +##??? Try ignore exceptions VP "-DG__STD_EXCEPTION"; $CINTCFLAGS = $CFLAGS . " $FINK_CFLAGS -DG__REGEXP -DG__UNIX -DG__SHAREDLIB " . "-DG__ROOT -DG__REDIRECTIO -DG__OSFDLL -DG__STD_EXCEPTION"; @@ -777,6 +779,8 @@ $CFLAGS .= $ROOTCFLAGS; $CXXFLAGS .= $ROOTCFLAGS; } + + # remove duplicates options coming from ROOTCFLAGS - used block to be sure # vars are gone when we go out of scope { @@ -1104,6 +1108,11 @@ $VcCPPFLAGS = " -DVC_IMPL=Scalar"; if (-e "temp_gccflags.c") {`rm temp_gccflags.c`;} } +##$CXXFLAGS = " -pthread -std=c++11 -m64 -fPIC "; +$CXXFLAGS = " -pthread -std=c++11 -m64 -fPIC -fdiagnostics-color=always -msse4.2 -fpermissive -Wall"; + + + my @params = ( 'Package' => 'None', 'CPP' => $CPP, diff --git a/mgr/Construct b/mgr/Construct index 6a86284e091..d868d93f999 100644 --- a/mgr/Construct +++ b/mgr/Construct @@ -365,6 +365,7 @@ if ($STAR_SYS !~ /x86_darwin/) { #if ( 1==0 ){ # disable the exclusion # if ( !($USE_64BITS and $USE_64BITS != "0") && if ( $STAR_SYS !~ /x86_darwin/){ + push @sysdirlist, "StRoot/Table"; push @sysdirlist, "asps/Simulation/geant321"; push @sysdirlist, "asps/Simulation/gcalor"; push @sysdirlist, "asps/rexe"; diff --git a/mgr/RootCint.pl b/mgr/RootCint.pl index 3c6e92ded17..9024158d81d 100755 --- a/mgr/RootCint.pl +++ b/mgr/RootCint.pl @@ -9,8 +9,11 @@ # my $Cint_cxx = shift; -my $Cint_h = $Cint_cxx; -$Cint_h =~ s/_Cint\.cxx/_Cint\.h/g; +my $Cint_h = $Cint_cxx; +my $Cint_map = $Cint_cxx; +$Cint_h =~ s/_Cint\.cxx/_Cint\.h/g; +$Cint_map =~ s/_Cint\.cxx/\.rootmap/g; + my $DirName = dirname($Cint_cxx); #print "DirName = $DirName\n"; my $LinkDef = $DirName . "/" . "LinkDef.h"; #print "Cint Files :", $Cint_cxx, ",", $Cint_h,",",$LinkDef,"\n"; @@ -437,9 +440,10 @@ # $cmd = "rootcint -f $Cint_cxx -c -D__NO_STRANGE_MUDST__ -DROOT_CINT -D__ROOT__ $CPPFLAGS $h_files"; # print "cmd (+extra) = ",$cmd,"\n"; #} else { - $cmd = "rootcint -f $Cint_cxx -c -DROOT_CINT -D__ROOT__ $CPPFLAGS $h_files"; +## $cmd = "rootcint -f $Cint_cxx -c -DROOT_CINT -D__ROOT__ $CPPFLAGS $h_files"; + $cmd = "rootcling -rmf $Cint_map -f $Cint_cxx -DROOT_CINT -D__ROOT__ $CPPFLAGS $h_files"; print "cmd (normal)= ",$cmd,"\n"; - # die; +## die; #} diff --git a/mgr/RootCling.pl b/mgr/RootCling.pl new file mode 100755 index 00000000000..9890ec69485 --- /dev/null +++ b/mgr/RootCling.pl @@ -0,0 +1,428 @@ +#!/usr/bin/env perl +# +# Script to run rootcling $Lib $libDep $RootMap Cint_cxx list of h-files +# Input : list of h-files +# Output : +# +use Env; +use File::Basename; +use Cwd; +# +my $Lib = cwd(); $ +Lib .= "/"; +$Lib .= shift; +$LibDep = shift; +$RootMap = shift; +my $Cint_cxx = shift; +my $Cint_h = $Cint_cxx; +$Cint_h =~ s/_Cint\.cxx/_Cint\.h/g; +print "Rootcling.pl :\n Lib = $Lib,\n LibDep = $LibDep,\n RootMap = $RootMap\n Cint_cxx = $Cint_cxx,\n h_files = @ARGV\n"; + +my $DirName = dirname($Cint_cxx); #print "DirName = $DirName\n"; +my $LinkDef = $DirName . "/" . "LinkDef.h"; #print "Cint Files :", $Cint_cxx, ",", $Cint_h,",",$LinkDef,"\n"; + +my $LinkDefDirName; + +my $sources = shift; #print "sources =", $sources,"\n"; +my $CPPFLAGS = shift; #print "CPPFLAGS = ", $CPPFLAGS, "\n"; +#my @cpps = split / /,$CPPFLAGS; #print "cpps: @cpps \n"; + +my %class_hfile = (); # class h-file map +my %class_hfile_depens_on = (); # +my %class_written = (); +my @classes = 0; # list of classes +my %namespaces = (); # hash of namespaces +my $h_files = ""; +my $h_dir = ""; +my $coll = 0; +my $col = 0; +my $IncDirName = ""; +# count no. of classes in LinkDef's +my $ListOfWrittenClasses = ":"; +my $ListOfDefinedClasses = ""; +my $off = 0; + +open (Out, ">$LinkDef") or die "Can't open $LinkDef"; + +# do not change the comment format for the library version +# It matches the one in stic and ConstructTable +print Out "/* This was generated for version '".$ENV{STAR_VERSION}."' */\n"; +#print Out "#if defined(__CINT__) && !defined(__ROOTCLING__)\n"; +print Out "#pragma link off all globals;\n"; +print Out "#pragma link off all classes;\n"; +print Out "#pragma link off all functions;\n";; +#if ($Lib !~ /StarClassLibrary1/) { +my $off = 1; +for my $def (split /\s/,$sources) { #print "SRC:", $def, "\n"; + if (!($def =~ /LinkDef/ )) {next;} + if ( ($def =~/^$LinkDef$/)) {next;} + open (In, $def) or die "Can't open $def"; + $LinkDefDirName = dirname($def); + my $openedBracket = 0; # for #ifndef __CLING__ + my $openedelse = 0; + while ($line = ) { + # print "$line"; + # if ($openedBracket && $line =~ /^\#else/) {$openedBracket = 0; $openedelse = 1; next;} + # if (($openedBracket || $openedelse) && $line =~ /^\#endif/) {$openedBracket = 0; next;} + # if ($line =~ /^\#ifndef __CLING__/) {$openedBracket = 1; next;} + # if ($openedBracket) {next;} + if (($line =~ /^\/\/IncFile *=/)) { + my @words = split /(=)/, $line; + chomp(@words[2]); + $h_files .= " " . @words[2]; + next; + } + if (!($line =~ /^\#pragma/)) {goto PRINT;} + if ($line =~ /link off all/) {next;} + if (!($line =~ / class / )) {goto PRINT;} + my @words = split /([ \(,\)\;\-\!+])/, $line; + if ($words[10] != "class") {goto PRINT;} + my $class = ""; + for (my $i = 12; $i < $#words; $i++) { + next if $words[$i] eq '' or $words[$i] =~ /^\s+/; + $class = $words[$i]; + last; + } + my $classG = $class; + if ($classG =~ /) { + chomp($line); + if ( $line =~ /\/\/\*/){ + # will not try to analyze this one and assume //.* + $line =~ s/\/\/\*//; + } + if ($com) { + if ($line =~ /\*\//) { + $com = 0; + $line =~ s/^*\*\///; # print "==> $line"; + } else { + next; + } + } + if ($line =~ m/(.*)(\/\*)/ ) { + $Lprefix = $1; + # be sure we do not have a /* preceded by a // + # the //.* will be removed later + if ( $Lprefix !~ m/\/\// ){ #|| ! $NEW ){ + #print "DEBUG: Enabling comment mode\n" if ($rdebug); + $com = 1; + if ($line =~ /\*\//) { + $line =~ s/\/\*.*\*\///; + $com = 0; + } else { + $line =~ s/\/\*.*$//; + } + } + } + # next if ($com); + + + # JL 2011 - weak parsing - should detect brackets etc ... + # but a first try - tor turn off, name "{" on the same + # line than namespace and for enabling, on the line afterward + if ($line =~ /(namespace\s+)(\w+)/ ){ + $dummy = $2; + if ( $line !~ /using/ && $line =~ m/\$NMSPC/ ){ + $nmspc = $dummy; + } + #print "DEBUG: YEAH! Matched\n"; + } else { + #print "DEBUG: Did not match [$line]\n"; + } + + #if ( $NEW){ + # strip of // should likely happen after /* */ + if ($line =~ /\/\//) { + $line =~ s/\/\/.*$//; + # print "==> $line"; + } + #} + + # print "DEBUG: <$line>\n" if ($rdebug); + + if ($line =~ /\#include/ && $line !~ /(<>)/ && $line !~ /Table\.h/) { + (my $inc_h = $line) =~ s/\#include\s//g; chop ($inc_h); + $inc_h =~ s/\"//g; + # print "inc_h = $inc_h\n"; + + my $inc_hh = basename($inc_h); + if ($sources =~ /$inc_hh/) { + $includes .= ":" . $inc_hh; + # print "--includes for $h: $includes\n"; + } + } + + if ($line =~/ClassDef/ && $line !~ /ClassDefChair/) { + # print "================================ $line \n"; + if ($line =~ /\#\#/) { next;} # ClassDefs in macro definition + my @words = split /([\(,\-\!\)])/, $line; + my $class = $words[2]; + #print "=================class = ",$class," ($h_dir)\n"; + if ( index($IncDirName,$h_dir) == -1 && $h_dir ne $DirName){ + # print "=> Adding $h_dir to [$IncDirname]\n"; + $IncDirName .= "-I$h_dir "; + } + + if ($class) { + # print "Note - pushing [$nmspc] [$class] from $h\n" if ($nmspc ne ""); + $nclass = $nmspc eq ""?$class:$nmspc."::".$class; + #$nclass = $class; + push @classes, $nclass; + $class_hfile{$nclass} = $h; + # print "class: $class, written: $class_written{$class}, h: $class_hfile{$class}\n"; + + $class_hfile_depens_on{$nclass} = $includes; + + $namespaces{"$nmspc"}++ if ( $nmspc ne "" ); + } + } + if ($line =~ /\#define/) { next;} + if ($line =~ /StCollectionDef/) { + $coll++; #print "$coll, $line\n"; + } + } + close (In); + + + if ($coll) { # Collection Definition + my $macro = "./StRoot/St_base/StArray.h"; + if (-f $macro) {} + else {$macro = `echo \$STAR/StRoot/St_base/StArray.h`;} + my $tmp = "/tmp/temp" . $$ . ".h"; + open (INPUT, $h) or die "Can't open $h\n"; + my $new_h = $DirName . "/" . basename($h); + open (OUTPUT, ">$tmp") or die "Can't open $tmp\n"; + while ($line = ) { + if ($line =~ /StCollectionDef/) { + my @Class = split /([\(\)])/, $line; + my $class = $Class[2]; + if ($class) { + (my $core = $class) =~ s/^St//g; #print "core $core\n"; + my $cl = ""; + foreach my $stem ("Iterator","PtrVec","SPtrVec") { + if ($stem eq "Iterator") {$cl = "St" . $core . $stem ;} + else {$cl = "St" . $stem . $core . "-";} + #print "DEBUG pushing $cl\n"; + push @classes, $cl; + $class_hfile{$cl} = $new_h; $class_hfile_depens_on{$cl} = $includes; + #print "class: $stem $core $cl includes $includes\n"; + } + open(DEF, $macro) || die "Can't open Macros $macro \n"; + my $def = 0; + while ($line = ) { + if ($line =~ /\#define/ && $line =~ /StCollectionDef/) { + $def = 1; next; + } + if ($def && $line =~ /\#define/) {last;} + if (! $def) { next; } + $line =~ s/\\//g; + $line =~ s/QWERTY/$class/g; + $line =~ s/ \#\# //g; + $line =~ s/\#\# //g; + $line =~ s/ \#\#//g; + print OUTPUT $line; #print $line; + } + } + } + else {print OUTPUT $line;} + } + close (OUTPUT); +# print "rename $tmp, $new_h\n"; + rename $tmp, $new_h or + `mv $tmp $new_h`;# or die "Can't rename or move $tmp to $new_h;\n"; + + } + } #end Collection Definition +#} + +my $opened = ""; +foreach my $class (@classes) { + # if ($class =~ /Iterator/ || $class =~ /PtrVec/ || + # $class =~ /SPtrVec/) {$class_written{$class} = "YES";} + if ($class) { + if (!$class_written{$class}) { + if (!$opened) { + open (Out,">>$LinkDef") or die "Can't open $LinkDef"; +# print Out "#ifdef __CINT__\n"; #print "#ifdef __CINT__\n"; + if (! $off) { + print Out "#pragma link off all globals;\n"; #print "#pragma link off all globals;\n"; + print Out "#pragma link off all classes;\n"; #print "#pragma link off all classes;\n"; + print Out "#pragma link off all functions;\n"; #print "#pragma link off all functions;\n"; + } + # Masa hints - put those prior to Name::Class + foreach my $name (sort keys %namespaces){ + my $count = $namespaces{"$name"}; + print "#pragma link C++ namespace $name;\n"; + print Out "#pragma link C++ namespace $name;\n"; + } + $opened = "YES"; + } + if ($class_hfile{$class} =~ /_Module/) { + print Out "#pragma link C++ class $class-;\n"; + print "#pragma link C++ class $class-;\n"; + (my $global = $class) =~ s/St_//g; + # vf print Out "#pragma link C++ global $global;\n"; print "#pragma link C++ global $global;\n"; + } else { + if ($class =~ /^St/ and $class =~ /Iterator$/) { + print Out "#pragma link C++ typedef $class;\n"; + print "#pragma link C++ typedef $class;\n"; + } else { + # print "======> |$class|\n"; + if ($class =~ /-$/) { + print Out "#pragma link C++ class $class;\n"; + print "#pragma link C++ class $class;\n"; + } else { + print Out "#pragma link C++ class $class+;\n"; + print "#pragma link C++ class $class+;\n"; + } + } + } + $class_written{$class} = "YES"; + } + } +} + +if ($opened) { +# print Out "#endif\n"; #print "#endif\n"; + close (Out); + $opened = ""; +} + +if ($coll) { # order h-files with Collections + my $done = 0; + while (!$done) { + my $add = 0; + for my $class (@classes) { #print "list : $h_files\n"; + next if ! $class; + my $h = $class_hfile{$class}; + next if ! $h; + my $hh = " " . basename($h) . " "; + next if $h_files =~ /$hh/; + my $hd = $class_hfile_depens_on{$class}; + if ($hd) { my @hds = split /:/, $hd; #print "h: $h => $hd => @hds\n"; + my $incsd = ""; + foreach my $hdd (@hds) { + next if ! $hdd or $hdd eq " "; #print "hdd = $hdd h_files = $h_files\n"; + next if $h_files =~ /$hdd/; + $incsd .= ":" . $hdd; #print "parse $h: $hdd $incsd\n"; + } + $hd = $incsd; #print "$h : depends on $hd\n"; + $class_hfile_depens_on{$class} = $hd; #print "h: $h => $hd\n"; + } + #print "class $class h = $h depends on $hd\n";# if $hd; + next if $hd; + $h_files .= $hh; $add++; #print "add $hh : $h_files\n"; + } + if (!$add) {$done = 1;} + } +} + +for my $class (@classes) { #loop over classes + next if ! $class; + my $h = $class_hfile{$class}; #print "Class: $class h: $h written: $class_written{$class} \n"; + foreach my $ext ((".h",".hh")){ #search for a few + if (!$h) { #No .h for class + my $hfile = $DirName . "/" . $class . $ext; #print "1 hfile = $hfile\n"; + if (! -f $hfile) { $hfile =$LinkDefDirName . "/" . $class . $ext; + #print "2 hfile = $hfile\n";} + } + if ( -f $hfile) { $h = $hfile;} + } + if ($h) { last;} + } + if (!$h) { + ## print STDERR "Rootcling.pl :: Warning : $class.h(h) NOT FOUND\n"; + next; + } + + my $hh = " " . basename($h) . " "; #print "hh = $hh\n"; + if ($h_files !~ /$hh/ ) {$h_files .= $hh;} +}#end loop over classes + +my @h_files = split ' ', $h_files; +my $h_filesC = ""; +my $h_filesR = ""; +foreach my $h (@h_files) { + if ($h =~ /Collection/) {$h_filesC .= $h . " ";} + else {$h_filesR .= $h . " ";} +} +$h_files = $h_filesC . " " . $h_filesR; +# print "h_files= $h_files\n"; +my $hfile = $DirName . "/Stypes.h"; +if (-f $hfile) {$h_files .= " Stypes.h";} +if ($h_files) { + $h_files .= " " . "LinkDef.h"; +# $CPPFLAGS = " -I" . $DirName . " " . $IncDirName . $CPPFLAGS; + $CPPFLAGS = " -I" . cwd() . "/" . $DirName . " " . $IncDirName . $CPPFLAGS; +# my $cmd = "rootcling -rootbuild -f $Cint_cxx -rml $Lib -rmf $RootMap"; +# my $cmd = "rootcling -rootbuild -f $Cint_cxx -s $Lib -rml $Lib -rmf $RootMap"; +# my $cmd = "rootcling -rootbuild -f $Cint_cxx -cxxmodule -s $Lib"; +# my $cmd = "rootcling -rootbuild -f $Cint_cxx -s $Lib"; +# my $cmd = "rootcling -rootbuild -f $Cint_cxx -cxxmodule -s $Lib -rmf $RootMap"; + $ENV{ROOTIGNOREPREFIX} = 1; + $ENV{ROOT_MODULES} = 1; + my $cmd = "rootcling -rootbuild -f $Cint_cxx"; +# $cmd .= " -cxxmodule"; +# $cmd .= " -inlineInputHeader -s $Lib -rmf $RootMap"; + my $bLib = File::Basename::basename($Lib); +# my $RootMapF = cwd() . "/" . $RootMap; + $cmd .= " -inlineInputHeader -s $Lib -rml $bLib -rmf $RootMap"; +# $cmd .= " -inlineInputHeader -s $Lib -rml $bLib -rmf $RootMapF"; +# my $LibF = cwd() . $Lib; +# $cmd .= " -inlineInputHeader -s $Lib -rml $bLib -rmf $RootMap"; + if ($LibDep) { + my @libs = split(' ',$LibDep); + foreach my $l (@libs) { + # print "l = $l\n"; + my $m = $l; + $m =~ s/-l/lib/; + $m .= "_rdict.pcm"; + $cmd .= " -m " . $m; + } + } +# $cmd .= " -c -p -DROOT_CINT -D__ROOT__ $CPPFLAGS $h_files"; +# $cmd .= " -excludePath $ROOT/$ROOT_LEVEL/root -excludePath $ROOTSYS -excludePath $STAR -excludePath $STAR/.$STAR_HOST_SYS/include"; + $cmd .= " -DROOT_CINT -D__ROOT__ $CPPFLAGS $h_files"; + print "cmd (normal)= ",$cmd,"\n"; + my $flag = `$cmd`; if ($?) {exit 2;} + my $LIBDIR = File::Basename::dirname($Lib); + my $pcmfile = File::Basename::basename($Lib); + $pcmfile =~ s/\.so/_rdict\.pcm/; + my $OBJDIR = File::Basename::dirname($Cint_cxx); +# $cmd = "ln -s $LIBDIR/$pcmfile $OBJDIR/$pcmfile"; print "cmd $cmd\n"; +# $flag = `$cmd`; if ($?) {exit 2;} + link $LIBDIR."/".$pcmfile, $OBJDIR."/".$pcmfile +} +exit(0); +# last line diff --git a/mgr/temp_gccflags.c b/mgr/temp_gccflags.c new file mode 100644 index 00000000000..e69de29bb2d