]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONSegment.cxx
Cleanuo Effc++ warnings (Sasha)
[u/mrichter/AliRoot.git] / MUON / AliMUONSegment.cxx
index 0d250be06314b4c59ff83325183473b5860ae123..fe4710bffa7f19efb8e0d09c93c50218ca509d14 100644 (file)
 //
 ///////////////////////////////////////////////////////////
 
+#include "AliMUONSegment.h" 
 #include "AliMUON.h"
-#include "AliMUONChamber.h" 
 #include "AliMUONHitForRec.h" 
-#include "AliMUONSegment.h" 
 #include "AliMUONTrackParam.h" 
 #include "AliRun.h" // for gAlice
+#include "AliLog.h" 
 
 ClassImp(AliMUONSegment) // Class implementation in ROOT context
 
   //__________________________________________________________________________
 AliMUONSegment::AliMUONSegment()
+  : TObject(),
+    fHitForRecPtr1(0x0),
+    fHitForRecPtr2(0x0),
+    fBendingCoor(0.),
+    fBendingSlope(0.),
+    fBendingCoorReso2(0.),
+    fBendingSlopeReso2(0.),
+    fBendingCoorSlopeReso2(0.),
+    fBendingImpact(0.),
+    fNonBendingCoor(0.),
+    fNonBendingSlope(0.),
+    fNonBendingCoorReso2(0.),
+    fNonBendingSlopeReso2(0.),
+    fNonBendingCoorSlopeReso2(0.),
+    fNonBendingImpact(0.),
+    fZ(0.),
+    fInTrack(kFALSE)
 {
   // 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)
+  : TObject(),
+    fHitForRecPtr1(Hit1),
+    fHitForRecPtr2(Hit2),
+    fBendingCoor(Hit1->GetBendingCoor()),
+    fBendingSlope(0.),
+    fBendingCoorReso2(Hit1->GetBendingReso2()),
+    fBendingSlopeReso2(0.),
+    fBendingCoorSlopeReso2(0.),
+    fBendingImpact(0.),
+    fNonBendingCoor(Hit1->GetNonBendingCoor()),
+    fNonBendingSlope(0.),
+    fNonBendingCoorReso2(Hit1->GetNonBendingReso2()),
+    fNonBendingSlopeReso2(0.),
+    fNonBendingCoorSlopeReso2(0.),
+    fNonBendingImpact(0.),
+    fZ(Hit1->GetZ()),
+    fInTrack(kFALSE)
 {
   // Constructor for AliMUONSegment from two HitForRec's,
   // one, in the first chamber of the station, pointed to by "Hit1",
@@ -72,42 +88,23 @@ AliMUONSegment::AliMUONSegment(AliMUONHitForRec* Hit1, AliMUONHitForRec* Hit2)
   // in bending and non bending planes.
   // Puts the "fInTrack" flag to "kFALSE".
   Double_t dz;
-  // pointers to HitForRec's
-  fHitForRecPtr1 = Hit1;
-  fHitForRecPtr2 = Hit2;
   dz = Hit1->GetZ() - Hit2->GetZ();
+
   // bending plane
-  fBendingCoor = Hit1->GetBendingCoor();
   fBendingSlope = (fBendingCoor - Hit2->GetBendingCoor()) / dz;
   fBendingImpact = fBendingCoor - Hit1->GetZ() * fBendingSlope;
-  fBendingCoorReso2 = Hit1->GetBendingReso2();
   fBendingSlopeReso2 = ( Hit1->GetBendingReso2() +
                         Hit2->GetBendingReso2() ) / dz / dz;
   fBendingCoorSlopeReso2 = Hit1->GetBendingReso2() / dz;
   // non bending plane
-  fNonBendingCoor = Hit1->GetNonBendingCoor();
   fNonBendingSlope = (fNonBendingCoor - Hit2->GetNonBendingCoor()) / dz;
   fNonBendingImpact = fNonBendingCoor - Hit1->GetZ() * fNonBendingSlope;
-  fNonBendingCoorReso2 = Hit1->GetNonBendingReso2();
   fNonBendingSlopeReso2 = ( Hit1->GetNonBendingReso2() +
                            Hit2->GetNonBendingReso2() ) / dz / dz;
   fNonBendingCoorSlopeReso2 = Hit1->GetNonBendingReso2() / dz;
-  // "fInTrack" flag to "kFALSE"
-  fInTrack = kFALSE;
   return;
 }
 
-AliMUONSegment::AliMUONSegment (const AliMUONSegment& MUONSegment)
-{
-// Dummy copy constructor
-}
-
-AliMUONSegment & AliMUONSegment::operator=(const AliMUONSegment& MUONSegment)
-{
-// Dummy assignment operator
-    return *this;
-}
-
   //__________________________________________________________________________
 Int_t AliMUONSegment::Compare(const TObject* Segment) const
 {
@@ -123,7 +120,7 @@ Int_t AliMUONSegment::Compare(const TObject* Segment) const
 }
 
   //__________________________________________________________________________
-Double_t AliMUONSegment::NormalizedChi2WithSegment(AliMUONSegment* Segment, Double_t Sigma2Cut)
+Double_t AliMUONSegment::NormalizedChi2WithSegment(AliMUONSegment* Segment, Double_t Sigma2Cut) const
 {
   // Calculate the normalized Chi2 between the current Segment (this)
   // and the Segment pointed to by "Segment",
@@ -165,7 +162,7 @@ Double_t AliMUONSegment::NormalizedChi2WithSegment(AliMUONSegment* Segment, Doub
 }
 
   //__________________________________________________________________________
-AliMUONSegment* AliMUONSegment::CreateSegmentFromLinearExtrapToStation (Int_t Station, Double_t MCSfactor)
+AliMUONSegment* AliMUONSegment::CreateSegmentFromLinearExtrapToStation ( Double_t z, Double_t MCSfactor) const
 {
   // Extrapolates linearly the current Segment (this) to station (0..) "Station".
   // Multiple Coulomb scattering calculated from "MCSfactor"
@@ -178,10 +175,9 @@ AliMUONSegment* AliMUONSegment::CreateSegmentFromLinearExtrapToStation (Int_t St
   // The caller has the responsibility to delete this object.
   AliMUONSegment* extrapSegment = new AliMUONSegment(); // creates empty new segment
   // dZ from first hit of current Segment to first chamber of station "Station"
-  AliMUON *pMUON = (AliMUON*) gAlice->GetModule("MUON"); // necessary ????
-  Double_t dZ =
-    (&(pMUON->Chamber(2 * Station)))->Z() - (this->fHitForRecPtr1)->GetZ();
+  Double_t dZ =  z - this->GetZ();
   // Data in bending plane
+  extrapSegment->fZ = z;
   //  coordinate
   extrapSegment->fBendingCoor = this->fBendingCoor + this->fBendingSlope * dZ;
   //  slope
@@ -209,7 +205,7 @@ AliMUONSegment* AliMUONSegment::CreateSegmentFromLinearExtrapToStation (Int_t St
 }
 
   //__________________________________________________________________________
-AliMUONHitForRec* AliMUONSegment::CreateHitForRecFromLinearExtrapToChamber (Int_t Chamber, Double_t MCSfactor)
+AliMUONHitForRec* AliMUONSegment::CreateHitForRecFromLinearExtrapToChamber ( Double_t z, Double_t MCSfactor) const
 {
   // Extrapolates linearly the current Segment (this) to chamber(0..) "Chamber".
   // Multiple Coulomb scattering calculated from "MCSfactor"
@@ -220,10 +216,9 @@ AliMUONHitForRec* AliMUONSegment::CreateHitForRecFromLinearExtrapToChamber (Int_
   // The caller has the responsibility to delete this object.
   AliMUONHitForRec* extrapHitForRec = new AliMUONHitForRec(); // creates empty new HitForRec
   // dZ from first hit of current Segment to chamber
-  AliMUON *pMUON = (AliMUON*) gAlice->GetModule("MUON"); // necessary ????
-  Double_t dZ =
-    (&(pMUON->Chamber(Chamber)))->Z() - (this->fHitForRecPtr1)->GetZ();
+  Double_t dZ = z - this->GetZ();
   // Data in bending plane
+  extrapHitForRec->SetZ(z);
   //  coordinate
   extrapHitForRec->SetBendingCoor(this->fBendingCoor + this->fBendingSlope * dZ);
   //  covariance, including multiple Coulomb scattering over dZ due to one chamber
@@ -241,7 +236,7 @@ AliMUONHitForRec* AliMUONSegment::CreateHitForRecFromLinearExtrapToChamber (Int_
 }
 
   //__________________________________________________________________________
-void AliMUONSegment::UpdateFromStationTrackParam(AliMUONTrackParam *TrackParam, Double_t MCSfactor, Double_t Dz1, Double_t Dz2, Double_t Dz3, Int_t Station, Double_t InverseMomentum)
+void AliMUONSegment::UpdateFromStationTrackParam(AliMUONTrackParam *TrackParam, Double_t /*MCSfactor*/, Double_t /*Dz1*/, Double_t /*Dz2*/, Double_t /*Dz3*/, Int_t Station, Double_t InverseMomentum)
 {
   // Fill data members with values calculated from the array of track parameters
   // pointed to by "TrackParam" (index = 0 and 1 for first and second chambers
@@ -309,6 +304,8 @@ void AliMUONSegment::UpdateFromStationTrackParam(AliMUONTrackParam *TrackParam,
   fNonBendingCoor = param0->GetNonBendingCoor(); // coordinate
   fNonBendingSlope = param0->GetNonBendingSlope(); // slope
 
+  fZ = param0->GetZ(); // z
+
   // Resolutions
   // cReso2 and sReso2 have to be subtracted here from the parametrization
   // because they are added in the functions "NormalizedChi2WithSegment"