00001
00002
00003 #ifndef STAR_StTriggerSimuResult
00004 #define STAR_StTriggerSimuResult
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <utility>
00016 using std::pair;
00017
00018 #include <vector>
00019 using std::vector;
00020
00021 #include <utility>
00022 using std::make_pair;
00023
00024 #include <map>
00025 using std::map;
00026
00027 #include "TObject.h"
00028
00029 #include "StVirtualTriggerSimu.h"
00030
00031 class L2pedResults2006;
00032 class L2jetResults2006;
00033 class L2gammaResult;
00034 class L2Result;
00035
00037 class HttpResult {
00038 public:
00039 int towerId;
00040 int towerAdc;
00041 int triggerPatchId;
00042 int triggerPatchAdc;
00043 ClassDef(HttpResult,1)
00044 };
00045
00046 enum L2ResultType {kPed, kJet, kGammaBemc, kGammaEemc, kUpsilon};
00047
00048 class StTriggerSimuResult : public TObject
00049 {
00050 public:
00051 StTriggerSimuResult();
00052
00053 unsigned int triggerId() const;
00054 StTriggerSimuDecision bbcDecision() const;
00055 StTriggerSimuDecision bemcDecision() const;
00056 StTriggerSimuDecision eemcDecision() const;
00057 StTriggerSimuDecision l2Decision() const;
00058
00059 const vector<short>& highTowerIds() const;
00060 const vector<short>& triggerPatchIds() const;
00061 const vector<short>& jetPatchIds() const;
00062
00064 int highTowerAdc(short towerId) const;
00065
00067 int triggerPatchAdc(short patchId) const;
00068
00070 int jetPatchAdc(short jetPatchId) const;
00071
00073 HttpResult httpPair(short towerId) const;
00074
00076
00085 const unsigned int* l2Result(L2ResultType algo, int year=2006) const;
00086 const unsigned int* l2Result() const;
00087
00088 void setTriggerId(unsigned int);
00089 void setBbcDecision(StTriggerSimuDecision);
00090 void setBemcDecision(StTriggerSimuDecision);
00091 void setEemcDecision(StTriggerSimuDecision);
00092 void setL2Decision(StTriggerSimuDecision);
00093
00094 void addHighTower(int towerId, int dsmAdc);
00095 void addTriggerPatch(int patchId, int dsmAdc);
00096 void addJetPatch(int jetPatchId, int dsmAdc);
00097
00098
00099 void addBarrelJetPatchAdc(int jp, int adc);
00100 void addEndcapJetPatchAdc(int jp, int adc);
00101 void addOverlapJetPatchAdc(int jp, int adc);
00102
00103 const map<int,int>& barrelJetPatches() const;
00104 const map<int,int>& endcapJetPatches() const;
00105 const map<int,int>& overlapJetPatches() const;
00106
00107 void setL2Result(const unsigned int* result);
00108
00109 private:
00110 UInt_t mTriggerId;
00111 UChar_t mBbcDecision;
00112 UChar_t mBemcDecision;
00113 UChar_t mEemcDecision;
00114 UChar_t mL2Decision;
00115
00116 vector<short> mHighTowerIds;
00117 vector<short> mHighTowerAdcs;
00118
00119 vector<short> mTriggerPatchIds;
00120 vector<short> mTriggerPatchAdcs;
00121
00122 vector<short> mJetPatchIds;
00123 vector<short> mJetPatchAdcs;
00124
00125
00126 map<int,int> mBarrelJetPatches;
00127 map<int,int> mEndcapJetPatches;
00128 map<int,int> mOverlapJetPatches;
00129
00130 unsigned int mL2Result[64];
00131
00132
00133 ClassDef(StTriggerSimuResult, 1)
00134 };
00135
00136 inline unsigned int StTriggerSimuResult::triggerId() const { return mTriggerId; }
00137 inline StTriggerSimuDecision StTriggerSimuResult::bbcDecision() const { return (StTriggerSimuDecision)mBbcDecision; }
00138 inline StTriggerSimuDecision StTriggerSimuResult::bemcDecision() const { return (StTriggerSimuDecision)mBemcDecision; }
00139 inline StTriggerSimuDecision StTriggerSimuResult::eemcDecision() const { return (StTriggerSimuDecision)mEemcDecision; }
00140 inline StTriggerSimuDecision StTriggerSimuResult::l2Decision() const { return (StTriggerSimuDecision)mL2Decision; }
00141
00142 inline const vector<short>& StTriggerSimuResult::highTowerIds() const { return mHighTowerIds; }
00143 inline const vector<short>& StTriggerSimuResult::triggerPatchIds() const { return mTriggerPatchIds; }
00144 inline const vector<short>& StTriggerSimuResult::jetPatchIds() const { return mJetPatchIds; }
00145
00146 inline void StTriggerSimuResult::setTriggerId(unsigned int tid) { mTriggerId = tid; }
00147 inline void StTriggerSimuResult::setBbcDecision(StTriggerSimuDecision d) { mBbcDecision = d; }
00148 inline void StTriggerSimuResult::setBemcDecision(StTriggerSimuDecision d) { mBemcDecision = d; }
00149 inline void StTriggerSimuResult::setEemcDecision(StTriggerSimuDecision d) { mEemcDecision = d; }
00150 inline void StTriggerSimuResult::setL2Decision(StTriggerSimuDecision d) { mL2Decision = d; }
00151
00152
00153 inline void StTriggerSimuResult::addBarrelJetPatchAdc(int jp, int adc) { mBarrelJetPatches.insert(make_pair(jp,adc)); }
00154 inline void StTriggerSimuResult::addEndcapJetPatchAdc(int jp, int adc) { mEndcapJetPatches.insert(make_pair(jp,adc)); }
00155 inline void StTriggerSimuResult::addOverlapJetPatchAdc(int jp, int adc) { mOverlapJetPatches.insert(make_pair(jp,adc)); }
00156
00157 inline const map<int,int>& StTriggerSimuResult::barrelJetPatches() const { return mBarrelJetPatches; }
00158 inline const map<int,int>& StTriggerSimuResult::endcapJetPatches() const { return mEndcapJetPatches; }
00159 inline const map<int,int>& StTriggerSimuResult::overlapJetPatches() const { return mOverlapJetPatches; }
00160
00161 #endif
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188