StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StGammaCandidateMaker.h
1 // //
3 // StGammaCandidateMaker //
4 // //
5 // Run quality analysis on raw BEMC and EEMC clusters, //
6 // associating various detector elements with those //
7 // clusters passing the desired criteria //
8 // //
9 // Original concept and implementation by Jason //
10 // Webb (Valpo) and Pibero Djawatho (IUCF) //
11 // //
13 
14 #ifndef STAR_StGammaCandidateMaker
15 #define STAR_StGammaCandidateMaker
16 
17 class TClonesArray;
18 class TVector3;
19 class StGammaTrack;
20 
21 #include "StMaker.h"
22 #include "StGammaCandidate.h"
23 
25 {
26 
27  public:
28 
29  StGammaCandidateMaker(const char *name = "mGammaCandidateMaker");
31 
32  virtual const char* GetCVS() const
33  {static const char cvs[] = "Tag $Name: $ $Id: StGammaCandidateMaker.h,v 1.11 2014/08/06 11:43:17 jeromel Exp $ built " __DATE__ " " __TIME__; return cvs; }
34 
35  // Required Maker Methods
36  Int_t Init();
37  Int_t Make();
38  void Clear(Option_t *opts="");
39  Int_t Finish() { return kStOK; }
40 
41  // Mutators
42  void SetMinimumEt(Float_t et) { mMinimumEt = et; }
43  void SetRadius(Float_t r) { mRadius = r; }
44  void SetBsmdRange(Float_t r){ mBsmdRange = r; }
45  void SetEsmdRange(Float_t r){ mEsmdRange = r; }
46 
47  void useBemc() { mUseBemc = true; }
48  void useEemc() { mUseEemc = true; }
49 
50  void useStrictBemcStatus() { mStrictBemcStatus = true; }
51 
52  enum { kNoCompress, kCompressSmd, kCompressAll };
53  // 0 = No compression
54  // 1 = Compress SMD only
55  // 2 = Compress All
56  void SetCompressLevel(Int_t level = kCompressSmd ) { mCompressLevel = level; }
57 
58  Int_t Compress();
59 
60  private:
61 
62  protected:
63 
64  bool mUseBemc;
65  bool mUseEemc;
66 
67  bool mStrictBemcStatus;
68 
69  Float_t mMinimumEt; // GeV
70  Float_t mRadius; // sqrt( deta**2 + dphi**2 )
71  Float_t mBsmdRange; // eta-phi
72  Float_t mEsmdRange; // cm
73  Int_t mCompressLevel;
74 
75  Int_t mId;
76  Int_t nextId(){ return mId++; }
77 
78  Int_t MakeBarrel();
79  Int_t MakeEndcap();
80  template<class T> void Compress(TClonesArray* clones);
81 
82  // Calculate position of EEMC cluster using intersection of max ESMD strips under
83  // cluster seed tower. Returns (0,0,0) for failure.
84  TVector3 getEEmcClusterPosition(const StEEmcCluster& cluster);
85 
86 
87  ClassDef(StGammaCandidateMaker, 4);
88 
89 };
90 
91 #endif
void Clear(Option_t *opts="")
User defined functions.
Definition: Stypes.h:40
A base class for describing clusters of EEMC towers.
Definition: StEEmcCluster.h:50