ClassImp(AliL3ITStrack)
//____________________________________________________________________________
-AliL3ITStrack::AliL3ITStrack():AliITStrackV2(),
- fESDHLTtrack(0)
+AliL3ITStrack::AliL3ITStrack()
+ :AliITStrackV2(),fESDHLTtrack(0)
{
//------------------------------------------------------------------
//Constructor
}
//____________________________________________________________________________
-AliL3ITStrack::AliL3ITStrack(const AliL3ITStrack& t) : AliITStrackV2(t) {
+AliL3ITStrack::AliL3ITStrack(const AliL3ITStrack& t)
+ : AliITStrackV2(t), fESDHLTtrack(0)
+{
//------------------------------------------------------------------
//Copy constructor
//------------------------------------------------------------------
}
//____________________________________________________________________________
-AliL3ITStrack::AliL3ITStrack(AliESDHLTtrack& t, Double_t zvertex) throw (const Char_t *) {
+AliL3ITStrack::AliL3ITStrack(AliESDHLTtrack& t, Double_t zvertex) throw (const Char_t *)
+ : AliITStrackV2(), fESDHLTtrack(0)
+{
+ // The method constructs an AliL3ITStrack object from an ESD HLT track
+
+ fESDHLTtrack=&t;
+ Set(t,zvertex);
+}
+
+//____________________________________________________________________________
+AliL3ITStrack::AliL3ITStrack(const AliESDHLTtrack& t, Double_t zvertex) throw (const Char_t *)
+ : AliITStrackV2(), fESDHLTtrack(0)
+{
+ // The method constructs an AliL3ITStrack object from an ESD HLT track
+ Set(t,zvertex);
+}
+
+//____________________________________________________________________________
+void AliL3ITStrack::Set(const AliESDHLTtrack& t, Double_t zvertex) throw (const Char_t *) {
// The method constructs an AliL3ITStrack object from an ESD HLT track
SetChi2(0.);
fC30=0; fC31=0; fC32=0;
fC40=0; fC41=0; fC42=0; fC43=0;
- fESDHLTtrack=&t;
fESDtrack=0;
SetFakeRatio(0.);
-
}
//_____________________________________________________________________________
else if (c<co) return -1;
return 0;
}
+
+Bool_t AliL3ITStrack::GetPxPyPzAt(Double_t x,Double_t *p) const {
+ //---------------------------------------------------------------------
+ // This function returns the global track momentum components
+ // at the position "x" using the helix track approximation
+ //---------------------------------------------------------------------
+ p[0]=fP4;
+ p[1]=fP2+(x-fX)*fP4/AliKalmanTrack::GetConvConst();
+ p[2]=fP3;
+
+ if (TMath::Abs(p[0])<=0) return kFALSE;
+ if (TMath::Abs(p[1])> 0.999999) return kFALSE;
+
+ Double_t pt=1./TMath::Abs(p[0]);
+ Double_t cs=TMath::Cos(fAlpha), sn=TMath::Sin(fAlpha);
+ Double_t r=TMath::Sqrt(1 - p[1]*p[1]);
+ p[0]=pt*(r*cs - p[1]*sn); p[1]=pt*(p[1]*cs + r*sn); p[2]=pt*p[2];
+
+ return kTRUE;
+}
class AliL3ITStrack : public AliITStrackV2 {
public:
AliL3ITStrack();
- AliL3ITStrack(AliESDHLTtrack& t, Double_t zvertex) throw (const Char_t *);
AliL3ITStrack(const AliL3ITStrack& t);
+ AliL3ITStrack(AliESDHLTtrack& t, Double_t zvertex) throw (const Char_t *);
+ AliL3ITStrack(const AliESDHLTtrack& t, Double_t zvertex) throw (const Char_t *);
Int_t Compare(const TObject *o) const;
// Set and get the pointer to the HLT ESD track
AliESDHLTtrack *GetESDHLTtrack() const {return fESDHLTtrack; }
void SetESDHLTtrack(AliESDHLTtrack *esdhlttrack) { fESDHLTtrack = esdhlttrack; }
+ Bool_t GetPxPyPzAt(Double_t x,Double_t *p) const;
protected:
+ void Set(const AliESDHLTtrack& t, Double_t zvertex) throw (const Char_t *);
+
AliESDHLTtrack *fESDHLTtrack; //! pointer to the connected ESD HLT track
ClassDef(AliL3ITStrack,1) //HLT ITS reconstructed track