7c87a57e15c07c8e9dfb6b32d1c132543303c5d7
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoKink.cxx
1 /***********************************************************************
2  *
3  * $Id$
4  *
5  * Author: Mike Lisa, Ohio State, 23May2001
6  *
7  ***********************************************************************
8  *
9  * Description: Kink class with information gotten from the StKinkVertex
10  *              of Wenshen Deng and Spiros Margetis
11  *
12  ***********************************************************************
13  *
14  * $Log$
15  * Revision 1.4  2007/05/03 09:42:29  akisiel
16  * Fixing Effective C++ warnings
17  *
18  * Revision 1.3  2007/04/27 07:24:34  akisiel
19  * Make revisions needed for compilation from the main AliRoot tree
20  *
21  * Revision 1.1.1.1  2007/04/25 15:38:41  panos
22  * Importing the HBT code dir
23  *
24  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
25  * First version on CVS
26  *
27  * Revision 1.4  2001/11/14 21:07:21  lisa
28  * Fixed several small things (mostly discarded const) that caused fatal errors with gcc2.95.3
29  *
30  * Revision 1.3  2001/09/05 21:55:23  laue
31  * typo fixed
32  *
33  * Revision 1.2  2001/06/21 19:15:46  laue
34  * Modified fiels:
35  *   CTH.h : new constructor added
36  *   AliFemtoEvent, AliFemtoKink, AliFemtoTrack : constructors from the persistent
37  *                                   (TTree) classes added
38  *   AliFemtoLikeSignAnalysis : minor changes, for debugging
39  *   AliFemtoTypes: split into different files
40  * Added files: for the new TTree muDst's
41  *   StExceptions.cxx StExceptions.h AliFemtoEnumeration.h
42  *   AliFemtoHelix.h AliFemtoHisto.h AliFemtoString.h AliFemtoTFile.h
43  *   AliFemtoTTreeEvent.cxx AliFemtoTTreeEvent.h AliFemtoTTreeKink.cxx
44  *   AliFemtoTTreeKink.h AliFemtoTTreeTrack.cxx AliFemtoTTreeTrack.h
45  *   AliFemtoTTreeV0.cxx AliFemtoTTreeV0.h AliFemtoVector.h
46  *
47  * Revision 1.1  2001/05/25 23:23:59  lisa
48  * Added in AliFemtoKink stuff
49  *
50  * 
51  *
52  ***********************************************************************/
53
54 #include "AliFemtoKink.h"
55 #include "phys_constants.h"
56 #include "AliFemtoTrack.h"
57 // -----------------------------------------------------------------------
58 AliFemtoKink::AliFemtoKink():
59   fDcaParentDaughter(0), fDcaDaughterPrimaryVertex(0), 
60   fDcaParentPrimaryVertex(0), fHitDistanceParentDaughter(0),  
61   fHitDistanceParentVertex(0),
62   fDecayAngle(0), fDecayAngleCM(0),             
63   fDaughter(),            
64   mParent(),               
65   mPosition(0,0,0)        
66 {/* no-op */}
67 // -----------------------------------------------------------------------
68 AliFemtoKink::AliFemtoKink(const AliFemtoKink& k):
69   fDcaParentDaughter(0), fDcaDaughterPrimaryVertex(0), 
70   fDcaParentPrimaryVertex(0), fHitDistanceParentDaughter(0),  
71   fHitDistanceParentVertex(0),
72   fDecayAngle(0), fDecayAngleCM(0),             
73   fDaughter(),            
74   mParent(),               
75   mPosition(0,0,0)        
76 { // copy constructor
77
78   fDcaParentDaughter          =   k.fDcaParentDaughter;           
79   fDcaDaughterPrimaryVertex   =   k.fDcaDaughterPrimaryVertex;    
80   fDcaParentPrimaryVertex     =   k.fDcaParentPrimaryVertex;      
81   fHitDistanceParentDaughter  =   k.fHitDistanceParentDaughter;   
82   fHitDistanceParentVertex    =   k.fHitDistanceParentVertex;     
83   fDeltaEnergy[0]             =   k.fDeltaEnergy[0];              
84   fDeltaEnergy[1]             =   k.fDeltaEnergy[1];              
85   fDeltaEnergy[2]             =   k.fDeltaEnergy[2];              
86   fDecayAngle                 =   k.fDecayAngle;                  
87   fDecayAngleCM               =   k.fDecayAngleCM;                
88   fDaughter                   =   k.fDaughter;                    
89   mParent                     =   k.mParent;                      
90   mPosition                   =   k.mPosition;                
91
92 }
93 // -----------------------------------------------------------------------
94
95
96 //--------------------- below here is ONLY star ----------------
97 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
98 #ifdef __ROOT__
99 #include "StEvent/StTrack.h"
100 #include "StEvent/StKinkVertex.h"
101 AliFemtoKink::AliFemtoKink( const StKinkVertex& SKV, AliFemtoThreeVector PrimaryVertex )
102
103
104   fDcaParentDaughter          = SKV.dcaParentDaughter();
105   fDcaDaughterPrimaryVertex   = SKV.dcaDaughterPrimaryVertex();
106   fDcaParentPrimaryVertex     = SKV.dcaParentPrimaryVertex();
107   fHitDistanceParentDaughter  = SKV.hitDistanceParentDaughter();
108   fHitDistanceParentVertex    = SKV.hitDistanceParentVertex();
109   fDeltaEnergy[0]             = SKV.dE(0);
110   fDeltaEnergy[1]             = SKV.dE(1);
111   fDeltaEnergy[2]             = SKV.dE(2);
112   fDecayAngle                 = SKV.decayAngle();
113   fDecayAngleCM               = SKV.decayAngleCM();
114
115   // now fill member AliFemtoTrack data...
116   const StTrack* StTrk;
117   AliFemtoTrack* HbtTrk;
118   // Daughter
119   StTrk = SKV.daughter(0);
120   HbtTrk = new AliFemtoTrack(StTrk,PrimaryVertex); // generate NEW HbtTrack from StTrack
121   fDaughter = *HbtTrk;                         // invoke copy ctr of AliFemtoTrack
122   delete HbtTrk;                               // get rid of the NEW HbtTrack - we are done with that
123   // Parent
124   StTrk = SKV.parent();
125   HbtTrk = new AliFemtoTrack(StTrk,PrimaryVertex); // generate NEW HbtTrack from StTrack
126   mParent = *HbtTrk;                           // invoke copy ctr of AliFemtoTrack
127   delete HbtTrk;                               // get rid of the NEW HbtTrack - we are done with that
128
129   // finally, the kink position
130   mPosition.setX(SKV.position().x());
131   mPosition.setY(SKV.position().y());
132   mPosition.setZ(SKV.position().z());
133
134 }
135
136 // mike removed all AliFemtoTTree stuff 21apr2006
137
138 #endif // __ROOT__
139 #endif  // __NO_STAR_DEPENDENCE_ALLOWED__