// --- ROOT system ---
+#include "TMath.h"
// --- ALIROOT system ---
+#include "AliConfig.h"
#include "AliPHOS.h"
#include "AliPHOSTrigger.h"
#include "AliPHOSGeometry.h"
-#include "AliPHOSGetter.h"
+#include "AliPHOSDigit.h"
+#include "AliPHOSLoader.h"
#include "AliPHOSPulseGenerator.h"
#include "AliTriggerInput.h"
// cpy ctor
}
+//_________________________________________________________________________
+AliPHOSTrigger::~AliPHOSTrigger()
+{
+ // dtor
+
+ if(fADCValuesHighnxn)delete [] fADCValuesHighnxn;
+ if(fADCValuesLownxn)delete [] fADCValuesLownxn;
+ if(fADCValuesHigh2x2)delete [] fADCValuesHigh2x2;
+ if(fADCValuesLow2x2)delete [] fADCValuesLow2x2;
+ // fDigitsList is now ours...
+}
+
//_________________________________________________________________________
AliPHOSTrigger & AliPHOSTrigger::operator = (const AliPHOSTrigger &)
{
// Do not create inputs again!!
if( fInputs.GetEntriesFast() > 0 ) return;
+
+ TString name = GetName();
- fInputs.AddLast( new AliTriggerInput( "PHOS_L0", "PHOS L0", 0x02 ) );
- fInputs.AddLast( new AliTriggerInput( "PHOS_JetHPt_L1","PHOS Jet High Pt L1", 0x04 ) );
- fInputs.AddLast( new AliTriggerInput( "PHOS_JetMPt_L1","PHOS Jet Medium Pt L1", 0x08 ) );
- fInputs.AddLast( new AliTriggerInput( "PHOS_JetLPt_L1","PHOS Jet Low Pt L1", 0x016 ) );
+ fInputs.AddLast( new AliTriggerInput( "PHOS_L0", name, 0 ) );
+ fInputs.AddLast( new AliTriggerInput( "PHOS_JetHPt_L1",name, 1 ) );
+ fInputs.AddLast( new AliTriggerInput( "PHOS_JetMPt_L1",name, 1 ) );
+ fInputs.AddLast( new AliTriggerInput( "PHOS_JetLPt_L1",name, 1 ) );
}
//Transform digit amplitude in Raw Samples
if (fADCValuesLow2x2 == 0) {
fADCValuesLow2x2 = new Int_t[nTimeBins];
- fADCValuesHigh2x2 = new Int_t[nTimeBins];
}
+ if(!fADCValuesHigh2x2) fADCValuesHigh2x2 = new Int_t[nTimeBins];
+
pulse.SetAmplitude(f2x2MaxAmp);
pulse.SetTZero(maxtimeR2);
fADCValuesLownxn = new Int_t[nTimeBins];
}
- pulse.SetAmplitude(maxtimeRn);
- pulse.SetTZero(fnxnMaxAmp);
+ pulse.SetAmplitude(fnxnMaxAmp);
+ pulse.SetTZero(maxtimeRn);
pulse.MakeSamples();
pulse.GetSamples(fADCValuesHighnxn, fADCValuesLownxn) ;
}
//____________________________________________________________________________
-void AliPHOSTrigger::Trigger()
+void AliPHOSTrigger::Trigger(TClonesArray *digits)
{
-
//Main Method to select triggers.
- AliRunLoader * rl = gAlice->GetRunLoader() ;
- TString fileName = rl->GetFileName() ;
- DoIt(fileName.Data()) ;
+ fDigitsList = digits;
+ DoIt() ;
}
//____________________________________________________________________________
-void AliPHOSTrigger::Trigger(const char * fileName)
-{
-
- //Main Method to select triggers.
-
-
- DoIt(fileName) ;
-}
-
-//____________________________________________________________________________
-void AliPHOSTrigger::DoIt(const char * fileName)
+void AliPHOSTrigger::DoIt()
{
// does the trigger job
- AliPHOSGetter * gime = AliPHOSGetter::Instance( fileName ) ;
+ AliRunLoader* rl = AliRunLoader::GetRunLoader() ;
+ AliPHOSLoader * phosLoader = dynamic_cast<AliPHOSLoader*>(rl->GetLoader("PHOSLoader"));
- //Get Geometry
- const AliPHOSGeometry * geom = AliPHOSGetter::Instance()->PHOSGeometry() ;
+ // Get PHOS Geometry object
+ AliPHOSGeometry *geom;
+ if (!(geom = AliPHOSGeometry::GetInstance()))
+ geom = AliPHOSGeometry::GetInstance("IHEP","");
//Define parameters
Int_t nModules = geom->GetNModules();
//Take the digits list if simulation
if(fSimulation)
- fDigitsList = gime->Digits() ;
+ fDigitsList = phosLoader->Digits() ;
if(!fDigitsList)
AliFatal("Digits not found !") ;
//Set the trigger
if(fIsolateInModule)
SetTriggers(ampmods,imod,ampmax2,ampmaxn) ;
- if(!fIsolateInModule)
+ else
SetTriggers(amptrus,imod,ampmax2,ampmaxn) ;
}