#include "Stntuple/run1/StnRun1InitDataBlocks.hh" #include "Stntuple/run1/TStnRun1Event.hh" #include "Stntuple/obj/TStnTau.hh" #include "Stntuple/obj/TStnTauBlock.hh" //_____________________________________________________________________________ Int_t StnRun1InitTau(TStnTau* Tau, StnTausBlock_t* R1Tau, Int_t Itau) { // init tau object from a UC standard Ntuple Tau->fNumber = Itau; Tau->fDecayMode = TStnTau::kHadronicMode; Tau->fMomentum.SetXYZT(R1Tau->Tp4[Itau][0],R1Tau->Tp4[Itau][1], R1Tau->Tp4[Itau][2],R1Tau->Tp4[Itau][3]); Tau->fCharge = R1Tau->Tq[Itau]; Tau->fZv = R1Tau->Tzv[Itau]; Tau->fDteta = R1Tau->Tdteta[Itau]; Tau->fPtvis = R1Tau->Tptvis[Itau]; Tau->fStatusCode = R1Tau->Tstat[Itau]; Tau->fDelr = R1Tau->Tdelr[Itau]; Tau->fEmfr = R1Tau->Temf[Itau]; Tau->fMass = R1Tau->Tmass[Itau]; Tau->fTrackMomentum.SetXYZT(R1Tau->tpttr[Itau][0], R1Tau->tpttr[Itau][1], R1Tau->tpttr[Itau][2], R1Tau->tpttr[Itau][3]); Tau->fClusterMomentum.SetXYZT(R1Tau->tpttr[Itau][0], R1Tau->tpttr[Itau][1], R1Tau->tpttr[Itau][2], R1Tau->tpttr[Itau][3]); Tau->fNTracks = R1Tau->tntr10[Itau]; Tau->fNPi0 = R1Tau->tnpi0[Itau]; Tau->fMustub = R1Tau->tmustub[Itau]; Tau->fPi0List = 0; Tau->fSeedTrackPt = -1.; Tau->fNTracks10 = -1; Tau->fNTracks30 = -1; return 0; } //_____________________________________________________________________________ int StnRun1InitTauBlock(TStnDataBlock* Block, TStnEvent* Event, int Mode) { // initialize tau data block starting from Run1 UC Stntuple TStnRun1Event* event = (TStnRun1Event*) Event; TStnTauBlock* blk = (TStnTauBlock*) Block; blk->Clear(); StnTausBlock_t* r1tau = event->TausBlock(); StnGeneralBlock_t* r1header = event->GeneralBlock(); blk->fNGTau = r1header->Ngtau; for (int i=0; iNtau; i++) { TStnTau* tau = blk->NewTau(); StnRun1InitTau(tau,r1tau,i); } return 0; } //_____________________________________________________________________________