458{
459
460
461
462 AnalysisCut* cut = new AnalysisCut(cutName, cutName);
463 std::string nameStr = cutName;
464
465 if (!nameStr.compare("eventStandard")) {
466 cut->AddCut(VarManager::kVtxZ, -10.0, 10.0);
467 cut->AddCut(VarManager::kIsINT7, 0.5, 1.5);
468 return cut;
469 }
470
471 if (!nameStr.compare("eventStandardNoINT7")) {
472 cut->AddCut(VarManager::kVtxZ, -10.0, 10.0);
473 return cut;
474 }
475
476 if (!nameStr.compare("eventDimuonStandard")) {
477 cut->AddCut(VarManager::kIsMuonUnlikeLowPt7, 0.5, 1.5);
478 return cut;
479 }
480
481 if (!nameStr.compare("eventMuonStandard")) {
482 cut->AddCut(VarManager::kIsMuonSingleLowPt7, 0.5, 1.5);
483 return cut;
484 }
485
486 if (!nameStr.compare("int7vtxZ5")) {
487 cut->AddCut(VarManager::kVtxZ, -5.0, 5.0);
488 cut->AddCut(VarManager::kIsINT7, 0.5, 1.5);
489 return cut;
490 }
491
492 if (!nameStr.compare("jpsiStandardKine")) {
493 cut->AddCut(VarManager::kPt, 1.0, 1000.0);
494 cut->AddCut(VarManager::kEta, -0.9, 0.9);
495 return cut;
496 }
497
498 if (!nameStr.compare("highPtHadron")) {
499 cut->AddCut(VarManager::kPt, 4.0, 1000.0);
500 cut->AddCut(VarManager::kEta, -0.9, 0.9);
501 cut->AddCut(VarManager::kIsITSrefit, 0.5, 1.5);
502 cut->AddCut(VarManager::kIsTPCrefit, 0.5, 1.5);
503 cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0);
504 cut->AddCut(VarManager::kITSchi2, 0.1, 36.0);
505 cut->AddCut(VarManager::kTPCncls, 70.0, 161.);
506 return cut;
507 }
508
509 if (!nameStr.compare("lmeeStandardKine")) {
510 cut->AddCut(VarManager::kPt, 0.2, 10.0);
511 cut->AddCut(VarManager::kEta, -0.8, 0.8);
512 return cut;
513 }
514
515 if (!nameStr.compare("lmeeLowBKine")) {
516 cut->AddCut(VarManager::kPt, 0.075, 10.0);
517 cut->AddCut(VarManager::kEta, -0.8, 0.8);
518 return cut;
519 }
520
521 if (!nameStr.compare("PIDStandardKine")) {
522 cut->AddCut(VarManager::kPt, 0.1, 1000.0);
523 cut->AddCut(VarManager::kEta, -0.9, 0.9);
524 return cut;
525 }
526
527 if (!nameStr.compare("TightGlobalTrack")) {
528 cut->AddCut(VarManager::kIsSPDfirst, 0.5, 1.5);
529 cut->AddCut(VarManager::kIsITSrefit, 0.5, 1.5);
530 cut->AddCut(VarManager::kIsTPCrefit, 0.5, 1.5);
531 cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0);
532 cut->AddCut(VarManager::kITSchi2, 0.0, 5.0);
533 cut->AddCut(VarManager::kTPCnclsCR, 80.0, 161.);
534 cut->AddCut(VarManager::kITSncls, 3.5, 7.5);
535 return cut;
536 }
537
538 if (!nameStr.compare("TightGlobalTrackRun3")) {
539 cut->AddCut(VarManager::kIsSPDfirst, 0.5, 1.5);
540 cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0);
541 cut->AddCut(VarManager::kITSchi2, 0.0, 5.0);
542 cut->AddCut(VarManager::kTPCnclsCR, 80.0, 161.);
543 cut->AddCut(VarManager::kITSncls, 3.5, 9.);
544 return cut;
545 }
546
547 if (!nameStr.compare("TightTPCTrackRun3")) {
548 cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0);
549 cut->AddCut(VarManager::kTPCnclsCR, 80.0, 161.);
550 return cut;
551 }
552
553 if (!nameStr.compare("electronStandardQuality")) {
554 cut->AddCut(VarManager::kIsSPDany, 0.5, 1.5);
555 cut->AddCut(VarManager::kIsITSrefit, 0.5, 1.5);
556 cut->AddCut(VarManager::kIsTPCrefit, 0.5, 1.5);
557 cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0);
558 cut->AddCut(VarManager::kITSchi2, 0.1, 36.0);
559 cut->AddCut(VarManager::kTPCncls, 100.0, 161.);
560 return cut;
561 }
562
563 if (!nameStr.compare("electronStandardQualityBenchmark")) {
564 cut->AddCut(VarManager::kIsITSrefit, 0.5, 1.5);
565 cut->AddCut(VarManager::kIsTPCrefit, 0.5, 1.5);
566 cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0);
567 cut->AddCut(VarManager::kITSchi2, 0.1, 36.0);
568 cut->AddCut(VarManager::kTPCncls, 70.0, 161.);
569 return cut;
570 }
571
572 if (!nameStr.compare("electronStandardQualityForO2MCdebug")) {
573 cut->AddCut(VarManager::kIsSPDany, 0.5, 1.5);
574 cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0);
575 cut->AddCut(VarManager::kTPCncls, 70, 161.);
576 return cut;
577 }
578
579 if (!nameStr.compare("electronStandardQualityForO2MCdebug2")) {
580 cut->AddCut(VarManager::kIsSPDany, 0.5, 1.5);
581 cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0);
582 cut->AddCut(VarManager::kTPCncls, 100.0, 161.);
583 return cut;
584 }
585
586 if (!nameStr.compare("standardPrimaryTrack")) {
587 cut->AddCut(VarManager::kTrackDCAxy, -1.0, 1.0);
588 cut->AddCut(VarManager::kTrackDCAz, -3.0, 3.0);
589 return cut;
590 }
591
592 TF1* cutLow1 = new TF1("cutLow1", "pol1", 0., 10.);
593 if (!nameStr.compare("electronPID1")) {
594 cutLow1->SetParameters(130., -40.0);
595 cut->AddCut(VarManager::kTPCsignal, 70., 100.);
596 cut->AddCut(VarManager::kTPCsignal, cutLow1, 100.0, false, VarManager::kPin, 0.5, 3.0);
597 return cut;
598 }
599
600 if (!nameStr.compare("electronPID1shiftUp")) {
601 cut->AddCut(VarManager::kTPCsignal, 70. - 0.85, 100. - 0.85);
602 cutLow1->SetParameters(130. - 0.85, -40.0);
603 cut->AddCut(VarManager::kTPCsignal, cutLow1, 100.0 - 0.85, false, VarManager::kPin, 0.5, 3.0);
604 return cut;
605 }
606
607 if (!nameStr.compare("electronPID1shiftDown")) {
608 cut->AddCut(VarManager::kTPCsignal, 70.0 + 0.85, 100.0 + 0.85);
609 cutLow1->SetParameters(130. + 0.85, -40.0);
610 cut->AddCut(VarManager::kTPCsignal, cutLow1, 100.0 + 0.85, false, VarManager::kPin, 0.5, 3.0);
611 return cut;
612 }
613
614 if (!nameStr.compare("electronPID1randomized")) {
615 cutLow1->SetParameters(130., -40.0);
616 cut->AddCut(VarManager::kTPCsignalRandomized, 70., 100.);
617 cut->AddCut(VarManager::kTPCsignalRandomized, cutLow1, 100.0, false, VarManager::kPin, 0.5, 3.0);
618 return cut;
619 }
620
621 if (!nameStr.compare("electronPID2")) {
622 cutLow1->SetParameters(130., -40.0);
623 cut->AddCut(VarManager::kTPCsignal, 73., 100.);
624 cut->AddCut(VarManager::kTPCsignal, cutLow1, 100.0, false, VarManager::kPin, 0.5, 3.0);
625 return cut;
626 }
627
628 if (!nameStr.compare("electronPID3")) {
629 cutLow1->SetParameters(130., -40.0);
630 cut->AddCut(VarManager::kTPCsignal, 60., 110.);
631 cut->AddCut(VarManager::kTPCsignal, cutLow1, 100.0, false, VarManager::kPin, 0.5, 3.0);
632 return cut;
633 }
634
635 if (!nameStr.compare("electronPID2randomized")) {
636 cutLow1->SetParameters(130., -40.0);
637 cut->AddCut(VarManager::kTPCsignalRandomized, 73., 100.);
638 cut->AddCut(VarManager::kTPCsignalRandomized, cutLow1, 100.0, false, VarManager::kPin, 0.5, 3.0);
639 return cut;
640 }
641
642 if (!nameStr.compare("electronPIDnsigma")) {
643 cut->AddCut(VarManager::kTPCnSigmaEl, -3.0, 3.0);
644 cut->AddCut(VarManager::kTPCnSigmaPr, 3.0, 3000.0);
645 cut->AddCut(VarManager::kTPCnSigmaPi, 3.0, 3000.0);
646 return cut;
647 }
648
649 if (!nameStr.compare("electronPIDnsigmaOpen")) {
650 cut->AddCut(VarManager::kTPCnSigmaEl, -4.0, 4.0);
651 cut->AddCut(VarManager::kTPCnSigmaPr, 2.0, 3000.0);
652 cut->AddCut(VarManager::kTPCnSigmaPi, 2.0, 3000.0);
653 return cut;
654 }
655
656 if (!nameStr.compare("electronPIDnsigmaVeryVeryLoose")) {
657 cut->AddCut(VarManager::kTPCnSigmaEl, -4.0, 4.0);
658 cut->AddCut(VarManager::kTPCnSigmaPr, 2.5, 3000.0);
659 cut->AddCut(VarManager::kTPCnSigmaPi, 2.0, 3000.0);
660 return cut;
661 }
662
663 if (!nameStr.compare("electronPIDnsigmaVeryLoose")) {
664 cut->AddCut(VarManager::kTPCnSigmaEl, -4.0, 4.0);
665 cut->AddCut(VarManager::kTPCnSigmaPr, 2.5, 3000.0);
666 cut->AddCut(VarManager::kTPCnSigmaPi, 2.5, 3000.0);
667 return cut;
668 }
669
670 if (!nameStr.compare("electronPIDnsigmaLoose")) {
671 cut->AddCut(VarManager::kTPCnSigmaEl, -3.0, 3.0);
672 cut->AddCut(VarManager::kTPCnSigmaPr, 2.5, 3000.0);
673 cut->AddCut(VarManager::kTPCnSigmaPi, 2.5, 3000.0);
674 return cut;
675 }
676
677 if (!nameStr.compare("electronPIDnsigmaMedium")) {
678 cut->AddCut(VarManager::kTPCnSigmaEl, -3.0, 3.0);
679 cut->AddCut(VarManager::kTPCnSigmaPr, 2.7, 3000.0);
680 cut->AddCut(VarManager::kTPCnSigmaPi, 2.7, 3000.0);
681 return cut;
682 }
683
684 if (!nameStr.compare("kaonPIDnsigma")) {
685 cut->AddCut(VarManager::kTPCnSigmaKa, -3.0, 3.0);
686 return cut;
687 }
688
689 if (!nameStr.compare("kaonPIDnsigma")) {
690 cut->AddCut(VarManager::kTPCnSigmaKa, -3.0, 3.0);
691 return cut;
692 }
693
694 if (!nameStr.compare("electronPIDnsigmaRandomized")) {
695 cut->AddCut(VarManager::kTPCnSigmaElRandomized, -3.0, 3.0);
696 cut->AddCut(VarManager::kTPCnSigmaPrRandomized, 3.0, 3000.0);
697 cut->AddCut(VarManager::kTPCnSigmaPiRandomized, 3.0, 3000.0);
698 return cut;
699 }
700
701 if (!nameStr.compare("electronPIDworseRes")) {
702 cut->AddCut(VarManager::kTPCnSigmaEl, -3.0, 3.0);
703 cut->AddCut(VarManager::kTPCnSigmaPr, 3.0 * 0.8, 3000.0);
704 cut->AddCut(VarManager::kTPCnSigmaPi, 3.0 * 0.8, 3000.0);
705 return cut;
706 }
707
708 if (!nameStr.compare("electronPIDshift")) {
709 cut->AddCut(VarManager::kTPCnSigmaEl, -3.0, 3.0);
710 cut->AddCut(VarManager::kTPCnSigmaPr, 3.0 - 0.2, 3000.0);
711 cut->AddCut(VarManager::kTPCnSigmaPi, 3.0 - 0.2, 3000.0);
712 return cut;
713 }
714
715 if (!nameStr.compare("tpc_pion_rejection")) {
716 TF1* f1maxPi = new TF1("f1maxPi", "[0]+[1]*x", 0, 10);
717 f1maxPi->SetParameters(85, -50);
718 cut->AddCut(VarManager::kTPCsignal, 70, f1maxPi, true, VarManager::kPin, 0.0, 0.4, false);
719 return cut;
720 }
721
722 if (!nameStr.compare("tpc_pion_band_rejection")) {
723 TF1* f1minPi = new TF1("f1minPi", "[0]+[1]*log(x)", 0, 10);
724 f1minPi->SetParameters(-115, -90);
725 TF1* f1maxPi = new TF1("f1maxPi", "[0]+[1]*log(x)", 0, 10);
726 f1maxPi->SetParameters(-70, -90);
727 cut->AddCut(VarManager::kTPCsignal, f1minPi, f1maxPi, true, VarManager::kPin, 0.05, 0.3, false);
728 return cut;
729 }
730
731 if (!nameStr.compare("tpc_pion_rejection_highp")) {
732 TF1* f1minPi = new TF1("f1minPi", "[0]+[1]*x", 0, 10);
733 f1minPi->SetParameters(60, 4.);
734 cut->AddCut(VarManager::kTPCsignal, f1minPi, 110., false, VarManager::kPin, 0.0, 10, false);
735 return cut;
736 }
737
738 if (!nameStr.compare("tpc_kaon_rejection")) {
739 TF1* f1minKa = new TF1("f1minKa", "[0]+[1]*x", 0, 10);
740 f1minKa->SetParameters(220, -300);
741 TF1* f1maxKa = new TF1("f1maxKa", "[0]+[1]*x", 0, 10);
742 f1maxKa->SetParameters(182.5, -150);
743 cut->AddCut(VarManager::kTPCsignal, f1minKa, f1maxKa, true, VarManager::kPin, 0.4, 0.8, false);
744 return cut;
745 }
746
747 if (!nameStr.compare("tpc_proton_rejection")) {
748 TF1* f1minPr = new TF1("f1minPr", "[0]+[1]*x", 0, 10);
749 f1minPr->SetParameters(170, -100);
750 TF1* f1maxPr = new TF1("f1maxPr", "[0]+[1]*x", 0, 10);
751 f1maxPr->SetParameters(175, -75);
752 cut->AddCut(VarManager::kTPCsignal, f1minPr, f1maxPr, true, VarManager::kPin, 0.8, 1.4, false);
753 return cut;
754 }
755
756 if (!nameStr.compare("tpc_electron")) {
757 cut->AddCut(VarManager::kTPCsignal, 70, 110, false, VarManager::kPin, 0.0, 1e+10, false);
758 return cut;
759 }
760
761 if (!nameStr.compare("tof_electron")) {
762 cut->AddCut(VarManager::kTOFbeta, 0.99, 1.01, false, VarManager::kPin, 0.0, 1e+10, false);
763 return cut;
764 }
765
766 if (!nameStr.compare("tof_electron_loose")) {
767 cut->AddCut(VarManager::kTOFbeta, 0.95, 1.05, false, VarManager::kPin, 0.0, 1e+10, false);
768 return cut;
769 }
770
771 if (!nameStr.compare("pidcalib_ele")) {
772 cut->AddCut(VarManager::kIsLegFromGamma, 0.5, 1.5, false);
773 return cut;
774 }
775
776 if (!nameStr.compare("muonQualityCuts")) {
777 cut->AddCut(VarManager::kEta, -4.0, -2.5);
778 cut->AddCut(VarManager::kMuonRAtAbsorberEnd, 17.6, 89.5);
779 cut->AddCut(VarManager::kMuonPDca, 0.0, 594.0, false, VarManager::kMuonRAtAbsorberEnd, 17.6, 26.5);
780 cut->AddCut(VarManager::kMuonPDca, 0.0, 324.0, false, VarManager::kMuonRAtAbsorberEnd, 26.5, 89.5);
781 cut->AddCut(VarManager::kMuonChi2, 0.0, 1e6);
782 cut->AddCut(VarManager::kMuonChi2MatchMCHMID, 0.0, 1e6);
783 return cut;
784 }
785
786 if (!nameStr.compare("muonQualityCutsMatchingOnly")) {
787 cut->AddCut(VarManager::kEta, -4.0, -2.5);
788 cut->AddCut(VarManager::kMuonChi2, 0.0, 1e6);
789 cut->AddCut(VarManager::kMuonChi2MatchMCHMID, 0.0, 1e6);
790 return cut;
791 }
792
793 if (!nameStr.compare("muonLowPt")) {
794 cut->AddCut(VarManager::kPt, 0.5, 1000.0);
795 return cut;
796 }
797
798 if (!nameStr.compare("muonLowPt2")) {
799 cut->AddCut(VarManager::kPt, 1.0, 1000.0);
800 return cut;
801 }
802
803 if (!nameStr.compare("muonHighPt")) {
804 cut->AddCut(VarManager::kPt, 4.0, 1000.0);
805 return cut;
806 }
807
808 if (!nameStr.compare("muonTightQualityCutsForTests")) {
809 cut->AddCut(VarManager::kEta, -4.0, -2.5);
810 cut->AddCut(VarManager::kMuonRAtAbsorberEnd, 20.0, 60.0);
811 cut->AddCut(VarManager::kMuonPDca, 0.0, 594.0, false, VarManager::kMuonRAtAbsorberEnd, 17.6, 26.5);
812 cut->AddCut(VarManager::kMuonPDca, 0.0, 324.0, false, VarManager::kMuonRAtAbsorberEnd, 26.5, 89.5);
813 cut->AddCut(VarManager::kMuonChi2, 0.0, 1e6);
814 return cut;
815 }
816
817 if (!nameStr.compare("mchTrack")) {
818 cut->AddCut(VarManager::kMuonTrackType, 3.5, 4.5);
819 return cut;
820 }
821
822 if (!nameStr.compare("matchedMchMid")) {
823 cut->AddCut(VarManager::kMuonTrackType, 2.5, 3.5);
824 return cut;
825 }
826
827 if (!nameStr.compare("matchedFwd")) {
828 cut->AddCut(VarManager::kMuonTrackType, 1.5, 2.5);
829 return cut;
830 }
831
832 if (!nameStr.compare("matchedGlobal")) {
833 cut->AddCut(VarManager::kMuonTrackType, -0.5, 0.5);
834 return cut;
835 }
836
837 if (!nameStr.compare("pairNoCut")) {
838 cut->AddCut(VarManager::kMass, 0.0, 1000.0);
839 return cut;
840 }
841
842 if (!nameStr.compare("pairMassLow1")) {
843 cut->AddCut(VarManager::kMass, 2.0, 1000.0);
844 return cut;
845 }
846
847 if (!nameStr.compare("pairMassLow2")) {
848 cut->AddCut(VarManager::kMass, 2.2, 1000.0);
849 return cut;
850 }
851
852 if (!nameStr.compare("pairMassLow3")) {
853 cut->AddCut(VarManager::kMass, 2.5, 1000.0);
854 return cut;
855 }
856
857 if (!nameStr.compare("pairJpsi")) {
858 cut->AddCut(VarManager::kMass, 2.8, 3.3);
859 return cut;
860 }
861
862 if (!nameStr.compare("pairPsi2S")) {
863 cut->AddCut(VarManager::kMass, 3.4, 3.9);
864 return cut;
865 }
866
867 if (!nameStr.compare("pairUpsilon")) {
868 cut->AddCut(VarManager::kMass, 8.0, 11.0);
869 return cut;
870 }
871
872 if (!nameStr.compare("pairPtLow1")) {
873 cut->AddCut(VarManager::kPt, 2.0, 1000.0);
874 return cut;
875 }
876
877 if (!nameStr.compare("pairPtLow2")) {
878 cut->AddCut(VarManager::kPt, 5.0, 1000.0);
879 return cut;
880 }
881
882 if (!nameStr.compare("pairRapidityForward")) {
883 cut->AddCut(VarManager::kRap, 2.5, 4.0);
884 return cut;
885 }
886
887 if (!nameStr.compare("pairDCA")) {
888 cut->AddCut(VarManager::kQuadDCAabsXY, .0, .50);
889 return cut;
890 }
891
892 if (!nameStr.compare("singleDCA")) {
893 cut->AddCut(VarManager::kTrackDCAsigXY, 0.0, 5.);
894 return cut;
895 }
896
897 delete cut;
898 return nullptr;
899}