1 #ifndef STAR_StChargedPionMcEvent
2 #define STAR_StChargedPionMcEvent
23 #include "TClonesArray.h"
26 #include "StChargedPionTypes.h"
27 #include "StChargedPionBaseEv.h"
39 virtual void Clear(Option_t* =
"");
42 unsigned int runId()
const;
43 unsigned int eventId()
const;
44 unsigned int bbcTimeBin()
const;
45 const string& muDstName()
const;
47 bool isSimuTrigger(
unsigned int trigId)
const;
49 int highTowerAdc(
short towerId)
const;
50 int triggerPatchAdc(
short patchId)
const;
51 int jetPatchAdc(
short patchId)
const;
53 unsigned int nVertices()
const;
54 TClonesArray* vertices();
55 const TClonesArray* vertices()
const;
57 unsigned int nTracks()
const;
58 TClonesArray* tracks();
59 const TClonesArray* tracks()
const;
61 unsigned int nJets()
const;
63 const TClonesArray* jets()
const;
85 double t_alternative()
const;
86 double u_alternative()
const;
88 double Q2_alternative2()
const;
93 double beta34()
const;
95 int processId()
const;
98 StChargedPionLorentzVector parton(
int id, Frame = LAB)
const;
101 StChargedPionLorentzVector& isr1();
102 StChargedPionLorentzVector& isr2();
105 StChargedPionLorentzVector& parton1();
106 StChargedPionLorentzVector& parton2();
107 StChargedPionLorentzVector& parton3();
108 StChargedPionLorentzVector& parton4();
110 short flavor(
int i)
const;
111 void setFlavor(
int i,
short f);
113 static TLorentzVector lv(
const StChargedPionLorentzVector&);
115 StChargedPion3Vector& mcVertex();
116 const StChargedPion3Vector& mcVertex()
const;
118 vector<StChargedPionMcTrack>& mcTracks();
119 const vector<StChargedPionMcTrack>& mcTracks()
const;
121 vector<StChargedPionJet>& mcJets();
122 const vector<StChargedPionJet>& mcJets()
const;
125 vector<StChargedPionTrackPair>& matchedPairs();
126 const vector<StChargedPionTrackPair>& matchedPairs()
const;
128 vector<StChargedPionTrackPair>& mergedPairs();
129 const vector<StChargedPionTrackPair>& mergedPairs()
const;
131 vector<StChargedPionTrackPair>& splitPairs();
132 const vector<StChargedPionTrackPair>& splitPairs()
const;
134 vector<StChargedPionTrackPair>& contamPairs();
135 const vector<StChargedPionTrackPair>& contamPairs()
const;
137 vector<StChargedPionTrackPair>& ghostPairs();
138 const vector<StChargedPionTrackPair>& ghostPairs()
const;
140 vector<StChargedPionPythiaRow>& pythiaRecord();
141 const vector<StChargedPionPythiaRow>& pythiaRecord()
const;
144 void setRunId(
unsigned int);
145 void setEventId(
unsigned int);
146 void setBbcTimeBin(
unsigned short);
147 void setMuDstName(
const char*);
148 void addSimuTrigger(
unsigned int);
149 void addHighTower(
short towerId,
int ADC);
150 void addTriggerPatch(
short patchId,
int ADC);
151 void addJetPatch(
short patchId,
int ADC);
155 void setProcessId(
int);
157 void setHardP(
float);
159 void setL2Result(
const void *address,
bool emulated=
false);
164 UShort_t mBbcTimeBin;
167 UInt_t mSimuTriggerBits;
168 map<short, int> mHighTowers;
169 map<short, int> mTriggerPatches;
170 map<short, int> mJetPatches;
171 UInt_t mL2ResultEmulated[9];
173 TClonesArray *mVertices;
174 TClonesArray *mTracks;
177 StChargedPionLorentzVector mISR1;
178 StChargedPionLorentzVector mISR2;
179 StChargedPionLorentzVector mParton1;
180 StChargedPionLorentzVector mParton2;
181 StChargedPionLorentzVector mParton3;
182 StChargedPionLorentzVector mParton4;
188 StChargedPion3Vector mMcVertex;
189 vector<StChargedPionMcTrack> mMcTracks;
190 vector<StChargedPionJet> mMcJets;
192 vector<StChargedPionTrackPair> mMatchedPairs;
193 vector<StChargedPionTrackPair> mMergedPairs;
194 vector<StChargedPionTrackPair> mSplitPairs;
195 vector<StChargedPionTrackPair> mContamPairs;
196 vector<StChargedPionTrackPair> mGhostPairs;
199 vector<StChargedPionPythiaRow> mPythiaRecord;
205 StChargedPionMcEvent::runId()
const {
return mRunId; }
208 StChargedPionMcEvent::eventId()
const {
return mEventId; }
211 StChargedPionMcEvent::bbcTimeBin()
const {
return mBbcTimeBin; }
214 StChargedPionMcEvent::muDstName()
const {
return mMuDstName; }
217 StChargedPionMcEvent::nVertices()
const {
return mVertices->GetEntriesFast(); }
220 StChargedPionMcEvent::vertices() {
return mVertices; }
222 inline const TClonesArray*
223 StChargedPionMcEvent::vertices()
const {
return mVertices; }
226 StChargedPionMcEvent::nTracks()
const {
return mTracks->GetEntriesFast(); }
229 StChargedPionMcEvent::tracks() {
return mTracks; }
231 inline const TClonesArray*
232 StChargedPionMcEvent::tracks()
const {
return mTracks; }
235 StChargedPionMcEvent::nJets()
const {
return mJets->GetEntriesFast(); }
238 StChargedPionMcEvent::jets() {
return mJets; }
240 inline const TClonesArray*
241 StChargedPionMcEvent::jets()
const {
return mJets; }
244 StChargedPionMcEvent::processId()
const {
return mProcessId; }
247 StChargedPionMcEvent::hardP()
const {
return mHardP; }
249 inline StChargedPionLorentzVector&
250 StChargedPionMcEvent::isr1() {
return mISR1; }
252 inline StChargedPionLorentzVector&
253 StChargedPionMcEvent::isr2() {
return mISR2; }
255 inline StChargedPionLorentzVector&
256 StChargedPionMcEvent::parton1() {
return mParton1; }
258 inline StChargedPionLorentzVector&
259 StChargedPionMcEvent::parton2() {
return mParton2; }
261 inline StChargedPionLorentzVector&
262 StChargedPionMcEvent::parton3() {
return mParton3; }
264 inline StChargedPionLorentzVector&
265 StChargedPionMcEvent::parton4() {
return mParton4; }
268 StChargedPionMcEvent::flavor(
int i)
const {
return mFlavor[i-1]; }
271 StChargedPionMcEvent::setFlavor(
int i,
short f) { mFlavor[i-1] = f; }
273 inline StChargedPion3Vector&
274 StChargedPionMcEvent::mcVertex() {
return mMcVertex; }
276 inline const StChargedPion3Vector&
277 StChargedPionMcEvent::mcVertex()
const {
return mMcVertex; }
279 inline vector<StChargedPionMcTrack>&
280 StChargedPionMcEvent::mcTracks() {
return mMcTracks; }
282 inline const vector<StChargedPionMcTrack>&
283 StChargedPionMcEvent::mcTracks()
const {
return mMcTracks; }
285 inline vector<StChargedPionJet>&
286 StChargedPionMcEvent::mcJets() {
return mMcJets; }
288 inline const vector<StChargedPionJet>&
289 StChargedPionMcEvent::mcJets()
const {
return mMcJets; }
291 inline vector<StChargedPionTrackPair>&
292 StChargedPionMcEvent::matchedPairs() {
return mMatchedPairs; }
294 inline const vector<StChargedPionTrackPair>&
295 StChargedPionMcEvent::matchedPairs()
const {
return mMatchedPairs; }
297 inline vector<StChargedPionTrackPair>&
298 StChargedPionMcEvent::mergedPairs() {
return mMergedPairs; }
300 inline const vector<StChargedPionTrackPair>&
301 StChargedPionMcEvent::mergedPairs()
const {
return mMergedPairs; }
303 inline vector<StChargedPionTrackPair>&
304 StChargedPionMcEvent::splitPairs() {
return mSplitPairs; }
306 inline const vector<StChargedPionTrackPair>&
307 StChargedPionMcEvent::splitPairs()
const {
return mSplitPairs; }
309 inline vector<StChargedPionTrackPair>&
310 StChargedPionMcEvent::contamPairs() {
return mContamPairs; }
312 inline const vector<StChargedPionTrackPair>&
313 StChargedPionMcEvent::contamPairs()
const {
return mContamPairs; }
315 inline vector<StChargedPionTrackPair>&
316 StChargedPionMcEvent::ghostPairs() {
return mGhostPairs; }
318 inline const vector<StChargedPionTrackPair>&
319 StChargedPionMcEvent::ghostPairs()
const {
return mGhostPairs; }
321 inline vector<StChargedPionPythiaRow>&
322 StChargedPionMcEvent::pythiaRecord() {
return mPythiaRecord; }
324 inline const vector<StChargedPionPythiaRow>&
325 StChargedPionMcEvent::pythiaRecord()
const {
return mPythiaRecord; }
328 StChargedPionMcEvent::setRunId(
unsigned int a) { mRunId = a; }
331 StChargedPionMcEvent::setEventId(
unsigned int a) { mEventId = a; }
334 StChargedPionMcEvent::setBbcTimeBin(
unsigned short a) { mBbcTimeBin = a; }
337 StChargedPionMcEvent::setMuDstName(
const char* a) { mMuDstName = a; }
340 StChargedPionMcEvent::setProcessId(
int i) { mProcessId = i; }
343 StChargedPionMcEvent::setX1(
float a) { mX1 = a; }
346 StChargedPionMcEvent::setHardP(
float a) { mHardP = a; }
349 StChargedPionMcEvent::addHighTower(
short towerId,
int ADC) {
350 mHighTowers[towerId] = ADC;
354 StChargedPionMcEvent::addTriggerPatch(
short patchId,
int ADC) {
355 mTriggerPatches[patchId] = ADC;
359 StChargedPionMcEvent::addJetPatch(
short patchId,
int ADC) {
360 mJetPatches[patchId] = ADC;
double pt() const
doesn't quite match hard_p in the case of b quark stuff
double Q2_alternative() const
eqn 83, Chapter 7 of PYTHIA 6.400 manual
double Q2() const
this one neglects outgoing parton masses, and matches g2t_pythia->hard_p**2
double u() const
this version neglects outgoing parton masses, and matches g2t_pythia->mand_u
double t() const
this version neglects outgoing parton masses, and matches g2t_pythia->mand_t