123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- ////////////////////////////////////////////////////////////////////////////
- //
- // $Id: StFlowCutTrack.h,v 1.20 2003/09/02 17:58:11 perev Exp $
- //
- // Author: Art Poskanzer and Raimond Snellings, LBNL, Nov 1999
- // FTPC added by Markus Oldenburg, MPI, Dec 2000
- // MuDst enabled by Kirill Filimonov, LBNL, Jun 2002
- //
- // Description: Class for applying flow track cuts
- // If lo >= hi no cut is applied
- // All functions and data members are static
- // Therefor, no need to instantiate
- // Just use StFlowCutTrack::func();
- //
- ////////////////////////////////////////////////////////////////////////////
- #ifndef _StFlowCutTrack_INCLUDED_
- #define _StFlowCutTrack_INCLUDED_
- #include <Stiostream.h>
- #include <stdlib.h>
- #include "Rtypes.h"
- class StTrack;
- class StFlowPicoTrack;
- class StMuTrack;
- class StFlowCutTrack {
- public:
- StFlowCutTrack();
- virtual ~StFlowCutTrack();
- static Int_t CheckTrack(StTrack* pTrack);
- static Int_t CheckTrack(StFlowPicoTrack* pPicoTrack);
- static Int_t CheckTrack(StMuTrack* pMuTrack);
- static void PrintCutList();
- static UInt_t EtaSymPosTpc();
- static UInt_t EtaSymNegTpc();
- static UInt_t EtaSymPosFtpc();
- static UInt_t EtaSymNegFtpc();
- static void EtaSymClear();
- static void SetFitPtsTpc(Int_t lo, Int_t hi);
- static void SetFitPtsFtpc(Int_t lo, Int_t hi);
- static void SetFitOverMaxPts(Float_t lo, Float_t hi);
- static void SetChiSqTpc(Float_t lo, Float_t hi);
- static void SetChiSqFtpc(Float_t lo, Float_t hi);
- static void SetDcaFtpc(Float_t lo, Float_t hi);
- static void SetDcaGlobalFtpc(Float_t lo, Float_t hi);
- static void SetPtTpc(Float_t lo, Float_t hi);
- static void SetPtFtpc(Float_t lo, Float_t hi);
- static void SetEtaTpc(Float_t lo, Float_t hi);
- static void SetEtaFtpc(Float_t lo_neg, Float_t hi_neg, Float_t lo_pos, Float_t hi_pos);
- static void SetChgTpc(Int_t lo, Int_t hi);
- static void SetChgFtpc(Int_t lo, Int_t hi);
- static void IncludeTpcTracks(Bool_t tpc_include);
- static void IncludeFtpcTracks(Bool_t ftpc_include);
- private:
- static UInt_t mTrackN; // number of tracks
- static UInt_t mTpcTrackN; // number of Tpc tracks
- static UInt_t mFtpcTrackN; // number of Ftpc tracks
- static UInt_t mFtpcEastTrackN; // number of Ftpc east tracks
- static UInt_t mFtpcWestTrackN; // number of Ftpc west tracks
- static UInt_t mGoodTrackN; // number of accepted tracks
- static UInt_t mGoodTpcTrackN; // number of accepted Tpc tracks
- static UInt_t mGoodFtpcTrackN; // number of accepted Ftpc tracks
-
- static UInt_t mEtaSymPosTpcN; // number of positive Eta Tpc tracks
- static UInt_t mEtaSymNegTpcN; // number of negative Eta Tpc tracks
- static UInt_t mEtaSymPosFtpcN; // number of positive Eta Ftpc tracks
- static UInt_t mEtaSymNegFtpcN; // number of negative Eta Ftpc tracks
-
- static UInt_t mFitPtsTpcCutN; // number not accepted
- static Int_t mFitPtsTpcCuts[2]; // range
- static UInt_t mFitPtsFtpcCutN; // number not accepted
- static Int_t mFitPtsFtpcCuts[2]; // range
- static UInt_t mFitOverMaxCutN; // number not accepted (all)
- static UInt_t mFitOverMaxTpcCutN; // number not accepted (Tpc)
- static UInt_t mFitOverMaxFtpcCutN; // number not accepted (Ftpc)
- static Float_t mFitOverMaxCuts[2]; // range
- static UInt_t mChiSqTpcCutN; // number not accepted
- static Float_t mChiSqTpcCuts[2]; // range
- static UInt_t mChiSqFtpcCutN; // number not accepted
- static Float_t mChiSqFtpcCuts[2]; // range
- static UInt_t mDcaFtpcCutN; // number not accepted
- static Float_t mDcaFtpcCuts[2]; // range
- static UInt_t mDcaGlobalFtpcCutN; // number not accepted
- static Float_t mDcaGlobalFtpcCuts[2]; // range
- static UInt_t mPtTpcCutN; // number not accepted
- static Float_t mPtTpcCuts[2]; // range
- static UInt_t mPtFtpcCutN; // number not accepted
- static Float_t mPtFtpcCuts[2]; // range
- static UInt_t mEtaTpcCutN; // number not accepted
- static Float_t mEtaTpcCuts[2]; // range
- static UInt_t mEtaFtpcCutN; // number not accepted
- static Float_t mEtaFtpcCuts[4]; // range
- static UInt_t mChgTpcCutN; // number not accepted
- static Int_t mChgTpcCuts[2]; // range
- static UInt_t mChgFtpcCutN; // number not accepted
- static Int_t mChgFtpcCuts[2]; // range
- static UInt_t mTpcTrackCutN; // number not accepted
- static Bool_t mTpcTrackCut; // cut or don't cut (kTRUE, kFALSE)
- static UInt_t mFtpcTrackCutN; // number not accepted
- static Bool_t mFtpcTrackCut; // cut or don't cut (kTRUE, kFALSE)
- ClassDef(StFlowCutTrack,1) // macro for rootcint
- };
- inline UInt_t StFlowCutTrack::EtaSymPosTpc() { return mEtaSymPosTpcN; }
- inline UInt_t StFlowCutTrack::EtaSymNegTpc() { return mEtaSymNegTpcN; }
- inline UInt_t StFlowCutTrack::EtaSymPosFtpc() { return mEtaSymPosFtpcN; }
- inline UInt_t StFlowCutTrack::EtaSymNegFtpc() { return mEtaSymNegFtpcN; }
- inline void StFlowCutTrack::EtaSymClear() { mEtaSymPosTpcN = 0; mEtaSymNegTpcN = 0;
- mEtaSymPosFtpcN = 0; mEtaSymNegFtpcN = 0; }
- inline void StFlowCutTrack::SetFitPtsTpc(Int_t lo, Int_t hi) {
- mFitPtsTpcCuts[0] = lo; mFitPtsTpcCuts[1] = hi; }
- inline void StFlowCutTrack::SetFitPtsFtpc(Int_t lo, Int_t hi) {
- mFitPtsFtpcCuts[0] = lo; mFitPtsFtpcCuts[1] = hi; }
- inline void StFlowCutTrack::SetFitOverMaxPts(Float_t lo, Float_t hi) {
- mFitOverMaxCuts[0] = lo; mFitOverMaxCuts[1] = hi; }
- inline void StFlowCutTrack::SetChiSqTpc(Float_t lo, Float_t hi) {
- mChiSqTpcCuts[0] = lo; mChiSqTpcCuts[1] = hi; }
- inline void StFlowCutTrack::SetChiSqFtpc(Float_t lo, Float_t hi) {
- mChiSqFtpcCuts[0] = lo; mChiSqFtpcCuts[1] = hi; }
- inline void StFlowCutTrack::SetDcaFtpc(Float_t lo, Float_t hi) {
- mDcaFtpcCuts[0] = lo; mDcaFtpcCuts[1] = hi; }
- inline void StFlowCutTrack::SetDcaGlobalFtpc(Float_t lo, Float_t hi) {
- mDcaGlobalFtpcCuts[0] = lo; mDcaGlobalFtpcCuts[1] = hi; }
- inline void StFlowCutTrack::SetPtTpc(Float_t lo, Float_t hi) {
- mPtTpcCuts[0] = lo; mPtTpcCuts[1] = hi; }
- inline void StFlowCutTrack::SetPtFtpc(Float_t lo, Float_t hi) {
- mPtFtpcCuts[0] = lo; mPtFtpcCuts[1] = hi; }
- inline void StFlowCutTrack::SetEtaTpc(Float_t lo, Float_t hi) {
- mEtaTpcCuts[0] = lo; mEtaTpcCuts[1] = hi; }
- inline void StFlowCutTrack::SetEtaFtpc(Float_t lo_neg, Float_t hi_neg,
- Float_t lo_pos, Float_t hi_pos) {
- mEtaFtpcCuts[0] = lo_neg; mEtaFtpcCuts[1] = hi_neg;
- mEtaFtpcCuts[2] = lo_pos; mEtaFtpcCuts[3] = hi_pos; }
- inline void StFlowCutTrack::SetChgTpc(Int_t lo, Int_t hi) {
- mChgTpcCuts[0] = lo; mChgTpcCuts[1] = hi; }
- inline void StFlowCutTrack::SetChgFtpc(Int_t lo, Int_t hi) {
- mChgFtpcCuts[0] = lo; mChgFtpcCuts[1] = hi; }
- inline void StFlowCutTrack::IncludeTpcTracks(Bool_t tpc_include) {
- mTpcTrackCut = !tpc_include; }
- inline void StFlowCutTrack::IncludeFtpcTracks(Bool_t ftpc_include) {
- mFtpcTrackCut = !ftpc_include; }
- #endif
- ////////////////////////////////////////////////////////////////////////////
- //
- // $Log: StFlowCutTrack.h,v $
- // Revision 1.20 2003/09/02 17:58:11 perev
- // gcc 3.2 updates + WarnOff
- //
- // Revision 1.19 2003/01/14 14:14:16 oldi
- // Possibility to exclude TPC tracks completely (= FTPC only).
- //
- // Revision 1.18 2003/01/10 16:42:05 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.17 2002/06/10 22:50:59 posk
- // pt and eta weighting now default.
- // DcaGlobalPart default now 0 to 1 cm.
- // Event cut order changed.
- //
- // Revision 1.16 2002/06/07 22:18:40 kirill
- // Introduced MuDst reader
- //
- // Revision 1.15 2002/02/13 22:29:17 posk
- // Pt Weight now also weights Phi Weights. Added Eta Weight, default=FALSE.
- //
- // Revision 1.14 2002/01/31 21:43:14 aihong
- // add SetChgTpc()
- //
- // Revision 1.13 2001/11/09 21:10:34 posk
- // Switched from CERNLIB to TMath. Little q is now normalized.
- //
- // Revision 1.12 2001/07/27 01:26:10 snelling
- // Added and changed variables for picoEvent. Changed trackCut class to StTrack
- //
- // Revision 1.11 2001/05/22 20:17:23 posk
- // Now can do pseudorapidity subevents.
- //
- // Revision 1.10 2000/12/12 20:22:05 posk
- // Put log comments at end of files.
- // Deleted persistent StFlowEvent (old micro DST).
- //
- // Revision 1.9 2000/12/10 02:01:13 oldi
- // A new member (StTrackTopologyMap mTopology) was added to StFlowPicoTrack.
- // The evaluation of either a track originates from the FTPC or not is
- // unambiguous now. The evaluation itself is easily extendible for other
- // detectors (e.g. SVT+TPC). Old flowpicoevent.root files are treated as if
- // they contain TPC tracks only (backward compatibility).
- //
- // Revision 1.7 2000/12/08 17:03:38 oldi
- // Phi weights for both FTPCs included.
- //
- // Revision 1.6 2000/12/06 15:38:46 oldi
- // Including FTPC.
- //
- // Revision 1.5 2000/10/12 22:46:35 snelling
- // Added support for the new pDST's and the probability pid method
- //
- // Revision 1.4 2000/08/31 18:58:20 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.3 2000/08/10 23:00:21 posk
- // New centralities. pt and eta cuts.
- //
- // Revision 1.2 2000/07/12 17:54:36 posk
- // Added chi2 and dca cuts. Multiplied EtaSym by ::sqrt(mult).
- // Apply cuts when reading picoevent file.
- //
- // Revision 1.1 2000/03/02 23:02:43 posk
- // Changed extensions from .hh and .cc to .h and .cxx .
- //
- // Revision 1.4 1999/12/15 22:01:24 posk
- // Added StFlowConstants.hh
- //
- // Revision 1.3 1999/11/30 18:52:50 snelling
- // First modification for the new StEvent
- //
- // Revision 1.2 1999/11/24 18:17:11 posk
- // Put the methods which act on the data in with the data in StFlowEvent.
- //
- // Revision 1.1 1999/11/05 00:06:45 posk
- // First versions of Flow cut classes.
- //
- ////////////////////////////////////////////////////////////////////////////
|