5 vector<TString> branchesToClone) {
55 TString xmlConfFileNameGEM;
56 TString xmlConfFileNameSil;
57 TString xmlConfFileNameCSC;
62 xmlConfFileNameGEM =
"GemRunSpring2018.xml";
63 xmlConfFileNameSil =
"SiliconRunSpring2018.xml";
64 xmlConfFileNameCSC =
"CSCRunSpring2018.xml";
66 xmlConfFileNameGEM =
"GemRunSRCSpring2018.xml";
67 xmlConfFileNameSil =
"SiliconRunSRCSpring2018.xml";
68 xmlConfFileNameCSC =
"CSCRunSRCSpring2018.xml";
72 xmlConfFileNameGEM =
"GemRunSpring2017.xml";
73 xmlConfFileNameSil =
"SiliconRunSpring2017.xml";
76 printf(
"Error! Unknown config!\n");
82 if (xmlConfFileNameGEM.Length() > 0) {
83 xmlConfFileNameGEM = TString(getenv(
"VMCWORKDIR")) +
"/parameters/gem/XMLConfigs/" + xmlConfFileNameGEM;
84 printf(
"xmlConfFileName %s\n", xmlConfFileNameGEM.Data());
87 if (xmlConfFileNameSil.Length() > 0) {
88 xmlConfFileNameSil = TString(getenv(
"VMCWORKDIR")) +
"/parameters/silicon/XMLConfigs/" + xmlConfFileNameSil;
89 printf(
"xmlConfFileName %s\n", xmlConfFileNameSil.Data());
92 if (xmlConfFileNameCSC.Length() > 0) {
93 xmlConfFileNameCSC = TString(getenv(
"VMCWORKDIR")) +
"/parameters/csc/XMLConfigs/" + xmlConfFileNameCSC;
94 printf(
"xmlConfFileName %s\n", xmlConfFileNameCSC.Data());
111 printf(
"CBM-->BM@N DST converter init\n");
113 FairRootManager* ioman = FairRootManager::Instance();
115 fprintf(stderr,
"FairRootManager is not instantiated!");
121 printf(
"This is MC generated file\n");
125 fprintf(stderr,
"No valid event header found!");
155 printf(
"This is %s DST\n", (
isMCDST ?
"MC" :
"exp"));
166 fBMNVertex =
new TClonesArray(BmnVertex::Class());
182 fBMNGemHits =
new TClonesArray(BmnGemStripHit::Class());
184 fBMNSilHits =
new TClonesArray(BmnSiliconHit::Class());
186 fBMNCscHits =
new TClonesArray(BmnCSCHit::Class());
196 printf(
"\n!!!!\ncannot open file %s !\n",
fDstFileName.Data());
210 TClonesArray * arIn =
nullptr;
211 fDstTree->SetBranchAddress(brName.Data(), &arIn);
214 TClass * cl = arIn->GetClass();
216 TClonesArray *arOut =
new TClonesArray(cl);
217 ioman->Register(brName,
"", arOut, kTRUE);
273 Int_t trackID = pt->GetTrackID();
274 Int_t detID = pt->GetDetectorID();
275 Int_t eventID = pt->GetEventID();
276 Double_t tof = pt->GetTime();
277 Double_t len = pt->GetLength();
278 Double_t eLoss = pt->GetEnergyLoss();
294 posIn, posOut, momIn, momOut,
296 isPrimary, charge, pdgId
300 silPt->SetEventID(eventID);
356 for (Int_t iHit = 0; iHit <
fCBMHits->GetEntriesFast(); iHit++) {
358 Int_t fClusterIndexFront = cbmHit->
GetDigi(0);
359 Int_t fClusterIndexBack = cbmHit->
GetDigi(1);
371 TVector3(cbmHit->GetX(), cbmHit->GetY(), cbmHit->GetZ()),
372 TVector3(cbmHit->GetDx(), cbmHit->GetDy(), cbmHit->GetDz()), 0);
376 hit->SetTimeStamp(cbmHit->GetTimeStamp());
377 hit->SetTimeStampError(cbmHit->GetTimeStampError());
391 TVector3(cbmHit->GetX(), cbmHit->GetY(), cbmHit->GetZ()),
392 TVector3(cbmHit->GetDx(), cbmHit->GetDy(), cbmHit->GetDz()), 0);
396 hit->SetTimeStamp(cbmHit->GetTimeStamp());
397 hit->SetTimeStampError(cbmHit->GetTimeStampError());
411 TVector3(cbmHit->GetX(), cbmHit->GetY(), cbmHit->GetZ()),
412 TVector3(cbmHit->GetDx(), cbmHit->GetDy(), cbmHit->GetDz()), 0);
416 hit->SetTimeStamp(cbmHit->GetTimeStamp());
417 hit->SetTimeStampError(cbmHit->GetTimeStampError());
430 for (Int_t iTrack = 0; iTrack <
fCBMGlobalTracks->GetEntriesFast(); iTrack++) {
444 for (Int_t iHit = 0; iHit < cbmTrack->
GetNStsHits(); iHit++) {
486 if ((fVerbose > 0) && (
iEvFile % 5000 == 0))
487 printf(
"iev %8lld\n",
iEvFile);
506 for (
size_t iAr = 0; iAr <
fOutArrays.size(); iAr++)
523 for (
size_t iAr = 0; iAr <
fOutArrays.size(); iAr++) {
547 iModBmn = (4 - iModCbm) / 2;
552 iModBmn = (iModCbm - 1) / 2;
570 iModBmn = (3 - iModCbm) / 2;
void SetStripPositionInUpperLayer(Double_t spos)
void SetStripTotalSignalInUpperLayer(Double_t sig)
void SetClusterSizeInUpperLayer(Int_t csize)
void SetStripTotalSignalInLowerLayer(Double_t sig)
void SetStripPositionInLowerLayer(Double_t spos)
void SetClusterSizeInLowerLayer(Int_t csize)
void SetStripPositionInLowerLayer(Double_t spos)
void SetClusterSizeInLowerLayer(Int_t csize)
void SetClusterSizeInUpperLayer(Int_t csize)
void SetStripTotalSignalInLowerLayer(Double_t sig)
void SetStripTotalSignalInUpperLayer(Double_t sig)
void SetStripPositionInUpperLayer(Double_t spos)
void SetSilTrackIndex(Int_t iSil)
void SetGemTrackIndex(Int_t iGem)
void AddCscHitIndex(Int_t i, Int_t iCsc)
void SetCovXY(Double_t val)
void SetModule(Int_t mod)
void SetDetId(DetectorId det)
void SetStation(Short_t st)
void SetStripTotalSignalInUpperLayer(Double_t sig)
void SetClusterSizeInUpperLayer(Int_t csize)
void SetClusterSizeInLowerLayer(Int_t csize)
void SetStripPositionInLowerLayer(Double_t spos)
void SetStripTotalSignalInLowerLayer(Double_t sig)
void SetStripPositionInUpperLayer(Double_t spos)
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)
void AddHit(Int_t hitIndex, FairHit *Hit)
void SetParamFirst(FairTrackParam &par)
void SetEnergy(Int_t v, char op='\0')
void SetNHits(Int_t v, char op='\0')
void SetMoment(Float_t v)
void SetAsymmetry(Float_t v)
Float_t GetEnergy(char op)
Double_t GetCovXY() const
virtual Int_t GetStationNr() const
Int_t GetSectorNr() const
Int_t GetDigi(Int_t iSide) const
void PositionOut(TVector3 &pos)
void MomentumOut(TVector3 &mom)
FairTrackParam * GetParamLast()
Int_t GetNStsHits() const
Int_t GetStsHitIndex(Int_t iHit) const
FairTrackParam * GetParamFirst()
void CovMatrix(TMatrixFSym &covMat) const
std::vector< Int_t > GetTrackInds()