1 ///////////////////////////////////////////////////////////////////////////
3 // AliFemtoKink: main class holding all the necessary information //
4 // about a kink (before the identification) that is required during //
5 // femtoscopic analysis. This class is filled with information from the //
6 // input stream by the reader. A particle has a link back to the Kink //
7 // it was created from, so we do not copy the information. //
9 ///////////////////////////////////////////////////////////////////////////
10 /***********************************************************************
14 * Author: Mike Lisa, Ohio State, 23May2001
16 ***********************************************************************
18 * Description: Kink class with information gotten from the StKinkVertex
19 * of Wenshen Deng and Spiros Margetis
21 ***********************************************************************
24 * Revision 1.4 2007/05/03 09:42:29 akisiel
25 * Fixing Effective C++ warnings
27 * Revision 1.3 2007/04/27 07:24:34 akisiel
28 * Make revisions needed for compilation from the main AliRoot tree
30 * Revision 1.1.1.1 2007/04/25 15:38:41 panos
31 * Importing the HBT code dir
33 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
34 * First version on CVS
36 * Revision 1.4 2001/11/14 21:07:21 lisa
37 * Fixed several small things (mostly discarded const) that caused fatal errors with gcc2.95.3
39 * Revision 1.3 2001/09/05 21:55:23 laue
42 * Revision 1.2 2001/06/21 19:15:46 laue
44 * CTH.h : new constructor added
45 * AliFemtoEvent, AliFemtoKink, AliFemtoTrack : constructors from the persistent
46 * (TTree) classes added
47 * AliFemtoLikeSignAnalysis : minor changes, for debugging
48 * AliFemtoTypes: split into different files
49 * Added files: for the new TTree muDst's
50 * StExceptions.cxx StExceptions.h AliFemtoEnumeration.h
51 * AliFemtoHelix.h AliFemtoHisto.h AliFemtoString.h AliFemtoTFile.h
52 * AliFemtoTTreeEvent.cxx AliFemtoTTreeEvent.h AliFemtoTTreeKink.cxx
53 * AliFemtoTTreeKink.h AliFemtoTTreeTrack.cxx AliFemtoTTreeTrack.h
54 * AliFemtoTTreeV0.cxx AliFemtoTTreeV0.h AliFemtoVector.h
56 * Revision 1.1 2001/05/25 23:23:59 lisa
57 * Added in AliFemtoKink stuff
61 ***********************************************************************/
63 #include "AliFemtoKink.h"
64 #include "phys_constants.h"
65 #include "AliFemtoTrack.h"
66 // -----------------------------------------------------------------------
67 AliFemtoKink::AliFemtoKink():
68 fDcaParentDaughter(0), fDcaDaughterPrimaryVertex(0),
69 fDcaParentPrimaryVertex(0), fHitDistanceParentDaughter(0),
70 fHitDistanceParentVertex(0),
71 fDecayAngle(0), fDecayAngleCM(0),
76 for (int id=0; id<3; id++) fDeltaEnergy[id] = 0.0;
78 // -----------------------------------------------------------------------
79 AliFemtoKink::AliFemtoKink(const AliFemtoKink& k):
80 fDcaParentDaughter(0), fDcaDaughterPrimaryVertex(0),
81 fDcaParentPrimaryVertex(0), fHitDistanceParentDaughter(0),
82 fHitDistanceParentVertex(0),
83 fDecayAngle(0), fDecayAngleCM(0),
89 fDcaParentDaughter = k.fDcaParentDaughter;
90 fDcaDaughterPrimaryVertex = k.fDcaDaughterPrimaryVertex;
91 fDcaParentPrimaryVertex = k.fDcaParentPrimaryVertex;
92 fHitDistanceParentDaughter = k.fHitDistanceParentDaughter;
93 fHitDistanceParentVertex = k.fHitDistanceParentVertex;
94 fDeltaEnergy[0] = k.fDeltaEnergy[0];
95 fDeltaEnergy[1] = k.fDeltaEnergy[1];
96 fDeltaEnergy[2] = k.fDeltaEnergy[2];
97 fDecayAngle = k.fDecayAngle;
98 fDecayAngleCM = k.fDecayAngleCM;
99 fDaughter = k.fDaughter;
101 fPosition = k.fPosition;
104 // -----------------------------------------------------------------------
105 AliFemtoKink& AliFemtoKink::operator=( const AliFemtoKink& k)
108 fDcaParentDaughter = k.fDcaParentDaughter;
109 fDcaDaughterPrimaryVertex = k.fDcaDaughterPrimaryVertex;
110 fDcaParentPrimaryVertex = k.fDcaParentPrimaryVertex;
111 fHitDistanceParentDaughter = k.fHitDistanceParentDaughter;
112 fHitDistanceParentVertex = k.fHitDistanceParentVertex;
113 fDeltaEnergy[0] = k.fDeltaEnergy[0];
114 fDeltaEnergy[1] = k.fDeltaEnergy[1];
115 fDeltaEnergy[2] = k.fDeltaEnergy[2];
116 fDecayAngle = k.fDecayAngle;
117 fDecayAngleCM = k.fDecayAngleCM;
118 fDaughter = k.fDaughter;
120 fPosition = k.fPosition;
127 //--------------------- below here is ONLY star ----------------
128 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
130 #include "StEvent/StTrack.h"
131 #include "StEvent/StKinkVertex.h"
132 AliFemtoKink::AliFemtoKink( const StKinkVertex& SKV, AliFemtoThreeVector PrimaryVertex )
135 fDcaParentDaughter = SKV.dcaParentDaughter();
136 fDcaDaughterPrimaryVertex = SKV.dcaDaughterPrimaryVertex();
137 fDcaParentPrimaryVertex = SKV.dcaParentPrimaryVertex();
138 fHitDistanceParentDaughter = SKV.hitDistanceParentDaughter();
139 fHitDistanceParentVertex = SKV.hitDistanceParentVertex();
140 fDeltaEnergy[0] = SKV.dE(0);
141 fDeltaEnergy[1] = SKV.dE(1);
142 fDeltaEnergy[2] = SKV.dE(2);
143 fDecayAngle = SKV.decayAngle();
144 fDecayAngleCM = SKV.decayAngleCM();
146 // now fill member AliFemtoTrack data...
147 const StTrack* StTrk;
148 AliFemtoTrack* HbtTrk;
150 StTrk = SKV.daughter(0);
151 HbtTrk = new AliFemtoTrack(StTrk,PrimaryVertex); // generate NEW HbtTrack from StTrack
152 fDaughter = *HbtTrk; // invoke copy ctr of AliFemtoTrack
153 delete HbtTrk; // get rid of the NEW HbtTrack - we are done with that
155 StTrk = SKV.parent();
156 HbtTrk = new AliFemtoTrack(StTrk,PrimaryVertex); // generate NEW HbtTrack from StTrack
157 fParent = *HbtTrk; // invoke copy ctr of AliFemtoTrack
158 delete HbtTrk; // get rid of the NEW HbtTrack - we are done with that
160 // finally, the kink position
161 fPosition.setX(SKV.position().x());
162 fPosition.setY(SKV.position().y());
163 fPosition.setZ(SKV.position().z());
167 // mike removed all AliFemtoTTree stuff 21apr2006
170 #endif // __NO_STAR_DEPENDENCE_ALLOWED__