ROOT logo
AliRoot » ITS » AliITSMultReconstructor

class AliITSMultReconstructor: public AliTrackleter


        Implementation of the ITS-SPD trackleter class

 It retrieves clusters in the pixels (theta and phi) and finds tracklets.
 These can be used to extract charged particle multiplicity from the ITS.

 A tracklet consists of two ITS clusters, one in the first pixel layer and
 one in the second. The clusters are associated if the differences in
 Phi (azimuth) and Theta (polar angle) are within fiducial windows.
 In case of multiple candidates the candidate with minimum
 distance is selected.

 Two methods return the number of tracklets and the number of unassociated
 clusters (i.e. not used in any tracklet) in the first SPD layer
 (GetNTracklets and GetNSingleClusters)

 The cuts on phi and theta depend on the interacting system (p-p or Pb-Pb)
 and can be set via AliITSRecoParam class
 (SetPhiWindow and SetThetaWindow)

 Origin: Tiziano Virgili

 Current support and development:
         Domenico Elia, Maria Nicassio (INFN Bari)
         Domenico.Elia@ba.infn.it, Maria.Nicassio@ba.infn.it

 Most recent updates:
     - multiple association forbidden (fOnlyOneTrackletPerC2 = kTRUE)
     - phi definition changed to ALICE convention (0,2*TMath::pi())
     - cluster coordinates taken with GetGlobalXYZ()
     - fGeometry removed
     - number of fired chips on the two layers
     - option to cut duplicates in the overlaps
     - options and fiducial cuts via AliITSRecoParam
     - move from DeltaZeta to DeltaTheta cut
     - update to the new algorithm by Mariella and Jan Fiete
     - store also DeltaTheta in the ESD
     - less new and delete calls when creating the needed arrays

     - RS: to decrease the number of new/deletes the clusters data are stored
           not in float[6] attached to float**, but in 1-D array.
     - RS: Clusters are sorted in Z in roder to have the same numbering as in the ITS reco
     - RS: Clusters used by ESDtrack are flagged, this information is passed to AliMulitiplicity object
           when storing the tracklets and single cluster info
     - MN: first MC label of single clusters stored

Function Members (Methods)

public:
AliITSMultReconstructor()
virtual~AliITSMultReconstructor()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
Bool_tAreClustersLoaded() const
Int_tAssociateClusterOfL1(Int_t iC1)
virtual voidTObject::Browse(TBrowser* b)
Double_tCalcDist(Double_t dphi, Double_t dtheta, Double_t theta) const
Bool_tCanBeElectron(const AliESDtrack* trc) const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
voidClusterPos2Angles(const Float_t* vtx)
voidClusterPos2Angles(Float_t* clPar, const Float_t* vtx) const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidCreateMultiplicityObject()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
voidFindTracklets(const Float_t* vtx)
voidFlagClustersInOverlapRegions(Int_t ic1, Int_t ic2)
voidFlagIfSecondary(AliESDtrack* track, const AliVertex* vtx)
voidFlagTrackClusters(Int_t id)
voidFlagV0s(const AliESDVertex* vtx)
Bool_tGetBuildRefs() const
Float_t*GetCluster(Int_t n) const
Int_tGetClusterCopyIndex(Int_t lr, Int_t n) const
Float_t*GetClusterLayer1(Int_t n) const
Float_t*GetClusterLayer2(Int_t n) const
Float_t*GetClusterOfLayer(Int_t lr, Int_t n) const
Float_t*GetClustersArray(Int_t lr) const
TClonesArray*GetClustersOfLayer(Int_t il) const
Bool_tGetCreateClustersCopy() const
Float_tGetCutChi2cGamma() const
Float_tGetCutChi2cK0() const
Float_tGetCutDCArz() const
Float_tGetCutGammaSFromDecay() const
Float_tGetCutK0SFromDecay() const
Float_tGetCutMassGamma() const
Float_tGetCutMassGammaNSigma() const
Float_tGetCutMassK0() const
Float_tGetCutMassK0NSigma() const
Float_tGetCutMaxDCA() const
Float_tGetCutMaxDCADauther() const
Float_tGetCutMinElectronProbESD() const
Float_tGetCutMinElectronProbTPC() const
Float_tGetCutMinP() const
Float_tGetCutMinPointAngle() const
Float_tGetCutMinRGamma() const
Float_tGetCutMinRK0() const
Float_tGetCutPxDrSPDin() const
Float_tGetCutPxDrSPDout() const
Float_tGetCutPxDz() const
AliITSDetTypeRec*GetDetTypeRec() const
Double_tGetDPhiShift() const
Double_tGetDPhiWindow2() const
virtual Option_t*TObject::GetDrawOption() const
Double_tGetDThetaWindow2() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
Float_t*GetMinDistsOfL2() const
virtual AliMultiplicity*AliTrackleter::GetMultiplicity() const
virtual const char*TObject::GetName() const
Int_tGetNClustersLayer(Int_t i) const
Int_tGetNClustersLayer1() const
Int_tGetNClustersLayer2() const
Short_tGetNFiredChips(Int_t layer) const
Int_tGetNSingleClusters() const
Int_tGetNSingleClustersLr(int lr) const
Float_tGetNStdDev() const
Int_tGetNTracklets() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Int_t*GetPartnersOfL2() const
AliITSRecPoint*GetRecPoint(Int_t lr, Int_t n) const
Bool_tGetScaleDThetaBySin2T() const
Bool_tGetStoreSPD2SingleCl() const
virtual const char*TObject::GetTitle() const
Float_t*GetTracklet(Int_t n) const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
voidInitAux()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
Bool_tIsRecoDone() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
voidLoadClusterFiredChips(TTree* tree)
voidLoadClusters()
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
voidProcessESDTracks()
virtual Int_tTObject::Read(const char* name)
virtual voidReconstruct(AliESDEvent* esd, TTree* treeRP)
voidReconstruct(TTree* tree, Float_t* vtx, Float_t* vtxRes = 0)
voidReconstructMix(TTree* clusterTree, TTree* clusterTreeMix, const Float_t* vtx, Float_t* vtrRes = 0)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
voidSaveHists()
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetBuildRefs(Bool_t v = kTRUE)
voidSetCreateClustersCopy(Bool_t v = kTRUE)
voidSetCutChi2cGamma(Float_t v = 2.)
voidSetCutChi2cK0(Float_t v = 2.)
voidSetCutDCArz(Float_t v = 0.5)
voidSetCutGammaSFromDecay(Float_t v = -10.)
voidSetCutK0SFromDecay(Float_t v = -10.)
voidSetCutMassGamma(Float_t v = 0.03)
voidSetCutMassGammaNSigma(Float_t v = 5.)
voidSetCutMassK0(Float_t v = 0.03)
voidSetCutMassK0NSigma(Float_t v = 5.)
voidSetCutMaxDCA(Float_t v = 1.)
voidSetCutMaxDCADauther(Float_t v = 0.5)
voidSetCutMinElectronProbESD(Float_t v = 0.1)
voidSetCutMinElectronProbTPC(Float_t v = 0.5)
voidSetCutMinP(Float_t v = 0.05)
voidSetCutMinPointAngle(Float_t v = 0.98)
voidSetCutMinRGamma(Float_t v = 2.)
voidSetCutMinRK0(Float_t v = 1.)
voidSetCutPxDrSPDin(Float_t v = 0.1)
voidSetCutPxDrSPDout(Float_t v = 0.15)
voidSetCutPxDz(Float_t v = 0.2)
voidSetDetTypeRec(AliITSDetTypeRec* ptr)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetHistOn(Bool_t b = kFALSE)
voidSetNStdDev(Float_t f = 1.)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPhiOverlapCut(Float_t w = 0.005)
voidSetPhiRotationAngle(Float_t w = 0.0)
voidSetPhiShift(Float_t w = 0.0045)
voidSetPhiWindow(Float_t w = 0.08)
voidSetRemoveClustersFromOverlaps(Bool_t b = kFALSE)
voidSetScaleDThetaBySin2T(Bool_t v = kTRUE)
voidSetStoreSPD2SingleCl(Bool_t v)
voidSetThetaWindow(Float_t w = 0.025)
voidSetTreeRP(TTree* rp)
voidSetTreeRPMix(TTree* rp = 0)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetZetaOverlapCut(Float_t w = 0.05)
virtual voidShowMembers(TMemberInspector&)
voidStoreL1Singles()
Int_tStoreTrackletForL2Cluster(Int_t iC2)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
AliITSMultReconstructor(const AliITSMultReconstructor& mr)
voidCalcThetaPhi(float x, float y, float z, float& theta, float& phi) const
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidLoadClusterArrays(TTree* tree, TTree* treeMix = 0)
voidLoadClusterArrays(TTree* tree, int il)
voidTObject::MakeZombie()
AliITSMultReconstructor&operator=(const AliITSMultReconstructor& mr)
voidSetClustersLoaded(Bool_t v = kTRUE)

Data Members

public:
enum { kClTh
kClPh
kClZ
kClMC0
kClMC1
kClMC2
kClNPar
kTrTheta
kTrPhi
kTrDPhi
kTrDTheta
kTrLab1
kTrLab2
kClID1
kClID2
kTrNPar
kSCTh
kSCPh
kSCLab
kSCID
kSCNPar
kITSTPC
kITSSAP
kITSTPCBit
kITSSAPBit
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Int_t*fAssociatedLay1! association flag
AliRefArray*fBlackList! blacklisted cluster references
Bool_tfBuildRefsbuild cluster to tracks references
TClonesArray*fClArr[2]! original clusters
Int_t*fClusterCopyIndex[2]! when clusters copy is requested, store here the reference on the index
Float_t*fClustersLay[2]! clusters in the SPD layers of ITS
Bool_tfClustersLoadedflag of clusters loaded
Bool_tfCreateClustersCopyread and clone clusters directly from the tree
Float_tfCutChi2cGammamax constrained chi2 cut for gammas
Float_tfCutChi2cK0max constrained chi2 cut for K0s
Float_tfCutDCArzmax DR or DZ for primares
Float_tfCutGammaSFromDecaymin path*P for gammas
Float_tfCutK0SFromDecaymin path*P for K0s
Float_tfCutMassGammamax gamma mass
Float_tfCutMassGammaNSigmamax standard deviations from 0 for gamma
Float_tfCutMassK0max K0 mass difference from PGD value
Float_tfCutMassK0NSigmamax standard deviations for K0 mass from PDG value
Float_tfCutMaxDCAmax DCA for V0 at ESD vertex
Float_tfCutMaxDCADauthermax DCA of daughters at V0
Float_tfCutMinElectronProbESDmin probability for e+/e- PID not involving TPC
Float_tfCutMinElectronProbTPCmin probability for e+/e- PID involving TPC
Float_tfCutMinPmin P of V0
Float_tfCutMinPointAnglemin pointing angle cosine
Float_tfCutMinRGammamin transv. distance from ESDVertex to V0 for gammas
Float_tfCutMinRK0min transv. distance from ESDVertex to V0 for K0s
Float_tfCutPxDrSPDinmax P*DR for primaries involving at least 1 SPD
Float_tfCutPxDrSPDoutmax P*DR for primaries not involving any SPD
Float_tfCutPxDzmax P*DZ for primaries
Double_tfDPhiShiftshift in dphi due to the curvature
Float_tfDPhiWindowSearch window in phi
Double_tfDPhiWindow2phi window^2
Float_tfDThetaWindowSearch window in theta
Double_tfDThetaWindow2theta window^2
AliITSDetTypeRec*fDetTypeRec! pointer to DetTypeRec
Int_t*fDetectorIndexClustersLay[2]! module index for clusters in ITS layers
AliESDEvent*fESDEvent! pointer to ESD event
Bool_tfHistOnOption to define and fill the histograms
Float_t*fMinDists! smallest distances for L2->L1
AliMultiplicity*AliTrackleter::fMultmultiplicity object
Int_tfNClustersLay[2]Number of clusters on each layer
Short_tfNFiredChips[2]Number of fired chips in the two SPD layers
Int_tfNSingleClusterNumber of unassociated clusters
Int_tfNSingleClusterSPD2Number of unassociated clusters on 2nd lr
Float_tfNStdDevnumber of standard deviations to keep
Float_tfNStdDevSqsqrt of number of standard deviations to keep
Int_tfNTrackletsNumber of tracklets
Bool_t*fOverlapFlagClustersLay[2]! flag for clusters in the overlap regions in ITS layers
Int_t*fPartners! L2 partners of L1
Float_tfPhiOverlapCutFiducial window in phi for overlap cut
Float_tfPhiRotationAngleAngle to rotate the inner layer cluster for combinatorial reco only
Float_tfPhiShiftPhi shift reference value (at 0.5 T)
Bool_tfRecoDoneflag that reconstruction is done
Bool_tfRemoveClustersFromOverlapsOption to skip clusters in the overlaps
Float_t**fSClusters! single clusters (unassociated)
AliITSsegmentationSPDfSPDSegSPD segmentation model
Bool_tfScaleDTBySin2Tuse in distance definition
Bool_tfStoreRefs[2][2]! which cluster to track refs to store
Bool_tfStoreSPD2SingleCldo we store SPD2 singles
Float_t**fTracklets! tracklets
TTree*fTreeRP! ITS recpoints
TTree*fTreeRPMix! ITS recpoints for mixing
AliRefArray*fUsedClusLay[2][2]! RS: clusters usage in ESD tracks
Float_tfZetaOverlapCutFiducial window in eta for overlap cut
TH1F*fhClustersDPhiAccPhi2 - Phi1 for tracklets
TH1F*fhClustersDPhiAllPhi2 - Phi1 all the combinations
TH1F*fhClustersDThetaAccTheta2 - Theta1 for tracklets
TH1F*fhClustersDThetaAllTheta2 - Theta1 all the combinations
TH2F*fhDPhiVsDThetaAccsame plot for tracklets
TH2F*fhDPhiVsDThetaAll2D plot for all the combinations
TH1F*fhetaClustersLay1Pseudorapidity distr. for Clusters L. 1
TH1F*fhetaTrackletsPseudorapidity distr. for tracklets
TH1F*fhphiClustersLay1Azimuthal (Phi) distr. for Clusters L. 1
TH1F*fhphiTrackletsAzimuthal (Phi) distr. for tracklets

Class Charts

Inheritance Chart:
TObject
AliTrackleter
AliITSMultReconstructor

Function documentation

AliITSMultReconstructor()



 default c-tor
AliITSMultReconstructor(const AliITSMultReconstructor& mr)


 Copy constructor :!!! RS ATTENTION: old c-tor reassigned the pointers instead of creating a new copy -> would crash on delete
AliITSMultReconstructor& operator=(const AliITSMultReconstructor& mr)
 Assignment operator
~AliITSMultReconstructor()
 Destructor
void Reconstruct(AliESDEvent* esd, TTree* treeRP)
void Reconstruct(TTree* tree, Float_t* vtx, Float_t* vtxRes = 0)
 RS NOTE - this is old reconstructor invocation, to be used from VertexFinder and in analysis mode
void ReconstructMix(TTree* clusterTree, TTree* clusterTreeMix, const Float_t* vtx, Float_t* vtrRes = 0)
 RS NOTE - this is old reconstructor invocation, to be used from VertexFinder and in analysis mode
void FindTracklets(const Float_t* vtx)
 - calls LoadClusterArrays that finds the position of the clusters
   (in global coord)
void CreateMultiplicityObject()
 create AliMultiplicity object and store it in the ESD event

void LoadClusterArrays(TTree* tree, TTree* treeMix = 0)
 load cluster info and prepare tracklets arrays

void LoadClusterArrays(TTree* tree, int il)
 This method
 - gets the clusters from the cluster tree for layer il
 - convert them into global coordinates
 - store them in the internal arrays
 - count the number of cluster-fired chips

 RS: This method was strongly modified wrt original. In order to have the same numbering
 of clusters as in the ITS reco I had to introduce sorting in Z
 Also note that now the clusters data are stored not in float[6] attached to float**, but in 1-D array
void LoadClusterFiredChips(TTree* tree)
 This method
 - gets the clusters from the cluster tree
 - counts the number of (cluster)fired chips
SaveHists()
 This method save the histograms on the output file
 (only if fHistOn is TRUE).
void FlagClustersInOverlapRegions(Int_t ic1, Int_t ic2)
 Flags clusters in the overlapping regions
void InitAux()
 init arrays/parameters for tracklet reconstruction
void ClusterPos2Angles(const Float_t* vtx)
 convert cluster coordinates to angles wrt vertex
Int_t AssociateClusterOfL1(Int_t iC1)
 search association of cluster iC1 of L1 with all clusters of L2
Int_t StoreTrackletForL2Cluster(Int_t iC2)
 build tracklet for cluster iC2 of layer 2
void StoreL1Singles()
 Printf("saving single clusters...");
void ProcessESDTracks()
 Flag the clusters used by ESD tracks
 Flag primary tracks to be used for multiplicity counting

void FlagTrackClusters(Int_t id)
 RS: flag the SPD clusters of the track if it is useful for the multiplicity estimation

void FlagIfSecondary(AliESDtrack* track, const AliVertex* vtx)
 RS: check if the track is primary and set the flag
void FlagV0s(const AliESDVertex* vtx)
 flag tracks belonging to v0s

Bool_t CanBeElectron(const AliESDtrack* trc) const
 check if the track can be electron
AliITSRecPoint* GetRecPoint(Int_t lr, Int_t n) const
 return a cluster of lr corresponding to orderer cluster index n
void ClusterPos2Angles(Float_t* clPar, const Float_t* vtx) const
Double_t CalcDist(Double_t dphi, Double_t dtheta, Double_t theta) const
void CalcThetaPhi(float x, float y, float z, float& theta, float& phi) const
void SetPhiWindow(Float_t w = 0.08)
 Following members are set via AliITSRecoParam
void SetThetaWindow(Float_t w = 0.025)
void SetPhiShift(Float_t w = 0.0045)
void SetRemoveClustersFromOverlaps(Bool_t b = kFALSE)
void SetPhiOverlapCut(Float_t w = 0.005)
void SetZetaOverlapCut(Float_t w = 0.05)
void SetPhiRotationAngle(Float_t w = 0.0)
Int_t GetNClustersLayer1() const
{return fNClustersLay[0];}
Int_t GetNClustersLayer2() const
{return fNClustersLay[1];}
Int_t GetNClustersLayer(Int_t i) const
{return fNClustersLay[i];}
Int_t GetNTracklets() const
{return fNTracklets;}
Int_t GetNSingleClusters() const
{return fNSingleCluster;}
Int_t GetNSingleClustersLr(int lr) const
Short_t GetNFiredChips(Int_t layer) const
{return fNFiredChips[layer];}
Float_t* GetClusterLayer1(Int_t n) const
{return &fClustersLay[0][n*kClNPar];}
Float_t* GetClusterLayer2(Int_t n) const
{return &fClustersLay[1][n*kClNPar];}
Float_t* GetClusterOfLayer(Int_t lr, Int_t n) const
{return &fClustersLay[lr][n*kClNPar];}
Int_t GetClusterCopyIndex(Int_t lr, Int_t n) const
{return fClusterCopyIndex[lr] ? fClusterCopyIndex[lr][n] : -1;}
Float_t* GetTracklet(Int_t n) const
{return fTracklets[n];}
Float_t* GetCluster(Int_t n) const
{return fSClusters[n];}
void SetScaleDThetaBySin2T(Bool_t v = kTRUE)
Bool_t GetScaleDThetaBySin2T() const
{return fScaleDTBySin2T;}
void SetNStdDev(Float_t f = 1.)
{fNStdDev = f<0.01 ? 0.01 : f; fNStdDevSq=TMath::Sqrt(fNStdDev);}
Float_t GetNStdDev() const
{return fNStdDev;}
void SetHistOn(Bool_t b = kFALSE)
{fHistOn=b;}
void SetBuildRefs(Bool_t v = kTRUE)
{fBuildRefs = v;}
Bool_t GetBuildRefs() const
{return fBuildRefs;}
void SetStoreSPD2SingleCl(Bool_t v)
Bool_t GetStoreSPD2SingleCl() const
AliITSDetTypeRec * GetDetTypeRec() const
{return fDetTypeRec;}
void SetDetTypeRec(AliITSDetTypeRec* ptr)
{fDetTypeRec = ptr;}
void SetCutPxDrSPDin(Float_t v = 0.1)
void SetCutPxDrSPDout(Float_t v = 0.15)
void SetCutPxDz(Float_t v = 0.2)
{ fCutPxDz = v;}
void SetCutDCArz(Float_t v = 0.5)
{ fCutDCArz = v;}
void SetCutMinElectronProbTPC(Float_t v = 0.5)
void SetCutMinElectronProbESD(Float_t v = 0.1)
void SetCutMinP(Float_t v = 0.05)
{ fCutMinP = v;}
void SetCutMinRGamma(Float_t v = 2.)
void SetCutMinRK0(Float_t v = 1.)
{ fCutMinRK0 = v;}
void SetCutMinPointAngle(Float_t v = 0.98)
void SetCutMaxDCADauther(Float_t v = 0.5)
void SetCutMassGamma(Float_t v = 0.03)
void SetCutMassGammaNSigma(Float_t v = 5.)
void SetCutMassK0(Float_t v = 0.03)
{ fCutMassK0 = v;}
void SetCutMassK0NSigma(Float_t v = 5.)
void SetCutChi2cGamma(Float_t v = 2.)
void SetCutChi2cK0(Float_t v = 2.)
{ fCutChi2cK0 = v;}
void SetCutGammaSFromDecay(Float_t v = -10.)
void SetCutK0SFromDecay(Float_t v = -10.)
void SetCutMaxDCA(Float_t v = 1.)
{ fCutMaxDCA = v;}
Float_t GetCutPxDrSPDin() const
{return fCutPxDrSPDin;}
Float_t GetCutPxDrSPDout() const
{return fCutPxDrSPDout;}
Float_t GetCutPxDz() const
{return fCutPxDz;}
Float_t GetCutDCArz() const
{return fCutDCArz;}
Float_t GetCutMinElectronProbTPC() const
Float_t GetCutMinElectronProbESD() const
Float_t GetCutMinP() const
{return fCutMinP;}
Float_t GetCutMinRGamma() const
{return fCutMinRGamma;}
Float_t GetCutMinRK0() const
{return fCutMinRK0;}
Float_t GetCutMinPointAngle() const
Float_t GetCutMaxDCADauther() const
Float_t GetCutMassGamma() const
{return fCutMassGamma;}
Float_t GetCutMassGammaNSigma() const
Float_t GetCutMassK0() const
{return fCutMassK0;}
Float_t GetCutMassK0NSigma() const
Float_t GetCutChi2cGamma() const
{return fCutChi2cGamma;}
Float_t GetCutChi2cK0() const
{return fCutChi2cK0;}
Float_t GetCutGammaSFromDecay() const
Float_t GetCutK0SFromDecay() const
Float_t GetCutMaxDCA() const
{return fCutMaxDCA;}
TClonesArray* GetClustersOfLayer(Int_t il) const
{return fClArr[il];}
void LoadClusters()
void SetTreeRP(TTree* rp)
{fTreeRP = rp;}
void SetTreeRPMix(TTree* rp = 0)
{fTreeRPMix = rp;}
Bool_t AreClustersLoaded() const
{return fClustersLoaded;}
Bool_t GetCreateClustersCopy() const
Bool_t IsRecoDone() const
{return fRecoDone;}
void SetCreateClustersCopy(Bool_t v = kTRUE)
  Float_t* GetClustersArray(Int_t lr)          const {return (Float_t*) (lr==0) ? fClustersLay[0]:fClustersLay[1];}
Float_t* GetClustersArray(Int_t lr) const
Int_t* GetPartnersOfL2() const
{return (Int_t*)fPartners;}
Float_t* GetMinDistsOfL2() const
{return (Float_t*)fMinDists;}
Double_t GetDPhiShift() const
{return fDPhiShift;}
Double_t GetDPhiWindow2() const
{return fDPhiWindow2;}
Double_t GetDThetaWindow2() const
{return fDThetaWindow2;}
void SetClustersLoaded(Bool_t v = kTRUE)