#include <TBits.h>
#include <TString.h>
#include <TArrayI.h>
-#include <TTree.h>
#include "AliAnalysisManager.h"
#include "AliCentrality.h"
#include "AliAODTrack.h"
#include "AliAODEvent.h"
+#include "AliAODPid.h"
#include "AliHFEcuts.h"
#include "AliHFEextraCuts.h"
#include "AliInputEventHandler.h"
fNclustersTPCPID(0),
fNclustersITS(2),
fFilename("HFEtree.root"),
- fDebugstream(kFALSE),
- fDebugTree(NULL),
- fDebugTreee(NULL),
- fCentrality(-1.),
- fRun(-1),
- fDoublec(0),
- fMomentum(0.),
- fMomentumTPC(0.),
- fTransverseMomentum(0.),
- fEta(0.),
- fPhi(0.),
- fCharge(-1),
- fNClustersTPCall(0),
- fNClustersTPCPID(0),
- fNClustersTPCshared(0),
- fNCrossedRowsTPC(0),
- fClusterRatioTPCall(0.),
- fNClustersITS(0),
- fStatusL0(-1),
- fStatusL1(-1),
- fSigmaTOF(0.),
- fSigmaTPC(0.),
- fDcaxy(0.),
- fDcaz(0.),
- fFilter2(0),
- fFilter4(0),
- fSource(-1),
- fEr(0.0),
- fSignal(0.)
+ fDebugTree(NULL)
{
}
fNclustersTPCPID(0),
fNclustersITS(2),
fFilename("HFEtree.root"),
- fDebugstream(kFALSE),
- fDebugTree(NULL),
- fDebugTreee(NULL),
- fCentrality(-1.),
- fRun(-1),
- fDoublec(0),
- fMomentum(0.),
- fMomentumTPC(0.),
- fTransverseMomentum(0.),
- fEta(0.),
- fPhi(0.),
- fCharge(-1),
- fNClustersTPCall(0),
- fNClustersTPCPID(0),
- fNClustersTPCshared(0),
- fNCrossedRowsTPC(0),
- fClusterRatioTPCall(0.),
- fNClustersITS(0),
- fStatusL0(-1),
- fStatusL1(-1),
- fSigmaTOF(0.),
- fSigmaTPC(0.),
- fDcaxy(0.),
- fDcaz(0.),
- fFilter2(0),
- fFilter4(0),
- fSource(-1),
- fEr(0.0),
- fSignal(0.)
+ fDebugTree(NULL)
{
fTPCpid = new AliHFEpidTPC("QAtpcPID");
- DefineOutput(1, TTree::Class());
}
AliHFEdebugTreeTaskAOD::~AliHFEdebugTreeTaskAOD(){
if(fDebugTree) delete fDebugTree;
if(fTPCpid) delete fTPCpid;
- //if(fDebugTreee) delete fDebugTreee;
}
void AliHFEdebugTreeTaskAOD::UserCreateOutputObjects(){
//
//printf("test\n");
- if(fDebugstream) {
- fDebugTree = new TTreeSRedirector(fFilename.Data());
- }
- else {
- // other possibility
- fDebugTreee = new TTree("PIDdebug","PIDdebug");
- fDebugTreee->Branch("centrality",&fRun);
- fDebugTreee->Branch("run",&fDoublec);
- fDebugTreee->Branch("p",&fMomentum);
- fDebugTreee->Branch("ptpc",&fMomentumTPC);
- fDebugTreee->Branch("pt",&fTransverseMomentum);
- fDebugTreee->Branch("eta",&fEta);
- fDebugTreee->Branch("phi",&fPhi);
- fDebugTreee->Branch("charge",&fCharge);
- fDebugTreee->Branch("nclustersTPCall",&fNClustersTPCall);
- fDebugTreee->Branch("nclustersTPCPID",&fNClustersTPCPID);
- fDebugTreee->Branch("nclustersTPCshared",&fNClustersTPCshared);
- fDebugTreee->Branch("nCrossedRowsTPC",&fNCrossedRowsTPC);
- fDebugTreee->Branch("clusterRatioTPCall",&fClusterRatioTPCall);
- fDebugTreee->Branch("nclustersITS",&fNClustersITS);
- fDebugTreee->Branch("statusL0",&fStatusL0);
- fDebugTreee->Branch("statusL1",&fStatusL1);
- fDebugTreee->Branch("sigmaTOF",&fSigmaTOF);
- fDebugTreee->Branch("sigmaTPC",&fSigmaTPC);
- fDebugTreee->Branch("dcaxy",&fDcaxy);
- fDebugTreee->Branch("dcaz",&fDcaz);
- fDebugTreee->Branch("filter2",&fFilter2);
- fDebugTreee->Branch("filter4",&fFilter4);
- fDebugTreee->Branch("source",&fSource);
- fDebugTreee->Branch("eR",&fEr);
- fDebugTreee->Branch("signal",&fSignal);
- PostData(1,fDebugTreee);
- }
+ fDebugTree = new TTreeSRedirector(fFilename.Data());
// printf("testa\n");
fSignalCuts = new AliHFEsignalCuts("HFEsignalCuts", "HFE MC Signal definition");
return;
}
+ AliAODTrack copyTrack;
+
// MC info
Bool_t mcthere = kTRUE;
AliAODEvent *aodE = dynamic_cast<AliAODEvent *>(fInputEvent);
}
fExtraCuts->SetRecEventInfo(fInputEvent);
+
+
+
// Get run number
- fRun = fInputEvent->GetRunNumber();
-
+ Int_t run = fInputEvent->GetRunNumber();
+
// Derive trigger
UInt_t trigger = fInputHandler->IsEventSelected();
Bool_t isMBTrigger = trigger & AliVEvent::kMB;
Double_t ncontrib = fInputEvent->GetPrimaryVertex()->GetNContributors();
// Get centrality
- fCentrality = -1.;
+ Float_t centrality = -1.;
AliCentrality *hicent = fInputEvent->GetCentrality();
- fCentrality = hicent->GetCentralityPercentile("V0M");
-
+ centrality = hicent->GetCentralityPercentile("V0M");
+
+ // Store event selection variables
+ (*fDebugTree) << "EventDebug"
+ << "Centrality=" << centrality
+ << "VertexZ=" << vtx[2]
+ << "NumberOfContributors=" << ncontrib
+ << "run=" << run
+ << "\n";
+
+
// Look for kink mother
Int_t numberofvertices = aodE->GetNumberOfVertices();
}
}
//printf("Number of kink mother in the events %d\n",numberofmotherkink);
+
+ //
+ // Loop on MC tracks only
+ //
+ AliAODMCParticle *mctrack = NULL;
+ // Monte-Carlo info
+ Double_t eR,vx,vy,vz;
+ Double_t chargemc, etamc, phimc, momentummc, transversemomentummc;
+ Int_t source,pdg,signal;
+ if(mcthere) {
+ for(Int_t itrack = 0; itrack < fAODArrayMCInfo->GetEntriesFast(); itrack++) {
+ mctrack = (AliAODMCParticle *)(fAODArrayMCInfo->At(itrack));
+ if(!mctrack) continue;
+ signal = 0;
+ if(fTrackCuts->CheckParticleCuts(static_cast<UInt_t>(AliHFEcuts::kStepMCGenerated), mctrack)) signal = 1;
+ // Kinematics
+ chargemc = mctrack->Charge() > 0. ? 1. : -1.;
+ momentummc = mctrack->P() * chargemc;
+ transversemomentummc = mctrack->Pt() * chargemc;
+ etamc = mctrack->Eta();
+ phimc = mctrack->Phi();
+ pdg = mctrack->GetPdgCode();
+
+ // Get Production Vertex in radial direction
+ vx = mctrack->Xv();
+ vy = mctrack->Yv();
+ vz = mctrack->Zv();
+ eR = TMath::Sqrt(vx*vx+vy*vy);
+
+ // Get Mother PDG code of the particle
+ Int_t motherPdg = 0;
+ Int_t motherlabel = TMath::Abs(mctrack->GetMother());
+ if(motherlabel >= 0 && motherlabel < fAODArrayMCInfo->GetEntriesFast()){
+ AliAODMCParticle *mother = dynamic_cast<AliAODMCParticle *>(fAODArrayMCInfo->At(motherlabel));
+ if(mother) motherPdg = mother->GetPdgCode();
+ }
+
+ // derive source
+ source = 5;
+ if(fSignalCuts->IsCharmElectron(mctrack)) source = 0;
+ else if(fSignalCuts->IsBeautyElectron(mctrack)) source = 1;
+ else if(fSignalCuts->IsGammaElectron(mctrack)) source = 2;
+ else if(fSignalCuts->IsNonHFElectron(mctrack)) source = 3;
+ else if(TMath::Abs(pdg) == 11) source = 4;
+ else source = 5;
+
+ (*fDebugTree) << "MCDebug"
+ << "centrality=" << centrality
+ << "MBtrigger=" << isMBTrigger
+ << "CentralTrigger=" << isCentralTrigger
+ << "SemicentralTrigger=" << isSemicentralTrigger
+ << "EMCALtrigger=" << isEMCALTrigger
+ << "run=" << run
+ << "p=" << momentummc
+ << "pt=" << transversemomentummc
+ << "eta=" << etamc
+ << "phi=" << phimc
+ << "pdg=" << pdg
+ << "px=" << vx
+ << "py=" << vy
+ << "pz=" << vz
+ << "ProductionVertex=" << eR
+ << "motherPdg=" << motherPdg
+ << "source=" << source
+ << "\n";
+ }
+ }
// Common variables
- //Double_t charge, eta, phi, momentum, momentumTPC, transversemomentum;
-
+ Double_t charge, eta, phi, momentum, momentumTPC, transversemomentum;
+
//
// Loop on reconstructed tracks
//
TArrayI *arraytrack = new TArrayI(fInputEvent->GetNumberOfTracks());
+ Int_t counterdc=0;
AliAODTrack *track = 0x0;
- AliAODMCParticle *mctrack = NULL;
for(Int_t itrack = 0; itrack < fInputEvent->GetNumberOfTracks(); itrack++){
// fill the tree
track = dynamic_cast<AliAODTrack *>(fInputEvent->GetTrack(itrack));
if(!track) continue;
// Cut track (Only basic track cuts)
-// printf("testv\n");
+ // printf("testv\n");
if(!fTrackCuts->CheckParticleCuts(AliHFEcuts::kNcutStepsMCTrack + AliHFEcuts::kStepRecKineITSTPC, track)) continue;
//
//printf("testu\n");
- fSigmaTOF = pid->NumberOfSigmasTOF(track, AliPID::kElectron);
- fSigmaTPC = pid->NumberOfSigmasTPC(track, AliPID::kElectron);
+ Double_t nSigmaTOF = pid->NumberOfSigmasTOF(track, AliPID::kElectron);
+ Double_t nSigmaTPC = pid->NumberOfSigmasTPC(track, AliPID::kElectron);
Double_t tPCdEdx = track->GetDetPid() ? track->GetDetPid()->GetTPCsignal() : 0.;
+ // Eta correction
+ copyTrack.~AliAODTrack();
+ new(©Track) AliAODTrack(*track);
+ if(fTPCpid->HasCentralityCorrection()) fTPCpid->ApplyCentralityCorrection(©Track, static_cast<Double_t>(ncontrib),AliHFEpidObject::kAODanalysis);
+ if(fTPCpid->HasEtaCorrection()) fTPCpid->ApplyEtaCorrection(©Track, AliHFEpidObject::kAODanalysis);
+ Double_t nSigmaTPCcorr = pid->NumberOfSigmasTPC(©Track, AliPID::kElectron);
+ Double_t tPCdEdxcorr = copyTrack.GetDetPid() ? copyTrack.GetDetPid()->GetTPCsignal() : 0.;
// Kinematics
- fCharge = track->Charge() > 0 ? 1. : -1.;
- fEta = track->Eta();
- fPhi = track->Phi();
- fMomentum = track->P() * fCharge;
- fTransverseMomentum = track->Pt() * fCharge;
- fMomentumTPC = track->GetDetPid() ? track->GetDetPid()->GetTPCmomentum() : track->P();
+ charge = track->Charge() > 0 ? 1. : -1.;
+ eta = track->Eta();
+ phi = track->Phi();
+ momentum = track->P() * charge;
+ transversemomentum = track->Pt() * charge;
+ momentumTPC = track->GetDetPid() ? track->GetDetPid()->GetTPCmomentum() : track->P();
// status
ULong_t status = track->GetStatus();
if((status & AliESDtrack::kITSrefit) == AliESDtrack::kITSrefit) itsrefit = 1;
Int_t tpcrefit=0;
if((status & AliESDtrack::kTPCrefit) == AliESDtrack::kTPCrefit) tpcrefit = 1;
+ Int_t tofpid=0;
+ if((status & AliESDtrack::kTOFpid) == AliESDtrack::kTOFpid) tofpid = 1;
// ITS number of clusters
- fNClustersITS = (Int_t) track->GetITSNcls();
+ UChar_t nclustersITS = track->GetITSNcls();
// TPC number of clusters (different definitions)
UChar_t nclustersTPCfit = track->GetTPCNcls();
- //UChar_t nclustersTPCall = 0;
+ UChar_t nclustersTPCall = 0;
const TBits &clusterTPC = track->GetTPCClusterMap();
- fNClustersTPCall = (Int_t) clusterTPC.CountBits();
- fNClustersTPCPID = (Int_t) track->GetTPCsignalN();
+ nclustersTPCall = clusterTPC.CountBits();
+ UChar_t nclustersTPCPID = track->GetTPCsignalN();
UChar_t nfindableTPC = track->GetTPCNclsF();
Double_t clusterRatioTPCfit = 0.0;
if((static_cast<Double_t>(nfindableTPC))>0.0) clusterRatioTPCfit = static_cast<Double_t>(nclustersTPCfit)/static_cast<Double_t>(nfindableTPC);
- //Double_t clusterRatioTPCall = 0.0;
- if((static_cast<Double_t>(nfindableTPC))>0.0) fClusterRatioTPCall = static_cast<Float_t>(fNClustersTPCall)/static_cast<Float_t>(nfindableTPC);
- fNClustersTPCshared = 0;
- fNCrossedRowsTPC = (Int_t) track->GetTPCNCrossedRows();
+ Double_t clusterRatioTPCall = 0.0;
+ if((static_cast<Double_t>(nfindableTPC))>0.0) clusterRatioTPCall = static_cast<Double_t>(nclustersTPCall)/static_cast<Double_t>(nfindableTPC);
+ UChar_t nclustersTPCshared = 0;
+ Float_t ncrossedRowsTPC = track->GetTPCNCrossedRows();
const TBits &sharedTPC = track->GetTPCSharedMap();
- for(Int_t ibit = 0; ibit < 160; ibit++) if(sharedTPC.TestBitNumber(ibit)) fNClustersTPCshared++;
+ for(Int_t ibit = 0; ibit < 160; ibit++) if(sharedTPC.TestBitNumber(ibit)) nclustersTPCshared++;
// TRD clusters and tracklets
UChar_t nclustersTRD = track->GetTRDncls();
UChar_t ntrackletsTRDPID = track->GetTRDntrackletsPID();
- Int_t nslicesTRD = track->GetNumberOfTRDslices();
+ Int_t nslicesTRD = track->GetDetPid()->GetTRDnSlices();
Int_t chi2TRD = track->GetTRDchi2();
+ AliAODPid* aodpid= track->GetDetPid();
+ Double_t* arraytrdsignals;
+ arraytrdsignals=aodpid->GetTRDslices();
+ Int_t nslicetemp=0;
+ Int_t trdlayer[6];
+ for(Int_t iplane = 0; iplane < 6; iplane++){
+ trdlayer[iplane]=0;
+ }
+
+ for(Int_t iplane = 0; iplane < 6; iplane++){
+ nslicetemp=0;
+ for(Int_t b=(iplane*8);b<((iplane*8)+8);b++)
+ {
+ if(ntrackletsTRDPID>0)
+ {
+ if(arraytrdsignals[b]>0.001) nslicetemp++;
+ }
+ }
+ if(nslicetemp > 0) trdlayer[iplane]=1;
+ }
+
// ITS and TRD acceptance maps
UChar_t itsPixel = track->GetITSClusterMap();
- fStatusL0 = 0;
- if(TESTBIT(itsPixel, 0)) fStatusL0 = 1;
- fStatusL1 = 0;
- if(TESTBIT(itsPixel, 1)) fStatusL1 = 1;
+ Bool_t statusL0 = kFALSE;
+ if(TESTBIT(itsPixel, 0)) statusL0 = kTRUE;
+ Bool_t statusL1 = kFALSE;
+ if(TESTBIT(itsPixel, 1)) statusL1 = kTRUE;
// HFE DCA
- fDcaxy = -999.;
- fDcaz = -999.;
- fExtraCuts->GetImpactParameters((AliVTrack *)track,fDcaxy,fDcaz);
+ Float_t dcaxy = -999.;
+ Float_t dcaz = -999.;
+ fExtraCuts->GetImpactParameters((AliVTrack *)track,dcaxy,dcaz);
// Kink
Int_t kink = 0;
Int_t id = track->GetID();
// Double counted
- fDoublec = 0;
- for(Int_t l=0; l < itrack; l++){
+ Int_t doublec = 0;
+ for(Int_t l=0; l < counterdc; l++){
Int_t iTrack2 = arraytrack->At(l);
- if(iTrack2==id) fDoublec=1;
+ if(iTrack2==id) doublec=1;
}
//printf("Doublec %d\n",doublec);
// Add the id at this place
- arraytrack->AddAt(id,itrack);
+ arraytrack->AddAt(id,counterdc);
+ counterdc++;
// Filter
Int_t filter[20];
}
Int_t filter0 = filter[0];
Int_t filter1 = filter[1];
- fFilter2 = filter[2];
+ Int_t filter2 = filter[2];
Int_t filter3 = filter[3];
- fFilter4 = filter[4];
+ Int_t filter4 = filter[4];
Int_t filter5 = filter[5];
Int_t filter6 = filter[6];
Int_t filter7 = filter[7];
//printf("track\n");
- // Monte-Carlo info
- Double_t vx,vy,vz;
- fEr = 0.0;
- Double_t chargemc, etamc, phimc, momentummc, transversemomentummc;
- Int_t pdg;
- fSignal = 0;
- fSource = 0;
+ signal = 0;
if(mcthere){
Int_t label = TMath::Abs(track->GetLabel());
if(label && label < fAODArrayMCInfo->GetEntriesFast())
mctrack = dynamic_cast<AliAODMCParticle *>(fAODArrayMCInfo->At(label));
if(!mctrack) continue;
- if(fTrackCuts->CheckParticleCuts(static_cast<UInt_t>(AliHFEcuts::kStepMCGenerated), mctrack)) fSignal = 1;
+ if(fTrackCuts->CheckParticleCuts(static_cast<UInt_t>(AliHFEcuts::kStepMCGenerated), mctrack)) signal = 1;
// Kinematics
chargemc = mctrack->Charge() > 0. ? 1. : -1.;
momentummc = mctrack->P() * chargemc;
vx = mctrack->Xv();
vy = mctrack->Yv();
vz = mctrack->Zv();
- fEr = TMath::Sqrt(vx*vx+vy*vy);
+ eR = TMath::Sqrt(vx*vx+vy*vy);
// Get Mother PDG code of the particle
Int_t motherPdg = 0;
}
// derive source
- fSource = 5;
- if(fSignalCuts->IsCharmElectron(mctrack)) fSource = 0;
- else if(fSignalCuts->IsBeautyElectron(mctrack)) fSource = 1;
- else if(fSignalCuts->IsGammaElectron(mctrack)) fSource = 2;
- else if(fSignalCuts->IsNonHFElectron(mctrack)) fSource = 3;
- else if(TMath::Abs(pdg) == 11) fSource = 4;
- else fSource = 5;
+ source = 5;
+ if(fSignalCuts->IsCharmElectron(mctrack)) source = 0;
+ else if(fSignalCuts->IsBeautyElectron(mctrack)) source = 1;
+ else if(fSignalCuts->IsGammaElectron(mctrack)) source = 2;
+ else if(fSignalCuts->IsNonHFElectron(mctrack)) source = 3;
+ else if(TMath::Abs(pdg) == 11) source = 4;
+ else source = 5;
}
// Fill Tree
//printf("Fill\n");
- if(fDebugstream) {
- (*fDebugTree) << "PIDdebug"
- << "centrality=" << fCentrality
- << "MBtrigger=" << isMBTrigger
- << "CentralTrigger=" << isCentralTrigger
- << "SemicentralTrigger=" << isSemicentralTrigger
- << "EMCALtrigger=" << isEMCALTrigger
- << "run=" << fRun
- << "eventnb=" << eventnb
- << "vx=" << vtx[0]
- << "vy=" << vtx[1]
- << "vz=" << vtx[2]
- << "ncontrib=" << ncontrib
- << "id=" << id
- << "dc=" << fDoublec
- << "p=" << fMomentum
- << "ptpc=" << fMomentumTPC
- << "pt=" << fTransverseMomentum
- << "eta=" << fEta
- << "phi=" << fPhi
- << "charge=" << fCharge
- << "itsrefit=" << itsrefit
- << "tpcrefit=" << tpcrefit
- << "nclustersTPC=" << nclustersTPCfit
- << "nclustersTPCall=" << fNClustersTPCall
- << "nclustersTPCPID=" << fNClustersTPCPID
- << "nclustersTPCshared=" << fNClustersTPCshared
- << "ncrossedRowsTPC=" << fNCrossedRowsTPC
- << "clusterRatioTPC=" << clusterRatioTPCfit
- << "clusterRatioTPCall=" << fClusterRatioTPCall
- << "nclustersITS=" << fNClustersITS
- << "nclustersTRD=" << nclustersTRD
- << "ntrackletsTRD=" << ntrackletsTRDPID
- << "nslicesTRD=" << nslicesTRD
- << "chi2TRD=" << chi2TRD
- << "statusITS0=" << fStatusL0
- << "statusITS1=" << fStatusL1
- << "TOFsigmaEl=" << fSigmaTOF
- << "TPCsigmaEl=" << fSigmaTPC
- << "TPCdEdx=" << tPCdEdx
- << "dcaR=" << fDcaxy
- << "dcaZ=" << fDcaz
- << "kinkdaughter=" << kink
- << "kinkmother=" << kinkmotherpass
- << "nbofmotherkink=" << numberofmotherkink
- << "filter0=" << filter0
- << "filter1=" << filter1
- << "filter2=" << fFilter2
- << "filter3=" << filter3
- << "filter4=" << fFilter4
- << "filter5=" << filter5
- << "filter6=" << filter6
- << "filter7=" << filter7
- << "filter8=" << filter8
- << "filter9=" << filter9
- << "filter10=" << filter10
- << "filter11=" << filter11
- << "filter12=" << filter12
- << "filter13=" << filter13
- << "filter14=" << filter14
- << "filter15=" << filter15
- << "filter16=" << filter16
- << "filter17=" << filter17
- << "filter18=" << filter18
- << "filter19=" << filter19
- << "mcp=" << momentummc
- << "mcpt=" << transversemomentummc
- << "mceta=" << etamc
- << "mcphi=" << phimc
- << "mcpdg=" << pdg
- << "source=" << fSource
- << "px=" << vx
- << "py=" << vy
- << "pz=" << vz
- << "eR=" << fEr
- << "mccharge=" << chargemc
- << "signal=" << fSignal
- << "\n";
- } else {
- if((fFilter2==1) || (fFilter4==1)) fDebugTreee->Fill();
- }
+ (*fDebugTree) << "PIDdebug"
+ << "centrality=" << centrality
+ << "MBtrigger=" << isMBTrigger
+ << "CentralTrigger=" << isCentralTrigger
+ << "SemicentralTrigger=" << isSemicentralTrigger
+ << "EMCALtrigger=" << isEMCALTrigger
+ << "run=" << run
+ << "eventnb=" << eventnb
+ << "vx=" << vtx[0]
+ << "vy=" << vtx[1]
+ << "vz=" << vtx[2]
+ << "ncontrib=" << ncontrib
+ << "id=" << id
+ << "dc=" << doublec
+ << "p=" << momentum
+ << "ptpc=" << momentumTPC
+ << "pt=" << transversemomentum
+ << "eta=" << eta
+ << "phi=" << phi
+ << "itsrefit=" << itsrefit
+ << "tpcrefit=" << tpcrefit
+ << "tofpid=" << tofpid
+ << "nclustersTPC=" << nclustersTPCfit
+ << "nclustersTPCall=" << nclustersTPCall
+ << "nclustersTPCPID=" << nclustersTPCPID
+ << "nclustersTPCshared=" << nclustersTPCshared
+ << "ncrossedRowsTPC=" << ncrossedRowsTPC
+ << "clusterRatioTPC=" << clusterRatioTPCfit
+ << "clusterRatioTPCall=" << clusterRatioTPCall
+ << "nclustersITS=" << nclustersITS
+ << "nclustersTRD=" << nclustersTRD
+ << "ntrackletsTRD=" << ntrackletsTRDPID
+ << "nslicesTRD=" << nslicesTRD
+ << "trd0=" << trdlayer[0]
+ << "trd1=" << trdlayer[1]
+ << "trd2=" << trdlayer[2]
+ << "trd3=" << trdlayer[3]
+ << "trd4=" << trdlayer[4]
+ << "trd5=" << trdlayer[5]
+ << "chi2TRD=" << chi2TRD
+ << "statusITS0=" << statusL0
+ << "statusITS1=" << statusL1
+ << "TOFsigmaEl=" << nSigmaTOF
+ << "TPCsigmaEl=" << nSigmaTPC
+ << "TPCsigmaElcorr=" << nSigmaTPCcorr
+ << "TPCdEdx=" << tPCdEdx
+ << "TPCdEdxcorr=" << tPCdEdxcorr
+ << "dcaR=" << dcaxy
+ << "dcaZ=" << dcaz
+ << "kinkdaughter=" << kink
+ << "kinkmother=" << kinkmotherpass
+ << "nbofmotherkink=" << numberofmotherkink
+ << "filter0=" << filter0
+ << "filter1=" << filter1
+ << "filter2=" << filter2
+ << "filter3=" << filter3
+ << "filter4=" << filter4
+ << "filter5=" << filter5
+ << "filter6=" << filter6
+ << "filter7=" << filter7
+ << "filter8=" << filter8
+ << "filter9=" << filter9
+ << "filter10=" << filter10
+ << "filter11=" << filter11
+ << "filter12=" << filter12
+ << "filter13=" << filter13
+ << "filter14=" << filter14
+ << "filter15=" << filter15
+ << "filter16=" << filter16
+ << "filter17=" << filter17
+ << "filter18=" << filter18
+ << "filter19=" << filter19
+ << "mcp=" << momentummc
+ << "mcpt=" << transversemomentummc
+ << "mceta=" << etamc
+ << "mcphi=" << phimc
+ << "mcpdg=" << pdg
+ << "source=" << source
+ << "px=" << vx
+ << "py=" << vy
+ << "pz=" << vz
+ << "eR=" << eR
+ << "mccharge=" << chargemc
+ << "signal=" << signal
+ << "\n";
+
//printf("after\n");
arraytrack->~TArrayI();
fEventNumber++;
- if(!fDebugstream) PostData(1,fDebugTreee);
-
}