* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.3 2000/06/25 13:06:39 hristov
-Inline functions moved from *.cxx to *.h files instead of forward declarations
+/* $Id$ */
-Revision 1.2 2000/06/15 07:58:48 morsch
-Code from MUON-dev joined
-
-Revision 1.1.2.4 2000/06/12 10:10:21 morsch
-Dummy copy constructor and assignment operator added
-
-Revision 1.1.2.3 2000/06/09 21:01:16 morsch
-Make includes consistent with new file structure.
-
-Revision 1.1.2.2 2000/06/09 12:58:05 gosset
-Removed comment beginnings in Log sections of .cxx files
-Suppressed most violations of coding rules
-
-Revision 1.1.2.1 2000/06/07 14:44:53 gosset
-Addition of files for track reconstruction in C++
-*/
-
-//__________________________________________________________________________
+///////////////////////////////////////////////////////////
//
-// Segment for reconstruction in ALICE dimuon spectrometer:
+// Segment for reconstruction
+// in
+// ALICE
+// dimuon
+// spectrometer:
// two hits for reconstruction in the two chambers of one station
-//__________________________________________________________________________
-
-#include "AliMUONSegment.h"
+//
+///////////////////////////////////////////////////////////
#include "AliMUON.h"
+#include "AliMUONChamber.h"
#include "AliMUONHitForRec.h"
+#include "AliMUONSegment.h"
#include "AliMUONTrackParam.h"
-#include "AliMUONChamber.h"
-#include "AliRun.h"
+#include "AliRun.h" // for gAlice
ClassImp(AliMUONSegment) // Class implementation in ROOT context
+ //__________________________________________________________________________
+AliMUONSegment::AliMUONSegment()
+{
+ // Default constructor
+ fHitForRecPtr1 = 0; // pointer to HitForRec in first chamber
+ fHitForRecPtr2 = 0; // pointer to HitForRec in second chamber
+ // Bending plane:
+ fBendingCoor = 0.0; // Coordinate in bending plane
+ fBendingSlope = 0.0; // Slope in bending plane
+ // Covariance in bending plane:
+ fBendingCoorReso2 = 0.0; // Covariance(coordinate C1 in first chamber)
+ fBendingSlopeReso2 = 0.0; // Covariance(slope)
+ fBendingCoorSlopeReso2 = 0.0; // Covariance(C1,slope)
+ fBendingImpact = 0.0; // Impact parameter in bending plane
+ // Non Bending plane:
+ fNonBendingCoor = 0.0; // Coordinate in non bending plane
+ fNonBendingSlope = 0.0; // Slope in non bending plane
+ // Covariance in non bending plane:
+ fNonBendingCoorReso2 = 0.0; // Covariance(coordinate C1 in first chamber)
+ fNonBendingSlopeReso2 = 0.0; // Covariance(slope)
+ fNonBendingCoorSlopeReso2 = 0.0; // Covariance(C1,slope)
+ fNonBendingImpact = 0.0; // Impact parameter in non bending plane
+ fInTrack = kFALSE; // TRUE if segment belongs to one track
+}
+
//__________________________________________________________________________
AliMUONSegment::AliMUONSegment(AliMUONHitForRec* Hit1, AliMUONHitForRec* Hit2)
{
}
//__________________________________________________________________________
-Int_t AliMUONSegment::Compare(TObject* Segment)
+Int_t AliMUONSegment::Compare(const TObject* Segment) const
{
// "Compare" function to sort with increasing absolute value
// of the "impact parameter" in bending plane.
// Returns -1 (0, +1) if |impact parameter| of current Segment
// is smaller than (equal to, larger than) |impact parameter| of Segment
- if (TMath::Abs(((AliMUONSegment*)this)->fBendingSlope)
- < TMath::Abs(((AliMUONSegment*)Segment)->fBendingSlope))
+ if (TMath::Abs(((AliMUONSegment*)this)->fBendingImpact)
+ < TMath::Abs(((AliMUONSegment*)Segment)->fBendingImpact))
return(-1);
// continuous parameter, hence no need for testing equal case
else return(+1);
// The "road" is parametrized from the old reco_muon.F
// with 8 cm between stations.
AliMUONTrackParam *param0;
- Double_t cReso2, sReso2;
+// Double_t cReso2, sReso2;
// parameters to define the widths of the searching roads in station 0,1,2
// width = p0 + p1/ (momentum)^2
// station number: 0 1 2
- static Double_t p0BendingCoor[3] = { 6.43e-2, 1.64e-2, 0.034 };
- static Double_t p1BendingCoor[3] = { 986., 821., 446. };
- static Double_t p0BendingSlope[3] = { 3.54e-6, 3.63e-6, 3.6e-6 };
- static Double_t p1BendingSlope[3] = { 4.49e-3, 4.8e-3, 0.011 };
- static Double_t p0NonBendingCoor[3] = { 4.66e-2, 4.83e-2, 0.049 };
- static Double_t p1NonBendingCoor[3] = { 1444., 866., 354. };
- static Double_t p0NonBendingSlope[3] = { 6.14e-4, 6.49e-4, 6.85e-4 };
- static Double_t p1NonBendingSlope[3] = { 0., 0., 0. };
+// static Double_t p0BendingCoor[3] = { 6.43e-2, 1.64e-2, 0.034 };
+// static Double_t p1BendingCoor[3] = { 986., 821., 446. };
+// static Double_t p0BendingSlope[3] = { 3.54e-6, 3.63e-6, 3.6e-6 };
+// static Double_t p1BendingSlope[3] = { 4.49e-3, 4.8e-3, 0.011 };
+// static Double_t p0NonBendingCoor[3] = { 4.66e-2, 4.83e-2, 0.049 };
+// static Double_t p1NonBendingCoor[3] = { 1444., 866., 354. };
+// static Double_t p0NonBendingSlope[3] = { 6.14e-4, 6.49e-4, 6.85e-4 };
+// static Double_t p1NonBendingSlope[3] = { 0., 0., 0. };
+
+ static Double_t p0BendingCoor[3] = { 6.43e-2, 6.43e-2, 6.43e-2 };
+ static Double_t p1BendingCoor[3] = { 986., 986., 986. };
+ static Double_t p0BendingSlope[3] = { 3.6e-6, 3.6e-6, 3.6e-6 };
+ static Double_t p1BendingSlope[3] = { 1.1e-2, 1.1e-2, 1.1e-2 };
+ static Double_t p0NonBendingCoor[3] = { 0.049, 0.049, 0.049 };
+ static Double_t p1NonBendingCoor[3] = { 1444., 1444., 1444. };
+ static Double_t p0NonBendingSlope[3] = { 6.8e-4, 6.8e-4, 6.8e-4 };
+ static Double_t p1NonBendingSlope[3] = { 0., 0., 0. };
param0 = &(TrackParam[0]);
// OLD version
// because they are added in the functions "NormalizedChi2WithSegment"
// and "NormalizedChi2WithHitForRec"
// Bending plane
- cReso2 = fBendingCoorReso2;
- sReso2 = (2. * cReso2 )/ (Dz3*Dz3) ;
- fBendingCoorReso2 = p0BendingCoor[Station] + p1BendingCoor[Station]*InverseMomentum*InverseMomentum - cReso2;
- fBendingSlopeReso2 = p0BendingSlope[Station] + p1BendingSlope[Station]*InverseMomentum*InverseMomentum - sReso2;
+// cReso2 = fBendingCoorReso2;
+// sReso2 = (2. * cReso2 )/ (Dz3*Dz3) ;
+ fBendingCoorReso2 = p0BendingCoor[Station] + p1BendingCoor[Station]*InverseMomentum*InverseMomentum ; // - cReso2
+ fBendingSlopeReso2 = p0BendingSlope[Station] + p1BendingSlope[Station]*InverseMomentum*InverseMomentum; // - sReso2;
// Non bending plane
- cReso2 = fNonBendingCoorReso2;
- sReso2 = (2. * cReso2 )/ (Dz3*Dz3) ;
- fNonBendingCoorReso2 = p0NonBendingCoor[Station] + p1NonBendingCoor[Station]*InverseMomentum*InverseMomentum - cReso2;
- fNonBendingSlopeReso2 = p0NonBendingSlope[Station] + p1NonBendingSlope[Station]*InverseMomentum*InverseMomentum - sReso2;
+// cReso2 = fNonBendingCoorReso2;
+// sReso2 = (2. * cReso2 )/ (Dz3*Dz3) ;
+ fNonBendingCoorReso2 = p0NonBendingCoor[Station] + p1NonBendingCoor[Station]*InverseMomentum*InverseMomentum; // - cReso2;
+ fNonBendingSlopeReso2 = p0NonBendingSlope[Station] + p1NonBendingSlope[Station]*InverseMomentum*InverseMomentum; // - sReso2;
return;
}