void testEff(char *filename="") { /* Author: G. Bonomi Date: 9 June 2005 This macro open a root file containing ntuple h127 and counts the number of K+ and K- stops for each target. It also counts the number of mu+ coming from K+ stop. */ gStyle->SetOptStat(1000001); gStyle->SetStatFormat(".10g"); char taglio[50],quality[100]; int nKmin[8],nTotKmin=0; int nKplu[8],nTotKplu=0; int nMuplu[8],nTotMuplu=0; // f = new TFile("from585_to2583.root"); f = new TFile(filename); // START K- counting for(int i=0; i<8; i++) { printf("K- bersaglio #%d\n",i+1); sprintf(taglio,"Stopmin==1&&Ntarmin==%d",i+1); TCut targ = taglio; h127->Draw("Vxmin",targ); nKmin[i] = htemp->Integral(); nTotKmin += nKmin[i]; } // END K- counting // START K+ counting for(int i=0; i<8; i++) { printf("K+ bersaglio #%d\n",i+1); sprintf(taglio,"Stopplu==1&&Ntarplu==%d",i+1); TCut targ = taglio; h127->Draw("Vxplu",targ); nKplu[i] = htemp->Integral(); nTotKplu += nKplu[i]; } // END K+ counting // START mu+ counting for(int i=0; i<8; i++) { printf("Mu+ bersaglio #%d\n",i+1); sprintf(taglio,"Stopplu==1&&Ntarplu==%d",i+1); TCut targ = taglio; // TCut qual = "Extrplu==1"; /* No cuts */ // sprintf(quality,"Extrplu==1&&Sterplu<300&&Resdplu<0.15&&Normplu<60"); /* "First" cuts */ // sprintf(quality,"Extrplu==1&&Sterplu<2000&&Resdplu<0.5&&Normplu<80&&Dev2plu<100&&abs(Lamplu)<50"); /* "Loose" cuts */ sprintf(quality,"Extrplu==1&&Normplu<80"); /* "Loose" cuts */ TCut qual = quality; TCut mom = "Pmodplu>0.215"; h127->Draw("Pmodplu",targ&&qual&&mom); nMuplu[i] = htemp->Integral(); nTotMuplu += nMuplu[i]; } // END mu+ counting printf("Tagli usati per i Mu+: %s\n",quality); printf("############## K- ###################\n"); for(int i=0; i<8; i++) { printf("Bersaglio #%d: K- %d\n",i+1,nKmin[i]); } printf("############## K+, Mu+ #################\n"); for(int i=0; i<8; i++) { printf("Bersaglio #%d: K+ %d Mu+ %d (%.2f\%)\n",i+1,nKplu[i],nMuplu[i],(float)nMuplu[i]/(float)nKplu[i]*100.); } printf("Totale: K- %d\n",nTotKmin); printf("Totale: K+ %d, Mu+ %d (%.2f\%)\n",nTotKplu,nTotMuplu,(float)nTotMuplu/(float)nTotKplu*100.); }