: AliHLTTTreeProcessor()
, fEvent(0)
, fNofTracks(0)
- , fNofV0s(0)
- , fNofUPCpairs(0)
+ //, fNofV0s(0)
+ //, fNofUPCpairs(0)
, fNofContributors(0)
, fVertexX(-99)
, fVertexY(-99)
, fVertexStatus(kFALSE)
, fTrackVariables()
, fTrackVariablesInt()
- , fV0Variables()
- , fUPCVariables()
- , fNEvents(0)
- , fNGammas(0)
- , fNKShorts(0)
- , fNLambdas(0)
- , fNPi0s(0)
+ //, fV0Variables()
+ //, fUPCVariables()
+ //, fNEvents(0)
+ //, fNGammas(0)
+ //, fNKShorts(0)
+ //, fNLambdas(0)
+ //, fNPi0s(0)
{
// see header file for class documentation
// or
// see header file for class documentation
fTrackVariables.Reset();
fTrackVariablesInt.Reset();
- fV0Variables.Reset();
- fUPCVariables.Reset();
+ //fV0Variables.Reset();
+ //fUPCVariables.Reset();
}
void AliHLTGlobalHistoComponent::GetInputDataTypes(AliHLTComponentDataTypeList& list){
"Track_status "
};
- const char* V0VariableNames = {
- // Note the black at the end of each name!
- "V0_AP "
- "V0_pt "
- "clust1 "
- "clust2 "
- "dev1 "
- "dev2 "
- "devPrim "
- "length "
- "sigmaLength "
- "r "
- };
-
- const char* UPCVariableNames = {
- // Note the black at the end of each name!
- "nClusters_1 "
- "nClusters_2 "
- "polarity_1 "
- "polarity_2 "
- "px_1 "
- "py_1 "
- "px_2 "
- "py_2 "
- };
+// const char* V0VariableNames = {
+// // Note the black at the end of each name!
+// "V0_AP "
+// "V0_pt "
+// "clust1 "
+// "clust2 "
+// "dev1 "
+// "dev2 "
+// "devPrim "
+// "length "
+// "sigmaLength "
+// "r "
+// };
+//
+// const char* UPCVariableNames = {
+// // Note the black at the end of each name!
+// "nClusters_1 "
+// "nClusters_2 "
+// "polarity_1 "
+// "polarity_2 "
+// "px_1 "
+// "py_1 "
+// "px_2 "
+// "py_2 "
+// };
int maxTrackCount = 20000; // FIXME: make configurable
- int maxV0Count = 100000;
- int maxUPCCount = 1;
+ //int maxV0Count = 100000;
+ //int maxUPCCount = 1;
if ((iResult=fTrackVariables.Init(maxTrackCount, trackVariableNames))<0) {
HLTError("failed to initialize internal structure for track properties (float)");
if ((iResult=fTrackVariablesInt.Init(maxTrackCount, trackIntVariableNames))<0) {
HLTError("failed to initialize internal structure for track properties (int)");
}
- if ((iResult=fV0Variables.Init(maxV0Count, V0VariableNames))<0) {
- HLTError("failed to initialize internal structure for V0 properties (float)");
- }
- if ((iResult=fUPCVariables.Init(maxUPCCount, UPCVariableNames))<0) {
- HLTError("failed to initialize internal structure for UPC properties (float)");
- }
+// if ((iResult=fV0Variables.Init(maxV0Count, V0VariableNames))<0) {
+// HLTError("failed to initialize internal structure for V0 properties (float)");
+// }
+// if ((iResult=fUPCVariables.Init(maxUPCCount, UPCVariableNames))<0) {
+// HLTError("failed to initialize internal structure for UPC properties (float)");
+// }
if (iResult>=0) {
pTree->Branch("event", &fEvent, "event/I");
pTree->Branch("vertexX", &fVertexX, "vertexX/F");
pTree->Branch("vertexY", &fVertexY, "vertexY/F");
pTree->Branch("vertexZ", &fVertexZ, "vertexZ/F");
- pTree->Branch("V0", &fNofV0s, "V0/I");
- pTree->Branch("UPC", &fNofUPCpairs, "UPC/I");
+ //pTree->Branch("V0", &fNofV0s, "V0/I");
+ //pTree->Branch("UPC", &fNofUPCpairs, "UPC/I");
pTree->Branch("nContributors",&fNofContributors, "nContributors/I");
pTree->Branch("vertexStatus", &fVertexStatus, "vertexStatus/I");
specifier+="[trackcount]/i";
pTree->Branch(fTrackVariablesInt.GetKey(i), pArray, specifier.Data());
}
- for (i=0; i<fV0Variables.Variables(); i++) {
- TString specifier=fV0Variables.GetKey(i);
- float* pArray=fV0Variables.GetArray(specifier);
- specifier+="[V0]/f";
- pTree->Branch(fV0Variables.GetKey(i), pArray, specifier.Data());
- }
- for (i=0; i<fUPCVariables.Variables(); i++) {
- TString specifier=fUPCVariables.GetKey(i);
- float* pArray=fUPCVariables.GetArray(specifier);
- specifier+="[UPC]/f";
- pTree->Branch(fUPCVariables.GetKey(i), pArray, specifier.Data());
- }
+// for (i=0; i<fV0Variables.Variables(); i++) {
+// TString specifier=fV0Variables.GetKey(i);
+// float* pArray=fV0Variables.GetArray(specifier);
+// specifier+="[V0]/f";
+// pTree->Branch(fV0Variables.GetKey(i), pArray, specifier.Data());
+// }
+// for (i=0; i<fUPCVariables.Variables(); i++) {
+// TString specifier=fUPCVariables.GetKey(i);
+// float* pArray=fUPCVariables.GetArray(specifier);
+// specifier+="[UPC]/f";
+// pTree->Branch(fUPCVariables.GetKey(i), pArray, specifier.Data());
+// }
} else {
delete pTree;
pTree=NULL;
fVertexX = esd->GetPrimaryVertexTracks()->GetX();
fVertexY = esd->GetPrimaryVertexTracks()->GetY();
fVertexZ = esd->GetPrimaryVertexTracks()->GetZ();
- fNofV0s = esd->GetNumberOfV0s();
+ //fNofV0s = esd->GetNumberOfV0s();
fNofContributors = esd->GetPrimaryVertexTracks()->GetNContributors();
fVertexStatus = esd->GetPrimaryVertexTracks()->GetStatus();
- fNofUPCpairs = 1;
+ //fNofUPCpairs = 1;
for (int i=0; i<fNofTracks; i++) {
AliESDtrack *esdTrack = esd->GetTrack(i);
}
//HLTInfo("added parameters for %d tracks", fNofTracks);
- if(fNofTracks==2){
- AliESDtrack *esdTrack1 = esd->GetTrack(0);
- if(!esdTrack1) return 0;
- AliESDtrack *esdTrack2 = esd->GetTrack(1);
- if(!esdTrack2) return 0;
-
- if(esdTrack1->Charge()*esdTrack2->Charge()<0){
-
- fUPCVariables.Fill("nClusters_1", esdTrack1->GetTPCNcls() );
- fUPCVariables.Fill("nClusters_2", esdTrack2->GetTPCNcls() );
- fUPCVariables.Fill("polarity_1", esdTrack1->Charge() );
- fUPCVariables.Fill("polarity_2", esdTrack2->Charge() );
- fUPCVariables.Fill("px_1", esdTrack1->Px() );
- fUPCVariables.Fill("py_1", esdTrack1->Py() );
- fUPCVariables.Fill("px_2", esdTrack2->Px() );
- fUPCVariables.Fill("py_2", esdTrack2->Py() );
- }
- }
+// if(fNofTracks==2){
+// AliESDtrack *esdTrack1 = esd->GetTrack(0);
+// if(!esdTrack1) return 0;
+// AliESDtrack *esdTrack2 = esd->GetTrack(1);
+// if(!esdTrack2) return 0;
+//
+// if(esdTrack1->Charge()*esdTrack2->Charge()<0){
+//
+// fUPCVariables.Fill("nClusters_1", esdTrack1->GetTPCNcls() );
+// fUPCVariables.Fill("nClusters_2", esdTrack2->GetTPCNcls() );
+// fUPCVariables.Fill("polarity_1", esdTrack1->Charge() );
+// fUPCVariables.Fill("polarity_2", esdTrack2->Charge() );
+// fUPCVariables.Fill("px_1", esdTrack1->Px() );
+// fUPCVariables.Fill("py_1", esdTrack1->Py() );
+// fUPCVariables.Fill("px_2", esdTrack2->Px() );
+// fUPCVariables.Fill("py_2", esdTrack2->Py() );
+// }
+// }
AliKFParticle::SetField( esd->GetMagneticField() );
//std::vector<AliKFParticle> vGammas;
- for (int i=0; i<fNofV0s; i++) {
- AliESDv0 *esdV0 = esd->GetV0(i);
- if (!esdV0) continue;
-
- AliESDtrack *t1 = esd->GetTrack( esd->GetV0(i)->GetNindex());
- AliESDtrack *t2 = esd->GetTrack( esd->GetV0(i)->GetPindex());
-
- AliKFParticle kf1( *t1, 11 );
- AliKFParticle kf2( *t2, 11 );
-
- AliKFVertex primVtx( *esd->GetPrimaryVertexTracks() );
- double dev1 = kf1.GetDeviationFromVertex( primVtx );
- double dev2 = kf2.GetDeviationFromVertex( primVtx );
-
- AliKFParticle v0( kf1, kf2 );
- double devPrim = v0.GetDeviationFromVertex( primVtx );
- primVtx+=v0;
- v0.SetProductionVertex( primVtx );
-
- Double_t length, sigmaLength;
- if( v0.GetDecayLength( length, sigmaLength ) ) continue;
-
- double dx = v0.GetX()-primVtx.GetX();
- double dy = v0.GetY()-primVtx.GetY();
- double r = sqrt(dx*dx + dy*dy);
-
-
- // Armenteros-Podolanski plot
-
- double pt=0, ap=0;
- //{
- AliKFParticle kf01 = kf1, kf02 = kf2;
- kf01.SetProductionVertex(v0);
- kf02.SetProductionVertex(v0);
- kf01.TransportToProductionVertex();
- kf02.TransportToProductionVertex();
- double px1=kf01.GetPx(), py1=kf01.GetPy(), pz1=kf01.GetPz();
- double px2=kf02.GetPx(), py2=kf02.GetPy(), pz2=kf02.GetPz();
- double px = px1+px2, py = py1+py2, pz = pz1+pz2;
- double p = sqrt(px*px+py*py+pz*pz);
- double l1 = (px*px1 + py*py1 + pz*pz1)/p;
- double l2 = (px*px2 + py*py2 + pz*pz2)/p;
- pt = sqrt(px1*px1+py1*py1+pz1*pz1 - l1*l1);
- ap = (l2-l1)/(l1+l2);
- //}
-
-// if(
-// t1->GetTPCNcls()>=fAPCuts[0]
-// && t2->GetTPCNcls()>=fAPCuts[0]
-// && dev1>=fAPCuts[1]
-// && dev2>=fAPCuts[1]
-// && devPrim <= fAPCuts[2]
-// && length >= fAPCuts[3]*sigmaLength
-// && length >= fAPCuts[4]
-// && r <= fAPCuts[5]
-// )
-// //{
-// //if( fAP ) fAP->Fill( ap, pt );
-// //}
-//
-// // Gamma finder
-//
-// bool isGamma = 0;
+// for (int i=0; i<fNofV0s; i++) {
+// AliESDv0 *esdV0 = esd->GetV0(i);
+// if (!esdV0) continue;
//
-// if(
-// t1->GetTPCNcls()>=fGammaCuts[0]
-// && t2->GetTPCNcls()>=fGammaCuts[0]
-// && dev1>=fGammaCuts[1]
-// && dev2>=fGammaCuts[1]
-// && devPrim <= fGammaCuts[2]
-// && length >= fGammaCuts[3]*sigmaLength
-// && length >= fGammaCuts[4]
-// && r <= fGammaCuts[5]
-// ){
-// double mass, error;
-// v0.GetMass(mass,error);
-// //if( fGamma ) fGamma->Fill( mass );
+// AliESDtrack *t1 = esd->GetTrack( esd->GetV0(i)->GetNindex());
+// AliESDtrack *t2 = esd->GetTrack( esd->GetV0(i)->GetPindex());
//
-// if( TMath::Abs(mass)<=fGammaCuts[6]*error || TMath::Abs(mass)<=fGammaCuts[7] ){
-// AliKFParticle gamma = v0;
-// gamma.SetMassConstraint(0);
-// // if( fGammaXY
-// // && t1->GetTPCNcls()>=60
-// // && t2->GetTPCNcls()>=60
-// // ) fGammaXY->Fill(gamma.GetX(), gamma.GetY());
-// isGamma = 1;
-// fNGammas++;
-// vGammas.push_back( gamma );
-// }
-// }
+// AliKFParticle kf1( *t1, 11 );
+// AliKFParticle kf2( *t2, 11 );
+//
+// AliKFVertex primVtx( *esd->GetPrimaryVertexTracks() );
+// double dev1 = kf1.GetDeviationFromVertex( primVtx );
+// double dev2 = kf2.GetDeviationFromVertex( primVtx );
//
-// if( isGamma ) continue;
+// AliKFParticle v0( kf1, kf2 );
+// double devPrim = v0.GetDeviationFromVertex( primVtx );
+// primVtx+=v0;
+// v0.SetProductionVertex( primVtx );
//
+// Double_t length, sigmaLength;
+// if( v0.GetDecayLength( length, sigmaLength ) ) continue;
//
-// // KShort finder
-//
-// bool isKs = 0;
-//
-// if(
-// t1->GetTPCNcls()>=fKsCuts[0]
-// && t2->GetTPCNcls()>=fKsCuts[0]
-// && dev1>=fKsCuts[1]
-// && dev2>=fKsCuts[1]
-// && devPrim <= fKsCuts[2]
-// && length >= fKsCuts[3]*sigmaLength
-// && length >= fKsCuts[4]
-// && r <= fKsCuts[5]
-// ){
+// double dx = v0.GetX()-primVtx.GetX();
+// double dy = v0.GetY()-primVtx.GetY();
+// double r = sqrt(dx*dx + dy*dy);
//
-// AliKFParticle piN( *t1, 211 );
-// AliKFParticle piP( *t2, 211 );
//
-// AliKFParticle Ks( piN, piP );
-// Ks.SetProductionVertex( primVtx );
+// // Armenteros-Podolanski plot
//
-// double mass, error;
-// Ks.GetMass( mass, error);
-// //if( fKShort ) fKShort->Fill( mass );
-// if( TMath::Abs( mass - kKsMass )<=fKsCuts[6]*error || TMath::Abs( mass - kKsMass )<=fKsCuts[7] ){
-// isKs = 1;
-// fNKShorts++;
-// }
-// }
-//
-// if( isKs ) continue;
+// double pt=0, ap=0;
+// //{
+// AliKFParticle kf01 = kf1, kf02 = kf2;
+// kf01.SetProductionVertex(v0);
+// kf02.SetProductionVertex(v0);
+// kf01.TransportToProductionVertex();
+// kf02.TransportToProductionVertex();
+// double px1=kf01.GetPx(), py1=kf01.GetPy(), pz1=kf01.GetPz();
+// double px2=kf02.GetPx(), py2=kf02.GetPy(), pz2=kf02.GetPz();
+// double px = px1+px2, py = py1+py2, pz = pz1+pz2;
+// double p = sqrt(px*px+py*py+pz*pz);
+// double l1 = (px*px1 + py*py1 + pz*pz1)/p;
+// double l2 = (px*px2 + py*py2 + pz*pz2)/p;
+// pt = sqrt(px1*px1+py1*py1+pz1*pz1 - l1*l1);
+// ap = (l2-l1)/(l1+l2);
+// //}
//
-// // Lambda finder
-// //printf("QQQQQQQQQQQQQQQQq :%f\n",fLambdaCuts[0]);
-// if(
-// t1->GetTPCNcls()>=fLambdaCuts[0]
-// && t2->GetTPCNcls()>=fLambdaCuts[0]
-// && dev1>=fLambdaCuts[1]
-// && dev2>=fLambdaCuts[1]
-// && devPrim <= fLambdaCuts[2]
-// && length >= fLambdaCuts[3]*sigmaLength
-// && length >= fLambdaCuts[4]
-// && r <= fLambdaCuts[5]
-// && TMath::Abs( ap )>.4
-// ){
+// // if(
+// // t1->GetTPCNcls()>=fAPCuts[0]
+// // && t2->GetTPCNcls()>=fAPCuts[0]
+// // && dev1>=fAPCuts[1]
+// // && dev2>=fAPCuts[1]
+// // && devPrim <= fAPCuts[2]
+// // && length >= fAPCuts[3]*sigmaLength
+// // && length >= fAPCuts[4]
+// // && r <= fAPCuts[5]
+// // )
+// // //{
+// // //if( fAP ) fAP->Fill( ap, pt );
+// // //}
+// //
+// // // Gamma finder
+// //
+// // bool isGamma = 0;
+// //
+// // if(
+// // t1->GetTPCNcls()>=fGammaCuts[0]
+// // && t2->GetTPCNcls()>=fGammaCuts[0]
+// // && dev1>=fGammaCuts[1]
+// // && dev2>=fGammaCuts[1]
+// // && devPrim <= fGammaCuts[2]
+// // && length >= fGammaCuts[3]*sigmaLength
+// // && length >= fGammaCuts[4]
+// // && r <= fGammaCuts[5]
+// // ){
+// // double mass, error;
+// // v0.GetMass(mass,error);
+// // //if( fGamma ) fGamma->Fill( mass );
+// //
+// // if( TMath::Abs(mass)<=fGammaCuts[6]*error || TMath::Abs(mass)<=fGammaCuts[7] ){
+// // AliKFParticle gamma = v0;
+// // gamma.SetMassConstraint(0);
+// // // if( fGammaXY
+// // // && t1->GetTPCNcls()>=60
+// // // && t2->GetTPCNcls()>=60
+// // // ) fGammaXY->Fill(gamma.GetX(), gamma.GetY());
+// // isGamma = 1;
+// // fNGammas++;
+// // vGammas.push_back( gamma );
+// // }
+// // }
+// //
+// // if( isGamma ) continue;
+// //
+// //
+// // // KShort finder
+// //
+// // bool isKs = 0;
+// //
+// // if(
+// // t1->GetTPCNcls()>=fKsCuts[0]
+// // && t2->GetTPCNcls()>=fKsCuts[0]
+// // && dev1>=fKsCuts[1]
+// // && dev2>=fKsCuts[1]
+// // && devPrim <= fKsCuts[2]
+// // && length >= fKsCuts[3]*sigmaLength
+// // && length >= fKsCuts[4]
+// // && r <= fKsCuts[5]
+// // ){
+// //
+// // AliKFParticle piN( *t1, 211 );
+// // AliKFParticle piP( *t2, 211 );
+// //
+// // AliKFParticle Ks( piN, piP );
+// // Ks.SetProductionVertex( primVtx );
+// //
+// // double mass, error;
+// // Ks.GetMass( mass, error);
+// // //if( fKShort ) fKShort->Fill( mass );
+// // if( TMath::Abs( mass - kKsMass )<=fKsCuts[6]*error || TMath::Abs( mass - kKsMass )<=fKsCuts[7] ){
+// // isKs = 1;
+// // fNKShorts++;
+// // }
+// // }
+// //
+// // if( isKs ) continue;
+// //
+// // // Lambda finder
+// // //printf("QQQQQQQQQQQQQQQQq :%f\n",fLambdaCuts[0]);
+// // if(
+// // t1->GetTPCNcls()>=fLambdaCuts[0]
+// // && t2->GetTPCNcls()>=fLambdaCuts[0]
+// // && dev1>=fLambdaCuts[1]
+// // && dev2>=fLambdaCuts[1]
+// // && devPrim <= fLambdaCuts[2]
+// // && length >= fLambdaCuts[3]*sigmaLength
+// // && length >= fLambdaCuts[4]
+// // && r <= fLambdaCuts[5]
+// // && TMath::Abs( ap )>.4
+// // ){
+// //
+// // AliKFParticle kP, kpi;
+// // if( ap<0 ){
+// // kP = AliKFParticle( *t2, 2212 );
+// // kpi = AliKFParticle( *t1, 211 );
+// // } else {
+// // kP = AliKFParticle( *t1, 2212 );
+// // kpi = AliKFParticle( *t2, 211 );
+// // }
+// //
+// // AliKFParticle lambda = AliKFParticle( kP, kpi );
+// // lambda.SetProductionVertex( primVtx );
+// // //double mass, error;
+// // lambda.GetMass( Lmass, Lerror);
+// // //if( fLambda ) fLambda->Fill( mass );
+// // if( TMath::Abs( Lmass - kLambdaMass )<=fLambdaCuts[6]*Lerror || TMath::Abs( Lmass - kLambdaMass )<=fLambdaCuts[7] ){
+// // fNLambdas++;
+// // }
+// // }
//
-// AliKFParticle kP, kpi;
-// if( ap<0 ){
-// kP = AliKFParticle( *t2, 2212 );
-// kpi = AliKFParticle( *t1, 211 );
-// } else {
-// kP = AliKFParticle( *t1, 2212 );
-// kpi = AliKFParticle( *t2, 211 );
-// }
-//
-// AliKFParticle lambda = AliKFParticle( kP, kpi );
-// lambda.SetProductionVertex( primVtx );
-// //double mass, error;
-// lambda.GetMass( Lmass, Lerror);
-// //if( fLambda ) fLambda->Fill( mass );
-// if( TMath::Abs( Lmass - kLambdaMass )<=fLambdaCuts[6]*Lerror || TMath::Abs( Lmass - kLambdaMass )<=fLambdaCuts[7] ){
-// fNLambdas++;
-// }
-// }
-
-
- fV0Variables.Fill("V0_AP", ap);
- fV0Variables.Fill("V0_pt", pt);
- fV0Variables.Fill("clust1", t1->GetTPCNcls());
- fV0Variables.Fill("clust2", t2->GetTPCNcls());
- fV0Variables.Fill("dev1", dev1);
- fV0Variables.Fill("dev2", dev2);
- fV0Variables.Fill("devPrim", devPrim);
- fV0Variables.Fill("length", length);
- fV0Variables.Fill("sigmaLength", sigmaLength);
- fV0Variables.Fill("r", r);
-
- } // end of loop over V0s
+//
+// fV0Variables.Fill("V0_AP", ap);
+// fV0Variables.Fill("V0_pt", pt);
+// fV0Variables.Fill("clust1", t1->GetTPCNcls());
+// fV0Variables.Fill("clust2", t2->GetTPCNcls());
+// fV0Variables.Fill("dev1", dev1);
+// fV0Variables.Fill("dev2", dev2);
+// fV0Variables.Fill("devPrim", devPrim);
+// fV0Variables.Fill("length", length);
+// fV0Variables.Fill("sigmaLength", sigmaLength);
+// fV0Variables.Fill("r", r);
+//
+// } // end of loop over V0s
if (iResult<0) {
// fill an empty event
{
/// reset all filling variables
fNofTracks=0;
- fNofV0s=0;
+ //fNofV0s=0;
fTrackVariables.ResetCount();
fTrackVariablesInt.ResetCount();
- fV0Variables.ResetCount();
- fUPCVariables.ResetCount();
+ //fV0Variables.ResetCount();
+ //fUPCVariables.ResetCount();
return 0;
}