,fTracksKink(NULL)\r
,fV0List(NULL)\r
,fContainer(NULL)\r
+ ,fRecos(NULL)\r
,fDebugStream(NULL)\r
{\r
//\r
,fTracksKink(NULL)\r
,fV0List(NULL)\r
,fContainer(NULL)\r
+ ,fRecos(NULL)\r
,fDebugStream(NULL)\r
{\r
//\r
fV0List = new TObjArray(10); fV0List->SetOwner(kTRUE);\r
\r
// define general monitor\r
- fContainer = new TObjArray(1); fContainer->SetOwner(kTRUE);\r
+ fContainer = new TObjArray(2); fContainer->SetOwner(kTRUE);\r
TH1 *h=new TH1I("hStat", "Run statistics;Observable;Entries", Int_t(kNObjects), -0.5, Float_t(kNObjects)-0.5);\r
TAxis *ax(h->GetXaxis());\r
ax->SetBinLabel(Int_t(kTracksESD) + 1, "ESD");\r
ax->SetBinLabel(Int_t(kBarrelFriend) + 1, "BFriend");\r
ax->SetBinLabel(Int_t(kSAFriend) + 1, "SFriend");\r
fContainer->AddAt(h, 0);\r
+ h=new TH1I("hEv", "Run statistics;Event Class;Entries", 4, -0.5, 3.5);\r
+ ax = h->GetXaxis();\r
+ ax->SetBinLabel(1, "Low");\r
+ ax->SetBinLabel(2, "High");\r
+ ax->SetBinLabel(3, "Cosmic");\r
+ ax->SetBinLabel(4, "Calib");\r
+ fContainer->AddAt(h, 1);\r
PostData(AliTRDpwg1Helper::kMonitor, fContainer);\r
}\r
\r
AliTRDtrackerV1::SetNTimeBins(AliTRDcalibDB::Instance()->GetNumberOfTimeBinsDCS());\r
AliInfo(Form("OCDB : Loc[%s] Run[%d] TB[%d]", fOCDB.Data(), ocdb->GetRun(), AliTRDtrackerV1::GetNTimeBins()));\r
\r
- // set reco param valid for this run/event\r
- AliInfo(Form("Initializing TRD reco params for EventSpecie[%d]...",\r
- fESDev->GetEventSpecie()));\r
+ // load reco param list from OCDB\r
+ AliInfo("Initializing TRD reco params ...");\r
fgReconstructor = new AliTRDReconstructor();\r
if(!(obj = ocdb->Get(AliCDBPath("TRD", "Calib", "RecoParam")))){\r
AliError("RECO PARAM failed initialization.");\r
- fgReconstructor->SetRecoParam(AliTRDrecoParam::GetLowFluxParam());\r
} else {\r
obj->PrintMetaData();\r
- TObjArray *recos((TObjArray*)obj->GetObject());\r
- for(Int_t ireco(0); ireco<recos->GetEntriesFast(); ireco++){\r
- AliTRDrecoParam *reco((AliTRDrecoParam*)recos->At(ireco));\r
- Int_t es(reco->GetEventSpecie());\r
- if(!(es&fESDev->GetEventSpecie())) continue;\r
- fgReconstructor->SetRecoParam(reco);\r
- TString s;\r
- if(es&AliRecoParam::kLowMult) s="LowMult";\r
- else if(es&AliRecoParam::kHighMult) s="HighMult";\r
- else if(es&AliRecoParam::kCosmic) s="Cosmic";\r
- else if(es&AliRecoParam::kCalib) s="Calib";\r
- else s="Unknown";\r
- AliInfo(Form("Using reco params for %s", s.Data()));\r
- break;\r
- }\r
+ fRecos = (TObjArray*)obj->GetObject();\r
}\r
SetInitOCDB();\r
}\r
+ // set reco param valid for this event\r
+ TH1 *h = (TH1I*)fContainer->At(1);\r
+ if(!fRecos){\r
+ fgReconstructor->SetRecoParam(AliTRDrecoParam::GetLowFluxParam());\r
+ h->Fill(0);\r
+ } else {\r
+ for(Int_t ireco(0); ireco<fRecos->GetEntriesFast(); ireco++){\r
+ AliTRDrecoParam *reco((AliTRDrecoParam*)fRecos->At(ireco));\r
+ Int_t es(reco->GetEventSpecie());\r
+ if(!(es&fESDev->GetEventSpecie())) continue;\r
+ fgReconstructor->SetRecoParam(reco);\r
+ if(AliLog::GetDebugLevel("PWG1/TRD", "AliTRDinfoGen")>2) reco->Dump();\r
+ TString s;\r
+ if(es&AliRecoParam::kLowMult){ s="LowMult"; h->Fill(0);}\r
+ else if(es&AliRecoParam::kHighMult){ s="HighMult"; h->Fill(1);}\r
+ else if(es&AliRecoParam::kCosmic){ s="Cosmic"; h->Fill(2);}\r
+ else if(es&AliRecoParam::kCalib){ s="Calib"; h->Fill(3);}\r
+ else s="Unknown";\r
+ AliDebug(1, Form("Using reco param \"%s\" for event %d.", s.Data(), fESDev->GetEventNumberInFile()));\r
+ break;\r
+ }\r
+ }\r
\r
// link MC if available\r
fMCev = MCEvent();\r
}\r
\r
// read REC info\r
- esdFriendTrack = fESDfriend->GetTrack(itrk);\r
+ esdFriendTrack = (fESDfriend->GetNumberOfTracks() > itrk) ? fESDfriend->GetTrack(itrk): NULL;\r
+\r
if(esdFriendTrack){\r
Int_t icalib = 0;\r
while((calObject = esdFriendTrack->GetCalibObject(icalib++))){\r
,nKink, nKinkMC, fTracksKink->GetEntries()\r
));\r
// save track statistics\r
- TH1 *h((TH1S*)fContainer->At(0));\r
+ h = (TH1I*)fContainer->At(0);\r
h->Fill(Float_t(kTracksESD), nTracksESD);\r
h->Fill(Float_t(kTracksMC), nTracksMC);\r
h->Fill(Float_t(kV0), fV0List->GetEntries());\r