18 bool near = iX>=11;
bool far = !near;
19 bool top = iY>=11;
bool bot = !top;
22 if( near && top ) iquad=1;
23 if( far && top ) iquad=2;
24 if( far && bot ) iquad=3;
25 if( near && bot ) iquad=4;
45 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0,
46 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
47 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 9, 8, 0, 0, 0,
48 0, 0, 2, 2, 2, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 8, 8, 8, 0, 0,
49 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 8, 8, 8, 8, 0,
50 0, 2, 2, 2, 2, 2, 1, 1, 1, 1, 9, 9, 9, 9, 8, 8, 8, 8, 8, 0,
51 0, 2, 2, 2, 2, 2, 2, 1, 1, 1, 9, 9, 9, 8, 8, 8, 8, 8, 8, 0,
52 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8,
53 3, 3, 2, 2, 2, 2, 2, 2, 2, 0, 0, 8, 8, 8, 8, 8, 8, 8, 7, 7,
54 3, 3, 3, 3, 3, 3, 3, 2, 0, 0, 0, 0, 8, 7, 7, 7, 7, 7, 7, 7,
55 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7,
56 3, 3, 3, 3, 3, 3, 3, 4, 4, 0, 0, 6, 6, 7, 7, 7, 7, 7, 7, 7,
57 3, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 7, 7, 7,
58 0, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 0,
59 0, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 0,
60 0, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 0,
61 0, 0, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 0, 0,
62 0, 0, 0, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 0, 0, 0,
63 0, 0, 0, 0, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 0, 0, 0, 0,
64 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0
69 int iym, ixm, il, ic,
ii;
78 if(ii < 0 || ii > (
int)(
sizeof(idx_)/
sizeof(
int)) || idx_[ii] == 0) {
return -1; };
87 int ism_ = sector( iX, iY );
88 if( ism_<0 )
return ism_;
106 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
107 0, 0, 0, 0, 2, 1, 1, 1, 1, 1,
108 0, 0, 0, 5, 2, 2, 2, 2, 2, 1,
109 0, 0, 5, 5, 5, 3, 3, 2, 2, 2,
110 0, 8, 5, 5, 5, 3, 3, 3, 3, 3,
111 0, 8, 8, 5, 6, 6, 4, 4, 4, 3,
112 0, 8, 8, 5, 6, 6, 7, 4, 4, 4,
113 8, 8, 8, 6, 6, 7, 7, 7, 4, 4,
114 9, 9, 8, 6, 6, 7, 7, 7, 7, 0,
115 9, 9, 9, 10, 10, 11, 11, 7, 0, 0,
116 12, 9, 9, 10, 10, 11, 11, 11, 0, 0,
117 12, 12, 13, 10, 10, 11, 11, 17, 17, 0,
118 12, 12, 13, 13, 13, 11, 17, 17, 17, 19,
119 0, 12, 13, 13, 14, 15, 17, 17, 17, 19,
120 0, 12, 14, 14, 14, 15, 16, 17, 19, 19,
121 0, 14, 14, 14, 14, 15, 16, 16, 19, 19,
122 0, 0, 14, 15, 15, 15, 16, 16, 19, 19,
123 0, 0, 0, 15, 15, 15, 16, 18, 18, 18,
124 0, 0, 0, 0, 16, 16, 16, 18, 18, 18,
125 0, 0, 0, 0, 0, 0, 0, 18, 18, 18
128 int iym, ixm, il, ic,
ii;
132 if( iX>=11 ) iX_ = 20-iX+1;
137 if(ii < 0 || ii > (
int)(
sizeof(idx_)/
sizeof(
int)) || idx_[ii] == 0) {
return -1; };
149 77, 71, 63, 55, 46, 37, 28, 18, 0, 0,
150 78, 72, 64, 56, 47, 38, 29, 19, 9, 0,
151 79, 73, 65, 57, 48, 39, 30, 20, 10, 1,
152 0, 74, 66, 58, 49, 40, 31, 21, 11, 2,
153 0, 75, 67, 59, 50, 41, 32, 22, 12, 3,
154 0, 76, 68, 60, 51, 42, 33, 23, 13, 4,
155 0, 0, 69, 61, 52, 43, 34, 24, 14, 5,
156 0, 0, 70, 62, 53, 44, 35, 25, 15, 6,
157 0, 0, 0, 0, 54, 45, 36, 26, 16, 7,
158 0, 0, 0, 0, 0, 0, 0, 27, 17, 8,
161 int iym, ixm, il, ic,
ii;
165 if( iX>=11 ) iX_ = 20-iX+1;
167 if( iY>=11 ) iY_ = 20-iY+1;
171 if(ii < 0 || ii > (
int)(
sizeof(idx_)/
sizeof(
int)) || idx_[ii] == 0) {
return -1; };
184 0, 0, 0, 0, 0, 0, 0, 3, -1, -1,
185 0, 0, 0, 0, 0, 0, 0, 0, 2, -1,
186 6, 0, 0, 0, 0, 0, 0, 0, 0, 1,
187 -1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
188 -1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
189 -1, 6, 0, 0, 0, 0, 0, 0, 0, 0,
190 -1, -1, 6, 0, 0, 0, 0, 0, 0, 0,
191 -1, -1, 5, 4, 0, 0, 0, 0, 0, 0,
192 -1, -1, -1, -1, 4, 0, 0, 0, 0, 0,
193 -1, -1, -1, -1, -1, -1, -1, 4, 0, 0,
196 int iym, ixm, il, ic,
ii;
200 if( iX>=11 ) iX_ = 20-iX+1;
202 if( iY>=11 ) iY_ = 20-iY+1;
206 if(ii < 0 || ii > (
int)(
sizeof(idx_)/
sizeof(
int)) || idx_[ii] == -1) {
return -1; };
213 int isc_in_quad = sc_in_quad( iX, iY );
214 assert( isc_in_quad!=0 );
215 if( isc_in_quad<0 )
return -1;
217 int iquad = quadrant( iX, iY );
218 return 79*(iquad-1)+isc_in_quad;
235 int isect = sector( iX, iY );
237 assert(
abs(iz)==1 );
238 if( isect<0 )
return -1;
243 if( idcc<=0 ) idcc+=9;
244 if( iz==+1 ) idcc+=45;
266 int iquad = quadrant( iX, iY );
267 int isect = sector( iX, iY );
269 assert(
abs(iz)==1 );
270 if( isect<0 )
return -1;
274 if( ilmr<=0 ) ilmr+=9;
275 if( ilmr==9 ) ilmr++;
276 if( ilmr==8 && iquad==4 ) ilmr++;
277 if( iz==+1 ) ilmr+=72;
286 int iquad = quadrant( iX, iY );
288 bool far = ( iquad==2 || iquad==3 );
bool near = !far;
290 if( far && plus ) idee=1;
291 if( near && plus ) idee=2;
292 if( near && minus ) idee=3;
293 if( far && minus ) idee=4;
351 int iX_ = (ix-1)/5+1;
352 int iY_ = (iy-1)/5+1;
353 int jx_ = ix - 5*(iX_-1);
354 int jy_ = iy - 5*(iY_-1);
356 int iquad = quadrant( iX_, iY_ );
369 if( iquad==1 || iquad==3 )
384 int isc_type = sc_type( iX, iY );
385 assert( isc_type>=0 && isc_type<7 );
387 int iym, ixm, il, ic,
ii;
393 if(ii < 0 || ii > (
int)(
sizeof(idx_)/
sizeof(
int)) || idx_[isc_type][ii] == -1) {
return -1; };
394 return idx_[isc_type][
ii];
403 int isc = sc( iX, iY );
405 if( isc<0 )
return -2;
407 int icr_in_sc = crystal_in_sc( ix, iy );
408 assert( icr_in_sc!=0 );
409 if( icr_in_sc<0 )
return -1;
411 return 25*(isc-1) + icr_in_sc;
417 assert( ism>=1 && ism<=18 );
431 assert( ism>=1 && ism<=18 );
433 { 49, 50, 51, 52, 53, 54, 46, 47, 48,
434 4, 5, 6, 7, 8, 9, 1, 2, 3 };
441 if( idcc>600 ) idcc-=600;
443 if( idcc>=1 && idcc<=9 )
449 else if( idcc>=46 && idcc<=54 )
462 std::list< std::pair< float, float > >
l;
463 getBoundary( l, type, num, iz, xside );
473 std::list< std::pair< float, float > >::const_iterator l_it;
474 for( l_it=l.begin(); l_it!=l.end(); l_it++ )
477 ix[
ii] = l_it->first;
478 iy[
ii] = l_it->second;
482 return new TGraph( n, ix, iy );
489 std::multimap< int, std::pair< int, int > > map_;
504 for(
int iy=iymin; iy<=iymax; iy++ )
509 for(
int ix=ixmin; ix<=ixmax; ix++ )
512 int icr = crystal( ix, iy );
522 num_ = dee( iX, iY, iz );
break;
524 num_ = quadrant( iX, iY );
break;
526 num_ = sector( iX, iY );
break;
528 num_ = lmr( iX, iY, iz );
break;
530 num_ = lmmod( iX, iY );
break;
532 num_ = dcc( iX, iY, iz );
break;
534 num_ = sc( iX, iY );
break;
536 num_ = crystal( ix, iy );
break;
542 if( !in && !ok )
continue;
556 map_.insert( std::pair<
int, std::pair<int, int> >( iy, std::pair<int,int>( firstix, lastix ) ) );
559 if( in ) map_.insert( std::pair<
int, std::pair<int, int> >( iy, std::pair<int,int>( firstix, lastix ) ) );
566 std::multimap< int, std::pair< int, int > >::const_iterator it;
567 std::multimap< int, std::pair< int, int > >::const_iterator lastelement;
568 std::list< std::pair< float, float > > rightl;
569 for(
int iy=1; iy<=100; iy++ )
572 if( it==map_.end() )
continue;
573 int n_ = map_.count( iy );
577 lastelement = map_.upper_bound(iy);
578 for( ; it!=lastelement; ++it )
580 std::pair<float,float> p_ = it->second;
581 l.push_back( std::pair<float,float>( p_.first-0.5, iy-0.5 ) );
582 l.push_back( std::pair<float,float>( p_.first-0.5, iy+0.5 ) );
583 rightl.push_back( std::pair<float,float>( p_.second+0.5, iy-0.5 ) );
584 rightl.push_back( std::pair<float,float>( p_.second+0.5, iy+0.5 ) );
592 std::list< std::pair< float, float > >::const_iterator rightl_it;
593 for( rightl_it=rightl.begin(); rightl_it!=rightl.end(); rightl_it++ )
595 l.push_back( std::pair<float,float>( rightl_it->first, rightl_it->second ) );
597 l.push_back( *
l.begin() );
604 int imem_ = imem%600;
606 if( imem_==50 || imem_==51 ) dee_=1;
607 else if( imem_==47 || imem_==46 ) dee_=2;
608 else if( imem_==1 || imem_==2 ) dee_=3;
609 else if( imem_==5 || imem_==6 ) dee_=4;
614 std::pair< int, int >
719 if( ilmmod==20 ) ilmmod=18;
720 if( ilmmod==21 ) ilmmod=19;
722 std::pair<int,int> pns(0,0);
728 case 1: pns.first=0; pns.second=5;
break;
729 case 2: pns.first=1; pns.second=6;
break;
730 case 3: pns.first=2; pns.second=7;
break;
731 case 4: pns.first=3; pns.second=8;
break;
732 case 5: pns.first=2; pns.second=7;
break;
733 case 6: pns.first=0; pns.second=5;
break;
734 case 7: pns.first=1; pns.second=6;
break;
735 case 8: pns.first=3; pns.second=8;
break;
736 case 9: pns.first=5; pns.second=0;
break;
737 case 10: pns.first=6; pns.second=1;
break;
738 case 11: pns.first=7; pns.second=2;
break;
739 case 12: pns.first=8; pns.second=3;
break;
740 case 13: pns.first=9; pns.second=4;
break;
741 case 14: pns.first=7; pns.second=2;
break;
742 case 15: pns.first=5; pns.second=0;
break;
743 case 16: pns.first=6; pns.second=1;
break;
744 case 17: pns.first=9; pns.second=4;
break;
745 case 18: pns.first=4; pns.second=9;
break;
746 case 19: pns.first=8; pns.second=3;
break;
759 case 1: pns.first=1; pns.second=5;
break;
760 case 2: pns.first=1; pns.second=6;
break;
761 case 3: pns.first=2; pns.second=7;
break;
762 case 4: pns.first=3; pns.second=8;
break;
763 case 5: pns.first=2; pns.second=7;
break;
765 case 6: pns.first=1; pns.second=5;
break;
766 case 7: pns.first=1; pns.second=6;
break;
767 case 8: pns.first=3; pns.second=8;
break;
768 case 9: pns.first=5; pns.second=0;
break;
769 case 10: pns.first=6; pns.second=1;
break;
770 case 11: pns.first=7; pns.second=2;
break;
771 case 12: pns.first=8; pns.second=3;
break;
772 case 13: pns.first=9; pns.second=4;
break;
773 case 14: pns.first=7; pns.second=2;
break;
774 case 15: pns.first=5; pns.second=0;
break;
775 case 16: pns.first=6; pns.second=1;
break;
776 case 17: pns.first=9; pns.second=4;
break;
777 case 18: pns.first=4; pns.second=9;
break;
778 case 19: pns.first=8; pns.second=3;
break;
787 case 1: pns.first=9; pns.second=4;
break;
788 case 2: pns.first=6; pns.second=1;
break;
790 case 3: pns.first=4; pns.second=9;
break;
791 case 4: pns.first=4; pns.second=9;
break;
793 case 5: pns.first=4; pns.second=9;
break;
794 case 6: pns.first=9; pns.second=4;
break;
795 case 7: pns.first=6; pns.second=1;
break;
796 case 8: pns.first=4; pns.second=9;
break;
797 case 9: pns.first=5; pns.second=0;
break;
798 case 10: pns.first=2; pns.second=7;
break;
800 case 11: pns.first=2; pns.second=2;
break;
801 case 12: pns.first=0; pns.second=5;
break;
802 case 13: pns.first=3; pns.second=8;
break;
803 case 14: pns.first=7; pns.second=2;
break;
804 case 15: pns.first=5; pns.second=0;
break;
805 case 16: pns.first=2; pns.second=7;
break;
806 case 17: pns.first=3; pns.second=8;
break;
808 case 18: pns.first=0; pns.second=5;
break;
809 case 19: pns.first=0; pns.second=5;
break;
818 case 1: pns.first=0; pns.second=5;
break;
820 case 2: pns.first=0; pns.second=5;
break;
821 case 3: pns.first=2; pns.second=7;
break;
823 case 4: pns.first=2; pns.second=8;
break;
824 case 5: pns.first=2; pns.second=7;
break;
825 case 6: pns.first=0; pns.second=5;
break;
827 case 7: pns.first=0; pns.second=5;
break;
829 case 8: pns.first=2; pns.second=8;
break;
830 case 9: pns.first=7; pns.second=2;
break;
831 case 10: pns.first=4; pns.second=9;
break;
832 case 11: pns.first=5; pns.second=0;
break;
833 case 12: pns.first=9; pns.second=4;
break;
835 case 13: pns.first=9; pns.second=4;
break;
836 case 14: pns.first=5; pns.second=0;
break;
837 case 15: pns.first=7; pns.second=2;
break;
838 case 16: pns.first=4; pns.second=9;
break;
840 case 17: pns.first=4; pns.second=9;
break;
841 case 18: pns.first=6; pns.second=1;
break;
842 case 19: pns.first=9; pns.second=4;
break;
851 case 1: pns.first=4; pns.second=9;
break;
852 case 2: pns.first=1; pns.second=6;
break;
854 case 3: pns.first=1; pns.second=6;
break;
855 case 4: pns.first=9; pns.second=4;
break;
857 case 5: pns.first=4; pns.second=9;
break;
858 case 6: pns.first=4; pns.second=9;
break;
859 case 7: pns.first=1; pns.second=6;
break;
860 case 8: pns.first=9; pns.second=4;
break;
861 case 9: pns.first=0; pns.second=5;
break;
862 case 10: pns.first=7; pns.second=2;
break;
863 case 11: pns.first=2; pns.second=7;
break;
864 case 12: pns.first=5; pns.second=0;
break;
865 case 13: pns.first=8; pns.second=3;
break;
866 case 14: pns.first=2; pns.second=7;
break;
867 case 15: pns.first=0; pns.second=5;
break;
868 case 16: pns.first=7; pns.second=2;
break;
869 case 17: pns.first=8; pns.second=3;
break;
871 case 18: pns.first=5; pns.second=0;
break;
872 case 19: pns.first=5; pns.second=0;
break;
885 int i_[7] = { 73 , 76 , 81 , 83 , 86 , 91 , 93 };
886 int d_[6] = { 2 , 1 , 2 , 3 , 4 , 3 };
887 for(
int ii=0;
ii<6;
ii ++ )
889 if( ilmr>=i_[
ii] && ilmr <i_[
ii+1] )
897 std::cout <<
"ilmr=" << ilmr << std::endl;
903 std::pair< int, int >
906 std::pair< int, int > out_;
907 int dee_ = dee( ilmr );
934 int idee = dee( ilmr );
935 return ( idee==2 || idee==3 );
942 int ilmr = lmr( iX, iY, iz );
943 if ( ilmr == 81 || ilmr == 91 ) side=1;
951 std::vector<int> vec;
954 int idcc = dccAndSide_.first;
955 int iside = dccAndSide_.second;
956 bool near_ = near(ilmr);
957 int ism = smFromDcc( idcc );
959 assert( iside==0 || ism==5 );
960 if ( ism==5 || (ism<5 && !near_) || (ism>5 && near_) )
964 std::cout <<
"ism/near " << ism <<
"/" << near_ << std::endl;
967 if( ism==1 || ism==9 )
974 else if( ism==2 || ism==8 )
981 else if( ism==3 || ism==7 )
989 else if( ism==4 || ism==6 )
1013 case 9: tower=77;
break;
1014 case 10: tower=55;
break;
1015 case 11: tower=37;
break;
1016 case 12: tower=310;
break;
1017 case 13: tower=294;
break;
1021 }
else if( ilmr10==4 ){
1023 case 5: tower=52;
break;
1024 case 6: tower=41;
break;
1025 case 7: tower=18;
break;
1026 case 8: tower=65;
break;
1030 }
else if( ilmr10==5 ){
1033 case 1: tower=45;
break;
1034 case 2: tower=53;
break;
1035 case 3: tower=42;
break;
1036 case 4: tower=32;
break;
1040 }
else if( ilmr10==6 ){
1042 case 1: tower=124;
break;
1043 case 2: tower=132;
break;
1044 case 3: tower=121;
break;
1045 case 4: tower=111;
break;
1049 }
else if( ilmr10==7 ){
1051 case 5: tower=147;
break;
1052 case 6: tower=135;
break;
1053 case 7: tower=117;
break;
1054 case 8: tower=158;
break;
1059 }
else if( ilmr10==8 ){
1061 case 9: tower=156;
break;
1062 case 10: tower=214;
break;
1063 case 11: tower=197;
break;
1064 case 12: tower=237;
break;
1065 case 13: tower=224;
break;
1069 }
else if( ilmr10==9 ){
1071 case 14: tower=234;
break;
1072 case 15: tower=220;
break;
1073 case 16: tower=212;
break;
1074 case 17: tower=189;
break;
1078 }
else if( ilmr10==0 ){
1080 case 18: tower=185;
break;
1081 case 19: tower=172;
break;
1085 }
else if( ilmr10==1 ){
1087 case 18: tower=264;
break;
1088 case 19: tower=251;
break;
1100 std::vector< int> vec;
1103 case 1: vec.push_back(0); vec.push_back(1);
break;
1104 case 2: vec.push_back(0); vec.push_back(1);
break;
1105 case 3: vec.push_back(0); vec.push_back(1);
break;
1106 case 4: vec.push_back(0); vec.push_back(1);
break;
1107 case 5: vec.push_back(0); vec.push_back(1);
break;
1108 case 6: vec.push_back(0); vec.push_back(1);
break;
1109 case 7: vec.push_back(0); vec.push_back(1);
break;
1110 case 8: vec.push_back(0); vec.push_back(1);
break;
1111 case 9: vec.push_back(0); vec.push_back(1);
break;
1112 case 10: vec.push_back(0); vec.push_back(1);
break;
1113 case 11: vec.push_back(0); vec.push_back(1);
break;
1114 case 12: vec.push_back(0); vec.push_back(1);
break;
1115 case 13: vec.push_back(0); vec.push_back(1);
break;
1116 case 14: vec.push_back(0); vec.push_back(1);
break;
1117 case 15: vec.push_back(0); vec.push_back(1);
break;
1118 case 16: vec.push_back(0); vec.push_back(1);
break;
1119 case 17: vec.push_back(0); vec.push_back(1);
break;
1120 case 18: vec.push_back(0); vec.push_back(1);
break;
1121 case 19: vec.push_back(0); vec.push_back(1);
break;
1122 case 20: vec.push_back(0); vec.push_back(1);
break;
1123 case 21: vec.push_back(0); vec.push_back(1);
break;
static std::pair< int, int > memFromLmr(int ilmr)
static int lmmod(SuperCrysCoord iX, SuperCrysCoord iY)
static int crystal(CrysCoord ix, CrysCoord iy)
static void getBoundary(std::list< std::pair< float, float > > &l, int type, int num, int iz=-1, int xside=0)
static int apdRefTower(int ilmr, int ilmmod)
static int smFromDcc(int idcc)
static int side(SuperCrysCoord iX, SuperCrysCoord iY, int iz)
static bool near(int ilmr)
static int dcc(SuperCrysCoord iX, SuperCrysCoord iY, int iz)
static int sc_type(SuperCrysCoord iX, SuperCrysCoord iY)
static int sc_in_quad(SuperCrysCoord iX, SuperCrysCoord iY)
static std::pair< int, int > pn(int dee, int ilmod)
static int dccFromSm(int ism)
static TString smName(int ism)
static std::pair< int, int > dccAndSide(int ilmr)
static int sm(SuperCrysCoord iX, SuperCrysCoord iY, int iz)
Abs< T >::type abs(const T &t)
static int sector(SuperCrysCoord iX, SuperCrysCoord iY)
static std::vector< int > lmmodFromLmr(int ilmr)
static TGraph * getGraphBoundary(int type, int num, int iz=-1, int xside=0)
static int deeFromMem(int imem)
static std::vector< int > apdRefChannels(int ilmmod)
static int crystal_in_sc(CrysCoord ix, CrysCoord iy)
static int dee(SuperCrysCoord iX, SuperCrysCoord iY, int iz)
static int quadrant(SuperCrysCoord iX, SuperCrysCoord iY)
int ism(int ieta, int iphi)
static int sc(SuperCrysCoord iX, SuperCrysCoord iY)
static int lmr(SuperCrysCoord iX, SuperCrysCoord iY, int iz)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run