StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StAnaPars.h
1 // -*- mode:c++ -*-
2 //
3 // Pibero Djawotho <pibero@tamu.edu>
4 // Texas A&M University
5 // 27 May 2010
6 //
7 
8 #ifndef ST_ANA_PARS_H
9 #define ST_ANA_PARS_H
10 
11 #include "TObject.h"
12 #include "StjTowerEnergyCorrectionForTracksNull.h"
13 #include "StjTrackPtFraction.h"
14 #include "StjTrackRegion.h"
15 #include "StjTowerEnergyFraction.h"
16 #include "StjTowerRegion.h"
17 #include "StjMCParticleRegion.h"
18 #include "StjTrackListCut.h"
19 #include "StjTowerEnergyListCut.h"
20 #include "StjMCParticleListCut.h"
21 #include "StJetFinder/StProtoJetListCut.h"
22 
23 class StAnaPars : public TObject {
24 public:
25  StAnaPars()
26  : mCorrectTowerEnergyForTracks(new StjTowerEnergyCorrectionForTracksNull)
27  , useTpc(false)
28  , useBemc(false)
29  , useEemc(false)
30  , useFms(false)
31  , useFcsECal(false) //Currently no track List Cuts
32  , useFcsHCal(false)
33  , useMonteCarlo(false)
34  , randomSelectorProb(1.0)
35  , randomSelectorAt(false)
36  , randomSelectorSeed(0)
37  , changeTracks(0)
38  , changeTowers(0)
39  , storeOnlyDefaultVertex(false)
40  {
41  }
42 
43  ~StAnaPars() { delete mCorrectTowerEnergyForTracks; }
44 
45  void setTowerEnergyCorrection(StjAbstractTowerEnergyCorrectionForTracks* correctTowerEnergyForTracks)
46  {
47  mCorrectTowerEnergyForTracks = correctTowerEnergyForTracks;
48  }
49 
50  void setTrackShift(StjAbstractTrack* changeTrks)
51 // void setTrackShift(StjAbstractTrack* changeTracks)
52  {
53  // mChangeTracks = changeTracks;
54  changeTracks = changeTrks;
55  }
56 // void setTowerShift(StjAbstractTower* changeTowers)
57  void setTowerShift(StjAbstractTower* changeTwrs)
58  {
59 // mChangeTowers = changeTowers;
60  changeTowers = changeTwrs;
61  }
62  void setTrackRegion(StjAbstractTrackRegion* trackRegion)
63  {
64  mtrackRegion = trackRegion;
65  }
66  void setTowerRegion(StjAbstractTowerRegion* towerRegion)
67  {
68  mtowerRegion = towerRegion;
69  }
70  void setParticleRegion(StjAbstractMCParticleRegion* particleRegion)
71  {
72  mparticleRegion = particleRegion;
73  }
74 
75 
76  void addTpcCut(StjTrackCut* c) { mTpcCuts.addCut(c); }
77  void addBemcCut(StjTowerEnergyCut* c) { mBemcCuts.addCut(c); }
78  void addEemcCut(StjTowerEnergyCut* c) { mEemcCuts.addCut(c); }
79  void addFCSEcalemcCut(StjTowerEnergyCut* c) { mFCSECalemcCuts.addCut(c); }
80  void addFCSHcalhcCut(StjTowerEnergyCut* c) { mFCSHcalhcCuts.addCut(c); }
81  void addMcCut(StjMCParticleCut* c) { mMcCuts.addCut(c); }
82  void addJetCut(StProtoJetCut* c) { mJetCuts.addCut(c); }
83 
84  StjAbstractTowerEnergyCorrectionForTracks& correctTowerEnergyForTracks() { return *mCorrectTowerEnergyForTracks; }
85 // StjAbstractTrack& changeTracks() { return *mChangeTracks; }
86 // StjAbstractTower& changeTowers() { return *mChangeTowers; }
87  StjAbstractTrackRegion& trackRegion() { return *mtrackRegion; }
88  StjAbstractTowerRegion& towerRegion() { return *mtowerRegion; }
89  StjAbstractMCParticleRegion& particleRegion() { return *mparticleRegion; }
90  StjTrackListCut& tpcCuts() { return mTpcCuts; }
91  StjTowerEnergyListCut& bemcCuts() { return mBemcCuts; }
92  StjTowerEnergyListCut& eemcCuts() { return mEemcCuts; }
93  StjTowerEnergyListCut& FCSEcalemcCuts() { return mFCSECalemcCuts; }
94  StjTowerEnergyListCut& FCSHcalhcCuts() { return mFCSHcalhcCuts; }
95  StjMCParticleListCut& mcCuts() { return mMcCuts; }
96  StProtoJetListCut& jetCuts() { return mJetCuts; }
97 
98 private:
99  StjAbstractTowerEnergyCorrectionForTracks* mCorrectTowerEnergyForTracks;
100 // StjAbstractTrack* mChangeTracks;
101 // StjAbstractTower* mChangeTowers;
102  StjAbstractTrackRegion* mtrackRegion;
103  StjAbstractTowerRegion* mtowerRegion;
104  StjAbstractMCParticleRegion* mparticleRegion;
105  StjTrackListCut mTpcCuts;
106  StjTowerEnergyListCut mBemcCuts;
107  StjTowerEnergyListCut mEemcCuts;
108  StjTowerEnergyListCut mFCSECalemcCuts;
109  StjTowerEnergyListCut mFCSHcalhcCuts;
110  StjMCParticleListCut mMcCuts;
111  StProtoJetListCut mJetCuts;
112 
113 public:
114  bool useTpc;
115  bool useBemc;
116  bool useEemc;
117  bool useFms;
118  bool useFcsECal;
119  bool useFcsHCal;
120  bool useMonteCarlo;
121  double randomSelectorProb;
122  double randomSelectorAt;
123  unsigned int randomSelectorSeed;
124  StjAbstractTrack* changeTracks;
125  StjAbstractTower* changeTowers;
126  bool storeOnlyDefaultVertex; //add flag to tell jet maker to store only the highest positively ranked vertex
127 
128  ClassDef(StAnaPars,0);
129 };
130 
131 #endif // ST_ANA_PARS_H