#!/usr/local/bin/perl print " *** Prepare to configure T&P *** \n"; print " *** DoL1 : tag = L1 probe = L1 *** \n"; print " *** DoEF : tag = EF probe = EF *** \n"; print " *** DoMix: tag = EF probe = L1 *** \n"; print " *** DoRev: tag = L1 probe = EF *** \n"; print " *** Start to config *** \n"; print " >>> Which Period you want to analyze? \n"; $period = ; chomp($period); print " >>> Which Muon Algo you want to use? (Staco = 0; Muid = 1) \n"; $algo = ; chomp($algo); if ($algo == 0) # staco { $SetComb = "if (mu1author ==6 && mu2author == 6)"; $SetAny = "if ( (mu1author ==6 && mu2author == 7) || (mu1author ==7 && mu2author == 6) || IsCombComb )"; $NameAlgo = "staco"; } if ($algo == 1) # muid { $SetComb = "if (mu1author ==12 && mu2author == 12)"; $SetAny = "if ( (mu1author ==12 && mu2author == 13) || (mu1author ==13 && mu2author == 12) || IsCombComb )"; $NameAlgo = "muid"; } print " >> Do you want Comb-Comb case (1== Yes )? \n"; $comb_comb_flag = ; chomp($comb_comb_flag); if ($comb_comb_flag == 1) { $DoCombComb = "bool DoCombComb = kTRUE ;\n"; $DoCombAny = "bool DoCombAny = kFALSE;\n"; $IsCombComb = "CombComb"; } else { $DoCombComb = "bool DoCombComb = kFALSE ;\n"; $DoCombAny = "bool DoCombAny = kTRUE ;\n"; $IsCombComb = "CombAny"; } print " >> Choose if you want DoL1 (1), DoEF (2) or DoMix (EF-L1) (3) or DoRev (L1-EF) (4) \n"; $DoType = ; chomp($DoType); if ($DoType == 1) { $DoL1 = "bool DoL1 = kTRUE; \n"; $DoEF = "bool DoEF = kFALSE; \n"; $DoMix = "bool DoMix = kFALSE; \n"; $DoRev = "bool DoRev = kFALSE; \n"; } if ($DoType == 2) { $DoL1 = "bool DoL1 = kFALSE; \n"; $DoEF = "bool DoEF = kTRUE; \n"; $DoMix = "bool DoMix = kFALSE; \n"; $DoRev = "bool DoRev = kFALSE; \n"; } if ($DoType == 3) { $DoL1 = "bool DoL1 = kFALSE; \n"; $DoEF = "bool DoEF = kFALSE; \n"; $DoMix = "bool DoMix = kTRUE; \n"; $DoRev = "bool DoRev = kFALSE; \n"; } if ($DoType == 4) { $DoL1 = "bool DoL1 = kFALSE; \n"; $DoEF = "bool DoEF = kFALSE; \n"; $DoMix = "bool DoMix = kFALSE; \n"; $DoRev = "bool DoRev = kTRUE; \n"; } print " >> Do you run on real data (0) or MC (1) ?\n"; $IsMC= ; if ($IsMC == 1) { $DoIsMC = "bool IsMC = kTRUE; \n"; } else { $DoIsMC = "bool IsMC = kFALSE; \n"; } print " >> Select J/psi (0) or Z (1) tag&probe ? \n"; $isJpsi = ; if ($isJpsi == 0) { $SelectionCuts = "if (invmass >2860 && invmass < 3340 && q == 0 && EtaCut && deltaR2>0.3 && deltaR2<2.5 ) // JpsiSelection \n"; $massrange = "2000.,4000."; } if ($isJpsi == 1) { $SelectionCuts = "if (invmass >75000 && invmass < 105000 && q == 0 && EtaCut) // Z Selection \n"; $massrange = "80000.,100000."; } print " >> Insert the cut minum pt for the TAG muons \n"; $minpt= ; chomp($minpt); print " >> Insert for the TAG muon the trigger item (example: L1MU6, EFMU10,...) \n"; $tag_item= ; chomp($tag_item); print " >> Insert for the PROBE muon the trigger item (example: L1MU6, EFMU10,...) \n"; $probe_item= ; chomp($probe_item); print " >> If your TAG is an HLT item please insert also the LVL1 seed for this item (example: L1MU6 (seed for EFMU6), L1MU10 (seed for EFMU10),...) \n"; print " >> Otherwise put the same L1 item \n"; $tagl1_item= ; chomp($tagl1_item); print " >> If your PROBE is an HLT item please insert also the LVL1 seed for this item (example: L1MU6 (seed for EFMU6), L1MU10 (seed for EFMU10),...) \n"; print " >> Otherwise put the same L1 item \n"; $probel1_item= ; chomp($probel1_item); $tagmu1dr = "mu1".$tag_item."dr"; $tagmu2dr = "mu2".$tag_item."dr"; if ($DoType == 1 ) #DoL1 has L1 tag object { $tagmu1L1index = "mu1".$tag_item."index"; $tagmu2L1index = "mu2".$tag_item."index"; $tagmu1L1dr = "mu1".$tag_item."dr"; $tagmu2L1dr = "mu2".$tag_item."dr"; $tagmu1EFindex = "mu1EFMU6index"; #doesn't really matter $tagmu2EFindex = "mu2EFMU6index"; #doesn't really matter $tagmu1EFdr = "mu1EFMU6dr"; #doesn't really matter $tagmu2EFdr = "mu2EFMU6dr"; #doesn't really matter $muL1pass = "mu".$tag_item."pass"; $muEFpass = "muEFMU6pass";#doesn't really matter } if ($DoType == 4) #DoL1 has L1 tag object { $tagmu1L1index = "mu1".$tag_item."index"; $tagmu2L1index = "mu2".$tag_item."index"; $tagmu1L1dr = "mu1".$tag_item."dr"; $tagmu2L1dr = "mu2".$tag_item."dr"; $tagmu1EFindex = "mu1".$probe_item."index"; #doesn't really matter $tagmu2EFindex = "mu2".$probe_item."index"; #doesn't really matter $tagmu1EFdr = "mu1".$probe_item."dr"; #doesn't really matter $tagmu2EFdr = "mu2".$probe_item."dr"; #doesn't really matter $muL1pass = "mu".$tag_item."pass"; $muEFpass = "mu".$probe_item."pass";#doesn't really matter } if ($DoType == 2 || $DoType == 3) #DoEF and DoMix has EF tag object { $tagmu1L1index = "mu1".$tagl1_item."index"; $tagmu2L1index = "mu2".$tagl1_item."index"; $tagmu1L1dr = "mu1".$tagl1_item."dr"; $tagmu2L1dr = "mu2".$tagl1_item."dr"; $tagmu1EFindex = "mu1".$tag_item."index"; $tagmu2EFindex = "mu2".$tag_item."index"; $tagmu1EFdr = "mu1".$tag_item."dr"; $tagmu2EFdr = "mu2".$tag_item."dr"; $muL1pass = "mu".$tagl1_item."pass"; $muEFpass = "mu".$tag_item."pass";#doesn't really matter } if ($DoType == 1 || $DoType == 3) #DoL1 and DoMix has L1 probe object { $probemu1L1index = "mu1".$probe_item."index"; $probemu2L1index = "mu2".$probe_item."index"; $probemu1L1dr = "mu1".$probe_item."dr"; $probemu2L1dr = "mu2".$probe_item."dr"; $probemu1EFindex = "mu1EFMU6index"; #doesn't really matter $probemu2EFindex = "mu2EFMU6index"; #doesn't really matter $probemu1EFdr = "mu1EFMU6dr"; #doesn't really matter $probemu2EFdr = "mu2EFMU6dr"; #doesn't really matter #$muL1pass = "mu".$probe_item."pass"; } if ($DoType == 2 || $DoType == 4) #DoEF and DoRev has EF prbe object { $probemu1L1index = "mu1".$probel1_item."index"; $probemu2L1index = "mu2".$probel1_item."index"; $probemu1L1dr = "mu1".$probel1_item."dr"; $probemu2L1dr = "mu2".$probel1_item."dr"; $probemu1EFindex = "mu1".$probe_item."index"; $probemu2EFindex = "mu2".$probe_item."index"; $probemu1EFdr = "mu1".$probe_item."dr"; $probemu2EFdr = "mu2".$probe_item."dr"; #$muL1pass = "mu".$probel1_item."pass"; #$muEFpass = "mu".$probe_item."pass";#doesn't really matter } $root_output_file = "TPout_".$period."_".$IsCombComb."_".$NameAlgo.".root"; print ">>> The output filename will be $root_output_file \n"; system ("rm TP.C"); open (TPFILE, '>>TP.C'); print TPFILE "#define TP_cxx \n"; print TPFILE "#include \"TP.h\" \n"; print TPFILE "#include \n"; print TPFILE "#include \n"; print TPFILE "#include \n"; print TPFILE "#include \n"; print TPFILE "#include \n"; print TPFILE "#include \n"; print TPFILE "#include \n"; print TPFILE "#include \n"; print TPFILE "\n"; print TPFILE "void TP::Loop() \n"; print TPFILE "\n"; print TPFILE "{\n"; print TPFILE "\n"; print TPFILE " if (fChain == 0) return;\n"; print TPFILE "\n"; print TPFILE " TH1F * TagInvMass = new TH1F(\"TagInvMass\",\"TagInvMass\",100,".$massrange.");\n"; print TPFILE " TH1F * ProbeInvMass = new TH1F(\"ProbeInvMass\",\"ProbeInvMass\",100,".$massrange.");\n"; print TPFILE "\n"; print TPFILE " TH2F * hex = new TH2F(\"hex\",\"hex\",50,-3.,3.,50,-3.2,3.2);\n"; print TPFILE " TH2F * hall = new TH2F(\"hall\",\"hall\",50,-3.,3.,50,-3.2,3.2);\n"; print TPFILE " TH1F * hptallbb = new TH1F(\"hptallbb\",\"hptallbb\",21,0.,20);\n"; print TPFILE " TH1F * hptallbe = new TH1F(\"hptallbe\",\"hptallbe\",21,0.,20);\n"; print TPFILE " TH1F * hdr = new TH1F(\"hdr\",\"dr\",100,0.,10.); \n"; print TPFILE " TH1F * hdr2 = new TH1F(\"hdr2\",\"dr2\",100,0.,10.); \n"; print TPFILE " TH1F * hptdr = new TH1F(\"hptdr\",\"hptdr\",21,0.,20);\n"; print TPFILE " TH1F * hdrcut = new TH1F(\"hpdrcut\",\"All dr cuts\",100,0.,1.); \n"; print TPFILE " TH1F * hptalle = new TH1F(\"hptalle\",\"hptalle\",21,0.,20);\n"; print TPFILE " // \n"; print TPFILE " TH1F * stacoCombComb_jpsiInvmass_os_am_aa_cut3 =new TH1F(\"stacoCombComb_jpsiInvmass_os_am_aa_cut3\",\"stacoCombComb_jpsiInvmass_os_am_aa_cut3\", 20, 2.86 , 3.34);\n"; print TPFILE " // \n"; print TPFILE "\n"; print TPFILE " int nptbins2 = 11; \n"; print TPFILE " float ptbin2[12];\n"; print TPFILE " ptbin2[0]=1.000;\n"; print TPFILE " ptbin2[1]=5.000;\n"; print TPFILE " ptbin2[2]=7.000;\n"; print TPFILE " ptbin2[3]=10.000;\n"; print TPFILE " ptbin2[4]=14.000;\n"; print TPFILE " ptbin2[5]=18.000;\n"; print TPFILE " ptbin2[6]=25.000;\n"; print TPFILE " ptbin2[7]=30.000;\n"; print TPFILE " ptbin2[8]=35.000;\n"; print TPFILE " ptbin2[9]=40.000;\n"; print TPFILE " ptbin2[10]=45.000;\n"; print TPFILE " ptbin2[11]=50.000;\n"; print TPFILE "\n"; print TPFILE " TH1F * hptall = new TH1F(\"hptall\",\"hptall\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptselall = new TH1F(\"hptselall\",\"hptselall\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptb = new TH1F(\"hptb\",\"hptb\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hpte = new TH1F(\"hpte\",\"hpte\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsallqp = new TH1F(\"hptmsallqp\",\"hptmsallqp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsallqn = new TH1F(\"hptmsallqn\",\"hptmsallqn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsbqp = new TH1F(\"hptmsbqp\",\"hptmsbqp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsbqn = new TH1F(\"hptmsbqn\",\"hptmsbqn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselbqp = new TH1F(\"hptmsselbqp\",\"hptmsselbqp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselbqn = new TH1F(\"hptmsselbqn\",\"hptmsselbqn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsall = new TH1F(\"hptmsall\",\"hptmsall\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsallqnp = new TH1F(\"hptmsallqnp\",\"hptmsallqnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsallqnn = new TH1F(\"hptmsallqnn\",\"hptmsallqnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsallqpnp = new TH1F(\"hptmsallqpnp\",\"hptmsallqpnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsallqpnn = new TH1F(\"hptmsallqpnn\",\"hptmsallqpnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsallqnnp = new TH1F(\"hptmsallqnnp\",\"hptmsallqnnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsallqnnn = new TH1F(\"hptmsallqnnn\",\"hptmsallqnnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsb = new TH1F(\"hptmsb\",\"hptmsb\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsbqnp = new TH1F(\"hptmsbqnp\",\"hptmsbqnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsbqnn = new TH1F(\"hptmsbqnn\",\"hptmsbqnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsbqpnp = new TH1F(\"hptmsbqpnp\",\"hptmsbqpnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsbqpnn = new TH1F(\"hptmsbqpnn\",\"hptmsbqpnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsbqnnp = new TH1F(\"hptmsbqnnp\",\"hptmsbqnnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsbqnnn = new TH1F(\"hptmsbqnnn\",\"hptmsbqnnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmse = new TH1F(\"hptmse\",\"hptmse\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmseqnp = new TH1F(\"hptmseqnp\",\"hptmseqnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmseqnn = new TH1F(\"hptmseqnn\",\"hptmseqnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmseqpnp = new TH1F(\"hptmseqpnp\",\"hptmseqpnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmseqpnn = new TH1F(\"hptmseqpnn\",\"hptmseqpnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmseqnnp = new TH1F(\"hptmseqnnp\",\"hptmseqnnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmseqnnn = new TH1F(\"hptmseqnnn\",\"hptmseqnnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselall = new TH1F(\"hptmsselall\",\"hptmsselall\",nptbins2,ptbin2);\n"; print TPFILE " TH1F * hptmsselallqnp = new TH1F(\"hptmselallqnp\",\"hptmselallqnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselallqnn = new TH1F(\"hptmselallqnn\",\"hptmselallqnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselallqpnp = new TH1F(\"hptmsselallqpnp\",\"hptmsselallqpnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselallqpnn = new TH1F(\"hptmsselallqpnn\",\"hptmsselallqpnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselallqnnp = new TH1F(\"hptmsselallqnnp\",\"hptmsselallqnnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselallqnnn = new TH1F(\"hptmsselallqnnn\",\"hptmsselallqnnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselb = new TH1F(\"hptmsselb\",\"hptmsselb\",nptbins2,ptbin2);\n"; print TPFILE " TH1F * hptmsselbqnp = new TH1F(\"hptmsselbqnp\",\"hptmsselbqnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselbqnn = new TH1F(\"hptmsselbqnn\",\"hptmsselbqnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselbqpnp = new TH1F(\"hptmsselbqpnp\",\"hptmsselbqpnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselbqpnn = new TH1F(\"hptmsselbqpnn\",\"hptmsselbqpnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselbqnnp = new TH1F(\"hptmsselbqnnp\",\"hptmsselbqnnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselbqnnn = new TH1F(\"hptmsselbqnnn\",\"hptmsselbqnnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmssele = new TH1F(\"hptmssele\",\"hptmssele\",nptbins2,ptbin2);\n"; print TPFILE " TH1F * hptmsseleqnp = new TH1F(\"hptmsseleqnp\",\"hptmsseleqnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsseleqnn = new TH1F(\"hptmsseleqnn\",\"hptmsseleqnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsseleqpnp = new TH1F(\"hptmsseleqpnp\",\"hptmsseleqpnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsseleqpnn = new TH1F(\"hptmsseleqpnn\",\"hptmsseleqpnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsseleqnnp = new TH1F(\"hptmsseleqnnp\",\"hptmsseleqnnp\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsseleqnnn = new TH1F(\"hptmsseleqnnn\",\"hptmsseleqnnn\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptselb = new TH1F(\"hptselb\",\"hptselb\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptsele = new TH1F(\"hptsele\",\"hptsele\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptselalldr = new TH1F(\"hptselalldr\",\"hptselalldr\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptselbdr = new TH1F(\"hptselbdr\",\"hptselbdr\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptseledr = new TH1F(\"hptseledr\",\"hptseledr\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsselbdr = new TH1F(\"hptmsselbdr\",\"hptmsselbdr\",nptbins2,ptbin2); \n"; print TPFILE " TH1F * hptmsseledr = new TH1F(\"hptmsseledr\",\"hptmsseledr\",nptbins2,ptbin2); \n"; print TPFILE " \n"; print TPFILE "\n"; print TPFILE " int netabin = 60;\n"; print TPFILE "\n"; print TPFILE " TH1F * hetaall = new TH1F(\"hetaall\",\"hetaall\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaallqnp = new TH1F(\"hetaallqnp\",\"hetaallqnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaallqnn = new TH1F(\"hetaallqnn\",\"hetaallqnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaallqpnp = new TH1F(\"hetaallqpnp\",\"hetaallqpnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaallqpnn = new TH1F(\"hetaallqpnn\",\"hetaallqpnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaallqnnp = new TH1F(\"hetaallqnnp\",\"hetaallqnnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaallqnnn = new TH1F(\"hetaallqnnn\",\"hetaallqnnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetab = new TH1F(\"hetab\",\"hetab\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetabqp = new TH1F(\"hetabqp\",\"hetabqp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetabqn = new TH1F(\"hetabqn\",\"hetabqn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselbqp = new TH1F(\"hetaselbqp\",\"hetaselbqp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselbqn = new TH1F(\"hetaselbqn\",\"hetaselbqn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetabqnp = new TH1F(\"hetabqnp\",\"hetabqnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetabqnn = new TH1F(\"hetabqnn\",\"hetabqnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetabqpnp = new TH1F(\"hetabqpnp\",\"hetabqpnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetabqpnn = new TH1F(\"hetabqpnn\",\"hetabqpnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetabqnnp = new TH1F(\"hetabqnnp\",\"hetabqnnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetabqnnn = new TH1F(\"hetabqnnn\",\"hetabqnnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetae = new TH1F(\"hetae\",\"hetae\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaeqnp = new TH1F(\"hetaeqnp\",\"hetaeqnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaeqnn = new TH1F(\"hetaeqnn\",\"hetaeqnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaeqpnp = new TH1F(\"hetaeqpnp\",\"hetaeqpnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaeqpnn = new TH1F(\"hetaeqpnn\",\"hetaeqpnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaeqnnp = new TH1F(\"hetaeqnnp\",\"hetaeqnnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaeqnnn = new TH1F(\"hetaeqnnn\",\"hetaeqnnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselall= new TH1F(\"hetaselall\",\"hetaselall\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselallqnp = new TH1F(\"hetaselallqnp\",\"hetaselallqnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselallqnn = new TH1F(\"hetaselallqnn\",\"hetaselallqnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselallqpnp = new TH1F(\"hetaselallqpnp\",\"hetaselallqpnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselallqpnn = new TH1F(\"hetaselallqpnn\",\"hetaselallqpnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselallqnnp = new TH1F(\"hetaselallqnnp\",\"hetaselallqnnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselallqnnn = new TH1F(\"hetaselallqnnn\",\"hetaselallqnnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselb = new TH1F(\"hetaselb\",\"hetaselb\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselbqnp = new TH1F(\"hetaselbqnp\",\"hetaselbqnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselbqnn = new TH1F(\"hetaselbqnn\",\"hetaselbqnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselbqpnp = new TH1F(\"hetaselbqpnp\",\"hetaselbqpnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselbqpnn = new TH1F(\"hetaselbqpnn\",\"hetaselbqpnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselbqnnp = new TH1F(\"hetaselbqnnp\",\"hetaselbqnnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselbqnnn = new TH1F(\"hetaselbqnnn\",\"hetaselbqnnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetasele = new TH1F(\"hetasele\",\"hetasele\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaseleqnp = new TH1F(\"hetaseleqnp\",\"hetaseleqnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaseleqnn = new TH1F(\"hetaseleqnn\",\"hetaseleqnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaseleqpnp = new TH1F(\"hetaseleqpnp\",\"hetaseleqpnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaseleqpnn = new TH1F(\"hetaseleqpnn\",\"hetaseleqpnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaseleqnnp = new TH1F(\"hetaseleqnnp\",\"hetaseleqnnp\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaseleqnnn = new TH1F(\"hetaseleqnnn\",\"hetaseleqnnn\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselalldr = new TH1F(\"hetaselalldr\",\"hetaselalldr\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaselbdr = new TH1F(\"hetaselbdr\",\"hetaselbdr\",netabin,-3.05,3.05);\n"; print TPFILE " TH1F * hetaseledr = new TH1F(\"hetaseledr\",\"hassled\",netabin,-3.05,3.05);\n"; print TPFILE "\n"; print TPFILE "\n"; print TPFILE " int nphibin = 20;\n"; print TPFILE "\n"; print TPFILE " TH1F * hphiall = new TH1F(\"hphiall\",\"hphiall\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiallqnp = new TH1F(\"hphiallqnp\",\"hphiallqnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiallqnn = new TH1F(\"hphiallqnn\",\"hphiallqnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiallqpnp = new TH1F(\"hphiallqpnp\",\"hphiallqpnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiallqpnn = new TH1F(\"hphiallqpnn\",\"hphiallqpnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiallqnnp = new TH1F(\"hphiallqnnp\",\"hphiallqnnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiallqnnn = new TH1F(\"hphiallqnnn\",\"hphiallqnnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphie = new TH1F(\"hphie\",\"hphie\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphieqnp = new TH1F(\"hphieqnp\",\"hphieqnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphieqnn = new TH1F(\"hphieqnn\",\"hphieqnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphieqpnp = new TH1F(\"hphieqpnp\",\"hphieqpnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphieqpnn = new TH1F(\"hphieqpnn\",\"hphieqpnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphieqnnp = new TH1F(\"hphieqnnp\",\"hphieqnnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphieqnnn = new TH1F(\"hphieqnnn\",\"hphieqnnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphib = new TH1F(\"hphib\",\"hphib\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphibqp = new TH1F(\"hphibqp\",\"hphibqp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphibqn = new TH1F(\"hphibqn\",\"hphibqn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselbqp = new TH1F(\"hphiselbqp\",\"hphiselbqp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselbqn = new TH1F(\"hphiselbqn\",\"hphiselbqn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphibqnp = new TH1F(\"hphibqnp\",\"hphibqnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphibqnn = new TH1F(\"hphibqnn\",\"hphibqnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphibqpnp = new TH1F(\"hphibqpnp\",\"hphibqpnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphibqpnn = new TH1F(\"hphibqpnn\",\"hphibqpnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphibqnnp = new TH1F(\"hphibqnnp\",\"hphibqnnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphibqnnn = new TH1F(\"hphibqnnn\",\"hphibqnnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselall = new TH1F(\"hphiselall\",\"hphiselall\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselallqnp = new TH1F(\"hphiselallqnp\",\"hphiselallqnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselallqnn = new TH1F(\"hphiselallqnn\",\"hphiselallqnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselallqpnp = new TH1F(\"hphiselallqpnp\",\"hphiselallqpnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselallqpnn = new TH1F(\"hphiselallqpnn\",\"hphiselallqpnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselallqnnp = new TH1F(\"hphiselallqnnp\",\"hphiselallqnnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselallqnnn = new TH1F(\"hphiselallqnnn\",\"hphiselallqnnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselb = new TH1F(\"hphiselb\",\"hphiselb\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselbqnp = new TH1F(\"hphiselbqnp\",\"hphiselbqnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselbqnn = new TH1F(\"hphiselbqnn\",\"hphiselbqnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselbqpnp = new TH1F(\"hphiselbqpnp\",\"hphiselbqpnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselbqpnn = new TH1F(\"hphiselbqpnn\",\"hphiselbqpnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselbqnnp = new TH1F(\"hphiselbqnnp\",\"hphiselbqnnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselbqnnn = new TH1F(\"hphiselbqnnn\",\"hphiselbqnnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphisele = new TH1F(\"hphisele\",\"hphisele\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiseleqnp = new TH1F(\"hphiseleqnp\",\"hphiseleqnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiseleqnn = new TH1F(\"hphiseleqnn\",\"hphiseleqnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiseleqpnp = new TH1F(\"hphiseleqpnp\",\"hphiseleqpnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiseleqpnn = new TH1F(\"hphiseleqpnn\",\"hphiseleqpnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiseleqnnp = new TH1F(\"hphiseleqnnp\",\"hphiseleqnnp\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiseleqnnn = new TH1F(\"hphiseleqnnn\",\"hphiseleqnnn\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselalldr = new TH1F(\"hphiselalldr\",\"hphiselalldr\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiselbdr = new TH1F(\"hphiselbdr\",\"hphiselbdr\",nphibin,-3.14,3.14);\n"; print TPFILE " TH1F * hphiseledr = new TH1F(\"hphiseledr\",\"hphiseledr\",nphibin,-3.14,3.14);\n"; print TPFILE " \n"; print TPFILE " my_h1= new TFile (\""; print TPFILE "$root_output_file"; print TPFILE "\", \"RECREATE\");\n"; print TPFILE " \n"; print TPFILE " int nphibins = 5;\n"; print TPFILE " \n"; print TPFILE " ///////////////////////////\n"; print TPFILE " ///////////////////////////\n"; print TPFILE " //MU0\n"; print TPFILE " int nptbins = 20; \n"; print TPFILE " float ptbin[21];\n"; print TPFILE " for(int i=0;i<=12;i++)\n"; print TPFILE " {\n"; print TPFILE " ptbin[i]=i*500.;\n"; print TPFILE " } \n"; print TPFILE " for(int i=1;i<=2;i++)\n"; print TPFILE " {\n"; print TPFILE " ptbin[i+12]=6000.+i*1000.;\n"; print TPFILE " } \n"; print TPFILE " for(int i=1;i<7;i++)\n"; print TPFILE " {\n"; print TPFILE " ptbin[i+14]=8000.+i*2000.;\n"; print TPFILE " } \n"; print TPFILE " \n"; print TPFILE " //ETA1\n"; print TPFILE " int netabins = 10;\n"; print TPFILE " float etabin[11]; \n"; print TPFILE " etabin[0]=0.;\n"; print TPFILE " etabin[1]=0.1;\n"; print TPFILE " etabin[2]=0.5;\n"; print TPFILE " etabin[3]=0.8;\n"; print TPFILE " etabin[4]=1.1;\n"; print TPFILE " etabin[5]=1.3;;\n"; print TPFILE " etabin[6]=1.5;\n"; print TPFILE " etabin[7]=1.7;\n"; print TPFILE " etabin[8]=2.0;\n"; print TPFILE " etabin[9]=2.4;\n"; print TPFILE " etabin[10]=2.5;\n"; print TPFILE " \n"; print TPFILE " \n"; print TPFILE " TH2F * hmapall = new TH2F(\"hmapall\",\"hmapall\",netabins,etabin,nptbins,ptbin); \n"; print TPFILE " TH2F * hmapselall = new TH2F(\"hmapselall\",\"hmapselall\",netabins,etabin,nptbins,ptbin); \n"; print TPFILE " TH2F * hmapselalleff = new TH2F(\"hmapselalleff\",\"hmapselalleff\",netabins,etabin,nptbins,ptbin); \n"; print TPFILE " TH2F * hmapb = new TH2F(\"hmapb\",\"hmapb\",netabins,-1.05,1.05,nphibins,-3.14,3.14); \n"; print TPFILE " TH2F * hmape = new TH2F(\"hmape\",\"hmape\",netabins,-1.05,1.05,nphibins,-3.14,3.14); \n"; print TPFILE " TH2F * hmapselb = new TH2F(\"hmapselb\",\"hmapselb\",netabins,-1.05,1.05,nphibins,-3.14,3.14); \n"; print TPFILE " TH2F * hmapsele = new TH2F(\"hmapsele\",\"hmapsele\",10,-2.4165,2.4165,16,-3.14,3.14); \n"; print TPFILE " TH2F * hmapselalldr = new TH2F(\"hmapselalldr\",\"hmapselalldr\",netabins,-1.05,1.05,nphibins,-3.14,3.14); \n";; print TPFILE " TH2F * hmapselbdr = new TH2F(\"hmapselbdr\",\"hmapselbdr\",netabins,-1.05,1.05,nphibins,-3.14,3.14); \n"; print TPFILE " TH2F * hmapdr = new TH2F(\"hmapdr\",\"hmapdr\",netabins,-1.05,1.05,nphibins,-3.14,3.14); \n"; print TPFILE " TH2F * hmapalle = new TH2F(\"hmapalle\",\"hmapalle\",10,-2.4165,2.4165,16,-3.14,3.14); \n"; print TPFILE " TH2F * hmapseledr = new TH2F(\"hmapseledr\",\"hmapseledr\",10,-2.4165,2.4165,16,-3.14,3.14); \n"; print TPFILE " \n"; print TPFILE " ofstream log; \n"; print TPFILE " log.open(\"logTP.txt\"); \n"; print TPFILE " bool DEBUG = false; \n"; print TPFILE " \n"; print TPFILE " Long64_t nentries = fChain->GetEntries(); \n"; print TPFILE " Long64_t nbytes = 0, nb = 0; \n"; print TPFILE " \n"; print TPFILE " int ntotal = 0; \n"; print TPFILE " int ntag = 0; \n"; print TPFILE " int nprobe = 0; \n"; print TPFILE " int nprobetrigger = 0; \n"; print TPFILE " int npass = 0; \n"; print TPFILE " int nbarrel = 0; \n"; print TPFILE " int n_1 = 0; \n"; print TPFILE " int n_2 = 0; \n"; print TPFILE " int n_3 = 0; \n"; print TPFILE " int n_barrel=0; \n"; print TPFILE " int n_endcap = 0; \n"; print TPFILE " int n_trig_barrel=0; \n"; print TPFILE " int n_trig_endcap=0; \n"; print TPFILE " int n_dr_barrel=0; \n"; print TPFILE " int n_dr_endcap=0; \n"; print TPFILE " int n_same = 0; \n"; print TPFILE " \n"; print TPFILE " int n_syst[20]; \n"; print TPFILE " \n"; print TPFILE " bool doPIcuts = kFALSE; \n"; print TPFILE " $DoIsMC \n"; print TPFILE " $DoCombComb"; print TPFILE " $DoCombAny"; print TPFILE " bool doProbeSegmentTagged = kFALSE; \n"; print TPFILE " bool doProbeComb = kFALSE; \n"; print TPFILE " \n"; print TPFILE " // Select kind of T&P (only one type a time!!) \n"; print TPFILE " $DoL1"; print TPFILE " $DoEF"; print TPFILE " $DoMix"; print TPFILE " $DoRev"; print TPFILE "\n"; print TPFILE "\n"; print TPFILE " if ( (DoL1 + DoEF + DoMix + DoRev) > 1) \n"; print TPFILE " { \n"; print TPFILE " if (DEBUG) log << \"More than 1 kind of TP: Exit !!\"<GetEntry(jentry); nbytes += nb;\n"; print TPFILE " \n"; print TPFILE " if(runNumber==153565 || runNumber==153599) continue;\n"; print TPFILE "\n"; print TPFILE " bool IsCombComb = 0;\n"; print TPFILE " ".$SetComb." IsCombComb=1;\n"; print TPFILE " bool IsCombAny = 0;\n"; print TPFILE " ".$SetAny." IsCombAny = 1; \n"; print TPFILE " if (DoCombComb && !IsCombComb) continue; // staco CombComb\n"; print TPFILE " if (DoCombAny && !IsCombAny) continue; // staco CombAny\n"; print TPFILE " \n"; print TPFILE " \n"; print TPFILE " // Jpsi event selection cuts\n"; print TPFILE " bool IsJpsi = 1;\n"; print TPFILE " float deltaR = sqrt(deltaEta*deltaEta+deltaPhi*deltaPhi);\n"; print TPFILE " bool EtaCut = 0;\n"; print TPFILE " hdr->Fill(deltaR);\n"; print TPFILE " float deltaR2=0.,dPhi,dEta;\n"; print TPFILE " dPhi=fabs(mu1phi-mu2phi);\n"; print TPFILE " dEta=fabs(mu1eta-mu2eta);\n"; print TPFILE " if(dPhi>3.14159264) dPhi=2*3.14159264-dPhi;\n"; print TPFILE " deltaR2= sqrt(dPhi*dPhi+dEta*dEta);\n"; print TPFILE " hdr2->Fill(deltaR2);\n"; print TPFILE "\n"; print TPFILE " if (fabs(mu1eta)<2.4 && fabs(mu2eta)<2.4) EtaCut = 1;\n"; print TPFILE " \n"; print TPFILE " if (! IsMC)\n"; print TPFILE " {\n"; print TPFILE " IsJpsi = 0;\n"; print TPFILE " $SelectionCuts"; print TPFILE " { \n"; print TPFILE " IsJpsi = 1;\n"; print TPFILE " }\n"; print TPFILE " }\n"; print TPFILE "\n"; print TPFILE " // Here start Tag and Probe\n"; print TPFILE " if (IsJpsi)\n"; print TPFILE " {\n"; print TPFILE " if (DEBUG) log << \" ** Jpsi found on event ** \"<= 100 && fabs(mu1etae) < 100)\n"; print TPFILE " {\n"; print TPFILE " tageta = mu1etae;\n"; print TPFILE " tagphi = mu1phie; \n"; print TPFILE " }\n"; print TPFILE " \n"; print TPFILE " if (fabs(mu1etas) >= 100 && fabs(mu1etae) >= 100)\n"; print TPFILE " {\n"; print TPFILE " isBadTagMuon == 1;\n"; print TPFILE " tageta = mu1eta;\n"; print TPFILE " tagphi = mu1phi; \n"; print TPFILE " }\n"; print TPFILE " }\n"; print TPFILE " \n"; print TPFILE " if (muonindex == 2)\n"; print TPFILE " {\n"; print TPFILE " tagpt = mu2pt;\n"; print TPFILE " tagz0 = mu2z0;\n"; print TPFILE " tagdr = ".$tagmu2dr.";\n"; print TPFILE " tagdrL1 = ".$tagmu2dr.";\n"; print TPFILE " tagdrEF = mu2EFMU20dr;\n"; print TPFILE " tagiso = mu2_ptIsol40;\n"; print TPFILE "\n"; print TPFILE " if (fabs(mu1etas) < 100)\n"; print TPFILE " {\n"; print TPFILE " tageta = mu2etas;\n"; print TPFILE " tagphi = mu2phis; \n"; print TPFILE " }\n"; print TPFILE " \n"; print TPFILE " if (fabs(mu2etas) >= 100 && fabs(mu2etae) < 100)\n"; print TPFILE " {\n"; print TPFILE " tageta = mu2etae;\n"; print TPFILE " tagphi = mu2phie; \n"; print TPFILE " }\n"; print TPFILE " \n"; print TPFILE " if (fabs(mu1etas) >= 100 && fabs(mu1etae) >= 100)\n"; print TPFILE " {\n"; print TPFILE " isBadTagMuon == 1;\n"; print TPFILE " tageta = mu2eta;\n"; print TPFILE " tagphi = mu2phi; \n"; print TPFILE " }\n"; print TPFILE " }\n"; print TPFILE " } // end of (if ! DoEF)\n"; print TPFILE "\n"; print TPFILE " if (DoEF || DoMix)\n"; print TPFILE " {\n"; print TPFILE " if (muonindex == 1)\n"; print TPFILE " {\n"; print TPFILE " tagpt = mu1pt;\n"; print TPFILE " tagz0 = mu1z0;\n"; print TPFILE " tagdr = ".$tagmu1dr.";\n"; print TPFILE " tagdrL1 = ".$tagmu1L1dr.";\n"; print TPFILE " tagdrEF = ".$tagmu1dr.";\n"; print TPFILE " tageta = mu1eta;\n"; print TPFILE " tagphi = mu1phi; \n"; print TPFILE " tagiso = mu1_ptIsol40;\n"; print TPFILE " //cout<<\"mu1EFMU6dr \"< OtherDr ) CannotBeTagL1 = true;\n"; print TPFILE " }\n"; print TPFILE "\n"; print TPFILE " if (CannotBeTagL1) if (DEBUG) log << \" This tag for L1 has been rejected \"< OtherDr ) CannotBeTagEF = true;\n"; print TPFILE " }\n"; print TPFILE "\n"; print TPFILE " if (CannotBeTagEF) if (DEBUG) log << \" This tag for EF has been rejected \"<0 ) HasTriggerInEventEF = true;\n"; print TPFILE " if ( ".$muL1pass." >0 ) HasTriggerInEventL1 = true;\n"; print TPFILE "\n"; print TPFILE " if (DEBUG) log << \" L1 decision = \"<< HasTriggerInEventL1< ".$minpt." && tagiso/tagpt < 0.2 // added\n"; print TPFILE " && !CannotBeTagL1 ) IsTag = 1;\n"; print TPFILE " }\n"; print TPFILE "\n"; print TPFILE " if ( DoEF || DoMix) \n"; print TPFILE " {\n"; print TPFILE " if ( HasTagQuality && HasTriggerInEventEF \n"; print TPFILE " && fabs(tagdr) < tagdrcut && isBadTagMuon == 0 \n"; print TPFILE " && tagpt > ".$minpt." && tagiso/tagpt < 0.2 // added\n"; print TPFILE " && !CannotBeTagEF && !CannotBeTagL1 ) IsTag = 1; \n"; print TPFILE " } \n"; print TPFILE "\n"; print TPFILE " if (IsTag) \n"; print TPFILE " {\n"; print TPFILE "\n"; print TPFILE " if (DEBUG) log << \" TAG is ok \"<Fill(invmass); \n"; print TPFILE " ntag++;\n"; print TPFILE " float probeetaID; \n"; print TPFILE " float probephiID; \n"; print TPFILE " if (muonindex == 1) probeetaID = mu2eta; \n"; print TPFILE " if (muonindex == 2) probeetaID = mu1eta; \n"; print TPFILE " if (muonindex == 1) probephiID = mu2phi;\n"; print TPFILE " if (muonindex == 2) probephiID = mu1phi;\n"; print TPFILE " float probeeta ;\n"; print TPFILE " float probephi ;\n"; print TPFILE "\n"; print TPFILE " float probept; \n"; print TPFILE " float probez0; \n"; print TPFILE " float probedr;\n"; print TPFILE " float probedrL1;\n"; print TPFILE " int ProbeIndex;\n"; print TPFILE " bool isBadProbeMuon= 0;\n"; print TPFILE " int probeAuthor = -100;\n"; print TPFILE " int probeNtrt;\n"; print TPFILE " int probeq;\n"; print TPFILE " if ( DoL1 || DoMix )\n"; print TPFILE " {\n"; print TPFILE " if (muonindex == 2)\n"; print TPFILE " {\n"; print TPFILE " probept = mu1pt;\n"; print TPFILE " probez0 = mu1z0;\n"; print TPFILE " probedr = ".$probemu1L1dr." ;\n"; print TPFILE " probedrL1 = ".$probemu1L1dr." ;\n"; print TPFILE " ProbeIndex = 1;\n"; print TPFILE " probeAuthor= mu1author; \n"; print TPFILE " probeNtrt = mu1_nTRT;\n"; print TPFILE " probeq = mu1q;\n"; print TPFILE " //probeNtrt = mu1Ntrt;\n"; print TPFILE "\n"; print TPFILE " if (fabs(mu1etas) < 100)\n"; print TPFILE " {\n"; print TPFILE " probeeta = mu1etas;\n"; print TPFILE " probephi = mu1phis; \n"; print TPFILE " }\n"; print TPFILE " \n"; print TPFILE " if (fabs(mu1etas) >= 100 && fabs(mu1etae) < 100)\n"; print TPFILE " {\n"; print TPFILE " probeeta = mu1etae;\n"; print TPFILE " probephi = mu1phie; \n"; print TPFILE " }\n"; print TPFILE " \n"; print TPFILE " if (fabs(mu1etas) >= 100 && fabs(mu1etae) >= 100)\n"; print TPFILE " {\n"; print TPFILE " // isBadProbeMuon= 1;\n"; print TPFILE " probeeta = mu1eta;\n"; print TPFILE " probephi = mu1phi; \n"; print TPFILE " }\n"; print TPFILE " }\n"; print TPFILE " \n"; print TPFILE " if (muonindex == 1)\n"; print TPFILE " {\n"; print TPFILE " probept = mu2pt;\n"; print TPFILE " probez0 = mu2z0; \n"; print TPFILE " probedr = ".$probemu2L1dr."; \n"; print TPFILE " probedrL1 = ".$probemu2L1dr."; \n"; print TPFILE " ProbeIndex = 2;\n"; print TPFILE " probeAuthor= mu2author;\n"; print TPFILE " probeNtrt = mu2_nTRT;\n"; print TPFILE " probeq = mu2q;\n"; print TPFILE " //probeNtrt = mu2Ntrt;\n"; print TPFILE " \n"; print TPFILE " if (fabs(mu2etas) < 100)\n"; print TPFILE " {\n"; print TPFILE " probeeta = mu2etas;\n"; print TPFILE " probephi = mu2phis; \n"; print TPFILE " }\n"; print TPFILE " \n"; print TPFILE " if (fabs(mu2etas) >= 100 && fabs(mu2etae) < 100)\n"; print TPFILE " {\n"; print TPFILE " probeeta = mu2etae;\n"; print TPFILE " probephi = mu2phie; \n"; print TPFILE " }\n"; print TPFILE " \n"; print TPFILE " if (fabs(mu2etas) >= 100 && fabs(mu2etae) >= 100) \n"; print TPFILE " {\n"; print TPFILE " // isBadProbeMuon= 1;\n"; print TPFILE " probeeta = mu2eta;\n"; print TPFILE " probephi = mu2phi; \n"; print TPFILE " } \n"; print TPFILE " }\n"; print TPFILE " } // end if !DoEF\n"; print TPFILE " \n"; print TPFILE " if (DoEF || DoRev) \n"; print TPFILE " { \n"; print TPFILE " if (muonindex == 1) \n"; print TPFILE " {\n"; print TPFILE " probept = mu2pt; \n"; print TPFILE " probez0 = mu2z0;\n"; print TPFILE " probedr = ".$probemu2EFdr." ; \n"; print TPFILE " probedrL1 = ".$probemu2L1dr." ;\n"; print TPFILE " probeeta = mu2eta;\n"; print TPFILE " probephi = mu2phi;\n"; print TPFILE " probeAuthor= mu2author;\n"; print TPFILE " probeNtrt = mu2_nTRT; \n"; print TPFILE " probeq = mu2q;\n"; print TPFILE " //probeNtrt=mu2Ntrt; \n"; print TPFILE " }\n"; print TPFILE " if (muonindex == 2) \n"; print TPFILE " {\n"; print TPFILE " probept = mu1pt; \n"; print TPFILE " probez0 = mu1z0; \n"; print TPFILE " probedr = ".$probemu1EFdr." ; \n"; print TPFILE " probedrL1 = ".$probemu1L1dr." ; \n"; print TPFILE " probeeta = mu1eta;\n"; print TPFILE " probephi = mu1phi;\n"; print TPFILE " probeAuthor= mu1author; \n"; print TPFILE " probeNtrt = mu1_nTRT;\n"; print TPFILE " probeq = mu1q;\n"; print TPFILE " //probeNtrt=mu1Ntrt;\n"; print TPFILE " }\n"; print TPFILE "\n"; print TPFILE " } // end of (if ! DoEF)\n"; print TPFILE "\n"; print TPFILE " \n"; print TPFILE " bool IsProbe = 0; \n"; print TPFILE " bool HasProbeQuality = MuonQuality(ProbeIndex);\n"; print TPFILE " float probedrcut;\n"; print TPFILE " ///probe DeltaR cut \n"; print TPFILE " float probedrcutL1=0.4;\n"; print TPFILE " float probedrcutEF=0.05;\n"; print TPFILE " // [-1.3 to -1.1], [-0.1 to 0.1] and [1.1 to 1.3] \n"; print TPFILE "\n"; print TPFILE " ///p cuts \n"; print TPFILE " float probetheta=0.;\n"; print TPFILE " float probep=0.;\n"; print TPFILE " probetheta=2*atan(exp(-1*probeetaID));\n"; print TPFILE " probep=probept/sin(probetheta);\n"; print TPFILE " bool pcut=false;\n"; print TPFILE " if(fabs(probeetaID)<=2.5 && probep>3000.) pcut = true;\n"; print TPFILE "\n"; print TPFILE " ///trt cut \n"; print TPFILE " bool trtCut=false;\n"; print TPFILE " if( (fabs(probeetaID)<=2. && probeNtrt>10) ||\n"; print TPFILE " fabs(probeetaID)>2\n"; print TPFILE " ) trtCut=true;\n"; print TPFILE " \n"; print TPFILE " if (DEBUG) log<<\"probetheta=\"<-1.3 && probeetaID<-1.1) \n"; print TPFILE " || (probeetaID>-0.1 && probeetaID<0.1) \n"; print TPFILE " || (probeetaID>1.1 && probeetaID<1.3) ) excludeEtaRegion = true;\n"; print TPFILE " //if((probeetaID>-1.5 && probeetaID<-0.5) \n"; print TPFILE " // || (probeetaID>-0.1 && probeetaID<0.1) \n"; print TPFILE " // || (probeetaID>1.1 && probeetaID<1.3) ) excludeEtaRegion = true;\n"; print TPFILE " \n"; print TPFILE " if (DEBUG) log << \" before isBadProbeMuon=\" << isBadProbeMuon << endl;\n"; print TPFILE " if(doProbeSegmentTagged && probeAuthor!=13) isBadProbeMuon = 1;\n"; print TPFILE " \n"; print TPFILE " if (DEBUG) log << \" HasProbeQuality=\" << HasProbeQuality << \" isBadProbeMuon=\" << isBadProbeMuon << \" pcut=\"<< pcut << endl;\n"; print TPFILE "\n"; print TPFILE " if ( HasProbeQuality && isBadProbeMuon == 0 && pcut && runNumberCut && trtCut) // && !excludeEtaRegion && probept> 8000) \n"; print TPFILE " {\n"; print TPFILE " //cout<<\"dentro if HasProbeQuality && isBadProbeMuon == 0 && pcut && runNumberCut\"<Fill(invmass);\n"; print TPFILE " stacoCombComb_jpsiInvmass_os_am_aa_cut3->Fill(invmass/1000.);\n"; print TPFILE "\n"; print TPFILE " if ( DoEF || DoRev) probedrcut = 0.05; // EF DR cut\n"; print TPFILE " if ( DoL1 || DoMix) probedrcut = 0.4; // L1 DR cut\n"; print TPFILE " \n"; print TPFILE " // if (probept > 10000)\n"; print TPFILE " if (true)\n"; print TPFILE " {\n"; print TPFILE " if (DEBUG) log << \"Probe pt = \"<Fill(probept/1000.); // fill histo for barrel \n"; print TPFILE " hetaall->Fill(probeetaID);\n"; print TPFILE " hphiall->Fill(probephiID);\n"; print TPFILE " if (probeq>0 && probeetaID >0 || probeq<0 && probeetaID <0) { \n"; print TPFILE " hptmsallqnp->Fill(probept/1000.); \n"; print TPFILE " hetaallqnp->Fill(probeetaID); \n"; print TPFILE " hphiallqnp->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID <0 || probeq<0 && probeetaID >0) { \n"; print TPFILE " hptmsallqnn->Fill(probept/1000.); \n"; print TPFILE " hetaallqnn->Fill(probeetaID); \n"; print TPFILE " hphiallqnn->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID >0) { \n"; print TPFILE " hptmsallqpnp->Fill(probept/1000.); \n"; print TPFILE " hetaallqpnp->Fill(probeetaID); \n"; print TPFILE " hphiallqpnp->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID <0) { \n"; print TPFILE " hptmsallqpnn->Fill(probept/1000.); \n"; print TPFILE " hetaallqpnn->Fill(probeetaID); \n"; print TPFILE " hphiallqpnn->Fill(probephiID); } \n"; print TPFILE " if (probeq<0 && probeetaID >0) { \n"; print TPFILE " hptmsallqnnp->Fill(probept/1000.); \n"; print TPFILE " hetaallqnnp->Fill(probeetaID); \n"; print TPFILE " hphiallqnnp->Fill(probephiID); } \n"; print TPFILE " if (probeq<0 && probeetaID <0) { \n"; print TPFILE " hptmsallqnnn->Fill(probept/1000.); \n"; print TPFILE " hetaallqnnn->Fill(probeetaID); \n"; print TPFILE " hphiallqnnn->Fill(probephiID); } \n"; print TPFILE " \n"; print TPFILE " hmapall->Fill(fabs(probeetaID),probept);\n"; print TPFILE " hptall->Fill(probep/1000.);\n"; print TPFILE " if (fabs(probeetaID) < 1.05) \n"; print TPFILE " { \n"; print TPFILE " nprobe++;\n"; print TPFILE " hptmsb ->Fill(probept/1000.); // fill histo for barrel\n"; print TPFILE " hetab->Fill(probeetaID);\n"; print TPFILE " hphib->Fill(probephiID);\n"; print TPFILE " if (probeq>0) {hptmsbqp->Fill(probept/1000.); \n"; print TPFILE " hetabqp->Fill(probeetaID); \n"; print TPFILE " hphibqp->Fill(probephiID); } \n"; print TPFILE " if (probeq<0) {hptmsbqn->Fill(probept/1000.); \n"; print TPFILE " hetabqn->Fill(probeetaID); \n"; print TPFILE " hphibqn->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID >0 || probeq<0 && probeetaID <0) { \n"; print TPFILE " hptmsbqnp->Fill(probept/1000.); \n"; print TPFILE " hetabqnp->Fill(probeetaID); \n"; print TPFILE " hphibqnp->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID <0 || probeq<0 && probeetaID >0) { \n"; print TPFILE " hptmsbqnn->Fill(probept/1000.); \n"; print TPFILE " hetabqnn->Fill(probeetaID); \n"; print TPFILE " hphibqnn->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID >0) { \n"; print TPFILE " hptmsbqpnp->Fill(probept/1000.); \n"; print TPFILE " hetabqpnp->Fill(probeetaID); \n"; print TPFILE " hphibqpnp->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID <0) { \n"; print TPFILE " hptmsbqpnn->Fill(probept/1000.); \n"; print TPFILE " hetabqpnn->Fill(probeetaID); \n"; print TPFILE " hphibqpnn->Fill(probephiID); } \n"; print TPFILE " if (probeq<0 && probeetaID >0) { \n"; print TPFILE " hptmsbqnnp->Fill(probept/1000.); \n"; print TPFILE " hetabqnnp->Fill(probeetaID); \n"; print TPFILE " hphibqnnp->Fill(probephiID); } \n"; print TPFILE " if (probeq<0 && probeetaID <0) { \n"; print TPFILE " hptmsbqnnn->Fill(probept/1000.); \n"; print TPFILE " hetabqnnn->Fill(probeetaID); \n"; print TPFILE " hphibqnnn->Fill(probephiID); } \n"; print TPFILE " hmapb->Fill(probeetaID,probephiID);\n"; print TPFILE " }\n"; print TPFILE " else\n"; print TPFILE " { \n"; print TPFILE " nprobe++;\n"; print TPFILE " hptmse ->Fill(probept/1000.); // fill histo for Endcap\n"; print TPFILE " hetae->Fill(probeetaID);\n"; print TPFILE " hphie->Fill(probephiID);\n"; print TPFILE " if (probeq>0 && probeetaID >0 || probeq<0 && probeetaID <0) { \n"; print TPFILE " hptmseqnp->Fill(probept/1000.); \n"; print TPFILE " hetaeqnp->Fill(probeetaID); \n"; print TPFILE " hphieqnp->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID <0 || probeq<0 && probeetaID >0) { \n"; print TPFILE " hptmseqnn->Fill(probept/1000.); \n"; print TPFILE " hetaeqnn->Fill(probeetaID); \n"; print TPFILE " hphieqnn->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID >0) { \n"; print TPFILE " hptmseqpnp->Fill(probept/1000.); \n"; print TPFILE " hetaeqpnp->Fill(probeetaID); \n"; print TPFILE " hphieqpnp->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID <0) { \n"; print TPFILE " hptmseqpnn->Fill(probept/1000.); \n"; print TPFILE " hetaeqpnn->Fill(probeetaID); \n"; print TPFILE " hphieqpnn->Fill(probephiID); } \n"; print TPFILE " if (probeq<0 && probeetaID >0) { \n"; print TPFILE " hptmseqnnp->Fill(probept/1000.); \n"; print TPFILE " hetaeqnnp->Fill(probeetaID); \n"; print TPFILE " hphieqnnp->Fill(probephiID); } \n"; print TPFILE " if (probeq<0 && probeetaID <0) { \n"; print TPFILE " hptmseqnnn->Fill(probept/1000.); \n"; print TPFILE " hetaeqnnn->Fill(probeetaID); \n"; print TPFILE " hphieqnnn->Fill(probephiID); } \n"; print TPFILE " hmape->Fill(probeetaID,probephiID);\n"; print TPFILE " }\n"; print TPFILE " \n"; print TPFILE " bool HasRequiredTriggerInEvent;\n"; print TPFILE " bool HasProbeTriggerL1 = false;\n"; print TPFILE " bool HasProbeTriggerEF = false;\n"; print TPFILE " bool HasProbeTrigger = false;\n"; print TPFILE "\n"; print TPFILE " if (DoEF || DoRev) HasRequiredTriggerInEvent = HasTriggerInEventEF;\n"; print TPFILE " if (DoL1 || DoMix) HasRequiredTriggerInEvent = HasTriggerInEventL1;\n"; print TPFILE " \n"; print TPFILE " \n"; print TPFILE " if (DEBUG) log << \" probe dr l1 = \"<Fill(probept/1000.); \n"; print TPFILE " hetaselall->Fill(probeetaID);\n"; print TPFILE " hphiselall->Fill(probephiID);\n"; print TPFILE " if (probeq>0 && probeetaID >0 || probeq<0 && probeetaID <0) { \n"; print TPFILE " hptmsselallqnp->Fill(probept/1000.); \n"; print TPFILE " hetaselallqnp->Fill(probeetaID); \n"; print TPFILE " hphiselallqnp->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID <0 || probeq<0 && probeetaID >0) { \n"; print TPFILE " hptmsselallqnn->Fill(probept/1000.); \n"; print TPFILE " hetaselallqnn->Fill(probeetaID); \n"; print TPFILE " hphiselallqnn->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID >0) { \n"; print TPFILE " hptmsselallqpnp->Fill(probept/1000.); \n"; print TPFILE " hetaselallqpnp->Fill(probeetaID); \n"; print TPFILE " hphiselallqpnp->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID <0) { \n"; print TPFILE " hptmsselallqpnn->Fill(probept/1000.); \n"; print TPFILE " hetaselallqpnn->Fill(probeetaID); \n"; print TPFILE " hphiselallqpnn->Fill(probephiID); } \n"; print TPFILE " if (probeq<0 && probeetaID >0) { \n"; print TPFILE " hptmsselallqnnp->Fill(probept/1000.); \n"; print TPFILE " hetaselallqnnp->Fill(probeetaID); \n"; print TPFILE " hphiselallqnnp->Fill(probephiID); } \n"; print TPFILE " if (probeq<0 && probeetaID <0) { \n"; print TPFILE " hptmsselallqnnn->Fill(probept/1000.); \n"; print TPFILE " hetaselallqnnn->Fill(probeetaID); \n"; print TPFILE " hphiselallqnnn->Fill(probephiID); } \n"; print TPFILE " hmapselall->Fill(fabs(probeetaID),probept); \n"; print TPFILE " //hmapselall->Fill(probeetaID,probept);\n"; print TPFILE " hptselall->Fill(probep/1000.);\n"; print TPFILE "\n"; print TPFILE " if (fabs(probeetaID) < 1.05)\n"; print TPFILE " { \n"; print TPFILE " nprobetrigger++; \n"; print TPFILE " hptmsselb ->Fill(probept/1000.); // fill histo for barrel\n"; print TPFILE " hetaselb->Fill(probeetaID);\n"; print TPFILE " hphiselb->Fill(probephiID);\n"; print TPFILE " if (probeq>0) {hptmsselbqp->Fill(probept/1000.); \n"; print TPFILE " hetaselbqp->Fill(probeetaID); \n"; print TPFILE " hphiselbqp->Fill(probephiID); } \n"; print TPFILE " if (probeq<0) {hptmsselbqn->Fill(probept/1000.); \n"; print TPFILE " hetaselbqn->Fill(probeetaID); \n"; print TPFILE " hphiselbqn->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID >0 || probeq<0 && probeetaID <0) { \n"; print TPFILE " hptmsselbqnp->Fill(probept/1000.); \n"; print TPFILE " hetaselbqnp->Fill(probeetaID); \n"; print TPFILE " hphiselbqnp->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID <0 || probeq<0 && probeetaID >0) { \n"; print TPFILE " hptmsselbqnn->Fill(probept/1000.); \n"; print TPFILE " hetaselbqnn->Fill(probeetaID); \n"; print TPFILE " hphiselbqnn->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID >0) { \n"; print TPFILE " hptmsselbqpnp->Fill(probept/1000.); \n"; print TPFILE " hetaselbqpnp->Fill(probeetaID); \n"; print TPFILE " hphiselbqpnp->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID <0) { \n"; print TPFILE " hptmsselbqpnn->Fill(probept/1000.); \n"; print TPFILE " hetaselbqpnn->Fill(probeetaID); \n"; print TPFILE " hphiselbqpnn->Fill(probephiID); } \n"; print TPFILE " if (probeq<0 && probeetaID >0) { \n"; print TPFILE " hptmsselbqnnp->Fill(probept/1000.); \n"; print TPFILE " hetaselbqnnp->Fill(probeetaID); \n"; print TPFILE " hphiselbqnnp->Fill(probephiID); } \n"; print TPFILE " if (probeq<0 && probeetaID <0) { \n"; print TPFILE " hptmsselbqnnn->Fill(probept/1000.); \n"; print TPFILE " hetaselbqnnn->Fill(probeetaID); \n"; print TPFILE " hphiselbqnnn->Fill(probephiID); } \n"; print TPFILE " hmapselb->Fill(probeetaID,probephiID);\n"; print TPFILE " }\n"; print TPFILE " if (fabs(probeetaID) >= 1.05)\n"; print TPFILE " { \n"; print TPFILE " nprobetrigger++;\n"; print TPFILE " hptmssele ->Fill(probept/1000.); // fill histo for endcap\n"; print TPFILE " hetasele->Fill(probeetaID);\n"; print TPFILE " hphisele->Fill(probephiID);\n"; print TPFILE " if (probeq>0 && probeetaID >0 || probeq<0 && probeetaID <0) { \n"; print TPFILE " hptmsseleqnp->Fill(probept/1000.); \n"; print TPFILE " hetaseleqnp->Fill(probeetaID); \n"; print TPFILE " hphiseleqnp->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID <0 || probeq<0 && probeetaID >0) { \n"; print TPFILE " hptmsseleqnn->Fill(probept/1000.); \n"; print TPFILE " hetaseleqnn->Fill(probeetaID); \n"; print TPFILE " hphiseleqnn->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID >0) { \n"; print TPFILE " hptmsseleqpnp->Fill(probept/1000.); \n"; print TPFILE " hetaseleqpnp->Fill(probeetaID); \n"; print TPFILE " hphiseleqpnp->Fill(probephiID); } \n"; print TPFILE " if (probeq>0 && probeetaID <0) { \n"; print TPFILE " hptmsseleqpnn->Fill(probept/1000.); \n"; print TPFILE " hetaseleqpnn->Fill(probeetaID); \n"; print TPFILE " hphiseleqpnn->Fill(probephiID); } \n"; print TPFILE " if (probeq<0 && probeetaID >0) { \n"; print TPFILE " hptmsseleqnnp->Fill(probept/1000.); \n"; print TPFILE " hetaseleqnnp->Fill(probeetaID); \n"; print TPFILE " hphiseleqnnp->Fill(probephiID); } \n"; print TPFILE " if (probeq<0 && probeetaID <0) { \n"; print TPFILE " hptmsseleqnnn->Fill(probept/1000.); \n"; print TPFILE " hetaseleqnnn->Fill(probeetaID); \n"; print TPFILE " hphiseleqnnn->Fill(probephiID); } \n"; print TPFILE " hmapsele->Fill(probeetaID,probephiID);\n"; print TPFILE " }\n"; print TPFILE " }\n"; print TPFILE " }// end HasProbequality\n"; print TPFILE " } // end IFisTag\n"; print TPFILE " } // if is Jpsi\n"; print TPFILE " } // iend of loop on jentry\n"; print TPFILE " } // iend of loop on jentry\n"; print TPFILE "\n"; print TPFILE " hmapselall->Sumw2();\n"; print TPFILE " hmapall->Sumw2();\n"; print TPFILE " hmapselalleff->Divide(hmapselall,hmapall,1.,1.,\"b\") ;\n"; print TPFILE " \n"; print TPFILE " if (DEBUG) log << \" ntotal Jpsi = \" << ntotal<< endl;\n"; print TPFILE " if (DEBUG) log << \" ntag = \" << ntag<< endl;\n"; print TPFILE " if (DEBUG) log << \" nprobe = \" << nprobe<< endl;\n"; print TPFILE " if (DEBUG) log << \" nprobetrigger = \" << nprobetrigger<< endl;\n"; print TPFILE " \n"; print TPFILE " stacoCombComb_jpsiInvmass_os_am_aa_cut3->Write(); \n"; print TPFILE " hdr->Write();\n"; print TPFILE " hdr2->Write(); \n"; print TPFILE " hptmsall->Write();\n"; print TPFILE " hptmsallqnp->Write();\n"; print TPFILE " hptmsallqnn->Write();\n"; print TPFILE " hptmsallqpnp->Write();\n"; print TPFILE " hptmsallqpnn->Write();\n"; print TPFILE " hptmsallqnnp->Write();\n"; print TPFILE " hptmsallqnnn->Write();\n"; print TPFILE " hptmsselall->Write();\n"; print TPFILE " hptmsselallqnp->Write();\n"; print TPFILE " hptmsselallqnn->Write();\n"; print TPFILE " hptmsselallqpnp->Write();\n"; print TPFILE " hptmsselallqpnn->Write();\n"; print TPFILE " hptmsselallqnnp->Write();\n"; print TPFILE " hptmsselallqnnn->Write();\n"; print TPFILE " hmapselalleff->Write();\n"; print TPFILE " hetaall->Write();\n"; print TPFILE " hetaallqnp->Write();\n"; print TPFILE " hetaallqnn->Write();\n"; print TPFILE " hetaallqpnp->Write();\n"; print TPFILE " hetaallqpnn->Write();\n"; print TPFILE " hetaallqnnp->Write();\n"; print TPFILE " hetaallqnnn->Write();\n"; print TPFILE " hetaselall->Write();\n"; print TPFILE " hetaselallqnp->Write();\n"; print TPFILE " hetaselallqnn->Write();\n"; print TPFILE " hetaselallqpnp->Write();\n"; print TPFILE " hetaselallqpnn->Write();\n"; print TPFILE " hetaselallqnnp->Write();\n"; print TPFILE " hetaselallqnnn->Write();\n"; print TPFILE " hphiall->Write();\n"; print TPFILE " hphiallqnp->Write();\n"; print TPFILE " hphiallqnn->Write();\n"; print TPFILE " hphiallqpnp->Write();\n"; print TPFILE " hphiallqpnn->Write();\n"; print TPFILE " hphiallqnnp->Write();\n"; print TPFILE " hphiallqnnn->Write();\n"; print TPFILE " hphiselall->Write();\n"; print TPFILE " hphiselallqnp->Write();\n"; print TPFILE " hphiselallqnn->Write();\n"; print TPFILE " hphiselallqpnp->Write();\n"; print TPFILE " hphiselallqpnn->Write();\n"; print TPFILE " hphiselallqnnp->Write();\n"; print TPFILE " hphiselallqnnn->Write();\n"; print TPFILE " hmapall->Write();\n"; print TPFILE " hmapselall->Write();\n"; print TPFILE " hptall->Write();\n"; print TPFILE " hptselall->Write();\n"; print TPFILE " \n"; print TPFILE " hptmsb->Write();\n"; print TPFILE " hptmsbqp->Write();\n"; print TPFILE " hptmsbqn->Write();\n"; print TPFILE " hptmsselbqp->Write();\n"; print TPFILE " hptmsselbqn->Write();\n"; print TPFILE " hptmsbqnp->Write();\n"; print TPFILE " hptmsbqnn->Write();\n"; print TPFILE " hptmsbqpnp->Write();\n"; print TPFILE " hptmsbqpnn->Write();\n"; print TPFILE " hptmsbqnnp->Write();\n"; print TPFILE " hptmsbqnnn->Write();\n"; print TPFILE " hptmsselb->Write();\n"; print TPFILE " hptmsselbqnp->Write();\n"; print TPFILE " hptmsselbqnn->Write();\n"; print TPFILE " hptmsselbqpnp->Write();\n"; print TPFILE " hptmsselbqpnn->Write();\n"; print TPFILE " hptmsselbqnnp->Write();\n"; print TPFILE " hptmsselbqnnn->Write();\n"; print TPFILE " hetab->Write();\n"; print TPFILE " hetabqp->Write();\n"; print TPFILE " hetabqn->Write();\n"; print TPFILE " hetaselbqp->Write();\n"; print TPFILE " hetaselbqn->Write();\n"; print TPFILE " hetabqnp->Write();\n"; print TPFILE " hetabqnn->Write();\n"; print TPFILE " hetabqpnp->Write();\n"; print TPFILE " hetabqpnn->Write();\n"; print TPFILE " hetabqnnp->Write();\n"; print TPFILE " hetabqnnn->Write();\n"; print TPFILE " hetaselb->Write();\n"; print TPFILE " hetaselbqnp->Write();\n"; print TPFILE " hetaselbqnn->Write();\n"; print TPFILE " hetaselbqpnp->Write();\n"; print TPFILE " hetaselbqpnn->Write();\n"; print TPFILE " hetaselbqnnp->Write();\n"; print TPFILE " hetaselbqnnn->Write();\n"; print TPFILE " hphib->Write();\n"; print TPFILE " hphibqnp->Write();\n"; print TPFILE " hphibqnn->Write();\n"; print TPFILE " hphibqpnp->Write();\n"; print TPFILE " hphibqpnn->Write();\n"; print TPFILE " hphibqnnp->Write();\n"; print TPFILE " hphibqnnn->Write();\n"; print TPFILE " hphiselb->Write();\n"; print TPFILE " hphiselbqnp->Write();\n"; print TPFILE " hphiselbqnn->Write();\n"; print TPFILE " hphiselbqpnp->Write();\n"; print TPFILE " hphiselbqpnn->Write();\n"; print TPFILE " hphiselbqnnp->Write();\n"; print TPFILE " hphiselbqnnn->Write();\n"; print TPFILE " hmapb->Write();\n"; print TPFILE " hmapselb->Write();\n"; print TPFILE " \n"; print TPFILE " hptmse->Write();\n"; print TPFILE " hptmseqnp->Write();\n"; print TPFILE " hptmseqnn->Write();\n"; print TPFILE " hptmseqpnp->Write();\n"; print TPFILE " hptmseqpnn->Write();\n"; print TPFILE " hptmseqnnp->Write();\n"; print TPFILE " hptmseqnnn->Write();\n"; print TPFILE " hptmssele->Write();\n"; print TPFILE " hptmsseleqnp->Write();\n"; print TPFILE " hptmsseleqnn->Write();\n"; print TPFILE " hptmsseleqpnp->Write();\n"; print TPFILE " hptmsseleqpnn->Write();\n"; print TPFILE " hptmsseleqnnp->Write();\n"; print TPFILE " hptmsseleqnnn->Write();\n"; print TPFILE " hetae->Write();\n"; print TPFILE " hetaeqnp->Write();\n"; print TPFILE " hetaeqnn->Write();\n"; print TPFILE " hetaeqpnp->Write();\n"; print TPFILE " hetaeqpnn->Write();\n"; print TPFILE " hetaeqnnp->Write();\n"; print TPFILE " hetaeqnnn->Write();\n"; print TPFILE " hetasele->Write();\n"; print TPFILE " hetaseleqnp->Write();\n"; print TPFILE " hetaseleqnn->Write();\n"; print TPFILE " hetaseleqpnp->Write();\n"; print TPFILE " hetaseleqpnn->Write();\n"; print TPFILE " hetaseleqnnp->Write();\n"; print TPFILE " hetaseleqnnn->Write();\n"; print TPFILE " hphie->Write();\n"; print TPFILE " hphieqnp->Write();\n"; print TPFILE " hphieqnn->Write();\n"; print TPFILE " hphieqpnp->Write();\n"; print TPFILE " hphieqpnn->Write();\n"; print TPFILE " hphieqnnp->Write();\n"; print TPFILE " hphieqnnn->Write();\n"; print TPFILE " hphisele->Write();\n"; print TPFILE " hphiseleqnp->Write();\n"; print TPFILE " hphiseleqnn->Write();\n"; print TPFILE " hphiseleqpnp->Write();\n"; print TPFILE " hphiseleqpnn->Write();\n"; print TPFILE " hphiseleqnnp->Write();\n"; print TPFILE " hphiseleqnnn->Write();\n"; print TPFILE " hmape->Write();\n"; print TPFILE " hmapsele->Write();\n"; print TPFILE " \n"; print TPFILE " TagInvMass->Write();\n"; print TPFILE " ProbeInvMass->Write();\n"; print TPFILE " my_h1->Write();\n"; print TPFILE "}\n"; print TPFILE "\n"; print TPFILE "bool TP::MuonQuality(int index)\n"; print TPFILE "{\n"; print TPFILE " bool mupass= 0;\n"; print TPFILE " float mueta ;\n"; print TPFILE " float muphi ; \n"; print TPFILE " float mupt ;\n"; print TPFILE " float muz0 ;\n"; print TPFILE " if (index == 1)\n"; print TPFILE " {\n"; print TPFILE " mueta = mu1eta;\n"; print TPFILE " muphi = mu1phi; \n"; print TPFILE " mupt = mu1pt;\n"; print TPFILE " muz0 = mu1z0;\n"; print TPFILE " }\n"; print TPFILE " else\n"; print TPFILE " {\n"; print TPFILE " mueta = mu2eta;\n"; print TPFILE " muphi = mu2phi; \n"; print TPFILE " mupt = mu2pt;\n"; print TPFILE " muz0 = mu2z0;\n"; print TPFILE " }\n"; print TPFILE "\n"; print TPFILE " float theta=2*atan(exp(-mueta));\n"; print TPFILE " float mup=mupt/(sin(theta));\n"; print TPFILE " \n"; print TPFILE " /*\n"; print TPFILE " if ( fabs(pvz) < 150 && fabs(mueta)<2.4 \n"; print TPFILE " && mupt >1500 && mup>1500 \n"; print TPFILE " && fabs(muz0-pvz) < 3 && msinfo == 1)\n"; print TPFILE " */\n"; print TPFILE "\n"; print TPFILE " mupass=1;\n"; print TPFILE " \n"; print TPFILE " return mupass;\n"; print TPFILE "}\n"; print TPFILE "\n"; print TPFILE "float TP::SearchDrCut(float pt, float muetas, float muphis, float t[7][32][42])\n"; print TPFILE "{\n"; print TPFILE "\n"; print TPFILE " //if (DEBUG) log << \"test\"<= 15 ) ptzone[p]=3;\n"; print TPFILE " } \n"; print TPFILE " \n"; print TPFILE " float rpt = pt/1000.;\n"; print TPFILE " int i=(int)rpt;\n"; print TPFILE " if (i >= 100) i = 99;\n"; print TPFILE " int zone = ptzone[i]-1; \n"; print TPFILE " \n"; print TPFILE "\n"; print TPFILE " float infeta = -3.;\n"; print TPFILE " float passoeta = 0.142; \n"; print TPFILE " float getetabin=fabs(muetas-infeta)/passoeta;\n"; print TPFILE " Int_t ebin=((int)getetabin);\n"; print TPFILE " \n"; print TPFILE " float infphi = -3.14;\n"; print TPFILE " float passophi = 0.196; \n"; print TPFILE " float getphibin=fabs(muphis-infphi)/passophi;\n"; print TPFILE " Int_t pbin=((int)getphibin);\n"; print TPFILE " \n"; print TPFILE "\n"; print TPFILE " if (zone < 0) dr_cut = 0.5; // flat \n"; print TPFILE " if (ebin > 41) ebin = 41;\n"; print TPFILE " if (pbin > 31) pbin = 31;\n"; print TPFILE " \n"; print TPFILE " // if (DEBUG) log << \" pt = \"<= 0) dr_cut = t[zone][pbin][ebin];\n"; print TPFILE " if (dr_cut == 999) dr_cut = 0.5; // put flat dr cut when no entries in map\n"; print TPFILE " \n"; print TPFILE " \n"; print TPFILE " \n"; print TPFILE " \n"; print TPFILE " return dr_cut;\n"; print TPFILE "}\n"; close (TPFILE);