-////////////////////////////////////////////////////////////////////////
-//
-// name: AliTPCCmpNG.C
-//
-// date: 24.09.2002
-// author: Jiri Chudoba
-// version: 1.0
-// description:
-// define a class TPCGenTrack
-// save TPC related properties of tracks into a single tree
-//
-// input:
-// Int_t nEvents ... nr of events to process
-// Int_t firstEventNr ... first event number (starts from 0)
-// char* fnRecTracks .. name of file with reconstructed tracks
-// char* fnHits ... name of file with hits and Kine Tree
-// char* fnDigits ... name of file with digits
-// char* fnTracks .. output file name, default genTracks.root
-//
-// How to use:
-// Typical usage:
-// .L AliTPCCmpNG.C+
-// TPCFindGenTracks *t = new TPCFindGenTracks("galice.root","tpc.digits.root")
-// t->Exec();
-// .q
-// aliroot
-// .L AliTPCCmpNG.C+
-// TPCCmpTr *t2 = new TPCCmpTr("tpc.tracks.root","genTracks.root","cmpTracks.root");
-// t2->Exec();
-//
-// Details:
-// ========
-//
-// Step 1 - summurize information from simulation
-// ===============================================
-// Compile macro with ACLIC:
-// .L AliTPCCmpNG.C+
-// create an object TPCFindGenTracks, which processes information
-// from simulations. As input it needs:
-// object gAlice: to get magnetic field
-// TreeK: to get parameters of generated particles
-// TreeTR: to get track parameters at the TPC entry
-// TreeD: to get number of digits and digits pattern
-// for a given track in TPC
-// These input objects can be in different files, gAlice, TreeK and
-// TreeTR are in the file fnHits, TreeD in the file fnDigits (can be
-// the same as fnHits. Output is written to the file fnRes
-// ("genTracks.root" by default). Use can specify number of
-// events to process and the first event number:
-// TPCFindGenTracks *t = new TPCFindGenTracks("galice.root","tpc.digits.root","genTracks.root",1,0)
-// The filenames in the example on previous line are defaults, user can
-// specify just the file name with gAlice object (and TreeTR and TreeK),
-// so equivalent shorter initialization is:
-// TPCFindGenTracks *t = new TPCFindGenTracks("galice.root")
-// The task is done by calling Exec() method:
-// t->Exec();
-// User can set different debug levels by invoking:
-// t->SetDebug(debugLevel)
-// Number of events to process and the first event number can be
-// specified as parameters to Exec:
-// t->Exec(nEvents, firstEvent)
-// Then you have to quit root to get rid of problems with deleting gAlice
-// object (it is not deleted, but read again in the following step):
-//
-// Step 2 - compare reconstructed tracks with simulated
-// ====================================================
-//
-// Load (and compile) the macro:
-// .L AliTPCCmpNG.C+
-// Create object TPCCmpTr, which does the comparison. As input it requires
-// name of the file with reconstructed TPC tracks. You can specify
-// name of the file with genTrack tree (summarized info about simulation),
-// file with gAlice object, output file name, number of events to process
-// and first event number:
-// TPCCmpTr *t2 = new TPCCmpTr("tpc.tracks.root","genTracks.root","cmpTracks.root","galice.root",1,0);
-// The interface is quite similar to the TPCFindGenTracks class.
-// Then just invoke Exec() method:
-// t2->Exec();
-//
-// Step 3 - study the results
-// ==========================
-// Load the outoput TTree and you can do Draw(), Scan() or other
-// usual things to do with TTree:
-// TFile *f = new TFile("cmpTracks.root")
-// TTree *t = (TTree*)f->Get("TPCcmpTracks")
-// t->Draw("fVDist[3]","fReconstructed")
-//
-// History:
-//
-// 24.09.02 - first version
-// 24.01.03 - v7, before change from TPC Special Hits to TrackReferences
-// 26.01.03 - change from TPC Special Hits to TrackReferences
-// (loop over TreeTR instead of TreeH)
-// 28.01.03 - v8 last version before removing TPC special point
-// 28.01.03 - remove TPC special point, loop over TreeH
-// store TParticle and AliTrack
-// 29.01.03 - v9 last version before moving the loop over rec. tracks
-// into separate step
-// 03.02.03 - rename to AliTPCCmpNG.C, remove the part with rec. tracks
-// (will be addded in a macro AliTPCCmpTr.C
-//
-//
-////////////////////////////////////////////////////////////////////////
+/// \file AliTPCCmpNG.C
+///
+/// version: 1.0
+/// description:
+/// define a class TPCGenTrack
+/// save TPC related properties of tracks into a single tree
+///
+/// input:
+/// Int_t nEvents ... nr of events to process
+/// Int_t firstEventNr ... first event number (starts from 0)
+/// char* fnRecTracks .. name of file with reconstructed tracks
+/// char* fnHits ... name of file with hits and Kine Tree
+/// char* fnDigits ... name of file with digits
+/// char* fnTracks .. output file name, default genTracks.root
+///
+/// How to use:
+/// Typical usage:
+/// .L AliTPCCmpNG.C+
+/// TPCFindGenTracks *t = new TPCFindGenTracks("galice.root","tpc.digits.root")
+/// t->Exec();
+/// .q
+/// aliroot
+/// .L AliTPCCmpNG.C+
+/// TPCCmpTr *t2 = new TPCCmpTr("tpc.tracks.root","genTracks.root","cmpTracks.root");
+/// t2->Exec();
+///
+/// Details:
+///
+/// Step 1 - summurize information from simulation
+///
+/// Compile macro with ACLIC:
+/// .L AliTPCCmpNG.C+
+/// create an object TPCFindGenTracks, which processes information
+/// from simulations. As input it needs:
+/// object gAlice: to get magnetic field
+/// TreeK: to get parameters of generated particles
+/// TreeTR: to get track parameters at the TPC entry
+/// TreeD: to get number of digits and digits pattern
+/// for a given track in TPC
+/// These input objects can be in different files, gAlice, TreeK and
+/// TreeTR are in the file fnHits, TreeD in the file fnDigits (can be
+/// the same as fnHits. Output is written to the file fnRes
+/// ("genTracks.root" by default). Use can specify number of
+/// events to process and the first event number:
+/// TPCFindGenTracks *t = new TPCFindGenTracks("galice.root","tpc.digits.root","genTracks.root",1,0)
+/// The filenames in the example on previous line are defaults, user can
+/// specify just the file name with gAlice object (and TreeTR and TreeK),
+/// so equivalent shorter initialization is:
+/// TPCFindGenTracks *t = new TPCFindGenTracks("galice.root")
+/// The task is done by calling Exec() method:
+/// t->Exec();
+/// User can set different debug levels by invoking:
+/// t->SetDebug(debugLevel)
+/// Number of events to process and the first event number can be
+/// specified as parameters to Exec:
+/// t->Exec(nEvents, firstEvent)
+/// Then you have to quit root to get rid of problems with deleting gAlice
+/// object (it is not deleted, but read again in the following step):
+///
+/// Step 2 - compare reconstructed tracks with simulated
+///
+/// Load (and compile) the macro:
+/// .L AliTPCCmpNG.C+
+/// Create object TPCCmpTr, which does the comparison. As input it requires
+/// name of the file with reconstructed TPC tracks. You can specify
+/// name of the file with genTrack tree (summarized info about simulation),
+/// file with gAlice object, output file name, number of events to process
+/// and first event number:
+/// TPCCmpTr *t2 = new TPCCmpTr("tpc.tracks.root","genTracks.root","cmpTracks.root","galice.root",1,0);
+/// The interface is quite similar to the TPCFindGenTracks class.
+/// Then just invoke Exec() method:
+/// t2->Exec();
+///
+/// Step 3 - study the results
+///
+/// Load the outoput TTree and you can do Draw(), Scan() or other
+/// usual things to do with TTree:
+/// TFile *f = new TFile("cmpTracks.root")
+/// TTree *t = (TTree*)f->Get("TPCcmpTracks")
+/// t->Draw("fVDist[3]","fReconstructed")
+///
+/// History:
+///
+/// 24.09.02 - first version
+/// 24.01.03 - v7, before change from TPC Special Hits to TrackReferences
+/// 26.01.03 - change from TPC Special Hits to TrackReferences
+/// (loop over TreeTR instead of TreeH)
+/// 28.01.03 - v8 last version before removing TPC special point
+/// 28.01.03 - remove TPC special point, loop over TreeH
+/// store TParticle and AliTrack
+/// 29.01.03 - v9 last version before moving the loop over rec. tracks
+/// into separate step
+/// 03.02.03 - rename to AliTPCCmpNG.C, remove the part with rec. tracks
+/// (will be addded in a macro AliTPCCmpTr.C
+///
+/// \author Jiri Chudoba
+/// \date 24.09.2002
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "iostream.h"
public:
TPCGenInfo();
- AliTrackReference *fTrackRef; // track reference saved in the output tree
- TParticle *fParticle; // generated particle
- Int_t fLabel; // track label
+ AliTrackReference *fTrackRef; ///< track reference saved in the output tree
+ TParticle *fParticle; ///< generated particle
+ Int_t fLabel; ///< track label
- Int_t fRowsWithDigitsInn; // number of rows with digits in the inner sectors
- Int_t fRowsWithDigits; // number of rows with digits in the outer sectors
- Int_t fRowsTrackLength; // last - first row with digit
- Int_t fDigitsInSeed; // digits in the default seed rows
+ Int_t fRowsWithDigitsInn; ///< number of rows with digits in the inner sectors
+ Int_t fRowsWithDigits; ///< number of rows with digits in the outer sectors
+ Int_t fRowsTrackLength; ///< last - first row with digit
+ Int_t fDigitsInSeed; ///< digits in the default seed rows
ClassDef(TPCGenInfo,1) // container for
};
////////////////////////////////////////////////////////////////////////
Bool_t digitRow::TestRow(Int_t row)
{
-//
-// return kTRUE if row is on
-//
+/// return kTRUE if row is on
+
Int_t iC = row/8;
Int_t iB = row%8;
return TESTBIT(fDig[iC],iB);
////////////////////////////////////////////////////////////////////////
Int_t digitRow::RowsOn(Int_t upto)
{
-//
-// returns number of rows with a digit
-// count only rows less equal row number upto
-//
+/// returns number of rows with a digit
+/// count only rows less equal row number upto
+
Int_t total = 0;
for (Int_t i = 0; i<kgRowBytes; i++) {
for (Int_t j = 0; j < 8; j++) {
////////////////////////////////////////////////////////////////////////
void digitRow::Reset()
{
-//
-// resets all rows to zero
-//
+/// resets all rows to zero
+
for (Int_t i = 0; i<kgRowBytes; i++) {
fDig[i] <<= 8;
}
////////////////////////////////////////////////////////////////////////
Int_t digitRow::Last()
{
-//
-// returns the last row number with a digit
-// returns -1 if now digits
-//
+/// returns the last row number with a digit
+/// returns -1 if now digits
+
for (Int_t i = kgRowBytes-1; i>=0; i--) {
for (Int_t j = 7; j >= 0; j--) {
if TESTBIT(fDig[i],j) return i*8+j;
////////////////////////////////////////////////////////////////////////
Int_t digitRow::First()
{
-//
-// returns the first row number with a digit
-// returns -1 if now digits
-//
+/// returns the first row number with a digit
+/// returns -1 if now digits
+
for (Int_t i = 0; i<kgRowBytes; i++) {
for (Int_t j = 0; j < 8; j++) {
if (TESTBIT(fDig[i],j)) return i*8+j;
AliTPCParam *paramTPC);
public:
- Int_t fDebug; //! debug flag
- Int_t fEventNr; //! current event number
- Int_t fLabel; //! track label
- Int_t fNEvents; //! number of events to process
- Int_t fFirstEventNr; //! first event to process
- Int_t fNParticles; //! number of particles in TreeK
- TTree *fTreeGenTracks; //! output tree with generated tracks
- char *fFnRes; //! output file name with stored tracks
- char *fFnHits; //! input file name with hits
- char *fFnDigits; //! input file name with digits
- TFile *fFileGenTracks; //! output file with stored fTreeGenTracks
- TFile *fFileHits; //! input file with hits
- TFile *fFileTreeD; //! input file with digits
- digitRow *fDigitRow; //! pointer to the object saved in Branch
- digitRow *fContainerDigitRow; //! big container for partial information
- AliTrackReference *fTrackRef; //! track reference saved in the output tree
- AliTrackReference *fContainerTR;//! big container for partial information
- Int_t *fIndexTR; //! index of particle label in the fContainerTR
- Int_t fLastIndexTR; //! last used index in fIndexTR
-
- AliTPCParam* fParamTPC; //! AliTPCParam
-
- Double_t fVPrim[3]; //! primary vertex position
- Double_t fVDist[4]; //! distance of the particle vertex from primary vertex
+ Int_t fDebug; //!< debug flag
+ Int_t fEventNr; //!< current event number
+ Int_t fLabel; //!< track label
+ Int_t fNEvents; //!< number of events to process
+ Int_t fFirstEventNr; //!< first event to process
+ Int_t fNParticles; //!< number of particles in TreeK
+ TTree *fTreeGenTracks; //!< output tree with generated tracks
+ char *fFnRes; //!< output file name with stored tracks
+ char *fFnHits; //!< input file name with hits
+ char *fFnDigits; //!< input file name with digits
+ TFile *fFileGenTracks; //!< output file with stored fTreeGenTracks
+ TFile *fFileHits; //!< input file with hits
+ TFile *fFileTreeD; //!< input file with digits
+ digitRow *fDigitRow; //!< pointer to the object saved in Branch
+ digitRow *fContainerDigitRow; //!< big container for partial information
+ AliTrackReference *fTrackRef; //!< track reference saved in the output tree
+ AliTrackReference *fContainerTR;//!< big container for partial information
+ Int_t *fIndexTR; //!< index of particle label in the fContainerTR
+ Int_t fLastIndexTR; //!< last used index in fIndexTR
+
+ AliTPCParam* fParamTPC; //!< AliTPCParam
+
+ Double_t fVPrim[3]; //!< primary vertex position
+ Double_t fVDist[4]; //!< distance of the particle vertex from primary vertex
// the fVDist[3] contains size of the 3-vector
- TParticle *fParticle; //! generated particle
+ TParticle *fParticle; //!< generated particle
- Int_t fRowsWithDigitsInn; //! number of rows with digits in the inner sectors
- Int_t fRowsWithDigits; //! number of rows with digits in the outer sectors
- Int_t fRowsTrackLength; //! last - first row with digit
- Int_t fDigitsInSeed; //! digits in the default seed rows
+ Int_t fRowsWithDigitsInn; //!< number of rows with digits in the inner sectors
+ Int_t fRowsWithDigits; //!< number of rows with digits in the outer sectors
+ Int_t fRowsTrackLength; //!< last - first row with digit
+ Int_t fDigitsInSeed; //!< digits in the default seed rows
private:
// some constants for the original non-pareller tracking (by Y.Belikov)
- static const Int_t seedRow11 = 158; // nRowUp - 1
- static const Int_t seedRow12 = 139; // nRowUp - 1 - (Int_t) 0.125*nRowUp
- static const Int_t seedRow21 = 149; // seedRow11 - shift
- static const Int_t seedRow22 = 130; // seedRow12 - shift
+ static const Int_t seedRow11 = 158; ///< nRowUp - 1
+ static const Int_t seedRow12 = 139; ///< nRowUp - 1 - (Int_t) 0.125*nRowUp
+ static const Int_t seedRow21 = 149; ///< seedRow11 - shift
+ static const Int_t seedRow22 = 130; ///< seedRow12 - shift
static const Double_t kRaddeg = 180./TMath::Pi();
- static const Int_t fgMaxIndexTR = 50000; // maximum number of tracks with a track ref
- static const Int_t fgMaxParticles = 2000000; // maximum number of generated particles
- static const Double_t fgPtCut = .001; // do not store particles with generated pT less than this
+ static const Int_t fgMaxIndexTR = 50000; ///< maximum number of tracks with a track ref
+ static const Int_t fgMaxParticles = 2000000; ///< maximum number of generated particles
+ static const Double_t fgPtCut = .001; ///< do not store particles with generated pT less than this
static const Float_t fgTrackRefLocalXMax = 82.95;
static const Float_t fgTrackRefLocalXMaxDelta = 500.;
////////////////////////////////////////////////////////////////////////
Int_t TPCFindGenTracks::TreeKLoop()
{
-//
-// open the file with treeK
-// loop over all entries there and save information about some tracks
-//
-
+/// open the file with treeK
+/// loop over all entries there and save information about some tracks
+
fFileHits->cd();
if (fDebug > 0) {
cout<<"There are "<<fNParticles<<" primary and secondary particles in event "
////////////////////////////////////////////////////////////////////////
Int_t TPCFindGenTracks::TreeDLoop()
{
-//
-// open the file with treeD
-// loop over all entries there and save information about some tracks
-//
+/// open the file with treeD
+/// loop over all entries there and save information about some tracks
// Int_t nrow_up=fParamTPC->GetNRowUp();
////////////////////////////////////////////////////////////////////////
Int_t TPCFindGenTracks::TreeTRLoop()
{
-//
-// loop over TrackReferences and store the first one for each track
-//
-
+/// loop over TrackReferences and store the first one for each track
+
TTree *treeTR=gAlice->TreeTR();
if (!treeTR) {
cerr<<"TreeTR not found"<<endl;
AliTPCParam *paramTPC);
private:
- digitRow *fDigitRow; //! pointer to the object saved in Branch
- Int_t fEventNr; //! current event number
- Int_t fLabel; //! track label
- Int_t fNEvents; //! number of events to process
- Int_t fFirstEventNr; //! first event to process
+ digitRow *fDigitRow; //!< pointer to the object saved in Branch
+ Int_t fEventNr; //!< current event number
+ Int_t fLabel; //!< track label
+ Int_t fNEvents; //!< number of events to process
+ Int_t fFirstEventNr; //!< first event to process
- char *fFnCmp; //! output file name with cmp tracks
- TFile *fFileCmp; //! output file with cmp tracks
- TTree *fTreeCmp; //! output tree with cmp tracks
+ char *fFnCmp; //!< output file name with cmp tracks
+ TFile *fFileCmp; //!< output file with cmp tracks
+ TTree *fTreeCmp; //!< output tree with cmp tracks
- char *fFnGenTracks; //! input file name with gen tracks
+ char *fFnGenTracks; //!< input file name with gen tracks
TFile *fFileGenTracks;
TTree *fTreeGenTracks;
- char *fFnHits; //! input file name with gAlice object (needed for B)
- TFile *fFileHits; //! input file with gAlice
+ char *fFnHits; //!< input file name with gAlice object (needed for B)
+ TFile *fFileHits; //!< input file with gAlice
- char *fFnRecTracks; //! input file name with tpc rec. tracks
- TFile *fFileRecTracks; //! input file with reconstructed tracks
- TTree *fTreeRecTracks; //! tree with reconstructed tracks
+ char *fFnRecTracks; //!< input file name with tpc rec. tracks
+ TFile *fFileRecTracks; //!< input file with reconstructed tracks
+ TTree *fTreeRecTracks; //!< tree with reconstructed tracks
- AliTPCtrack *fTPCTrack; //! pointer to TPC track to connect branch
- Int_t *fIndexRecTracks; //! index of particle label in the TreeT_TPC
+ AliTPCtrack *fTPCTrack; //!< pointer to TPC track to connect branch
+ Int_t *fIndexRecTracks; //!< index of particle label in the TreeT_TPC
- Int_t fRowsWithDigitsInn; //! number of rows with digits in the inner sectors
- Int_t fRowsWithDigits; //! number of rows with digits in the outer sectors
- Int_t fRowsTrackLength; //! last - first row with digit
- Int_t fDigitsInSeed; //! digits in the default seed rows
- TParticle *fParticle; //! generated particle
- Double_t fVDist[4]; //! distance of the particle vertex from primary vertex
+ Int_t fRowsWithDigitsInn; //!< number of rows with digits in the inner sectors
+ Int_t fRowsWithDigits; //!< number of rows with digits in the outer sectors
+ Int_t fRowsTrackLength; //!< last - first row with digit
+ Int_t fDigitsInSeed; //!< digits in the default seed rows
+ TParticle *fParticle; //!< generated particle
+ Double_t fVDist[4]; //!< distance of the particle vertex from primary vertex
// the fVDist[3] contains size of the 3-vector
- AliTrackReference *fTrackRef; //! track reference saved in the output tree
- Int_t fReconstructed; //! flag if track was reconstructed
- AliTPCParam* fParamTPC; //! AliTPCParam
+ AliTrackReference *fTrackRef; //!< track reference saved in the output tree
+ Int_t fReconstructed; //!< flag if track was reconstructed
+ AliTPCParam* fParamTPC; //!< AliTPCParam
- Int_t fNParticles; //! number of particles in the input tree genTracks
- Int_t fDebug; //! debug flag
+ Int_t fNParticles; //!< number of particles in the input tree genTracks
+ Int_t fDebug; //!< debug flag
- Int_t fNextTreeGenEntryToRead; //! last entry already read from genTracks tree
- TPCGenInfo *fGenInfo; //! container for all the details
+ Int_t fNextTreeGenEntryToRead; //!< last entry already read from genTracks tree
+ TPCGenInfo *fGenInfo; //!< container for all the details
- Double_t fRecPhi; // reconstructed phi angle (0;2*kPI)
- Double_t fLambda; // reconstructed
- Double_t fRecPt_1; // reconstructed
- Float_t fdEdx; // reconstructed dEdx
+ Double_t fRecPhi; ///< reconstructed phi angle (0;2*kPI)
+ Double_t fLambda; ///< reconstructed
+ Double_t fRecPt_1; ///< reconstructed
+ Float_t fdEdx; ///< reconstructed dEdx
ClassDef(TPCCmpTr,1) // class which creates and fills tree with TPCGenTrack objects
////////////////////////////////////////////////////////////////////////
Bool_t TPCCmpTr::ConnectGenTree()
{
-//
-// connect all branches from the genTracksTree
-// use the same variables as for the new cmp tree, it may work
-//
+/// connect all branches from the genTracksTree
+/// use the same variables as for the new cmp tree, it may work
+
fFileGenTracks = TFile::Open(fFnGenTracks,"READ");
if (!fFileGenTracks) {
cerr<<"Error in ConnectGenTree: cannot open file "<<fFnGenTracks<<endl;
Int_t TPCCmpTr::TreeTLoop(Int_t eventNr)
{
-//
-// loop over all TPC reconstructed tracks and store info in memory
-//
+/// loop over all TPC reconstructed tracks and store info in memory
if (!fFileRecTracks) fFileRecTracks = TFile::Open(fFnRecTracks,"read");
////////////////////////////////////////////////////////////////////////
Int_t TPCCmpTr::TreeGenLoop(Int_t eventNr)
{
-//
-// loop over all entries for a given event, find corresponding
-// rec. track and store in the fTreeCmp
-//
-
+/// loop over all entries for a given event, find corresponding
+/// rec. track and store in the fTreeCmp
+
fFileGenTracks->cd();
Int_t entry = fNextTreeGenEntryToRead;
Double_t nParticlesTR = fTreeGenTracks->GetEntriesFast();
#endif
-// Marian Ivanov
-// test of the tpc merging using AliRunDigitizer and
-// TPC Hits2Digits, Hits2SDigits and SDigits2Digits macros
-
-// preparation
-// 0. make 2 directorys - ev1 and ev2
-
-// 1.make hits, digits,sdigits and sdigits-digits in both directories
-// 1.a galice -b -q grun.C and produce hits
-// 1.b. cp galice.root galice.root.hits
-// 1.c run AliTPCHits2Digits.C
-// 1.d cp galice.root galice.root.digits
-// 1.e copy back cp galice.root.hits galice.root
-// 1.f run AliTPCSDigits2Digits.C
-// 1.g cp galice.root galice.root.sdigits
-// 1.h run AliTPCSDigits2Digit.C
-// 1.i cp galice.root galice.root.dig2
-
-// 2. cp ev1/galice.root/galice.root.sdigit galice.root
-// 3. load this macro and run testmerge()
-
-// 4. run test function bellow to compare merged digits with original one
-// 5. to be noticed output ftom testx() function - should be bigger than
-// noise because in proces of digitisation we use different seed
-// of random numbers for diffusion and gas gain
-// -anyway in place where we have the signal should occur the signal in both casses
-// - only the amplitude should be different - by factor of sqrt
-
+/// \file AliTPCTestMerge.C
+///
+/// test of the tpc merging using AliRunDigitizer and
+/// TPC Hits2Digits, Hits2SDigits and SDigits2Digits macros
+/// preparation
+/// 0. make 2 directorys - ev1 and ev2
+/// 1.make hits, digits,sdigits and sdigits-digits in both directories
+/// 1.a galice -b -q grun.C and produce hits
+/// 1.b. cp galice.root galice.root.hits
+/// 1.c run AliTPCHits2Digits.C
+/// 1.d cp galice.root galice.root.digits
+/// 1.e copy back cp galice.root.hits galice.root
+/// 1.f run AliTPCSDigits2Digits.C
+/// 1.g cp galice.root galice.root.sdigits
+/// 1.h run AliTPCSDigits2Digit.C
+/// 1.i cp galice.root galice.root.dig2
+/// 2. cp ev1/galice.root/galice.root.sdigit galice.root
+/// 3. load this macro and run testmerge()
+/// 4. run test function bellow to compare merged digits with original one
+/// 5. to be noticed output ftom testx() function - should be bigger than
+/// noise because in proces of digitisation we use different seed
+/// of random numbers for diffusion and gas gain
+/// -anyway in place where we have the signal should occur the signal in both casses
+/// - only the amplitude should be different - by factor of sqrt
+///
+/// \author Marian Ivanov
void testmerge()
{
- // merge two example events
- //
- //it merge two events -one from current directory -second from directory ev2
-
+ /// merge two example events
+ ///
+ /// it merge two events -one from current directory -second from directory ev2
+
if(gAlice) delete gAlice;
AliRunDigitizer * manager = new AliRunDigitizer(2,1);
manager->SetTreeDTPCBaseName("TreeD_75x40_100x60_150x60_");
void drawmerged(Int_t sec, Int_t row, Int_t x1=-1, Int_t x2=-1, Int_t y1=-1, Int_t y2=-1)
{
- //if you think that there is memory leak -
- //you are tru but othervise graphic doesn't work
- // sec=0; row =0;
+ /// if you think that there is memory leak -
+ /// you are tru but othervise graphic doesn't work
+ /// sec=0; row =0;
+
TFile * f = new TFile("galice.root");
TFile * f1= new TFile("ev1/galice.root.digits");
TFile * f2= new TFile("ev2/galice.root.digits");
}
void test1(){
- //test of the merged digits
- //compare merged digits with standard digits
+ /// test of the merged digits
+ /// compare merged digits with standard digits
+
TFile f("galice.root");
TFile f1("ev1/galice.root.digits");
TFile f2("ev2/galice.root.digits");
}
void test5(){
- //
- //compare merged digits with digits obtained hits2sdig->sdigtodig
+ /// compare merged digits with digits obtained hits2sdig->sdigtodig
+
TFile f("galice.root");
TFile f1("ev1/galice.root.dig2");
TFile f2("ev2/galice.root.dig2");
}
void test3(){
- //test of the merged digits
+ /// test of the merged digits
+
TFile f("galice.root");
TFile f1("ev1/galice.root.sdigits");
TFile f2("ev2/galice.root.sdigits");
void TestSDigitsDig2(){
- //test of the digits produced by the Hits2Digits
- //and Hits2SDigits - SDigits2Digits chain
+ /// test of the digits produced by the Hits2Digits
+ /// and Hits2SDigits - SDigits2Digits chain
+
TFile f1("galice.root.digits");
TFile f2("galice.root.dig2");
//
}
void TestSDigitsDig1(){
- //test of the digits produced by the Hits2Digits
- //and Hits2SDigits - SDigits2Digits chain
+ /// test of the digits produced by the Hits2Digits
+ /// and Hits2SDigits - SDigits2Digits chain
+
TFile f1("galice.root.digits");
TFile f2("galice.root.dig2");
//
void test4(){
- //TPC internal test
+ /// TPC internal test
+
TFile f1("galice.root.sdigits");
TFile f2("galice.root.digits");
TTree * tree1 = (TTree*)f1.Get("TreeS_75x40_100x60_150x60_0");