ROOT logo
#ifndef AliLightCascadeVertexer_H
#define AliLightCascadeVertexer_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

//------------------------------------------------------------------
//                    Cascade Vertexer Class
//          Reads V0s and tracks, writes out cascade vertices
//    Origin: Christian Kuhn, IReS, Strasbourg, christian.kuhn@ires.in2p3.fr
//------------------------------------------------------------------

#include "TObject.h"

class AliESDEvent;
class AliESDv0;
class AliExternalTrackParam;

//_____________________________________________________________________________
class AliLightCascadeVertexer : public TObject {
public:
  AliLightCascadeVertexer();
  void SetCuts(const Double_t cuts[8]);
  static void SetDefaultCuts(const Double_t cuts[8]);

  Int_t V0sTracks2CascadeVertices(AliESDEvent *event);
  Double_t Det(Double_t a00, Double_t a01, Double_t a10, Double_t a11) const;
  Double_t Det(Double_t a00,Double_t a01,Double_t a02,
	       Double_t a10,Double_t a11,Double_t a12,
	       Double_t a20,Double_t a21,Double_t a22) const;

  Double_t PropagateToDCA(AliESDv0 *vtx,AliExternalTrackParam *trk,Double_t b);

  void GetCuts(Double_t cuts[8]) const;
  static void GetDefaultCuts(Double_t cuts[8]);
    
    static void SetDefaultMaxEta(Double_t lMaxEta);
    static void SetDefaultMinClusters(Double_t lMaxEta);
    void SetMaxEta(Double_t lMaxEta);
    void SetMinClusters(Double_t lMaxEta);

private:
  static
  Double_t fgChi2max;   // maximal allowed chi2 
  static
  Double_t fgDV0min;    // min. allowed V0 impact parameter
  static
  Double_t fgMassWin;   // window around the Lambda mass
  static
  Double_t fgDBachMin;  // min. allowed bachelor impact parameter
  static
  Double_t fgDCAmax;    // maximal allowed DCA between the V0 and the track 
  static
  Double_t fgCPAmin;    // minimal allowed cosine of the cascade pointing angle
  static
  Double_t fgRmin, fgRmax;// max & min radii of the fiducial volume
    static Double_t fgMaxEta;       // maximum eta value for track pre-selection
    static Double_t fgMinClusters;  // minimum single-track clusters value (>=)
  
  Double_t fChi2max;    // maximal allowed chi2 
  Double_t fDV0min;     // min. allowed V0 impact parameter
  Double_t fMassWin;    // window around the Lambda mass
  Double_t fDBachMin;   // min. allowed bachelor impact parameter
  Double_t fDCAmax;     // maximal allowed DCA between the V0 and the track 
  Double_t fCPAmin;     // minimal allowed cosine of the cascade pointing angle
  Double_t fRmin, fRmax;// max & min radii of the fiducial volume
    Double_t fMaxEta;       // maximum eta value for track pre-selection
    Double_t fMinClusters;  // minimum single-track clusters value (>=)
  
  ClassDef(AliLightCascadeVertexer,3)  // cascade verterxer 
};

inline AliLightCascadeVertexer::AliLightCascadeVertexer() :
  TObject(),
  fChi2max(fgChi2max), 
  fDV0min(fgDV0min),
  fMassWin(fgMassWin),
  fDBachMin(fgDBachMin),
  fDCAmax(fgDCAmax),
  fCPAmin(fgCPAmin), 
  fRmin(fgRmin),
fRmax(fgRmax),
fMaxEta(fgMaxEta),
fMinClusters(fgMinClusters)
{
}

inline void AliLightCascadeVertexer::SetCuts(const Double_t cuts[8]) {
  fChi2max=cuts[0]; 
  fDV0min=cuts[1];   fMassWin=cuts[2]; fDBachMin=cuts[3];
  fDCAmax=cuts[4];   fCPAmin=cuts[5];
  fRmin=cuts[6];     fRmax=cuts[7]; 
}

inline void AliLightCascadeVertexer::SetDefaultCuts(const Double_t cuts[8]) {
  fgChi2max=cuts[0]; 
  fgDV0min=cuts[1];   fgMassWin=cuts[2]; fgDBachMin=cuts[3];
  fgDCAmax=cuts[4];   fgCPAmin=cuts[5];
  fgRmin=cuts[6];     fgRmax=cuts[7]; 
}

inline void AliLightCascadeVertexer::GetCuts(Double_t cuts[8]) const {
  cuts[0]=fChi2max; 
  cuts[1]=fDV0min;   cuts[2]=fMassWin;  cuts[3]=fDBachMin;
  cuts[4]=fDCAmax;   cuts[5]=fCPAmin;
  cuts[6]=fRmin;     cuts[7]=fRmax; 
}

inline void AliLightCascadeVertexer::GetDefaultCuts(Double_t cuts[8]) {
  cuts[0]=fgChi2max; 
  cuts[1]=fgDV0min;   cuts[2]=fgMassWin;  cuts[3]=fgDBachMin;
  cuts[4]=fgDCAmax;   cuts[5]=fgCPAmin;
  cuts[6]=fgRmin;     cuts[7]=fgRmax; 
}

inline void AliLightCascadeVertexer::SetDefaultMaxEta(Double_t lMaxEta) {
    fgMaxEta = lMaxEta;
}
inline void AliLightCascadeVertexer::SetDefaultMinClusters(Double_t lMinClusters) {
    fgMinClusters = lMinClusters;
}
inline void AliLightCascadeVertexer::SetMaxEta(Double_t lMaxEta) {
    fMaxEta = lMaxEta;
}
inline void AliLightCascadeVertexer::SetMinClusters(Double_t lMinClusters) {
    fMinClusters = lMinClusters;
}

#endif

 AliLightCascadeVertexer.h:1
 AliLightCascadeVertexer.h:2
 AliLightCascadeVertexer.h:3
 AliLightCascadeVertexer.h:4
 AliLightCascadeVertexer.h:5
 AliLightCascadeVertexer.h:6
 AliLightCascadeVertexer.h:7
 AliLightCascadeVertexer.h:8
 AliLightCascadeVertexer.h:9
 AliLightCascadeVertexer.h:10
 AliLightCascadeVertexer.h:11
 AliLightCascadeVertexer.h:12
 AliLightCascadeVertexer.h:13
 AliLightCascadeVertexer.h:14
 AliLightCascadeVertexer.h:15
 AliLightCascadeVertexer.h:16
 AliLightCascadeVertexer.h:17
 AliLightCascadeVertexer.h:18
 AliLightCascadeVertexer.h:19
 AliLightCascadeVertexer.h:20
 AliLightCascadeVertexer.h:21
 AliLightCascadeVertexer.h:22
 AliLightCascadeVertexer.h:23
 AliLightCascadeVertexer.h:24
 AliLightCascadeVertexer.h:25
 AliLightCascadeVertexer.h:26
 AliLightCascadeVertexer.h:27
 AliLightCascadeVertexer.h:28
 AliLightCascadeVertexer.h:29
 AliLightCascadeVertexer.h:30
 AliLightCascadeVertexer.h:31
 AliLightCascadeVertexer.h:32
 AliLightCascadeVertexer.h:33
 AliLightCascadeVertexer.h:34
 AliLightCascadeVertexer.h:35
 AliLightCascadeVertexer.h:36
 AliLightCascadeVertexer.h:37
 AliLightCascadeVertexer.h:38
 AliLightCascadeVertexer.h:39
 AliLightCascadeVertexer.h:40
 AliLightCascadeVertexer.h:41
 AliLightCascadeVertexer.h:42
 AliLightCascadeVertexer.h:43
 AliLightCascadeVertexer.h:44
 AliLightCascadeVertexer.h:45
 AliLightCascadeVertexer.h:46
 AliLightCascadeVertexer.h:47
 AliLightCascadeVertexer.h:48
 AliLightCascadeVertexer.h:49
 AliLightCascadeVertexer.h:50
 AliLightCascadeVertexer.h:51
 AliLightCascadeVertexer.h:52
 AliLightCascadeVertexer.h:53
 AliLightCascadeVertexer.h:54
 AliLightCascadeVertexer.h:55
 AliLightCascadeVertexer.h:56
 AliLightCascadeVertexer.h:57
 AliLightCascadeVertexer.h:58
 AliLightCascadeVertexer.h:59
 AliLightCascadeVertexer.h:60
 AliLightCascadeVertexer.h:61
 AliLightCascadeVertexer.h:62
 AliLightCascadeVertexer.h:63
 AliLightCascadeVertexer.h:64
 AliLightCascadeVertexer.h:65
 AliLightCascadeVertexer.h:66
 AliLightCascadeVertexer.h:67
 AliLightCascadeVertexer.h:68
 AliLightCascadeVertexer.h:69
 AliLightCascadeVertexer.h:70
 AliLightCascadeVertexer.h:71
 AliLightCascadeVertexer.h:72
 AliLightCascadeVertexer.h:73
 AliLightCascadeVertexer.h:74
 AliLightCascadeVertexer.h:75
 AliLightCascadeVertexer.h:76
 AliLightCascadeVertexer.h:77
 AliLightCascadeVertexer.h:78
 AliLightCascadeVertexer.h:79
 AliLightCascadeVertexer.h:80
 AliLightCascadeVertexer.h:81
 AliLightCascadeVertexer.h:82
 AliLightCascadeVertexer.h:83
 AliLightCascadeVertexer.h:84
 AliLightCascadeVertexer.h:85
 AliLightCascadeVertexer.h:86
 AliLightCascadeVertexer.h:87
 AliLightCascadeVertexer.h:88
 AliLightCascadeVertexer.h:89
 AliLightCascadeVertexer.h:90
 AliLightCascadeVertexer.h:91
 AliLightCascadeVertexer.h:92
 AliLightCascadeVertexer.h:93
 AliLightCascadeVertexer.h:94
 AliLightCascadeVertexer.h:95
 AliLightCascadeVertexer.h:96
 AliLightCascadeVertexer.h:97
 AliLightCascadeVertexer.h:98
 AliLightCascadeVertexer.h:99
 AliLightCascadeVertexer.h:100
 AliLightCascadeVertexer.h:101
 AliLightCascadeVertexer.h:102
 AliLightCascadeVertexer.h:103
 AliLightCascadeVertexer.h:104
 AliLightCascadeVertexer.h:105
 AliLightCascadeVertexer.h:106
 AliLightCascadeVertexer.h:107
 AliLightCascadeVertexer.h:108
 AliLightCascadeVertexer.h:109
 AliLightCascadeVertexer.h:110
 AliLightCascadeVertexer.h:111
 AliLightCascadeVertexer.h:112
 AliLightCascadeVertexer.h:113
 AliLightCascadeVertexer.h:114
 AliLightCascadeVertexer.h:115
 AliLightCascadeVertexer.h:116
 AliLightCascadeVertexer.h:117
 AliLightCascadeVertexer.h:118
 AliLightCascadeVertexer.h:119
 AliLightCascadeVertexer.h:120
 AliLightCascadeVertexer.h:121
 AliLightCascadeVertexer.h:122
 AliLightCascadeVertexer.h:123
 AliLightCascadeVertexer.h:124
 AliLightCascadeVertexer.h:125
 AliLightCascadeVertexer.h:126
 AliLightCascadeVertexer.h:127
 AliLightCascadeVertexer.h:128
 AliLightCascadeVertexer.h:129