519 lines
14 KiB
C++
519 lines
14 KiB
C++
|
//Classes and function used in MCtruthmatching.cpp to truthmatch the samples
|
||
|
//Renata Kopečná
|
||
|
|
||
|
#include "GlobalFunctions.hh"
|
||
|
|
||
|
class counters{
|
||
|
public:
|
||
|
int B_plus_VETO;
|
||
|
int K_star_plus_VETO;
|
||
|
int mu_VETO;
|
||
|
int J_psi_VETO;
|
||
|
int K_plus_VETO;
|
||
|
int pi_zero_VETO;
|
||
|
int gammas_VETO;
|
||
|
int MOTHER_ID_VETO;
|
||
|
int GD_MOTHER_ID_VETO;
|
||
|
int GD_GD_MOTHER_ID_VETO;
|
||
|
int K_short_VETO;
|
||
|
int Ks_pi_VETO;
|
||
|
int pi_plus_VETO;
|
||
|
int Kshort_pi_zero_daughters;
|
||
|
int ReconstructedPionsWhichAreMuons;
|
||
|
|
||
|
counters(){ //default constructor
|
||
|
B_plus_VETO = 0;
|
||
|
K_star_plus_VETO = 0;
|
||
|
mu_VETO = 0;
|
||
|
J_psi_VETO = 0;
|
||
|
K_plus_VETO = 0;
|
||
|
pi_zero_VETO = 0;
|
||
|
gammas_VETO = 0;
|
||
|
MOTHER_ID_VETO = 0;
|
||
|
GD_MOTHER_ID_VETO = 0;
|
||
|
GD_GD_MOTHER_ID_VETO = 0;
|
||
|
K_short_VETO = 0;
|
||
|
Ks_pi_VETO = 0;
|
||
|
pi_plus_VETO = 0;
|
||
|
Kshort_pi_zero_daughters = 0;
|
||
|
ReconstructedPionsWhichAreMuons = 0;
|
||
|
}
|
||
|
void printCounters(bool B0, bool K1);
|
||
|
~counters(); //destuctor
|
||
|
};
|
||
|
|
||
|
void counters::printCounters(bool B0, bool K1){
|
||
|
coutInfo("The incorrect reconstructed particles are the following:");
|
||
|
coutInfo("(only the first found-incorrect particle is counted)");
|
||
|
coutInfo("");
|
||
|
coutInfo((B0 ? "B_zero:\t\t" : "B_plus:\t\t")+to_string(B_plus_VETO));
|
||
|
coutInfo((B0 ? "K_star_zero:\t" : ( K1 ? "K_one_plus:\t" : "K_star_plus:\t"))+to_string(K_star_plus_VETO));
|
||
|
coutInfo("mu:\t\t"+to_string(mu_VETO));
|
||
|
if(Kst2Kpluspi0Resolved){
|
||
|
coutInfo("K_plus:\t\t"+to_string(K_plus_VETO));
|
||
|
coutInfo("pi_zero TM:\t"+to_string(pi_zero_VETO));
|
||
|
coutInfo("gamma:\t\t"+to_string(gammas_VETO));
|
||
|
}
|
||
|
if(Kst2Kspiplus){
|
||
|
coutInfo("K_short:\t"+to_string(K_short_VETO));
|
||
|
coutInfo("Ks_pi_minus:\t"+to_string(Ks_pi_VETO));
|
||
|
coutInfo("pi_plus:\t"+to_string(pi_plus_VETO));
|
||
|
}
|
||
|
coutInfo("J_psi:\t\t"+to_string(J_psi_VETO));
|
||
|
|
||
|
if(Kst2Kspiplus){
|
||
|
coutInfo("Pi0 daughers of the Kshort:\t"+to_string(Kshort_pi_zero_daughters));
|
||
|
coutInfo("Muons mis-IDed as pions:\t"+to_string(ReconstructedPionsWhichAreMuons)+"/"+to_string(Ks_pi_VETO + pi_plus_VETO));
|
||
|
}
|
||
|
|
||
|
coutInfo("Total incorrect family members of all particles: "+to_string(MOTHER_ID_VETO + GD_MOTHER_ID_VETO + GD_GD_MOTHER_ID_VETO));
|
||
|
coutInfo("MotherID:\t"+to_string(MOTHER_ID_VETO));
|
||
|
coutInfo("GDmotherID:\t"+to_string(GD_MOTHER_ID_VETO));
|
||
|
coutInfo("GDGDmotherID:\t"+to_string(GD_GD_MOTHER_ID_VETO));
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
counters::~counters(){ //destuctor
|
||
|
B_plus_VETO = 0;
|
||
|
K_star_plus_VETO = 0;
|
||
|
mu_VETO = 0;
|
||
|
J_psi_VETO = 0;
|
||
|
K_plus_VETO = 0;
|
||
|
pi_zero_VETO = 0;
|
||
|
gammas_VETO = 0;
|
||
|
MOTHER_ID_VETO = 0;
|
||
|
GD_MOTHER_ID_VETO = 0;
|
||
|
K_short_VETO = 0;
|
||
|
Ks_pi_VETO = 0;
|
||
|
pi_plus_VETO = 0;
|
||
|
Kshort_pi_zero_daughters = 0;
|
||
|
ReconstructedPionsWhichAreMuons = 0;
|
||
|
}
|
||
|
|
||
|
bool isBKGCAT(int BKGCAT, bool ReferenceChannel){
|
||
|
if (Kst2Kspiplus){
|
||
|
if(ReferenceChannel){
|
||
|
if(BKGCAT == 0 || BKGCAT == 50) return true;
|
||
|
else return false;
|
||
|
}
|
||
|
else{
|
||
|
if(BKGCAT == 10 || BKGCAT == 50) return true;
|
||
|
else return false;
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
if(ReferenceChannel){
|
||
|
if(BKGCAT == 0 || BKGCAT == 40 || BKGCAT == 50) return true;
|
||
|
else return false;
|
||
|
}
|
||
|
else{
|
||
|
if(BKGCAT == 10 || BKGCAT == 40 || BKGCAT == 50) return true;
|
||
|
else return false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//TRUED B+
|
||
|
class B_plus_IDs{
|
||
|
public:
|
||
|
int B_plus_TRUEID;
|
||
|
B_plus_IDs(){
|
||
|
B_plus_TRUEID = 0;
|
||
|
}
|
||
|
~B_plus_IDs(){
|
||
|
B_plus_TRUEID = 0;
|
||
|
}
|
||
|
bool isBplus(counters *counter, bool B_plus_TM){
|
||
|
if (!B_plus_TM) return true;
|
||
|
if(TMath::Abs(B_plus_TRUEID) != TRUEID.B_PLUS){
|
||
|
counter->B_plus_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
else return true;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
//TRUEID K*+
|
||
|
class K_star_IDs{
|
||
|
public:
|
||
|
int K_star_plus_TRUEID;
|
||
|
int K_star_plus_MOTHER_ID;
|
||
|
K_star_IDs(){
|
||
|
K_star_plus_TRUEID = 0;
|
||
|
K_star_plus_MOTHER_ID = 0;
|
||
|
}
|
||
|
~K_star_IDs(){
|
||
|
K_star_plus_TRUEID = 0;
|
||
|
K_star_plus_MOTHER_ID = 0;
|
||
|
}
|
||
|
|
||
|
bool isKstar(counters *counter, bool K_star_plus_TM, bool B_plus_TM){
|
||
|
if (K_star_plus_TM && TMath::Abs(K_star_plus_TRUEID) != TRUEID.K_STAR_PLUS){
|
||
|
counter->K_star_plus_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
if (B_plus_TM && TMath::Abs(K_star_plus_MOTHER_ID) != TRUEID.B_PLUS){
|
||
|
counter->MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
//TRUEID K+
|
||
|
class K_plus_IDs{
|
||
|
public:
|
||
|
int K_plus_TRUEID;
|
||
|
int K_plus_MOTHER_ID;
|
||
|
int K_plus_GD_MOTHER_ID;
|
||
|
|
||
|
K_plus_IDs(){
|
||
|
K_plus_TRUEID = 0;
|
||
|
K_plus_MOTHER_ID = 0;
|
||
|
K_plus_GD_MOTHER_ID = 0;
|
||
|
}
|
||
|
~K_plus_IDs(){
|
||
|
K_plus_TRUEID = 0;
|
||
|
K_plus_MOTHER_ID = 0;
|
||
|
K_plus_GD_MOTHER_ID = 0;
|
||
|
}
|
||
|
|
||
|
bool isKplus(counters *counter, bool K_plus_TM, bool K_star_plus_TM, bool B_plus_TM){// flags *allFlags){
|
||
|
if (K_plus_TM && TMath::Abs(K_plus_TRUEID) != TRUEID.K_PLUS){
|
||
|
counter->K_plus_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
if (K_star_plus_TM && TMath::Abs(K_plus_MOTHER_ID) != TRUEID.K_STAR_PLUS){
|
||
|
counter->MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
if (B_plus_TM && TMath::Abs(K_plus_GD_MOTHER_ID) != TRUEID.B_PLUS){
|
||
|
counter->GD_MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
//TRUEID pi0
|
||
|
class pi_zero_IDs{
|
||
|
public:
|
||
|
int pi_zero_TRUEID;
|
||
|
int pi_zero_MOTHER_ID;
|
||
|
int pi_zero_GD_MOTHER_ID;
|
||
|
|
||
|
pi_zero_IDs(){
|
||
|
pi_zero_TRUEID = 0;
|
||
|
pi_zero_MOTHER_ID = 0;
|
||
|
pi_zero_GD_MOTHER_ID = 0;
|
||
|
}
|
||
|
~pi_zero_IDs(){
|
||
|
pi_zero_TRUEID = 0;
|
||
|
pi_zero_MOTHER_ID = 0;
|
||
|
pi_zero_GD_MOTHER_ID = 0;
|
||
|
}
|
||
|
|
||
|
bool isPi0(counters *counter, bool pi_zero_TM, bool K_star_plus_TM, bool B_plus_TM, double pi_zero_resolved_M, double B_plus_M, TH1D *h_pi0_mismatched_mass, TH1D *h_Bplus_mass_pi0mismatched, TH1D *h_pi0_resolved_mass){
|
||
|
|
||
|
if (pi_zero_TM){
|
||
|
if(TMath::Abs(pi_zero_TRUEID) == TRUEID.PI_ZERO){
|
||
|
h_pi0_resolved_mass->Fill(pi_zero_resolved_M);
|
||
|
}
|
||
|
else{
|
||
|
counter->pi_zero_VETO++;
|
||
|
h_pi0_mismatched_mass->Fill(pi_zero_resolved_M);
|
||
|
h_Bplus_mass_pi0mismatched->Fill(B_plus_M);
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
if (K_star_plus_TM && TMath::Abs(pi_zero_MOTHER_ID) != TRUEID.K_STAR_PLUS){
|
||
|
counter->MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
if (B_plus_TM && TMath::Abs(pi_zero_GD_MOTHER_ID) != TRUEID.B_PLUS){
|
||
|
counter->GD_MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
//TRUEID gamma
|
||
|
class gamma_IDs{
|
||
|
public:
|
||
|
int gamma_TRUEID;
|
||
|
int gamma_MOTHER_ID;
|
||
|
int gamma_GD_MOTHER_ID;
|
||
|
int gamma_GD_GD_MOTHER_ID;
|
||
|
|
||
|
gamma_IDs(){
|
||
|
gamma_TRUEID = 0;
|
||
|
gamma_MOTHER_ID = 0;
|
||
|
gamma_GD_MOTHER_ID = 0;
|
||
|
gamma_GD_GD_MOTHER_ID = 0;
|
||
|
}
|
||
|
~gamma_IDs(){
|
||
|
gamma_TRUEID = 0;
|
||
|
gamma_MOTHER_ID = 0;
|
||
|
gamma_GD_MOTHER_ID = 0;
|
||
|
gamma_GD_GD_MOTHER_ID = 0;
|
||
|
}
|
||
|
|
||
|
//Check if gamma was converted
|
||
|
bool isGammaConversion(counters *counter, bool gamma_TM, bool pi_zero_TM, bool K_star_plus_TM){
|
||
|
if(gamma_TM && TMath::Abs(gamma_TRUEID) != TRUEID.ELECTRON){
|
||
|
++counter->gammas_VETO;
|
||
|
return false;
|
||
|
}
|
||
|
if(gamma_TM && TMath::Abs(gamma_MOTHER_ID) != TRUEID.GAMMA){
|
||
|
++counter->gammas_VETO;
|
||
|
return false;
|
||
|
}
|
||
|
if(pi_zero_TM && TMath::Abs(gamma_GD_MOTHER_ID) != TRUEID.PI_ZERO){
|
||
|
++counter->MOTHER_ID_VETO;
|
||
|
return false;
|
||
|
}
|
||
|
if(K_star_plus_TM && TMath::Abs(gamma_GD_GD_MOTHER_ID) != TRUEID.K_STAR_PLUS){
|
||
|
++counter->GD_MOTHER_ID_VETO;
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
//TRUEID gamma
|
||
|
bool isGammaTrue(counters *counter, bool gamma_TM,bool gamma_TM_full, bool pi_zero_TM, bool K_star_plus_TM, bool B_plus_TM){
|
||
|
if (!gamma_TM_full) return true;
|
||
|
if(gamma_TM && TMath::Abs(gamma_TRUEID) != TRUEID.GAMMA){
|
||
|
++counter->gammas_VETO;
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if (pi_zero_TM && TMath::Abs(gamma_MOTHER_ID) != TRUEID.PI_ZERO){
|
||
|
++counter->MOTHER_ID_VETO;
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if (K_star_plus_TM && TMath::Abs(gamma_GD_MOTHER_ID) != TRUEID.K_STAR_PLUS){
|
||
|
++counter->GD_MOTHER_ID_VETO;
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if (B_plus_TM && TMath::Abs(gamma_GD_GD_MOTHER_ID) != TRUEID.B_PLUS){
|
||
|
++counter->GD_GD_MOTHER_ID_VETO;
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
//TRUEID Ks
|
||
|
class K_short_IDs{
|
||
|
public:
|
||
|
int K_short_TRUEID;
|
||
|
int K_short_MOTHER_ID;
|
||
|
int K_short_GD_MOTHER_ID;
|
||
|
|
||
|
K_short_IDs(){
|
||
|
K_short_TRUEID = 0;
|
||
|
K_short_MOTHER_ID = 0;
|
||
|
K_short_GD_MOTHER_ID = 0;
|
||
|
}
|
||
|
~K_short_IDs(){
|
||
|
K_short_TRUEID = 0;
|
||
|
K_short_MOTHER_ID = 0;
|
||
|
K_short_GD_MOTHER_ID = 0;
|
||
|
}
|
||
|
|
||
|
bool isKshort(counters *counter){
|
||
|
if(TMath::Abs(K_short_TRUEID) != TRUEID.K_SHORT){
|
||
|
counter->K_short_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if(TMath::Abs(K_short_MOTHER_ID) != TRUEID.K_STAR_PLUS){
|
||
|
counter->MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if(TMath::Abs(K_short_GD_MOTHER_ID) != TRUEID.B_PLUS){
|
||
|
counter->GD_MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
//TRUEID pi+
|
||
|
class pi_plus_IDs{
|
||
|
public:
|
||
|
int pi_plus_TRUEID;
|
||
|
int pi_plus_MOTHER_ID;
|
||
|
int pi_plus_GD_MOTHER_ID;
|
||
|
|
||
|
pi_plus_IDs(){
|
||
|
pi_plus_TRUEID = 0;
|
||
|
pi_plus_MOTHER_ID = 0;
|
||
|
pi_plus_GD_MOTHER_ID = 0;
|
||
|
}
|
||
|
~pi_plus_IDs(){
|
||
|
pi_plus_TRUEID = 0;
|
||
|
pi_plus_MOTHER_ID = 0;
|
||
|
pi_plus_GD_MOTHER_ID = 0;
|
||
|
}
|
||
|
|
||
|
bool isPiPlus(counters *counter){
|
||
|
if(TMath::Abs(pi_plus_TRUEID) != TRUEID.PI_PLUS){
|
||
|
if(TMath::Abs(pi_plus_TRUEID) == TRUEID.MU_MINUS) counter->ReconstructedPionsWhichAreMuons++;
|
||
|
counter->pi_plus_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if(TMath::Abs(pi_plus_MOTHER_ID) != TRUEID.K_STAR_PLUS){
|
||
|
counter->MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
if(TMath::Abs(pi_plus_GD_MOTHER_ID) != TRUEID.B_PLUS){
|
||
|
counter->GD_MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
//TRUEID pions coming from Ks
|
||
|
class Ks_pi_IDs{
|
||
|
public:
|
||
|
int Ks_pi_TRUEID;
|
||
|
int Ks_pi_MOTHER_ID;
|
||
|
int Ks_pi_GD_MOTHER_ID;
|
||
|
int Ks_pi_GD_GD_MOTHER_ID;
|
||
|
|
||
|
Ks_pi_IDs(){
|
||
|
Ks_pi_TRUEID = 0;
|
||
|
Ks_pi_MOTHER_ID = 0;
|
||
|
Ks_pi_GD_MOTHER_ID = 0;
|
||
|
Ks_pi_GD_GD_MOTHER_ID = 0;
|
||
|
}
|
||
|
~Ks_pi_IDs(){
|
||
|
Ks_pi_TRUEID = 0;
|
||
|
Ks_pi_MOTHER_ID = 0;
|
||
|
Ks_pi_GD_MOTHER_ID = 0;
|
||
|
Ks_pi_GD_GD_MOTHER_ID = 0;
|
||
|
}
|
||
|
|
||
|
bool isKsPi(counters *counter){
|
||
|
|
||
|
if(TMath::Abs(Ks_pi_TRUEID) != TRUEID.PI_PLUS){
|
||
|
if(TMath::Abs(Ks_pi_TRUEID) == TRUEID.PI_ZERO)counter->Kshort_pi_zero_daughters++;
|
||
|
if(TMath::Abs(Ks_pi_TRUEID) == TRUEID.MU_MINUS)counter->ReconstructedPionsWhichAreMuons++;
|
||
|
counter->Ks_pi_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
if(TMath::Abs(Ks_pi_MOTHER_ID) != TRUEID.K_SHORT){
|
||
|
counter->MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
if(TMath::Abs(Ks_pi_GD_MOTHER_ID) != TRUEID.K_STAR_PLUS){
|
||
|
counter->GD_MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
if(TMath::Abs(Ks_pi_GD_GD_MOTHER_ID) != TRUEID.B_PLUS){
|
||
|
counter->GD_GD_MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
return true;
|
||
|
|
||
|
}
|
||
|
};
|
||
|
|
||
|
//TRUEID muon
|
||
|
class mu_IDs{
|
||
|
public:
|
||
|
int mu_TRUEID;
|
||
|
int mu_MOTHER_ID;
|
||
|
int mu_GD_MOTHER_ID;
|
||
|
bool ReferenceChannel = false;
|
||
|
|
||
|
mu_IDs(bool isRefChan){
|
||
|
mu_TRUEID = 0;
|
||
|
mu_MOTHER_ID = 0;
|
||
|
mu_GD_MOTHER_ID = 0;
|
||
|
ReferenceChannel = isRefChan;
|
||
|
}
|
||
|
~mu_IDs(){
|
||
|
mu_TRUEID = 0;
|
||
|
mu_MOTHER_ID = 0;
|
||
|
mu_GD_MOTHER_ID = 0;
|
||
|
ReferenceChannel = 0;
|
||
|
}
|
||
|
|
||
|
bool isMu(counters *counter, bool mu_TM, bool J_psi_TM, bool B_plus_TM){//flags *allFlags){
|
||
|
if (mu_TM && TMath::Abs(mu_TRUEID) != TRUEID.MU_MINUS){
|
||
|
counter->mu_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
if(ReferenceChannel){
|
||
|
if (J_psi_TM && TMath::Abs(mu_MOTHER_ID) != TRUEID.J_PSI){
|
||
|
counter->MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
if(B_plus_TM && TMath::Abs(mu_GD_MOTHER_ID) != TRUEID.B_PLUS){
|
||
|
counter->GD_MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
if(B_plus_TM && TMath::Abs(mu_MOTHER_ID) != TRUEID.B_PLUS){
|
||
|
counter->MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
//TRUEID J/psi
|
||
|
class J_psi_IDs{
|
||
|
public:
|
||
|
int J_psi_TRUEID;
|
||
|
int J_psi_MOTHER_ID;
|
||
|
int J_psi_GD_MOTHER_ID;
|
||
|
bool ReferenceChannel = false;
|
||
|
|
||
|
J_psi_IDs(bool isRefChan){
|
||
|
J_psi_TRUEID = 0;
|
||
|
J_psi_MOTHER_ID = 0;
|
||
|
J_psi_GD_MOTHER_ID = 0;
|
||
|
ReferenceChannel = isRefChan;
|
||
|
}
|
||
|
~J_psi_IDs(){
|
||
|
J_psi_TRUEID = 0;
|
||
|
J_psi_MOTHER_ID = 0;
|
||
|
J_psi_GD_MOTHER_ID = 0;
|
||
|
ReferenceChannel = 0;
|
||
|
}
|
||
|
|
||
|
bool isJpsi(counters *counter, bool J_psi_TM, bool B_plus_TM){
|
||
|
if(ReferenceChannel){
|
||
|
if(J_psi_TM && TMath::Abs(J_psi_TRUEID) != TRUEID.J_PSI){
|
||
|
counter->J_psi_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
if(B_plus_TM && TMath::Abs(J_psi_MOTHER_ID) != TRUEID.B_PLUS){
|
||
|
counter->MOTHER_ID_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
if(J_psi_TM && TMath::Abs(J_psi_TRUEID) == TRUEID.J_PSI){
|
||
|
counter->J_psi_VETO++;
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
};
|
||
|
|