FairRoot/PandaRoot
RhoSimplePionSelector.cxx
Go to the documentation of this file.
1 // //
3 // RhoSimplePionSelector //
4 // //
5 // Selector classes for particle selection //
6 // //
7 // Author List: //
8 // Marcel Kunze, RUB, Feb. 99 //
9 // Copyright (C) 1999-2001, Ruhr-University Bochum. //
10 // Ralf Kliemt, HIM/GSI Feb.2013 (Cleanup & Restructuring) //
11 // //
13 
14 #include <math.h>
15 #include "TDatabasePDG.h"
16 
18 #include "RhoBase/RhoCandidate.h"
19 #include "PndPidCandidate.h"
20 
21 
22 
23 
24 
26 
27 TBuffer& operator>> ( TBuffer& buf, RhoSimplePionSelector *&obj )
28 {
29  obj = ( RhoSimplePionSelector* ) buf.ReadObject ( RhoSimplePionSelector::Class() );
30  return buf;
31 }
32 
33 RhoSimplePionSelector::RhoSimplePionSelector ( const char* name, const char* type ) :
34  RhoParticleSelectorBase ( name,type )
35 {}
36 
38 {
39  if ( b == 0 ) { return kFALSE; }
40 
41  SetTypeAndMass ( b );
42 
43  double Le = b->GetPidInfo ( 0 );
44  double Lmu = b->GetPidInfo ( 1 );
45  double Lpi = b->GetPidInfo ( 2 );
46  double Lk = b->GetPidInfo ( 3 );
47  double Lp = b->GetPidInfo ( 4 );
48 
49  if ( fCriterion == loose ) {
50  if ( Lpi<0.2 ) { return kFALSE; }
51  } else if ( fCriterion == veryLoose || fCriterion == variable || fCriterion == all ) {
52  return kTRUE;
53  } else if ( fCriterion == best ) {
54  if ( Lpi<Le || Lpi<Lmu || Lpi<Lk || Lpi<Lp ) { return kFALSE; }
55  } else if ( fCriterion == tight ) {
56  if ( Lpi<0.5 ) { return kFALSE; }
57  } else {
58  if ( Lpi<0.9 ) { return kFALSE; }
59  }
60 
61  return kTRUE;
62 }
63 
65 {
66  return kFALSE;
67 }
TTree * b
criterion fCriterion
Particle type to accept.
ClassImp(RhoSimplePionSelector) TBuffer &operator>>(TBuffer &buf
void SetTypeAndMass(RhoCandidate *b)
TString name
return buf
RhoSimplePionSelector(const char *name="RhoSimplePionSelector", const char *type="pi+")
RhoSimplePionSelector *& obj
double GetPidInfo(int hypo)
virtual Bool_t Accept(RhoCandidate *b)