+//__________________
+AliFemtoEventReaderESD& AliFemtoEventReaderESD::operator=(const AliFemtoEventReaderESD& aReader)
+{
+ if (this == &aReader)
+ return *this;
+
+ fInputFile = aReader.fInputFile;
+ fFileName = aReader.fFileName;
+ fConstrained = aReader.fConstrained;
+ fNumberofEvent = aReader.fNumberofEvent;
+ fCurEvent = aReader.fCurEvent;
+ fCurFile = aReader.fCurFile;
+ if (fTree) delete fTree;
+ fTree = aReader.fTree->CloneTree();
+ if (fEvent) delete fEvent;
+ fEvent = new AliESD(*aReader.fEvent);
+ if (fEsdFile) delete fEsdFile;
+ fEsdFile = new TFile(aReader.fEsdFile->GetName());
+
+ fEventFriend = aReader.fEventFriend;
+
+ if (fClusterPerPadrow) {
+ for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+ fClusterPerPadrow[tPad]->clear();
+ delete fClusterPerPadrow[tPad];
+ }
+ delete [] fClusterPerPadrow;
+ }
+
+ if (fSharedList) {
+ for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+ fSharedList[tPad]->clear();
+ delete fSharedList[tPad];
+ }
+ delete [] fSharedList;
+ }
+
+ fClusterPerPadrow = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
+ for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+ fClusterPerPadrow[tPad] = new list<Int_t>();
+ list<Int_t>::iterator iter;
+ for (iter=aReader.fClusterPerPadrow[tPad]->begin(); iter!=aReader.fClusterPerPadrow[tPad]->end(); iter++) {
+ fClusterPerPadrow[tPad]->push_back(*iter);
+ }
+ }
+ fSharedList = (list<Int_t> **) malloc(sizeof(list<Int_t> *) * AliESDfriendTrack::kMaxTPCcluster);
+ for (int tPad=0; tPad<AliESDfriendTrack::kMaxTPCcluster; tPad++) {
+ fSharedList[tPad] = new list<Int_t>();
+ list<Int_t>::iterator iter;
+ for (iter=aReader.fSharedList[tPad]->begin(); iter!=aReader.fSharedList[tPad]->end(); iter++) {
+ fSharedList[tPad]->push_back(*iter);
+ }
+ }
+ for (unsigned int veciter = 0; veciter<aReader.fListOfFiles.size(); veciter++)
+ fListOfFiles.push_back(aReader.fListOfFiles[veciter]);
+
+ return *this;
+}