1212// Contact: iarsene@cern.ch, i.c.arsene@fys.uio.no
1313//
1414#include < string>
15+ #include < vector>
1516// #include <iostream>
1617
1718#include < TPDGCode.h>
@@ -602,6 +603,39 @@ MCSignal* o2::aod::dqmcsignals::GetMCSignal(const char* name)
602603 signal = new MCSignal (name, " Electrons from open charmed hadron decays with b hadron in decay history" , {prong}, {-1 });
603604 return signal;
604605 }
606+ if (!nameStr.compare (" eFromPromptLM" )) {
607+ MCProng prong (2 , {11 , 101 }, {true , true }, {false , false }, {0 , 0 }, {0 , 0 }, {false , false }, false , {502 , 402 }, {true , true });
608+ prong.SetSourceBit (0 , MCProng::kPhysicalPrimary );
609+ signal = new MCSignal (name, " Electrons from light mesons without B/D in decay history" , {prong}, {-1 });
610+ return signal;
611+ }
612+ if (!nameStr.compare (" eFromHbtoLM" )) {
613+ MCProng prong (2 , {11 , 101 }, {true , true }, {false , false }, {0 , 0 }, {0 , 0 }, {false , false }, false , {502 }, {false });
614+ prong.SetSourceBit (0 , MCProng::kPhysicalPrimary );
615+ signal = new MCSignal (name, " Electrons from light mesons with B hadron in decay history" , {prong}, {-1 });
616+ return signal;
617+ }
618+ if (!nameStr.compare (" eFromHctoLM" )) {
619+ MCProng prong (2 , {11 , 101 , 402 }, {true , true , true }, {false , false , false }, {0 , 0 , 0 }, {0 , 0 , 0 }, {false , false , false }, false , {502 }, {true });
620+ prong.SetSourceBit (0 , MCProng::kPhysicalPrimary );
621+ signal = new MCSignal (name, " Electrons from light mesons from D hadron decays and no B in decay history" , {prong}, {-1 });
622+ return signal;
623+ }
624+ if (!nameStr.compare (" eFromUpsilon1S" )) {
625+ MCProng prong (2 , {11 , 553 }, {true , true }, {false , false }, {0 , 0 }, {0 , 0 }, {false , false });
626+ signal = new MCSignal (name, " Electrons from Upsilon1S decays" , {prong}, {-1 });
627+ return signal;
628+ }
629+ if (!nameStr.compare (" eFromUpsilon2S" )) {
630+ MCProng prong (2 , {11 , 100553 }, {true , true }, {false , false }, {0 , 0 }, {0 , 0 }, {false , false });
631+ signal = new MCSignal (name, " Electrons from Upsilon2S decays" , {prong}, {-1 });
632+ return signal;
633+ }
634+ if (!nameStr.compare (" eFromUpsilon3S" )) {
635+ MCProng prong (2 , {11 , 200553 }, {true , true }, {false , false }, {0 , 0 }, {0 , 0 }, {false , false });
636+ signal = new MCSignal (name, " Electrons from Upsilon3S decays" , {prong}, {-1 });
637+ return signal;
638+ }
605639
606640 // muon signals with mother X: mu from mother X
607641 if (!nameStr.compare (" muFromJpsi" )) {
@@ -614,6 +648,64 @@ MCSignal* o2::aod::dqmcsignals::GetMCSignal(const char* name)
614648 signal = new MCSignal (name, " muons from psi2s decays" , {prong}, {-1 });
615649 return signal;
616650 }
651+ if (!nameStr.compare (" muFromHb" )) {
652+ MCProng prong (2 , {13 , 502 }, {true , true }, {false , false }, {0 , 0 }, {0 , 0 }, {false , false });
653+ prong.SetSourceBit (0 , MCProng::kPhysicalPrimary );
654+ signal = new MCSignal (name, " muons from b->mu" , {prong}, {-1 });
655+ return signal;
656+ }
657+ if (!nameStr.compare (" muFromPromptHc" )) {
658+ MCProng prong (2 , {13 , 402 }, {true , true }, {false , false }, {0 , 0 }, {0 , 0 }, {false , false }, false , {502 }, {true });
659+ prong.SetSourceBit (0 , MCProng::kPhysicalPrimary );
660+ signal = new MCSignal (name, " muons from c->mu, without beauty in decay history" , {prong}, {-1 });
661+ return signal;
662+ }
663+ if (!nameStr.compare (" muFromHbtoHc" )) {
664+ MCProng prong (3 , {13 , 402 , 502 }, {true , true , true }, {false , false , false }, {0 , 0 , 0 }, {0 , 0 , 0 }, {false , false , false });
665+ prong.SetSourceBit (0 , MCProng::kPhysicalPrimary );
666+ signal = new MCSignal (name, " muons from b->c->mu" , {prong}, {-1 });
667+ return signal;
668+ }
669+ if (!nameStr.compare (" secondaryMuon" )) {
670+ MCProng prong (1 );
671+ prong.SetPDGcode (0 , 13 , true );
672+ prong.SetSourceBit (0 , MCProng::kProducedInTransport );
673+ signal = new MCSignal (name, " muons produced during transport in detector" , {prong}, {-1 });
674+ return signal;
675+ }
676+ if (!nameStr.compare (" muFromPromptLM" )) {
677+ MCProng prong (2 , {13 , 101 }, {true , true }, {false , false }, {0 , 0 }, {0 , 0 }, {false , false }, false , {502 , 402 }, {true , true });
678+ prong.SetSourceBit (0 , MCProng::kPhysicalPrimary );
679+ signal = new MCSignal (name, " muons from light mesons without B/D in decay history" , {prong}, {-1 });
680+ return signal;
681+ }
682+ if (!nameStr.compare (" muFromHbtoLM" )) {
683+ MCProng prong (2 , {13 , 101 }, {true , true }, {false , false }, {0 , 0 }, {0 , 0 }, {false , false }, false , {502 }, {false });
684+ prong.SetSourceBit (0 , MCProng::kPhysicalPrimary );
685+ signal = new MCSignal (name, " muons from light mesons with B hadron in decay history" , {prong}, {-1 });
686+ return signal;
687+ }
688+ if (!nameStr.compare (" muFromHctoLM" )) {
689+ MCProng prong (2 , {13 , 101 , 402 }, {true , true , true }, {false , false , false }, {0 , 0 , 0 }, {0 , 0 , 0 }, {false , false , false }, false , {502 }, {true });
690+ prong.SetSourceBit (0 , MCProng::kPhysicalPrimary );
691+ signal = new MCSignal (name, " muons from light mesons from D hadron decays and no B in decay history" , {prong}, {-1 });
692+ return signal;
693+ }
694+ if (!nameStr.compare (" muFromUpsilon1S" )) {
695+ MCProng prong (2 , {13 , 553 }, {true , true }, {false , false }, {0 , 0 }, {0 , 0 }, {false , false });
696+ signal = new MCSignal (name, " muons from Upsilon1S decays" , {prong}, {-1 });
697+ return signal;
698+ }
699+ if (!nameStr.compare (" muFromUpsilon2S" )) {
700+ MCProng prong (2 , {13 , 100553 }, {true , true }, {false , false }, {0 , 0 }, {0 , 0 }, {false , false });
701+ signal = new MCSignal (name, " muons from Upsilon2S decays" , {prong}, {-1 });
702+ return signal;
703+ }
704+ if (!nameStr.compare (" muFromUpsilon3S" )) {
705+ MCProng prong (2 , {13 , 200553 }, {true , true }, {false , false }, {0 , 0 }, {0 , 0 }, {false , false });
706+ signal = new MCSignal (name, " muons from Upsilon3S decays" , {prong}, {-1 });
707+ return signal;
708+ }
617709
618710 // Decay signal: Mother to electron: X -> e
619711 if (!nameStr.compare (" AnythingToE" )) {
@@ -2041,9 +2133,9 @@ MCProng* o2::aod::dqmcsignals::ParseJSONMCProng(T prongJSON, const char* prongNa
20412133 for (auto & s : itgen) {
20422134 bool exclude = (hasExclude ? excludeVec[is] : false );
20432135 if (s != MCProng::kNothing ) {
2044- sBits |= (uint64_t (1 ) << s);
2136+ sBits |= (static_cast < uint64_t > (1 ) << s);
20452137 if (exclude) {
2046- sBitsExclude |= (uint64_t (1 ) << s);
2138+ sBitsExclude |= (static_cast < uint64_t > (1 ) << s);
20472139 }
20482140 }
20492141 is++;
0 commit comments