29 #include "AliCodeTimer.h"
51 : TObject(), fkTransformer(transformer), fTriggerTrackStore(trackStore)
65 Double_t ex, Double_t ey,
85 Double_t dummyx, dummyy;
103 AliCodeTimerAuto(Form(
"Chamber %d",iChamber),0);
110 while ( ( track = static_cast<AliMUONTriggerTrack*>(next()) ) )
131 Double_t bendingCoord = track.
GetY11();
132 Double_t bendingSlope = TMath::Tan(track.
GetThetay());
134 Double_t bendingImpact = bendingCoord - z * bendingSlope;
136 AliDebug(1,Form(
"TriggerTrack impact parameter=%e",bendingImpact));
161 TMatrixD paramCov(5,5);
165 paramCov(0,0) = sigmaX*sigmaX;
166 paramCov(0,1) = paramCov(0,0)/
dZ;
167 paramCov(1,0) = paramCov(0,1);
168 paramCov(1,1) = 2.0*paramCov(0,0)/dZ/
dZ;
171 paramCov(2,2) = sigmaY*sigmaY;
172 paramCov(2,3) = paramCov(2,2)/
dZ;
173 paramCov(3,2) = paramCov(2,3);
174 paramCov(3,3) = 2.0*paramCov(2,2)/dZ/
dZ;
177 paramCov(4,4) = 0.5*inverseBendingMomentum * 0.5*inverseBendingMomentum;
188 Int_t nclusters = clusterStore.
GetSize();
196 AliDebug(1,Form(
"iChamber=%d",iChamber));
198 StdoutToAliDebug(1,tp.
Print(
"FULLCOV"););
203 Double_t ex = TMath::Sqrt(cov(0,0));
204 Double_t ey = TMath::Sqrt(cov(2,2));
208 Int_t detElemId =
DetElemId(iChamber,x,y,ex,ey,zde);
210 AliDebug(1,Form(
"zg = %e zde = %e",zg,zde));
220 rawCluster->
SetXYZ(x, y, zg);
225 AliWarning(Form(
"No DE found at xg=%e yg=%e",x,y));
The iterator over detection elements.
virtual TIterator * CreateIterator() const =0
Iterator to loop over tracks.
Int_t GenerateClusters(Int_t iChamber, AliMUONVClusterStore &clusterStore) const
Double_t GetBendingCoor() const
return bending coordinate (cm)
virtual Int_t GetSize() const =0
The number of objects stored.
A rectangle area positioned in plane..
Track parameters in ALICE dimuon spectrometer.
Int_t CurrentDEId() const
static Double_t TriggerBendingReso()
Return default trigger chamber resolution DUE TO ALIGNMENT ONLY in bending direction.
void SetNonBendingCoor(Double_t nonBendingCoor)
set non bending coordinate (cm)
Reconstructed trigger track in ALICE dimuon spectrometer.
virtual void SetErrXY(Double_t errX, Double_t errY)=0
Set resolution (cm) on coordinates (X,Y)
AliMUONVTriggerTrackStore * fTriggerTrackStore
not owner
Float_t GetX11() const
Return x position of fired Y strip in MC11.
Float_t GetThetay() const
Return track theta angle in Y.
static Double_t MuonFilterX0()
Return radiation length (in cm) of muon filter.
virtual Bool_t Add(TObject *object)
Add an object to the store.
virtual void SetXYZ(Double_t x, Double_t y, Double_t z)=0
Set coordinates (cm)
static Int_t GetChamberId(Int_t detElemId, Bool_t warn=true)
void SetBendingSlope(Double_t bendingSlope)
set bending slope (cm ** -1)
abstract base class for clusters
static Double_t MuonFilterZEnd()
Return z-position of muon filter end.
static Double_t MuonFilterZBeg()
Return z-position of muon filter begining.
Float_t GetY11() const
Return y position of fired X strip in MC11.
Interface of a cluster container.
Float_t GetThetax() const
Return track theta angle in X.
void SetNonBendingSlope(Double_t nonBendingSlope)
set non bending slope (cm ** -1)
Base class of a trigger track store.
Int_t DetElemId(Int_t chamber, Double_t x, Double_t y, Double_t ex, Double_t ey, Double_t &z) const
virtual ~AliMUONTriggerTrackToTrackerClusters()
virtual void Print(Option_t *opt="") const
void SetInverseBendingMomentum(Double_t inverseBendingMomentum)
set inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion) ...
Convertor of trigger track to tracker clusters.
virtual void SetCharge(Double_t charge)=0
Set the cluster charge.
void SetBendingCoor(Double_t bendingCoor)
set bending coordinate (cm)
static Float_t * DefaultChamberZ()
Return pointer to array of positions.
Double_t GetNonBendingCoor() const
return non bending coordinate (cm)
Bool_t Overlap(const AliMpArea &area) const
static Double_t TriggerNonBendingReso()
Return default trigger chamber resolution DUE TO ALIGNMENT ONLY in non bending direction.
const AliMUONGeometryTransformer & fkTransformer
to go from local to global
void SetCovariances(const TMatrixD &covariances)
void SetZ(Double_t z)
set Z coordinate (cm)
static Bool_t IsValidDetElemId(Int_t detElemId, Bool_t warn=false)
const TMatrixD & GetCovariances() const