7 vector<TString> branchesToClone)
65 xmlConfFileNameGEM =
"GemRunSpring2018.xml";
66 xmlConfFileNameSil =
"SiliconRunSpring2018.xml";
67 xmlConfFileNameCSC =
"CSCRunSpring2018.xml";
69 xmlConfFileNameGEM =
"GemRunSRCSpring2018.xml";
70 xmlConfFileNameSil =
"SiliconRunSRCSpring2018.xml";
71 xmlConfFileNameCSC =
"CSCRunSRCSpring2018.xml";
75 xmlConfFileNameGEM =
"GemRunSpring2017.xml";
76 xmlConfFileNameSil =
"SiliconRunSpring2017.xml";
79 printf(
"Error! Unknown config!\n");
84 if (xmlConfFileNameGEM.
Length() > 0) {
85 xmlConfFileNameGEM =
TString(getenv(
"VMCWORKDIR")) +
"/parameters/gem/XMLConfigs/" + xmlConfFileNameGEM;
86 printf(
"xmlConfFileName %s\n", xmlConfFileNameGEM.
Data());
89 if (xmlConfFileNameSil.
Length() > 0) {
90 xmlConfFileNameSil =
TString(getenv(
"VMCWORKDIR")) +
"/parameters/silicon/XMLConfigs/" + xmlConfFileNameSil;
91 printf(
"xmlConfFileName %s\n", xmlConfFileNameSil.
Data());
94 if (xmlConfFileNameCSC.
Length() > 0) {
95 xmlConfFileNameCSC =
TString(getenv(
"VMCWORKDIR")) +
"/parameters/csc/XMLConfigs/" + xmlConfFileNameCSC;
96 printf(
"xmlConfFileName %s\n", xmlConfFileNameCSC.
Data());
114 printf(
"CBM-->BM@N DST converter init\n");
116 FairRootManager* ioman = FairRootManager::Instance();
118 fprintf(stderr,
"FairRootManager is not instantiated!");
124 printf(
"This is MC generated file\n");
128 fprintf(stderr,
"No valid event header found!");
158 printf(
"This is %s DST\n", (
isMCDST ?
"MC" :
"exp"));
200 printf(
"\n!!!!\ncannot open file %s !\n",
fDstFileName.Data());
215 fDstTree->SetBranchAddress(brName.Data(), &arIn);
221 ioman->Register(brName,
"", arOut,
kTRUE);
279 Int_t trackID = pt->GetTrackID();
280 Int_t detID = pt->GetDetectorID();
281 Int_t eventID = pt->GetEventID();
284 Double_t eLoss = pt->GetEnergyLoss();
298 trackID, detID, posIn, posOut, momIn, momOut, tof, len, eLoss, isPrimary, charge, pdgId);
301 silPt->SetEventID(eventID);
345 new ((*fBMNVertex)[
fBMNVertex->GetEntriesFast()])
350 for (
Int_t iHit = 0; iHit <
fCBMHits->GetEntriesFast(); iHit++) {
360 TVector3(cbmHit->GetDx(), cbmHit->GetDy(), cbmHit->GetDz()), 0);
364 hit->SetTimeStamp(cbmHit->GetTimeStamp());
365 hit->SetTimeStampError(cbmHit->GetTimeStampError());
372 TVector3(cbmHit->GetDx(), cbmHit->GetDy(), cbmHit->GetDz()), 0);
376 hit->SetTimeStamp(cbmHit->GetTimeStamp());
377 hit->SetTimeStampError(cbmHit->GetTimeStampError());
384 TVector3(cbmHit->GetDx(), cbmHit->GetDy(), cbmHit->GetDz()), 0);
388 hit->SetTimeStamp(cbmHit->GetTimeStamp());
389 hit->SetTimeStampError(cbmHit->GetTimeStampError());
449 if ((fVerbose > 0) && (
iEvFile % 5000 == 0))
450 printf(
"iev %8lld\n",
iEvFile);
469 for (
size_t iAr = 0; iAr <
fOutArrays.size(); iAr++)
478 printf(
"\n ToF tree %u event lost!\n",
fBMNEvHeader->GetEventId());
487 for (
size_t iAr = 0; iAr <
fOutArrays.size(); iAr++) {
510 iModBmn = (4 - iModCbm) / 2;
515 iModBmn = (iModCbm - 1) / 2;
534 iModBmn = (3 - iModCbm) / 2;
TMatrixTSym< Float_t > TMatrixFSym
BmnSetup
Define experimental setup.
void SetGemTrackIndex(Int_t iGem)
Modifiers.
void SetCovXY(Double_t val)
void SetModule(Int_t mod)
void SetDetId(DetectorId det)
void SetStation(Short_t st)
void SetStation(Int_t station_num)
void SetModule(Int_t module_num)
TString fCBMGlobalTracksCSCName
TClonesArray * fBMNSilPoints
FairMCEventHeader * fCBMMCEvHeader
TClonesArray * fBMNGemHits
BmnTrackConv(Int_t run_period, Int_t run_number=0, BmnSetup setup=kBMNSETUP, TString inFileAdd="", vector< TString > branchesToClone={"BmnTof400Hit", "BmnTof700Hit", "BmnDchTrack"})
TClonesArray * fCBMClusters
TClonesArray * fCBMBDPoints
TClonesArray * fBMNInnerHits
vector< TClonesArray * > fOutArrays
TString fBMNCSCPointsName
TClonesArray * fBMNCscHits
TClonesArray * fBMNCSCPoints
TString fBMNSilTracksName
Int_t CscModCbm2Bmn(Int_t iSt, Int_t iModCbm)
TClonesArray * fCBMGlobalTracks
void Exec(Option_t *option)
TClonesArray * fBMNTof400Points
FairEventHeader * fCBMEvHeader
vector< TClonesArray * > fInArrays
BmnZDCEventDataExt * fBMNZDC
TString fTof400PointsName
BmnCSCStationSet * fCscStationSet
TClonesArray * fCBMoldBMNEvHeader
TClonesArray * fBMNSilHits
TClonesArray * fBMNGlobalTracks
TString fBMNDchTracksName
TString fBMNGemPointsName
TClonesArray * fBMNBDPoints
TString fCBMMCEvHeaderName
BmnSiliconStationSet * fSilStationSet
TClonesArray * fBMNGemPoints
FairMCEventHeader * fBMNMCEvHeader
BmnGemStripStationSet * fGemStationSet
BmnZDCEventData * fBMNZDCIn
TString fBMNGemTracksName
TClonesArray * fCBMPoints
TString fBMNSilPointsName
DstEventHeader * fBMNEvHeader
Int_t GemModCbm2Bmn(Int_t iSt, Int_t iModCbm)
DstEventHeader * fBMNEvHeaderIn
TClonesArray * fCBMCSCPoints
TString fBMNGlobalTracksName
TString fBMNMCGlobalTracksName
TClonesArray * fBMNSilTracks
TString fCBMToF400HitsName
TClonesArray * fCBMTof400Points
vector< TString > fBrNames
TString fBMNTof400PointsName
TString fBMNTof400HitsName
TString fBMNTof700HitsName
TString fBMNCscTracksName
TClonesArray * fBMNGemTracks
TString fCBMoldBMNEvHeaderName
TString fCBMCSCPointsName
TClonesArray * fBMNVertex
TString fCBMGlobalTracksName
TString fBMNInnerHitsName
TString fBMNMCEvHeaderName
void SetChi2(Double_t chi2)
void SetParamLast(FairTrackParam &par)
Int_t GetNHits() const
Accessors.
void AddHit(Int_t hitIndex, FairHit *Hit)
Associate a FairHit to the track.
void SetParamFirst(FairTrackParam &par)
Modifiers.
void SortHits()
Public method SortHits Sorts the hits in downstream direction and writes the hit indices into the mem...
Double_t GetCovXY() const
Accessors.
virtual Int_t GetStationNr() const
Int_t GetSectorNr() const
void PositionOut(TVector3 &pos)
void MomentumOut(TVector3 &mom)
FairTrackParam * GetParamLast()
Int_t GetNStsHits() const
Accessors.
Int_t GetStsHitIndex(Int_t iHit) const
FairTrackParam * GetParamFirst()
void CovMatrix(TMatrixFSym &covMat) const
Double_t GetX() const
Accessors.
std::vector< Int_t > GetTrackInds()
TClass * GetClass() const
const char * Data() const