class AliESDEvent;
class AliESDtrack;
class AliVertex;
+class AliESDVertex;
class AliMultiplicity;
class AliITSMultReconstructor : public AliTrackleter
void LoadClusterFiredChips(TTree* tree);
void FlagClustersInOverlapRegions(Int_t ic1,Int_t ic2);
void FlagTrackClusters(const AliESDtrack* track);
- void FlagIfPrimary(AliESDtrack* track, const AliVertex* vtx);
+ void FlagIfSecondary(AliESDtrack* track, const AliVertex* vtx);
+ void FlagV0s(const AliESDVertex *vtx);
void ProcessESDTracks();
+ Bool_t CanBeElectron(const AliESDtrack* trc) const;
void CreateMultiplicityObject();
//
AliITSDetTypeRec *GetDetTypeRec() const {return fDetTypeRec;}
void SetDetTypeRec(AliITSDetTypeRec *ptr){fDetTypeRec = ptr;}
-
+ //
+ void SetCutPxDrSPDin(Float_t v=0.1) { fCutPxDrSPDin = v;}
+ void SetCutPxDrSPDout(Float_t v=0.15) { fCutPxDrSPDout = v;}
+ 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) { fCutMinElectronProbTPC = v;}
+ void SetCutMinElectronProbESD(Float_t v=0.1) { fCutMinElectronProbESD = v;}
+ void SetCutMinP(Float_t v=0.05) { fCutMinP = v;}
+ void SetCutMinRGamma(Float_t v=2.) { fCutMinRGamma = v;}
+ void SetCutMinRK0(Float_t v=1.) { fCutMinRK0 = v;}
+ void SetCutMinPointAngle(Float_t v=0.98) { fCutMinPointAngle = v;}
+ void SetCutMaxDCADauther(Float_t v=0.5) { fCutMaxDCADauther = v;}
+ void SetCutMassGamma(Float_t v=0.03) { fCutMassGamma = v;}
+ void SetCutMassGammaNSigma(Float_t v=5.) { fCutMassGammaNSigma = v;}
+ void SetCutMassK0(Float_t v=0.03) { fCutMassK0 = v;}
+ void SetCutMassK0NSigma(Float_t v=5.) { fCutMassK0NSigma = v;}
+ void SetCutChi2cGamma(Float_t v=2.) { fCutChi2cGamma = v;}
+ void SetCutChi2cK0(Float_t v=2.) { fCutChi2cK0 = v;}
+ void SetCutGammaSFromDecay(Float_t v=-10.) { fCutGammaSFromDecay = v;}
+ void SetCutK0SFromDecay(Float_t v=-10.) { fCutK0SFromDecay = v;}
+ 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 {return fCutMinElectronProbTPC;}
+ Float_t GetCutMinElectronProbESD() const {return fCutMinElectronProbESD;}
+ Float_t GetCutMinP() const {return fCutMinP;}
+ Float_t GetCutMinRGamma() const {return fCutMinRGamma;}
+ Float_t GetCutMinRK0() const {return fCutMinRK0;}
+ Float_t GetCutMinPointAngle() const {return fCutMinPointAngle;}
+ Float_t GetCutMaxDCADauther() const {return fCutMaxDCADauther;}
+ Float_t GetCutMassGamma() const {return fCutMassGamma;}
+ Float_t GetCutMassGammaNSigma() const {return fCutMassGammaNSigma;}
+ Float_t GetCutMassK0() const {return fCutMassK0;}
+ Float_t GetCutMassK0NSigma() const {return fCutMassK0NSigma;}
+ Float_t GetCutChi2cGamma() const {return fCutChi2cGamma;}
+ Float_t GetCutChi2cK0() const {return fCutChi2cK0;}
+ Float_t GetCutGammaSFromDecay() const {return fCutGammaSFromDecay;}
+ Float_t GetCutK0SFromDecay() const {return fCutK0SFromDecay;}
+ Float_t GetCutMaxDCA() const {return fCutMaxDCA;}
+ //
protected:
AliITSMultReconstructor(const AliITSMultReconstructor& mr);
AliITSMultReconstructor& operator=(const AliITSMultReconstructor& mr);
Int_t fNTracklets; // Number of tracklets
Int_t fNSingleCluster; // Number of unassociated clusters
Short_t fNFiredChips[2]; // Number of fired chips in the two SPD layers
-
+ //
// Following members are set via AliITSRecoParam
+ //
Float_t fPhiWindow; // Search window in phi
Float_t fThetaWindow; // Search window in theta
Float_t fPhiShift; // Phi shift reference value (at 0.5 T)
Float_t fPhiOverlapCut; // Fiducial window in phi for overlap cut
Float_t fZetaOverlapCut; // Fiducial window in eta for overlap cut
+ // cuts for secondaries identification
+ Float_t fCutPxDrSPDin; // max P*DR for primaries involving at least 1 SPD
+ Float_t fCutPxDrSPDout; // max P*DR for primaries not involving any SPD
+ Float_t fCutPxDz; // max P*DZ for primaries
+ Float_t fCutDCArz; // max DR or DZ for primares
+ //
+ // cuts for flagging tracks in V0s
+ Float_t fCutMinElectronProbTPC; // min probability for e+/e- PID involving TPC
+ Float_t fCutMinElectronProbESD; // min probability for e+/e- PID not involving TPC
+ //
+ Float_t fCutMinP; // min P of V0
+ Float_t fCutMinRGamma; // min transv. distance from ESDVertex to V0 for gammas
+ Float_t fCutMinRK0; // min transv. distance from ESDVertex to V0 for K0s
+ Float_t fCutMinPointAngle; // min pointing angle cosine
+ Float_t fCutMaxDCADauther; // max DCA of daughters at V0
+ Float_t fCutMassGamma; // max gamma mass
+ Float_t fCutMassGammaNSigma; // max standard deviations from 0 for gamma
+ Float_t fCutMassK0; // max K0 mass difference from PGD value
+ Float_t fCutMassK0NSigma; // max standard deviations for K0 mass from PDG value
+ Float_t fCutChi2cGamma; // max constrained chi2 cut for gammas
+ Float_t fCutChi2cK0; // max constrained chi2 cut for K0s
+ Float_t fCutGammaSFromDecay; // min path*P for gammas
+ Float_t fCutK0SFromDecay; // min path*P for K0s
+ Float_t fCutMaxDCA; // max DCA for V0 at ESD vertex
+
Bool_t fHistOn; // Option to define and fill the histograms
TH1F* fhClustersDPhiAcc; // Phi2 - Phi1 for tracklets