From e24ea4748e130606bc8bf170bee34446aa5f508b Mon Sep 17 00:00:00 2001 From: hristov Date: Wed, 19 Mar 2003 17:14:11 +0000 Subject: [PATCH] Load/UnloadClusters added to the base class and the derived classes changed correspondingly. Possibility to give 2 input files for ITS and TPC tracks in PropagateBack. TRD tracker uses fEventN from the base class (T.Kuhr) --- STEER/AliTracker.cxx | 2 +- STEER/AliTracker.h | 4 +++- TPC/AliTPCtracker.cxx | 35 +++++++++++++++++++++++++--------- TPC/AliTPCtracker.h | 3 ++- TPC/AliTPCtrackerMI.cxx | 8 ++++++-- TPC/AliTPCtrackerMI.h | 2 +- TRD/AliTRDtracker.cxx | 42 ++++++++++++++++++++++------------------- TRD/AliTRDtracker.h | 9 ++++----- 8 files changed, 66 insertions(+), 39 deletions(-) diff --git a/STEER/AliTracker.cxx b/STEER/AliTracker.cxx index 6796b22445e..fe08e72cb5b 100644 --- a/STEER/AliTracker.cxx +++ b/STEER/AliTracker.cxx @@ -125,7 +125,7 @@ Int_t AliTracker::SetFieldFactor(TFile *file, Bool_t deletegAlice) { return rc; } //////////////////////////////////////////////////////////////////////// -Int_t AliTracker::SetFieldFactor(Char_t* fileName, Bool_t closeFile) { +Int_t AliTracker::SetFieldFactor(const char* fileName, Bool_t closeFile) { // // Utility class to set the value of the magnetic field in the barrel // gAlice object is read from the file, the file is optionally closed diff --git a/STEER/AliTracker.h b/STEER/AliTracker.h index 4754002139c..b522c3d4a7e 100644 --- a/STEER/AliTracker.h +++ b/STEER/AliTracker.h @@ -29,6 +29,8 @@ public: void SetEventNumber(Int_t ev) { fEventN=ev; } //protected: + virtual Int_t LoadClusters()=0; + virtual void UnloadClusters()=0; virtual AliCluster *GetCluster(Int_t index) const=0; virtual void UseClusters(const AliKalmanTrack *t, Int_t from=0) const; virtual void CookLabel(AliKalmanTrack *t,Float_t wrong) const; @@ -40,7 +42,7 @@ public: Double_t GetSigmaZ() const {return fSigmaZ;} Int_t GetEventNumber() const {return fEventN;} - static Int_t SetFieldFactor(Char_t* fileName, Bool_t closeFile = kTRUE); + static Int_t SetFieldFactor(const char* fileName, Bool_t closeFile = kTRUE); static Int_t SetFieldFactor(TFile* file, Bool_t deletegAlice = kTRUE); static Int_t SetFieldFactor(); diff --git a/TPC/AliTPCtracker.cxx b/TPC/AliTPCtracker.cxx index fb7cb1cbf1b..7cda215b963 100644 --- a/TPC/AliTPCtracker.cxx +++ b/TPC/AliTPCtracker.cxx @@ -15,6 +15,9 @@ /* $Log$ +Revision 1.30 2003/02/28 16:13:32 hristov +Typos corrected + Revision 1.29 2003/02/28 15:18:16 hristov Corrections suggested by J.Chudoba @@ -230,14 +233,14 @@ Double_t f3(Double_t x1,Double_t y1, } //_____________________________________________________________________________ -void AliTPCtracker::LoadClusters() { +Int_t AliTPCtracker::LoadClusters() { //----------------------------------------------------------------- // This function loads TPC clusters. //----------------------------------------------------------------- if (!gFile->IsOpen()) { cerr<<"AliTPCtracker::LoadClusters : "<< "file with clusters has not been open !\n"; - return; + return 1; } Char_t name[100]; @@ -246,15 +249,16 @@ void AliTPCtracker::LoadClusters() { if (!cTree) { cerr<<"AliTPCtracker::LoadClusters : "<< "can't get the tree with TPC clusters !\n"; - return; + return 2; } TBranch *branch=cTree->GetBranch("Segment"); if (!branch) { cerr<<"AliTPCtracker::LoadClusters : "<< "can't get the segment branch !\n"; - return; + return 3; } +// AliClusters carray, *addr=&carray; AliClusters carray, *addr=&carray; carray.SetClass("AliTPCcluster"); carray.SetArray(0); @@ -299,6 +303,7 @@ void AliTPCtracker::LoadClusters() { carray.GetArray()->Clear(); } delete cTree; + return 0; } //_____________________________________________________________________________ @@ -787,7 +792,8 @@ Int_t AliTPCtracker::Clusters2Tracks(const TFile *inp, TFile *out) { iotrack=pt; tracktree.Fill(); UseClusters(&t); - cerr<IsOpen()) { cerr<<"AliTPCtracker::PropagateBack(): "; - cerr<<"file with back propagated ITS tracks is not open !\n"; - //return 1; + cerr<<"file with TPC (or back propagated ITS) tracks is not open !\n"; + return 1; } if (!out->IsOpen()) { @@ -921,6 +936,7 @@ Int_t AliTPCtracker::PropagateBack(const TFile *inp, TFile *out) { char tName[100]; sprintf(tName,"TreeT_ITSb_%d",GetEventNumber()); TTree *bckTree=(TTree*)in->Get(tName); + if (!bckTree && inp2) bckTree=(TTree*)in2->Get(tName); if (!bckTree) { cerr<<"AliTPCtracker::PropagateBack() "; cerr<<"can't get a tree with back propagated ITS tracks !\n"; @@ -1084,7 +1100,8 @@ Int_t AliTPCtracker::PropagateBack(const TFile *inp, TFile *out) { ps->PropagateTo(fParam->GetOuterRadiusUp()); otrack=ps; backTree.Fill(); - cerr<IsActive()) && (nc>Int_t(0.5*t.fNFoundable) && (t.fNFoundable>Int_t(0.3*nrows)))){ iotrack=pt; tracktree.Fill(); - cerr<RebuildSeed(); diff --git a/TPC/AliTPCtrackerMI.h b/TPC/AliTPCtrackerMI.h index 0ab99b5fa2c..e4f46b150c8 100644 --- a/TPC/AliTPCtrackerMI.h +++ b/TPC/AliTPCtrackerMI.h @@ -130,7 +130,7 @@ public: ~AliTPCtrackerMI(); Int_t ReadSeeds(const TFile *in); - void LoadClusters(); + Int_t LoadClusters(); void UnloadClusters(); void LoadInnerSectors(); diff --git a/TRD/AliTRDtracker.cxx b/TRD/AliTRDtracker.cxx index 1518560e3b7..0287f0678d5 100644 --- a/TRD/AliTRDtracker.cxx +++ b/TRD/AliTRDtracker.cxx @@ -15,6 +15,9 @@ /* $Log$ +Revision 1.24 2003/02/19 09:02:28 hristov +Track time measurement (S.Radomski) + Revision 1.23 2003/02/10 14:06:10 cblume Add tracking without tilted pads as option @@ -167,8 +170,6 @@ AliTRDtracker::AliTRDtracker(const TFile *geomfile) // fGeom->SetT0(fTzero); - fEvent = 0; - fNclusters = 0; fClusters = new TObjArray(2000); fNseeds = 0; @@ -302,12 +303,12 @@ Int_t AliTRDtracker::Clusters2Tracks(const TFile *inp, TFile *out) return 1; } - sprintf(tname,"seedTRDtoTPC_%d",fEvent); + sprintf(tname,"seedTRDtoTPC_%d",GetEventNumber()); TTree tpc_tree(tname,"Tree with seeds from TRD at outer TPC pad row"); AliTPCtrack *iotrack=0; tpc_tree.Branch("tracks","AliTPCtrack",&iotrack,32000,0); - sprintf(tname,"TreeT%d_TRD",fEvent); + sprintf(tname,"TreeT%d_TRD",GetEventNumber()); TTree trd_tree(tname,"TRD tracks at inner TRD time bin"); AliTRDtrack *iotrack_trd=0; trd_tree.Branch("tracks","AliTRDtrack",&iotrack_trd,32000,0); @@ -323,7 +324,7 @@ Int_t AliTRDtracker::Clusters2Tracks(const TFile *inp, TFile *out) } else { in->cd(); - sprintf(tname,"TRDb_%d",fEvent); + sprintf(tname,"TRDb_%d",GetEventNumber()); TTree *seedTree=(TTree*)in->Get(tname); if (!seedTree) { cerr<<"AliTRDtracker::Clusters2Tracks(): "; @@ -365,7 +366,8 @@ Int_t AliTRDtracker::Clusters2Tracks(const TFile *inp, TFile *out) } iotrack_trd = pt; trd_tree.Fill(); - cout<GetAlpha()); @@ -416,7 +418,8 @@ Int_t AliTRDtracker::Clusters2Tracks(const TFile *inp, TFile *out) UseClusters(&t); CookLabel(pt, 1-fLabelFraction); t.CookdEdx(); - cout<cd(); char tname[100]; - sprintf(tname,"seedsTPCtoTRD_%d",fEvent); + sprintf(tname,"seedsTPCtoTRD_%d",GetEventNumber()); TTree *seedTree=(TTree*)in->Get(tname); if (!seedTree) { cerr<<"AliTRDtracker::PropagateBack(): "; @@ -506,23 +509,23 @@ Int_t AliTRDtracker::PropagateBack(const TFile *inp, TFile *out) { AliTPCtrack *otrack=0; - sprintf(tname,"seedsTRDtoTOF1_%d",fEvent); + sprintf(tname,"seedsTRDtoTOF1_%d",GetEventNumber()); TTree tofTree1(tname,"Tracks back propagated through TPC and TRD"); tofTree1.Branch("tracks","AliTPCtrack",&otrack,32000,0); - sprintf(tname,"seedsTRDtoTOF2_%d",fEvent); + sprintf(tname,"seedsTRDtoTOF2_%d",GetEventNumber()); TTree tofTree2(tname,"Tracks back propagated through TPC and TRD"); tofTree2.Branch("tracks","AliTPCtrack",&otrack,32000,0); - sprintf(tname,"seedsTRDtoPHOS_%d",fEvent); + sprintf(tname,"seedsTRDtoPHOS_%d",GetEventNumber()); TTree phosTree(tname,"Tracks back propagated through TPC and TRD"); phosTree.Branch("tracks","AliTPCtrack",&otrack,32000,0); - sprintf(tname,"seedsTRDtoRICH_%d",fEvent); + sprintf(tname,"seedsTRDtoRICH_%d",GetEventNumber()); TTree richTree(tname,"Tracks back propagated through TPC and TRD"); richTree.Branch("tracks","AliTPCtrack",&otrack,32000,0); - sprintf(tname,"TRDb_%d",fEvent); + sprintf(tname,"TRDb_%d",GetEventNumber()); TTree trdTree(tname,"Back propagated TRD tracks at outer TRD time bin"); AliTRDtrack *otrack_trd=0; trdTree.Branch("tracks","AliTRDtrack",&otrack_trd,32000,0); @@ -557,7 +560,8 @@ Int_t AliTRDtracker::PropagateBack(const TFile *inp, TFile *out) { ps->PropagateTo(364.8); otrack_trd=ps; trdTree.Fill(); - cout<UncheckedAt(ncl); Int_t detector=c->GetDetector(), local_time_bin=c->GetLocalTimeBin(); Int_t sector=fGeom->GetSector(detector); @@ -1444,7 +1448,7 @@ void AliTRDtracker::MakeSeeds(Int_t inner, Int_t outer, Int_t turn) (outer-inner)*fMinClustersInSeed)) delete track; else { fSeeds->AddLast(track); fNseeds++; - cerr<<"\r found seed "<Get(treeName); TObjArray *ClusterArray = new TObjArray(400); @@ -1496,7 +1500,7 @@ void AliTRDtracker::ReadClusters(TObjArray *array, const TFile *inp) // Get the number of points in the detector Int_t nCluster = ClusterArray->GetEntriesFast(); - printf("\r Read %d clusters from entry %d", nCluster, iEntry); +// printf("\r Read %d clusters from entry %d", nCluster, iEntry); // Loop through all TRD digits for (Int_t iCluster = 0; iCluster < nCluster; iCluster++) { @@ -1535,7 +1539,7 @@ void AliTRDtracker::ReadClusters(TObjArray *array, const Char_t *filename) } Char_t treeName[12]; - sprintf(treeName,"TreeR%d_TRD",fEvent); + sprintf(treeName,"TreeR%d_TRD",GetEventNumber()); TTree *ClusterTree = (TTree*) gDirectory->Get(treeName); if (!ClusterTree) { diff --git a/TRD/AliTRDtracker.h b/TRD/AliTRDtracker.h index 2c537353a7f..3b49c50c750 100644 --- a/TRD/AliTRDtracker.h +++ b/TRD/AliTRDtracker.h @@ -5,11 +5,11 @@ * See cxx source for full Copyright notice */ #include "AliTracker.h" +#include "TObjArray.h" class TFile; class TParticle; class TParticlePDG; -class TObjArray; class AliTRDgeometry; class AliTRDparameter; @@ -33,11 +33,12 @@ class AliTRDtracker : public AliTracker { Int_t Clusters2Tracks(const TFile *in, TFile *out); Int_t PropagateBack(const TFile *in, TFile *out); - AliCluster *GetCluster(Int_t index) const { return NULL; }; + Int_t LoadClusters() {LoadEvent(); return 0;}; + void UnloadClusters() {UnloadEvent();}; + AliCluster *GetCluster(Int_t index) const { return (AliCluster*) fClusters->UncheckedAt(index); }; virtual void CookLabel(AliKalmanTrack *t,Float_t wrong) const; virtual void UseClusters(const AliKalmanTrack *t, Int_t from=0) const; - void SetEventNumber(Int_t event) { fEvent = event; } void SetAddTRDseeds() { fAddTRDseeds = kTRUE; } void SetNoTilt() { fNoTilt = kTRUE; } @@ -188,8 +189,6 @@ class AliTRDtracker : public AliTracker { protected: - Int_t fEvent; // Event number - AliTRDgeometry *fGeom; // Pointer to TRD geometry AliTRDparameter *fPar; -- 2.39.3