From 274c2dceccbed45439aafc946acdc638a67886ba Mon Sep 17 00:00:00 2001 From: auras Date: Fri, 20 Jul 2012 14:19:33 +0000 Subject: [PATCH] Clear method added to several classes --- MFT/AliESDEventMFT.cxx | 17 +++++++------ MFT/AliESDEventMFT.h | 1 + MFT/AliMFTCluster.cxx | 15 ++++++----- MFT/AliMFTCluster.h | 5 ++-- MFT/AliMuonForwardTrack.cxx | 18 ++++++++++++-- MFT/AliMuonForwardTrack.h | 3 ++- MFT/AliMuonForwardTrackPair.cxx | 17 ++++++++----- MFT/AliMuonForwardTrackPair.h | 3 ++- MFT/runMFT.sh | 2 +- MFT/runReconstruction.C | 44 +++++++++++++++++++-------------- 10 files changed, 79 insertions(+), 46 deletions(-) diff --git a/MFT/AliESDEventMFT.cxx b/MFT/AliESDEventMFT.cxx index ebf1a816e1b..8138c292347 100644 --- a/MFT/AliESDEventMFT.cxx +++ b/MFT/AliESDEventMFT.cxx @@ -60,12 +60,14 @@ AliESDEventMFT::AliESDEventMFT(AliESDEvent &esdEvent): AliESDEventMFT::AliESDEventMFT(const AliESDEventMFT &esdEventMFT): AliESDEvent(esdEventMFT), - fMuonForwardTracks(esdEventMFT.fMuonForwardTracks) + fMuonForwardTracks(NULL) { // copy constructor + fMuonForwardTracks = new TClonesArray(*(esdEventMFT.fMuonForwardTracks)); + fMuonForwardTracks->SetOwner(kTRUE); AddObject(fMuonForwardTracks); - + } //==================================================================================================================================================== @@ -81,9 +83,11 @@ AliESDEventMFT& AliESDEventMFT::operator=(const AliESDEventMFT &esdEventMFT) { AliESDEvent::operator=(esdEventMFT); // clear memory - Clear(); + Clear(""); - fMuonForwardTracks = esdEventMFT.fMuonForwardTracks; + fMuonForwardTracks = new TClonesArray(*(esdEventMFT.fMuonForwardTracks)); + fMuonForwardTracks->SetOwner(kTRUE); + AddObject(fMuonForwardTracks); return *this; @@ -95,10 +99,7 @@ AliESDEventMFT::~AliESDEventMFT() { // destructor - if (fMuonForwardTracks) { - // fMuonForwardTracks->Delete(); - delete fMuonForwardTracks; - } + delete fMuonForwardTracks; } diff --git a/MFT/AliESDEventMFT.h b/MFT/AliESDEventMFT.h index b55dd22b275..8f0c3777440 100644 --- a/MFT/AliESDEventMFT.h +++ b/MFT/AliESDEventMFT.h @@ -31,6 +31,7 @@ public: AliESDEventMFT &operator=(const AliESDEventMFT&); virtual ~AliESDEventMFT(); + virtual void Clear(const Option_t* /*opt*/) { delete fMuonForwardTracks; fMuonForwardTracks = 0x0; } AliMuonForwardTrack *GetMuonForwardTrack(Int_t i) const { return (AliMuonForwardTrack*)(fMuonForwardTracks?fMuonForwardTracks->UncheckedAt(i):0x0); diff --git a/MFT/AliMFTCluster.cxx b/MFT/AliMFTCluster.cxx index 18708949ca5..2cfc7c8af22 100644 --- a/MFT/AliMFTCluster.cxx +++ b/MFT/AliMFTCluster.cxx @@ -56,7 +56,7 @@ AliMFTCluster::AliMFTCluster(): for (Int_t iTrack=0; iTrack SetOwner(kTRUE); } //==================================================================================================================================================== @@ -76,13 +76,15 @@ AliMFTCluster::AliMFTCluster(const AliMFTCluster& cluster): fSize(cluster.fSize), fTrackChi2(cluster.fTrackChi2), fLocalChi2(cluster.fLocalChi2), - fDigitsInCluster(cluster.fDigitsInCluster), + fDigitsInCluster(NULL), fIsClusterEditable(cluster.fIsClusterEditable) { // copy constructor for (Int_t iTrack=0; iTrack SetOwner(kTRUE); + } //==================================================================================================================================================== @@ -98,7 +100,7 @@ AliMFTCluster& AliMFTCluster::operator=(const AliMFTCluster& cluster) { TObject::operator=(cluster); // clear memory - Clear(); + Clear(""); fX = cluster.fX; fY = cluster.fY; @@ -113,11 +115,12 @@ AliMFTCluster& AliMFTCluster::operator=(const AliMFTCluster& cluster) { fSize = cluster.fSize; fTrackChi2 = cluster.fTrackChi2; fLocalChi2 = cluster.fLocalChi2; - fDigitsInCluster = cluster.fDigitsInCluster; fIsClusterEditable = cluster.fIsClusterEditable; for (Int_t iTrack=0; iTrackSetOwner(kTRUE); + return *this; } diff --git a/MFT/AliMFTCluster.h b/MFT/AliMFTCluster.h index 9462e08496c..f3fc2c10b80 100644 --- a/MFT/AliMFTCluster.h +++ b/MFT/AliMFTCluster.h @@ -28,9 +28,10 @@ public: AliMFTCluster(); AliMFTCluster(const AliMFTCluster&); AliMFTCluster& operator=(const AliMFTCluster&); + virtual ~AliMFTCluster() { fDigitsInCluster->Delete(); delete fDigitsInCluster; } - virtual ~AliMFTCluster() { ; } // destructor - + virtual void Clear(const Option_t* /*opt*/) { delete fDigitsInCluster; fDigitsInCluster = 0x0; } + void SetXYZ(Double_t x, Double_t y, Double_t z) { fX=x; fY=y; fZ=z; } void SetX(Double_t x) { if(fIsClusterEditable) fX = x; } diff --git a/MFT/AliMuonForwardTrack.cxx b/MFT/AliMuonForwardTrack.cxx index 0880d0c0db2..03927c9e788 100644 --- a/MFT/AliMuonForwardTrack.cxx +++ b/MFT/AliMuonForwardTrack.cxx @@ -54,6 +54,7 @@ AliMuonForwardTrack::AliMuonForwardTrack(): fParentPDGCode[iParent] = 0; } fMFTClusters = new TClonesArray("AliMFTCluster"); + fMFTClusters -> SetOwner(kTRUE); } @@ -75,7 +76,7 @@ AliMuonForwardTrack::AliMuonForwardTrack(AliMUONTrack *MUONTrack): fParentPDGCode[iParent] = 0; } fMFTClusters = new TClonesArray("AliMFTCluster"); - fMFTClusters->SetOwner(kTRUE); + fMFTClusters -> SetOwner(kTRUE); } @@ -94,6 +95,7 @@ AliMuonForwardTrack::AliMuonForwardTrack(const AliMuonForwardTrack& track): fMUONTrack = new AliMUONTrack(*(track.fMUONTrack)); if (track.fMCTrackRef) fMCTrackRef = new TParticle(*(track.fMCTrackRef)); fMFTClusters = new TClonesArray(*(track.fMFTClusters)); + fMFTClusters->SetOwner(kTRUE); for (Int_t iPlane=0; iPlaneSetOwner(kTRUE); fNWrongClustersMC = track.fNWrongClustersMC; fTrackMCId = track.fTrackMCId; @@ -135,6 +138,17 @@ AliMuonForwardTrack& AliMuonForwardTrack::operator=(const AliMuonForwardTrack& t //==================================================================================================================================================== +void AliMuonForwardTrack::Clear(const Option_t* /*opt*/) { + + // Clear arrays + delete fMUONTrack; fMUONTrack = 0x0; + delete fMCTrackRef; fMCTrackRef = 0x0; + delete fMFTClusters; fMFTClusters = 0x0; + +} + +//==================================================================================================================================================== + AliMuonForwardTrack::~AliMuonForwardTrack() { delete fMUONTrack; diff --git a/MFT/AliMuonForwardTrack.h b/MFT/AliMuonForwardTrack.h index 8702c9d8cf3..d43440646dc 100644 --- a/MFT/AliMuonForwardTrack.h +++ b/MFT/AliMuonForwardTrack.h @@ -36,7 +36,8 @@ public: AliMuonForwardTrack(const AliMuonForwardTrack&); AliMuonForwardTrack &operator=(const AliMuonForwardTrack&); - virtual ~AliMuonForwardTrack(); + virtual ~AliMuonForwardTrack(); + virtual void Clear(const Option_t* /*opt*/); void SetMUONTrack(AliMUONTrack *MUONTrack); void SetMCTrackRef(TParticle *MCTrackRef); diff --git a/MFT/AliMuonForwardTrackPair.cxx b/MFT/AliMuonForwardTrackPair.cxx index 7487e3d8bb8..f3b08f24953 100644 --- a/MFT/AliMuonForwardTrackPair.cxx +++ b/MFT/AliMuonForwardTrackPair.cxx @@ -50,7 +50,8 @@ AliMuonForwardTrackPair::AliMuonForwardTrackPair(): // default constructor fMuonForwardTracks = new TClonesArray("AliMuonForwardTrack", 2); - + fMuonForwardTracks -> SetOwner(kTRUE); + } //==================================================================================================================================================== @@ -67,7 +68,7 @@ AliMuonForwardTrackPair::AliMuonForwardTrackPair(AliMuonForwardTrack *track0, Al { fMuonForwardTracks = new TClonesArray("AliMuonForwardTrack", 2); - + fMuonForwardTracks->SetOwner(kTRUE); new ((*fMuonForwardTracks)[0]) AliMuonForwardTrack(*track0); new ((*fMuonForwardTracks)[1]) AliMuonForwardTrack(*track1); @@ -80,7 +81,7 @@ AliMuonForwardTrackPair::AliMuonForwardTrackPair(AliMuonForwardTrack *track0, Al AliMuonForwardTrackPair::AliMuonForwardTrackPair(const AliMuonForwardTrackPair& trackPair): TObject(trackPair), - fMuonForwardTracks(trackPair.fMuonForwardTracks), + fMuonForwardTracks(NULL), fKinemMC(trackPair.fKinemMC), fKinem(trackPair.fKinem), fIsKinemSet(trackPair.fIsKinemSet), @@ -90,7 +91,9 @@ AliMuonForwardTrackPair::AliMuonForwardTrackPair(const AliMuonForwardTrackPair& { // copy constructor - + fMuonForwardTracks = new TClonesArray(*(trackPair.fMuonForwardTracks)); + fMuonForwardTracks -> SetOwner(kTRUE); + } //==================================================================================================================================================== @@ -106,9 +109,11 @@ AliMuonForwardTrackPair& AliMuonForwardTrackPair::operator=(const AliMuonForward AliMuonForwardTrackPair::operator=(trackPair); // clear memory - Clear(); + Clear(""); + + fMuonForwardTracks = new TClonesArray(*(trackPair.fMuonForwardTracks)); + fMuonForwardTracks->SetOwner(kTRUE); - fMuonForwardTracks = trackPair.fMuonForwardTracks; fKinemMC = trackPair.fKinemMC; fKinem = trackPair.fKinem; fIsKinemSet = trackPair.fIsKinemSet; diff --git a/MFT/AliMuonForwardTrackPair.h b/MFT/AliMuonForwardTrackPair.h index ca7466a30a1..ab020ae0110 100644 --- a/MFT/AliMuonForwardTrackPair.h +++ b/MFT/AliMuonForwardTrackPair.h @@ -32,7 +32,8 @@ public: AliMuonForwardTrackPair(const AliMuonForwardTrackPair&); AliMuonForwardTrackPair &operator=(const AliMuonForwardTrackPair&); - + virtual void Clear(const Option_t* /*opt*/) { delete fMuonForwardTracks; fMuonForwardTracks = 0x0; } + virtual ~AliMuonForwardTrackPair() { fMuonForwardTracks->Delete(); delete fMuonForwardTracks; } AliMuonForwardTrack* GetTrack(Int_t iTrack) { diff --git a/MFT/runMFT.sh b/MFT/runMFT.sh index 7d0c2b2fea5..9d999519e2e 100644 --- a/MFT/runMFT.sh +++ b/MFT/runMFT.sh @@ -8,7 +8,7 @@ echo $CURDIR OUTDIR=${CURDIR}/test echo $OUTDIR mkdir $OUTDIR -RUN=130850 # run number for OCDB access +RUN=169099 # run number for OCDB access SEED=12345 # random number generator seed should be used SIMDIR="generated" # sub-directory where to move simulated files prior to reco # Copy *ALL* the macros we need in the output directory, not to mess diff --git a/MFT/runReconstruction.C b/MFT/runReconstruction.C index 52105c3647e..8233aded846 100644 --- a/MFT/runReconstruction.C +++ b/MFT/runReconstruction.C @@ -10,31 +10,37 @@ void runReconstruction(Int_t seed, const Char_t *recOptions) { // GRP from local OCDB reco->SetSpecificStorage("GRP/GRP/Data",Form("local://%s",gSystem->pwd())); - // MUON Tracker -> local:///$OCDB should reflect the content of alien://folder=/alice - reco->SetDefaultStorage("alien://folder=/alice/simulation/2008/v4-15-Release/Ideal"); - reco->SetSpecificStorage("MUON/Align/Data", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); - reco->SetSpecificStorage("MFT/Align/Data", "alien://folder=/alice/cern.ch/user/a/auras/OCDB/"); - reco->SetSpecificStorage("MFT/Calib/RecoParam", "alien://folder=/alice/cern.ch/user/a/auras/OCDB/"); - - AliMUONRecoParam *param = AliMUONRecoParam::GetLowFluxParam(); - param->SetPadGoodnessMask(0x8080); - for (Int_t iCh=0; iCh<10; iCh++) { - param->SetDefaultNonBendingReso(iCh,0.2); - param->SetDefaultBendingReso(iCh,0.2); - } - param->SetSigmaCutForTracking(5.); - param->ImproveTracks(kTRUE, 4.); - param->SetStripCutForTrigger(1.5); - param->SetSigmaCutForTrigger(4.); - param->Print("FULL"); - reco->SetRecoParam("MUON", param); + reco->SetDefaultStorage("alien://folder=/alice/data/2011/OCDB"); + + reco->SetSpecificStorage("MUON/Align/Data", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/Capacitances", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/Config", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/Gain", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/GlobalTriggerBoardMasks", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/GlobalTriggerCrateConfig", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/HV", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/LocalTriggerBoardMasks", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/MappingData", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/MappingRunData", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/Neighbours", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/OccupancyMap", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/Pedestals", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/RegionalTriggerBoardMasks", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/RegionalTriggerConfig", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/RejectList", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/TriggerDCS", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/TriggerEfficiency", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + reco->SetSpecificStorage("MUON/Calib/TriggerLut", "alien://folder=/alice/simulation/2008/v4-15-Release/Residual"); + + reco->SetSpecificStorage("MUON/Calib/RecoParam", "alien://folder=/alice/cern.ch/user/a/auras/OCDB/"); + reco->SetSpecificStorage("MFT/Align/Data", "alien://folder=/alice/cern.ch/user/a/auras/OCDB/"); + reco->SetSpecificStorage("MFT/Calib/RecoParam", "alien://folder=/alice/cern.ch/user/a/auras/OCDB/"); reco->SetRunReconstruction("MUON MFT"); reco->SetRunLocalReconstruction("MUON MFT"); reco->SetOption("MUON MFT",recOptions); reco->SetRunQA("MUON:ALL"); reco->SetQAWriteExpert(AliQAv1::kMUON); - reco->SetQARefDefaultStorage("local://$ALICE_ROOT/QAref"); reco->SetWriteESDfriend(kFALSE); reco->SetStopOnError(kFALSE); -- 2.39.3