@@ -22,14 +22,18 @@ enum TreeIndex { // Index of the output trees
2222 kMcCaloLabel ,
2323 kMcCollisionLabel ,
2424 kBC ,
25+ kRICH ,
2526 kTrees
2627};
2728
29+ const int fBasketSizeEvents = 1000000 ; // Maximum basket size of the trees for events
30+ const int fBasketSizeTracks = 10000000 ; // Maximum basket size of the trees for tracks
31+
2832TList * TreeList = new TList ();
2933TTree * CreateTree (TreeIndex t )
3034{
31- const TString TreeName [kTrees ] = {"O2collision" , "DbgEventExtra" , "O2track" , "O2calo" , "O2calotrigger" , "O2muon" , "O2muoncluster" , "O2zdc" , "O2fv0a" , "O2fv0c" , "O2ft0" , "O2fdd" , "O2v0" , "O2cascade" , "O2tof" , "O2mcparticle" , "O2mccollision" , "O2mctracklabel" , "O2mccalolabel" , "O2mccollisionlabel" , "O2bc" };
32- const TString TreeTitle [kTrees ] = {"Collision tree" , "Collision extra" , "Barrel mytracks" , "Calorimeter cells" , "Calorimeter triggers" , "MUON mytracks" , "MUON clusters" , "ZDC" , "FV0A" , "FV0C" , "FT0" , "FDD" , "V0s" , "Cascades" , "TOF hits" , "Kinematics" , "MC collisions" , "MC track labels" , "MC calo labels" , "MC collision labels" , "BC info" };
35+ const TString TreeName [kTrees ] = {"O2collision" , "DbgEventExtra" , "O2track" , "O2calo" , "O2calotrigger" , "O2muon" , "O2muoncluster" , "O2zdc" , "O2fv0a" , "O2fv0c" , "O2ft0" , "O2fdd" , "O2v0" , "O2cascade" , "O2tof" , "O2mcparticle" , "O2mccollision" , "O2mctracklabel" , "O2mccalolabel" , "O2mccollisionlabel" , "O2bc" , "O2rich" };
36+ const TString TreeTitle [kTrees ] = {"Collision tree" , "Collision extra" , "Barrel mytracks" , "Calorimeter cells" , "Calorimeter triggers" , "MUON mytracks" , "MUON clusters" , "ZDC" , "FV0A" , "FV0C" , "FT0" , "FDD" , "V0s" , "Cascades" , "TOF hits" , "Kinematics" , "MC collisions" , "MC track labels" , "MC calo labels" , "MC collision labels" , "BC info" , "RICH info" };
3337 TTree * tree = new TTree (TreeName [t ], TreeTitle [t ]);
3438 TreeList -> Add (tree );
3539 return tree ;
@@ -79,6 +83,7 @@ TTree* MakeTreeO2collision()
7983 tEvents -> Branch ("fCollisionTime" , & collision .fCollisionTime , "fCollisionTime/F" );
8084 tEvents -> Branch ("fCollisionTimeRes" , & collision .fCollisionTimeRes , "fCollisionTimeRes/F" );
8185 tEvents -> Branch ("fCollisionTimeMask" , & collision .fCollisionTimeMask , "fCollisionTimeMask/b" );
86+ tEvents -> SetBasketSize ("*" , fBasketSizeEvents );
8287 return tEvents ;
8388}
8489
@@ -125,6 +130,7 @@ TTree* MakeTreeO2mccollision()
125130 tMCvtx -> Branch ("fT" , & mccollision .fT , "fT/F" );
126131 tMCvtx -> Branch ("fWeight" , & mccollision .fWeight , "fWeight/F" );
127132 tMCvtx -> Branch ("fImpactParameter" , & mccollision .fImpactParameter , "fImpactParameter/F" );
133+ tMCvtx -> SetBasketSize ("*" , fBasketSizeEvents );
128134 return tMCvtx ;
129135}
130136
@@ -140,6 +146,7 @@ TTree* MakeTreeO2bc()
140146 tBC -> Branch ("fRunNumber" , & bc .fRunNumber , "fRunNumber/I" );
141147 tBC -> Branch ("fGlobalBC" , & bc .fGlobalBC , "fGlobalBC/l" );
142148 tBC -> Branch ("fTriggerMask" , & bc .fTriggerMask , "fTriggerMask/l" );
149+ tBC -> SetBasketSize ("*" , fBasketSizeEvents );
143150 return tBC ;
144151}
145152
@@ -266,6 +273,7 @@ TTree* MakeTreeO2track()
266273 tTracks -> Branch ("fTOFExpMom" , & mytracks .fTOFExpMom , "fTOFExpMom/F" );
267274 tTracks -> Branch ("fTrackEtaEMCAL" , & mytracks .fTrackEtaEMCAL , "fTrackEtaEMCAL/F" );
268275 tTracks -> Branch ("fTrackPhiEMCAL" , & mytracks .fTrackPhiEMCAL , "fTrackPhiEMCAL/F" );
276+ tTracks -> SetBasketSize ("*" , fBasketSizeTracks );
269277 return tTracks ;
270278}
271279
@@ -320,6 +328,47 @@ void ConnectTreeO2track(TTree* fTracks)
320328 fTracks -> SetBranchAddress ("fTrackPhiEMCAL" , & mytracks .fTrackPhiEMCAL );
321329}
322330
331+ struct {
332+ // RICH data
333+
334+ Int_t fCollisionsID = -1 ; /// Collision ID
335+ Int_t fTracksID = -1 ; /// Track ID
336+
337+ Float_t fRICHSignal = -999.f ; /// RICH signal
338+ Float_t fRICHSignalError = -999.f ; /// RICH signal error
339+ Float_t fRICHDeltaEl = -999.f ; /// Delta for El
340+ Float_t fRICHDeltaMu = -999.f ; /// Delta for Mu
341+ Float_t fRICHDeltaPi = -999.f ; /// Delta for Pi
342+ Float_t fRICHDeltaKa = -999.f ; /// Delta for Ka
343+ Float_t fRICHDeltaPr = -999.f ; /// Delta for Pr
344+ Float_t fRICHNsigmaEl = -999.f ; /// Nsigma for El
345+ Float_t fRICHNsigmaMu = -999.f ; /// Nsigma for Mu
346+ Float_t fRICHNsigmaPi = -999.f ; /// Nsigma for Pi
347+ Float_t fRICHNsigmaKa = -999.f ; /// Nsigma for Ka
348+ Float_t fRICHNsigmaPr = -999.f ; /// Nsigma for Pr
349+ } rich ; //! structure to keep RICH info
350+
351+ TTree * MakeTreeO2rich ()
352+ {
353+ TTree * t = CreateTree (kRICH );
354+ t -> Branch ("fCollisionsID" , & rich .fCollisionsID , "fCollisionsID/I" );
355+ t -> Branch ("fTracksID" , & rich .fTracksID , "fTracksID/I" );
356+ t -> Branch ("fRICHSignal" , & rich .fRICHSignal , "fRICHSignal/F" );
357+ t -> Branch ("fRICHSignalError" , & rich .fRICHSignalError , "fRICHSignalError/F" );
358+ t -> Branch ("fRICHDeltaEl" , & rich .fRICHDeltaEl , "fRICHDeltaEl/F" );
359+ t -> Branch ("fRICHDeltaMu" , & rich .fRICHDeltaMu , "fRICHDeltaMu/F" );
360+ t -> Branch ("fRICHDeltaPi" , & rich .fRICHDeltaPi , "fRICHDeltaPi/F" );
361+ t -> Branch ("fRICHDeltaKa" , & rich .fRICHDeltaKa , "fRICHDeltaKa/F" );
362+ t -> Branch ("fRICHDeltaPr" , & rich .fRICHDeltaPr , "fRICHDeltaPr/F" );
363+ t -> Branch ("fRICHNsigmaEl" , & rich .fRICHNsigmaEl , "fRICHNsigmaEl/F" );
364+ t -> Branch ("fRICHNsigmaMu" , & rich .fRICHNsigmaMu , "fRICHNsigmaMu/F" );
365+ t -> Branch ("fRICHNsigmaPi" , & rich .fRICHNsigmaPi , "fRICHNsigmaPi/F" );
366+ t -> Branch ("fRICHNsigmaKa" , & rich .fRICHNsigmaKa , "fRICHNsigmaKa/F" );
367+ t -> Branch ("fRICHNsigmaPr" , & rich .fRICHNsigmaPr , "fRICHNsigmaPr/F" );
368+ t -> SetBasketSize ("*" , fBasketSizeTracks );
369+ return t ;
370+ }
371+
323372struct {
324373 // MC particle
325374
@@ -367,6 +416,7 @@ TTree* MakeTreeO2mcparticle()
367416 tKinematics -> Branch ("fVy" , & mcparticle .fVy , "fVy/F" );
368417 tKinematics -> Branch ("fVz" , & mcparticle .fVz , "fVz/F" );
369418 tKinematics -> Branch ("fVt" , & mcparticle .fVt , "fVt/F" );
419+ tKinematics -> SetBasketSize ("*" , fBasketSizeTracks );
370420 return tKinematics ;
371421}
372422
@@ -384,6 +434,7 @@ TTree* MakeTreeO2mctracklabel()
384434 TTree * tLabels = CreateTree (kMcTrackLabel );
385435 tLabels -> Branch ("fLabel" , & mctracklabel .fLabel , "fLabel/i" );
386436 tLabels -> Branch ("fLabelMask" , & mctracklabel .fLabelMask , "fLabelMask/s" );
437+ tLabels -> SetBasketSize ("*" , fBasketSizeTracks );
387438 return tLabels ;
388439}
389440struct {
@@ -398,5 +449,6 @@ TTree* MakeTreeO2mccollisionlabel()
398449 TTree * tCollisionLabels = CreateTree (kMcCollisionLabel );
399450 tCollisionLabels -> Branch ("fLabel" , & mccollisionlabel .fLabel , "fLabel/i" );
400451 tCollisionLabels -> Branch ("fLabelMask" , & mccollisionlabel .fLabelMask , "fLabelMask/s" );
452+ tCollisionLabels -> SetBasketSize ("*" , fBasketSizeEvents );
401453 return tCollisionLabels ;
402454}
0 commit comments