}
/**********************************************************/
-void AliHBTPairCut::SetPixelSeparation(Double_t drphi, Double_t dz)
+void AliHBTPairCut::SetITSSeparation(Int_t layer, Double_t drphi, Double_t dz)
{
//Anti-Merging Cut for first pixel layer
- AliHbtBasePairCut* cut= FindCut(kHbtPairCutPropPixelSepar);
- if(cut) cut->SetRange(drphi,dz);//In this cut fMin is drphi, and fMax dz
- else fCuts[fNCuts++] = new AliHBTPixelSeparationCut(drphi,dz);
+ AliHBTITSSeparationCut* cut= dynamic_cast<AliHBTITSSeparationCut*>(FindCut(kHbtPairCutPropPixelSepar));
+ if(cut)
+ {
+ if (layer == cut->GetLayer())
+ {
+ cut->SetRange(drphi,dz);//In this cut fMin is drphi, and fMax dz
+ return;
+ }
+ }
+ fCuts[fNCuts++] = new AliHBTITSSeparationCut(layer,drphi,dz);
}
/**********************************************************/
}
/******************************************************************/
-ClassImp(AliHBTPixelSeparationCut)
+ClassImp(AliHBTITSSeparationCut)
-Bool_t AliHBTPixelSeparationCut::Pass(AliHBTPair* pair) const
+Bool_t AliHBTITSSeparationCut::Pass(AliHBTPair* pair) const
{
//Checks if two tracks do not cross first pixels too close to each other
//If two tracks use the same cluster in pixels they are given
return kTRUE;//reject
}
Float_t x1=0.0,y1=0.0,z1=0.0,x2=0.0,y2=0.0,z2=0.0;
- tpts1->PositionAt(0,x1,y1,z1);
- tpts2->PositionAt(0,x2,y2,z2);
+ tpts1->PositionAt(fLayer,x1,y1,z1);
+ tpts2->PositionAt(fLayer,x2,y2,z2);
// Info("Pass","rphi %f z %f",fMin,fMax);
// Info("Pass","P1: %f %f %f", x1,y1,z1);
void SetQSideCMSLRange(Double_t min, Double_t max);
void SetQLongCMSLRange(Double_t min, Double_t max);
void SetAvSeparationRange(Double_t min,Double_t max = 10e5);//Anti-Merging Cut
- void SetPixelSeparation(Double_t drphi=0.01,Double_t dz = 0.08);//Anti-Merging Cut for first pixel layer
+ void SetITSSeparation(Int_t layer, Double_t drphi=0.01,Double_t dz = 0.08);//Anti-Merging Cut for first pixel layer
void SetClusterOverlapRange(Double_t min,Double_t max);//Anti-Splitting Max range -0.5 1.0
AliHBTParticleCut* GetFirstPartCut() const {return fFirstPartCut;}
};
/******************************************************************/
-class AliHBTPixelSeparationCut: public AliHbtBasePairCut
+class AliHBTITSSeparationCut: public AliHbtBasePairCut
{
//Anti merging cut for the first layer of pixels
public:
- AliHBTPixelSeparationCut(Double_t deltarphi = 0.01, Double_t deltaz = 0.08):
- AliHbtBasePairCut(deltarphi,deltaz,kHbtPairCutPropPixelSepar){}
- virtual ~AliHBTPixelSeparationCut(){}
+ AliHBTITSSeparationCut(Int_t layer, Double_t deltarphi = 0.01, Double_t deltaz = 0.08):
+ AliHbtBasePairCut(deltarphi,deltaz,kHbtPairCutPropPixelSepar),fLayer(layer){}
+ virtual ~AliHBTITSSeparationCut(){}
Bool_t Pass(AliHBTPair* pair) const;
-
+ Int_t GetLayer() const {return fLayer;}
protected:
+ Int_t fLayer;//index of the layer that distance should be measured 0: 1st pixels
virtual Double_t GetValue(AliHBTPair* /*pair*/) const {return 0.0;}//not used
- ClassDef(AliHBTPixelSeparationCut,1)
+ ClassDef(AliHBTITSSeparationCut,1)
};
/******************************************************************/
#pragma link C++ class AliHBTDeltaThetaCut+;
#pragma link C++ class AliHBTAvSeparationCut+;
#pragma link C++ class AliHBTSeparationCut+;
-#pragma link C++ class AliHBTPixelSeparationCut+;
+#pragma link C++ class AliHBTITSSeparationCut+;
#pragma link C++ class AliHBTCluterOverlapCut+;
#pragma link C++ class AliHBTOutSideSameSignCut+;
#pragma link C++ class AliHBTOutSideDiffSignCut+;