#include "AliFemtoVertexAnalysis.h"
#include "AliFemtoParticleCollection.h"
#include "AliFemtoTrackCut.h"
#include "AliFemtoV0Cut.h"
#include "AliFemtoKinkCut.h"
#include "AliFemtoPicoEventCollectionVector.h"
#include "AliFemtoPicoEventCollectionVectorHideAway.h"
#ifdef __ROOT__
ClassImp(AliFemtoVertexAnalysis)
#endif
extern void FillHbtParticleCollection(AliFemtoParticleCut* partCut,
AliFemtoEvent* hbtEvent,
AliFemtoParticleCollection* partCollection);
AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(unsigned int bins, double min, double max):
fVertexBins(0),
fOverFlow(0),
fUnderFlow(0)
{
fEventCut = 0;
fFirstParticleCut = 0;
fSecondParticleCut = 0;
fPairCut = 0;
fCorrFctnCollection= 0;
fCorrFctnCollection = new AliFemtoCorrFctnCollection;
fVertexBins = bins;
fVertexZ[0] = min;
fVertexZ[1] = max;
fUnderFlow = 0;
fOverFlow = 0;
if (fMixingBuffer) delete fMixingBuffer;
fPicoEventCollectionVectorHideAway = new AliFemtoPicoEventCollectionVectorHideAway(fVertexBins,fVertexZ[0],fVertexZ[1]);
}
AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) :
AliFemtoSimpleAnalysis(),
fVertexBins(0),
fOverFlow(0),
fUnderFlow(0)
{
fEventCut = 0;
fFirstParticleCut = 0;
fSecondParticleCut = 0;
fPairCut = 0;
fCorrFctnCollection= 0;
fCorrFctnCollection = new AliFemtoCorrFctnCollection;
fVertexBins = a.fVertexBins;
fVertexZ[0] = a.fVertexZ[0];
fVertexZ[1] = a.fVertexZ[1];
fUnderFlow = 0;
fOverFlow = 0;
if (fMixingBuffer) delete fMixingBuffer;
fPicoEventCollectionVectorHideAway = new AliFemtoPicoEventCollectionVectorHideAway(fVertexBins,fVertexZ[0],fVertexZ[1]);
fEventCut = a.fEventCut->Clone();
fFirstParticleCut = a.fFirstParticleCut->Clone();
if (a.fFirstParticleCut==a.fSecondParticleCut)
SetSecondParticleCut(fFirstParticleCut);
else
fSecondParticleCut = a.fSecondParticleCut->Clone();
fPairCut = a.fPairCut->Clone();
if ( fEventCut ) {
SetEventCut(fEventCut);
cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - event cut set " << endl;
}
if ( fFirstParticleCut ) {
SetFirstParticleCut(fFirstParticleCut);
cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - first particle cut set " << endl;
}
if ( fSecondParticleCut ) {
SetSecondParticleCut(fSecondParticleCut);
cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - second particle cut set " << endl;
} if ( fPairCut ) {
SetPairCut(fPairCut);
cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - pair cut set " << endl;
}
AliFemtoCorrFctnIterator iter;
for (iter=a.fCorrFctnCollection->begin(); iter!=a.fCorrFctnCollection->end();iter++){
cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - looking for correlation functions " << endl;
AliFemtoCorrFctn* fctn = (*iter)->Clone();
if (fctn) AddCorrFctn(fctn);
else cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - correlation function not found " << endl;
}
fNumEventsToMix = a.fNumEventsToMix;
cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - analysis copied " << endl;
}
AliFemtoVertexAnalysis& AliFemtoVertexAnalysis::operator=(const AliFemtoVertexAnalysis& OriginalAnalysis)
{
if (this != &OriginalAnalysis) {
fEventCut = 0;
fFirstParticleCut = 0;
fSecondParticleCut = 0;
fPairCut = 0;
fCorrFctnCollection= 0;
fCorrFctnCollection = new AliFemtoCorrFctnCollection;
fVertexBins = OriginalAnalysis.fVertexBins;
fVertexZ[0] = OriginalAnalysis.fVertexZ[0];
fVertexZ[1] = OriginalAnalysis.fVertexZ[1];
fUnderFlow = 0;
fOverFlow = 0;
if (fMixingBuffer) delete fMixingBuffer;
fPicoEventCollectionVectorHideAway = new AliFemtoPicoEventCollectionVectorHideAway(fVertexBins,fVertexZ[0],fVertexZ[1]);
fEventCut = OriginalAnalysis.fEventCut->Clone();
fFirstParticleCut = OriginalAnalysis.fFirstParticleCut->Clone();
if (OriginalAnalysis.fFirstParticleCut==OriginalAnalysis.fSecondParticleCut)
SetSecondParticleCut(fFirstParticleCut);
else
fSecondParticleCut = OriginalAnalysis.fSecondParticleCut->Clone();
fPairCut = OriginalAnalysis.fPairCut->Clone();
if ( fEventCut ) {
SetEventCut(fEventCut);
cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - event cut set " << endl;
}
if ( fFirstParticleCut ) {
SetFirstParticleCut(fFirstParticleCut);
cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - first particle cut set " << endl;
}
if ( fSecondParticleCut ) {
SetSecondParticleCut(fSecondParticleCut);
cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - second particle cut set " << endl;
} if ( fPairCut ) {
SetPairCut(fPairCut);
cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - pair cut set " << endl;
}
AliFemtoCorrFctnIterator iter;
for (iter=OriginalAnalysis.fCorrFctnCollection->begin(); iter!=OriginalAnalysis.fCorrFctnCollection->end();iter++){
cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - looking for correlation functions " << endl;
AliFemtoCorrFctn* fctn = (*iter)->Clone();
if (fctn) AddCorrFctn(fctn);
else cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - correlation function not found " << endl;
}
fNumEventsToMix = OriginalAnalysis.fNumEventsToMix;
cout << " AliFemtoVertexAnalysis::AliFemtoVertexAnalysis(const AliFemtoVertexAnalysis& a) - analysis copied " << endl;
}
return *this;
}
AliFemtoVertexAnalysis::~AliFemtoVertexAnalysis(){
delete fPicoEventCollectionVectorHideAway;
}
AliFemtoString AliFemtoVertexAnalysis::Report()
{
cout << "AliFemtoVertexAnalysis - constructing Report..."<<endl;
char ctemp[200];
AliFemtoString temp = "-----------\nHbt AliFemtoVertexAnalysis Report:\n";
snprintf(ctemp , 200, "Events are mixed in %d bins in the range %E cm to %E cm.\n",fVertexBins,fVertexZ[0],fVertexZ[1]);
temp += ctemp;
snprintf(ctemp , 200, "Events underflowing: %d\n",fUnderFlow);
temp += ctemp;
snprintf(ctemp , 200, "Events overflowing: %d\n",fOverFlow);
temp += ctemp;
snprintf(ctemp , 200, "Now adding AliFemtoSimpleAnalysis(base) Report\n");
temp += ctemp;
temp += AliFemtoSimpleAnalysis::Report();
AliFemtoString returnThis=temp;
return returnThis;
}
void AliFemtoVertexAnalysis::ProcessEvent(const AliFemtoEvent* hbtEvent) {
cout << " AliFemtoVertexAnalysis::ProcessEvent(const AliFemtoEvent* hbtEvent) " << endl;
double vertexZ = hbtEvent->PrimVertPos().z();
fMixingBuffer = fPicoEventCollectionVectorHideAway->PicoEventCollection(vertexZ);
if (!fMixingBuffer) {
if ( vertexZ < fVertexZ[0] ) fUnderFlow++;
if ( vertexZ > fVertexZ[1] ) fOverFlow++;
return;
}
AliFemtoSimpleAnalysis::ProcessEvent(hbtEvent);
}
AliFemtoVertexAnalysis.cxx:1 AliFemtoVertexAnalysis.cxx:2 AliFemtoVertexAnalysis.cxx:3 AliFemtoVertexAnalysis.cxx:4 AliFemtoVertexAnalysis.cxx:5 AliFemtoVertexAnalysis.cxx:6 AliFemtoVertexAnalysis.cxx:7 AliFemtoVertexAnalysis.cxx:8 AliFemtoVertexAnalysis.cxx:9 AliFemtoVertexAnalysis.cxx:10 AliFemtoVertexAnalysis.cxx:11 AliFemtoVertexAnalysis.cxx:12 AliFemtoVertexAnalysis.cxx:13 AliFemtoVertexAnalysis.cxx:14 AliFemtoVertexAnalysis.cxx:15 AliFemtoVertexAnalysis.cxx:16 AliFemtoVertexAnalysis.cxx:17 AliFemtoVertexAnalysis.cxx:18 AliFemtoVertexAnalysis.cxx:19 AliFemtoVertexAnalysis.cxx:20 AliFemtoVertexAnalysis.cxx:21 AliFemtoVertexAnalysis.cxx:22 AliFemtoVertexAnalysis.cxx:23 AliFemtoVertexAnalysis.cxx:24 AliFemtoVertexAnalysis.cxx:25 AliFemtoVertexAnalysis.cxx:26 AliFemtoVertexAnalysis.cxx:27 AliFemtoVertexAnalysis.cxx:28 AliFemtoVertexAnalysis.cxx:29 AliFemtoVertexAnalysis.cxx:30 AliFemtoVertexAnalysis.cxx:31 AliFemtoVertexAnalysis.cxx:32 AliFemtoVertexAnalysis.cxx:33 AliFemtoVertexAnalysis.cxx:34 AliFemtoVertexAnalysis.cxx:35 AliFemtoVertexAnalysis.cxx:36 AliFemtoVertexAnalysis.cxx:37 AliFemtoVertexAnalysis.cxx:38 AliFemtoVertexAnalysis.cxx:39 AliFemtoVertexAnalysis.cxx:40 AliFemtoVertexAnalysis.cxx:41 AliFemtoVertexAnalysis.cxx:42 AliFemtoVertexAnalysis.cxx:43 AliFemtoVertexAnalysis.cxx:44 AliFemtoVertexAnalysis.cxx:45 AliFemtoVertexAnalysis.cxx:46 AliFemtoVertexAnalysis.cxx:47 AliFemtoVertexAnalysis.cxx:48 AliFemtoVertexAnalysis.cxx:49 AliFemtoVertexAnalysis.cxx:50 AliFemtoVertexAnalysis.cxx:51 AliFemtoVertexAnalysis.cxx:52 AliFemtoVertexAnalysis.cxx:53 AliFemtoVertexAnalysis.cxx:54 AliFemtoVertexAnalysis.cxx:55 AliFemtoVertexAnalysis.cxx:56 AliFemtoVertexAnalysis.cxx:57 AliFemtoVertexAnalysis.cxx:58 AliFemtoVertexAnalysis.cxx:59 AliFemtoVertexAnalysis.cxx:60 AliFemtoVertexAnalysis.cxx:61 AliFemtoVertexAnalysis.cxx:62 AliFemtoVertexAnalysis.cxx:63 AliFemtoVertexAnalysis.cxx:64 AliFemtoVertexAnalysis.cxx:65 AliFemtoVertexAnalysis.cxx:66 AliFemtoVertexAnalysis.cxx:67 AliFemtoVertexAnalysis.cxx:68 AliFemtoVertexAnalysis.cxx:69 AliFemtoVertexAnalysis.cxx:70 AliFemtoVertexAnalysis.cxx:71 AliFemtoVertexAnalysis.cxx:72 AliFemtoVertexAnalysis.cxx:73 AliFemtoVertexAnalysis.cxx:74 AliFemtoVertexAnalysis.cxx:75 AliFemtoVertexAnalysis.cxx:76 AliFemtoVertexAnalysis.cxx:77 AliFemtoVertexAnalysis.cxx:78 AliFemtoVertexAnalysis.cxx:79 AliFemtoVertexAnalysis.cxx:80 AliFemtoVertexAnalysis.cxx:81 AliFemtoVertexAnalysis.cxx:82 AliFemtoVertexAnalysis.cxx:83 AliFemtoVertexAnalysis.cxx:84 AliFemtoVertexAnalysis.cxx:85 AliFemtoVertexAnalysis.cxx:86 AliFemtoVertexAnalysis.cxx:87 AliFemtoVertexAnalysis.cxx:88 AliFemtoVertexAnalysis.cxx:89 AliFemtoVertexAnalysis.cxx:90 AliFemtoVertexAnalysis.cxx:91 AliFemtoVertexAnalysis.cxx:92 AliFemtoVertexAnalysis.cxx:93 AliFemtoVertexAnalysis.cxx:94 AliFemtoVertexAnalysis.cxx:95 AliFemtoVertexAnalysis.cxx:96 AliFemtoVertexAnalysis.cxx:97 AliFemtoVertexAnalysis.cxx:98 AliFemtoVertexAnalysis.cxx:99 AliFemtoVertexAnalysis.cxx:100 AliFemtoVertexAnalysis.cxx:101 AliFemtoVertexAnalysis.cxx:102 AliFemtoVertexAnalysis.cxx:103 AliFemtoVertexAnalysis.cxx:104 AliFemtoVertexAnalysis.cxx:105 AliFemtoVertexAnalysis.cxx:106 AliFemtoVertexAnalysis.cxx:107 AliFemtoVertexAnalysis.cxx:108 AliFemtoVertexAnalysis.cxx:109 AliFemtoVertexAnalysis.cxx:110 AliFemtoVertexAnalysis.cxx:111 AliFemtoVertexAnalysis.cxx:112 AliFemtoVertexAnalysis.cxx:113 AliFemtoVertexAnalysis.cxx:114 AliFemtoVertexAnalysis.cxx:115 AliFemtoVertexAnalysis.cxx:116 AliFemtoVertexAnalysis.cxx:117 AliFemtoVertexAnalysis.cxx:118 AliFemtoVertexAnalysis.cxx:119 AliFemtoVertexAnalysis.cxx:120 AliFemtoVertexAnalysis.cxx:121 AliFemtoVertexAnalysis.cxx:122 AliFemtoVertexAnalysis.cxx:123 AliFemtoVertexAnalysis.cxx:124 AliFemtoVertexAnalysis.cxx:125 AliFemtoVertexAnalysis.cxx:126 AliFemtoVertexAnalysis.cxx:127 AliFemtoVertexAnalysis.cxx:128 AliFemtoVertexAnalysis.cxx:129 AliFemtoVertexAnalysis.cxx:130 AliFemtoVertexAnalysis.cxx:131 AliFemtoVertexAnalysis.cxx:132 AliFemtoVertexAnalysis.cxx:133 AliFemtoVertexAnalysis.cxx:134 AliFemtoVertexAnalysis.cxx:135 AliFemtoVertexAnalysis.cxx:136 AliFemtoVertexAnalysis.cxx:137 AliFemtoVertexAnalysis.cxx:138 AliFemtoVertexAnalysis.cxx:139 AliFemtoVertexAnalysis.cxx:140 AliFemtoVertexAnalysis.cxx:141 AliFemtoVertexAnalysis.cxx:142 AliFemtoVertexAnalysis.cxx:143 AliFemtoVertexAnalysis.cxx:144 AliFemtoVertexAnalysis.cxx:145 AliFemtoVertexAnalysis.cxx:146 AliFemtoVertexAnalysis.cxx:147 AliFemtoVertexAnalysis.cxx:148 AliFemtoVertexAnalysis.cxx:149 AliFemtoVertexAnalysis.cxx:150 AliFemtoVertexAnalysis.cxx:151 AliFemtoVertexAnalysis.cxx:152 AliFemtoVertexAnalysis.cxx:153 AliFemtoVertexAnalysis.cxx:154 AliFemtoVertexAnalysis.cxx:155 AliFemtoVertexAnalysis.cxx:156 AliFemtoVertexAnalysis.cxx:157 AliFemtoVertexAnalysis.cxx:158 AliFemtoVertexAnalysis.cxx:159 AliFemtoVertexAnalysis.cxx:160 AliFemtoVertexAnalysis.cxx:161 AliFemtoVertexAnalysis.cxx:162 AliFemtoVertexAnalysis.cxx:163 AliFemtoVertexAnalysis.cxx:164 AliFemtoVertexAnalysis.cxx:165 AliFemtoVertexAnalysis.cxx:166 AliFemtoVertexAnalysis.cxx:167 AliFemtoVertexAnalysis.cxx:168 AliFemtoVertexAnalysis.cxx:169 AliFemtoVertexAnalysis.cxx:170 AliFemtoVertexAnalysis.cxx:171 AliFemtoVertexAnalysis.cxx:172 AliFemtoVertexAnalysis.cxx:173 AliFemtoVertexAnalysis.cxx:174 AliFemtoVertexAnalysis.cxx:175 AliFemtoVertexAnalysis.cxx:176 AliFemtoVertexAnalysis.cxx:177 AliFemtoVertexAnalysis.cxx:178 AliFemtoVertexAnalysis.cxx:179 AliFemtoVertexAnalysis.cxx:180 AliFemtoVertexAnalysis.cxx:181 AliFemtoVertexAnalysis.cxx:182 AliFemtoVertexAnalysis.cxx:183 AliFemtoVertexAnalysis.cxx:184 AliFemtoVertexAnalysis.cxx:185 AliFemtoVertexAnalysis.cxx:186 AliFemtoVertexAnalysis.cxx:187 AliFemtoVertexAnalysis.cxx:188 AliFemtoVertexAnalysis.cxx:189 AliFemtoVertexAnalysis.cxx:190 AliFemtoVertexAnalysis.cxx:191 AliFemtoVertexAnalysis.cxx:192 AliFemtoVertexAnalysis.cxx:193 AliFemtoVertexAnalysis.cxx:194 AliFemtoVertexAnalysis.cxx:195 AliFemtoVertexAnalysis.cxx:196 AliFemtoVertexAnalysis.cxx:197 AliFemtoVertexAnalysis.cxx:198 AliFemtoVertexAnalysis.cxx:199 AliFemtoVertexAnalysis.cxx:200 AliFemtoVertexAnalysis.cxx:201 AliFemtoVertexAnalysis.cxx:202 AliFemtoVertexAnalysis.cxx:203 AliFemtoVertexAnalysis.cxx:204 AliFemtoVertexAnalysis.cxx:205 AliFemtoVertexAnalysis.cxx:206 AliFemtoVertexAnalysis.cxx:207 AliFemtoVertexAnalysis.cxx:208 AliFemtoVertexAnalysis.cxx:209 AliFemtoVertexAnalysis.cxx:210 AliFemtoVertexAnalysis.cxx:211 AliFemtoVertexAnalysis.cxx:212 AliFemtoVertexAnalysis.cxx:213 AliFemtoVertexAnalysis.cxx:214 AliFemtoVertexAnalysis.cxx:215 AliFemtoVertexAnalysis.cxx:216 AliFemtoVertexAnalysis.cxx:217 AliFemtoVertexAnalysis.cxx:218 AliFemtoVertexAnalysis.cxx:219 AliFemtoVertexAnalysis.cxx:220 AliFemtoVertexAnalysis.cxx:221 AliFemtoVertexAnalysis.cxx:222 AliFemtoVertexAnalysis.cxx:223 AliFemtoVertexAnalysis.cxx:224 AliFemtoVertexAnalysis.cxx:225 AliFemtoVertexAnalysis.cxx:226 AliFemtoVertexAnalysis.cxx:227 AliFemtoVertexAnalysis.cxx:228 AliFemtoVertexAnalysis.cxx:229 AliFemtoVertexAnalysis.cxx:230 AliFemtoVertexAnalysis.cxx:231 AliFemtoVertexAnalysis.cxx:232 AliFemtoVertexAnalysis.cxx:233 AliFemtoVertexAnalysis.cxx:234 AliFemtoVertexAnalysis.cxx:235 AliFemtoVertexAnalysis.cxx:236 AliFemtoVertexAnalysis.cxx:237 AliFemtoVertexAnalysis.cxx:238 AliFemtoVertexAnalysis.cxx:239 AliFemtoVertexAnalysis.cxx:240 AliFemtoVertexAnalysis.cxx:241 AliFemtoVertexAnalysis.cxx:242 AliFemtoVertexAnalysis.cxx:243 AliFemtoVertexAnalysis.cxx:244 AliFemtoVertexAnalysis.cxx:245 AliFemtoVertexAnalysis.cxx:246 AliFemtoVertexAnalysis.cxx:247 AliFemtoVertexAnalysis.cxx:248 AliFemtoVertexAnalysis.cxx:249 AliFemtoVertexAnalysis.cxx:250 AliFemtoVertexAnalysis.cxx:251 AliFemtoVertexAnalysis.cxx:252 AliFemtoVertexAnalysis.cxx:253 AliFemtoVertexAnalysis.cxx:254 AliFemtoVertexAnalysis.cxx:255 AliFemtoVertexAnalysis.cxx:256 AliFemtoVertexAnalysis.cxx:257 AliFemtoVertexAnalysis.cxx:258 AliFemtoVertexAnalysis.cxx:259 AliFemtoVertexAnalysis.cxx:260 AliFemtoVertexAnalysis.cxx:261 AliFemtoVertexAnalysis.cxx:262 AliFemtoVertexAnalysis.cxx:263 AliFemtoVertexAnalysis.cxx:264