///////////////////////////////////////////////////////////////////////////////// // // // AliFemtoPairCutRadialDistanceV0 - a pair cut which checks // // for some pair qualities that attempt to identify slit/doubly // // reconstructed tracks and also selects pairs based on their separation // // at the entrance to the TPC // // // ///////////////////////////////////////////////////////////////////////////////// /******************************************************************************** * * Author: Johanna Gramling, University of Heidelberg, jgramlin@cern.ch * Malgorzata Janik, Warsaw University of Technology, majanik@cern.ch * Lukasz Graczykowski, Warsaw University of Technology, lgraczyk@cern.ch * ********************************************************************************/ #include "AliFemtoPairCutRadialDistanceV0.h" #include #include #ifdef __ROOT__ ClassImp(AliFemtoPairCutRadialDistanceV0) #endif //__________________ AliFemtoPairCutRadialDistanceV0::AliFemtoPairCutRadialDistanceV0(): AliFemtoPairCutAntiGamma(), fDPhiStarMin(0), fEtaMin(0), fMinRad(0.8), fMagSign(1), fPhistarmin(kTRUE) { } //__________________ AliFemtoPairCutRadialDistanceV0::AliFemtoPairCutRadialDistanceV0(const AliFemtoPairCutRadialDistanceV0& c) : AliFemtoPairCutAntiGamma(c), fDPhiStarMin(0), fEtaMin(0), fMinRad(0.8), fMagSign(1), fPhistarmin(kTRUE) { fDPhiStarMin = c.fDPhiStarMin; fEtaMin = c.fEtaMin; fMinRad = c.fMinRad; fMagSign = c.fMagSign; fPhistarmin = c.fPhistarmin; } //__________________ AliFemtoPairCutRadialDistanceV0::~AliFemtoPairCutRadialDistanceV0(){ /* no-op */ } AliFemtoPairCutRadialDistanceV0& AliFemtoPairCutRadialDistanceV0::operator=(const AliFemtoPairCutRadialDistanceV0& c) { if (this != &c) { fDPhiStarMin = c.fDPhiStarMin; fEtaMin = c.fEtaMin; fMinRad = c.fMinRad; fMagSign = c.fMagSign; fPhistarmin = c.fPhistarmin; } return *this; } //__________________ bool AliFemtoPairCutRadialDistanceV0::Pass(const AliFemtoPair* pair){ // Accept pairs based on their TPC entrance separation and // quality and sharity // bool temp = true; // double pih = 3.14159265358979312; // double pit = 6.28318530717958623; double phi1 = pair->Track1()->Track()->P().Phi(); double phi2 = pair->Track2()->Track()->P().Phi(); double chg1 = pair->Track1()->Track()->Charge(); double chg2 = pair->Track2()->Track()->Charge(); double ptv1 = pair->Track1()->Track()->Pt(); double ptv2 = pair->Track2()->Track()->Pt(); double eta1 = pair->Track1()->Track()->P().PseudoRapidity(); double eta2 = pair->Track2()->Track()->P().PseudoRapidity(); AliAODInputHandler *aodH = dynamic_cast (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()); Double_t magsign = 0.0; if (!aodH) { // AliWarning("Could not get AODInputHandler"); return false; } else { AliAODEvent *fAOD; fAOD = aodH->GetEvent(); magsign = fAOD->GetMagneticField(); } if (magsign > 1) fMagSign = 1; else if ( magsign < 1) fMagSign = -1; else fMagSign = magsign; //cout << "mag sign = " << magsign << endl; Double_t rad; Bool_t pass5 = kTRUE; rad = fMinRad; if (fPhistarmin) { for (rad = 0.8; rad < 2.5; rad += 0.01) { Double_t dps = (phi2-phi1+(TMath::ASin(-0.075*chg2*fMagSign*rad/ptv2))-(TMath::ASin(-0.075*chg1*fMagSign*rad/ptv1))); dps = TVector2::Phi_mpi_pi(dps); Double_t etad = eta2 - eta1; if (fabs(etad)=1.) return kTRUE; if (fabs(afsi1b) >=1.) return kTRUE; Double_t dps = phi2 - phi1 + TMath::ASin(afsi1b) - TMath::ASin(afsi0b); dps = TVector2::Phi_mpi_pi(dps); Double_t etad = eta2 - eta1; if (fabs(etad)AddLast(new TObjString(buf)); return tListSetttings; } void AliFemtoPairCutRadialDistanceV0::SetPhiStarDifferenceMinimum(double dtpc) { fDPhiStarMin = dtpc; } void AliFemtoPairCutRadialDistanceV0::SetEtaDifferenceMinimum(double etpc) { fEtaMin = etpc; } void AliFemtoPairCutRadialDistanceV0::SetMinimumRadius(double minrad) { fMinRad = minrad; } void AliFemtoPairCutRadialDistanceV0::SetMagneticFieldSign(int magsign) { if(magsign>1) fMagSign = 1; else if(magsign<1) fMagSign = -1; else fMagSign = magsign; } void AliFemtoPairCutRadialDistanceV0::SetPhiStarMinPrimDaughter1(Bool_t phistarmin) { fPhistarminPrimDaughter1 = phistarmin; } void AliFemtoPairCutRadialDistanceV0::SetPhiStarMinPrimDaughter2(Bool_t phistarmin) { fPhistarminPrimDaughter2 = phistarmin; }