Changeset 7170 for trunk/MagicSoft/Mars/mtrigger
- Timestamp:
- 06/27/05 10:45:56 (20 years ago)
- Location:
- trunk/MagicSoft/Mars/mtrigger
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/mtrigger/MFTriggerPattern.cc
r6968 r7170 31 31 // For files before file version 5 the trigger pattern is set to 00000000. 32 32 // 33 // For more details see: MTriggerPattern 34 // 33 35 ///////////////////////////////////////////////////////////////////////////// 34 36 #include "MFTriggerPattern.h" -
trunk/MagicSoft/Mars/mtrigger/MTriggerPattern.cc
r5869 r7170 40 40 // For files before file version 5 the trigger pattern is set to 00000000. 41 41 // 42 // -------------------------------------------------------------------------- 43 // 44 // Here an explanation about the meaning of the Trigger Pattern. 45 // The trigger pattern is a 16-BIT number where are stored informations 46 // about which thriggers have been shot on each event. Every bit 47 // correspond to a prticular kind of trigger (Pedestal, Calibration, 48 // LT1, LT2, PIN Diode...) but the whole trigger pattern number 49 // is divided into two parts (from left to right): 50 // 51 // 1) The first concerns unprescaled triggers. 52 // 2) The second concerns prescaled triggers. 53 // 54 // The prescaler is a devise installed AFTER the LT2. It collects 55 // all kind of triggers and can prescale each trigger by a different 56 // prescaling factor. This means that we can set the prescaler to 57 // accept every LT2 trigger but only 1% of calibration triggers. 58 // Therefore LT2 prescaling factor will be set to 1, while CAL prescaling 59 // factor will be set to 100. If after the prescaler at least one trigger 60 // survives, then the event is considered "TRIGGERED" and aquired by the DAQ. 61 // 62 // The current BIT meaning is: 63 // 64 // BIT(0): prescaled LT1 65 // BIT(1): prescaled Calibration Trigger 66 // BIT(2): prescaled LT2 67 // BIT(3): prescaled Pedestal Trigger 68 // BIT(4): prescaled Pin Diode 69 // BIT(5): unused 70 // BIT(6): unused 71 // BIT(7): unused 72 // BIT(8): unprescaled LT1 73 // BIT(9): unprescaled Calibration Trigger 74 // BIT(10): unprescaled LT2 75 // BIT(11): unprescaled Pedestal Trigger 76 // BIT(12): unprescaled Pin Diode 77 // BIT(13): unused 78 // BIT(14): unused 79 // BIT(15): unused 80 // 81 // Why are we saving both prescaled and unprescaled triggers? 82 // Which should I look at? Let's give an example: 83 // 84 // BIT # 15-14-13-12-11-10- 9- 8- 7- 6- 5- 4- 3- 2- 1- 0 85 // 86 // event #1: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 87 // event #2: 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 88 // 89 // In both cases you have both CAL and LT1 trigger, but in first 90 // event calibration trigger is prescaled and in second event no 91 // trigger is prescaled. Imagine you are looking for calibration events. 92 // If you look at the prescale bits you are sure that events with CAL 93 // flag are calibration events (event #2) but you can miss other 94 // real calibration events (event #1). If you are lucky that 95 // the related prescaling factor is 1 you won't have this problem, 96 // otherway you will have it. 97 // 98 // To select events by the trigger pattern you should use MFTriggerPattern filter. 99 // This filter uses Require- and Deny- methods to select your trigger pattern. 100 // Require- methods requires that your trigger bit is ON, otherway the event 101 // is kicked out. Deny- methods requires that your trigger bit is OFF, otherway 102 // your event is kicked out. Other bits not selected by your Require- or Deny- call 103 // are ignored. Let's give an example. You want to select all events that have 104 // both LT1 and LT2 trigger but which are not calibration neither Pin Diode events. 105 // You should look at unprescaled bits to be sure 106 // about which were the initial triggers. Then you can implement in your macro 107 // something like: 108 // 109 // MFTriggerPattern ftrigpatt; 110 // ftrigpatt.RequireTriggerLvl1(MFTriggerPattern::kUnPrescaled); 111 // ftrigpatt.RequireTriggerLvl2(MFTriggerPattern::kUnPrescaled); 112 // ftrigpatt.DenyCalibration(MFTriggerPattern::kUnPrescaled); 113 // ftrigpatt.DenyPinDiode(MFTriggerPattern::kUnPrescaled); 114 // 115 // Then you use in your tasklist as a usual MF filter. In this 116 // example Pedestal trigger flag is ignored. Consider that by default 117 // MFTriggerPattern::kUnPrescaled is set for Require- and Deny- methods. 118 // 119 // WARNING: please use MTriggerPatternDecode task to read the trigger pattern 120 // of the event and to fill MTriggerPattern container. If you use your 121 // private stuff to read MRawEvtHeader.fTriggerPattern[0] (data member 122 // where the trigger pattern is stored) you must invert all the bits of 123 // your number. Current hardware, infact, writes the trigger pattern bit-inverted. 124 // 125 // 126 // For further informations contact: 127 // 128 // Nicola Galante nicola.galante@pi.infn.it 129 // Riccardo Paoletti riccardo.paoletti@pi.infn.it 130 // Antonio Stamerra antonio.stamerra@pi.infn.it 131 // 42 132 ///////////////////////////////////////////////////////////////////////////// 43 133 #include "MTriggerPattern.h" -
trunk/MagicSoft/Mars/mtrigger/MTriggerPatternDecode.cc
r5869 r7170 31 31 // For files before file version 5 the trigger pattern is set to 00000000. 32 32 // This can be changed using the information about the file-type. 33 // 34 // For more details see: MTriggerPattern 33 35 // 34 36 // Input:
Note:
See TracChangeset
for help on using the changeset viewer.