/*************************************************************************** * * $Id: StHiMicroEvent.h,v 1.3 2002/05/31 21:54:00 jklay Exp $ * * Author: Bum Choi, UT Austin, Apr 2002 * *************************************************************************** * * Description: This is a uDST for highpt Analysis. * *************************************************************************** * * $Log: StHiMicroEvent.h,v $ * Revision 1.3 2002/05/31 21:54:00 jklay * Added ZDC Vertex z position * * Revision 1.2 2002/04/02 23:34:52 jklay * Added L3RichTrigger information * * Revision 1.1 2002/04/02 19:36:15 jklay * Bums highpt uDST format * * **************************************************************************/ /* basically copies jeffs, and the flow teams code. allocates the memory for the tracks and hits on the heap only the first time a StHiMicroEvent object is created. */ #ifndef StHiMicroEvent_H #define StHiMicroEvent_H #include "TObject.h" #include "TClonesArray.h" #include "StHiMicroTrack.h" #include "StHiMicroHit.h" #include "StHiMicroFpdCollection.h" #include #define NTRIGGERID 32 class StHiMicroEvent : public TObject { public: StHiMicroEvent(); virtual ~StHiMicroEvent(); void Clear(Option_t* option=""); void AddTrack(StHiMicroTrack*); void AddHit(StHiMicroHit*); TClonesArray* tracks() const { return mTracks; } TClonesArray* hits() const { return mHits; } StHiMicroFpdCollection* fpd() { return mFpd; } Float_t VertexZ() const { return mVertexZ; } Float_t VertexY() const { return mVertexY; } Float_t VertexX() const { return mVertexX; } Int_t OriginMult() const { return mOriginMult; } Int_t Centrality() const { return mCentrality; } Int_t NUncorrectedNegativePrimaries() const { return mNUncorrectedNegativePrimaries; } Int_t NUncorrectedPrimaries() const { return mNUncorrectedPrimaries; } Int_t NAllGlobals() const { return mNAllGlobals; } Int_t NFlagGlobals() const { return mNFlagGlobals; } Int_t NGoodGlobals() const { return mNGoodGlobals; } Int_t NGoodGlobalsCTBMatch() const { return mNGoodGlobalsCTBMatch; } // mock up trigger id. wanted to keep this independent of root4star Bool_t IsTrigger(UInt_t id); UInt_t TriggerId(UInt_t indx); UInt_t L0TriggerWord() const { return mL0TriggerWord; } Bool_t L3UnbiasedTrigger() const { return mL3UnbiasedTrigger; } Bool_t L3RichTrigger() const { return mL3RichTrigger; } Double_t CenterOfMassEnergy() const { return mCenterOfMassEnergy; } Double_t MagneticField() const { return mMagneticField; } Short_t BeamMassNumberEast() const { return mBeamMassNumberEast; } Short_t BeamMassNumberWest() const { return mBeamMassNumberWest; } Int_t EventId() const { return mEventId; } Int_t RunId() const { return mRunId; } Int_t NTrack() const { return mNTrack; } Float_t CTB() const { return mCTB; } Float_t ZDCe() const { return mZDCe; } Float_t ZDCw() const { return mZDCw; } Float_t ZDCVertexZ() const { return mZDCVertexZ; } // 03/15/03 Double_t BackgroundRate() const { return mBackgroundRate; } Double_t ZDCwRate() const { return mZDCwRate; } Double_t ZDCeRate() const { return mZDCeRate; } Double_t ZDCCoincidenceRate() const { return mZDCCoincidenceRate;} Int_t NHit() const { return mNHit; } Int_t FTPCe() const { return mFTPCe; } Int_t FTPCw() const { return mFTPCw; } // 01/27/03 - BUM - bunch of bbc stuff - Int_t BBCNHitE() const { return mBBCNHitE; } Int_t BBCNHitW() const { return mBBCNHitW; } Int_t BBCNHitEL() const { return mBBCNHitEL; } Int_t BBCNHitWL() const { return mBBCNHitWL; } Int_t BBCNHit() const { return mBBCNHitE + mBBCNHitW ; } Int_t BBCNHitL() const { return mBBCNHitEL + mBBCNHitWL; } Int_t BBCAdcSumE() const { return mBBCAdcSumE; } Int_t BBCAdcSumW() const { return mBBCAdcSumW; } Int_t BBCAdcSumEL() const { return mBBCAdcSumEL; } Int_t BBCAdcSumWL() const { return mBBCAdcSumWL; } Int_t BBCAdcSum() const { return mBBCAdcSumE + mBBCAdcSumW; } Int_t BBCAdcSumL() const { return mBBCAdcSumEL + mBBCAdcSumWL; } Int_t BBCTdcEarliestE() const { return mBBCTdcEarliestE; } Int_t BBCTdcEarliestW() const { return mBBCTdcEarliestW; } Float_t BBBVertexZ() const { return mBBCVertexZ; } // bbc done Int_t NchQLead() const { return mNchQLead; } Int_t NchQOpp() const { return mNchQOpp; } Int_t NchQA() const { return mNchQA; } Int_t NchQB() const { return mNchQB; } // primary fit if vertex exists, global otherwise Float_t LeadPt() const { return mLeadPt; } Float_t LeadPhi() const { return mLeadPhi; } Float_t LeadEta() const { return mLeadEta; } Int_t FTPCeQLead() const { return mFTPCeQLead; } Int_t FTPCeQOpp() const { return mFTPCeQOpp; } Int_t FTPCeQA() const { return mFTPCeQA; } Int_t FTPCeQB() const { return mFTPCeQB; } Int_t FTPCwQLead() const { return mFTPCwQLead; } Int_t FTPCwQOpp() const { return mFTPCwQOpp; } Int_t FTPCwQA() const { return mFTPCwQA; } Int_t FTPCwQB() const { return mFTPCwQB; } //_____________________________ // sets // void SetCentrality(Int_t); void SetVertexZ(Float_t val) { mVertexZ=val; } void SetVertexY(Float_t val) { mVertexY=val; } void SetVertexX(Float_t val) { mVertexX=val; } void SetOriginMult(Int_t val) { mOriginMult=val; } void SetNUncorrectedNegativePrimaries(Int_t val) { mNUncorrectedNegativePrimaries=val; } void SetNUncorrectedPrimaries(Int_t val) { mNUncorrectedPrimaries=val; } void SetNAllGlobals(Int_t val) { mNAllGlobals=val; } void SetNFlagGlobals(Int_t val) { mNFlagGlobals=val; } void SetNGoodGlobals(Int_t val) { mNGoodGlobals=val; } void SetNGoodGlobalsCTBMatch(Int_t val) { mNGoodGlobalsCTBMatch=val; } void SetCenterOfMassEnergy(Double_t val) { mCenterOfMassEnergy=val; } void SetMagneticField(Double_t val) { mMagneticField=val; } void SetBeamMassNumberEast(Short_t val) { mBeamMassNumberEast=val; } void SetBeamMassNumberWest(Short_t val) { mBeamMassNumberWest=val; } void SetEventId(Int_t val) { mEventId=val; } void SetRunId(Int_t val) { mRunId=val; } void SetNTrack(Int_t val) { mNTrack=val; } void SetCTB(Float_t val) { mCTB=val; } void SetZDCe(Float_t val) { mZDCe=val; } void SetZDCw(Float_t val) { mZDCw=val; } void SetZDCVertexZ(Float_t val) { mZDCVertexZ=val; } void SetNHit(Int_t val) { mNHit=val; } void SetBackgroundRate(Double_t val) { mBackgroundRate=val; } void SetZDCwRate(Double_t val) { mZDCwRate=val; } void SetZDCeRate(Double_t val) { mZDCeRate=val; } void SetZDCCoincidenceRate(Double_t val) { mZDCCoincidenceRate=val;} void SetFTPCe(Int_t val) { mFTPCe=val;} void SetFTPCw(Int_t val) { mFTPCw=val;} // 01/27/03 - BUM - void SetBBCNHitE(Int_t val) { mBBCNHitE=val; } void SetBBCNHitW(Int_t val) { mBBCNHitW=val; } void SetBBCNHitEL(Int_t val) { mBBCNHitEL=val; } void SetBBCNHitWL(Int_t val) { mBBCNHitWL=val; } void SetBBCAdcSumE(Int_t val) { mBBCAdcSumE=val; } void SetBBCAdcSumW(Int_t val) { mBBCAdcSumW=val; } void SetBBCAdcSumEL(Int_t val) { mBBCAdcSumEL=val; } void SetBBCAdcSumWL(Int_t val) { mBBCAdcSumWL=val; } void SetBBCTdcEarliestE(Int_t val) { mBBCTdcEarliestE=val; } void SetBBCTdcEarliestW(Int_t val) { mBBCTdcEarliestW=val; } void SetBBCVertexZ(Float_t val) { mBBCVertexZ=val; } // bbc done // 02/21/03 trigger stuff void AddTriggerId(unsigned int indx, unsigned int val); void ClearTriggerIds(); // 09/02/05 putting old trigger stuff back in void SetL0TriggerWord(UInt_t val) { mL0TriggerWord=val; } void SetL3UnbiasedTrigger(Bool_t val) { mL3UnbiasedTrigger=val; } void SetL3RichTrigger(Bool_t val) { mL3RichTrigger=val; } void SetNchQLead(Int_t val) { mNchQLead=val; } void SetNchQOpp(Int_t val) { mNchQOpp=val; } void SetNchQA(Int_t val) { mNchQA=val; } void SetNchQB(Int_t val) { mNchQB=val; } void SetLeadPt(Float_t val) { mLeadPt=val; } void SetLeadPhi(Float_t val) { mLeadPhi=val; } void SetLeadEta(Float_t val) { mLeadEta=val; } void SetFTPCeQLead(Int_t val) { mFTPCeQLead=val; } void SetFTPCeQOpp(Int_t val) { mFTPCeQOpp=val; } void SetFTPCeQA(Int_t val) { mFTPCeQA=val; } void SetFTPCeQB(Int_t val) { mFTPCeQB=val; } void SetFTPCwQLead(Int_t val) { mFTPCwQLead=val; } void SetFTPCwQOpp(Int_t val) { mFTPCwQOpp=val; } void SetFTPCwQA(Int_t val) { mFTPCwQA=val; } void SetFTPCwQB(Int_t val) { mFTPCwQB=val; } //_______________________ private: Float_t mVertexZ; Float_t mVertexX; //Self-explanatory Float_t mVertexY; Int_t mOriginMult; //stEvent->primaryVertex()->numberOfDaughters() Int_t mCentrality; //Probably not useful because definition changes year to year Int_t mNUncorrectedNegativePrimaries; // manuel's h- Int_t mNUncorrectedPrimaries; Int_t mNAllGlobals; Int_t mNFlagGlobals; //flag > 0 Int_t mNGoodGlobals; //15 fitpts, flag >0, charge != 0 Int_t mNGoodGlobalsCTBMatch; //15 fitpts, flag >0, charge != 0, match to CTB hit //** new 01/28/02 Double_t mCenterOfMassEnergy; Double_t mMagneticField; Short_t mBeamMassNumberEast; Short_t mBeamMassNumberWest; // ** end new Int_t mEventId; Int_t mRunId; Int_t mNTrack; // numbers of tracks in the track branch Float_t mCTB; Float_t mZDCe; Float_t mZDCw; Float_t mZDCVertexZ; //Info from ZDC timing can be used to assess vertex efficiency Int_t mNHit; //number of hits in the hit branch Double_t mBackgroundRate; Double_t mZDCwRate; Double_t mZDCeRate; Double_t mZDCCoincidenceRate; Int_t mFTPCe; Int_t mFTPCw; // 01/27/03 - BUM - bbc members Int_t mBBCNHitE; Int_t mBBCNHitW; Int_t mBBCNHitEL; Int_t mBBCNHitWL; Int_t mBBCAdcSumE; Int_t mBBCAdcSumW; Int_t mBBCAdcSumEL; Int_t mBBCAdcSumWL; Int_t mBBCTdcEarliestE; Int_t mBBCTdcEarliestW; Float_t mBBCVertexZ; // 02/21/03 BUM - trigger id UInt_t mId[NTRIGGERID]; // Added old trigger stuf back in (09/02/05) UInt_t mL0TriggerWord; // l0 trigger word for > y1 data Bool_t mL3UnbiasedTrigger; // for l3 triggered events, unbiased or not? Bool_t mL3RichTrigger; // for l3 Rich triggered events, see http://ikf1.star.bnl.gov/L3doc/algorithms/ // 03/04/03 BUM - quadrant Int_t mNchQLead; Int_t mNchQOpp; Int_t mNchQA; Int_t mNchQB; Float_t mLeadPt; Float_t mLeadPhi; Float_t mLeadEta; Int_t mFTPCeQLead; Int_t mFTPCeQOpp; Int_t mFTPCeQA; Int_t mFTPCeQB; Int_t mFTPCwQLead; Int_t mFTPCwQOpp; Int_t mFTPCwQA; Int_t mFTPCwQB; //These were always private static TClonesArray* mSTracks; //! flag to create clones array TClonesArray* mTracks; static TClonesArray* mSHits; //! TClonesArray* mHits; // StHiMicroFpdCollection* mFpd; ClassDef(StHiMicroEvent,4) }; ostream& operator<<(ostream&, StHiMicroEvent&); #endif