/* $Id$ */
+/* History of cvs commits:
+ *
+ * $Log$
+ * Revision 1.13 2005/05/28 14:19:04 schutz
+ * Compilation warnings fixed by T.P.
+ *
+ */
+
//_________________________________________________________________________
// Implementation version v0 of the PHOS particle identifier
// Particle identification based on the
// Completely redesined by Dmitri Peressounko, March 2001
// --- ROOT system ---
-#include "TROOT.h"
#include "TTree.h"
-#include "TFile.h"
#include "TF2.h"
#include "TFormula.h"
#include "TCanvas.h"
-#include "TFolder.h"
-#include "TSystem.h"
+
#include "TBenchmark.h"
// --- Standard library ---
// --- AliRoot header files ---
-
+#include "AliLog.h"
#include "AliRun.h"
#include "AliGenerator.h"
-#include "AliPHOS.h"
#include "AliPHOSPIDv0.h"
#include "AliPHOSEmcRecPoint.h"
-#include "AliPHOSClusterizerv1.h"
#include "AliPHOSTrackSegment.h"
-#include "AliPHOSTrackSegmentMakerv1.h"
#include "AliPHOSRecParticle.h"
#include "AliPHOSGeometry.h"
#include "AliPHOSLoader.h"
ClassImp( AliPHOSPIDv0)
//____________________________________________________________________________
-AliPHOSPIDv0::AliPHOSPIDv0():AliPHOSPID()
+AliPHOSPIDv0::AliPHOSPIDv0():
+ fTrackSegmentsTitle(""),
+ fRecPointsTitle(""),
+ fRecParticlesTitle(""),
+ fIDOptions("dis time"),
+ fNEvent(0),
+ fClusterizer(0),
+ fTSMaker(0),
+ fFormula(0),
+ fDispersion(0.f),
+ fCpvEmcDistance(0.f),
+ fTimeGate(2.e-9f),
+ fRecParticlesInRun(0)
{
// default ctor
- fFormula = 0 ;
- fDispersion = 0. ;
- fCpvEmcDistance = 0 ;
- fTimeGate = 2.e-9 ;
- fEventFolderName = "" ;
- fTrackSegmentsTitle= "" ;
- fRecPointsTitle = "" ;
- fRecParticlesTitle = "" ;
- fIDOptions = "dis time" ;
- fRecParticlesInRun = 0 ;
- fClusterizer = 0;
- fTSMaker = 0;
+ fEventFolderName = "";
}
//____________________________________________________________________________
-AliPHOSPIDv0::AliPHOSPIDv0(const char * evFolderName,const char * name) : AliPHOSPID(evFolderName, name)
+AliPHOSPIDv0::AliPHOSPIDv0(const char * evFolderName,const char * name) :
+ AliPHOSPID(evFolderName, name),
+ fTrackSegmentsTitle(GetName()),
+ fRecPointsTitle(GetName()),
+ fRecParticlesTitle(GetName()),
+ fIDOptions("dis time"),
+ fNEvent(0),
+ fClusterizer(0),
+ fTSMaker(0),
+ fFormula(new TFormula("LambdaCuts","(x>1)*(x<2.5)*(y>0)*(y<x)")),
+ fDispersion(2.f),
+ fCpvEmcDistance(3.f),
+ fTimeGate(2.e-9f),
+ fRecParticlesInRun(0)
{
//ctor with the indication on where to look for the track segments
-
- fFormula = new TFormula("LambdaCuts","(x>1)*(x<2.5)*(y>0)*(y<x)") ;
- fDispersion = 2.0 ;
- fCpvEmcDistance = 3.0 ;
- fTimeGate = 2.e-9 ;
-
- fEventFolderName = GetTitle() ;
- fTrackSegmentsTitle = GetName();
- fRecPointsTitle = GetName();
- fRecParticlesTitle = GetName();
- fIDOptions = "dis time" ;
-
- fRecParticlesInRun = 0 ;
-
+ fEventFolderName = GetTitle() ;
Init() ;
+}
+//____________________________________________________________________________
+AliPHOSPIDv0::AliPHOSPIDv0(const AliPHOSPIDv0 & rhs) :
+ AliPHOSPID(rhs),
+ fTrackSegmentsTitle(rhs.fTrackSegmentsTitle),
+ fRecPointsTitle(rhs.fRecPointsTitle),
+ fRecParticlesTitle(rhs.fRecParticlesTitle),
+ fIDOptions(rhs.fIDOptions),
+ fNEvent(rhs.fNEvent),
+ fClusterizer(rhs.fClusterizer),
+ fTSMaker(rhs.fTSMaker),
+ fFormula(rhs.fFormula),
+ fDispersion(rhs.fDispersion),
+ fCpvEmcDistance(rhs.fCpvEmcDistance),
+ fTimeGate(rhs.fTimeGate),
+ fRecParticlesInRun(rhs.fRecParticlesInRun)
+{
+ //Copy ctor, the same as compiler-generated, possibly wrong if
+ //someone implements dtor correctly.
+}
+
+//____________________________________________________________________________
+AliPHOSPIDv0 & AliPHOSPIDv0::operator = (const AliPHOSPIDv0 & rhs)
+{
+ //Copy-assignment, emulates compiler generated, possibly wrong.
+ AliPHOSPID::operator = (rhs);
+ fTrackSegmentsTitle = rhs.fTrackSegmentsTitle;
+ fRecPointsTitle = rhs.fRecPointsTitle;
+ fRecParticlesTitle = rhs.fRecParticlesTitle;
+ fIDOptions = rhs.fIDOptions;
+ fNEvent = rhs.fNEvent;
+ fClusterizer = rhs.fClusterizer;
+ fTSMaker = rhs.fTSMaker;
+ fFormula = rhs.fFormula;
+ fDispersion = rhs.fDispersion;
+ fCpvEmcDistance = rhs.fCpvEmcDistance;
+ fTimeGate = rhs.fTimeGate;
+ fRecParticlesInRun = rhs.fRecParticlesInRun;
+
+ return *this;
}
//____________________________________________________________________________
AliPHOSPIDv0::~AliPHOSPIDv0()
-{
+{
+ //Empty dtor, fFormula leaks
}
//____________________________________________________________________________
AliRunLoader* runget = AliRunLoader::GetRunLoader(GetTitle());
if(runget == 0x0)
{
- Error("Exec","Can not find run getter in event folder \"%s\"",GetTitle());
+ AliError(Form("Can not find run getter in event folder \"%s\"",
+ GetTitle()));
return;
}
AliPHOSLoader* gime = dynamic_cast<AliPHOSLoader*>(runget->GetLoader("PHOSLoader"));
if ( gime == 0 )
{
- Error("Exec","Could not obtain the Loader object !");
+ AliError("Could not obtain the Loader object !");
return ;
}
for(ievent = 0; ievent < nevents; ievent++){
runget->GetEvent(ievent);
- Info("Exec", "event %d %d %d", ievent, gime->EmcRecPoints(), gime->TrackSegments()) ;
+ AliInfo(Form("event %d %d %d",
+ ievent, gime->EmcRecPoints(),
+ gime->TrackSegments())) ;
MakeRecParticles() ;
WriteRecParticles();
if(strstr(option,"tim")){
gBenchmark->Stop("PHOSPID");
- Info("Exec", "took %f seconds for PID %f seconds per event",
- gBenchmark->GetCpuTime("PHOSPID"), gBenchmark->GetCpuTime("PHOSPID")/nevents) ;
+ AliInfo(Form("took %f seconds for PID %f seconds per event",
+ gBenchmark->GetCpuTime("PHOSPID"),
+ gBenchmark->GetCpuTime("PHOSPID")/nevents)) ;
}
}
AliRunLoader* runget = AliRunLoader::GetRunLoader(GetTitle());
if(runget == 0x0)
{
- Error("Exec","Can not find run getter in event folder \"%s\"",GetTitle());
+ AliError(Form("Can not find run getter in event folder \"%s\"",
+ GetTitle()));
return;
}
AliPHOSLoader* gime = dynamic_cast<AliPHOSLoader*>(runget->GetLoader("PHOSLoader"));
if ( gime == 0 )
{
- Error("Exec","Could not obtain the Loader object !");
+ AliError("Could not obtain the Loader object !");
return ;
}
}
//____________________________________________________________________________
-void AliPHOSPIDv0::MakeRecParticles(){
+void AliPHOSPIDv0::MakeRecParticles()
+{
+ // Reconstructs the particles from the tracksegments
TString taskName(GetName()) ;
taskName.Remove(taskName.Index(Version())-1) ;
AliRunLoader* runget = AliRunLoader::GetRunLoader(GetTitle());
if(runget == 0x0)
{
- Error("Exec","Can not find run getter in event folder \"%s\"",GetTitle());
+ AliError(Form("Can not find run getter in event folder \"%s\"",
+ GetTitle()));
return;
}
AliPHOSLoader* gime = dynamic_cast<AliPHOSLoader*>(runget->GetLoader("PHOSLoader"));
if ( gime == 0 )
{
- Error("Exec","Could not obtain the Loader object !");
+ AliError("Could not obtain the Loader object !");
return ;
}
}
//____________________________________________________________________________
-void AliPHOSPIDv0:: Print() const
+void AliPHOSPIDv0:: Print(const Option_t *) const
{
// Print the parameters used for the particle type identification
TString message ;
message += " RecParticles Branch title %s\n" ;
message += "with parameters:\n" ;
message += " Maximal EMC - CPV distance (cm) %f\n" ;
- Info("Print", message.Data(),
+ AliInfo(Form( message.Data(),
GetTitle(),
fRecPointsTitle.Data(),
fTrackSegmentsTitle.Data(),
fRecParticlesTitle.Data(),
- fCpvEmcDistance );
+ fCpvEmcDistance ));
if(fIDOptions.Contains("dis",TString::kIgnoreCase ))
- Info("Print", " dispersion cut %f", fDispersion ) ;
+ AliInfo(Form(" dispersion cut %f", fDispersion )) ;
if(fIDOptions.Contains("ell",TString::kIgnoreCase ))
- Info("Print", " Eliptic cuts function: %s", fFormula->GetTitle() ) ;
+ AliInfo(Form(" Eliptic cuts function: %s",
+ fFormula->GetTitle() )) ;
if(fIDOptions.Contains("tim",TString::kIgnoreCase ))
- Info("Print", " Time Gate used: %f", fTimeGate) ;
+ AliInfo(Form(" Time Gate used: %f", fTimeGate)) ;
}
//____________________________________________________________________________
//____________________________________________________________________________
void AliPHOSPIDv0::WriteRecParticles()
{
+ // Saves the reconstructed particles too a file
AliRunLoader* runget = AliRunLoader::GetRunLoader(GetTitle());
if(runget == 0x0)
{
- Error("Exec","Can not find run getter in event folder \"%s\"",GetTitle());
+ AliError(Form("Can not find run getter in event folder \"%s\"",
+ GetTitle()));
return;
}
AliPHOSLoader* gime = dynamic_cast<AliPHOSLoader*>(runget->GetLoader("PHOSLoader"));
if ( gime == 0 )
{
- Error("Exec","Could not obtain the Loader object !");
+ AliError("Could not obtain the Loader object !");
return ;
}
AliRunLoader* runget = AliRunLoader::GetRunLoader(GetTitle());
if(runget == 0x0)
{
- Error("WriteRecParticles","Can not find run getter in event folder \"%s\"",GetTitle());
+ AliError(Form("Can not find run getter in event folder \"%s\"",
+ GetTitle()));
return;
}
AliPHOSLoader* gime = dynamic_cast<AliPHOSLoader*>(runget->GetLoader("PHOSLoader"));
if ( gime == 0 )
{
- Error("WriteRecParticles","Could not obtain the Loader object !");
+ AliError("Could not obtain the Loader object !");
return ;
}
TString message ;
message = "event %d\n" ;
message += " found %d RecParticles\n" ;
- Info("PrintRecParticles", message.Data(), gAlice->GetEvNumber(), recParticles->GetEntriesFast() ) ;
+ AliInfo(Form(message.Data(),
+ gAlice->GetEvNumber(), recParticles->GetEntriesFast() )) ;
if(strstr(option,"all")) { // printing found TS
- Info("PrintRecParticles"," PARTICLE Index \n" ) ;
+ AliInfo(" PARTICLE Index" ) ;
Int_t index ;
for (index = 0 ; index < recParticles->GetEntries() ; index++) {
// Int_t nprimaries;
// primaries = rp->GetPrimaries(nprimaries);
- Info("PrintRecParticles", " %s %d\n", particle, rp->GetIndexInList()) ;
+ AliInfo(Form(" %s %d",
+ particle, rp->GetIndexInList())) ;
}
}
}