#include "Riostream.h"
#include "AliPMDReconstructor.h"
-#include "AliRunLoader.h"
#include "AliRun.h"
#include "AliPMDClusterFinder.h"
#include "AliPMDtracker.h"
#include "AliESDPmdTrack.h"
#include "AliESDEvent.h"
#include "AliLog.h"
+#include "AliRunInfo.h"
ClassImp(AliPMDReconstructor)
-//_____________________________________________________________________________
-void AliPMDReconstructor::Init(AliRunLoader* runLoader)
-{
- // Initialize the reconstructor
- AliDebug(1, Form("Init called with runloader 0x%x", runLoader));
- if (!runLoader)
- {
- AliWarning("Init : No run loader");
- return;
- }
-}
-
-//_____________________________________________________________________________
-void AliPMDReconstructor::Reconstruct(AliRunLoader* runLoader) const
-{
-// reconstruct clusters from digits file
-
- AliPMDClusterFinder *pmdClus = new AliPMDClusterFinder(runLoader);
- pmdClus->Load();
- for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++)
- {
- pmdClus->Digits2RecPoints(iEvent);
- }
- pmdClus->UnLoad();
- delete pmdClus;
-
-}
-// ------------------------------------------------------------------------ //
-
-void AliPMDReconstructor::Reconstruct(AliRunLoader* runLoader,
- AliRawReader *rawReader) const
-{
-// reconstruct clusters from Raw Data
-
- AliPMDClusterFinder pmdClus(runLoader);
- pmdClus.LoadClusters();
-
- Int_t iEvent = 0;
- while (rawReader->NextEvent()) {
- pmdClus.Digits2RecPoints(iEvent,rawReader);
- iEvent++;
- }
- pmdClus.UnLoadClusters();
-
-}
-
-
// ------------------------------------------------------------------------ //
void AliPMDReconstructor::Reconstruct(AliRawReader *rawReader,
TTree *clustersTree) const
{
// reconstruct clusters from Raw Data
+// Event Species Added By satyajit
+ Int_t gRecoMode = 1;
+ TString beamType = GetRunInfo()->GetBeamType();
+
+ if (((beamType.CompareTo("pp"))==0) ||
+ ((beamType.CompareTo("p-p"))==0)||
+ ((beamType.CompareTo("PP"))==0) ||
+ ((beamType.CompareTo("P-P"))==0)) {
+ gRecoMode=1;
+ }
+
+ else if ((beamType.CompareTo("A-A")) == 0 ||
+ (beamType.CompareTo("AA")) == 0) {
+ gRecoMode=2;
+ }
- AliPMDClusterFinder pmdClus;
- pmdClus.Digits2RecPoints(rawReader, clustersTree);
-
+ static AliPMDClusterFinder pmdClus;
+ pmdClus.Digits2RecPoints(rawReader, clustersTree, gRecoMode);
}
// ------------------------------------------------------------------------ //
void AliPMDReconstructor::Reconstruct(TTree *digitsTree,
TTree *clustersTree) const
{
-// reconstruct clusters from Raw Data
-
- AliPMDClusterFinder pmdClus;
- pmdClus.Digits2RecPoints(digitsTree, clustersTree);
+ // reconstruct clusters from Digits
+ // Setting reconstruction mode
+
+ // Added to Have Sepatrate Event Spcies
+ Int_t gRecoMode = 1;
+ TString beamType = GetRunInfo()->GetBeamType();
+
+ if (((beamType.CompareTo("pp"))==0) ||
+ ((beamType.CompareTo("p-p"))==0)||
+ ((beamType.CompareTo("PP"))==0) ||
+ ((beamType.CompareTo("P-P"))==0)) {
+ gRecoMode=1;
+ }
+
+ else if ((beamType.CompareTo("A-A")) == 0 ||
+ (beamType.CompareTo("AA")) == 0) {
+ gRecoMode=2;
+ }
+
+ static AliPMDClusterFinder pmdClus;
+ pmdClus.Digits2RecPoints(digitsTree, clustersTree,gRecoMode);
}
-// ------------------------------------------------------------------------ //
-
-//void AliPMDReconstructor::FillESD(AliRunLoader* runLoader,AliESDEvent* esd) const
-//{
-// AliLoader* loader = runLoader->GetLoader("PMDLoader");
-// if (!loader) {
-// AliError("PMD loader not found");
-// return;
-// }
-// loader->LoadRecPoints("READ");
-// TTree *treeR = loader->TreeR();
-// AliPMDtracker pmdtracker;
-// pmdtracker.LoadClusters(treeR);
-// pmdtracker.Clusters2Tracks(esd);
-// loader->UnloadRecPoints();
-//}
-
// ------------------------------------------------------------------------ //
void AliPMDReconstructor::FillESD(AliRawReader* /*rawReader*/,
TTree* clustersTree, AliESDEvent* esd) const
{
- AliPMDtracker pmdtracker;
- pmdtracker.LoadClusters(clustersTree);
- pmdtracker.Clusters2Tracks(esd);
+ static AliPMDtracker pmdtracker;
+ pmdtracker.LoadClusters(clustersTree);
+ pmdtracker.Clusters2Tracks(esd);
}
// ------------------------------------------------------------------------ //
void AliPMDReconstructor::FillESD(TTree * /*digitsTree*/,
TTree* clustersTree, AliESDEvent* esd) const
{
- AliPMDtracker pmdtracker;
- pmdtracker.LoadClusters(clustersTree);
- pmdtracker.Clusters2Tracks(esd);
+ static AliPMDtracker pmdtracker;
+ pmdtracker.LoadClusters(clustersTree);
+ pmdtracker.Clusters2Tracks(esd);
}