1 #ifndef ALIAODRECODECAYHF_H 2 #define ALIAODRECODECAYHF_H 15 #include "AliAODTrack.h" 16 #include "AliAODRecoDecay.h" 68 {
return AliAODRecoDecay::NormalizedDecayLength(
GetPrimaryVtx());}
70 {
return AliAODRecoDecay::NormalizedDecayLength2(
GetPrimaryVtx());}
74 {
return AliAODRecoDecay::DecayLengthXYError(
GetPrimaryVtx());}
76 {
return AliAODRecoDecay::NormalizedDecayLengthXY(
GetPrimaryVtx());}
82 {
return AliAODRecoDecay::CosPointingAngleXY(
GetPrimaryVtx());}
86 {
return AliAODRecoDecay::QtProngFlightLine(ip,
GetPrimaryVtx());}
88 {
return AliAODRecoDecay::QlProngFlightLine(ip,
GetPrimaryVtx());}
155 if(nIDs!=GetNProngs()) {
156 printf(
"Wrong number of IDs, must be nProngs\n");
161 for(
Int_t i=0;i<nIDs;i++)
170 Int_t ndg=GetNDaughters();
172 printf(
"Daughters not available\n");
175 Int_t chargeDg0 = ((AliAODTrack*)GetDaughter(0))->Charge();
177 for(
Int_t i=1; i<ndg; i++) {
178 if(chargeDg0!=((AliAODTrack*)GetDaughter(i))->Charge())
return kFALSE;
200 printf(
"ERROR: layer has to be in the range 0-5\n");
203 AliAODTrack *t = (AliAODTrack*)GetDaughter(dg);
204 if(!t)
return kFALSE;
206 return TESTBIT(t->GetITSClusterMap(),l);
214 for(
Int_t i=0; i<GetNDaughters(); i++) {
215 AliAODTrack *track=(AliAODTrack*)GetDaughter(i);
217 if(track->Charge()==0) {
218 AliAODRecoDecay *rd=(AliAODRecoDecay*)GetDaughter(i);
219 for(
Int_t j=0; j<rd->GetNDaughters(); j++) {
220 AliAODTrack *track2=(AliAODTrack*)GetDaughter(j);
221 if(track2->GetLabel()<0) nfakes++;
226 if(track->GetLabel()<0) nfakes++;
233 if(nprongs!=GetNProngs()) {
234 printf(
"Wrong number of d0 err values, must be nProngs\n");
238 fd0err =
new Double32_t[nprongs];
240 for(
Int_t i=0;i<nprongs;i++) {
251 for(
Int_t iDau=0; iDau<GetNDaughters(); iDau++){
252 if (GetDaughter(iDau)==NULL)
continue;
253 AliAODTrack* at=
dynamic_cast<AliAODTrack*
>(GetDaughter(iDau));
255 if(at->Charge()==0)
continue;
256 if(at->GetTPCNcls()==0)
continue;
257 if(!(at->TestFilterMask(BIT(4))))
return kTRUE;
Double_t * fd0err
error on prongs rphi impact param [cm]
Double_t NormalizedDecayLengthXY() const
Double_t NormalizedDecayLength() const
AliAODRecoDecayHF & operator=(const AliAODRecoDecayHF &source)
void SetSelectionBit(Int_t i)
selection map
void UnsetOwnSecondaryVtx()
void Getd0MeasMinusExpProng(Int_t ip, Double_t magf, Double_t &d0diff, Double_t &errd0diff) const
virtual ~AliAODRecoDecayHF()
Bool_t HasSelectionBit(Int_t i) const
Double_t Ct(UInt_t pdg) const
void UnsetOwnPrimaryVtx()
TList * GetListOfCuts() const
AliAODVertex * fOwnPrimaryVtx
TPC+ITS tracks not passing the StandardCuts2010 with loose DCA.
Double_t NormalizedDecayLength2() const
Double_t ImpParXY() const
Int_t fIsFilled
used to store outcome of selection in AliAnalysisVertexingHF
Double_t CosPointingAngleXY() const
virtual void DeleteRecoD()
ULong_t GetSelectionMap() const
AliAODVertex * GetPrimaryVtxRef() const
void RecalculateImpPars(AliAODVertex *vtxAODNew, AliAODEvent *aod)
Bool_t HasBadDaughters() const
void GetOwnPrimaryVtx(Double_t vtx[3]) const
AliRDHFCuts * GetCuts(const char *name) const
Int_t GetIsFilled() const
void SetListOfCutsRef(TObject *obj)
list of cuts
AliAODVertex * GetOwnPrimaryVtx() const
void SetProngIDs(Int_t nIDs, UShort_t *id)
Double_t Getd0errProng(Int_t ip) const
prongs
UShort_t GetProngID(Int_t ip) const
UShort_t * fProngID
track ID of daughters
AliAODVertex * RemoveDaughtersFromPrimaryVtx(AliAODEvent *aod)
Double_t DecayLength2() const
kinematics & topology
void SetPrimaryVtxRef(TObject *vtx)
primary vertex
void Misalign(TString misal="null")
misalign
Bool_t DaughterHasPointOnITSLayer(Int_t dg, Int_t l) const
ITS clustermap for daughters.
void SetOwnPrimaryVtx(const AliAODVertex *vtx)
Double_t DecayLengthXY() const
TRef fEventPrimaryVtx
primary vertex for this candidate
Double_t Normalizedd0Prong(Int_t ip) const
void Setd0errProngs(Int_t nprongs, Double_t *d0)
Int_t fNProngsHF
ref to the list of analysis cuts
TRef fListOfCuts
ref to primary vertex of the event
Double_t DecayLengthError() const
Int_t NumberOfFakeDaughters() const
Double_t QlProngFlightLine(Int_t ip) const
void CheckOwnPrimaryVtx() const
AliAODVertex * GetPrimaryVtx() const
Double_t QtProngFlightLine(Int_t ip) const
AliKFParticle * ApplyVertexingKF(Int_t *iprongs, Int_t nprongs, Int_t *pdgs, Bool_t topoCostraint, Double_t bzkG, Double_t *mass) const
vertexing KF:
Double_t CosPointingAngle() const
Double_t DecayLengthXYError() const
Double_t DecayLength() const
Bool_t IsLikeSign() const
check if it is like-sign
void SetIsFilled(Int_t filled)