AliTRDrawData rawData;
rawReader->Reset();
rawReader->Select("TRD");
- rawData.OpenOutput();
AliTRDrawStreamBase::SetRawStreamVersion(GetRecoParam()->GetRawStreamVersion()->Data());
AliTRDdigitsManager *manager = rawData.Raw2Digits(rawReader);
manager->MakeBranch(digitsTree);
fClusterizer->ResetRecPoints();
fClusterizer->OpenOutput(clusterTree);
- fClusterizer->OpenTrackletOutput();
fClusterizer->SetUseLabels(kFALSE);
fClusterizer->Raw2ClustersChamber(rawReader);
return kTRUE;
}
-//_____________________________________________________________________________
-Bool_t AliTRDclusterizer::OpenTrackletOutput()
-{
- //
- // Tracklet writing
- //
-
- if (fReconstructor->IsWritingTracklets()){
- TString evfoldname = AliConfig::GetDefaultEventFolderName();
- fRunLoader = AliRunLoader::GetRunLoader(evfoldname);
-
- if (!fRunLoader) {
- fRunLoader = AliRunLoader::Open("galice.root");
- }
- if (!fRunLoader) {
- AliError(Form("Can not open session for file galice.root."));
- return kFALSE;
- }
-
- UInt_t **leaves = new UInt_t *[2];
- AliDataLoader *dl = fRunLoader->GetLoader("TRDLoader")->GetDataLoader("tracklets");
- if (!dl) {
- AliError("Could not get the tracklets data loader!");
- dl = new AliDataLoader("TRD.Tracklets.root","tracklets", "tracklets");
- fRunLoader->GetLoader("TRDLoader")->AddDataLoader(dl);
- }
- fTrackletTree = dl->Tree();
- if (!fTrackletTree)
- {
- dl->MakeTree();
- fTrackletTree = dl->Tree();
- }
- TBranch *trkbranch = fTrackletTree->GetBranch("trkbranch");
- if (!trkbranch)
- fTrackletTree->Branch("trkbranch",leaves[0],"det/i:side/i:tracklets[256]/i");
- }
-
- return kTRUE;
-}
-
//_____________________________________________________________________________
Bool_t AliTRDclusterizer::OpenInput(Int_t nEvent)
{
}
}
- AliDataLoader *dl = fRunLoader->GetLoader("TRDLoader")->GetDataLoader("tracklets");
- dl->WriteData("OVERWRITE");
+// AliDataLoader *dl = fRunLoader->GetLoader("TRDLoader")->GetDataLoader("tracklets"); //jkl: wrong here
+// dl->WriteData("OVERWRITE"); //jkl: wrong here
//dl->Unload();
delete [] leaves;
fDigitsManager->SetUseDictionaries(TestBit(kLabels));
+ // ----- preparing tracklet output -----
+ if (fReconstructor->IsWritingTracklets()) {
+ AliDataLoader *trklLoader = AliRunLoader::Instance()->GetLoader("TRDLoader")->GetDataLoader("tracklets");
+ if (!trklLoader) {
+ AliError("Could not get the tracklets data loader, adding it now!");
+ trklLoader = new AliDataLoader("TRD.Tracklets.root","tracklets", "tracklets");
+ AliRunLoader::Instance()->GetLoader("TRDLoader")->AddDataLoader(trklLoader);
+ }
+ if (!trklLoader->Tree())
+ AliRunLoader::Instance()->GetLoader("TRDLoader")->GetDataLoader("tracklets")->MakeTree();
+ }
+
// tracklet container for raw tracklet writing
if (!fTrackletContainer && ( fReconstructor->IsWritingTracklets() || fReconstructor->IsProcessingTracklets() )) {
// maximum tracklets for one HC
fTrackletContainer = new UInt_t *[2];
fTrackletContainer[0] = new UInt_t[kTrackletChmb];
fTrackletContainer[1] = new UInt_t[kTrackletChmb];
+ memset(fTrackletContainer[0], 0, kTrackletChmb*sizeof(UInt_t)); //jkl
+ memset(fTrackletContainer[1], 0, kTrackletChmb*sizeof(UInt_t)); //jkl
}
if(!fRawStream)
if (*(fTrackletContainer[0]) > 0 || *(fTrackletContainer[1]) > 0) WriteTracklets(det);
}
+ if (fReconstructor->IsWritingTracklets()) {
+ if (AliDataLoader *trklLoader = AliRunLoader::Instance()->GetLoader("TRDLoader")->GetDataLoader("tracklets")) {
+ trklLoader->WriteData("OVERWRITE");
+ trklLoader->Unload();
+ }
+ }
+
if (fTrackletContainer){
delete [] fTrackletContainer[0];
delete [] fTrackletContainer[1];
Bool_t OpenInput(Int_t nEvent = 0);
Bool_t OpenOutput();
Bool_t OpenOutput(TTree *const clusterTree);
- Bool_t OpenTrackletOutput();
Bool_t ReadDigits();
Bool_t ReadDigits(AliRawReader *rawReader);
#include "AliTRDSignalIndex.h"
#include "AliTRDfeeParam.h"
#include "AliTRDmcmSim.h"
+#include "AliTRDtrackletWord.h"
#include "AliTRDdigitsParam.h"
ClassImp(AliTRDrawData)
digitsManager->CreateArrays();
if (!fTrackletContainer) {
- //if (!fTrackletContainer && ( fReconstructor->IsWritingTracklets() || fReconstructor->IsProcessingTracklets() )) {
- // maximum tracklets for one HC
const Int_t kTrackletChmb=256;
fTrackletContainer = new UInt_t *[2];
fTrackletContainer[0] = new UInt_t[kTrackletChmb];
fTrackletContainer[1] = new UInt_t[kTrackletChmb];
+ memset(fTrackletContainer[0], 0, kTrackletChmb*sizeof(UInt_t)); //jkl
+ memset(fTrackletContainer[1], 0, kTrackletChmb*sizeof(UInt_t)); //jkl
}
AliTRDrawStreamBase *pinput = AliTRDrawStreamBase::GetRawStream(rawReader);
AliInfo(Form("Stream version: %s", input.IsA()->GetName()));
+ // ----- preparing tracklet output -----
+ AliDataLoader *trklLoader = AliRunLoader::Instance()->GetLoader("TRDLoader")->GetDataLoader("tracklets");
+ if (!trklLoader) {
+ AliError("Could not get the tracklets data loader, adding it now!");
+ trklLoader = new AliDataLoader("TRD.Tracklets.root","tracklets", "tracklets");
+ AliRunLoader::Instance()->GetLoader("TRDLoader")->AddDataLoader(trklLoader);
+ }
+ if (!trklLoader->Tree())
+ AliRunLoader::Instance()->GetLoader("TRDLoader")->GetDataLoader("tracklets")->MakeTree();
+
// Loop through the digits
Int_t det = 0;
while (det >= 0)
{
- //det = input.NextChamber(digitsManager);
det = input.NextChamber(digitsManager,fTrackletContainer);
- //if (!fReconstructor->IsWritingTracklets()) continue;
- if (*(fTrackletContainer[0]) > 0 || *(fTrackletContainer[1]) > 0) WriteTracklets(det);
+ if (*(fTrackletContainer[0]) > 0 || *(fTrackletContainer[1]) > 0) WriteTracklets(det);
if (det >= 0)
{
}
}
+ if (AliDataLoader *trklLoader = AliRunLoader::Instance()->GetLoader("TRDLoader")->GetDataLoader("tracklets")) {
+ trklLoader->WriteData("OVERWRITE");
+ trklLoader->Unload();
+ }
+
if (fTrackletContainer){
delete [] fTrackletContainer[0];
delete [] fTrackletContainer[1];
}
}
- AliDataLoader *dl = fRunLoader->GetLoader("TRDLoader")->GetDataLoader("tracklets");
- dl->WriteData("OVERWRITE");
+ // AliDataLoader *dl = fRunLoader->GetLoader("TRDLoader")->GetDataLoader("tracklets"); //jkl: wrong
+ // dl->WriteData("OVERWRITE"); //jkl: wrong
//dl->Unload();
delete [] leaves;
return kTRUE;
-
}
-
-//_____________________________________________________________________________
-Bool_t AliTRDrawData::OpenOutput()
-{
- //
- // Connect the output tree
- //
-
- // tracklet writing
- if (1){
- //if (fReconstructor->IsWritingTracklets()){
- TString evfoldname = AliConfig::GetDefaultEventFolderName();
- fRunLoader = AliRunLoader::GetRunLoader(evfoldname);
-
- if (!fRunLoader) {
- fRunLoader = AliRunLoader::Open("galice.root");
- }
- if (!fRunLoader) {
- AliError(Form("Can not open session for file galice.root."));
- return kFALSE;
- }
-
- UInt_t **leaves = new UInt_t *[2];
- AliDataLoader *dl = fRunLoader->GetLoader("TRDLoader")->GetDataLoader("tracklets");
- if (!dl) {
- AliError("Could not get the tracklets data loader!");
- dl = new AliDataLoader("TRD.Tracklets.root","tracklets", "tracklets");
- fRunLoader->GetLoader("TRDLoader")->AddDataLoader(dl);
- }
- fTrackletTree = dl->Tree();
- if (!fTrackletTree)
- {
- dl->MakeTree();
- fTrackletTree = dl->Tree();
- }
- TBranch *trkbranch = fTrackletTree->GetBranch("trkbranch");
- if (!trkbranch)
- fTrackletTree->Branch("trkbranch",leaves[0],"det/i:side/i:tracklets[256]/i");
- }
- return kTRUE;
-
-}
-
-
-
-
static void SetRawFormatVersion(Int_t iver){ fgRawFormatVersion=iver; };
static void SetSuppressionLevel(Int_t ilevel){ fgDataSuppressionLevel=ilevel; };
Bool_t WriteTracklets(Int_t det);
- Bool_t OpenOutput();
enum FORMATTYPE
{