else if (purity == "high" ) photonLike = TestPIDBit(8);
if (photonLike && // photon by PCA
(TestPIDBit(5)||TestPIDBit(4)||TestPIDBit(3))&& // fast by TOF
- (TestPIDBit(2)||TestPIDBit(1)||TestPIDBit(0))) // neutral by CPV
+ (TestPIDBit(2)||TestPIDBit(1)||TestPIDBit(0))&& // neutral by CPV
+ !TestPIDBit(14)) // no charged track
return kTRUE ;
+ else if (photonLike && // photon by PCA
+ (TestPIDBit(5)|| TestPIDBit(4)|| TestPIDBit(3))&& // fast by TOF
+ (!TestPIDBit(2)||!TestPIDBit(1)||!TestPIDBit(0))&& // charged by CPV
+ !TestPIDBit(14)) // no charged track, conversion electron
+ return kTRUE ;
else
return kFALSE;
}
else Error("IsPi0","Wrong purity type: %s",purity.Data());
if (pi0Like && // pi0 by PCA
(TestPIDBit(5)||TestPIDBit(4)||TestPIDBit(3))&& // fast by TOF
- (TestPIDBit(2)||TestPIDBit(1)||TestPIDBit(0))) // neutral by CPV
+ (TestPIDBit(2)||TestPIDBit(1)||TestPIDBit(0))&& // neutral by CPV
+ !TestPIDBit(14)) // no charged track
return kTRUE ;
else
return kFALSE;
if (photonLike && // photon by PCA
(TestPIDBit(5)|| TestPIDBit(4)|| TestPIDBit(3))&& // fast by TOF
- (!TestPIDBit(2)||!TestPIDBit(1)||!TestPIDBit(0))) // charged by CPV
+ (!TestPIDBit(2)||!TestPIDBit(1)||!TestPIDBit(0))&& // charged by CPV
+ TestPIDBit(14)) // no charged track
return kTRUE ;
else
return kFALSE;
{
// Rec.Particle is a hard photon (E > 30 GeV) if its second moment M2x
// corresponds to photons
- if (TestPIDBit(12))
+ if (TestPIDBit(12) && !TestPIDBit(14))
return kTRUE;
else
return kFALSE;
{
// Rec.Particle is a hard pi0 (E > 30 GeV) if its second moment M2x
// corresponds to pi0
- if (TestPIDBit(13))
+ if (TestPIDBit(13)&& !TestPIDBit(14))
return kTRUE;
else
return kFALSE;