#ifndef PHOTONSTRUCT_HH #define PHOTONSTRUCT_HH //Blocks: photon const Int_t MAXPHO=40; const Int_t NPHOARRS=31; struct myphoton_t { Int_t npho; // Number of photons in the event //-- Int_t detector[MAXPHO]; //[npho] PhotonVariables::phoDetector(emObject): CEM=0, PEM=1 //-- Float_t status[MAXPHO]; //[npho] PhotonVariables::phoStatus(const CdfEmObject& emObject, const double zvertex) // status word = 1000, 2000... + photon Et //-- Float_t rawe[MAXPHO]; //[npho] raw *EM* energy: // return emobj_alg::CEMFourMomentum::TwoTower(emObject,false).e(); // or // PhotonVariables::phoRawEnergy(emObject) //-- Float_t et[MAXPHO]; //[npho] the Et directly from the EmCluster method // PhotonVariables::phoRawEt(emObject, myvertex.vzev); //-- // four vector using corrected energy: // HepLorentzVector hlv = PhotonVariables::phoFourVector(emObject, myvertex.vzev); // the correction includes all final energy calibrations available Float_t px[MAXPHO]; //[npho] hlv.px() Float_t py[MAXPHO]; //[npho] hlv.py() Float_t pz[MAXPHO]; //[npho] hlv.pz() Float_t e[MAXPHO]; //[npho] hlv.e() //-- Float_t etcor[MAXPHO]; //[npho] PhotonVariables::phoCorrectedEt(emObject, myvertex.vzev); // the Et corected for final offline calibrations // the correction includes all final energy calibrations available //-- Float_t deteta[MAXPHO]; //[npho] detector eta: PhotonVariables::phoDteta(emObject); //-- Float_t eveta[MAXPHO]; //[npho] event eta: PhotonVariables::phoEta(emObject,myvertex.vzev); //-- Float_t phi[MAXPHO]; //[npho] PhotonVariables::phoPhi(emObject); //-- Float_t hadem[MAXPHO]; //[npho] had energy over em energy: PhotonVariables::phoHadEm(emObject); //-- Float_t isoco4[MAXPHO]; //[npho] isolation in cone 0.4: PhotonVariables::phoCo4(emObject, myvertex.vzev); //-- Float_t isoco7[MAXPHO]; //[npho] isolation in cone 0.7: PhotonVariables::phoCo7(emObject, myvertex.vzev); //-- Float_t corisoco4[MAXPHO]; //[npho]PhotonVariables::phoCo4PJW(emObject, myvertex.vzev); // this returns the Run I cone 0.4 isolation energy // with VCor and LCor corrections: // LCor: // Run I correction to isolation energy // due to phi-crack leakage, from Peter Wilson //VCor // Run I correction to isolation energy // due to multiple underlying events, from Peter Wilson //-- Float_t maxtrkpt[MAXPHO]; //[npho] PhotonVariables::phoPt(emObject); // pt of highest pt track (order=1(DEFAULT) is highest, 2 is next highest) //-- Float_t n3dtrk[MAXPHO]; //[npho] number of tracks pointing at cluster // PhotonVariables::phoN3D(emObject); //-- Float_t trkiso[MAXPHO]; //[npho] Track isolation in a cone 0.4 // PhotonVariables::phoTrackIso(emObject, *trackView_hndl, 0.4, myvertex.vzev); //-- // CES local coordinates Float_t cesz[MAXPHO]; //[npho] x: PhotonVariables::phoCesZ(emObject); Float_t cesx[MAXPHO]; //[npho] z: PhotonVariables::phoCesX(emObject); //-- Float_t cese[MAXPHO]; //[npho] CES energy (taken from wire cluster only): // PhotonVariables::phoCesE(emObject); //-- Float_t cesstripe[MAXPHO]; //[npho] CES strip energy: // PhotonVariables::phoCesStripE(emObject); //-- Float_t ceschisqavg[MAXPHO];//[npho] CES chi**2 (returns -99 if strip or wire is missing) // this is the average of strip and wire chi**2 // PhotonVariables::phoCesChiSq(emObject); //-- Float_t ceschisqstr[MAXPHO];//[npho] CES strip only chi**2 // PhotonVariables::phoCesStrpChiSq(emObject) //-- Float_t ceschisqwir[MAXPHO];//[npho] CES wire only chi**2 // PhotonVariables::phoCesWireChiSq(emObject) //-- Float_t time[MAXPHO]; //[npho] returns emObject hadron TDC time, averaged over all firing TDCs // -9999 if no TDC fired for the cluster // PhotonVariables::phoTime(emObject); //-- Float_t chatime[MAXPHO]; //[npho] PhotonVariables::phoDetTime(emObject, CHA, dummy); Float_t whatime[MAXPHO]; //[npho] PhotonVariables::phoDetTime(emObject, WHA, dummy); Float_t phatime[MAXPHO]; //[npho] PhotonVariables::phoDetTime(emObject, PHA, dummy); // returns emObject time, averaged over all firing TDCs in detector det // -9998 if det != CHA, WHA or PHA // -9999 if no timing in det //-- Float_t lshr3[MAXPHO]; //[npho] LShr for photon(use 3 towers) // PhotonVariables::phoLshr(emObject, myvertex.vzev, 3); //-- Int_t costub; //[npho] Number of stubs not associated to muons or jets //-- Int_t matchstub[MAXPHO]; //[npho] Unmatched stubs within 30 deg of this photon //-- Float_t likelihood[MAXPHO]; //[npho] Photon likelihood: // PhotonVariables::phoLikelihood(emObject); //-- Float_t pese[MAXPHO]; //[npho] PES energy //-- Float_t pemchisq[MAXPHO]; //[npho] PEM 3x3 Chi2 //-- Float_t pesz[MAXPHO]; //[npho] pes z: PhotonVariables::phoPes2dZ(emObject); Float_t pesx[MAXPHO]; //[npho] pes x: PhotonVariables::phoPes2dX(emObject); Float_t pesy[MAXPHO]; //[npho] pes y: PhotonVariables::phoPes2dY(emObject); //-- Float_t pese2[MAXPHO]; //[npho] e of second PES cluster //-- Float_t ppre[MAXPHO]; //[npho] PPR energy //-- Float_t ceswire2[MAXPHO]; //[npho] e of second CES wire cluster //-- Float_t cesstripe2[MAXPHO]; //[npho]e of second CES strip cluster //-- Float_t cesx2[MAXPHO]; //[npho] X of second CES cluster //-- Float_t cesz2[MAXPHO]; //[npho] Z of second CES cluster //-- Float_t cprx[MAXPHO]; //[npho] x of CPR cluster //-- Float_t cprchg[MAXPHO]; //[npho] charge of CPR cluster //-- Int_t seedwedge[MAXPHO]; //[npho] number of towers hit in seed tower wedge //-- Int_t sidewedges[MAXPHO]; //[npho] number of towers hit in wedges next to seed tower //-- Int_t ncontig[MAXPHO]; //[npho] number of contiguous towers in same wedge as seed tower //-- Float_t vcor[MAXPHO]; //[npho] Multiple interactions isolation correction //-- Float_t lcor[MAXPHO]; //[npho] Leakage isolation correction //-- Int_t elindex[MAXPHO]; //[npho] Electron index (index of corresponding electron) //-- Int_t eastbhocc[MAXPHO]; //[npho] East hadron beam halo occupancy //-- Int_t westbhocc[MAXPHO]; //[npho] West hadron beam halo occupancy //-- Int_t nexttrkpt[MAXPHO]; //[npho] Pt of second highest pt track //-- Int_t jetindex[MAXPHO]; //[npho] index of corresponding jet //-- Int_t ntracksinit[MAXPHO]; //[npho] number of tracks that would hit seed tower // if extrapolated in a straight line from // z0, phi0, lambda //-- Int_t emTdcNhits[MAXPHO]; //[npho] Number of hits of the photon seed tower. Float_t emTdcTime[MAXPHO]; //[npho] Time of first hit of the seed tower. Float_t emTdcWidth[MAXPHO]; //[npho] Width of the first hit of the seed tower }; #endif