Changeset 4861 for trunk/MagicSoft/Mars
- Timestamp:
- 09/05/04 17:55:32 (20 years ago)
- Location:
- trunk/MagicSoft/Mars/mcalib
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/mcalib/MCalibColorSet.cc
r4855 r4861 52 52 53 53 const Int_t MCalibColorSet::gkIFAEBoxInaugurationRun = 20113; 54 55 54 // -------------------------------------------------------------------------- 56 55 // … … 58 57 // 59 58 MCalibColorSet::MCalibColorSet(const char *name, const char *title) 60 : fHeader(0), fIsValid(kFALSE) 61 { 62 fName = name ? name : "MCalibColorSet"; 63 fTitle = title ? title : "Task to set workaround missing colors calibration events"; 64 } 65 59 : fHeader(0) 60 { 61 fName = name ? name : "MCalibColorSet"; 62 fTitle = title ? title : "Task to set workaround missing colors calibration events"; 63 64 Clear(); 65 } 66 67 void MCalibColorSet::Clear(const Option_t *o) 68 { 69 70 fPattern = 0; 71 fIsValid = kFALSE; 72 73 } 74 75 76 // ----------------------------------------------------------------------------------- 77 // 78 // The following container are searched for and execution aborted if not in MParList: 79 // - MRawEvtHeader 80 // 66 81 Int_t MCalibColorSet::PreProcess(MParList *pList) 67 82 { 68 fHeader = (MRawEvtHeader*)pList->FindObject("MRawEvtHeader"); 69 if (!fHeader) 70 { 71 *fLog << err << "MRawEvtHeader not found... abort." << endl; 72 return kFALSE; 73 } 74 return kTRUE; 83 84 fHeader = (MRawEvtHeader*)pList->FindObject("MRawEvtHeader"); 85 if (!fHeader) 86 { 87 *fLog << err << "MRawEvtHeader not found... abort." << endl; 88 return kFALSE; 89 } 90 91 return kTRUE; 75 92 } 76 93 77 94 // -------------------------------------------------------------------------- 78 95 // 79 // Try to find 'MGeomCam' in the Parameter List. If it is not found, 80 // processing is stopped. 96 // Search for the following input containers and abort if not existing: 97 // - MRawRunHeader 98 // 99 // If Runnumber < gkIFAEBoxInaugurationRun, set colour pattern: 0 100 // 101 // If Runnumber > gkIFAEBoxInaugurationRun, search for colour in 102 // the project name: Set colour pattern according to the following 103 // convention: 104 // Green: assume slot 1 ( 5 Leds Green) 105 // Blue: assume slot 14 ( 5 Leds Blue ) 106 // UV: assume slot 12 ( 5 Leds UV ) 107 // CT1: take 'slot 17' 81 108 // 82 109 Bool_t MCalibColorSet::ReInit(MParList *pList) 83 110 { 84 fIsValid = kFALSE; 85 86 MRawRunHeader *header = (MRawRunHeader*)pList->FindObject("MRawRunHeader"); 87 if (!header) 88 { 89 *fLog << err << "MRawRunHeader not found... abort." << endl; 90 return kFALSE; 91 } 92 93 enum { kNONE, kGREEN, kBLUE, kUV, kCT1 }; 94 95 Int_t color = kNONE; 96 97 const Int_t num = header->GetRunNumber(); 98 if (num<gkIFAEBoxInaugurationRun) 99 { 100 *fLog << inf << "Run taken before inauguration of IFAE-box... using CT1 pulser." << endl; 101 color = kCT1; 102 return kTRUE; 103 } 104 105 switch (num) 111 112 Clear(); 113 114 MRawRunHeader *header = (MRawRunHeader*)pList->FindObject("MRawRunHeader"); 115 if (!header) 116 { 117 *fLog << err << "MRawRunHeader not found... abort." << endl; 118 return kFALSE; 119 } 120 121 enum { kNONE, kGREEN, kBLUE, kUV, kCT1 }; 122 123 enum ColorCode_t 124 { 125 k5LedGreen = BIT(1), 126 k5LedUV = BIT(12), 127 k5LedBlue = BIT(14), 128 kCT1Pulser = BIT(17) 129 }; 130 131 const Int_t num = header->GetRunNumber(); 132 133 if (num<gkIFAEBoxInaugurationRun) 134 { 135 *fLog << inf << "Run taken before inauguration of IFAE-box... using CT1 pulser." << endl; 136 fPattern |= kCT1Pulser; 137 fIsValid = kTRUE; 138 return kTRUE; 139 } 140 141 Int_t color = kNONE; 142 143 switch (num) 106 144 { 107 145 case 26402: 108 146 case 22246: 109 147 case 22253: 110 111 112 148 color = kBLUE; 149 break; 150 113 151 case 30090: 114 152 case 20660: … … 119 157 case 26568: 120 158 case 26924: 159 color = kGREEN; 160 break; 161 162 case 27474: 163 *fLog << err << "Sorry, run 27474 was taken with CLOSED LIDS. It should not be used! " << endl; 164 return kFALSE; 165 } 166 167 if (color!=kNONE) 168 *fLog << inf << "Color determined from the run-number... "; 169 else 170 { 171 const TString proj = header->GetProjectName(); 172 173 if (proj.Contains("gree",TString::kIgnoreCase)) 121 174 color = kGREEN; 122 break; 123 124 case 27474: 125 *fLog << err << "Sorry, run 27474 was taken with CLOSED LIDS. It should not be used! " << endl; 126 return kFALSE; 127 } 128 129 if (color!=kNONE) 130 *fLog << inf << "Color determined from the run-number... "; 131 else 132 { 133 const TString proj = header->GetProjectName(); 134 135 if (proj.Contains("green",TString::kIgnoreCase)) 136 color = kGREEN; 137 if (proj.Contains("blue",TString::kIgnoreCase)) 138 color = kBLUE; 139 if (proj.Contains("uv",TString::kIgnoreCase)) 140 color = kUV; 141 if (proj.Contains("ct1",TString::kIgnoreCase)) 142 color = kCT1; 143 144 *fLog << inf << "Color determined from project-name (" << proj << ")... "; 145 } 146 147 if (color==kNONE) 148 { 149 *fLog << err << "Sorry, calibration run was taken before the events could be" << endl; 150 *fLog << "flagged with a color by the digital modul and no color" << endl; 151 *fLog << "could be determined... abort." << endl; 152 return kFALSE; 153 } 154 155 switch (color) 156 { 157 case kGREEN: *fLog << "Green."; fPattern = 0; break; 158 case kBLUE: *fLog << "Blue."; fPattern = 0; break; 159 case kUV: *fLog << "UV."; fPattern = 0; break; 160 case kCT1: *fLog << "CT1."; fPattern = 0; break; 161 } 162 *fLog << endl; 163 164 fIsValid = kTRUE; 165 175 if (proj.Contains("blue",TString::kIgnoreCase)) 176 color = kBLUE; 177 if (proj.Contains("uv",TString::kIgnoreCase)) 178 color = kUV; 179 if (proj.Contains("ct1",TString::kIgnoreCase)) 180 color = kCT1; 181 182 *fLog << inf << "Color determined from project-name (" << proj << ")... "; 183 } 184 185 if (color==kNONE) 186 { 187 *fLog << err << "Sorry, calibration run was taken before the events could be" << endl; 188 *fLog << "flagged with a color by the digital modul and no color" << endl; 189 *fLog << "could be determined... abort." << endl; 190 return kFALSE; 191 } 192 193 switch (color) 194 { 195 case kGREEN: *fLog << "Green."; fPattern |= k5LedGreen; break; 196 case kBLUE: *fLog << "Blue."; fPattern |= k5LedBlue ; break; 197 case kUV: *fLog << "UV."; fPattern |= k5LedUV ; break; 198 case kCT1: *fLog << "CT1."; fPattern |= kCT1Pulser; break; 199 } 200 *fLog << endl; 201 202 fIsValid = kTRUE; 203 204 return kTRUE; 205 } 206 207 Int_t MCalibColorSet::Process() 208 { 209 if (fIsValid) 210 fHeader->SetCalibrationPattern(fPattern); 166 211 return kTRUE; 167 212 } 168 169 Int_t MCalibColorSet::Process()170 {171 if (fIsValid)172 fHeader->SetCalibrationPattern(fPattern);173 return kTRUE;174 } -
trunk/MagicSoft/Mars/mcalib/MCalibColorSet.h
r4845 r4861 26 26 MCalibColorSet(const char *name=NULL, const char *title=NULL); 27 27 28 void Clear(const Option_t *o=""); 29 28 30 ClassDef(MCalibColorSet, 0) // Task to workaround missing colors 29 31 };
Note:
See TracChangeset
for help on using the changeset viewer.