/[PAMELA software]/DarthVader/TriggerLevel2/src/TrigLevel2.cpp
ViewVC logotype

Diff of /DarthVader/TriggerLevel2/src/TrigLevel2.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by mocchiut, Mon Nov 26 08:01:18 2007 UTC revision 1.7 by mocchiut, Thu Apr 12 12:27:16 2012 UTC
# Line 74  void TrigLevel2::SetFromLevel2Struct(cTr Line 74  void TrigLevel2::SetFromLevel2Struct(cTr
74      pmtcount2[i] = l2->pmtcount2[i];      pmtcount2[i] = l2->pmtcount2[i];
75    }    }
76  }  }
77    
78    bool TrigLevel2::bit(int decimal, char pos){
79      return( (decimal>>pos)%2 );
80    }
81    
82    void TrigLevel2::printpatterntrig(){
83      UInt_t *patterntrig = this->patterntrig;
84      //S3
85      if ( this->bit(patterntrig[2],0) ) printf(" S31_1A \n");
86      if ( this->bit(patterntrig[2],1) ) printf(" S31_2A \n");
87      if ( this->bit(patterntrig[2],2) ) printf(" S31_3A \n");
88      if ( this->bit(patterntrig[2],3) ) printf(" S31_1B\n");
89      if ( this->bit(patterntrig[2],4) ) printf(" S31_2B\n");
90      if ( this->bit(patterntrig[2],5) ) printf(" S31_3B\n");
91      
92      if ( this->bit(patterntrig[2],6) ) printf(" S32_1A \n");
93      if ( this->bit(patterntrig[2],7) ) printf(" S32_2A \n");
94      if ( this->bit(patterntrig[2],8) ) printf(" S32_3A \n");
95      if ( this->bit(patterntrig[2],9) ) printf(" S32_1B\n");
96      if ( this->bit(patterntrig[2],10) ) printf(" S32_2B\n");
97      if ( this->bit(patterntrig[2],11) ) printf(" S32_3B\n");
98      
99      //S2
100      if ( this->bit(patterntrig[3],0) ) printf(" S21_1A \n");
101      if ( this->bit(patterntrig[3],1) ) printf(" S21_2A \n");
102      if ( this->bit(patterntrig[3],2) ) printf(" S21_1B\n");
103      if ( this->bit(patterntrig[3],3) ) printf(" S21_2B\n");
104      
105      if ( this->bit(patterntrig[3],4) ) printf(" S22_1A \n");
106      if ( this->bit(patterntrig[3],5) ) printf(" S22_2A \n");
107      if ( this->bit(patterntrig[3],6) ) printf(" S22_1B\n");
108      if ( this->bit(patterntrig[3],7) ) printf(" S22_2B\n");
109      
110      //S12
111      if ( this->bit(patterntrig[4],0) ) printf(" S12_1A \n");
112      if ( this->bit(patterntrig[4],1) ) printf(" S12_2A \n");
113      if ( this->bit(patterntrig[4],2) ) printf(" S12_3A \n");
114      if ( this->bit(patterntrig[4],3) ) printf(" S12_4A \n");
115      if ( this->bit(patterntrig[4],4) ) printf(" S12_5A \n");
116      if ( this->bit(patterntrig[4],5) ) printf(" S12_6A \n");
117      
118      if ( this->bit(patterntrig[4],6) ) printf(" S12_1A \n");
119      if ( this->bit(patterntrig[4],7) ) printf(" S12_2A \n");
120      if ( this->bit(patterntrig[4],8) ) printf(" S12_3A \n");
121      if ( this->bit(patterntrig[4],9) ) printf(" S12_4B\n");
122      if ( this->bit(patterntrig[4],10) ) printf(" S12_5B\n");
123      if ( this->bit(patterntrig[4],11) ) printf(" S12_6B\n");
124      
125      //S11
126      if ( this->bit(patterntrig[5],0) ) printf(" S11_1A \n");
127      if ( this->bit(patterntrig[5],1) ) printf(" S11_2A \n");
128      if ( this->bit(patterntrig[5],2) ) printf(" S11_3A \n");
129      if ( this->bit(patterntrig[5],3) ) printf(" S11_4A \n");
130      if ( this->bit(patterntrig[5],4) ) printf(" S11_5A \n");
131      if ( this->bit(patterntrig[5],5) ) printf(" S11_6A \n");
132      if ( this->bit(patterntrig[5],6) ) printf(" S11_7A \n");
133      if ( this->bit(patterntrig[5],7) ) printf(" S11_8A \n");
134      
135      if ( this->bit(patterntrig[5],8) ) printf(" S11_1B\n");
136      if ( this->bit(patterntrig[5],9) ) printf(" S11_2B\n");
137      if ( this->bit(patterntrig[5],10) ) printf(" S11_3B\n");
138      if ( this->bit(patterntrig[5],11) ) printf(" S11_4B\n");
139      if ( this->bit(patterntrig[5],12) ) printf(" S11_5B\n");
140      if ( this->bit(patterntrig[5],13) ) printf(" S11_6B\n");
141      if ( this->bit(patterntrig[5],14) ) printf(" S11_7B\n");
142      if ( this->bit(patterntrig[5],15) ) printf(" S11_8B\n");
143      
144    }
145    
146    bool TrigLevel2::checkPMTpatterntrig(){
147      UInt_t *patterntrig = this->patterntrig;
148      int S11 = 0;
149      int S12 = 0;
150      int S21 = 0;
151      int S22 = 0;
152      int S31 = 0;
153      int S32 = 0;
154    
155      //S3
156      if ( this->bit(patterntrig[2],0) ) S31 = 1;
157      if ( this->bit(patterntrig[2],1) ) S31 = 1;
158      if ( this->bit(patterntrig[2],2) ) S31 = 1;
159      if ( this->bit(patterntrig[2],3) ) S31 = 1;
160      if ( this->bit(patterntrig[2],4) ) S31 = 1;
161      if ( this->bit(patterntrig[2],5) ) S31 = 1;
162      if ( this->bit(patterntrig[2],6) ) S32 = 1;
163      if ( this->bit(patterntrig[2],7) ) S32 = 1;
164      if ( this->bit(patterntrig[2],8) ) S32 = 1;
165      if ( this->bit(patterntrig[2],9) ) S32 = 1;
166      if ( this->bit(patterntrig[2],10) ) S32 = 1;
167      if ( this->bit(patterntrig[2],11) ) S32 = 1;
168      //S2
169      if ( this->bit(patterntrig[3],0) ) S21 = 1;
170      if ( this->bit(patterntrig[3],1) ) S21 = 1;
171      if ( this->bit(patterntrig[3],2) ) S21 = 1;
172      if ( this->bit(patterntrig[3],3) ) S21 = 1;
173      if ( this->bit(patterntrig[3],4) ) S22 = 1;
174      if ( this->bit(patterntrig[3],5) ) S22 = 1;
175      if ( this->bit(patterntrig[3],6) ) S22 = 1;
176      if ( this->bit(patterntrig[3],7) ) S22 = 1;
177      //S12
178      if ( this->bit(patterntrig[4],0) ) S12 = 1;
179      if ( this->bit(patterntrig[4],1) ) S12 = 1;
180      if ( this->bit(patterntrig[4],2) ) S12 = 1;
181      if ( this->bit(patterntrig[4],3) ) S12 = 1;
182      if ( this->bit(patterntrig[4],4) ) S12 = 1;
183      if ( this->bit(patterntrig[4],5) ) S12 = 1;
184      if ( this->bit(patterntrig[4],6) ) S12 = 1;
185      if ( this->bit(patterntrig[4],7) ) S12 = 1;
186      if ( this->bit(patterntrig[4],8) ) S12 = 1;
187      if ( this->bit(patterntrig[4],9) ) S12 = 1;
188      if ( this->bit(patterntrig[4],10) ) S12 = 1;
189      if ( this->bit(patterntrig[4],11) ) S12 = 1;
190      //S11
191      if ( this->bit(patterntrig[5],0) ) S11 = 1;
192      if ( this->bit(patterntrig[5],1) ) S11 = 1;
193      if ( this->bit(patterntrig[5],2) ) S11 = 1;
194      if ( this->bit(patterntrig[5],3) ) S11 = 1;
195      if ( this->bit(patterntrig[5],4) ) S11 = 1;
196      if ( this->bit(patterntrig[5],5) ) S11 = 1;
197      if ( this->bit(patterntrig[5],6) ) S11 = 1;
198      if ( this->bit(patterntrig[5],7) ) S11 = 1;
199      if ( this->bit(patterntrig[5],8) ) S11 = 1;
200      if ( this->bit(patterntrig[5],9) ) S11 = 1;
201      if ( this->bit(patterntrig[5],10) ) S11 = 1;
202      if ( this->bit(patterntrig[5],11) ) S11 = 1;
203      if ( this->bit(patterntrig[5],12) ) S11 = 1;
204      if ( this->bit(patterntrig[5],13) ) S11 = 1;
205      if ( this->bit(patterntrig[5],14) ) S11 = 1;
206      if ( this->bit(patterntrig[5],15) ) S11 = 1;
207    
208      // trigger configuration for the event from patterntrig
209      int TOF1 = (S11 + S12) * (S21 + S22) * (S31 + S32);
210      int TOF2 = (S11 * S12) * (S21 * S22) * (S31 * S32);
211    
212      int TOF3 = (S21 + S22) * (S31 + S32);
213      int TOF4 = (S21 * S22) * (S31 * S32);
214    
215      int TOF5 = S12 * (S21 * S22);
216    
217      int TOF6 = (S11 + S12) * (S31 + S32);
218      int TOF7 = (S11 * S12) * (S31 * S32);
219    
220      // trigger configuration of the run
221      bool TCTOF1 = false;
222      bool TCTOF2 = false;
223      bool TCTOF3 = false;
224      bool TCTOF4 = false;
225      bool TCTOF5 = false;
226      bool TCTOF6 = false;
227      bool TCTOF7 = false;
228      if ( this->trigconf & (1<<0) ) TCTOF1 = true;
229      if ( this->trigconf & (1<<1) ) TCTOF2 = true;
230      if ( this->trigconf & (1<<2) ) TCTOF3 = true;
231      if ( this->trigconf & (1<<3) ) TCTOF4 = true;
232      if ( this->trigconf & (1<<4) ) TCTOF5 = true;
233      if ( this->trigconf & (1<<5) ) TCTOF6 = true;
234      if ( this->trigconf & (1<<6) ) TCTOF7 = true;
235    
236      // do patterntrig pmts match the trigger configuration?
237      bool patterntrig_trigconf_match = true;
238      if ( TOF1 == 0 && TCTOF1 ) patterntrig_trigconf_match = false;
239      if ( TOF2 == 0 && TCTOF2 ) patterntrig_trigconf_match = false;
240      if ( TOF3 == 0 && TCTOF3 ) patterntrig_trigconf_match = false;
241      if ( TOF4 == 0 && TCTOF4 ) patterntrig_trigconf_match = false;
242      if ( TOF5 == 0 && TCTOF5 ) patterntrig_trigconf_match = false;
243      if ( TOF6 == 0 && TCTOF6 ) patterntrig_trigconf_match = false;
244      if ( TOF7 == 0 && TCTOF7 ) patterntrig_trigconf_match = false;
245    
246      return patterntrig_trigconf_match;
247    }

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.23