123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- ////////////////////////////////////////////////////////////////////////////
- //
- // $Id: StFlowCutEvent.h,v 1.14 2006/02/22 19:27:04 posk Exp $
- //
- // Author: Art Poskanzer and Raimond Snellings, LBNL, Oct 1999
- // FTPC added by Markus Oldenburg, MPI, Dec 2000
- // MuDst enabled by Kirill Filimonov, LBNL, Jun 2002
- //
- // Description: Class for applying flow event cuts
- // If lo >= hi no cut is applied
- // All functions and data members are static
- // Therefore, no need to instantiate
- // Just use StFlowCutEvent::func();
- //
- ////////////////////////////////////////////////////////////////////////////
- #ifndef _StFlowCutEvent_INCLUDED_
- #define _StFlowCutEvent_INCLUDED_
- #include <Stiostream.h>
- #include <stdlib.h>
- #include "Rtypes.h"
- class StEvent;
- class StFlowPicoEvent;
- class StMuEvent;
- class StMuDst;
- class StFlowCutEvent {
- public:
- StFlowCutEvent();
- virtual ~StFlowCutEvent();
- static Bool_t CheckEvent(StEvent* pEvent);
- static Bool_t CheckEvent(StFlowPicoEvent* pPicoEvent);
- static Bool_t CheckEvent(StMuDst* pMu);
- static Bool_t CheckEtaSymmetry(StEvent* pEvent);
- static Bool_t CheckEtaSymmetry(StFlowPicoEvent* pPicoEvent);
- static Bool_t CheckEtaSymmetry(StMuEvent* pMuEvent);
- static void PrintCutList();
- static void SetCent(const Int_t lo, const Int_t hi);
- static void SetMult(const Int_t lo, const Int_t hi);
- static void SetVertexX(const Float_t lo, const Float_t hi);
- static void SetVertexY(const Float_t lo, const Float_t hi);
- static void SetVertexZ(const Float_t lo, const Float_t hi);
- static void SetVertexR(const Float_t lo, const Float_t hi); //# added by jcampbell
- static void SetVertexRCenter(const Float_t xCenter, const Float_t yCenter); //# added by jcampbell
- static void SetZDCCut(const Int_t zdc); //# added by jcampbell
- static void SetEtaSymTpc(Float_t lo, Float_t hi);
- static void SetEtaSymFtpc(Float_t lo, Float_t hi);
- static void SetTrigger(const UInt_t value);
- static UInt_t TriggersFound();
- static UInt_t GetFlowTriggerBitMap();
- private:
- static Int_t mZDCCut; // zdc Cut //# added by jcampbell
- static Int_t mZDCCutNumber; // zdc Cut //# added by jcampbell
- static UInt_t mEventN; // number of events
- static UInt_t mGoodEventN; // number of accepted events
-
- static UInt_t mCentCut; // number of not accepted events
- static Int_t mCentCuts[2]; // range of multiplicity
- static UInt_t mMultCut; // number of not accepted events
- static Int_t mMultCuts[2]; // range of multiplicity
- static UInt_t mVertexXCut; // number of not accepted events
- static Float_t mVertexXCuts[2]; // range of X vertex position
- static UInt_t mVertexYCut; // number of not accepted events
- static Float_t mVertexYCuts[2]; // range of Y vertex position
- static UInt_t mVertexZCut; // number of not accepted events
- static Float_t mVertexZCuts[2]; // range of Z vertex position
- static UInt_t mVertexRCut; // number of not accepted events //# added by jcampbell
- static Float_t mVertexRCuts[2]; // range of R vertex position //# added by jcampbell
- static Float_t mVertexRCenter[2]; // range of R vertex position //# added by jcampbell
- static UInt_t mEtaSymTpcCutN; // number not accepted
- static Float_t mEtaSymTpcCuts[2]; // range
- static UInt_t mEtaSymFtpcCutN; // number not accepted
- static Float_t mEtaSymFtpcCuts[2]; // range
- static UInt_t mTriggerCutN; // number not accepted
- static UInt_t mTriggerCut; // allowed trigger value
- static UInt_t mTriggersFound;
- static UInt_t flowTriggerBitMap;
- ClassDef(StFlowCutEvent,1) // macro for rootcint
- };
- inline void StFlowCutEvent::SetCent(const Int_t lo, const Int_t hi) {
- mCentCuts[0] = lo; mCentCuts[1] = hi; }
- inline void StFlowCutEvent::SetMult(const Int_t lo, const Int_t hi) {
- mMultCuts[0] = lo; mMultCuts[1] = hi; }
- inline void StFlowCutEvent::SetVertexX(const Float_t lo, const Float_t hi) {
- mVertexXCuts[0] = lo; mVertexXCuts[1] = hi; }
- inline void StFlowCutEvent::SetVertexY(const Float_t lo, const Float_t hi) {
- mVertexYCuts[0] = lo; mVertexYCuts[1] = hi; }
- inline void StFlowCutEvent::SetVertexZ(const Float_t lo, const Float_t hi) {
- mVertexZCuts[0] = lo; mVertexZCuts[1] = hi; }
- //# added by jcampbell
- inline void StFlowCutEvent::SetZDCCut(const Int_t zdc) {
- mZDCCut = zdc; }
- inline void StFlowCutEvent::SetVertexR(const Float_t lo, const Float_t hi) {
- mVertexRCuts[0] = lo; mVertexRCuts[1] = hi; }
- inline void StFlowCutEvent::SetVertexRCenter(const Float_t xCenter, const Float_t yCenter) {
- mVertexRCenter[0] = xCenter; mVertexRCenter[1] = yCenter; }
- inline void StFlowCutEvent::SetEtaSymTpc(Float_t lo, Float_t hi) {
- mEtaSymTpcCuts[0] = lo; mEtaSymTpcCuts[1] = hi; }
- inline void StFlowCutEvent::SetEtaSymFtpc(Float_t lo, Float_t hi) {
- mEtaSymFtpcCuts[0] = lo; mEtaSymFtpcCuts[1] = hi; }
- inline void StFlowCutEvent::SetTrigger(const UInt_t value) {
- mTriggerCut = value; }
- inline UInt_t StFlowCutEvent::TriggersFound() {
- return mTriggersFound; }
- inline UInt_t StFlowCutEvent::GetFlowTriggerBitMap() {
- return flowTriggerBitMap; }
- #endif
- ////////////////////////////////////////////////////////////////////////////
- //
- // $Log: StFlowCutEvent.h,v $
- // Revision 1.14 2006/02/22 19:27:04 posk
- // Changes needed for the MuDst
- // Stopped using eventSummary()
- //
- // Revision 1.13 2005/02/11 23:22:12 posk
- // Made TriggersFound() work for pico files.
- //
- // Revision 1.12 2005/02/08 20:57:36 psoren
- // trigger and centrality selections were updated for all runs after run 4 to be compatible with trigger collections. Added TriggersFound() and GetFlowTriggerBitMap() functions.
- //
- // Revision 1.11 2003/09/02 17:58:11 perev
- // gcc 3.2 updates + WarnOff
- //
- // Revision 1.10 2003/01/10 16:41:56 oldi
- // Several changes to comply with FTPC tracks:
- // - Switch to include/exclude FTPC tracks introduced.
- // The same switch changes the range of the eta histograms.
- // - Eta symmetry plots for FTPC tracks added and separated from TPC plots.
- // - PhiWgts and related histograms for FTPC tracks split in FarEast, East,
- // West, FarWest (depending on vertex.z()).
- // - Psi_Diff plots for 2 different selections and the first 2 harmonics added.
- // - Cut to exclude mu-events with no primary vertex introduced.
- // (This is possible for UPC events and FTPC tracks.)
- // - Global DCA cut for FTPC tracks added.
- // - Global DCA cuts for event plane selection separated for TPC and FTPC tracks.
- // - Charge cut for FTPC tracks added.
- //
- // Revision 1.9 2002/06/10 22:50:57 posk
- // pt and eta weighting now default.
- // DcaGlobalPart default now 0 to 1 cm.
- // Event cut order changed.
- //
- // Revision 1.8 2002/06/07 22:18:38 kirill
- // Introduced MuDst reader
- //
- // Revision 1.7 2002/01/30 13:04:20 oldi
- // Trigger cut implemented.
- //
- // Revision 1.6 2000/12/12 20:22:05 posk
- // Put log comments at end of files.
- // Deleted persistent StFlowEvent (old micro DST).
- //
- // Revision 1.5 2000/08/31 18:58:19 posk
- // For picoDST, added version number, runID, and multEta for centrality.
- // Added centrality cut when reading picoDST.
- // Added pt and eta selections for particles corr. wrt event plane.
- //
- // Revision 1.4 2000/07/12 17:54:34 posk
- // Added chi2 and dca cuts. Multiplied EtaSym by ::sqrt(mult).
- // Apply cuts when reading picoevent file.
- //
- // Revision 1.3 2000/06/30 14:48:30 posk
- // Using MessageMgr, changed Eta Symmetry cut.
- //
- // Revision 1.2 2000/05/26 21:29:26 posk
- // Protected Track data members from overflow.
- //
- // Revision 1.1 2000/03/02 23:02:40 posk
- // Changed extensions from .hh and .cc to .h and .cxx .
- //
- // Revision 1.4 1999/12/15 22:01:23 posk
- // Added StFlowConstants.hh
- //
- // Revision 1.3 1999/11/30 18:52:48 snelling
- // First modification for the new StEvent
- //
- // Revision 1.2 1999/11/24 18:17:10 posk
- // Put the methods which act on the data in with the data in StFlowEvent.
- //
- // Revision 1.1 1999/11/05 00:06:42 posk
- // First versions of Flow cut classes.
- //
- ////////////////////////////////////////////////////////////////////////////
|