/////////////////////////////////////////////////////////////////////////////// // May 13 2002 A.Taffard: description of the STNTUPLE cosmic block /////////////////////////////////////////////////////////////////////////////// #include #include #include ClassImp(TStnCosmicBlock) //______________________________________________________________________________ void TStnCosmicBlock::ReadV1(TBuffer &R__b) { // read version 1 of TStnCosmicBlock // Int_t nwint = &fNTowersOOT-&fLeg[0]+1; // R__b.ReadFastArray(&fLeg[0],nwint); // Int_t nwfloat = &fNgbrHadE[1]-&fTotEmEnergy+1; // R__b.ReadFastArray(&fTotEmEnergy,nwfloat); struct StnCosmicBlock_v1_t { Int_t fLeg[2]; // indices of the cosmic Muons in the MuonBlock Int_t fCosmicBit; // bit-packed word Int_t fNLegs; // # of cosmic legs Int_t fNTrkVtx; // Number of track used to make vertex Int_t fTrackId[2]; // Track id; used for matching Int_t fNTracks; // # of tracks Int_t fNMuons; // # of muons Int_t fNStubs; // # of muon stubs Int_t fNTowersOOT; // # of Towers (CHA+WHA) out of time Float_t fTotEmEnergy; // Total Em Energy Float_t fTotHadEnergy; // Total Had Energy Float_t fFwrdEmEnergy; // Forward Em Energy (PEM) Float_t fFwrdHadEnergy; // Forward Had Energy (PHA) Float_t fOOTHadEFrac; // Fraction of out-off-time Ehad (CHA+WHA) Float_t fAcollinearity; // Acollinearity between the 2 cosmic legs Float_t fD0Rho; // sqrt(d_1^2+d0_2^2) Float_t fD0Beta; // tan(beta)=d0_2/d0_1 Float_t fDPhi; // delta(phi1,phi2) Float_t fSumEta; // Sum(Eta_1,Eta_2) Float_t fZi; //Seed to vertex Float_t fdZi; //Error on above Float_t fZt; //Mean Float_t fdZt; //error on above // TOP=0 & BOTTOM=1 Float_t fDeltaT0[2]; // delta t0 of refitted COT track Float_t fErrorDeltaT0[2]; // error on above Float_t fDeltaBetaInv[2]; // delta beta^-1 of refitted COT track Float_t fErrorDeltaBetaInv[2]; // error on above Float_t fEmE[2]; // Em Energy of the neighbouring towers Float_t fHadE[2]; // Had Energy of the neighbouring towers Float_t fHadTDC[2]; // Hadron TDC time Float_t fTof[2]; // Time of Flight Float_t fCsp[2]; // CSP time information Float_t fCsx[2]; // CSX time information Float_t fNgbrEmE[2]; // Em Energy of the neighbouring towers Float_t fNgbrHadE[2]; // Had Energy of the neighbouring towers Float_t fNgbrHadTDC[2]; // Hadron TDC time of the neighbouring towers Float_t fStubPhi[2]; // Muon stub phi } cosmic; R__b >> cosmic.fLeg[0]; R__b >> cosmic.fLeg[1]; R__b >> cosmic.fCosmicBit; R__b >> cosmic.fNLegs; R__b >> cosmic.fNTracks; R__b >> cosmic.fNMuons; R__b >> cosmic.fNStubs; R__b >> cosmic.fNTowersOOT; R__b >> cosmic.fTotEmEnergy; R__b >> cosmic.fTotHadEnergy; R__b >> cosmic.fFwrdEmEnergy; R__b >> cosmic.fFwrdHadEnergy; R__b >> cosmic.fOOTHadEFrac; R__b >> cosmic.fAcollinearity; R__b >> cosmic.fD0Rho; R__b >> cosmic.fD0Beta; R__b >> cosmic.fDPhi; R__b >> cosmic.fSumEta; R__b >> cosmic.fZi; R__b >> cosmic.fdZi; R__b >> cosmic.fNTrkVtx; R__b >> cosmic.fZt; R__b >> cosmic.fdZt; R__b >> cosmic.fTrackId[0]; R__b >> cosmic.fTrackId[1]; R__b >> cosmic.fDeltaT0[0]; R__b >> cosmic.fDeltaT0[1]; R__b >> cosmic.fErrorDeltaT0[0]; R__b >> cosmic.fErrorDeltaT0[1]; R__b >> cosmic.fDeltaBetaInv[0]; R__b >> cosmic.fDeltaBetaInv[1]; R__b >> cosmic.fErrorDeltaBetaInv[0]; R__b >> cosmic.fErrorDeltaBetaInv[1]; R__b >> cosmic.fEmE[0]; R__b >> cosmic.fEmE[1]; R__b >> cosmic.fHadE[0]; R__b >> cosmic.fHadE[1]; R__b >> cosmic.fHadTDC[0]; R__b >> cosmic.fHadTDC[1]; R__b >> cosmic.fTof[0]; R__b >> cosmic.fTof[1]; R__b >> cosmic.fCsp[0]; R__b >> cosmic.fCsp[1]; R__b >> cosmic.fCsx[0]; R__b >> cosmic.fCsx[1]; R__b >> cosmic.fNgbrEmE[0]; R__b >> cosmic.fNgbrEmE[1]; R__b >> cosmic.fNgbrHadE[0]; R__b >> cosmic.fNgbrHadE[1]; R__b >> cosmic.fNgbrHadTDC[0]; R__b >> cosmic.fNgbrHadTDC[1]; R__b >> cosmic.fStubPhi[0]; R__b >> cosmic.fStubPhi[1]; //----------------------------------------------------------------------------- // copy the data into *this //----------------------------------------------------------------------------- fLeg[0] = cosmic.fLeg[0]; fLeg[1] = cosmic.fLeg[1]; fCosmicBit = cosmic.fCosmicBit; fNLegs = cosmic.fNLegs; fNTrkVtx = cosmic.fNTrkVtx; fTrackId[0] = cosmic.fTrackId[0]; fTrackId[1] = cosmic.fTrackId[1]; fAcollinearity = cosmic.fAcollinearity; fD0Rho = cosmic.fD0Rho; fD0Beta = cosmic.fD0Beta; fDPhi = cosmic.fDPhi; fSumEta = cosmic.fSumEta; fZi = cosmic.fZi; fdZi = cosmic.fdZi; fZt = cosmic.fZt; fdZt = cosmic.fdZt; for (int i=0; i<2; i++) { fDeltaT0[i] = cosmic.fDeltaT0[i]; fErrorDeltaT0[i] = cosmic.fErrorDeltaT0[i]; fDeltaBetaInv[i] = cosmic.fDeltaBetaInv[i]; fErrorDeltaBetaInv[i] = cosmic.fErrorDeltaBetaInv[i]; fEmE[i] = cosmic.fEmE[i]; fHadE[i] = cosmic.fHadE[i]; fHadTDC[i] = cosmic.fHadTDC[i]; fTof[i] = cosmic.fTof[i]; fCsp[i] = cosmic.fCsp[i]; fCsx[i] = cosmic.fCsx[i]; fNgbrEmE[i] = cosmic.fNgbrEmE[i]; fNgbrHadE[i] = cosmic.fNgbrHadE[i]; fNgbrHadTDC[i] = cosmic.fNgbrHadTDC[i]; fStubPhi[i] = cosmic.fStubPhi[i]; } } //______________________________________________________________________________ void TStnCosmicBlock::ReadV2(TBuffer &R__b) { // read version 2 of TStnCosmicBlock struct StnCosmicBlock_v2_t { Int_t fLeg[2]; // indices of the cosmic Muons in the MuonBlock Int_t fCosmicBit; // bit-packed word Int_t fNLegs; // # of cosmic legs Int_t fNTrkVtx; // Number of track used to make vertex Int_t fTrackId[2]; // Track id; used for matching Float_t fAcollinearity; // Acollinearity between the 2 cosmic legs Float_t fD0Rho; // sqrt(d_1^2+d0_2^2) Float_t fD0Beta; // tan(beta)=d0_2/d0_1 Float_t fDPhi; // delta(phi1,phi2) Float_t fSumEta; // Sum(Eta_1,Eta_2) Float_t fZi; //Seed to vertex Float_t fdZi; //Error on above Float_t fZt; //Mean Float_t fdZt; //error on above // TOP=0 & BOTTOM=1 Float_t fDeltaT0[2]; // delta t0 of refitted COT track Float_t fErrorDeltaT0[2]; // error on above Float_t fDeltaBetaInv[2]; // delta beta^-1 of refitted COT track Float_t fErrorDeltaBetaInv[2]; // error on above Float_t fEmE[2]; // Em Energy of the neighbouring towers Float_t fHadE[2]; // Had Energy of the neighbouring towers Float_t fHadTDC[2]; // Hadron TDC time Float_t fTof[2]; // Time of Flight Float_t fCsp[2]; // CSP time information Float_t fCsx[2]; // CSX time information Float_t fNgbrEmE[2]; // Em Energy of the neighbouring towers Float_t fNgbrHadE[2]; // Had Energy of the neighbouring towers Float_t fNgbrHadTDC[2]; // Hadron TDC time of the neighbouring towers Float_t fStubPhi[2]; // Muon stub phi Float_t fEOR; // ! end of record } cosmic; int nwi = ((Int_t*)&cosmic.fAcollinearity)-&cosmic.fLeg[0]; int nwf = &cosmic.fEOR-&cosmic.fAcollinearity; R__b.ReadFastArray(&cosmic.fLeg[0],nwi); R__b.ReadFastArray(&cosmic.fAcollinearity,nwf); //----------------------------------------------------------------------------- // add unpacking code when necessary //----------------------------------------------------------------------------- } //______________________________________________________________________________ void TStnCosmicBlock::Streamer(TBuffer &R__b) { // Stream an object of class TStnCosmicBlock. Int_t nwi = ((Int_t*) &fDPhiMuStub)-&fLeg[0]; Int_t nwf = ((Float_t*) &fEOR) -&fDPhiMuStub; if (R__b.IsReading()) { //----------------------------------------------------------------------------- // read section //----------------------------------------------------------------------------- Version_t R__v = R__b.ReadVersion(); if (R__v == 1) { // preserve backward compatibility ReadV1(R__b); } else if (R__v == 2) { // read V2 ReadV2(R__b); } else { // current version - V3 R__b.ReadFastArray(&fLeg[0],nwi); R__b.ReadFastArray(&fDPhiMuStub,nwf); } } else { //----------------------------------------------------------------------------- // write section //----------------------------------------------------------------------------- R__b.WriteVersion(TStnCosmicBlock::IsA()); R__b.WriteFastArray(&fLeg[0],nwi); R__b.WriteFastArray(&fDPhiMuStub,nwf); } } //_____________________________________________________________________________ TStnCosmicBlock::TStnCosmicBlock() { fCosmicBit = 0; fNLegs = 0; fDPhiMuStub = 999999; fAcollinearity = 999999; fD0Rho = 999999; fD0Beta = 999999; fDPhi = 999999; fSumEta = 999999; fZi = 999999;; fdZi = 999999;; fNTrkVtx = 0; fZt = 999999;; fdZt = 999999;; fTrackId[0]= 999999; fTrackId[1]= 999999; fDeltaT0[0]= 999999; fDeltaT0[1]= 999999; fErrorDeltaT0[0]= 999999; fErrorDeltaT0[1]= 999999; fDeltaBetaInv[0]= 999999; fDeltaBetaInv[1]= 999999; fErrorDeltaBetaInv[0]= 999999; fErrorDeltaBetaInv[1]= 999999; fEmE[0] = 999999; fEmE[1] = 999999; fHadE[0] = 999999; fHadE[1] = 999999; fHadTDC[0] = 999999; fHadTDC[1] = 999999; fTof[0] = 999999; fTof[1] = 999999; fTofM[0] = 999999; fTofM[1] = 999999; fCsp[0] = 999999; fCsp[1] = 999999; fCsx[0] = 999999; fCsx[1] = 999999; fNgbrEmE[0] = 999999; fNgbrEmE[1] = 999999; fNgbrHadE[0] = 999999; fNgbrHadE[1] = 999999; fNgbrHadTDC[0] = 999999; fNgbrHadTDC[1] = 999999; fStubPhi[0] = 999999; fStubPhi[1] = 999999; fLeg[0] = 999999; fLeg[1] = 999999; fPt[0] = 999999; fPt[1] = 999999; fCrv[0] = 999999; fCrv[1] = 999999; fCot[0] = 999999; fCot[1] = 999999; fPhi[0] = 999999; fPhi[1] = 999999; fEta[0] = 999999; fEta[1] = 999999; fZ0[0] = 999999; fZ0[1] = 999999; fD0[0] = 999999; fD0[1] = 999999; fD0C[0] = 999999; fD0C[1] = 999999; fAlgo[0] = 999999; fAlgo[1] = 999999; fFitT0[0][0] = 999999; fFitT0[0][1] = 999999; fFitT0[1][0] = 999999; fFitT0[1][1] = 999999; fFitdT0[0][0] = 999999; fFitdT0[0][1] = 999999; fFitdT0[1][0] = 999999; fFitdT0[1][1] = 999999; fFitCrdT0[0][0] = 999999; fFitCrdT0[0][1] = 999999; fFitCrdT0[1][0] = 999999; fFitCrdT0[1][1] = 999999; fFitChi2[0][0] = 999999; fFitChi2[0][1] = 999999; fFitChi2[1][0] = 999999; fFitChi2[1][1] = 999999; fFitdChi2[0][0] = 999999; fFitdChi2[0][1] = 999999; fFitdChi2[1][0] = 999999; fFitdChi2[1][1] = 999999; fFitDir[0][0] = 999999; fFitDir[0][1] = 999999; fFitDir[1][0] = 999999; fFitDir[1][1] = 999999; fFitNCOTH[0][0] = 999999; fFitNCOTH[0][1] = 999999; fFitNCOTH[1][0] = 999999; fFitNCOTH[1][1] = 999999; fFitNCOTHExp[0][0] = 999999; fFitNCOTHExp[0][1] = 999999; fFitNCOTHExp[1][0] = 999999; fFitNCOTHExp[1][1] = 999999; } //_____________________________________________________________________________ TStnCosmicBlock::~TStnCosmicBlock() { } //_____________________________________________________________________________ void TStnCosmicBlock::Clear(const char* opt) { fLinksInitialized = 0; fCosmicBit = 0; fNLegs = 0; fDPhiMuStub = 999999; fAcollinearity = 999999; fD0Rho = 999999; fD0Beta = 999999; fDPhi = 999999; fSumEta = 999999; fZi = 999999;; fdZi = 999999;; fNTrkVtx = 0; fZt = 999999;; fdZt = 999999;; fTrackId[0]= 999999; fTrackId[1]= 999999; fDeltaT0[0]= 999999; fDeltaT0[1]= 999999; fErrorDeltaT0[0]= 999999; fErrorDeltaT0[1]= 999999; fDeltaBetaInv[0]= 999999; fDeltaBetaInv[1]= 999999; fErrorDeltaBetaInv[0]= 999999; fErrorDeltaBetaInv[1]= 999999; fEmE[0] = 999999; fEmE[1] = 999999; fHadE[0] = 999999; fHadE[1] = 999999; fHadTDC[0] = 999999; fHadTDC[1] = 999999; fTof[0] = 999999; fTof[1] = 999999; fTofM[0] = 999999; fTofM[1] = 999999; fCsp[0] = 999999; fCsp[1] = 999999; fCsx[0] = 999999; fCsx[1] = 999999; fNgbrEmE[0] = 999999; fNgbrEmE[1] = 999999; fNgbrHadE[0] = 999999; fNgbrHadE[1] = 999999; fNgbrHadTDC[0] = 999999; fNgbrHadTDC[1] = 999999; fStubPhi[0] = 999999; fStubPhi[1] = 999999; fLeg[0] = 999999; fLeg[1] = 999999; fPt[0] = 999999; fPt[1] = 999999; fCrv[0] = 999999; fCrv[1] = 999999; fCot[0] = 999999; fCot[1] = 999999; fPhi[0] = 999999; fPhi[1] = 999999; fEta[0] = 999999; fEta[1] = 999999; fZ0[0] = 999999; fZ0[1] = 999999; fD0[0] = 999999; fD0[1] = 999999; fD0C[0] = 999999; fD0C[1] = 999999; fAlgo[0] = 999999; fAlgo[1] = 999999; fFitT0[0][0] = 999999; fFitT0[0][1] = 999999; fFitT0[1][0] = 999999; fFitT0[1][1] = 999999; fFitdT0[0][0] = 999999; fFitdT0[0][1] = 999999; fFitdT0[1][0] = 999999; fFitdT0[1][1] = 999999; fFitCrdT0[0][0] = 999999; fFitCrdT0[0][1] = 999999; fFitCrdT0[1][0] = 999999; fFitCrdT0[1][1] = 999999; fFitChi2[0][0] = 999999; fFitChi2[0][1] = 999999; fFitChi2[1][0] = 999999; fFitChi2[1][1] = 999999; fFitdChi2[0][0] = 999999; fFitdChi2[0][1] = 999999; fFitdChi2[1][0] = 999999; fFitdChi2[1][1] = 999999; fFitDir[0][0] = 999999; fFitDir[0][1] = 999999; fFitDir[1][0] = 999999; fFitDir[1][1] = 999999; fFitNCOTH[0][0] = 999999; fFitNCOTH[0][1] = 999999; fFitNCOTH[1][0] = 999999; fFitNCOTH[1][1] = 999999; fFitNCOTHExp[0][0] = 999999; fFitNCOTHExp[0][1] = 999999; fFitNCOTHExp[1][0] = 999999; fFitNCOTHExp[1][1] = 999999; } //_____________________________________________________________________________ void TStnCosmicBlock::Print(const char* opt) const { if(HasOOTCaloE()) printf("This Event was tag with too many out of time towers or energy!!!\n\n"); if(HasLowEmFrac())printf("This Event was tag with too low electromagnetic fraction!!!\n\n"); if(HasLowQFrac())printf("This Event was tag with too low charge fraction!!!\n\n"); // if (NLegs()>0) { printf("-------------------------------------------------------"); printf("-------------------------------------------------------\n"); printf(" COSMIC RAY MUON BLOCK \n\n"); if (HasCosmicRay()) printf("This Event has a cosmic ray in it!!!\n\n"); printf("This event was categorized as: "); if(isMuonNothing()) printf("Muon+nothing\n\n"); if(isMuonStub()) printf("Muon+TrackLessMuon\n\n"); if(isMuonTrack()) printf("Muon+stubLessMuon\n\n"); if(isMuonMuon()) printf("Muon+Muon \n\n"); if (fCosmicBit > 1){ printf("This event may have a cosmic ray because:\n"); if(HasFewTracks()) printf("\tHas too few tracks\n"); if(HasNoVertex ()) printf("\tNo vertex was found within +/- 10cm\n"); if(!HasNoVertex() && HasLargeDz()) printf("\tVertex found is more than +/- 3cm from the seed Z\n"); if(HasLargeD0()) printf("\tTrack(s) have large d0\n"); if(HasLargeZ0()) printf("\tTrack(s) have large z0\n"); if(HasAcolTrack()) printf("\tTracks are acollinear\n"); if(HasOOTEnergy()) printf("\tHas significant out-of-time energy\n"); if(HasOOTScintillators()) printf("\tHas out-of-time scintillator hits\n"); if(HasOOTTof()) printf("\t Has significant out-of-time TOF\n"); if(HasNotOutgoingPair()) printf("\tPair is not outgoing \n"); printf("\n"); } printf("Event quantities:\n\n "); printf("\tNumber of legs: \t %d\n", NLegs()); if(Acollinearity()!=999999) printf("\tAcolinearity:\t %2.3f\n", Acollinearity()); if(DeltaPhi()!=999999) printf("\tDelta Phi:\t %2.3f\n", DeltaPhi()); if(SumEta()!=999999) printf("\tSum Eta:\t %2.3f\n", SumEta()); if(dPhiMuStub()!=999999) printf("\tDelta phi Mu-Stub:%2.3f\n",dPhiMuStub()); if(Zi()!=999999) printf("\tSeed Zi:\t %2.3f +/- %2.3f\n", Zi(),DZi()); if(NTrkVtx()==0) printf("\tNo vertex near by\n"); if(NTrkVtx()!=0) printf("\tVertex near by with %d tracks: %2.3f +/- %2.3f\n",NTrkVtx(),Zt(),DZt()); //Refitted parparameters if(ValidTrack(0)){ printf("Fit Top Leg \n"); printf("------------\n"); printf("\n\n Quantity \t Seed/Opp Fit\t diCosmic Fit \n"); printf("outgoing \t %d \t %d \n",FitDirection(0,0), FitDirection(0,1)); printf("t0 \t %2.6f \t %2.6f\n",FitT0(0,0), FitT0(0,1)); printf("Error t0 \t %2.6f \t %2.6f\n",FitdT0(0,0), FitdT0(0,1)); printf("crude t0 \t %2.6f \t %2.6f\n",FitCrudeT0 (0,0), FitCrudeT0(0,1)); printf("Chi2 \t %2.6f \t %2.6f\n",FitChi2(0,0), FitChi2(0,1)); printf("delta Chi2 \t %2.6f \t %2.6f\n",FitdChi2(0,0), FitdChi2(0,1)); printf("NCOTHits \t %d \t %d \n",FitNCOTHits(0,0), FitNCOTHits(0,1)); printf("NCOTHitsExp \t %d \t %d \n\n",FitNCOTHitsExp(0,0), FitNCOTHitsExp(0,1)); } if(ValidTrack(1)){ printf("Fit Bottom Leg \n"); printf("------------\n"); printf("\n\n Quantity \t Seed/Opp Fit\t diCosmic Fit \n"); printf("outgoing \t %d \t %d \n",FitDirection(1,0), FitDirection(1,1)); printf("t0 \t %2.6f \t %2.6f\n",FitT0(1,0), FitT0(1,1)); printf("Error t0 \t %2.6f \t %2.6f\n",FitdT0(1,0), FitdT0(1,1)); printf("crude t0 \t %2.6f \t %2.6f\n",FitCrudeT0 (1,0), FitCrudeT0(1,1)); printf("Chi2 \t %2.6f \t %2.6f\n",FitChi2(1,0), FitChi2(1,1)); printf("delta Chi2 \t %2.6f \t %2.6f\n",FitdChi2(1,0), FitdChi2(1,1)); printf("NCOTHits \t %d \t %d \n",FitNCOTHits(1,0), FitNCOTHits(1,1)); printf("NCOTHitsExp \t %d \t %d \n\n",FitNCOTHitsExp(1,0), FitNCOTHitsExp(1,1)); } printf("\n\n Quantity \t TopLeg \t Bottom Leg \n"); printf("Track Id \t %d \t %d \n", TrackId(0),TrackId(1)); printf("Track Algorithm \t %d \t %d \n", Algo(0),Algo(1)); printf("Pt \t %2.6f \t %2.6f \n", Pt(0),Pt(1)); printf("Curvature \t %2.6f \t %2.6f \n", Crv(0),Crv(1)); printf("Cot theta \t %2.6f \t %2.6f \n", Cot(0),Cot(1)); printf("Phi \t %2.6f \t %2.6f \n", Phi(0),Phi(1)); printf("Eta \t %2.6f \t %2.6f \n", Eta(0),Eta(1)); printf("z0 \t %2.6f \t %2.6f \n", Z0(0),Z0(1)); printf("d0 \t %2.6f \t %2.6f \n", D0(0),D0(1)); printf("d0 corrected BP \t %2.6f \t %2.6f \n", D0C(0),D0C(1)); printf("Charge \t %2.6f \t %2.6f \n\n", Charge(0),Charge(1)); printf("Delta t0 \t %2.6f \t %2.6f \n", DeltaT0(0),DeltaT0(1)); printf("Error Delta t0 \t %2.6f \t %2.6f \n", ErrorDeltaT0(0),ErrorDeltaT0(1)); printf("Delta Beta inv \t %2.6f \t %2.6f \n", DeltaBetaInv(0),DeltaBetaInv(1)); printf("Error Delta Beta Inv \t %2.6f \t %2.6f \n\n", ErrorDeltaBetaInv(0),ErrorDeltaBetaInv(1)); if(TrackLessMuon(0) ||TrackLessMuon(1)) printf("TrackLess muon \t %d \t %d \n", TrackLessMuon(0),TrackLessMuon(1)); if(StubLessMuon(0) || StubLessMuon(1)) printf("StubLess muon \t %d \t %d \n", StubLessMuon(0),StubLessMuon(1)); if(ValidStub(0) || ValidStub(1)) printf("Phi closest stub \t %2.6f \t %2.6f \n", StubPhi(0),StubPhi(1)); if(ValidEnergy(0) || ValidEnergy(1) ){ printf("Em \t %2.6f \t %2.6f \n", EmE(0),EmE(1)); printf("Had \t %2.6f \t %2.6f \n", HadE(0),HadE(1)); printf("Neighbour Em \t %2.6f \t %2.6f \n", NgbrEmE(0),NgbrEmE(1)); printf("Neighbour Had \t %2.6f \t %2.6f \n\n", NgbrHadE(0),NgbrHadE(1)); } if(ValidHadTDC(0) || ValidHadTDC(1) || ValidNgbrHadTDC(0) || ValidNgbrHadTDC(1)){ printf("Hadron TDC \t %2.6f \t %2.6f \n", HadTDC(0),HadTDC(1)); printf("Neighbour TDC \t %2.6f \t %2.6f \n\n",NgbrHadTDC(0),NgbrHadTDC(1)); } if(ValidTof(0) ||ValidTof(0) ){ printf("Tof \t %2.6f \t %2.6f \n", Tof(0),Tof(1)); printf("Tof Method \t %d \t %d \n\n", TofMethod(0),TofMethod(1)); } if(ValidCsp(0) ||ValidCsp(1)) printf("Csp \t %2.6f \t %2.6f \n", Csp(0),Csp(1)); if(ValidCsx(0) ||ValidCsx(1)) printf("Csx \t %2.6f \t %2.6f \n", Csx(0),Csx(1)); printf("-------------------------------------------------------"); printf("-------------------------------------------------------\n"); // } // else{ // printf("TStnCosmicBlock::Print: no Cosmics Ray Muon in the event\n"); // } }