#include "AliFemtoCutMonitorParticlePID.h"
#include "AliFemtoModelHiddenInfo.h"
#include <TH1D.h>
#include <TH2D.h>
#include <TList.h>
#include <TMath.h>
AliFemtoCutMonitorParticlePID::AliFemtoCutMonitorParticlePID():
fTPCdEdx(0),
fTOFParticle(0),
fTOFTime(0x0),
fTOFNSigma(0),
fTPCNSigma(0),
fTPCTOFNSigma(0),
fTPCvsTOFNSigma(0),
fParticleOrigin(0),
fParticleId(0)
{
fTPCdEdx = new TH2D("TPCdEdx", "TPC dEdx vs. momentum", 100, 0.0, 5.0, 250, 0.0, 500.0);
fTOFTime = new TH2D("TOFTime", "TOF Time vs. momentum", 100, 0.1, 5.0, 400, -4000.0, 4000.0);
fTOFNSigma = new TH2D("TOFNSigma","TOF NSigma vs. momentum", 100, 0.0, 5.0, 100, -5.0, 5.0);
fTPCNSigma = new TH2D("TPCNSigma","TPC NSigma vs. momentum", 100, 0.0, 5.0, 100, -5.0, 5.0);
fTPCTOFNSigma = new TH2D("TPCTOFNSigma","TPC & TOF NSigma vs. momentum", 100, 0.0, 5.0, 100, 0.0, 10.0);
fTPCvsTOFNSigma = new TH2D("TPCvsTOFNSigma","TPC vs TOF Nsigma",100, -5.0, 5.0, 100, -5.0, 5.0);
fParticleOrigin = new TH1D("POrigin", "Mothers PDG Codes", 6000, 0.0, 6000.0);
fParticleId = new TH1D("PId", "Particle PDG Codes", 6000, 0.0, 6000.0);
}
AliFemtoCutMonitorParticlePID::AliFemtoCutMonitorParticlePID(const char *aName, Int_t aTOFParticle):
AliFemtoCutMonitor(),
fTPCdEdx(0),
fTOFParticle(aTOFParticle),
fTOFTime(0x0),
fTOFNSigma(0),
fTPCNSigma(0),
fTPCTOFNSigma(0),
fTPCvsTOFNSigma(0),
fParticleOrigin(0),
fParticleId(0)
{
char name[200];
snprintf(name, 200, "TPCdEdx%s", aName);
fTPCdEdx = new TH2D(name, "TPC dEdx vs. momentum", 200, 0.1, 4.0, 250, 0.0, 500.0);
snprintf(name, 200, "TOFTime%s", aName);
fTOFTime = new TH2D(name, "TOF Time vs. momentum", 100, 0.1, 5.0, 400, -4000.0, 4000.0);
snprintf(name, 200, "TOFNSigma%s", aName);
fTOFNSigma = new TH2D(name,"TOF NSigma vs. momentum", 100, 0.0, 5.0, 100, -5.0, 5.0);
snprintf(name, 200, "TPCNSigma%s", aName);
fTPCNSigma = new TH2D(name,"TPC NSigma vs. momentum", 100, 0.0, 5.0, 100, -5.0, 5.0);
snprintf(name, 200, "TPCTOFNSigma%s", aName);
fTPCTOFNSigma = new TH2D(name,"TPC & TOF NSigma vs. momentum", 100, 0.0, 5.0, 100, 0.0, 10.0);
snprintf(name, 200, "TPCvsTOFNSigma%s", aName);
fTPCvsTOFNSigma = new TH2D(name,"TPC vs TOF Nsigma",100, -5.0, 5.0, 100, -5.0, 5.0);
snprintf(name, 200, "POrigin%s", aName);
fParticleOrigin = new TH1D(name, "Mothers PDG Codes", 6000, 0.0, 6000.0);
snprintf(name, 200, "PId%s", aName);
fParticleId = new TH1D(name, "Particle PDG Codes", 6000, 0.0, 6000.0);
}
AliFemtoCutMonitorParticlePID::AliFemtoCutMonitorParticlePID(const AliFemtoCutMonitorParticlePID &aCut):
AliFemtoCutMonitor(),
fTPCdEdx(0),
fTOFParticle(0),
fTOFTime(0x0),
fTOFNSigma(0),
fTPCNSigma(0),
fTPCTOFNSigma(0),
fTPCvsTOFNSigma(0),
fParticleOrigin(0),
fParticleId(0)
{
if (fTPCdEdx) delete fTPCdEdx;
fTPCdEdx = new TH2D(*aCut.fTPCdEdx);
if (fTOFTime) delete fTOFTime;
fTOFTime = new TH2D(*aCut.fTOFTime);
if (fTOFNSigma) delete fTOFNSigma;
fTOFNSigma= new TH2D(*aCut.fTOFNSigma);
if (fTPCNSigma) delete fTPCNSigma;
fTPCNSigma= new TH2D(*aCut.fTPCNSigma);
if (fTPCTOFNSigma) delete fTPCTOFNSigma;
fTPCTOFNSigma= new TH2D(*aCut.fTPCTOFNSigma);
if (fParticleOrigin) delete fParticleOrigin;
fParticleOrigin= new TH1D(*aCut.fParticleOrigin);
if (fParticleId) delete fParticleId;
fParticleId= new TH1D(*aCut.fParticleId);
}
AliFemtoCutMonitorParticlePID::~AliFemtoCutMonitorParticlePID()
{
delete fTPCdEdx;
delete fTOFTime;
delete fTOFNSigma;
delete fTPCNSigma;
delete fTPCTOFNSigma;
delete fTPCvsTOFNSigma;
delete fParticleOrigin;
delete fParticleId;
}
AliFemtoCutMonitorParticlePID& AliFemtoCutMonitorParticlePID::operator=(const AliFemtoCutMonitorParticlePID& aCut)
{
if (this == &aCut)
return *this;
if (fTPCdEdx) delete fTPCdEdx;
fTPCdEdx = new TH2D(*aCut.fTPCdEdx);
if (fTOFTime) delete fTOFTime;
fTOFTime = new TH2D(*aCut.fTOFTime);
if(fTOFNSigma) delete fTOFNSigma;
fTOFNSigma = new TH2D(*aCut.fTOFNSigma);
if(fTPCNSigma) delete fTPCNSigma;
fTPCNSigma = new TH2D(*aCut.fTPCNSigma);
if(fTPCTOFNSigma) delete fTPCTOFNSigma;
fTPCTOFNSigma = new TH2D(*aCut.fTPCTOFNSigma);
if(fTPCvsTOFNSigma) delete fTPCvsTOFNSigma;
fTPCvsTOFNSigma = new TH2D(*aCut.fTPCvsTOFNSigma);
if (fParticleOrigin) delete fParticleOrigin;
fParticleOrigin= new TH1D(*aCut.fParticleOrigin);
if (fParticleId) delete fParticleId;
fParticleId= new TH1D(*aCut.fParticleId);
return *this;
}
AliFemtoString AliFemtoCutMonitorParticlePID::Report(){
string stemp = "*** AliFemtoCutMonitorParticlePID report";
AliFemtoString returnThis = stemp;
return returnThis;
}
void AliFemtoCutMonitorParticlePID::Fill(const AliFemtoTrack* aTrack)
{
float tMom = aTrack->P().Mag();
float tdEdx = aTrack->TPCsignal();
float tTOF = 0.0;
if (fTOFParticle == 0) tTOF = aTrack->TOFpionTime();
if (fTOFParticle == 1) tTOF = aTrack->TOFkaonTime();
if (fTOFParticle == 2) tTOF = aTrack->TOFprotonTime();
fTPCdEdx->Fill(tMom, tdEdx);
fTOFTime->Fill(tMom, tTOF);
AliFemtoModelHiddenInfo *tInfo = (AliFemtoModelHiddenInfo*)aTrack->GetHiddenInfo();
if(tInfo!=NULL) {
Int_t partID = TMath::Abs(tInfo->GetPDGPid());
Int_t motherID = TMath::Abs(tInfo->GetMotherPdgCode());
fParticleId->Fill(partID);
fParticleOrigin->Fill(motherID);
}
if (fTOFParticle == 0) fTOFNSigma->Fill(tMom, aTrack->NSigmaTOFPi());
if (fTOFParticle == 1) fTOFNSigma->Fill(tMom, aTrack->NSigmaTOFK());
if (fTOFParticle == 2) fTOFNSigma->Fill(tMom, aTrack->NSigmaTOFP());
if (fTOFParticle == 0) fTPCNSigma->Fill(tMom, aTrack->NSigmaTPCPi());
if (fTOFParticle == 1) fTPCNSigma->Fill(tMom, aTrack->NSigmaTPCK());
if (fTOFParticle == 2) fTPCNSigma->Fill(tMom, aTrack->NSigmaTPCP());
if (fTOFParticle == 0) fTPCTOFNSigma->Fill(tMom, TMath::Hypot( aTrack->NSigmaTPCPi(), aTrack->NSigmaTOFPi() ) );
if (fTOFParticle == 1) fTPCTOFNSigma->Fill(tMom, TMath::Hypot( aTrack->NSigmaTPCK(), aTrack->NSigmaTOFK() ) );
if (fTOFParticle == 2) fTPCTOFNSigma->Fill(tMom, TMath::Hypot( aTrack->NSigmaTPCP(), aTrack->NSigmaTOFP() ) );
if (fTOFParticle == 0) fTPCvsTOFNSigma->Fill(aTrack->NSigmaTPCPi(), aTrack->NSigmaTOFPi());
if (fTOFParticle == 1) fTPCvsTOFNSigma->Fill(aTrack->NSigmaTPCK(), aTrack->NSigmaTOFK());
if (fTOFParticle == 2) fTPCvsTOFNSigma->Fill(aTrack->NSigmaTPCP(), aTrack->NSigmaTOFP());
}
void AliFemtoCutMonitorParticlePID::Write()
{
fTPCdEdx->Write();
fTOFTime->Write();
fTOFNSigma->Write();
fTPCNSigma->Write();
fTPCTOFNSigma->Write();
fTPCvsTOFNSigma->Write();
fParticleId->Write();
fParticleOrigin->Write();
}
TList *AliFemtoCutMonitorParticlePID::GetOutputList()
{
TList *tOutputList = new TList();
tOutputList->Add(fTPCdEdx);
tOutputList->Add(fTOFTime);
tOutputList->Add(fTOFNSigma);
tOutputList->Add(fTPCNSigma);
tOutputList->Add(fTPCTOFNSigma);
tOutputList->Add(fTPCvsTOFNSigma);
tOutputList->Add(fParticleId);
tOutputList->Add(fParticleOrigin);
return tOutputList;
}
AliFemtoCutMonitorParticlePID.cxx:1 AliFemtoCutMonitorParticlePID.cxx:2 AliFemtoCutMonitorParticlePID.cxx:3 AliFemtoCutMonitorParticlePID.cxx:4 AliFemtoCutMonitorParticlePID.cxx:5 AliFemtoCutMonitorParticlePID.cxx:6 AliFemtoCutMonitorParticlePID.cxx:7 AliFemtoCutMonitorParticlePID.cxx:8 AliFemtoCutMonitorParticlePID.cxx:9 AliFemtoCutMonitorParticlePID.cxx:10 AliFemtoCutMonitorParticlePID.cxx:11 AliFemtoCutMonitorParticlePID.cxx:12 AliFemtoCutMonitorParticlePID.cxx:13 AliFemtoCutMonitorParticlePID.cxx:14 AliFemtoCutMonitorParticlePID.cxx:15 AliFemtoCutMonitorParticlePID.cxx:16 AliFemtoCutMonitorParticlePID.cxx:17 AliFemtoCutMonitorParticlePID.cxx:18 AliFemtoCutMonitorParticlePID.cxx:19 AliFemtoCutMonitorParticlePID.cxx:20 AliFemtoCutMonitorParticlePID.cxx:21 AliFemtoCutMonitorParticlePID.cxx:22 AliFemtoCutMonitorParticlePID.cxx:23 AliFemtoCutMonitorParticlePID.cxx:24 AliFemtoCutMonitorParticlePID.cxx:25 AliFemtoCutMonitorParticlePID.cxx:26 AliFemtoCutMonitorParticlePID.cxx:27 AliFemtoCutMonitorParticlePID.cxx:28 AliFemtoCutMonitorParticlePID.cxx:29 AliFemtoCutMonitorParticlePID.cxx:30 AliFemtoCutMonitorParticlePID.cxx:31 AliFemtoCutMonitorParticlePID.cxx:32 AliFemtoCutMonitorParticlePID.cxx:33 AliFemtoCutMonitorParticlePID.cxx:34 AliFemtoCutMonitorParticlePID.cxx:35 AliFemtoCutMonitorParticlePID.cxx:36 AliFemtoCutMonitorParticlePID.cxx:37 AliFemtoCutMonitorParticlePID.cxx:38 AliFemtoCutMonitorParticlePID.cxx:39 AliFemtoCutMonitorParticlePID.cxx:40 AliFemtoCutMonitorParticlePID.cxx:41 AliFemtoCutMonitorParticlePID.cxx:42 AliFemtoCutMonitorParticlePID.cxx:43 AliFemtoCutMonitorParticlePID.cxx:44 AliFemtoCutMonitorParticlePID.cxx:45 AliFemtoCutMonitorParticlePID.cxx:46 AliFemtoCutMonitorParticlePID.cxx:47 AliFemtoCutMonitorParticlePID.cxx:48 AliFemtoCutMonitorParticlePID.cxx:49 AliFemtoCutMonitorParticlePID.cxx:50 AliFemtoCutMonitorParticlePID.cxx:51 AliFemtoCutMonitorParticlePID.cxx:52 AliFemtoCutMonitorParticlePID.cxx:53 AliFemtoCutMonitorParticlePID.cxx:54 AliFemtoCutMonitorParticlePID.cxx:55 AliFemtoCutMonitorParticlePID.cxx:56 AliFemtoCutMonitorParticlePID.cxx:57 AliFemtoCutMonitorParticlePID.cxx:58 AliFemtoCutMonitorParticlePID.cxx:59 AliFemtoCutMonitorParticlePID.cxx:60 AliFemtoCutMonitorParticlePID.cxx:61 AliFemtoCutMonitorParticlePID.cxx:62 AliFemtoCutMonitorParticlePID.cxx:63 AliFemtoCutMonitorParticlePID.cxx:64 AliFemtoCutMonitorParticlePID.cxx:65 AliFemtoCutMonitorParticlePID.cxx:66 AliFemtoCutMonitorParticlePID.cxx:67 AliFemtoCutMonitorParticlePID.cxx:68 AliFemtoCutMonitorParticlePID.cxx:69 AliFemtoCutMonitorParticlePID.cxx:70 AliFemtoCutMonitorParticlePID.cxx:71 AliFemtoCutMonitorParticlePID.cxx:72 AliFemtoCutMonitorParticlePID.cxx:73 AliFemtoCutMonitorParticlePID.cxx:74 AliFemtoCutMonitorParticlePID.cxx:75 AliFemtoCutMonitorParticlePID.cxx:76 AliFemtoCutMonitorParticlePID.cxx:77 AliFemtoCutMonitorParticlePID.cxx:78 AliFemtoCutMonitorParticlePID.cxx:79 AliFemtoCutMonitorParticlePID.cxx:80 AliFemtoCutMonitorParticlePID.cxx:81 AliFemtoCutMonitorParticlePID.cxx:82 AliFemtoCutMonitorParticlePID.cxx:83 AliFemtoCutMonitorParticlePID.cxx:84 AliFemtoCutMonitorParticlePID.cxx:85 AliFemtoCutMonitorParticlePID.cxx:86 AliFemtoCutMonitorParticlePID.cxx:87 AliFemtoCutMonitorParticlePID.cxx:88 AliFemtoCutMonitorParticlePID.cxx:89 AliFemtoCutMonitorParticlePID.cxx:90 AliFemtoCutMonitorParticlePID.cxx:91 AliFemtoCutMonitorParticlePID.cxx:92 AliFemtoCutMonitorParticlePID.cxx:93 AliFemtoCutMonitorParticlePID.cxx:94 AliFemtoCutMonitorParticlePID.cxx:95 AliFemtoCutMonitorParticlePID.cxx:96 AliFemtoCutMonitorParticlePID.cxx:97 AliFemtoCutMonitorParticlePID.cxx:98 AliFemtoCutMonitorParticlePID.cxx:99 AliFemtoCutMonitorParticlePID.cxx:100 AliFemtoCutMonitorParticlePID.cxx:101 AliFemtoCutMonitorParticlePID.cxx:102 AliFemtoCutMonitorParticlePID.cxx:103 AliFemtoCutMonitorParticlePID.cxx:104 AliFemtoCutMonitorParticlePID.cxx:105 AliFemtoCutMonitorParticlePID.cxx:106 AliFemtoCutMonitorParticlePID.cxx:107 AliFemtoCutMonitorParticlePID.cxx:108 AliFemtoCutMonitorParticlePID.cxx:109 AliFemtoCutMonitorParticlePID.cxx:110 AliFemtoCutMonitorParticlePID.cxx:111 AliFemtoCutMonitorParticlePID.cxx:112 AliFemtoCutMonitorParticlePID.cxx:113 AliFemtoCutMonitorParticlePID.cxx:114 AliFemtoCutMonitorParticlePID.cxx:115 AliFemtoCutMonitorParticlePID.cxx:116 AliFemtoCutMonitorParticlePID.cxx:117 AliFemtoCutMonitorParticlePID.cxx:118 AliFemtoCutMonitorParticlePID.cxx:119 AliFemtoCutMonitorParticlePID.cxx:120 AliFemtoCutMonitorParticlePID.cxx:121 AliFemtoCutMonitorParticlePID.cxx:122 AliFemtoCutMonitorParticlePID.cxx:123 AliFemtoCutMonitorParticlePID.cxx:124 AliFemtoCutMonitorParticlePID.cxx:125 AliFemtoCutMonitorParticlePID.cxx:126 AliFemtoCutMonitorParticlePID.cxx:127 AliFemtoCutMonitorParticlePID.cxx:128 AliFemtoCutMonitorParticlePID.cxx:129 AliFemtoCutMonitorParticlePID.cxx:130 AliFemtoCutMonitorParticlePID.cxx:131 AliFemtoCutMonitorParticlePID.cxx:132 AliFemtoCutMonitorParticlePID.cxx:133 AliFemtoCutMonitorParticlePID.cxx:134 AliFemtoCutMonitorParticlePID.cxx:135 AliFemtoCutMonitorParticlePID.cxx:136 AliFemtoCutMonitorParticlePID.cxx:137 AliFemtoCutMonitorParticlePID.cxx:138 AliFemtoCutMonitorParticlePID.cxx:139 AliFemtoCutMonitorParticlePID.cxx:140 AliFemtoCutMonitorParticlePID.cxx:141 AliFemtoCutMonitorParticlePID.cxx:142 AliFemtoCutMonitorParticlePID.cxx:143 AliFemtoCutMonitorParticlePID.cxx:144 AliFemtoCutMonitorParticlePID.cxx:145 AliFemtoCutMonitorParticlePID.cxx:146 AliFemtoCutMonitorParticlePID.cxx:147 AliFemtoCutMonitorParticlePID.cxx:148 AliFemtoCutMonitorParticlePID.cxx:149 AliFemtoCutMonitorParticlePID.cxx:150 AliFemtoCutMonitorParticlePID.cxx:151 AliFemtoCutMonitorParticlePID.cxx:152 AliFemtoCutMonitorParticlePID.cxx:153 AliFemtoCutMonitorParticlePID.cxx:154 AliFemtoCutMonitorParticlePID.cxx:155 AliFemtoCutMonitorParticlePID.cxx:156 AliFemtoCutMonitorParticlePID.cxx:157 AliFemtoCutMonitorParticlePID.cxx:158 AliFemtoCutMonitorParticlePID.cxx:159 AliFemtoCutMonitorParticlePID.cxx:160 AliFemtoCutMonitorParticlePID.cxx:161 AliFemtoCutMonitorParticlePID.cxx:162 AliFemtoCutMonitorParticlePID.cxx:163 AliFemtoCutMonitorParticlePID.cxx:164 AliFemtoCutMonitorParticlePID.cxx:165 AliFemtoCutMonitorParticlePID.cxx:166 AliFemtoCutMonitorParticlePID.cxx:167 AliFemtoCutMonitorParticlePID.cxx:168 AliFemtoCutMonitorParticlePID.cxx:169 AliFemtoCutMonitorParticlePID.cxx:170 AliFemtoCutMonitorParticlePID.cxx:171 AliFemtoCutMonitorParticlePID.cxx:172 AliFemtoCutMonitorParticlePID.cxx:173 AliFemtoCutMonitorParticlePID.cxx:174 AliFemtoCutMonitorParticlePID.cxx:175 AliFemtoCutMonitorParticlePID.cxx:176 AliFemtoCutMonitorParticlePID.cxx:177 AliFemtoCutMonitorParticlePID.cxx:178 AliFemtoCutMonitorParticlePID.cxx:179 AliFemtoCutMonitorParticlePID.cxx:180 AliFemtoCutMonitorParticlePID.cxx:181 AliFemtoCutMonitorParticlePID.cxx:182 AliFemtoCutMonitorParticlePID.cxx:183 AliFemtoCutMonitorParticlePID.cxx:184 AliFemtoCutMonitorParticlePID.cxx:185 AliFemtoCutMonitorParticlePID.cxx:186 AliFemtoCutMonitorParticlePID.cxx:187 AliFemtoCutMonitorParticlePID.cxx:188 AliFemtoCutMonitorParticlePID.cxx:189 AliFemtoCutMonitorParticlePID.cxx:190 AliFemtoCutMonitorParticlePID.cxx:191 AliFemtoCutMonitorParticlePID.cxx:192 AliFemtoCutMonitorParticlePID.cxx:193 AliFemtoCutMonitorParticlePID.cxx:194 AliFemtoCutMonitorParticlePID.cxx:195 AliFemtoCutMonitorParticlePID.cxx:196 AliFemtoCutMonitorParticlePID.cxx:197 AliFemtoCutMonitorParticlePID.cxx:198 AliFemtoCutMonitorParticlePID.cxx:199 AliFemtoCutMonitorParticlePID.cxx:200 AliFemtoCutMonitorParticlePID.cxx:201 AliFemtoCutMonitorParticlePID.cxx:202 AliFemtoCutMonitorParticlePID.cxx:203 AliFemtoCutMonitorParticlePID.cxx:204 AliFemtoCutMonitorParticlePID.cxx:205 AliFemtoCutMonitorParticlePID.cxx:206 AliFemtoCutMonitorParticlePID.cxx:207 AliFemtoCutMonitorParticlePID.cxx:208 AliFemtoCutMonitorParticlePID.cxx:209 AliFemtoCutMonitorParticlePID.cxx:210 AliFemtoCutMonitorParticlePID.cxx:211 AliFemtoCutMonitorParticlePID.cxx:212 AliFemtoCutMonitorParticlePID.cxx:213 AliFemtoCutMonitorParticlePID.cxx:214 AliFemtoCutMonitorParticlePID.cxx:215 AliFemtoCutMonitorParticlePID.cxx:216 AliFemtoCutMonitorParticlePID.cxx:217 AliFemtoCutMonitorParticlePID.cxx:218 AliFemtoCutMonitorParticlePID.cxx:219 AliFemtoCutMonitorParticlePID.cxx:220 AliFemtoCutMonitorParticlePID.cxx:221 AliFemtoCutMonitorParticlePID.cxx:222 AliFemtoCutMonitorParticlePID.cxx:223 AliFemtoCutMonitorParticlePID.cxx:224 AliFemtoCutMonitorParticlePID.cxx:225 AliFemtoCutMonitorParticlePID.cxx:226 AliFemtoCutMonitorParticlePID.cxx:227 AliFemtoCutMonitorParticlePID.cxx:228 AliFemtoCutMonitorParticlePID.cxx:229 AliFemtoCutMonitorParticlePID.cxx:230 AliFemtoCutMonitorParticlePID.cxx:231 AliFemtoCutMonitorParticlePID.cxx:232 AliFemtoCutMonitorParticlePID.cxx:233 AliFemtoCutMonitorParticlePID.cxx:234 AliFemtoCutMonitorParticlePID.cxx:235 AliFemtoCutMonitorParticlePID.cxx:236 AliFemtoCutMonitorParticlePID.cxx:237 AliFemtoCutMonitorParticlePID.cxx:238 AliFemtoCutMonitorParticlePID.cxx:239 AliFemtoCutMonitorParticlePID.cxx:240 AliFemtoCutMonitorParticlePID.cxx:241 AliFemtoCutMonitorParticlePID.cxx:242