#include "AliMUONVCluster.h"
#include "AliMUONVClusterStore.h"
#include "AliMUONVTriggerTrackStore.h"
+#include "AliMUONTrackParam.h"
#include "AliMpArea.h"
#include "AliMpDEManager.h"
#include <TMath.h>
//_____________________________________________________________________________
AliMUONTriggerTrackToTrackerClusters::AliMUONTriggerTrackToTrackerClusters(const AliMUONGeometryTransformer& transformer,
AliMUONVTriggerTrackStore* trackStore)
-: TObject(), fTransformer(transformer), fTriggerTrackStore(trackStore)
+: TObject(), fkTransformer(transformer), fTriggerTrackStore(trackStore)
{
/// ctor. We do not take ownership of the trigger track store.
}
AliMpDEIterator it;
- AliMpArea a( TVector2(x,y), TVector2(ex,ey) );
+ AliMpArea a(x, y, ex, ey);
it.First(chamber);
{
Int_t detElemId = it.CurrentDEId();
- AliMpArea* area = fTransformer.GetDEArea(detElemId);
+ AliMpArea* area = fkTransformer.GetDEArea(detElemId);
if ( area->Overlap(a) )
{
// get z of the center of that DE.
Double_t dummyx, dummyy;
- fTransformer.Local2Global(detElemId,0,0,0,dummyx,dummyy,z);
+ fkTransformer.Local2Global(detElemId,0,0,0,dummyx,dummyy,z);
return detElemId;
}
it.Next();
/// Generate clusters in given chamber
/// Return the number of clusters added to the clusterStore
- AliCodeTimerAuto(Form("Chamber %d",iChamber));
+ AliCodeTimerAuto(Form("Chamber %d",iChamber),0);
TIter next(fTriggerTrackStore->CreateIterator());
trackParam.SetBendingSlope(bendingSlope);
trackParam.SetInverseBendingMomentum(inverseBendingMomentum);
- Double_t dZ = TMath::Abs(AliMUONConstants::DefaultChamberZ(12) - AliMUONConstants::DefaultChamberZ(10));
+ Double_t dZ = AliMUONConstants::DefaultChamberZ(10) - AliMUONConstants::DefaultChamberZ(12);
Double_t sigmaX = AliMUONConstants::TriggerNonBendingReso();
// Non bending plane
paramCov(0,0) = sigmaX*sigmaX;
- paramCov(0,1) = -sigmaX/dZ;
+ paramCov(0,1) = paramCov(0,0)/dZ;
paramCov(1,0) = paramCov(0,1);
-
- paramCov(1,1) = 2.0*sigmaX/dZ/dZ;
+ paramCov(1,1) = 2.0*paramCov(0,0)/dZ/dZ;
// Bending plane
paramCov(2,2) = sigmaY*sigmaY;
- paramCov(2,3) = -sigmaY/dZ;
+ paramCov(2,3) = paramCov(2,2)/dZ;
paramCov(3,2) = paramCov(2,3);
-
- paramCov(3,3) = 2.0*sigmaY/dZ/dZ;
+ paramCov(3,3) = 2.0*paramCov(2,2)/dZ/dZ;
// Inverse bending momentum (50% error)
paramCov(4,4) = 0.5*inverseBendingMomentum * 0.5*inverseBendingMomentum;
// Set covariances
trackParam.SetCovariances(paramCov);
- // Now we extrapolate this trackParam to chambers 6 -> 9
-
- const Float_t kFilterThickness = TMath::Abs(AliMUONConstants::MuonFilterZEnd()-AliMUONConstants::MuonFilterZBeg()); // cm
+ // add MCS effect in the iron wall
+ const Float_t kFilterThickness = AliMUONConstants::MuonFilterZEnd()-AliMUONConstants::MuonFilterZBeg(); // cm
+ AliMUONTrackExtrap::ExtrapToZCov(&trackParam, AliMUONConstants::MuonFilterZEnd()); // Extrap to iChamber
+ AliMUONTrackExtrap::AddMCSEffect(&trackParam, kFilterThickness, AliMUONConstants::MuonFilterX0()); // Add MCS effects
+ // Now we extrapolate this trackParam to chambers 6 -> 9
Int_t nclusters = clusterStore.GetSize();
AliMUONTrackParam tp(trackParam);
Double_t zg = AliMUONConstants::DefaultChamberZ(iChamber);
AliMUONTrackExtrap::ExtrapToZCov(&tp, zg); // Extrap to iChamber
- AliMUONTrackExtrap::AddMCSEffect(&tp, kFilterThickness, AliMUONConstants::MuonFilterX0()); // Add MCS effects
AliDebug(1,Form("iChamber=%d",iChamber));
}
else
{
- AliWarning(Form("No DE found at xg=%e yg=%e",detElemId,x,y));
+ AliWarning(Form("No DE found at xg=%e yg=%e",x,y));
}
return nadded;