fTrkCutR(10.0),
fTrkCutAlphaMin(-50.0),
fTrkCutAlphaMax(50.0),
- fTrkCutAngle(10000.0), //track matching
+ fTrkCutAngle(10000.0),
+ fTrkCutNITS(3.0),
+ fTrkCutNTPC(20.0), //track matching
fHighLowGainFactor(16.0),
fOrderParameter(2),
fTau(2.35),
fTrkCutR(rp.fTrkCutR),
fTrkCutAlphaMin(rp.fTrkCutAlphaMin),
fTrkCutAlphaMax(rp.fTrkCutAlphaMax),
- fTrkCutAngle(rp.fTrkCutAngle), //track matching
+ fTrkCutAngle(rp.fTrkCutAngle),
+ fTrkCutNITS(rp.fTrkCutNITS),
+ fTrkCutNTPC(rp.fTrkCutNTPC), // track matching
fHighLowGainFactor(rp.fHighLowGainFactor),
fOrderParameter(rp.fOrderParameter),
fTau(rp.fTau),
fTrkCutR = rp.fTrkCutR;
fTrkCutAlphaMin = rp.fTrkCutAlphaMin;
fTrkCutAlphaMax = rp.fTrkCutAlphaMax;
- fTrkCutAngle = rp.fTrkCutAngle; //track matching
+ fTrkCutAngle = rp.fTrkCutAngle;
+ fTrkCutNITS = rp.fTrkCutNITS;
+ fTrkCutNTPC = rp.fTrkCutNTPC; //track matching
fHighLowGainFactor = rp.fHighLowGainFactor;
fOrderParameter = rp.fOrderParameter;
fTau = rp.fTau;
AliInfo(Form("Clusterization parameters :\n fClusteringThreshold=%.3f,\n fW0=%.3f,\n fMinECut=%.3f,\n fUnfold=%d,\n fLocMaxCut=%.3f \n",
fClusteringThreshold,fW0,fMinECut,fUnfold,fLocMaxCut));
- AliInfo(Form("Track-matching cuts :\n x %f, y %f, z %f, R %f \n alphaMin %f, alphaMax %f, Angle %f\n", fTrkCutX, fTrkCutY, fTrkCutZ, fTrkCutR,fTrkCutAlphaMin,fTrkCutAlphaMax, fTrkCutAngle));
+ AliInfo(Form("Track-matching cuts :\n x %f, y %f, z %f, R %f \n alphaMin %f, alphaMax %f, Angle %f, NITS %f, NTPC %f\n", fTrkCutX, fTrkCutY, fTrkCutZ, fTrkCutR,fTrkCutAlphaMin,fTrkCutAlphaMax, fTrkCutAngle,fTrkCutNITS,fTrkCutNTPC));
AliInfo(Form("PID parameters, Gamma :\n"));
for(Int_t i = 0; i < 6; i++){
void SetTrkCutAlphaMin(Double_t value) {fTrkCutAlphaMin = value;}
void SetTrkCutAlphaMax(Double_t value) {fTrkCutAlphaMax = value;}
void SetTrkCutAngle(Double_t value) {fTrkCutAngle = value;}
+ void SetTrkCutNITS(Double_t value) {fTrkCutNITS = value;}
+ void SetTrkCutNTPC(Double_t value) {fTrkCutNTPC = value;}
/* track matching cut getters */
Double_t GetTrkCutX() const {return fTrkCutX;}
Double_t GetTrkCutY() const {return fTrkCutY;}
Double_t GetTrkCutAlphaMin() const {return fTrkCutAlphaMin;}
Double_t GetTrkCutAlphaMax() const {return fTrkCutAlphaMax;}
Double_t GetTrkCutAngle() const {return fTrkCutAngle;}
+ Double_t GetTrkCutNITS() const {return fTrkCutNITS;}
+ Double_t GetTrkCutNTPC() const {return fTrkCutNTPC;}
//Raw signal fitting (Jenn)
/* raw signal setters */
Double_t fTrkCutAlphaMin; // cut on 'alpha' parameter for track matching (min)
Double_t fTrkCutAlphaMax; // cut on 'alpha' parameter for track matching (min)
Double_t fTrkCutAngle; // cut on relative angle between different track points for track matching
-
+ Double_t fTrkCutNITS; // Number of ITS hits for track matching
+ Double_t fTrkCutNTPC; // Number of TPC hits for track matching
+
//Raw signal fitting parameters (Jenn)
Double_t fHighLowGainFactor; //gain factor to convert between high and low gain
Int_t fOrderParameter; //order parameter for raw signal fit
fCutAlphaMax(200.0),
fCutAngle(100.0),
fMaxDist(10.0),
+ fCutNITS(3.0),
+ fCutNTPC(20.0),
fRho(1.0),
fX0(1.0),
fTracks(0),
fCutAlphaMax(copy.fCutAlphaMax),
fCutAngle(copy.fCutAngle),
fMaxDist(copy.fMaxDist),
+ fCutNITS(copy.fCutNITS),
+ fCutNTPC(copy.fCutNTPC),
fRho(copy.fRho),
fX0(copy.fX0),
fTracks((TObjArray*)copy.fTracks->Clone()),
fCutAlphaMax = copy.fCutAlphaMax;
fCutAngle = copy.fCutAngle;
fMaxDist = copy.fMaxDist;
+ fCutNITS = copy.fCutNITS;
+ fCutNTPC = copy.fCutNTPC;
fTracks = (TObjArray*)copy.fTracks->Clone();
fClusters = (TObjArray*)copy.fClusters->Clone();
fCutAngle = recParam->GetTrkCutAngle();
fCutAlphaMin = recParam->GetTrkCutAlphaMin();
fCutAlphaMax = recParam->GetTrkCutAlphaMax();
-
+ fCutNITS = recParam->GetTrkCutNITS();
+ fCutNTPC = recParam->GetTrkCutNTPC();
+
}
//
//------------------------------------------------------------------------------
trackID = track->GetSeedIndex();
AliESDtrack *esdTrack = esd->GetTrack(trackID);
if (!esdTrack) continue;
+
+ // cut on its and tpc track hits
+ if(esdTrack->GetNcls(0)<=fCutNITS)continue;
+ if(esdTrack->GetNcls(1)<=fCutNTPC)continue;
+
if (TMath::Abs(esdTrack->GetLabel()) == cluster->Label()) {
esdTrack->SetEMCALcluster(cluster->Index());
nGood++;
void SetCutZ(Double_t value) {fCutZ=value;}
void SetGeometry(AliEMCALGeometry *geom) {fGeom=geom;}
void SetMaxDistance(Double_t value) {fMaxDist=value;}
+ void SetCutNITS(Double_t value) {fCutNITS=value;}
+ void SetCutNTPC(Double_t value) {fCutNTPC=value;}
void SetNumberOfSteps(Int_t n) {fNPropSteps=n;if(!n)SetTrackCorrectionMode("NONE");}
void SetTrackCorrectionMode(Option_t *option);
Double_t fCutAlphaMax; // cut on difference between track 'alpha' and phi
Double_t fCutAngle; // cut on angle between track projection and cluster
Double_t fMaxDist; // maximum allowed total distance between track proj an cluster
-
+ Double_t fCutNITS; // mimimum number of track hits in the ITS
+ Double_t fCutNTPC; // mimimum number of track hits in the TPC
+
Double_t fRho; // energy correction: density
Double_t fX0; // energy correction: radiation length
recParamDB->SetTrkCutR(10.0);
recParamDB->SetTrkCutAlphaMin(-50.0);
recParamDB->SetTrkCutAlphaMax( 50.0);
+ recParamDB->SetTrkCutNITS(3.0);
+ recParamDB->SetTrkCutNTPC(20.0);
recParamDB->SetTrkCutAngle(10000.0); // i.e. exclude this for the moment
//PID