43 #include "AliESDEvent.h"
44 #include "AliESDMuonTrack.h"
45 #include "AliESDMuonCluster.h"
46 #include "AliESDMuonPad.h"
51 #include <TIterator.h>
54 #include <Riostream.h>
55 #include <TGeoGlobalMagField.h>
56 #include <TVirtualMagField.h>
160 for (Int_t iPad = 0; iPad < esdEvent.GetNumberOfMuonPads(); iPad++)
164 for (Int_t iTrack = 0; iTrack < esdEvent.GetNumberOfMuonTracks(); iTrack++) {
167 AliESDMuonTrack* esdTrack = esdEvent.GetMuonTrack(iTrack);
170 if (esdTrack->ContainTriggerData())
Add(*esdTrack, *
fTriggers);
173 if (!esdTrack->ContainTrackerData())
continue;
189 for (Int_t iCluster = 0; iCluster < track->
GetNClusters(); iCluster++) {
195 cMap->
Add(cluster->GetUniqueID(), cluster);
200 dMaps->
Add(cluster->GetUniqueID(), dMap);
203 for (Int_t iDigit = 0; iDigit < cluster->
GetNDigits(); iDigit++) {
209 if (digit) dMap->
Add(digit->GetUniqueID(), digit);
210 else AliError(
"a digit is missing");
234 while ((track = static_cast<AliMUONTrack*>(next()))) nClusters += track->
GetNClusters();
260 while ((cluster = static_cast<AliMUONVCluster*>(next()))) nDigits += cluster->
GetNDigits();
293 while ((cluster = static_cast<AliMUONVCluster*>(next())))
294 if (cluster->
GetNDigits() == 0)
return kFALSE;
303 if (!track) AliWarning(Form(
"track %d does not exist",trackId));
317 while ((cMap = static_cast<AliMpExMap*>(next()))) {
320 if (cluster)
return cluster;
326 if (!cluster) AliWarning(Form(
"cluster %d does not exist",clusterId));
336 if (!cluster) AliWarning(Form(
"cluster %d does not exist in track %d", clusterId, trackId));
345 if (!digit) AliWarning(Form(
"digit %d does not exist",digitId));
412 while ((dMaps = static_cast<AliMpExMap*>(next()))) {
450 if (info) AliInfoClass(
"will refit tracks with provided RecoParam:");
457 if (!
fgRecoParam) AliFatalClass(
"RecoParam have not been set!");
465 else cout<<
" --> Do not use smoother"<<endl;
466 cout<<
" --> Vertex dispersion in bending direction = "
472 AliFatalClass(
"Magnetic field has not been set!");
483 if (!classPtr || !classPtr->InheritsFrom(
"AliMUONVTrackStore")) {
484 AliErrorClass(Form(
"Unable to create store of type %s",
fgTrackStoreName.Data()));
495 if (!classPtr || !classPtr->InheritsFrom(
"AliMUONVClusterStore")) {
507 if (!classPtr || !classPtr->InheritsFrom(
"AliMUONVClusterStore")) {
522 if (!classPtr || !classPtr->InheritsFrom(
"AliMUONVDigitStore")) {
523 AliErrorClass(Form(
"Unable to create store of type %s",
fgDigitStoreName.Data()));
534 if (!classPtr || !classPtr->InheritsFrom(
"AliMUONVDigitStore")) {
535 AliErrorClass(Form(
"Unable to create store of type %s",
fgDigitStoreName.Data()));
549 if (!classPtr || !classPtr->InheritsFrom(
"AliMUONVTriggerStore")) {
561 if (!classPtr || !classPtr->InheritsFrom(
"AliMUONVTriggerTrackStore")) {
572 trackParam.
SetZ(esdTrack.GetZ());
584 trackParam.
SetZ(esdTrack.GetZ());
596 trackParam.
SetZ(esdTrack.GetZUncorrected());
600 trackParam.
SetBendingSlope(TMath::Tan(esdTrack.GetThetaYUncorrected()));
610 TMatrixD covariances(5,5);
611 esdTrack.GetCovariances(covariances);
615 Double_t cosThetaX = TMath::Cos(esdTrack.GetThetaXUncorrected());
616 Double_t cosThetaY = TMath::Cos(esdTrack.GetThetaYUncorrected());
620 jacob(1,1) = 1. / cosThetaX / cosThetaX;
622 jacob(3,3) = 1. / cosThetaY / cosThetaY;
626 TMatrixD tmp(covariances,TMatrixD::kMultTranspose,jacob);
635 esdTrack.SetZ(trackParam.
GetZ());
658 esdTrack.SetZUncorrected(trackParam.
GetZ());
662 esdTrack.SetThetaYUncorrected(TMath::ATan(trackParam.
GetBendingSlope()));
675 esdTrack.SetCovariances(tmp);
682 Double_t cosThetaY = TMath::Cos(TMath::ATan(trackParam.
GetBendingSlope()));
686 jacob(1,1) = cosThetaX * cosThetaX;
688 jacob(3,3) = cosThetaY * cosThetaY;
692 TMatrixD tmp(trackParam.
GetCovariances(),TMatrixD::kMultTranspose,jacob);
693 esdTrack.SetCovariances(TMatrixD(jacob,TMatrixD::kMult,tmp));
709 if (!esdTrack.ContainTrackerData()) {
711 track.SetUniqueID(esdTrack.GetUniqueID());
718 track.SetUniqueID(esdTrack.GetUniqueID());
728 track.
SetLocalTrigger(esdTrack.LoCircuit(), esdTrack.LoStripX(), esdTrack.LoStripY(),
729 esdTrack.LoDev(), esdTrack.LoLpt(), esdTrack.LoHpt(),
730 esdTrack.GetTriggerWithoutChamber());
747 Bool_t clusterFound = kFALSE;
748 if(esdTrack.GetESDEvent()) {
751 for (Int_t i = 0; i < esdTrack.GetNClusters(); i++) {
754 AliESDMuonCluster *esdCluster = esdTrack.GetESDEvent()->FindMuonCluster(esdTrack.GetClusterId(i));
755 if (esdCluster) clusterFound = kTRUE;
757 AliErrorClass(
"a cluster is missing in ESD");
773 if (clusterFound && refit) {
781 *firstTrackParam = paramSave;
794 while (firstCh < 10 && !esdTrack.IsInMuonClusterMap(firstCh)) firstCh++;
820 locTrg = emptyLocTrg;
823 if (!esdTrack.ContainTriggerData())
return;
825 locTrg.SetUniqueID(esdTrack.GetUniqueID());
832 for (Int_t ich = 0; ich < 4; ich++)
833 if (esdTrack.TriggerFiredWithoutChamber(ich))
854 cluster.SetUniqueID(esdCluster.GetUniqueID());
855 cluster.
SetXYZ(esdCluster.GetX(), esdCluster.GetY(), esdCluster.GetZ());
856 cluster.
SetErrXY(esdCluster.GetErrX(),esdCluster.GetErrY());
857 cluster.
SetCharge(esdCluster.GetCharge());
858 cluster.
SetChi2(esdCluster.GetChi2());
861 cluster.
SetDigitsId(esdCluster.GetNPads(), esdCluster.GetPadsId());
872 AliFatalClass(
"mapping segmentation has not been set!");
880 digit.SetUniqueID(esdPad.GetUniqueID());
882 digit.
SetADC(esdPad.GetADC());
896 AliESDMuonTrack *esdTrack = esd.NewMuonTrack();
897 MUONToESD(track, *esdTrack, vertex, locTrg);
916 if (locTrg)
MUONToESD(*locTrg, esdTrack, track.GetUniqueID());
918 cout<<
"W-AliMUONESDInterface::MUONToESD: will produce an empty ESDMuon track"<<endl;
920 esdTrack.SetUniqueID(0xFFFFFFFF);
928 esdTrack.SetUniqueID(track.GetUniqueID());
942 esdTrack.SetRAtAbsorberEnd(TMath::Sqrt(xAbs*xAbs + yAbs*yAbs));
955 esdTrack.SetMuonClusterMap(0);
958 esdTrack.AddClusterId(cluster->GetUniqueID());
981 esdTrack.SetTriggerX1Pattern(0);
982 esdTrack.SetTriggerY1Pattern(0);
983 esdTrack.SetTriggerX2Pattern(0);
984 esdTrack.SetTriggerY2Pattern(0);
985 esdTrack.SetTriggerX3Pattern(0);
986 esdTrack.SetTriggerY3Pattern(0);
987 esdTrack.SetTriggerX4Pattern(0);
988 esdTrack.SetTriggerY4Pattern(0);
998 AliESDMuonTrack *esdTrack = esd.NewMuonTrack();
999 MUONToESD(locTrg, *esdTrack, trackId, triggerTrack);
1009 esdTrack.SetUniqueID(trackId);
1021 esdTrack.SetChi2MatchTrigger(0.);
1030 UShort_t hitPattern = 0;
1031 esdTrack.SetHitsPatternInTrigChTrk(hitPattern);
1034 esdTrack.SetHitsPatternInTrigCh(hitPattern);
1035 esdTrack.SetThetaXUncorrected(triggerTrack->
GetThetax());
1036 esdTrack.SetThetaYUncorrected(triggerTrack->
GetThetay());
1037 esdTrack.SetNonBendingCoorUncorrected(triggerTrack->
GetX11());
1038 esdTrack.SetBendingCoorUncorrected(triggerTrack->
GetY11());
1039 esdTrack.SetZUncorrected(triggerTrack->
GetZ11());
1049 AliESDMuonCluster *esdCluster = esd.FindMuonCluster(cluster.GetUniqueID());
1050 if (!esdCluster) esdCluster = esd.NewMuonCluster();
1051 else if (!digits || esdCluster->GetNPads() > 0)
return;
1057 for (Int_t i=0; i<cluster.
GetNDigits(); i++) {
1060 AliErrorClass(Form(
"digit %u not found", cluster.
GetDigitId(i)));
1068 MUONToESD(cluster, *esdCluster, kFALSE);
1080 esdCluster.Clear(
"C");
1082 esdCluster.SetUniqueID(cluster.GetUniqueID());
1083 esdCluster.SetXYZ(cluster.
GetX(), cluster.
GetY(), cluster.
GetZ());
1085 esdCluster.SetCharge(cluster.
GetCharge());
1086 esdCluster.SetChi2(cluster.
GetChi2());
1097 if (esd.FindMuonPad(digit.GetUniqueID()))
return;
1098 AliESDMuonPad *esdPad = esd.NewMuonPad();
1106 esdPad.SetUniqueID(digit.GetUniqueID());
1107 esdPad.SetADC(digit.
ADC());
1108 esdPad.SetCharge(digit.
Charge());
1119 if(trackStore.
FindObject(esdTrack.GetUniqueID()))
return 0x0;
1129 if (!triggerStore.
FindLocal(esdTrack.LoCircuit())->IsNull())
return;
1132 triggerStore.
Add(locTrg);
1140 AliMUONVCluster* cluster = clusterStore.
Add(esdCluster.GetChamberId(), esdCluster.GetDetElemId(), esdCluster.GetClusterIndex());
1141 if (cluster)
ESDToMUON(esdCluster, *cluster);
AliMUONVDigitStore * fDigits
digit container
static Double_t AbsZEnd()
Return z-position of absorber end.
Base class of a track container.
UShort_t GetHitsPatternInTrigCh() const
Get word telling which trigger chambers where hit by track.
UInt_t GetHitsPatternInTrigChTrk() const
set word telling which trigger chambers where hit by track (from tracker track extrapolation) ...
static void ESDToMUON(const AliESDMuonTrack &esdTrack, AliMUONTrack &track, Bool_t refit=kTRUE)
Virtual class for the MUON track reconstruction.
static void MUONToESD(const AliMUONTrack &track, AliESDEvent &esd, const Double_t vertex[3], const AliMUONVDigitStore *digits=0x0, const AliMUONLocalTrigger *locTrg=0x0)
Int_t GetNClusters() const
return the number of clusters attached to the track
static AliMUONVCluster * NewCluster()
virtual TIterator * CreateLocalIterator() const =0
Create iterator on local trigger.
AliMUONVCluster * FindCluster(UInt_t clusterId) const
AliMUONVTriggerStore * fTriggers
trigger container
Interface for a digit container.
void SetY3Pattern(UShort_t pat)
Set Y strip pattern for chamber 21.
void SetLoTrigY(Int_t loTrigY)
Set Trig Y.
Implementation of AliMUONVTriggerStore.
TIterator * CreateDigitIteratorInCluster(UInt_t clusterId) const
static AliMpSegmentation * Instance(Bool_t warn=true)
virtual Double_t GetZ() const =0
Return coordinate Z (cm)
virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement=kTRUE)=0
Re-fit the given track.
Concrete implementation of AliMUONVDigitStore for real digits.
void SetVertexErrXY2(Double_t nonBendingErr2, Double_t bendingErr2)
set the vertex resolution square used during the tracking procedure
void SetLoStripX(Int_t loStrX)
Set X strip in MT11.
Double_t GetBendingCoor() const
return bending coordinate (cm)
virtual TIterator * CreateIterator() const =0
Create an iterator to loop over tracks.
void SetX1Pattern(UShort_t pat)
Set X strip pattern for chamber 11.
void LoadEvent(AliESDEvent &esdEvent, Bool_t refit=kTRUE)
void SetHitsPatternInTrigChTrk(UInt_t hitsPatternInTrigChTrk)
set word telling which trigger chambers where hit by track (from tracker track extrapolation) ...
static void ResetTracker(const AliMUONRecoParam *recoParam=0x0, Bool_t info=kTRUE)
static UInt_t BuildUniqueID(Int_t chamberId, Int_t detElemId, Int_t clusterIndex)
Build a single integer with id information.
virtual Int_t ADC() const =0
Raw ADC value of this digit.
Bool_t CovariancesExist() const
return kTRUE if the covariance matrix exist, kFALSE if not
Bool_t FitWithVertex() const
return kTrue if the vertex must be used to constrain the fit, kFalse if not
static void SetParamAtVertex(const AliMUONTrackParam &trackParam, AliESDMuonTrack &esdTrack)
virtual Int_t GetSize() const =0
The number of objects stored.
Implementation of AliMUONVTriggerTrackStore.
virtual Double_t GetErrX() const =0
Return resolution (cm) on coordinate X.
Double_t GetZ() const
return Z coordinate (cm)
Int_t LoLpt() const
Return Low pt.
const AliMpVSegmentation * GetMpSegmentationByElectronics(Int_t detElemId, Int_t elCardID, Bool_t warn=true) const
TIterator * CreateTrackIterator() const
Track parameters in ALICE dimuon spectrometer.
Class with MUON reconstruction parameters.
void SetNonBendingCoor(Double_t nonBendingCoor)
set non bending coordinate (cm)
virtual void Calibrated(Bool_t value)=0
Set the calibrated status (see note 1 in AliMUONVDigit.cxx)
Reconstructed trigger track in ALICE dimuon spectrometer.
virtual void SetCharge(Float_t q)=0
Set the charge of this digit.
virtual Float_t Charge() const =0
The charge of this digit, calibrated or not depending on IsCalibrated()
virtual Bool_t IsCalibrated() const =0
Whether this digit has been calibrated or not (see note 1 in AliMUONVDigit.cxx)
void SetMCLabel(Int_t label)
set the corresponding MC track number
void SetDeviation(Int_t deviation)
virtual void SetErrXY(Double_t errX, Double_t errY)=0
Set resolution (cm) on coordinates (X,Y)
Implementation of VClusterStore.
Int_t GetNClusters() const
Option_t * GetTrackingMode() const
get the tracking mode
Int_t LoHpt() const
Return High p.
UShort_t GetX3Pattern() const
Return X strip pattern for chamber 21.
AliMUONVDigit * FindDigit(UInt_t digitId) const
Int_t LoStripY() const
Return Y strip in MT11.
Float_t GetX11() const
Return x position of fired Y strip in MC11.
Int_t GetLocalTrigger(void) const
return local trigger information for the matched trigger track
Base class of a trigger information store.
Double_t GetInverseBendingMomentum() const
return inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion) ...
static void SetParamAtFirstCluster(const AliMUONTrackParam &trackParam, AliESDMuonTrack &esdTrack)
Float_t GetThetay() const
Return track theta angle in Y.
Double_t GetBendingVertexDispersion() const
return the vertex dispersion (cm) in bending plane
static TString fgTriggerTrackStoreName
class name of the trigger track store to use
virtual TIterator * CreateIterator() const =0
Create an iterator to loop over all our digits.
virtual void Used(Bool_t value)=0
Set the used status.
virtual Int_t GetSize() const =0
Number of digits we store.
virtual ~AliMUONESDInterface()
UShort_t GetY4Pattern() const
Return Y strip pattern for chamber 22.
static TString fgClusterStoreName
class name of the cluster store to use
UShort_t GetX4Pattern() const
Return X strip pattern for chamber 22.
Double_t GetChi2MatchTrigger(void) const
return the chi2 of trigger/track matching
virtual void Clear(Option_t *opt="")
virtual Bool_t Add(TObject *object)
Add an object to the store.
static TString fgTriggerStoreName
class name of the trigger store to use
Bool_t UpdateCovTrackParamAtCluster()
virtual UInt_t GetDigitId(Int_t i) const =0
Return Id of digits i.
void SetTriggerWithoutChamber(Int_t ich)
The board would provide a trigger even after removing chamber ich [0,3].
static void GetParamAtFirstCluster(const AliESDMuonTrack &esdTrack, AliMUONTrackParam &trackParam)
void UseSmoother(Bool_t flag)
switch on/off the use of the smoother
virtual void SetXYZ(Double_t x, Double_t y, Double_t z)=0
Set coordinates (cm)
Double_t GetBendingSlope() const
return bending slope (cm ** -1)
Int_t LoStripX() const
Return X strip in MT11.
void SetY4Pattern(UShort_t pat)
Set Y strip pattern for chamber 22.
UShort_t GetX1Pattern() const
Return X strip pattern for chamber 11.
void SetLoLpt(Int_t loLpt)
Set Low pt.
static AliMUONRecoParam * fgRecoParam
reconstruction parameters for refitting
void SetBendingSlope(Double_t bendingSlope)
set bending slope (cm ** -1)
abstract base class for clusters
static AliMUONVClusterStore * NewClusterStore()
void SetLoStripY(Int_t loStrY)
Set Y strip in MT11.
Reconstructed Local Trigger object.
Int_t GetNTriggers() const
TIterator * CreateLocalTriggerIterator() const
void SetTrackParamAtVertex(const AliMUONTrackParam *trackParam)
virtual void SetADC(Int_t adc)=0
Set the ADC value.
void SetImproved(Bool_t improved)
set the flag telling whether the track has been improved or not
Implementation of TIterator for 2D maps.
Bool_t FitWithMCS() const
return kTrue if the multiple scattering must be accounted for in the fit, kFalse if not ...
static AliMUONTrack * Add(const AliESDMuonTrack &esdTrack, AliMUONVTrackStore &trackStore, Bool_t refit=kTRUE)
Double_t GetGlobalChi2() const
return the minimum value of the function minimized by the fit
static AliMUONVTrackStore * NewTrackStore()
static AliMUONVTrackReconstructor * fgTracker
track reconstructor for refitting
TIterator * CreateDigitIterator() const
UShort_t GetY1Pattern() const
Return Y strip pattern for chamber 11.
Converter between MUON track/cluster/digit and ESDMuon track/cluster/pad.
virtual void SetMCLabel(Int_t label)=0
Set the corresponding MC track number.
UShort_t GetY3Pattern() const
Return Y strip pattern for chamber 21.
void AddTrackParamAtCluster(const AliMUONTrackParam &trackParam, AliMUONVCluster &cluster, Bool_t copy=kFALSE)
void SetLocalTrigger(Int_t loCirc, Int_t loStripX, Int_t loStripY, Int_t loDev, Int_t loLpt, Int_t loHpt, UChar_t respWithoutChamber=0)
set local trigger information for the matched trigger track
void SetX3Pattern(UShort_t pat)
Set X strip pattern for chamber 21.
virtual Double_t GetErrY() const =0
Return resolution (cm) on coordinate Y.
static AliMUONVTriggerStore * NewTriggerStore()
Float_t GetY11() const
Return y position of fired X strip in MC11.
static void GetParamAtDCA(const AliESDMuonTrack &esdTrack, AliMUONTrackParam &trackParam)
virtual Int_t GetNDigits() const =0
Return number of associated digits.
AliMUONVTrackStore * fTracks
track container
Interface of a cluster container.
TObject * GetValue(Int_t keyFirst, Int_t keySecond) const
Int_t GetMCLabel() const
return the corresponding MC track number
virtual Double_t GetChi2() const =0
Return chi2 of cluster.
UShort_t GetY2Pattern() const
Return Y strip pattern for chamber 12.
virtual void SetPadXY(Int_t padx, Int_t pady)=0
Set the ix and iy of this digit.
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.
void SetMatchTrigger(Int_t matchTrigger)
set the flag telling whether track matches with trigger track or not
void Add(Int_t keyFirst, Int_t keySecond, TObject *object)
virtual void SetChi2(Double_t chi2)=0
Set chi2 of cluster.
void SetX2Pattern(UShort_t pat)
Set X strip pattern for chamber 12.
Implementation of AliMUONVTrackStore.
Int_t GetDeviation() const
virtual void SetDigitsId(Int_t nDigits, const UInt_t *digitsId)=0
Set Id of associated digits.
Float_t GetZ11() const
Return z position of fired X strip in MC11.
void SetOwner(Bool_t owner)
void SetY2Pattern(UShort_t pat)
Set Y strip pattern for chamber 12.
AliMpExMap * fClusterMap
map of clusters
Int_t GetNDigitsInCluster(UInt_t clusterId) const
static Int_t GetChamberId(UInt_t uniqueID)
Return chamber id (0..), part of the uniqueID.
void Connected(Bool_t flag=kTRUE)
set the flag which is kTRUE if that track shares cluster(s) with another
AliMpExMap * fDigitMap
map of digits
void SetInverseBendingMomentum(Double_t inverseBendingMomentum)
set inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion) ...
virtual Double_t GetY() const =0
Return coordinate Y (cm)
virtual void SetCharge(Double_t charge)=0
Set the cluster charge.
static AliMUONVTriggerTrackStore * NewTriggerTrackStore()
static void GetParamAtVertex(const AliESDMuonTrack &esdTrack, AliMUONTrackParam &trackParam)
static void GetParamCov(const AliESDMuonTrack &esdTrack, AliMUONTrackParam &trackParam)
void SetBendingCoor(Double_t bendingCoor)
set bending coordinate (cm)
The abstract base class for the segmentation.
static AliMUONVDigitStore * NewDigitStore()
void SetHitsPatternInTrigCh(UShort_t hitsPatternInTrigCh)
set word telling which trigger chambers where hit by track
UChar_t GetTriggerWithoutChamber() const
Triggers from the re-calculated trigger response after removing chambers one-by-one.
Double_t GetNonBendingCoor() const
return non bending coordinate (cm)
AliMUONTrack * FindTrack(UInt_t trackId) const
virtual void Saturated(Bool_t saturated=kTRUE)=0
Set the saturation status.
AliMUONVCluster * GetClusterPtr() const
get pointeur to associated cluster
UShort_t GetX2Pattern() const
Return X strip pattern for chamber 12.
AliMUONLocalTrigger * FindLocalTrigger(Int_t boardNumber) const
Class which encapsuate all information about a pad.
virtual Bool_t IsSaturated() const =0
Whether the ADC has saturated.
virtual AliMUONVCluster * CreateCluster(Int_t chamberId, Int_t detElemId, Int_t clusterIndex) const =0
Create a cluster.
virtual Double_t GetX() const =0
Return coordinate X (cm)
virtual Bool_t Add(TObject *object)
Add an object, if of the right type.
virtual void Clear(Option_t *opt="")=0
Clear ourselves (i.e. Reset)
void SetLoHpt(Int_t loHpt)
Set High pt.
Reconstructed track in ALICE dimuon spectrometer.
virtual const UInt_t * GetDigitsId() const
Return the array of digits'id.
Bool_t DigitsStored(UInt_t trackId) const
virtual Bool_t Add(TObject *object)
Add an object, if of the right type.
virtual AliMUONVDigit * FindObject(const TObject *object) const
Find an object (default is to forward to FindObject(object->GetUniqueID())
static AliMUONVDigit * NewDigit()
void SetCovariances(const TMatrixD &covariances)
static AliMUONVTrackReconstructor * CreateTrackReconstructor(const AliMUONRecoParam *recoParam, AliMUONVClusterServer *clusterServer, const AliMUONGeometryTransformer *transformer)
virtual AliMpPad PadByLocation(Int_t manuId, Int_t manuChannel, Bool_t warning=true) const =0
Find pad by location.
virtual AliMUONVDigit * CreateDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t cathode) const =0
Create a digit.
virtual void Clear(Option_t *)=0
Clear method (used by TClonesArray)
Bool_t LoadMapping(Bool_t segmentationOnly=kFALSE)
static void SetParamCov(const AliMUONTrackParam &trackParam, AliESDMuonTrack &esdTrack)
virtual Double_t GetCharge() const =0
Set the cluster charge.
void SetX4Pattern(UShort_t pat)
Set X strip pattern for chamber 22.
static TString fgDigitStoreName
class name of the digit store to use
void SetZ(Double_t z)
set Z coordinate (cm)
virtual void Clear(Option_t *opt="")
void SetY1Pattern(UShort_t pat)
Set Y strip pattern for chamber 11.
const TMatrixD & GetCovariances() const
virtual AliMUONLocalTrigger * FindLocal(Int_t boardNumber) const =0
Find a local trigger by the board number (not an index, it is a number really)
TIterator * CreateClusterIterator() const
Int_t LoCircuit() const
Return Circuit number.
void SetLoCircuit(Int_t loCir)
Set Circuit number.
static TString fgTrackStoreName
class name of the track store to use
void SetChi2MatchTrigger(Double_t chi2MatchTrigger)
set the chi2 of trigger/track matching
virtual TObject * FindObject(const char *name) const
Find an object by name.
Helper class making Root persistent TExMap.
virtual Bool_t Add(TObject *object)
Add an object, if it is of the right class.
AliMpExMapIterator * CreateIterator() const
AliMUONRecoParam * LoadRecoParam()
static Double_t MaxChi2()
return the maximum chi2 above which the track can be considered as abnormal (due to extrapolation fai...
Bool_t IsConnected() const
return the flag which is kTRUE if that track shares cluster(s) with another
static void SetParamAtDCA(const AliMUONTrackParam &trackParam, AliESDMuonTrack &esdTrack)
TObjArray * GetTrackParamAtCluster() const
UShort_t GetHitsPatternInTrigCh() const
set word telling which trigger chambers where hit by track
virtual Int_t GetMCLabel() const =0
Return the corresponding MC track number.
void SetGlobalChi2(Double_t chi2)
set the minimum value of the function minimized by the fit
virtual void Clear(Option_t *="")
Double_t GetNonBendingSlope() const
return non bending slope (cm ** -1)