/////////////////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////////////////// #include "Stntuple/data/TTl2d.hh" #include "Stntuple/data/TXftTrack.hh" #include "iostream" ClassImp(TTl2d) //ClassImp(TTl2dCluster) //ClassImp(TTl2dXtrpTrack) //ClassImp(TTl2dSvtTrack) //ClassImp(TTl2dClusterIso) //ClassImp(TTl2dL1Decision) //ClassImp(TTl2dL2Decision) namespace { float TriggerTowerEta [25] = { -3.500, -2.611, -2.331, -2.112, -1.777, -1.523, -1.317, -1.100, -0.916, -0.723, -0.503, -0.260, 0.000, 0.260, 0.503, 0.723, 0.916, 1.100, 1.317, 1.523, 1.777, 2.112, 2.331, 2.611, 3.500 }; } //______________________________________________________________________________ void TTl2d::Streamer(TBuffer &R__b) { // Stream an object of class TTl2d - do it by hand if (R__b.IsReading()) { Version_t R__v = R__b.ReadVersion(); if (R__v) { } fData.Streamer(R__b); } else { R__b.WriteVersion(TTl2d::IsA()); fData.Streamer(R__b); } } //_____________________________________________________________________________ TTl2d::TTl2d() { } //_____________________________________________________________________________ Int_t TTl2d::Init(Int_t NWords) { fData.Clear(); fData.Reserve(NWords); return 0; } //_____________________________________________________________________________ TTl2d::~TTl2d() { } //----------------------------------------------------------------------------- void TTl2d::Print(Option_t* opt) const { if (strcmp(opt,"") == 0) { //----------------------------------------------------------------------------- // HEX format //----------------------------------------------------------------------------- std::cout << "\n" ; std::cout << "TL2D Bank: as unsigned int (4-byte words)\n" ; printf(" Index 0 1 2 3 4"); printf(" 5 6 7 8 9\n"); printf("---------- -------- --------- --------- --------- ---------- "); printf("---------- -------- --------- --------- ---------\n"); Int_t nwords = fData.GetSize(); for (int index = 0; index < nwords ; ++index) { // set first column as index if (index%10 == 0) printf(" %9i:",index); printf(" %8x ",fData.At(index)); if (index% 10 == 9) printf("\n"); if (index%100 == 99) printf("\n"); } printf("\n") ; } if (strstr(opt,"xtrp") != 0) { printf(" ------------------------------- XTRP tracks -----------------------\n"); printf(" i PtBin Pt Chip MiniPhi Phi Phi0 IsoBit ShortBit\n"); int nt = NXtrpTracks(); for (int i=0; iPtBin ()); printf(" %10.3f",TXftTrack::TrackPt(trk->PtBin(), trk->IsolationBit(), trk->ShortBit())); printf(" %3i" ,trk->LinkerChip ()); printf(" %3i" ,trk->MiniPhi ()); printf(" %9.4f" ,trk->Phi ()); printf(" %9.4f" ,trk->Phi()+TXftTrack::TrackDPhi0(trk->PtBin())); printf(" %6i" ,trk->IsolationBit()); printf(" %6i" ,trk->ShortBit ()); printf("\n"); } } //----------------------------------------------------------------------------- // L2 clusters //----------------------------------------------------------------------------- if (strstr(opt,"clus") != 0) { printf(" ------------------------------- L2 clusters ---------------------------\n"); printf(" i pass ieta iphi DetEta Phi EtTotGeV EtEmGeV "); printf("EtHadGeV NTowers Central L2Buffer\n"); int ncl = NL2Clusters(); for (int i=0; iPass ()); printf(" %4i" ,cl->IEta ()); printf(" %3i" ,cl->IPhi ()); printf(" %10.3f",cl->DetEta ()); printf(" %8.3f",cl->Phi ()); printf(" %10.3f",cl->EtTotalGeV()); printf(" %10.3f",cl->EtEmGeV ()); printf(" %10.3f",cl->EtHadGeV ()); printf(" %6i" ,cl->NTowers ()); printf(" %6i" ,cl->IsCentral ()); printf(" %6i" ,cl->L2Buffer ()); printf("\n"); } } if (strstr(opt,"iso") != 0) { printf(" ------------------------------- L2 cluster iso -------------------------\n"); printf(" i pass ieta iphi IsoMin Iso0 Iso1 Iso1 Iso3 Iso4\n"); int ncl = NL2IsoClusters(); for (int i=0; iSum1(); if(cl->Sum2()Sum2(); if(cl->Sum3()Sum3(); if(cl->Sum4()Sum4(); if(cl->Sum5()Sum5(); printf(" %3i" ,i); printf(" %4i" ,cl->ClusteringPath()); printf(" %4i" ,cl->Eta()); printf(" %3i" ,cl->Phi()); printf(" %8.3f",m/8.0); printf(" %8.3f",cl->Sum1()/8.0); printf(" %8.3f",cl->Sum2()/8.0); printf(" %8.3f",cl->Sum3()/8.0); printf(" %8.3f",cl->Sum4()/8.0); printf(" %8.3f",cl->Sum5()/8.0); printf("\n"); } } } //_____________________________________________________________________________ Float_t TTl2dCluster::DetEta() const { int ieta = IEta(); return (TriggerTowerEta[ieta] + TriggerTowerEta[ieta+1])/2.; }