StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StPeCPair.h
1 //
3 // $Id: StPeCPair.h,v 1.12 2014/12/23 20:43:18 ramdebbe Exp $
4 // $Log: StPeCPair.h,v $
5 // Revision 1.12 2014/12/23 20:43:18 ramdebbe
6 // copied the fill functionality of method with both inputs to the one with MuDst input. This gives TOF extrapolation in the pPairs branch
7 //
8 // Revision 1.11 2013/12/27 16:52:31 ramdebbe
9 // added a input argument StBTofGeometry to fill method (StMuDst + StEvent) and x y z coordinates of intercept to TOF cylinder
10 //
11 // Revision 1.10 2012/07/03 19:37:40 ramdebbe
12 // raised ClassDef from 1 to 2
13 //
14 // Revision 1.9 2012/06/13 15:34:36 ramdebbe
15 // added tof information to both tracks
16 //
17 // Revision 1.8 2004/01/26 23:01:11 perev
18 // WarnOff
19 //
20 // Revision 1.7 2003/11/25 01:54:34 meissner
21 // correct several bugs: eta cut for tracks, charge sorting, add counting of FTPC and TPC primary tracks, Add bbc information
22 //
23 // Revision 1.6 2003/02/05 17:14:06 yepes
24 // Adding bField and pPairs.psi to tree
25 //
26 // Revision 1.5 2002/12/16 23:04:02 yepes
27 // Field comes in KGauss and should be passed to routines in Teslas
28 // problem pointed out by Vladimir
29 //
30 // Revision 1.4 2001/02/21 20:42:14 yepes
31 // Add ctb signals to tree
32 //
33 // Revision 1.3 2001/02/12 21:16:01 yepes
34 // New version of StPeCMaker, lots of changes
35 //
36 // Revision 1.1 2000/04/21 19:12:25 nystrand
37 // First Version
38 //
39 // Revision 1.1 2000/03/24 22:36:56 nystrand
40 // First version of StPeCPair
41 //
42 // Revision 1.0 2000/01/20 23:28:51 nystrand
43 // First Version of StPeCPair
44 //
46 //
47 // StPeCPair
48 //
49 // Pair class for Peripheral Collisions
50 //
52 #ifndef StPeCPair_h
53 #define StPeCPair_h
54 #include "Rtypes.h"
55 #include "TObject.h"
56 #include "TClonesArray.h"
57 #include "StPeCEnumerations.h"
58 #ifndef __CINT__
59 #include "PhysicalConstants.h"
60 #include "StEventTypes.h"
61 #include "StEvent.h"
62 #endif /* __CINT__ */
63 #include "SystemOfUnits.h"
64 #include "StPeCSpec.h"
65 #include "StPeCTrack.h"
66 #include "StMuDSTMaker/COMMON/StMuEvent.h"
67 #include "StMuDSTMaker/COMMON/StMuTrack.h"
68 #include "StEmcUtil/geometry/StEmcGeom.h"
69 #include "StEmcUtil/projection/StEmcPosition.h"
70 #include "StEmcUtil/filters/StEmcFilter.h"
71 #include "StBTofUtil/StBTofGeometry.h"
72 
73 
74 
75 typedef vector<Int_t> IntVec;
76 typedef vector<UInt_t> UIntVec;
77 typedef vector<Double_t> DoubleVec;
78 typedef vector<StThreeVector<double> > PointVec;
79 
80 class StPeCPair : public TObject {
81 
82 public:
83 
84  StPeCPair();
85  virtual ~StPeCPair();
86  void Clear(const char* opt=0);
87 
88  void calculatePair4Momentum( ) ;
89 #ifndef __CINT__
90  StPeCPair ( StMuTrack *trk1, StMuTrack *trk2,
91  Bool_t primaryFlag, StMuEvent* event, StBTofGeometry * pairTOFgeo );
92 
93  StPeCPair ( StTrack *trk1, StTrack *trk2,
94  Bool_t primaryFlag, StEvent* event );
95 
96  StPeCPair ( StMuTrack *trk1, StMuTrack *trk2,
97  Bool_t primaryFlag, StMuEvent* event, StEvent* eventP, StBTofGeometry * pairTOFgeo );
98 
99  Int_t fill ( Bool_t primaryFlag, StEvent* event ) ;
100  Int_t fill ( Bool_t primaryFlag, StMuEvent* event ) ;
101  Int_t fill ( Bool_t primaryFlag, StMuEvent* event, StEvent* eventP ) ;
102 
103 
104  Int_t fill ( Bool_t primaryFlag, StEventSummary* summary,
105  StThreeVectorF& p1, StPhysicalHelixD& h1, short charge1,
106  StThreeVectorF& p2, StPhysicalHelixD& h2, short charge2,
107  StThreeVectorF& primaryVertexPosition ) ;
108 
109  void setTrack1(StTrack* trk);
110  void setTrack2(StTrack* trk);
111 
112  void setTrack1(StMuTrack* trk);
113  void setTrack2(StMuTrack* trk);
114 
115  StTrack* getTrack1();
116  StTrack* getTrack2();
117 
118  StMuTrack* getMuTrack1();
119  StMuTrack* getMuTrack2();
120 
121  StLorentzVectorF getPair4Momentum(StPeCSpecies pid) const;
122 #endif /*__CINT__*/
123  Int_t getSumCharge() const;
124  Float_t getSumPt() const;
125  Float_t getSumPz() const;
126  Float_t getMInv(StPeCSpecies pid) const;
127  Float_t getOpeningAngle() const;
128  Float_t getCosThetaStar(StPeCSpecies pid) const;
129  Float_t getPartDca ( ) { return pPartDca ; } ;
130  Float_t getV0Dca ( ) { return pV0Dca ; } ;
131 
132 
133 
134 private:
135 
136  Int_t pCharge ;
137  Float_t pPt ;
138  Float_t pPz ;
139  Float_t pPsi ;
140  Float_t pAngle ;
141  Float_t pXyAngle ;
142  Float_t pPtArm ; // Armenteros pt: pt positive along pair momentum
143  Float_t pAlpha ; // Armerteros alpha:
144  // (pl_pos-pl_neg)/(pl_pos+pl_neg)
145  // pl_pos(neg) : momentum along pair momentum for positive
146  // (negative) charge
147  Float_t pPartDca ; // Distance closest approach between particles
148  Float_t pV0Dca ; // Distance closest pair and vertex
149  Float_t rV0 ;
150  Float_t phiV0 ;
151  Float_t zV0 ;
152 
153  StPeCTrack tr1 ;
154  Int_t tr1_bemcModule;
155  Int_t tr1_bemcEtabin;
156  Float_t tr1_bemcEtaValue;
157  Float_t tr1_bemcPhiValue;
158  Int_t tr1_bemcSub;
159  Float_t tr1_bemcEnergy;
160  StPeCTrack tr2 ;
161  Int_t tr2_bemcModule;
162  Int_t tr2_bemcEtabin;
163  Float_t tr2_bemcEtaValue;
164  Float_t tr2_bemcPhiValue;
165  Int_t tr2_bemcSub;
166  Float_t tr2_bemcEnergy;
167 
168  Int_t tr1_bsmdeModule;
169  Int_t tr1_bsmdeEtabin;
170  Float_t tr1_bsmdeEtaValue;
171  Float_t tr1_bsmdePhiValue;
172  Int_t tr1_bsmdeSub;
173  Float_t tr1_bsmdeEnergy;
174 
175  Int_t tr2_bsmdeModule;
176  Int_t tr2_bsmdeEtabin;
177  Float_t tr2_bsmdeEtaValue;
178  Float_t tr2_bsmdePhiValue;
179  Int_t tr2_bsmdeSub;
180  Float_t tr2_bsmdeEnergy;
181 
182  float tr1_timeOfFlight;
183  float tr1_pathLength;
184  float tr1_Beta;
185  float tr2_timeOfFlight;
186  float tr2_pathLength;
187  float tr2_Beta;
188 
189  float tr1_extrapolatedTOF_mX;
190  float tr1_extrapolatedTOF_mY;
191  float tr1_extrapolatedTOF_mZ;
192 
193  float tr2_extrapolatedTOF_mX;
194  float tr2_extrapolatedTOF_mY;
195  float tr2_extrapolatedTOF_mZ;
196 
197  StBTofGeometry * pairTOFgeoLocal;
198 
199  StPeCSpec pionH;
200  StPeCSpec kaonH;
201  StPeCSpec protonH;
202  StPeCSpec electronH;
203  StPeCSpec muonH;
204 
205 #ifndef __CINT__
206  StTrack* track1;
207  StTrack* track2;
208  StMuTrack* muTrack1;
209  StMuTrack* muTrack2;
210  StEmcGeom * mGeom0;
211  StEmcGeom * mGeom2;
212  StEmcGeom * mGeom3;
213 
214 
215 
216  Double_t bFld;
217 #endif /*__CINT__*/
218 
219  ClassDef(StPeCPair,2)
220 };
221 
222 #endif
223 
224 
225 
226 
227