\r
ClassImp(AliTRDSaxHandler)\r
\r
+ \r
//_____________________________________________________________________________\r
AliTRDSaxHandler::AliTRDSaxHandler()\r
:TObject()\r
,fPTRArr(new TObjArray(6))\r
,fGTUArr(new TObjArray(19))\r
,fSystem(0)\r
+ ,fInsideRstate(0)\r
,fCurrentSM(0)\r
,fCurrentStack(0)\r
+ ,fCurrentROB(-1)\r
+ ,fCurrentMCM(-1)\r
,fContent(0)\r
,fDCSFEEObj(0)\r
,fDCSPTRObj(0)\r
,fPTRArr(0)\r
,fGTUArr(0)\r
,fSystem(0)\r
+ ,fInsideRstate(0)\r
,fCurrentSM(0)\r
,fCurrentStack(0)\r
+ ,fCurrentROB(-1)\r
+ ,fCurrentMCM(-1)\r
,fContent(0)\r
,fDCSFEEObj(0)\r
,fDCSPTRObj(0)\r
AliTRDCalDCS* AliTRDSaxHandler::GetCalDCSObj()\r
{\r
// put the arrays in the global calibration object and return this\r
- fCalDCSObj->SetNumberOfTimeBins(0); //test test test\r
fCalDCSObj->SetFEEArr(fFEEArr);\r
fCalDCSObj->SetPTRArr(fPTRArr);\r
fCalDCSObj->SetGTUArr(fGTUArr);\r
if (strName.Contains("PTR")) fSystem = kInsidePTR;\r
if (strName.Contains("GTU")) fSystem = kInsideGTU;\r
\r
+ // set if we are inside rstate \r
+ // (in principle not necessary - just to be more safe against stupid tags)\r
+ if (strName.Contains("rstate")) fInsideRstate = 1;\r
+\r
// get the attributes of the element\r
TXMLAttr *attr;\r
TIter next(attributes);\r
if (atoi(attr->GetValue()) != fDCSFEEObj->GetDCSid())\r
fDCSFEEObj->SetStatusBit(3); // consistence check\r
}\r
+ if (attribName.Contains("rob") && (fInsideRstate == 1)) {\r
+ fCurrentROB = atoi(attr->GetValue());\r
+ }\r
+ if (attribName.Contains("mcm") && (fInsideRstate == 1)) {\r
+ fCurrentMCM = atoi(attr->GetValue());\r
+ }\r
if (attribName.Contains("sm") && strName.Contains("DCS")) {\r
fCurrentSM = atoi(attr->GetValue()); // only for GTU/PTR\r
}\r
fCurrentStack = 99; // 99 for no stack set\r
}\r
\r
+ // outside of rstate again?\r
+ if (strName.Contains("rstate")) {\r
+ fInsideRstate = 0;\r
+ fCurrentROB = -1;\r
+ fCurrentMCM = -1;\r
+ }\r
+ if (strName.Contains("ro-board")) fCurrentROB = -1;\r
+ \r
// store informations of the FEE DCS-Board\r
if (fSystem == kInsideFEE) {\r
- if (strName.Contains("DNR")) fDCSFEEObj->SetStatusBit(fContent.Atoi());\r
- if (strName.Contains("CFGNME")) fDCSFEEObj->SetConfigName(fContent);\r
- if (strName.Contains("CFGTAG")) fDCSFEEObj->SetConfigTag(fContent.Atoi());\r
- if (strName.Contains("CFGVRSN")) fDCSFEEObj->SetConfigVersion(fContent);\r
- if (strName.Contains("NTB")) fDCSFEEObj->SetNumberOfTimeBins(fContent.Atoi());\r
- if (strName.Contains("SM-ID")) fDCSFEEObj->SetSM(fContent.Atoi());\r
- if (strName.Contains("STACK-ID")) fDCSFEEObj->SetStack(fContent.Atoi());\r
- if (strName.Contains("LAYER-ID")) fDCSFEEObj->SetLayer(fContent.Atoi());\r
+ if (strName.Contains("DNR")) fDCSFEEObj->SetStatusBit(fContent.Atoi());\r
+ if (strName.Contains("CFGNME")) fDCSFEEObj->SetConfigName(fContent);\r
+ if (strName.Contains("CFGTAG")) fDCSFEEObj->SetConfigTag(fContent.Atoi());\r
+ if (strName.Contains("CFGVRSN")) fDCSFEEObj->SetConfigVersion(fContent);\r
+ if (strName.Contains("NTB")) fDCSFEEObj->SetNumberOfTimeBins(fContent.Atoi());\r
+ if (strName.Contains("SM-ID")) fDCSFEEObj->SetSM(fContent.Atoi());\r
+ if (strName.Contains("STACK-ID")) fDCSFEEObj->SetStack(fContent.Atoi());\r
+ if (strName.Contains("LAYER-ID")) fDCSFEEObj->SetLayer(fContent.Atoi());\r
if (strName.Contains("SINGLEHITTHRES")) fDCSFEEObj->SetSingleHitThres(fContent.Atoi());\r
- if (strName.Contains("THRPADCLSTHRS")) fDCSFEEObj->SetThreePadClustThres(fContent.Atoi());\r
- if (strName.Contains("SELNOZS")) fDCSFEEObj->SetSelectiveNoZS(fContent.Atoi());\r
- if (strName.Contains("FASTSTATNOISE")) fDCSFEEObj->SetFastStatNoise(fContent.Atoi());\r
- if (strName.Contains("FILTWEIGHT")) fDCSFEEObj->SetTCFilterWeight(fContent.Atoi());\r
+ if (strName.Contains("THRPADCLSTHRS")) fDCSFEEObj->SetThreePadClustThres(fContent.Atoi());\r
+ if (strName.Contains("SELNOZS")) fDCSFEEObj->SetSelectiveNoZS(fContent.Atoi());\r
+ if (strName.Contains("FASTSTATNOISE")) fDCSFEEObj->SetFastStatNoise(fContent.Atoi());\r
+ if (strName.Contains("FILTWEIGHT")) fDCSFEEObj->SetTCFilterWeight(fContent.Atoi());\r
if (strName.Contains("FILTSHRTDCYPRM")) fDCSFEEObj->SetTCFilterShortDecPar(fContent.Atoi());\r
- if (strName.Contains("FILTLNGDCYPRM")) fDCSFEEObj->SetTCFilterLongDecPar(fContent.Atoi());\r
- if (strName.Contains("FLTR")) fDCSFEEObj->SetFilterType(fContent);\r
- if (strName.Contains("READOUTPAR")) fDCSFEEObj->SetReadoutParam(fContent);\r
- if (strName.Contains("TESTPATTERN")) fDCSFEEObj->SetTestPattern(fContent);\r
- if (strName.Contains("TRCKLTMODE")) fDCSFEEObj->SetTrackletMode(fContent);\r
- if (strName.Contains("TRCKLTDEF")) fDCSFEEObj->SetTrackletDef(fContent);\r
- if (strName.Contains("TRIGGERSETUP")) fDCSFEEObj->SetTriggerSetup(fContent);\r
- if (strName.Contains("ADDOPTIONS")) fDCSFEEObj->SetAddOptions(fContent);\r
+ if (strName.Contains("FILTLNGDCYPRM")) fDCSFEEObj->SetTCFilterLongDecPar(fContent.Atoi());\r
+ if (strName.Contains("FLTR")) fDCSFEEObj->SetFilterType(fContent);\r
+ if (strName.Contains("READOUTPAR")) fDCSFEEObj->SetReadoutParam(fContent);\r
+ if (strName.Contains("TESTPATTERN")) fDCSFEEObj->SetTestPattern(fContent);\r
+ if (strName.Contains("TRCKLTMODE")) fDCSFEEObj->SetTrackletMode(fContent);\r
+ if (strName.Contains("TRCKLTDEF")) fDCSFEEObj->SetTrackletDef(fContent);\r
+ if (strName.Contains("TRIGGERSETUP")) fDCSFEEObj->SetTriggerSetup(fContent);\r
+ if (strName.Contains("ADDOPTIONS")) fDCSFEEObj->SetAddOptions(fContent);\r
+ if (fInsideRstate == 1) {\r
+ if (fCurrentROB>=0 && fCurrentMCM>=0) {\r
+ if (strName.Contains("gsm")) fDCSFEEObj->SetMCMGlobalState(fCurrentROB, fCurrentMCM, fContent.Atoi());\r
+ if (strName.Contains("ni")) fDCSFEEObj->SetMCMStateNI(fCurrentROB, fCurrentMCM, fContent.Atoi());\r
+ if (strName.Contains("ev")) fDCSFEEObj->SetMCMEventCnt(fCurrentROB, fCurrentMCM, fContent.Atoi());\r
+ if (strName.Contains("ptrg")) fDCSFEEObj->SetMCMPtCnt(fCurrentROB, fCurrentMCM, fContent.Atoi());\r
+ }\r
+ }\r
}\r
\r
\r