ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *               
 *                                                                        *               
 * Author: The ALICE Off-line Project.                                    *               
 * Contributors are mentioned in the code where appropriate.              *               
 *                                                                        *               
 * Permission to use, copy, modify and distribute this software and its   *               
 * documentation strictly for non-commercial purposes is hereby granted   *               
 * without fee, provided that the above copyright notice appears in all   *               
 * copies and that both the copyright notice and this permission notice   *               
 * appear in the supporting documentation. The authors make no claims     *               
 * about the suitability of this software for any purpose. It is          *               
 * provided "as is" without express or implied warranty.                  *               
 **************************************************************************/


////////////////////////////////////////////////////////////////////////
//                                                                    //
//  Class for the Selection of Non-Heavy-Flavour-Electrons trought 	  //
//	the invariant mass method. The selection can be done from two	  //
//  diferent algorithms, which can be choosed calling the function    //
//  "SetAlgorithm(TString Algorithm)".								  //
//                                                                    //
//  		Author: Elienos Pereira de Oliveira Filho				  // 
//					(University of São Paulo)               	      //
//                                                                    //
////////////////////////////////////////////////////////////////////////

#include "TH1F.h"
#include "TMath.h"
#include "TLorentzVector.h"
#include "AliAODTrack.h"
#include "AliESDtrack.h"
#include "AliVEvent.h"
#include "AliESDtrackCuts.h"
#include "AliVTrack.h"
#include "AliVParticle.h"
#include "AliPIDResponse.h"
#include "AliPID.h"
#include "AliExternalTrackParam.h"
#include "AliSelectNonHFE.h"
#include "AliKFParticle.h"
#include "AliLog.h"
#include "stdio.h"
#include "iostream"
#include "fstream"

ClassImp(AliSelectNonHFE)
//________________________________________________________________________
AliSelectNonHFE::AliSelectNonHFE(const char *name, const Char_t *title) 
: TNamed(name, title)
  ,fTrackCuts(0)
  ,fAlgorithm("DCA")
  ,fAngleCut(999)
  ,fdcaCut(999)
  ,fTPCnSigmaMin(-3)
  ,fTPCnSigmaMax(3)
  ,fMassCut(0.5)
  ,fChi2OverNDFCut(999)
  ,fPtMin(0.3)
  ,fIsLS(kFALSE)
  ,fIsULS(kFALSE)
  ,fIsAOD(kFALSE)
  ,fHasPtCut(kFALSE)
  ,fNLS(0)
  ,fNULS(0)
  ,fTpcNcls(50)
  ,fLSPartner(0)
  ,fULSPartner(0)
  ,fHistMass(0)
  ,fHistMassBack(0)
  ,fHistDCA(0)
  ,fHistDCABack(0)
  ,fHistAngle(0)
  ,fHistAngleBack(0)
  ,fPIDResponse(0)
{
  //
  // Constructor
  //
  
  fTrackCuts = new AliESDtrackCuts();
  //Configure Default Track Cuts
  fTrackCuts->SetAcceptKinkDaughters(kFALSE);
  fTrackCuts->SetRequireTPCRefit(kTRUE);
  fTrackCuts->SetEtaRange(-0.9,0.9);
  fTrackCuts->SetRequireSigmaToVertex(kTRUE);
  fTrackCuts->SetMaxChi2PerClusterTPC(4.0);
  fTrackCuts->SetMinNClustersTPC(50);
  fTrackCuts->SetPtRange(0.3,1e10);
  
 
}

//________________________________________________________________________
AliSelectNonHFE::AliSelectNonHFE() 
  : TNamed()
  ,fTrackCuts(0)
  ,fAlgorithm("DCA")
  ,fAngleCut(999)
  ,fdcaCut(999)
  ,fTPCnSigmaMin(-3)
  ,fTPCnSigmaMax(3)
  ,fMassCut(0.5)
  ,fChi2OverNDFCut(999)
  ,fPtMin(0.3)
  ,fIsLS(kFALSE)
  ,fIsULS(kFALSE)
  ,fIsAOD(kFALSE)
  ,fHasPtCut(kFALSE)
  ,fNLS(0)
  ,fNULS(0)
  ,fTpcNcls(50)
  ,fLSPartner(0)
  ,fULSPartner(0)
  ,fHistMass(0)
  ,fHistMassBack(0)
  ,fHistDCA(0)
  ,fHistDCABack(0)
  ,fHistAngle(0)
  ,fHistAngleBack(0)
  ,fPIDResponse(0)
{
  //
  // Constructor
  //  
  
  fTrackCuts = new AliESDtrackCuts();
  //Configure Default Track Cuts
  fTrackCuts->SetAcceptKinkDaughters(kFALSE);
  fTrackCuts->SetRequireTPCRefit(kTRUE);
  fTrackCuts->SetEtaRange(-0.9,0.9);
  fTrackCuts->SetRequireSigmaToVertex(kTRUE);
  fTrackCuts->SetMaxChi2PerClusterTPC(4.0);
  fTrackCuts->SetMinNClustersTPC(50);
  fTrackCuts->SetPtRange(0.3,1e10);
  
  
}

//_________________________________________
AliSelectNonHFE::~AliSelectNonHFE()
{
  //
  // Destructor
  //

  if(fTrackCuts) delete fTrackCuts;
  if(fLSPartner) delete [] fLSPartner;
  if(fULSPartner) delete [] fULSPartner;
 

}

//__________________________________________
void AliSelectNonHFE::FindNonHFE(Int_t iTrack1, AliVParticle *Vtrack1, AliVEvent *fVevent)
{	
  AliVTrack *track1 = dynamic_cast<AliVTrack*>(Vtrack1);
  AliESDtrack *etrack1 = dynamic_cast<AliESDtrack*>(Vtrack1); 
  AliExternalTrackParam *extTrackParam1=NULL; 
  AliExternalTrackParam *extTrackParam2=NULL;
  if(fAlgorithm=="DCA")
  {
	extTrackParam1 = new AliExternalTrackParam();
    extTrackParam1->CopyFromVTrack(track1);
	}
  //
  // Find non HFE electrons
  //

  //Magnetic Field
  Double_t bfield = fVevent->GetMagneticField();
  
  //Second Track loop
  
  fIsULS = kFALSE; 	//Non-HFE Unlike signal Flag
  fIsLS = kFALSE; 	//Non-HFE like signal Flag
  fNULS = 0; 		//Non-HFE Unlike signal Flag
  fNLS = 0; 		//Non-HFE like signal Flag
  
  if(fLSPartner) delete [] fLSPartner;
  if(fULSPartner) delete [] fULSPartner;
  fLSPartner = new int [100]; 	//store the partners index
  fULSPartner = new int [100];	//store the partners index
  
  for(Int_t iTrack2 = 0; iTrack2 < fVevent->GetNumberOfTracks(); iTrack2++) 
    {
      if(iTrack1==iTrack2) continue;
		
      AliVParticle* Vtrack2 = fVevent->GetTrack(iTrack2);
      if (!Vtrack2) 
	{
	  printf("ERROR: Could not receive track %d\n", iTrack2);
	  continue;
	}
     
      AliVTrack *track2 = dynamic_cast<AliVTrack*>(Vtrack2);
      AliAODTrack *atrack2 = dynamic_cast<AliAODTrack*>(Vtrack2);
      AliESDtrack *etrack2 = dynamic_cast<AliESDtrack*>(Vtrack2);
		
      if(fAlgorithm=="DCA")	
      {
		  extTrackParam2 = new AliExternalTrackParam();
			extTrackParam2->CopyFromVTrack(track2); 
		}
		
      //Second track cuts
      if(fIsAOD) 
	{
	  if(!atrack2->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
	  if((!(atrack2->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrack2->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
	  if(atrack2->GetTPCNcls() < fTpcNcls) continue; 
	}
      else
	{   
	  if(!fTrackCuts->AcceptTrack(etrack2)) continue;
	}
      
      //Second track pid
      Double_t tpcNsigma2 = fPIDResponse->NumberOfSigmasTPC(track2,AliPID::kElectron);
      if(tpcNsigma2<fTPCnSigmaMin || tpcNsigma2>fTPCnSigmaMax) continue;
      
      //Pt Cut
      if((track2->Pt() < fPtMin) && (fHasPtCut)) continue;
      
      if(fAlgorithm=="DCA")
	{
	  //Variables
	  Double_t p1[3];
	  Double_t p2[3];
	  Double_t xt1; //radial position track 1 at the DCA point
	  Double_t xt2; //radial position track 2 at the DCA point
	  Double_t dca12; //DCA 1-2
	  Bool_t hasdcaT1;
	  Bool_t hasdcaT2;
	  
	  if(fIsAOD)
	  {
		  //DCA track1-track2
		  dca12 = extTrackParam2->GetDCA(extTrackParam1,bfield,xt2,xt1);
		  
		  //Momento of the track extrapolated to DCA track-track	
		  //Track1
		  hasdcaT1 = extTrackParam1->GetPxPyPzAt(xt1,bfield,p1);
		  //Track2
		  hasdcaT2 = extTrackParam2->GetPxPyPzAt(xt2,bfield,p2);
	  }
	  else
	  {
		  //DCA track1-track2
		  dca12 = etrack2->GetDCA(etrack1,bfield,xt2,xt1);
		  
		  //Momento of the track extrapolated to DCA track-track	
		  //Track1
		  hasdcaT1 = etrack1->GetPxPyPzAt(xt1,bfield,p1);
		  //Track2
		  hasdcaT2 = etrack2->GetPxPyPzAt(xt2,bfield,p2);
	  }
	  
	  if(!hasdcaT1 || !hasdcaT2) AliWarning("It could be a problem in the extrapolation");
	  
	  //track1-track2 Invariant Mass
	  Double_t eMass = 0.000510998910; //Electron mass in GeV
	  Double_t pP1 = sqrt(p1[0]*p1[0]+p1[1]*p1[1]+p1[2]*p1[2]); //Track 1 momentum
	  Double_t pP2 = sqrt(p2[0]*p2[0]+p2[1]*p2[1]+p2[2]*p2[2]); //Track 1 momentum
	  
	  //Double_t E1 = sqrt(eMass*eMass+pP1*pP1);
	  //Double_t E2 = sqrt(eMass*eMass+pP2*pP2);
	  //Double_t imass = sqrt(2*eMass*eMass+2*(E1*E2-(p1[0]*p2[0]+p1[1]*p2[1]+p1[2]*p2[2])));
	  //Double_t angle = TMath::ACos((p1[0]*p2[0]+p1[1]*p2[1]+p1[2]*p2[2])/(pP1*pP2));
	  
	  TLorentzVector v1(p1[0],p1[1],p1[2],sqrt(eMass*eMass+pP1*pP1));
	  TLorentzVector v2(p2[0],p2[1],p2[2],sqrt(eMass*eMass+pP2*pP2));
	  Double_t imass = (v1+v2).M(); //Invariant Mass
	  Double_t angle = v1.Angle(v2.Vect()); //Opening Angle (Total Angle)
	  
	  Float_t fCharge1 = track1->Charge();
	  Float_t fCharge2 = track2->Charge();
	  
	  if(imass<fMassCut && angle<fAngleCut && dca12<fdcaCut)
	    {
	      if(fCharge1*fCharge2<0)
		{
		  fIsULS=kTRUE;
		  fULSPartner[fNULS] = iTrack2;
		  fNULS++;
		}
	      if(fCharge1*fCharge2>0)
		{
		  fIsLS=kTRUE;
		  fLSPartner[fNLS] = iTrack2;
		  fNLS++;
		}
	    }
	  
	  //Fill some histograms
	  if(fCharge1*fCharge2<0 && fHistMass) fHistMass->Fill(imass);
	  if(fCharge1*fCharge2>0 && fHistMassBack) fHistMassBack->Fill(imass);
	  
	  if(fCharge1*fCharge2<0 && fHistDCA) fHistDCA->Fill(dca12);
	  if(fCharge1*fCharge2>0 && fHistDCABack) fHistDCABack->Fill(dca12);
	  
	  if(fCharge1*fCharge2<0 && fHistAngle) fHistAngle->Fill(angle);
	  if(fCharge1*fCharge2>0 && fHistAngleBack) fHistAngleBack->Fill(angle);
	  
	}
      else if(fAlgorithm=="KF")
	{
	  Int_t fPDGtrack1 = 11; 
	  Int_t fPDGtrack2 = 11;
	  
	  Float_t fCharge1 = track1->Charge();
	  Float_t fCharge2 = track2->Charge();
	  
	  if(fCharge1>0) fPDGtrack1 = -11;
	  if(fCharge2>0) fPDGtrack2 = -11;
	  
	  AliKFParticle::SetField(bfield);
	  AliKFParticle fKFtrack1(*track1, fPDGtrack1);
	  AliKFParticle fKFtrack2(*track2, fPDGtrack2);
	  AliKFParticle fRecoGamma(fKFtrack1, fKFtrack2);
	  
	  //Reconstruction Cuts
	  if(fRecoGamma.GetNDF()<1) continue;
	  Double_t chi2OverNDF = fRecoGamma.GetChi2()/fRecoGamma.GetNDF();
	  if(TMath::Sqrt(TMath::Abs(chi2OverNDF))>fChi2OverNDFCut) continue;
	  
	  //Invariant Mass
	  Double_t imass; 
	  Double_t width;
	  fRecoGamma.GetMass(imass,width);
	  
	  //Opening Angle (Total Angle)
	  Double_t angle = fKFtrack1.GetAngle(fKFtrack2);
	  
	  //Fill some histograms	
	  if(fCharge1*fCharge2<0 && fHistAngle) fHistAngle->Fill(angle);
	  if(fCharge1*fCharge2>0 && fHistAngleBack) fHistAngleBack->Fill(angle);
	  
	  if(angle>fAngleCut) continue;
	  
	  if(imass<fMassCut)
	    {
	      if(fCharge1*fCharge2<0)
		{
		  fIsULS=kTRUE;
		  fULSPartner[fNULS] = iTrack2;
		  fNULS++;
		}
	      if(fCharge1*fCharge2>0)
		{
		  fIsLS=kTRUE;
		  fLSPartner[fNLS] = iTrack2;
		  fNLS++;
		}
	    }
	  
	  //Fill some histograms
	  if(fCharge1*fCharge2<0 && fHistMass) fHistMass->Fill(imass);
	  if(fCharge1*fCharge2>0 && fHistMassBack) fHistMassBack->Fill(imass);
	  
	}
      else
	{
	  AliError( Form("Error: %s is not a valid algorithm option.",(const char*)fAlgorithm));
	  return;
	}
      if(extTrackParam2) delete extTrackParam2;     

    }

    
  if(extTrackParam1) delete extTrackParam1;

  
  return;
}
 AliSelectNonHFE.cxx:1
 AliSelectNonHFE.cxx:2
 AliSelectNonHFE.cxx:3
 AliSelectNonHFE.cxx:4
 AliSelectNonHFE.cxx:5
 AliSelectNonHFE.cxx:6
 AliSelectNonHFE.cxx:7
 AliSelectNonHFE.cxx:8
 AliSelectNonHFE.cxx:9
 AliSelectNonHFE.cxx:10
 AliSelectNonHFE.cxx:11
 AliSelectNonHFE.cxx:12
 AliSelectNonHFE.cxx:13
 AliSelectNonHFE.cxx:14
 AliSelectNonHFE.cxx:15
 AliSelectNonHFE.cxx:16
 AliSelectNonHFE.cxx:17
 AliSelectNonHFE.cxx:18
 AliSelectNonHFE.cxx:19
 AliSelectNonHFE.cxx:20
 AliSelectNonHFE.cxx:21
 AliSelectNonHFE.cxx:22
 AliSelectNonHFE.cxx:23
 AliSelectNonHFE.cxx:24
 AliSelectNonHFE.cxx:25
 AliSelectNonHFE.cxx:26
 AliSelectNonHFE.cxx:27
 AliSelectNonHFE.cxx:28
 AliSelectNonHFE.cxx:29
 AliSelectNonHFE.cxx:30
 AliSelectNonHFE.cxx:31
 AliSelectNonHFE.cxx:32
 AliSelectNonHFE.cxx:33
 AliSelectNonHFE.cxx:34
 AliSelectNonHFE.cxx:35
 AliSelectNonHFE.cxx:36
 AliSelectNonHFE.cxx:37
 AliSelectNonHFE.cxx:38
 AliSelectNonHFE.cxx:39
 AliSelectNonHFE.cxx:40
 AliSelectNonHFE.cxx:41
 AliSelectNonHFE.cxx:42
 AliSelectNonHFE.cxx:43
 AliSelectNonHFE.cxx:44
 AliSelectNonHFE.cxx:45
 AliSelectNonHFE.cxx:46
 AliSelectNonHFE.cxx:47
 AliSelectNonHFE.cxx:48
 AliSelectNonHFE.cxx:49
 AliSelectNonHFE.cxx:50
 AliSelectNonHFE.cxx:51
 AliSelectNonHFE.cxx:52
 AliSelectNonHFE.cxx:53
 AliSelectNonHFE.cxx:54
 AliSelectNonHFE.cxx:55
 AliSelectNonHFE.cxx:56
 AliSelectNonHFE.cxx:57
 AliSelectNonHFE.cxx:58
 AliSelectNonHFE.cxx:59
 AliSelectNonHFE.cxx:60
 AliSelectNonHFE.cxx:61
 AliSelectNonHFE.cxx:62
 AliSelectNonHFE.cxx:63
 AliSelectNonHFE.cxx:64
 AliSelectNonHFE.cxx:65
 AliSelectNonHFE.cxx:66
 AliSelectNonHFE.cxx:67
 AliSelectNonHFE.cxx:68
 AliSelectNonHFE.cxx:69
 AliSelectNonHFE.cxx:70
 AliSelectNonHFE.cxx:71
 AliSelectNonHFE.cxx:72
 AliSelectNonHFE.cxx:73
 AliSelectNonHFE.cxx:74
 AliSelectNonHFE.cxx:75
 AliSelectNonHFE.cxx:76
 AliSelectNonHFE.cxx:77
 AliSelectNonHFE.cxx:78
 AliSelectNonHFE.cxx:79
 AliSelectNonHFE.cxx:80
 AliSelectNonHFE.cxx:81
 AliSelectNonHFE.cxx:82
 AliSelectNonHFE.cxx:83
 AliSelectNonHFE.cxx:84
 AliSelectNonHFE.cxx:85
 AliSelectNonHFE.cxx:86
 AliSelectNonHFE.cxx:87
 AliSelectNonHFE.cxx:88
 AliSelectNonHFE.cxx:89
 AliSelectNonHFE.cxx:90
 AliSelectNonHFE.cxx:91
 AliSelectNonHFE.cxx:92
 AliSelectNonHFE.cxx:93
 AliSelectNonHFE.cxx:94
 AliSelectNonHFE.cxx:95
 AliSelectNonHFE.cxx:96
 AliSelectNonHFE.cxx:97
 AliSelectNonHFE.cxx:98
 AliSelectNonHFE.cxx:99
 AliSelectNonHFE.cxx:100
 AliSelectNonHFE.cxx:101
 AliSelectNonHFE.cxx:102
 AliSelectNonHFE.cxx:103
 AliSelectNonHFE.cxx:104
 AliSelectNonHFE.cxx:105
 AliSelectNonHFE.cxx:106
 AliSelectNonHFE.cxx:107
 AliSelectNonHFE.cxx:108
 AliSelectNonHFE.cxx:109
 AliSelectNonHFE.cxx:110
 AliSelectNonHFE.cxx:111
 AliSelectNonHFE.cxx:112
 AliSelectNonHFE.cxx:113
 AliSelectNonHFE.cxx:114
 AliSelectNonHFE.cxx:115
 AliSelectNonHFE.cxx:116
 AliSelectNonHFE.cxx:117
 AliSelectNonHFE.cxx:118
 AliSelectNonHFE.cxx:119
 AliSelectNonHFE.cxx:120
 AliSelectNonHFE.cxx:121
 AliSelectNonHFE.cxx:122
 AliSelectNonHFE.cxx:123
 AliSelectNonHFE.cxx:124
 AliSelectNonHFE.cxx:125
 AliSelectNonHFE.cxx:126
 AliSelectNonHFE.cxx:127
 AliSelectNonHFE.cxx:128
 AliSelectNonHFE.cxx:129
 AliSelectNonHFE.cxx:130
 AliSelectNonHFE.cxx:131
 AliSelectNonHFE.cxx:132
 AliSelectNonHFE.cxx:133
 AliSelectNonHFE.cxx:134
 AliSelectNonHFE.cxx:135
 AliSelectNonHFE.cxx:136
 AliSelectNonHFE.cxx:137
 AliSelectNonHFE.cxx:138
 AliSelectNonHFE.cxx:139
 AliSelectNonHFE.cxx:140
 AliSelectNonHFE.cxx:141
 AliSelectNonHFE.cxx:142
 AliSelectNonHFE.cxx:143
 AliSelectNonHFE.cxx:144
 AliSelectNonHFE.cxx:145
 AliSelectNonHFE.cxx:146
 AliSelectNonHFE.cxx:147
 AliSelectNonHFE.cxx:148
 AliSelectNonHFE.cxx:149
 AliSelectNonHFE.cxx:150
 AliSelectNonHFE.cxx:151
 AliSelectNonHFE.cxx:152
 AliSelectNonHFE.cxx:153
 AliSelectNonHFE.cxx:154
 AliSelectNonHFE.cxx:155
 AliSelectNonHFE.cxx:156
 AliSelectNonHFE.cxx:157
 AliSelectNonHFE.cxx:158
 AliSelectNonHFE.cxx:159
 AliSelectNonHFE.cxx:160
 AliSelectNonHFE.cxx:161
 AliSelectNonHFE.cxx:162
 AliSelectNonHFE.cxx:163
 AliSelectNonHFE.cxx:164
 AliSelectNonHFE.cxx:165
 AliSelectNonHFE.cxx:166
 AliSelectNonHFE.cxx:167
 AliSelectNonHFE.cxx:168
 AliSelectNonHFE.cxx:169
 AliSelectNonHFE.cxx:170
 AliSelectNonHFE.cxx:171
 AliSelectNonHFE.cxx:172
 AliSelectNonHFE.cxx:173
 AliSelectNonHFE.cxx:174
 AliSelectNonHFE.cxx:175
 AliSelectNonHFE.cxx:176
 AliSelectNonHFE.cxx:177
 AliSelectNonHFE.cxx:178
 AliSelectNonHFE.cxx:179
 AliSelectNonHFE.cxx:180
 AliSelectNonHFE.cxx:181
 AliSelectNonHFE.cxx:182
 AliSelectNonHFE.cxx:183
 AliSelectNonHFE.cxx:184
 AliSelectNonHFE.cxx:185
 AliSelectNonHFE.cxx:186
 AliSelectNonHFE.cxx:187
 AliSelectNonHFE.cxx:188
 AliSelectNonHFE.cxx:189
 AliSelectNonHFE.cxx:190
 AliSelectNonHFE.cxx:191
 AliSelectNonHFE.cxx:192
 AliSelectNonHFE.cxx:193
 AliSelectNonHFE.cxx:194
 AliSelectNonHFE.cxx:195
 AliSelectNonHFE.cxx:196
 AliSelectNonHFE.cxx:197
 AliSelectNonHFE.cxx:198
 AliSelectNonHFE.cxx:199
 AliSelectNonHFE.cxx:200
 AliSelectNonHFE.cxx:201
 AliSelectNonHFE.cxx:202
 AliSelectNonHFE.cxx:203
 AliSelectNonHFE.cxx:204
 AliSelectNonHFE.cxx:205
 AliSelectNonHFE.cxx:206
 AliSelectNonHFE.cxx:207
 AliSelectNonHFE.cxx:208
 AliSelectNonHFE.cxx:209
 AliSelectNonHFE.cxx:210
 AliSelectNonHFE.cxx:211
 AliSelectNonHFE.cxx:212
 AliSelectNonHFE.cxx:213
 AliSelectNonHFE.cxx:214
 AliSelectNonHFE.cxx:215
 AliSelectNonHFE.cxx:216
 AliSelectNonHFE.cxx:217
 AliSelectNonHFE.cxx:218
 AliSelectNonHFE.cxx:219
 AliSelectNonHFE.cxx:220
 AliSelectNonHFE.cxx:221
 AliSelectNonHFE.cxx:222
 AliSelectNonHFE.cxx:223
 AliSelectNonHFE.cxx:224
 AliSelectNonHFE.cxx:225
 AliSelectNonHFE.cxx:226
 AliSelectNonHFE.cxx:227
 AliSelectNonHFE.cxx:228
 AliSelectNonHFE.cxx:229
 AliSelectNonHFE.cxx:230
 AliSelectNonHFE.cxx:231
 AliSelectNonHFE.cxx:232
 AliSelectNonHFE.cxx:233
 AliSelectNonHFE.cxx:234
 AliSelectNonHFE.cxx:235
 AliSelectNonHFE.cxx:236
 AliSelectNonHFE.cxx:237
 AliSelectNonHFE.cxx:238
 AliSelectNonHFE.cxx:239
 AliSelectNonHFE.cxx:240
 AliSelectNonHFE.cxx:241
 AliSelectNonHFE.cxx:242
 AliSelectNonHFE.cxx:243
 AliSelectNonHFE.cxx:244
 AliSelectNonHFE.cxx:245
 AliSelectNonHFE.cxx:246
 AliSelectNonHFE.cxx:247
 AliSelectNonHFE.cxx:248
 AliSelectNonHFE.cxx:249
 AliSelectNonHFE.cxx:250
 AliSelectNonHFE.cxx:251
 AliSelectNonHFE.cxx:252
 AliSelectNonHFE.cxx:253
 AliSelectNonHFE.cxx:254
 AliSelectNonHFE.cxx:255
 AliSelectNonHFE.cxx:256
 AliSelectNonHFE.cxx:257
 AliSelectNonHFE.cxx:258
 AliSelectNonHFE.cxx:259
 AliSelectNonHFE.cxx:260
 AliSelectNonHFE.cxx:261
 AliSelectNonHFE.cxx:262
 AliSelectNonHFE.cxx:263
 AliSelectNonHFE.cxx:264
 AliSelectNonHFE.cxx:265
 AliSelectNonHFE.cxx:266
 AliSelectNonHFE.cxx:267
 AliSelectNonHFE.cxx:268
 AliSelectNonHFE.cxx:269
 AliSelectNonHFE.cxx:270
 AliSelectNonHFE.cxx:271
 AliSelectNonHFE.cxx:272
 AliSelectNonHFE.cxx:273
 AliSelectNonHFE.cxx:274
 AliSelectNonHFE.cxx:275
 AliSelectNonHFE.cxx:276
 AliSelectNonHFE.cxx:277
 AliSelectNonHFE.cxx:278
 AliSelectNonHFE.cxx:279
 AliSelectNonHFE.cxx:280
 AliSelectNonHFE.cxx:281
 AliSelectNonHFE.cxx:282
 AliSelectNonHFE.cxx:283
 AliSelectNonHFE.cxx:284
 AliSelectNonHFE.cxx:285
 AliSelectNonHFE.cxx:286
 AliSelectNonHFE.cxx:287
 AliSelectNonHFE.cxx:288
 AliSelectNonHFE.cxx:289
 AliSelectNonHFE.cxx:290
 AliSelectNonHFE.cxx:291
 AliSelectNonHFE.cxx:292
 AliSelectNonHFE.cxx:293
 AliSelectNonHFE.cxx:294
 AliSelectNonHFE.cxx:295
 AliSelectNonHFE.cxx:296
 AliSelectNonHFE.cxx:297
 AliSelectNonHFE.cxx:298
 AliSelectNonHFE.cxx:299
 AliSelectNonHFE.cxx:300
 AliSelectNonHFE.cxx:301
 AliSelectNonHFE.cxx:302
 AliSelectNonHFE.cxx:303
 AliSelectNonHFE.cxx:304
 AliSelectNonHFE.cxx:305
 AliSelectNonHFE.cxx:306
 AliSelectNonHFE.cxx:307
 AliSelectNonHFE.cxx:308
 AliSelectNonHFE.cxx:309
 AliSelectNonHFE.cxx:310
 AliSelectNonHFE.cxx:311
 AliSelectNonHFE.cxx:312
 AliSelectNonHFE.cxx:313
 AliSelectNonHFE.cxx:314
 AliSelectNonHFE.cxx:315
 AliSelectNonHFE.cxx:316
 AliSelectNonHFE.cxx:317
 AliSelectNonHFE.cxx:318
 AliSelectNonHFE.cxx:319
 AliSelectNonHFE.cxx:320
 AliSelectNonHFE.cxx:321
 AliSelectNonHFE.cxx:322
 AliSelectNonHFE.cxx:323
 AliSelectNonHFE.cxx:324
 AliSelectNonHFE.cxx:325
 AliSelectNonHFE.cxx:326
 AliSelectNonHFE.cxx:327
 AliSelectNonHFE.cxx:328
 AliSelectNonHFE.cxx:329
 AliSelectNonHFE.cxx:330
 AliSelectNonHFE.cxx:331
 AliSelectNonHFE.cxx:332
 AliSelectNonHFE.cxx:333
 AliSelectNonHFE.cxx:334
 AliSelectNonHFE.cxx:335
 AliSelectNonHFE.cxx:336
 AliSelectNonHFE.cxx:337
 AliSelectNonHFE.cxx:338
 AliSelectNonHFE.cxx:339
 AliSelectNonHFE.cxx:340
 AliSelectNonHFE.cxx:341
 AliSelectNonHFE.cxx:342
 AliSelectNonHFE.cxx:343
 AliSelectNonHFE.cxx:344
 AliSelectNonHFE.cxx:345
 AliSelectNonHFE.cxx:346
 AliSelectNonHFE.cxx:347
 AliSelectNonHFE.cxx:348
 AliSelectNonHFE.cxx:349
 AliSelectNonHFE.cxx:350
 AliSelectNonHFE.cxx:351
 AliSelectNonHFE.cxx:352
 AliSelectNonHFE.cxx:353
 AliSelectNonHFE.cxx:354
 AliSelectNonHFE.cxx:355
 AliSelectNonHFE.cxx:356
 AliSelectNonHFE.cxx:357
 AliSelectNonHFE.cxx:358
 AliSelectNonHFE.cxx:359
 AliSelectNonHFE.cxx:360
 AliSelectNonHFE.cxx:361
 AliSelectNonHFE.cxx:362
 AliSelectNonHFE.cxx:363
 AliSelectNonHFE.cxx:364
 AliSelectNonHFE.cxx:365
 AliSelectNonHFE.cxx:366
 AliSelectNonHFE.cxx:367
 AliSelectNonHFE.cxx:368
 AliSelectNonHFE.cxx:369
 AliSelectNonHFE.cxx:370
 AliSelectNonHFE.cxx:371
 AliSelectNonHFE.cxx:372
 AliSelectNonHFE.cxx:373
 AliSelectNonHFE.cxx:374
 AliSelectNonHFE.cxx:375
 AliSelectNonHFE.cxx:376
 AliSelectNonHFE.cxx:377