*/
//End_Html
-#include "TFile.h"
-#include "TFolder.h"
-#include "TROOT.h"
-#include "TTask.h"
-#include "TTree.h"
-#include "TVirtualMC.h"
+#include <TClonesArray.h>
+#include <TFile.h>
+#include <TFolder.h>
+#include <TROOT.h>
+#include <TTask.h>
+#include <TTree.h>
+#include <TVirtualMC.h>
+#include <TStopwatch.h>
#include "AliConst.h"
#include "AliLoader.h"
ClassImp(AliTOF)
//_____________________________________________________________________________
-AliTOF::AliTOF()
+AliTOF::AliTOF():
+ fFGeom(0x0),
+ fDTask(0x0),
+ fReTask(0x0),
+ fSDigits(0x0),
+ fNSDigits(0),
+ fReconParticles(0x0),
+ fIdSens(-1),
+ fTZero(kFALSE),
+ fTOFGeometry(0x0)
{
//
// Default constructor
//
- fFGeom = 0x0;
- fDTask = 0x0;
- fReTask = 0x0;
+
+ //by default all sectors switched on
+ for (Int_t ii=0; ii<18; ii++) fTOFSectors[ii]=0;
+
+ fDigits = 0;
fIshunt = 0;
- fSDigits = 0 ;
- fNSDigits = 0;
- fDigits = 0 ;
- fReconParticles = 0x0;
- fName="TOF";
- fTZero = kFALSE;
- fTOFGeometry = 0;
+ fName = "TOF";
}
//_____________________________________________________________________________
AliTOF::AliTOF(const char *name, const char *title, Option_t *option)
- : AliDetector(name,title)
+ :
+ AliDetector(name,title),
+ fFGeom(0x0),
+ fDTask(0x0),
+ fReTask(0x0),
+ fSDigits(0x0),
+ fNSDigits(0),
+ fReconParticles(0x0),
+ fIdSens(-1),
+ fTZero(kFALSE),
+ fTOFGeometry(0x0)
{
//
// AliTOF standard constructor
// Initialization of hits, sdigits and digits array
// added option for time zero analysis
- fFGeom = 0x0; //skowron
- fDTask = 0x0;
- fReTask = 0x0;
- fReconParticles= 0x0;
+ //skowron
fTOFGeometry = new AliTOFGeometry();
+ //by default all sectors switched on
+ for (Int_t ii=0; ii<18; ii++) fTOFSectors[ii]=0;
+
if (strstr(option,"tzero")){
fHits = new TClonesArray("AliTOFhitT0", 1000);
fTZero = kTRUE;
- AliWarning("tzero option requires AliTOFv4T0/AliTOFv5T0 as TOF version (check Your Config.C)");
+ // AliWarning("tzero option requires AliTOFv4T0/AliTOFv5T0 as TOF version (check Your Config.C)");
}else{
fHits = new TClonesArray("AliTOFhit", 1000);
fTZero = kFALSE;
fIshunt = 0;
fSDigits = new TClonesArray("AliTOFSDigit", 1000);
fDigits = new TClonesArray("AliTOFdigit", 1000);
- fNSDigits = 0;
-
- fFGeom = 0x0;
- fDTask = 0x0;
- fReTask = 0x0;
- fReconParticles = 0x0;
//
// Digitization parameters
//
// (Transfer Functions to be inserted here)
//
- SetMarkerColor(7);
- SetMarkerStyle(2);
- SetMarkerSize(0.4);
+ //PH SetMarkerColor(7);
+ //PH SetMarkerStyle(2);
+ //PH SetMarkerSize(0.4);
// Strip Parameters
//fGapA = 4.; //cm Gap beetween tilted strip in A-type plate
}
//_____________________________________________________________________________
AliTOF::AliTOF(const AliTOF &source)
- :AliDetector()
+ :AliDetector(),
+ fFGeom(0x0),
+ fDTask(0x0),
+ fReTask(0x0),
+ fSDigits(0x0),
+ fNSDigits(0),
+ fReconParticles(0x0),
+ fIdSens(-1),
+ fTZero(kFALSE),
+ fTOFGeometry(0x0)
{
// copy constructor
}
//_____________________________________________________________________________
-void AliTOF::AddDigit(Int_t *tracks, Int_t *vol, Float_t *digits)
+void AliTOF::AddDigit(Int_t *tracks, Int_t *vol, Int_t *digits)
{
//
// Add a TOF digit
}
//_____________________________________________________________________________
-void AliTOF::AddSDigit(Int_t tracknum, Int_t *vol, Float_t *digits)
+void AliTOF::AddSDigit(Int_t tracknum, Int_t *vol, Int_t *digits)
{
//
Float_t xTof, yTof;
- if (IsVersion()==7) {
+ if (IsVersion()==8) {
+
+ xTof = 124.5;//fTOFGeometry->StripLength()+2.*(0.3+0.03); // cm, x-dimension of FTOA volume
+ yTof = fTOFGeometry->Rmax()-fTOFGeometry->Rmin(); // cm, y-dimension of FTOA volume
+ Float_t zTof = fTOFGeometry->ZlenA(); // cm, z-dimension of FTOA volume
+
+ // TOF module internal definitions
+ TOFpc(xTof, yTof, zTof);
+
+ } else if (IsVersion()==7) {
xTof = 124.5;//fTOFGeometry->StripLength()+2.*(0.3+0.03); // cm, x-dimension of FTOA volume
yTof = fTOFGeometry->Rmax()-fTOFGeometry->Rmin(); // cm, y-dimension of FTOA volume
//
if ((evNumber2-evNumber1)==1)
- AliDebug(1, Form("I am making sdigits for the %dth event", evNumber1))
- else if ((evNumber2-evNumber1)>1)
- AliDebug(1, Form("I am making sdigits for the events from the "
- "%dth to the %dth", evNumber1, evNumber2-1));
+ AliDebug(1, Form("I am making sdigits for the %dth event", evNumber1));
+ if ((evNumber2-evNumber1)>1)
+ AliDebug(1, Form("I am making sdigits for the events from the %dth to the %dth", evNumber1, evNumber2-1));
AliRunLoader * rl = fLoader->GetRunLoader();
AliTOFSDigitizer sd((rl->GetFileName()).Data(),evNumber1,evNumber2) ;
}
//___________________________________________________________________________
-Bool_t AliTOF::CheckOverlap(Int_t* vol, Float_t* digit,Int_t Track)
+Bool_t AliTOF::CheckOverlap(Int_t* vol, Int_t* digit,Int_t Track)
{
//
// Checks if 2 or more hits belong to the same pad.
if (vol[i]!=vol2[i]) idem=kFALSE;}
if (idem){ // same pad fired
- Float_t tdc2 = digit[0];
- Float_t tdc1 = currentDigit->GetTdc();
+ Int_t tdc2 = digit[0];
+ Int_t tdc1 = currentDigit->GetTdc();
// we separate two digits on the same pad if
// they are separated in time by at least 25 ns
overlap = kTRUE;
return overlap;
} else
- overlap= kFALSE;
+ overlap= kFALSE;
} // close if (idem) -> two digits on the same TOF pad
// Starting from the TOF digits, writes the Raw Data objects
//
+ TStopwatch stopwatch;
+ stopwatch.Start();
+
fLoader->LoadDigits();
TTree* digits = fLoader->TreeD();
return;
}
- //AliRunLoader *rl = AliRunLoader::Open("galice.root",AliConfig::GetDefaultEventFolderName(),"read");
+ /*
fRunLoader->CdGAFile();
TFile *in=(TFile*)gFile;
in->cd();
AliTOFGeometry *geometry = (AliTOFGeometry*)in->Get("TOFgeometry");
-
- AliTOFDDLRawData rawWriter(geometry);
+ */
+ AliTOFDDLRawData rawWriter;
//AliTOFDDLRawData rawWriter;
rawWriter.SetVerbose(0);
+ //rawWriter.SetFakeOrphaneProduction(kTRUE);
+ //rawWriter.SetPackedAcquisitionMode(kFALSE);
+ if (rawWriter.GetPackedAcquisitionMode()) {
+ if(rawWriter.GetMatchingWindow()>8192)
+ AliWarning(Form("You are running in packing mode and the matching window is %.2f ns, i.e. greater than 199.8848 ns",
+ rawWriter.GetMatchingWindow()*AliTOFGeometry::TdcBinWidth()*1.e-03));
+ }
- AliInfo("Formatting raw data for TOF");
+ AliDebug(1,"Formatting raw data for TOF");
digits->GetEvent(0);
rawWriter.RawDataTOF(digits->GetBranch("TOF"));
fLoader->UnloadDigits();
+ AliDebug(1, Form("Execution time to write TOF raw data : R:%.2fs C:%.2fs",
+ stopwatch.RealTime(),stopwatch.CpuTime()));
+
}
//____________________________________________________________________________