ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

////////////////////////////////////////////////////////////////////////////////
//
//  This class provides storage for event and track information which 
//  are used for same-event as well as mixed-event analyses in AliXiStar 
//
//  authors: Dhevan Gangadharan (dhevan.raja.gangadharan@cern.ch)
//
////////////////////////////////////////////////////////////////////////////////


#include "AliXiStarEventCollection.h"

AliXiStarTrackStruct::AliXiStarTrackStruct():
  fStatus(0),
  fFilterMap(0),
  fID(0),
  fPhi(0),
  fPt(0),
  fMom(0),
  fP(),
  fCharge(0),
  fEta(0),
  fMass(0),
  fDCAXY(0),
  fDCAZ(0),
  fDCA(0),
  fX(),
  fCov(),
  fNSigmaPi(0),
  fNSigmaK(0),
  fNSigmaPr(0),
  fLabel(0),
  fNclusTPC(0)
{
  //Default constructor
}
//_____________________________________________________________________________
AliXiStarTrackStruct::AliXiStarTrackStruct(const AliXiStarTrackStruct &obj) 
  : fStatus(obj.fStatus),
    fFilterMap(obj.fFilterMap),
    fID(obj.fID),
    fPhi(obj.fPhi),
    fPt(obj.fPt),
    fMom(obj.fMom),
    fP(),
    fCharge(obj.fCharge),
    fEta(obj.fEta),
    fMass(obj.fMass),
    fDCAXY(obj.fDCAXY),
    fDCAZ(obj.fDCAZ),
    fDCA(obj.fDCA),
    fX(),
    fCov(),
    fNSigmaPi(obj.fNSigmaPi),
    fNSigmaK(obj.fNSigmaK),
    fNSigmaPr(obj.fNSigmaPr),
    fLabel(obj.fLabel),
    fNclusTPC(obj.fNclusTPC)
{
  // copy constructor
}

//_____________________________________________________________________________
AliXiStarTrackStruct &AliXiStarTrackStruct::operator=(const AliXiStarTrackStruct &obj) 
{
  // Assignment operator  
  if (this == &obj)
    return *this;
  
  fStatus = obj.fStatus;
  fFilterMap = obj.fFilterMap;
  fID = obj.fID;
  fPhi = obj.fPhi;
  fPt = obj.fPt;
  fMom = obj.fMom;
  fP[0] = obj.fP[0];
  fP[1] = obj.fP[1];
  fP[2] = obj.fP[2];
  fCharge = obj.fCharge;
  fEta = obj.fEta;
  fMass = obj.fMass;
  fDCAXY = obj.fDCAXY;
  fDCAZ = obj.fDCAZ;
  fDCA = obj.fDCA;
  fX[0] = obj.fX[0];
  fX[1] = obj.fX[1];
  fX[2] = obj.fX[2];
  fCov[0] = obj.fCov[0]; fCov[1] = obj.fCov[1]; fCov[2] = obj.fCov[2];
  fCov[3] = obj.fCov[3]; fCov[4] = obj.fCov[4]; fCov[5] = obj.fCov[5];
  fCov[6] = obj.fCov[6]; fCov[7] = obj.fCov[7]; fCov[8] = obj.fCov[8];
  fCov[9] = obj.fCov[9]; fCov[10] = obj.fCov[10]; fCov[11] = obj.fCov[11];
  fCov[12] = obj.fCov[12]; fCov[13] = obj.fCov[13]; fCov[14] = obj.fCov[14];
  fCov[15] = obj.fCov[15]; fCov[16] = obj.fCov[16]; fCov[17] = obj.fCov[17];
  fCov[18] = obj.fCov[18]; fCov[19] = obj.fCov[19]; fCov[20] = obj.fCov[20];
  fNSigmaPi = obj.fNSigmaPi;
  fNSigmaK = obj.fNSigmaK;
  fNSigmaPr = obj.fNSigmaPr;
  fLabel = obj.fLabel;
  fNclusTPC = obj.fNclusTPC;

  return (*this);
}

//_____________________________________________________________________________
AliXiStarTrackStruct::~AliXiStarTrackStruct()
{
  // Destructor
}
//_____________________________________________________________________________
AliXiStarEventStruct::AliXiStarEventStruct():
  fNTracks(0),
  fTracks(0)
{
  //Default constructor
}
//_____________________________________________________________________________
AliXiStarEventStruct::AliXiStarEventStruct(const AliXiStarEventStruct &obj) 
  :  fNTracks(obj.fNTracks),
     fTracks(obj.fTracks)
{
  // copy constructor
}
//_____________________________________________________________________________
AliXiStarEventStruct &AliXiStarEventStruct::operator=(const AliXiStarEventStruct &obj) 
{
  // Assignment operator  
  if (this == &obj)
    return *this;
  
  fNTracks = obj.fNTracks;
  fTracks = obj.fTracks;
  
  return (*this);
}
//_____________________________________________________________________________
AliXiStarEventStruct::~AliXiStarEventStruct()
{
  // Destructor
  if(fTracks) delete fTracks;
}
//_____________________________________________________________________________
AliXiStarEventCollection::AliXiStarEventCollection():
  fFIFO(0),
  fEvtStr(0)
{
//Default constructor
}
//_____________________________________________________________________________
AliXiStarEventCollection::AliXiStarEventCollection(short a):
  fFIFO(0),
  fEvtStr(0x0)
{
  // main constructor
  SetBuffSize(a);
  
  fEvtStr = new AliXiStarEventStruct[fFIFO];  //allocate pointer array
  for(Int_t ii = 0; ii < fFIFO; ii++){   //Initialize to NULL
    (fEvtStr + ii)->fTracks = NULL;
    (fEvtStr + ii)->fNTracks = 0;
     
    (fEvtStr + ii)->fTracks = new AliXiStarTrackStruct[300];
  }
  
}
//_____________________________________________________________________________
AliXiStarEventCollection::AliXiStarEventCollection(const AliXiStarEventCollection &obj) 
  :  fFIFO(obj.fFIFO),
     fEvtStr(obj.fEvtStr)
{
  // copy constructor
}
//_____________________________________________________________________________
AliXiStarEventCollection &AliXiStarEventCollection::operator=(const AliXiStarEventCollection &obj) 
{
  // Assignment operator  
  if (this == &obj)
    return *this;
  
  fFIFO = obj.fFIFO;
  fEvtStr = obj.fEvtStr;
  
  return (*this);
}

//_____________________________________________________________________________
AliXiStarEventCollection::~AliXiStarEventCollection(){

    for(Int_t i = 0; i < fFIFO; i++){

	if((fEvtStr + i)->fTracks != NULL){
	  delete [] (fEvtStr + i)->fTracks;
	}	
	
    }
    
    delete [] fEvtStr;
    //remove histos from heap

}
//_____________________________________________________________________________
void AliXiStarEventCollection::FIFOShift(){ //Shift elements in FIFO by one and clear last element in FIFO 
  
  for(UShort_t i=fFIFO-1 ; i > 0; i--){
    for(Int_t j=0; j<(fEvtStr + i-1)->fNTracks; j++) (fEvtStr + i)->fTracks[j] = (fEvtStr + i-1)->fTracks[j];
    (fEvtStr + i)->fNTracks = (fEvtStr + i-1)->fNTracks;
  }
  
  (fEvtStr)->fNTracks=0;
 
}
 AliXiStarEventCollection.cxx:1
 AliXiStarEventCollection.cxx:2
 AliXiStarEventCollection.cxx:3
 AliXiStarEventCollection.cxx:4
 AliXiStarEventCollection.cxx:5
 AliXiStarEventCollection.cxx:6
 AliXiStarEventCollection.cxx:7
 AliXiStarEventCollection.cxx:8
 AliXiStarEventCollection.cxx:9
 AliXiStarEventCollection.cxx:10
 AliXiStarEventCollection.cxx:11
 AliXiStarEventCollection.cxx:12
 AliXiStarEventCollection.cxx:13
 AliXiStarEventCollection.cxx:14
 AliXiStarEventCollection.cxx:15
 AliXiStarEventCollection.cxx:16
 AliXiStarEventCollection.cxx:17
 AliXiStarEventCollection.cxx:18
 AliXiStarEventCollection.cxx:19
 AliXiStarEventCollection.cxx:20
 AliXiStarEventCollection.cxx:21
 AliXiStarEventCollection.cxx:22
 AliXiStarEventCollection.cxx:23
 AliXiStarEventCollection.cxx:24
 AliXiStarEventCollection.cxx:25
 AliXiStarEventCollection.cxx:26
 AliXiStarEventCollection.cxx:27
 AliXiStarEventCollection.cxx:28
 AliXiStarEventCollection.cxx:29
 AliXiStarEventCollection.cxx:30
 AliXiStarEventCollection.cxx:31
 AliXiStarEventCollection.cxx:32
 AliXiStarEventCollection.cxx:33
 AliXiStarEventCollection.cxx:34
 AliXiStarEventCollection.cxx:35
 AliXiStarEventCollection.cxx:36
 AliXiStarEventCollection.cxx:37
 AliXiStarEventCollection.cxx:38
 AliXiStarEventCollection.cxx:39
 AliXiStarEventCollection.cxx:40
 AliXiStarEventCollection.cxx:41
 AliXiStarEventCollection.cxx:42
 AliXiStarEventCollection.cxx:43
 AliXiStarEventCollection.cxx:44
 AliXiStarEventCollection.cxx:45
 AliXiStarEventCollection.cxx:46
 AliXiStarEventCollection.cxx:47
 AliXiStarEventCollection.cxx:48
 AliXiStarEventCollection.cxx:49
 AliXiStarEventCollection.cxx:50
 AliXiStarEventCollection.cxx:51
 AliXiStarEventCollection.cxx:52
 AliXiStarEventCollection.cxx:53
 AliXiStarEventCollection.cxx:54
 AliXiStarEventCollection.cxx:55
 AliXiStarEventCollection.cxx:56
 AliXiStarEventCollection.cxx:57
 AliXiStarEventCollection.cxx:58
 AliXiStarEventCollection.cxx:59
 AliXiStarEventCollection.cxx:60
 AliXiStarEventCollection.cxx:61
 AliXiStarEventCollection.cxx:62
 AliXiStarEventCollection.cxx:63
 AliXiStarEventCollection.cxx:64
 AliXiStarEventCollection.cxx:65
 AliXiStarEventCollection.cxx:66
 AliXiStarEventCollection.cxx:67
 AliXiStarEventCollection.cxx:68
 AliXiStarEventCollection.cxx:69
 AliXiStarEventCollection.cxx:70
 AliXiStarEventCollection.cxx:71
 AliXiStarEventCollection.cxx:72
 AliXiStarEventCollection.cxx:73
 AliXiStarEventCollection.cxx:74
 AliXiStarEventCollection.cxx:75
 AliXiStarEventCollection.cxx:76
 AliXiStarEventCollection.cxx:77
 AliXiStarEventCollection.cxx:78
 AliXiStarEventCollection.cxx:79
 AliXiStarEventCollection.cxx:80
 AliXiStarEventCollection.cxx:81
 AliXiStarEventCollection.cxx:82
 AliXiStarEventCollection.cxx:83
 AliXiStarEventCollection.cxx:84
 AliXiStarEventCollection.cxx:85
 AliXiStarEventCollection.cxx:86
 AliXiStarEventCollection.cxx:87
 AliXiStarEventCollection.cxx:88
 AliXiStarEventCollection.cxx:89
 AliXiStarEventCollection.cxx:90
 AliXiStarEventCollection.cxx:91
 AliXiStarEventCollection.cxx:92
 AliXiStarEventCollection.cxx:93
 AliXiStarEventCollection.cxx:94
 AliXiStarEventCollection.cxx:95
 AliXiStarEventCollection.cxx:96
 AliXiStarEventCollection.cxx:97
 AliXiStarEventCollection.cxx:98
 AliXiStarEventCollection.cxx:99
 AliXiStarEventCollection.cxx:100
 AliXiStarEventCollection.cxx:101
 AliXiStarEventCollection.cxx:102
 AliXiStarEventCollection.cxx:103
 AliXiStarEventCollection.cxx:104
 AliXiStarEventCollection.cxx:105
 AliXiStarEventCollection.cxx:106
 AliXiStarEventCollection.cxx:107
 AliXiStarEventCollection.cxx:108
 AliXiStarEventCollection.cxx:109
 AliXiStarEventCollection.cxx:110
 AliXiStarEventCollection.cxx:111
 AliXiStarEventCollection.cxx:112
 AliXiStarEventCollection.cxx:113
 AliXiStarEventCollection.cxx:114
 AliXiStarEventCollection.cxx:115
 AliXiStarEventCollection.cxx:116
 AliXiStarEventCollection.cxx:117
 AliXiStarEventCollection.cxx:118
 AliXiStarEventCollection.cxx:119
 AliXiStarEventCollection.cxx:120
 AliXiStarEventCollection.cxx:121
 AliXiStarEventCollection.cxx:122
 AliXiStarEventCollection.cxx:123
 AliXiStarEventCollection.cxx:124
 AliXiStarEventCollection.cxx:125
 AliXiStarEventCollection.cxx:126
 AliXiStarEventCollection.cxx:127
 AliXiStarEventCollection.cxx:128
 AliXiStarEventCollection.cxx:129
 AliXiStarEventCollection.cxx:130
 AliXiStarEventCollection.cxx:131
 AliXiStarEventCollection.cxx:132
 AliXiStarEventCollection.cxx:133
 AliXiStarEventCollection.cxx:134
 AliXiStarEventCollection.cxx:135
 AliXiStarEventCollection.cxx:136
 AliXiStarEventCollection.cxx:137
 AliXiStarEventCollection.cxx:138
 AliXiStarEventCollection.cxx:139
 AliXiStarEventCollection.cxx:140
 AliXiStarEventCollection.cxx:141
 AliXiStarEventCollection.cxx:142
 AliXiStarEventCollection.cxx:143
 AliXiStarEventCollection.cxx:144
 AliXiStarEventCollection.cxx:145
 AliXiStarEventCollection.cxx:146
 AliXiStarEventCollection.cxx:147
 AliXiStarEventCollection.cxx:148
 AliXiStarEventCollection.cxx:149
 AliXiStarEventCollection.cxx:150
 AliXiStarEventCollection.cxx:151
 AliXiStarEventCollection.cxx:152
 AliXiStarEventCollection.cxx:153
 AliXiStarEventCollection.cxx:154
 AliXiStarEventCollection.cxx:155
 AliXiStarEventCollection.cxx:156
 AliXiStarEventCollection.cxx:157
 AliXiStarEventCollection.cxx:158
 AliXiStarEventCollection.cxx:159
 AliXiStarEventCollection.cxx:160
 AliXiStarEventCollection.cxx:161
 AliXiStarEventCollection.cxx:162
 AliXiStarEventCollection.cxx:163
 AliXiStarEventCollection.cxx:164
 AliXiStarEventCollection.cxx:165
 AliXiStarEventCollection.cxx:166
 AliXiStarEventCollection.cxx:167
 AliXiStarEventCollection.cxx:168
 AliXiStarEventCollection.cxx:169
 AliXiStarEventCollection.cxx:170
 AliXiStarEventCollection.cxx:171
 AliXiStarEventCollection.cxx:172
 AliXiStarEventCollection.cxx:173
 AliXiStarEventCollection.cxx:174
 AliXiStarEventCollection.cxx:175
 AliXiStarEventCollection.cxx:176
 AliXiStarEventCollection.cxx:177
 AliXiStarEventCollection.cxx:178
 AliXiStarEventCollection.cxx:179
 AliXiStarEventCollection.cxx:180
 AliXiStarEventCollection.cxx:181
 AliXiStarEventCollection.cxx:182
 AliXiStarEventCollection.cxx:183
 AliXiStarEventCollection.cxx:184
 AliXiStarEventCollection.cxx:185
 AliXiStarEventCollection.cxx:186
 AliXiStarEventCollection.cxx:187
 AliXiStarEventCollection.cxx:188
 AliXiStarEventCollection.cxx:189
 AliXiStarEventCollection.cxx:190
 AliXiStarEventCollection.cxx:191
 AliXiStarEventCollection.cxx:192
 AliXiStarEventCollection.cxx:193
 AliXiStarEventCollection.cxx:194
 AliXiStarEventCollection.cxx:195
 AliXiStarEventCollection.cxx:196
 AliXiStarEventCollection.cxx:197
 AliXiStarEventCollection.cxx:198
 AliXiStarEventCollection.cxx:199
 AliXiStarEventCollection.cxx:200
 AliXiStarEventCollection.cxx:201
 AliXiStarEventCollection.cxx:202
 AliXiStarEventCollection.cxx:203
 AliXiStarEventCollection.cxx:204
 AliXiStarEventCollection.cxx:205
 AliXiStarEventCollection.cxx:206
 AliXiStarEventCollection.cxx:207
 AliXiStarEventCollection.cxx:208
 AliXiStarEventCollection.cxx:209
 AliXiStarEventCollection.cxx:210
 AliXiStarEventCollection.cxx:211
 AliXiStarEventCollection.cxx:212
 AliXiStarEventCollection.cxx:213
 AliXiStarEventCollection.cxx:214
 AliXiStarEventCollection.cxx:215
 AliXiStarEventCollection.cxx:216
 AliXiStarEventCollection.cxx:217
 AliXiStarEventCollection.cxx:218
 AliXiStarEventCollection.cxx:219
 AliXiStarEventCollection.cxx:220
 AliXiStarEventCollection.cxx:221
 AliXiStarEventCollection.cxx:222
 AliXiStarEventCollection.cxx:223
 AliXiStarEventCollection.cxx:224
 AliXiStarEventCollection.cxx:225